티스토리 뷰
곧 릴레이션 스키마(relation schema)가 중요하다.
- 관계 스킴을 설계하기 위해서 필요한것
즉, 데이터 종속성(data dependency), 효율적인 데이터 처리, 그리고 데이터의 일관성 유지 등이 포함되어야함.
데이터의 중복성은 이상(anomaly)를 발생시킨다.
이상(anomaly)
- 삭제 이상(deletion anomaly)
연쇄 삭제(triggered deletion)를 유발하여 정보 손실이 발생
예) 200번 학생이 ‘C123’ 과목을 등록 취소 -> 200번 학생의 학년정 보 소실
- 삽입 이상(insertion anomaly)
600번 학생이 2학년 정보(투플)을 삽입 -> 불필요한 정보(임시 과목번호)를 채워줘야함
- 갱신 이상(update anomaly)
400번 학생의 학년을 4->3로 변경 -> 4개의 투플을 모두 갱신해야함
- 속성들간의 종속관계별로 별도의 릴레이션으로 분해 (decomposition)하는 과정 -> 스키마 변환(schema transformation)
※스키마 변환은 3 가지 원리에 기초하고 있다.
1. 정보 표현의 무손실 - 변환된 스키마는 변환전 스키마의 정보를 포함하고 구조적으로는 더 바람직해야함
2. 최소의 데이터 중복성 - 중복으로 인한 anomaly를 제거
3. 분리의 원칙 - 속성들간의 의존성별로 별도의 릴레이션으로 분리시켜 표현해야 함
함수 종속(FD)
X : 사번 Y : 이름
X가 Y를 함수적으로 결정한다. ( X -> Y )
< 역은 성립하지 않는다>
X의 값이 고유한(유일한) Y값을 결정한다. (두 개는 같은 말이다.) => X의 값에 따라서 Y의 값이 변한다.(X)
Y는 X에 함수적으로 종속한다. Y가 달라지면 X값은 반드시 달라진다.(O)
예를 들어 설명하면
X : 0 1 -1 2 -2
Y : 0 1 1 4 4
Y값은 같은 값이 존재 한다 그에 따라 X의 값은 반드시 달라지게 되어 있다.
X값은 값은 다르지만 Y값이 같은 동명이인이 존재한다고 생각할 수 있다. 즉, X라는 사번이라는 고유의 번호에 하나의 이름만 연결될 수 있다.
- 어떤 릴레이션 R에서 X와 Y를 각각 R의 애트리뷰트 집합의 부분집합이라 할 때, 시간에 관계없이 속성 X의 값에 대해 Y의 값이 오직 하나만 연관됨
- 함수 종속 관계는 릴레이션이 계속해서 변경되더라도 항상 지켜지는 의미적 관계여야 됨.
[다시 되집고 가기] 슈퍼키, 후보키, 기본키
슈퍼키 + [아무거나] => 슈퍼키
- 애트리뷰트의 집합
- 고유하게 식별됨
[사번, 부양가족 이름(아무거나)] => 슈퍼키
[주민번호 앞자리, 뒷자리, 이름] => 주민번호 앞자리 와 뒷자리를 합하면 키가 슈퍼키가 되고 그 뒤에 아무거나 와도 슈퍼키가 된다.
후보키
- 구성 애트리뷰트중 하나라도 제거하면 슈퍼키가 아닌 것
[사번 ], 부양가족 이름] => 후보키
[주민번호 앞자리, 뒷자리 ], 이름] => 후보키
기본키
- 여러 후보키 중 대표적인 키 하나가 table의 기본키가 됨
릴레이션 R에 속한 모든 도메인이 원자 값만으로 되어 있다면 제 1 정규형에 속한다.
제 2 정규형(2NF : Second Normal Form)
어떤 릴레이션 R이 1NF이고 키(기본)에 속하지 않은 애트리뷰트 모두가 기본 키에 완전 함수 종속이면, 제 2정규형(2NF)에 속한다.
제 3 정규형(3NF : Third Normal Form)
릴레이션 R이 2NF이고 기본키에 속하지 않은 모든 속성 이 기본키에 이행적 함수 종속이 아닌 경우
Key word!! => 보이스/코드 정규형(BCNF)
: 릴레이션 R의 결정가가 모두 후보 키 이면 릴레이션 R은 보이스/코드 정규형에 속한다.
'3학년 2학기 > DB' 카테고리의 다른 글
ER 다이어그램 예제2 (1) | 2016.12.07 |
---|---|
ER다이어그램 예제 1 (1) | 2016.12.07 |
트리거 (0) | 2016.11.04 |
함수 (0) | 2016.11.04 |
저장 프로시저 (0) | 2016.11.04 |