Advertisement
Advertisement

More Related Content

Advertisement
Advertisement

데이터베이스 정규화

  1. 데이터베이스 개론 정규화 NHN NEXT 정호영 나눔고딕 및 나눔고딕코딩 글꼴을 설치해 주세요.
  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
  10. 정규형 (Normal Form) 이상현상이 잘 안 생기는 좋은 테이블이 갖추어야 할 조건 -1, 2, 3 정규형 -BCNF
  11. 정규화 (Nomalization) -테이블이 정규형을 만족할 수 있도록 잘 분해하는 과정 -1정규화  테이블이 1 정규형을 만족하게 됨 -3정규화  테이블이 3 정규형을 만족하게 됨
  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) - 여러 후보키 중 대표적인 키 하나가 테이블의 기본 키가 됨
  20. 함수적 종속성과 후보키(candidate key) 모든 다른 애트리뷰트을 함수적으로 결정하는 애트리뷰트 ENAME SSN BDATE ADDRESS DNUMBER EMP_DEPT
  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가 아니다.
  35. THANK YOU!!!
Advertisement