데이터 이상과 정규화
데이터 이상 Data Anomaly
삽입 이상
특정 속성이 다른 속성의 존재없이 데이터베이스에 삽입 될 수 없을 때 발생합니다.
삽입 이상은 독립적으로 존재해야 하는 정보를 하나의 릴레이션으로 묶음으로 해서 발생
삭제 이상
남아있어야할 정보 까지 손실됨으로써 데이터 무결성에 손상을 주는 현상을 삭제 이상이라한다.
삭제 이상은 독립적으로 존재해야 하는 정보를 하나의 릴레이션으로 묶음으로 해서 발생
갱신 이상
하나의 릴레이션 속성 값들이 중복 저장되어 있는 튜플들이 존재하는 상황에서 속성값 변경시 일부만 변경되는 데이터 불일치 현상을 갱신 이상이라 한다.
갱신이상의 원인은 데이터의 중복성으로부터 발생함
함수적 종속성
R을 릴레이션 스키마라고 하고 r은 R을 릴레이션 스키마로 갖는 릴레이션이라 하자. a와 b를 각각 속성들의 집합으로서 R의 부분집합이라 할 때 릴레이션 r에 속하는 임의의 두 튜플 t1, t2에 대하여 t1[a]=t2[a]일 때 마다 반드시 t1[b] = t2[b]이라면 b는 a에 함수적으로 종속된다고 하고 a->b로 표기한다.
함수적 종속성의 성질
함수적 종속성은 일종의 제약조건이다.
- 반사 Reflectivity : b집합이 a집합과 같거나 부분집합이라면 a->b가성립
- 첨가 Augmentation : a->b가 성립하면 va->vb도 성립
- 전이 Transitivity : a->b가 성립하고 b->v가 성립하면 a->v도 성립
- 합 Union : a->b가 성립하고 a->v가 성립하면 a->bv가 성립
- 분해 Decomposition : a->bv가 성립하면 a->b, a->v가 성립
- 의사전이 Pseudotransitivity : a->b가 성립하고 vb->o가 성립하면 av->o가 성립한다.
정규화와 정규형
정규화
릴레이션을 대상을 삽입이상, 삭제이상, 갱신이상등의 데이터 이상을 없애는 과정을 말한다.
정규화 과정
- 1정규형
- 2정규형
- 3정규형
- Boyce-Codd정규형
- 4정규형
- 5정규형
릴레이션 스키마 분해
정규화를 하면서 스키마를 분해하는데 그때 규칙이 있다.
무손실 분해
정보의 손실이 없어야한다.
종속관계 보존
분산된 상태에서도 종속성 관계가 보존되어야 한다.
정규형
제 1 정규형
릴레이션 스키마의 모든 속성의 도메인이 원자성을 가질 때 그 릴레이션 스키마는 제 1 정규형에 존재한다고 한다. 속성안에 또다른 속성(반복그룹repeating group)이 없어야 한다.
제 2 정규형
릴레이션 스키마가 제 1 정규형이고 주키가 아닌 모든 속성이 주키에 완전 함수적 종속이면 이 릴레이션 스키마는 제 2 정규형에 존재한다고 한다.
완전 함수적 종속성 fully function dependancy
fully function dependancy 는 함수적 종속성 a->b에서 a로 부터 임의의 속성 A를 제거하면 함수적 종속성 a->b가 성립하지 않는 경우를 말한다.
(주키)->(주키가 아닌 키)가 함수적 종속성을 갖지만 주키의 속성을 하나 뺴서 종속성이 깨져 버린다면 제2 정규형에 있지 않다.
부분 함수적 종속성 Partially functional dependency
함수적 종속성 a->b에서 a로부터 몇몇 속성을 제거하더라도 함수적 종속성 a->b가 성립된다면 이를 부분 함수적 종속성 Partially functional dependency이라 부른다.
(주키)->(주키가 아닌 키)가 함수적 종속성을 갖지만 주키의 속성을 하나 뺴서 종속성이 살아있다면 제2 정규형에 있다.
제 3 정규형
릴레이션 스키마가 제 2정규형이고 주키가 아닌 모든 속성이 주키에 전이종속이지 않으면 이 릴레이션은 제 3 정규형에 존재한다고 한다.
전이 종속성 Transitive Dependency
함수적 종속성 a->b가 성립하고 b->v가 성립하여 전이규칙에 의해 설립되는 함수적 종속성 a->v를 전이 종속성이라 한다.
Boyce-Codd 정규형
릴레이션 스키마 상에서 성립하는 임의의 함수적 종속성 a->b에 대하여 a가 수퍼키라면 이 릴레이션 스키마는 BCNF에 존재한다고 한다.
즉, 다른 속성들이 종속되있는 속성이 다른 튜플들을 유일하게 구분하지 않는다면 BCNF가 아니다