티스토리 뷰

 관계 데이터베이스에서는 데이터 값들을 테이블 형태의 릴레이션으로 표현하므로 현실 세계를 정확하게 표현하기 위해서 어떤 릴레이션들이 필요하고, 또 각 릴레이션은 어떤 애트리뷰트들로 구성해야 하는가를 결정하는 문제가 중요하다.


릴레이션 스키마(relation schema)가 중요하다.


  • 관계 스킴을 설계하기 위해서 필요한것
=> 에트리뷰트들 사이에 존재하는 관계성(relationship)


즉, 데이터 종속성(data dependency), 효율적인 데이터 처리, 그리고 데이터의 일관성 유지 등이 포함되어야함.



데이터의 중복성은 이상(anomaly)를 발생시킨다.


이상(anomaly)


  • 삭제 이상(deletion anomaly)

 연쇄 삭제(triggered deletion)를 유발하여 정보 손실이 발생

예) 200번 학생이 ‘C123’ 과목을 등록 취소 -> 200번 학생의 학년정 보 소실

  • 삽입 이상(insertion anomaly)

 600번 학생이 2학년 정보(투플)을 삽입 -> 불필요한 정보(임시 과목번호)를 채워줘야함

  • 갱신 이상(update anomaly)

 400번 학생의 학년을 4->3로 변경 -> 4개의 투플을 모두 갱신해야함



Anomaly가 발생한 이유?
 
=> 상이한 종류의 정보를 하나의 릴레이션으로 표현했기 때문! 
• 속성들 사이에 존재하는 종속관계(의존관계)를 인식하지 못하고 무리하게 하나의 릴레이션으로 표현 
• 데이터의 중복을 발생시킴 

정규화(Normalization) 
  • 속성들간의 종속관계별로 별도의 릴레이션으로 분해 (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의 값이 오직 하나만 연관됨
  • 함수 종속 관계는 릴레이션이 계속해서 변경되더라도 항상 지켜지는 의미적 관계여야 됨.
Key point! => 완전 함수 종속 && 부분 함수 종속

 

[다시 되집고 가기] 슈퍼키, 후보키, 기본키

슈퍼키 + [아무거나] => 슈퍼키

- 애트리뷰트의 집합

- 고유하게 식별됨

 

[사번, 부양가족 이름(아무거나)] => 슈퍼키

[주민번호 앞자리, 뒷자리, 이름] => 주민번호 앞자리 와 뒷자리를 합하면 키가 슈퍼키가 되고 그 뒤에 아무거나 와도 슈퍼키가 된다.

 

후보키

- 구성 애트리뷰트중 하나라도 제거하면 슈퍼키가 아닌 것

 

[사번 ], 부양가족 이름] => 후보키

[주민번호 앞자리, 뒷자리 ], 이름] => 후보키

 

기본키

- 여러 후보키 중 대표적인 키 하나가 table의 기본키가 됨 



 

제 1 정규형(1NF : First Normal Form)

릴레이션 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/07   »
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 31
글 보관함