이상(Anomaly)
테이블에서 일부 속성의 종속으로 인해 테이블 조작 시 문제가 발생하는 현상
- 삽입이상(Insertion Anomaly) : 한 튜플이 삽입될 때 전혀 관련없는 속성 때문에 삽입이 안되는 현상
ex) '학번'을 삽입하려는데 '학과 성적'도 같이 삽입해야 됨
- 삭제이상(Deletion Anomaly) : 한 튜플이 삭제 될 때 전혀 상관없는 값도 삭제 되는 연쇄 삭제 현상
ex) '과목번호'를 삭제하려는데 '학번'까지 같이 삭제되는 현상
- 갱신 이상(Update Anomaly) : 튜플의 속성값을 갱신할 때 일부 튜플만 갱신되어 정보의 불일치성을 초래하는 현상
ex) 4학년인 학생의 학번을 300으로 바꾸려면 모든 튜플을 하나씩 바꿔야 함
함수적 종속(Functional Dependency)
한 릴레이션의 속성들은 서로에게 함수적 종속성을 가진다.
함수적 종속성이란, X가 결정되면 Y가 결정되듯 특정 속성의 값이 결정되면 자동으로 다른 속성값이 결정되는 특성을 말한다. 함수의 특징에 따라 X는 단 하나의 Y와 연관된다. ( X → Y )
학번(X)이 결정되면 이름, 학년, 학과(Y)가 결정된다.
학번,과목(X)이 결정되면 성적(Y)이 결정된다.
X를 결정자(Determinant)라 하고 Y를 종속자(Dependent)라 부른다.
- 완전함수적종속 : 모든 속성이 하나의 속성에 종속
- 부분함수적종속 : 각각의 속성이 서로 다른 속성에 종속
정규화(Nomalization)
상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정
정규화 과정
제 1정규형
모든 속성의 도메인은 원자값으로 구성되어야 한다.
제 2정규형
부분적 함수 종속 제거
기본키가 아닌 모든 속성은 기본키에 완전 함수적 종속을 만족해야한다.
제 3정규형
기본키에 대해 이행적 함수적 종속(Transitive Functional Dependency) 제거
BCNF
결정자 중 후보키가 아닌 것 제거
제 4정규형
다치 종속을 제거
제 5 정규형
조인 종속성 이용
반정규화(Denormalization)
정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위해하는 행위
시스템 성능 향상 및 관리의 효율은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있음
테이블 통합
JOIN 연산이 자주 일어나는 두 테이블은 하나로 통합시키는 것이 효율적
1:1 관계 테이블 통합
1:N 관계 테이블 통합
슈퍼타입/서브타입 테이블 통합
테이블 분할
수평 분할 : 사용빈도에 따라 레코드를 기준으로 테이블을 분할
수직 분할 : 갱신 위주나 자주 조회되는 정도나 속성의 크기별 혹은 보안 적용 등 기준에 따라 속성을 분할
중복 테이블 추가
작업의 효율을 위해 테이블을 추가하는 것
작업의 효율성을 위해 테이블을 추가하는 것
- 집계 테이블의 추가 : 집계 데이터를 위한 테이블을 생성하여 사용하고 원본데이터는 트리거(Trigger)를 설정하여 사용하는 것 * 트리거 : 갱신, 삭제, 입력 같은 이벤트 발생시 수행되는 절차형 SQL
- 진행 테이블의 추가 : 이력관리 등의 목적으로 추가하는 테이블
- 특정 부분만을 포함하는 테이블의 추가 : 테이블에 데이터가 많으면 특정부분만 새로운 테이블 생성
중복 속성 추가
조인이 자주 발생하거나 접근 경로가 복잡하면 자주 사용하는 속성을 하나 더 추가하는 것이다.
속성의 추가는 데이터 무결성 확보를 어렵게 만들고 디스크 공간이 추가로 필요하다는 단점이 있다.
참고자료
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 트랜잭션, 인덱스, 뷰 , 클러스터 (0) | 2021.10.03 |
---|---|
[정보처리기사] 시스템 카탈로그 (0) | 2021.10.03 |
[정보처리기사] 관계 대수 및 관계해석 (0) | 2021.10.03 |
[정보처리기사] 관계형 데이터베이스의 기본개념 (0) | 2021.10.01 |
[정보처리기사] 데이터 모델 (0) | 2021.09.30 |