티스토리 뷰
- 함수적 종속성의 확장
- 함수적 종속성은 릴레이션의 효율성 여부에 중요한 판단기준
- 그러나 릴레이션의 인스턴스만으로 내재된 모든 함수적 종속서을 찾아내기 어려움
- 판별되지 않은 모든 함수적 종속성을 찾기 위해 추론 규칙을 사용하여 함수적 종속성을 확장
- 클로저(closure)
- 판별된 함수적 종속성 집합으로부터 유추할 수 있는 모든 함수적 종속성 집합
- 함수적 종속성 추론 규칙
- 암스트롱 공리(Armstring's axiom)
- 재귀성 규칙: X⊇Y이면, X→Y이다
- 부가성 규칙: X→Y이면, XZ→YZ이다
- 이행성 규칙: X→Y이고, Y→Z이면, X→Z이다.
- 분해 규칙: X→YZ이면, X→Y이다.
- 합집합 규칙: X→Y이고, X→Z이면, X→YZ이다.
- 의사 이행성 규칙: X→Y이고, WY→Z이면, WX→Z이다.
- 함수적 종속성의 판별
- 함수적 종속성이 참인 경우
- 고객번호 -> 고객명
- 고객명 -> 등급
- {고객번호, 고객명} -> 할인율
- 함수적 종속성이 참인 경우
- 고객번호 -> {고객명, 등급, 할인율}
- 암스트롱 공리(Armstring's axiom)
- 카노니컬 커버
- 함수적 종속성 추론 규칙으로 확장된 클로저에는 자명한 종속성과 중복된 중속성을 포함
- X -> AB, X -> B: 의미가 여러번 존재
- 불필요한 함수적 종속성을 제거한 표준형으로 변환 후 정규화를 수행
- 표준형 조건
- F의 모든 함수적 종속성의 오른편 속성은 반드시 1개
- F에서 X -> A를 X의 진부분집합 Y에 대하여 Y->A로 교체했을 때, 그 집합이 F와 동등한 집합이 불가능
- F에서 어떤 함수적 종속성을 제거했을 때, 그 집합이 F와 동등한 집합이 불가능
- 함수적 종속성 추론 규칙으로 확장된 클로저에는 자명한 종속성과 중복된 중속성을 포함
- 정규화
- 정규형
- 이상 현상을 최소화 하도록 특정 조건을 갖춘 릴레이션의 형식
- 정규화의 목적
- 특정 정규형의 조건을 만족하도록 릴레이션과 속성을 재구성하는 과정
- 정규화의 기능
- 데이터베이스 내에 모든 릴레이션을 효과적으로 표현
- 보다 간단한 관계 연산에 기초하여 검색 알고리즘을 효과적으로 작성할 수 있도록 지원
- 바람직하지 않은 삽입, 수정, 삭제 등의 이상 발생 방지
- 새로운 형태의 데이터가 삽입될 때 릴레이션 재구성의 필요성을 축소
- 제 1정규형
- 가장 조건이 단순한 정규형
- 관계혐 모델에 조건에 따라 자동 적용되는 정규형
- 릴레이션 스키마에서 정의된 모든 속성의 모데인이 원자값을 갖는 상태
- 제 2정규형
- 릴레이션이 제1정규형을 만족하고 기본키의 부분집합이 특정 속성을 종속하고 있지 않은 상태
- 정의
- 주어진 릴레이션의 인스턴스가 기본키가 아닌 속성들이 기본키에 완전히 종속되어 있는 상태
- 제2정규형의 적용
- 기본키에 완전히 종속되도록 릴레이션을 분해
- 릴레이션의 무손실 분해
- 무손실분해(lossless decomposition)
- 정의
- 스키마 R에 함수적 종속성 X->Y가 존재하고 X와Y가 교집합이면, R을 R-Y와 XY로 분해
- 정의
- 무손실분해(lossless decomposition)
- 제 3정규형
- 제 3정규화의 정의
- 릴레이션이 제2정규형을 만족하고 기본키가 아닌 속성들이 어떤 키에도 이행적으로 종속되지 않은 상태
- 제 3정규화의 적용
- {도크번호, 입항시간} -> {목적}, {목적} -> {담당도선사}
- {도크번호, 입항시간} -> {담당도선사}
- 제 3정규화의 정의
- BC정규형의 정의
- 릴레이션이 제3정규형을 만족하고 릴레이션에 성립하는 X->Y 형태의 모든 항수적 종속성에 대하여 X가 수퍼키인 상태
- 역정규화
- 정규화
- 릴레이션 분할을 통해 데이터의 중복성을 최소화 하는 과정
- 사용과정에서 많은 조인연산을 유발
- 역정규화
- 정규화의 반대 과정
- 정규화를 통해 분리되었던 릴레이션을 통합하는 재조정을 수행하고 정보의 부분적 중복을 허용하는 기법
- 데이터 접근 성능을 개선 목적
- 정규화 되지 않은 스키마와 역정규화 스키마는 구별
- 정규화
- 정규형
'database' 카테고리의 다른 글
[database] 인덱스 (0) | 2021.04.24 |
---|---|
[database] 데이터 저장과 파일 (0) | 2021.04.23 |
[database] 관계형 모델 (0) | 2021.03.22 |
[database] 데이터베이스 모델링 (0) | 2021.03.17 |
데이터와 정보 (0) | 2021.03.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 운영체제
- 입출력장치
- 퀵정렬
- 스텍
- 자료구조
- 이진탐색
- Stack
- 알고리즘
- 재귀함수
- stackframe
- 병행프로세스
- C
- 인접리스트
- dfs
- 최단경로
- 배열
- 교착상태
- server side rendering
- 구조체
- 소프트웨어
- client side rendering
- 동적프로그래밍
- react
- 세마포어
- C++
- Java
- 클래스
- BFS
- javascript
- 인접행렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함