반응형
데이터베이스 이상현상에 대해서 알아보고, 이와 관련된 함수 종속성의 개념과 예시도 살펴보겠습니다.
[ Contents ]
1. 이상현상
- 삽입 이상(Insertion Anomaly): 튜플 삽입 시, 원하지 않는 정보(NULL 등)를 강제 삽입해야 하는 경우
- 삭제 이상(Deletion Anomaly): 튜플 삭제 시, 같이 저장된 다른 정보까지 삭제되는 경우
- 갱신 이상(Update Anomaly): 튜플 갱신 시, 중복된 데이터의 일부만 갱신되어 데이터 불일치가 일어나는 경우
이상현상은 삽입, 삭제, 갱신 작업에서 생기는 오류가 아닙니다. 각 작업은 제대로 진행되나, 의도치 않은 데이터 손실이나 누락 문제가 생길 때 '이상 현상'이라고 합니다.
학번 (PK) | 성명 | 학과 | 등록금 | 장학 |
23101322 | 장우영 | 컴퓨터공학과 | 0 | 특별 장학생 |
23121423 | 공한비 | 디자인 학과 | 3,800,000 | NULL |
23141322 | 박정현 | 컴퓨터공학과 | 2,800,000 | NULL |
삽입 이상: 아직 학번을 부여받지 못한 신입생은 학생 테이블에 삽입할 수 없음
삭제 이상: '장우영' 학생을 삭제하면, 특별 장학금을 받았다는 정보도 함께 사라짐
갱신 이상: '박정현' 학생이 디자인 학과로 전과해서 갱신하면, 서로 다른 등록금을 납부했다는 모순이 생김
테이블 설계를 잘못했을 때, 위와 같이 숨이 턱 막히는 상황이 찾아오게 됩니다. 이러한 이상현상은 분리되어야 할 독립적인 속성들이 하나의 테이블에 저장될 때 발생합니다.
따라서 실제 학사시스템에서는 학생정보 테이블, 학과 테이블, 등록 테이블, 장학 테이블로 나누어서 운용합니다.
2. 함수의 종속성 (FD, Functional Dependency)
테이블 내 속성(칼럼) X에 따라, 다른 속성 Y도 하나로 정해지는 관계 (X → Y)
주민번호(X)를 알면, 이름(Y)도 자연스레 하나로 정해집니다. 이름을 여러 개 갖고 있는 사람은 없죠.
이러한 X를 Y의 결정자(Determinant)라고 합니다. X → Y라고 표기하죠. 반면, Y는 X에 종속(Dependent)된다고 합니다.
테이블에서는 기본키나 후보키가 X가 될 수 있으며, 나머지 속성(칼럼)은 Y로 종속되는 특징이 있습니다.
3. 함수 종속성 규칙
- 재귀규칙: X ⊇ Y이면 X → Y이다
- 증가규칙: X → Y이면 XZ → YZ이다
- 이행규칙: X → Y이고 Y → Z이면 X → Z이다
- 결합규칙: X → Y이고 X → Z이면 X → YZ이다
- 분배규칙: X → YZ이면 X → Y이고 X → Z이다
- 유사이행 규칙: X → Y이고 WY → Z이면, WX → Z이다
함수 종속성을 추론할 수 있는 규칙도 있습니다. 일종의 논리 연산입니다.
모두 외울 필요는 없으며, 추후 정규화에서 다뤄질 이행 규칙만 잘 봐두시면 되겠습니다. 이행규칙은 잘 알려진 '삼단논법'의 형태입니다.
반응형
'CS > DB' 카테고리의 다른 글
[DB] 트랜잭션의 특성(ACID, 원자성/일관성/고립성/영속성)과 상태 (0) | 2023.04.24 |
---|---|
[DB] 데이터베이스 정규화 (제 1, 2, 3, 보이스/코드, 4, 5 정규형) (0) | 2023.04.24 |
[DB] 가상 테이블, 뷰(VIEW)의 특성과 장단점 (0) | 2023.04.23 |
[DB] 테이블 키의 5가지 종류와 무결성 제약 3가지 종류 (0) | 2023.04.23 |
[DB] 데이터베이스 설계 프로세스와 종류 (개념적 설계, 논리적 설계, 물리적 설계) (0) | 2023.04.22 |
댓글