좋은 릴레이션과 나쁜 릴레이션
나쁜 릴레이션의 예
-> 등급/할인율 정해져있음 : 레코드사이의 부분적 중복 발생 -> 불필요한 저장공간 낭비
잘못된 데이터베이스 모델링
- 데이터의 중복
- 갱신이상
- 삽입이상 : 레코드 추가 시 불필요한 컬럼의 값이 없이는 추가하지 못하는 경우
- 삭제이상 : 삭제시 의도하지 안항ㅆ던 다른 데이터가 삭제되는 경우
- 수정이상 : 중복저장된 레코드를 수정 시 모드 반영이 안된어 데이터베이스의 일관성이 깨지는 경우
갱신이상-삭제이상
갱신이상-수정이상
좋은 릴레이션의 개념
- 프로그래메 관점에서의 모델링
-
릴레이션의 스키마가 얼마나 효율적으로 실세계를 반영하고 있는지 평가
-
고려사항
- 한 릴레이션 내의 컬럼간의 관계분석
- 원하지 않는 데이터의 종속과 중복제거
- 새로운 컬럼들이 데이터베이스에 추가될때, 기존 컬럼과의 관계 수정을 최소화
함수적 종속성
1.릴레이션 인스턴스를 분석하여 속성들 간의 연관관계를 표현한 것
2. 릴레이션의 효율성을 향상시켜 좋은 릴레이션으로 변환하는에 이용되는 중요한 개념
-> 등급이 할인율 종속
함수적 종속성의 확장
- 함수적 종속성은 릴레이션의 효율성 여부에 중요한 판단기준
- 그러니 릴레이션의 인스턴스 만으로 내재된 모든 함수적 종속성을 찾아내기 어려움
- 판별되지않은 모든 함수적 종족성을 찾기위해 추론규칙을 시용하여 함수적 종속성을 확장
- 클로저(closure)
- 판별된 함수적 종속성 집합으로부터 유추할 수 있는 모든 함수적 종속석 집합
함수적 종속성 추론교칙
- 암스토롱 공리
카노니컬 커버
- 함수적 종속성 추혼 규칙으로 확장된 클로저에는 자명한 종속성과 중복된 종속성을 포함
- 불필요한 함수적 종속성을 제거한 표준형으로 변환 후 정규화를 수행
- 표준형의 조건
- F의 모든 함수적 종속송의 오른편 속성은 반드시 1개
- F에서 X->A를 X의 진부분집합 Y에 대하여 Y->A로 교체했을때, 그 집합이 F와 동등한 집합이 붋가능
- F에서 어떤 함수적 종속성을 제거했을깨, 그 집합이 F와 동등한 집합이 불가능
정규화
정규형
- 이상현상을 최소화 하도록 특정 조건을 갖춘 릴레이션의 형식
- 정규향의 분류
정규화의 목적
제1 정규형
- 가장 조건이 단순한 정규형
- 관계형 모델에 조건에 따라 자동 적용되는 정규형
함수적 종속성 핀별
힘수적 종속적 다이어그램(FDD)
제 2 정규형의 정의
- 릴레이션이 저 1 정규형을 만족하고 기본키의 부분집합이 특정 속성을 종속하고 있지 않은 상태
릴레이션의 무손실 분해
2 정규형 적용
제 3정규화의 정의
제3정규화의 적용
BC 정규형의 정의
-> 목적은 기본기아님
정규화의 결과
역정규화의 개념
- 정규화
- 릴레이션 분할을 통헤 데이터의 중복성을 최소화하는 과정
- 사용과정에서 많은 조인여산을 유발 -> 느려짐
- 역정규화
- 정규화의 반대
- 정규화를 통해 분리되었던 릴레이션을 통합하는 재조정 수행하고 정보의 부분적 중복을 허용하는 기법
- 데이터 접근 성능 개선 목적
- 정규화외지 않은 스키마와 역정규화 스키마는 구별