티스토리 뷰
1. 잘못된 데이터베이스 모델링
- 데이터 중복
- 일관성 유지의 어려움
- 저장 공간 낭비
- 갱신 이상
- 삽입 이상
- 레코드 추가 시 불필요한 컬럼값 없이는 추가하지 못하는 경우
- 삭제 이상
- 삭제 시 의도하지 않았던 다른 데이터가 삭제되는 경우
- 수정 이상
- 일부 레코드 수정 시 데이터의 일관성이 훼손되는 경우
- 삽입 이상
2. 좋은 릴레이션의 개념
- 컴퓨터 프로그래머적 관점에서의 모델
- 어떻게 데이터를 저장해야 하는가?
- 릴레이션의 스키마가 얼마나 효율적으로 실세계를 반영하고 있는지 평가
- 고려사항
- 릴레이션 내의 컬럼 간의 관계 분석
- 불필요한 데이터의 종속과 중복제거
- 새로운 컬럼들이 데이터베이스에 추가될 때, 기존 컬럼과의 관계 수정을 최소화
3. 함수적 종속성의 개념
- FD ( Functional Dependency )
- 릴레이션 인스턴스를 분석하여 속성들 간의 연관관계를 표현하는 것
- 릴레이션의 효율성을 향상시켜 좋은 릴레이션으로 변환하는데 이용되는 중요한 개념
- 형식적 정의
- 임의의 릴레이션 스키마 R의 인스턴스r(R)에 포함되는 서로 다른 두 레코드 r1, r2가 컬럼 집합 X와 Y에 대해, r1[X] = r2[X]일때, r1[Y] = r2[Y]이면 함수적 종속성 X→Y가 성립한다.
- 예시
- {등급} → {할인율}
- 등급은 결정자, 할인율은 종속자에 해당
4. 함수적 종속성의 확장
- 함수적 종속성은 릴레이션의 효울성 여부에 중요한 판단기준
- 그러나 릴레이션의 인스턴스만으로 내재된 모든 함수적 종속성을 찾아내기 어려움
- 판별되지 않은 모든 함수적 종속성을 도출하기 위해 추론 규칙 등을 사용하여 함수적 종속성을 확장
- 클로저( Closure )
- 판별된 함수적 종속성 집합으로부터 유추할 수 있는 모든 함수적 종속성 집합
- 표기 : F⁺
5. 함수적 종속성 추론 규칙
- 암스트롱 공리 ( Armstrong’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이다
6. 카노니컬 커버
- 미니멀 커버 혹은 최소 커버로도 부른다.
- 함수적 종속성 추론 규칙으로 확장된 클로저에는 자명한 종속성과 중복된 종속성을 포함
- 자명한 종속성 : A → A.와 같이 당연한 의미를 지닌 종속성
- 중복된 종속성 : X → AB, X → B와 같이 의미가 여러 번 존재
- 불필요한 함수적 종속성을 제거한 표준형으로 변환 후 정규화를 수행
- 표준형에 대한 집합이 카노니컬 커버
- 표준형 조건
- 𝑭의 모든 함수적 종속성의 종속자의 속성은 반드시 1개
- 𝑭에서 𝑿 → 𝑨를 𝑿의 진부분집합 𝒀에 대하여 𝒀 → 𝑨로 교체했을 때, 그 집합이 𝑭와 동일한 집합이 불가능
- 가장 최소화 되어있는지를 확인하는 조건
- 𝑭에서 어떤 함수적 종속성을 제거했을 때, 그 집합이 𝑭와 동일한 집합이 불가능
- 위 집합은 표준형에 해당하므로 반드시 필요함
7. 정규형
- 이상 현상을 최소화하도록 특정 조건을 갖춘 릴레이션의 형식
- 정규형의 분류
- 제1정규형
- 제2정규형
- 제3정규형
- BC 정규형
- 제4정규형
- 제5정규형
- 정규형이 높아질수록 점점 더 까다로운 조건 만족
8. 정규화의 목적
- 정규화의 정의
- 특정 정규형의 조건을 만족하도록 릴레이션과 속성을 재구성하는 과정
- 정규화의 기능
- 데이터베이스 내에 모든 릴레이션을 효율적으로 표현
- 바람직하지 않은 삽입, 수정, 삭제 등의 이상 발생 방지
- 보다 간단한 관계 연산에 기초하여 검색 알고리즘을 효율적으로 작성할 수 있도록 지원
- 새로운 형태의 데이터가 삽입될 때, 릴레이션 재구성의 필요성을 축소
9. 제1정규형
- 가장 조건이 단순한 정규형
- 가장 포괄적인 정규형
- 형식적 정의
- 릴레이션 스키마에서 정의된 모든 속성의 도메인이 원자값을 갖는 상태
- 관계형 모델의 특성을 만족하는 경우, 자동 적용되는 정규형
10. 예제 릴레이션에 대한 부연설명 ( 도크 릴레이션 )
- 선박이 항구에 정박하기 위해 정밀한 작업이 요구
- 풍향과 풍속, 파도와 안개 상황 등을 고려
- 단순히 수신호뿐만 아니라 소형 배들로 정박하려는 대형 배를 밀어 안전하게 위치시키는 작업을 고려
- 도선사
- 배를 도크에 안전하게 접안시키고 항로로 인도하는 일을 하는 사람
- 도크
- 선박의 건조, 수리, 계선, 하역 작업 등을 위해 축조된 설비 및 시설의 총칭
11. 제1정규화를 수행한 릴레이션
- 원자적 상태의 속성값으로만 구성 (제1정규화)
12. 함수적 종속성 판별
- 함수적 종속성의 형식적 정의
- 임의의 릴레이션 스키마 R의 인스턴스 r(R)에 포함되는 서로 다른 두 레코드 r₁, r₂가 컬럼 집합 X와 Y에 대해, r₁[X] = r₂[X]일 때, r₁[Y] = r₂[Y]이면 함수적 종속성 X → Y가 성립한다
13. 함수적 종속성 다이어그램
- FDD (Functional Dependency Diagram)
- 릴레이션 내의 속성 간의 종속 관계를 직관적이고 이해하기 쉽게 도식화한 표현 방식
- 직사각형 : 속성 또는 속성 집합
- 화살표 : 함수적 종속성
- ex. 목적(결정자) → 담당 도선사(종속자)
14. 제2정규형의 정의
- 릴레이션이 제1정규형을 만족하고 기본키의 부분집합이 특정 속성을 종속하고 있지 않은 상태
- 형식적 정의
- 주어진 릴레이션의 인스턴스가 기본키가 아닌 속성(비주속성)이 기본키(주속성)에 완전히 종속되어 있는 상태
- X → Y에 대한 함수 종속 관계
- 부분 함수 종속 : Y가 X의 전체가 아닌 일부에 종속
- 완전 함수 종속: Y가 X의 전체에 종속
15. 제2정규형의 적용
- 기본키에 완전 종속되도록 릴레이션을 분해
16. 릴레이션의 무손실 분해
- 무손실 분해 (lossless decomposition)
- 정의
- 스키마 R에 함수적 종속성 X → Y가 존재하고 X ∩ Y ≠ ∅(공집합)이면, R을 R−Y와 XY로 분해
- 정의
- 도크관리 릴레이션 무손실 분해
- {도크번호} → {도크관리자}
- {도크번호} ∩ {도크관리자} = ∅
- → 도크관리 - {도크관리자}와 {도크번호, 도크관리자}로 분해
17. 제3정규형의 정의
- 형식적 정의
- 릴레이션이 제2정규형을 만족하고, 기본키가 아닌 속성들이 어떤 키에도 이행적으로 종속되지 않은 상태
- 이행적 종속성
- X → Y이고 Y → Z이면 X → Z이다
18. BC 정규형의 정의 (*)
- 형식적 정의
- 릴레이션이 제3정규형을 만족하고 릴레이션에 성립하는 X → Y 형태의 모든 함수적 종속성에 대하여 X가 수퍼키인 상태
- 입출항관리 릴레이션의 함수적 종속성
- {도크번호, 입항시간} → {목적}
- {도크번호, 입항시간} → {출항시간}
- {목적} → {도크번호}
19. 역정규화의 개념
- 정규화
- 릴레이션 분할을 통해 데이터의 중복성을 최소화하는 과정
- 사용 과정에서 많은 조인 연산을 유발
- 역정규화
- 정규화의 반대 과정
- 정규화를 통해 분리되었던 릴레이션을 통합하는 재조정을 수행하고 정보의 부분적 중복을 허용하는 기법
- 데이터 접근 성능 개선 목적
- 데이터 검색 결과가 빠르게 나타날 수 있도록
- 정규화 되지 않은 스키마와 역정규화 스키마는 구별
728x90
'방송대 > 데이터베이스 시스템' 카테고리의 다른 글
10강. 데이터 저장과 파일 (0) | 2025.04.23 |
---|---|
9강. 저장 객체 (0) | 2025.04.14 |
7강. SQL(4) (0) | 2025.04.04 |
6강. SQL (3) (0) | 2025.03.24 |
5강. SQL (2) (0) | 2025.03.17 |
댓글