본문 바로가기

DB

[DB][데이터베이스] 7-1. DB Design / DB 설계

반응형
  • 1NF (First Normal Form)
  • Features of Good Relational Design
  • Functional Dependencies
  • Decomposition Using Functional Dependencies
  • BCNF (Boyce-Codd Normal Form)
  • 3NF
  • Multivalued Dependencies and 4NF
  • Overall DB Design Process
 by Prof. Chang Hwan Lee

1NF (First Normal Form)

릴레이션에 속한 모든 속성의 도메인이 atomic 값으로만 구성되어 있으면 1NF에 속한다

 


Features of Good Relational Design

Non-atomic 값들은 저장공간을 복잡하게 하고, 중복을 만든다

여기서, DB 설계의 안 좋은 경우는 다음과 같다

 

  • 정보의 반복
  • 수정(insert, delete, update)
  • 특정 정보 표현의 어려움

 

예시를 들어보자, 

 

[Fig 1-1] a bad DB design

 

  1. 값이 반복되는 중복이 일어난다
  2. assets 값의 불일치의 가능성이 있다 (Complicates updating)
  3. null 값을 사용할 수는 있지만 다루기 힘들다
  4. L-23 loan이 삭제되면 Redwood branch도 사라진다

그렇다면, 좋은 테이블로 만드려면 어떻게 해야하나?

 

Split !

[Fig 1-2] split table

 

여러 Decomposition 방법이 있지만, 다음 두 가지 조건을 만족시켜야 한다

그 때 Decomposition을 Normalization 이라고 한다

 

  • Attribute preservation
    • 어느 attribute도 잃지 않는다
  • Lossless join
    • 어느 data도 잃지 않는다

 

이러한 Normalization 이론은 FD(functional dependencies), MVD(multivalued dependencies) 에 기반한다

 


Functional Dependencies

모든 실제 Constraints 를 만족하는 관계의 경우를 관계의 Legal Instance 라고 한다.

 

그리고, 관계 "r" FD set "F" legal이라면,

"r" "F" satisfies 하고 "F" "r" holds on 한다고 부른다

 

 

즉, 알파 값은 하나의 베타 값을 결정한다

하지만 이 때 FD(Functional Dependencies)data를 보고 결정할 수 없다 

 


 

FD 관계의 instance 만족될 “Trivial”하다 한다 (당연한)

FD 만족하지만, Trivial은 아닌 경우 있다

ex) 특정 instance에서 name → ID 만족하는 경우

 

일련의 FD "F"가 주어지면,

F 의해 논리적으로 암시되는 특정한 다른 FD가 있다
F 의해 논리적으로 암시되는 모든 FD 집합 F closure이다

우리는 F+ 가지고 F closure 나타낸다 (Armstrong’s axioms)

 

이 규칙들은

sound(실제로 유지되는 기능 종속성만 포함) 하고,

complete(유지하는 모든 기능 종속성 포함) 하다

 

F+의 FD f를 모두 확인하고, F+의 f1-f2 쌍을 모두 확인하여 F의 closure를 계산한다

 

그리고 이를 통해

 

 

위 조건들을 추론할 수 있다

 


주어진 FD 집합 F로부터 후보키를 찾아낼 때,

모든 F+를 구해 후보키를 알아내야 할까?

이는 경우의 수가 너무 많기 때문에 Attribute Closure 를 이용해 후보키를 구한다

Attribute Closure는 F에서 우변의 속성을 제외한 나머지 속성들이 모두 후보키 될 자격이 있는 키다

 

Attribute Set의 test 과정은 다음과 같다

 

[Fig 2-1] Uses of Attribute Closure

 

다음 예시를 살펴보자

 

[Fig 2-2] Example of Attribute Set Closure

 

여기서 AG는 super key이며,

A, G는 후보키가 된다

 


Decomposition Using Functional Dependencies

- Canonical Cover (중복 지우기)

extraneous 성질을 살펴보자

 

[Fig 3-1] extraneous

 

이는 중복을 나타낼 수 있으며, 확인 절차 후 삭제하여 분해해야 한다

다음 예시를 살펴보자

 

[Fig 3-2] extraneous examples 1
[Fig 3-3] extraneous examples 2

 

위 예시처럼, extraneous 한 원소를 확인하고, 제거시킨 후 검토한다

 

[Fig 3-4] extraneous examples 3

 

- 복습 (Normalization)

이같은 정규화는 FD(Functional Dependencies) / MVD(Multivalued Dependencies) 에 기반하고

(이 파트에서는 두 테이블로 분해하는 것 까지만 다룸)

 

정규화를 진행할 때는 Relationgood form을 유지하고, lossless-join 을 만족한다

 

[Fig 3-4] Normalization (보존/비보존)

반응형