Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

CKtrace's Devlog

[DB] - 데이터베이스 설계 및 이상 현상 본문

DB

[DB] - 데이터베이스 설계 및 이상 현상

CKtrace 2022. 6. 27. 18:27

 

 

 

 

 

Database Design Process


 

데이터베이스 설계 과정
STEP 1 요구 사항 분석 DB의 용도 파악 → 요구 사항 명세서
STEP 2 개념적 설계 DBMS에 독립적인 개념적 구조 설계 → E-R 다이어그램
STEP 3 논리적 설계 DBMS에 적합한 논리적 구조 설계 → 릴레이션 스키마
STEP 4 물리적 설계 DBMS로 구현 가능한 물리적 구조 설계 → 물리적 스키마
STEP 5 구현 SQL 문을 작성한 후 이를 DBMS에서 실행 → DB 생성

 

 

 

 

 

Anomaly Phenomenon


 

Anomaly Phenomenon, 이상 현상은 불필요한 데이터 중복으로 인해 발생하는 부작용들이며, 함수 종속 관계 여러 개를 하나의 릴레이션에 표현하는 경우에 주로 발생합니다.

 

함수 종속이라는 개념이 생소하신 분들은 뒤에서 자세히 설명할 예정이오니 걱정하지 않으셔도 됩니다!

 

이제 다시 본론으로 돌아와, 이상 현상은 아래와 같이 세 가지로 나눌 수 있습니다.

 

  • 삽입 이상 (Insertion Anomaly) → 새 데이터 삽입 위해 불필요한 데이터까지 삽입해야 하는 문제
  • 삭제 이상 (Deletion Anomaly) → 튜플을 삭제할 시 꼭 필요한 데이터까지 함꼐 삭제되는 데이터 손실 문제
  • 갱신 이상 (Update Anomaly) → 중복되는 튜플 중 일부만 변경해 데이터가 불일치하게 되는 모순 문제

 

삽입 이상, 갱신 이상, 삭제 이상이 어떠한 것인지 느낌 정도는 알아보았은이 이제 좀 더 자세히 하나, 하나 알아보도록 하겠습니다.

 

 

 

 

 

Insertion Anomaly


 

삽입 이상 (Insertion Anomaly) 

→ 새 데이터 삽입 위해 불필요한 데이터까지 삽입해야 하는 문제

 

 

이름 회원ID 나이 주소 자차 여부
A 123 32 OOO Y
B K23 28 △△△ N
C TK 25 □□□ Y

 

이름과 회원ID를 기본키 속성으로 갖는 테이블이 위와 같이 존재한다고 가정해보도록 하겠습니다.

 

기본키를 구성하는 속성은 NULL 값을 가질 수 없다는 제약이 존재한다는 것을 기억하시죠??

 

그런데 만약 삽입하려는 데이터가 아래와 같다면 어떻게 될까요?

 

D NULL 27 ◇◇◇ N

 

기본키 속성 중 하나인 회원ID가 NULL 값이기 때문에 제약에 위배되며, DB에 집어넣기 위해 존재하지 않는 회원ID를 임의로 삽입해야 하므로 삽입 이상이 발생하는 것입니다.

 

 

 

 

 

Deletion Anomaly


삭제 이상(Deletion Anomaly)

→ 릴레이션에서 튜플은 삭제하면 꼭 필요한 데이터까지 함께 삭제하여 데이터 손실

 

 

이름 회원ID 나이 주소 자차 여부
A 123 32 OOO Y
B K23 28 △△△ N
C TK 25 □□□ Y

 

 

예를 들어, 위 테이블에서 C가 회원 탈퇴를해서 회원ID 튜플만 삭제하고 그 이외의 회원 정보는 정책상 보유하고 한동안 보유하고 있어야 할 때가 존재한다고 해봅시다.

 

 

그런데 이 튜플이 삭제되면 회원 C의 이름, 나이, 주소, 자차 여부 데이터까지 원치 않게 손실되는 삭제 이상이 발생하게 되고, 이러한 현상을 삭제 이상이라고 합니다.

 

 

 

 

 

Update Anomaly


 

 

갱신 이상(Update Anomaly)

→ 릴레이션의 중복된 튜플들 중 일부만 수정해 데이터가 불일치하게 되는 모순이 발생하는 것

 

이름 회원 추첨 번호 당첨여부 주소 자차 여부
A 123 N OOO Y
A 456 N OOO N
A 421 Y OOO Y

 

위 테이블에서 A 회원의 주소가 OOO에서 □□□로 변경될 때, A 회원에 대한 튜플 3개의 주소 속성 값이 모두 변경되어야 합니다.

 

만약 2개의 튜플만 주소가 수정된다면 아래와 같은 갱신 이상이 발생합니다.

 

이름 회원 추첨 번호 당첨여부 주소 자차 여부
A 123 N OOO Y
A 456 N OOO N
A 421 Y □□□ Y

 

 

 

 

 

이상으로 데이터베이스 설계 및 이상 현상에 대한 글을 마치도록 하겠습니다.

 

긴 글이었지만 읽어주셔서 감사하다는 말씀드리며, 다음에는 더 좋은 글로 찾아뵙도록 하겠습니다!

 

감사합니다.

 

 

 

 

 

'DB' 카테고리의 다른 글

[DB] - 정규화  (0) 2022.06.29
[DB] - 함수 종속  (0) 2022.06.28
[DB] - 삽입 SQL (ESQL)  (0) 2022.06.27
[DB] - 뷰  (0) 2022.06.27
[DB] - SQL의 데이터 조작 기능  (0) 2022.06.27
Comments