More Related Content
Similar to 데이터베이스 정규화 (14)
More from Hoyoung Jung (20)
데이터베이스 정규화
- 2. GOAL
-1 정규형의 정의를 안다.
-2 정규형의 정의를 안다.
-3 정규형의 정의를 안다.
-BCNF의 정의를 안다.
-주어진 스키마가 어떤 정규형을 만족하는지 판단할 수 있다.
- 3. 데이터베이스 설계 다시보기
데이터베이스 설계
= 테이블을 만드는 과정
테이블을 만드는 과정
= 애트리뷰트를 어떻게 묶을 것인지를 결정
좋은 테이블을 설계
= 애트리뷰트를 잘 묶는 방법
- 4. 잘 설계된 테이블
다른 테이블의 애트리뷰트 값을 읽어오는 것은
외래키의 참조를 통해서만 가능해야 한다.
- 5. 잘못된 설계
ENAME
SSN
BDATE
ADDRESS
DNUMBER
DNAME
DMGRSSN
EMP_DEPT
SSN
PNUMBER
HOURS
ENAME
PNAME
PLOCATIONS
EMP_PROJ
fd1
fd2
fd3
- 6. 잘못된 설계의 문제점
데이터의 중복 발생
이상현상(anormaly) 발생
이상현상
- 삽입이상/ 삭제이상 / 갱신이상
- 7. 삽입 이상
새로운 부서를 신설하고 싶습니다.
ENAME
SSN
BDATE
ADDRESS
DNUMBER
DNAME
DMGRSSN
EMP_DEPT
- 8. 삭제 이상
마지막 사원이 나갔습니다.
ENAME
SSN
BDATE
ADDRESS
DNUMBER
DNAME
DMGRSSN
EMP_DEPT
- 9. 갱신 이상
개발팀의 이름이 dev팀으로 바뀌었습니다.
ENAME
SSN
BDATE
ADDRESS
DNUMBER
DNAME
DMGRSSN
EMP_DEPT
- 12. 함수적 종속성
두 애트리뷰트 X,Y에서
X가 Y를 함수적으로 결정
X Y
- 13. 함수적 종속성
두 애트리뷰트 X,Y에서
X의 값이 유일한 Y값을 결정
X Y
- 14. 함수적 종속성
두 애트리뷰트 X,Y에서
Y는 X에 함수적으로 종속
X Y
- 15. * 진짜 함수
Y = X * X : 함수
X가 Y를 함수적으로 결정한다.
Y가 달라지면 X값은 반드시 달라진다.
cf.) X가 달라져도 Y는 같을 수 있다.
X Y
X
0
1
-1
2
-2
…
Y
0
1
1
4
4
…
- 16. 함수적 종속성 예시
1.주민번호 이름
2.부서 ID 부장이름
3.이름 직속상관
이 중에 틀린 것은?
- 17. key 다시보기
슈퍼키(super key)
-애트리뷰트의 집합
-고유하게 식별됨
예)
- [사번, 부양가족이름]
- [주민번호 앞자리, 주민번호 뒷자리, 이름]
- [사번,이름, 성별, 나이, 부서, 집전화, … ]
- 18. key 다시보기
후보키 (candidate key)
-슈퍼키의 부분집합
-구성 애트리뷰트중 하나라도 제거하면 슈퍼 키가 아닌 것
앞 장의 예제에서 후보키가 있나요?
- [사번, 부양가족이름]
- [주민번호 앞자리, 주민번호 뒷자리, 이름]
- [사번,이름, 성별, 나이, 부서, 집전화, … ]
- 19. key 다시보기
기본 키 (primary key)
- 여러 후보키 중 대표적인 키 하나가 테이블의 기본 키가 됨
- 21. 제 1 정규형
- 테이블은 반드시 하나 이상의 키를 가지고 있어야 한다.
- 애트리뷰트의 도메인이 오직 원자값만을 포함한다.
- 22. 제 1 정규형
다음과 같은 속성은 허용하지 않는다.
- 복합 애트리뷰트
- 다중 애트리뷰트
- 중첩 릴레이션
- 23. 제 1 정규형 이것만 기억하자.
기본키가 있고 애트리뷰트가 원자값을 가지면 제 1 정규형
- 24. 진짜 제 1 정규형의 정의
http://ko.Wikipedia.org/wiki/제1정규형
(1)열에는 위-아래의 순서가 없다.
(2)행에는 좌-우의 순서가 없다.
(3)중복되는 열이 없다.
(4)열과 행의 교차점에는 반드시 하나의 값이 존재해야 한다.
- 25. 완전 함수적 종속과 제 2 정규형
*완전 함수적 종속
ABC X라고 할 때 ABC중 하나라도 제거하면 함수적 종속이 발생하지 않는 경우
- 26. 완전 함수적 종속과 제 2 정규형
*부분 함수적 종속
완전함수적 종속이 아닌 경우 부분 함수적 종속이라고 함
예)
ABC D
BC D
- 27. 제 2 정규형
-1정규형을 만족하고
-후보 키가 아닌 애트리뷰트들이 후보 키에 대해 완전 함수적 종속인 경우
- 28. 제 2 정규형
후보 키는? (SSN, PNUMBER)
SSN
PNUMBER
HOURS
ENAME
PNAME
PLOCATIONS
EMP_PROJ
fd1
fd2
fd3
- 29. 제 2 정규형
부분 함수적 종속이 발생하므로 2 정규형이 아님
SSN
PNUMBER
HOURS
ENAME
PNAME
PLOCATIONS
EMP_PROJ
fd1
fd2
fd3
완전 함수적 종속성
부분 함수적 종속성
부분 함수적 종속성
- 30. 제 2 정규형
고쳐 봅시다!
SSN
PNUMBER
HOURS
ENAME
PNAME
PLOCATIONS
EMP_PROJ
fd1
fd2
fd3
완전 함수적 종속성
부분 함수적 종속성
부분 함수적 종속성
- 31. 이행 종속과 제 3 정규형
*이행 종속
X Y 이고 Y Z 이면 X Z
- 32. 제 3 정규형
-2정규형 +
-후보 키가 아닌 애트리뷰트들에서 이행 종속이 발생하지 않는다.
- 33. 제 3 정규형 위배
ENAME
SSN
BDATE
ADDRESS
DNUMBER
DNAME
DMGRSSN
EMP_DEPT
이행 함수적 종속성
- 34. BCNF
X Y 인 모든 X, Y에 대하여
(1)Y가 X의 부분집합이거나
(2)X는 후보 키어야 한다.
-후보 키가 아닌 애트리뷰트가
다른 애트리뷰트를 함수적으로 결정하면 BCNF가 아니다.
기타 : cycle이 생기면 BCNF가 아니다.