코딩 기록 저장소

[23-01/데이터베이스 설계] 논리적 모델링 본문

학교 공부/데이터베이스 설계

[23-01/데이터베이스 설계] 논리적 모델링

KimNang 2023. 4. 27. 08:29

1. 관계 데이터 모델

테이블
용어 설명
Table
(Relation)
행과 열의 2차원 구조를 가진 데이터 저장 객체 (Object)
Column
(Field, Attribute)
테이블에서 세로 방향으로 이루어진 개별 속성
Row
(Record, Tuple)
테이블에서 가로 방향으로 이루어진 연결된 데이터

 

2. 관계 모델 제약조건

도메인 제약 (Domain Constraints)

- 속성(Attribute)에 대한 제약

- 속성 값은 원자성(Atomicity)을 가지며, 도메인에서 정의된 값이어야 함

- 복합 속성과 다중값 속성은 허용되지 않음 (cf : 주소 = 시군구 + 상세주소)

- NULL 값은 허용됨 (Not NULL이 아닌 경우)

 

● 도메인

- 속성 하나가 가질 수 있는 모든 값의 집합, 즉 값의 범위

● 원자성

- 더는 분해할 수 없는 하나의 값

 

키 제약 (Key Constraints)

- 릴레이션(Relation)에 대한 제약

- 릴레이션의 모든 튜플은 서로 식별이 가능해야함

 

수퍼키

- 유일성의 특성을 만족하는 속성 또는 속성들의 집합, 키 값이 같은 튜플은 존재할 수 없음

 후보키

- 유일성과 최소성을 만족하는 속성 또는 속성들의 집합

기본키

- 여러 개의 후보키 중에서 기본적으로 사용할 키

 

개체 무결성 제약 (Entity Integrity Constraints)

- 기본키(Primary Key)에 대한 제약

- 기본키(PK : Primary Key)는 UNIQUE & NOT NULL이어야 함

- UNIQUE & NOT NULL 제약 조건이라고도 함

 

※ 기본키 선택시 고려 사항

- 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합

- 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합

- 단순한 후보키를 기본키로 선택

 

참조 무결성 제약 (Referential Integrity Constraints)

- 외래키(FK : Foreign Key)에 대한 제약

- 외래키는 참조할 수 없는 값을 가질 수 없음

- 릴레이션 R1이 릴레이션 R2를 참조하는 경우, R1의 FK는 Null이거나, Null이 아닌 경우 R2에 실제로 존재하는 값으로 구성 되어야 함

 

● 외래키(FK : Foreign Key)

- 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키(= 속성), 즉 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합

- 릴레이션 R1이 릴레이션 R2를 참조하는 경우, R2의 기본키에는 R1에서 외래키로 사용

- FK는 자기 자신이 속한 릴레이션을 참조할 수도 있음

- 릴레이션 간의 관계를 표현하는 역할

 

-----

+ Relation의 특성

- 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없음.

- 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미함.

- 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미함.

- 속성의 원자성 : 속성 값으로 원자 값만 사용 가능함.

memo : 릴레이션이란?

- 데이터들을 표(table)의 형태로 표현한 것.

- 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성됨.

 

3. 관계 데이터 모델링

ER - to - Relational Model 변환 규칙
  1. 강한 개체 타입의 변환
  2. 약한 개체 타입의 변환
  3. 1:N 관계의 변환
  4. 1:1 관계의 변환
  5. M:N 관계의 변환
  6. N-ary 관계의 변환
  7. 다중값 속성의 변환

■ 변환 전의 ER Diagram

 

1단계 - 강한 개체 타입의 변환

- 각 강한 개체 E에 대응되는 릴레이션 R을 생성함

- E의 단일 속성들을 모두 R의 속성으로 포함시킴

- 복합 속성의 경우 각 하위 컴포넌트만 포함시킴

- 다중값 속성은 추후 고려함

 

- E의 키 속성 중 하나를 선택하여 R의 기본키(Primary Key)로 정함

    - 복합 키의 경우, 이에 속한 속성들의 조합이 R의 기본키가 됨

 

2단계 - 약한 개체 타입의 변환

- 각 약한 개체 W에 대응되는 릴레이션 R 생성

- W의 단일 속성들을 모두 R의 속성으로 포함시킴

- W의 식별 개체 E에 대해서, E의 기본키를 R의 외래키로 포함시킴

- R의 기본키는 E의 기본키와 W의 부분키(Partial Key)의 조합으로 구성

 

3단계 - 1:N 관계의 변환

- 각 1:N 관계 RS에 대해, 이 관계에 참여하는 두 개체를 각각 A(N-side)와 B(1-side)라고 하면

- B의 기본키를 A의 외래키로 포함

- RS에 속한 모든 단일 속성을 A에 포함시킴

 

4단계 - 1:1 관계의 변환

- 각 1:1 관계 RS에 대해, 이 관계에 참여하는 두 개체를 각각 A와 B로 한다면

- A -> B이나 B->A 방향 중 한 방향을 정해서

    - 기본키와 RS에 속한 모든 단일 속성을 다른 개체에 포함시킴

 

5단계 - M:N 관계의 변환

- 각 M:N 관계 RS에 대해, 이 관계에 참여하는 두 개체를 각각 A와 B라고 한다면

- RS에 대응되는 새로운 릴레이션 R을 생성함

- RS에 속한 모든 단일 속성을 R에 포함시킴

- A와 B의 기본키를 R의 외래키로 포함

    - R의 기본키는 S에서 온 외래키와 T에서 온 외래키의 조합으로 구성

 

 

6단계 - N-ary 관계의 변환

- 각 N-ary 관계 RS에 대해, 새로운 릴레이션 R을 생성함

    - N>2인 경우에 해당됨

- RS의 모든 단일 속성을 R의 속성으로 포함시킴

- RS에 참여하는 모든 개체의 기본키를 R의 외래키로 포함시킴

- R의 기본키는 모든 외래키의 조합으로 구성됨

    - 단 대응수가 1인 관계로부터 가져온 외래키는 기본키의 조합에서 빠짐

 

7단계 - 다중값 속성의 변환

- 개체 E에 속한 다중값 속성 MA에 대해 릴레이션 R 생성

- MA의 속성을 R에 포함시킴 (-> 속성 A)

- E의 기본키 K를 R의 외래키로 포함시킴

- R의 기본키는 K와 A의 조합으로 구성됨

 

■ 변환 후의 Relational Schema

 

4. 정규화 - 세 번째 일반 양식

■ 정규화 (Normalization)

- 릴레이션을 관련있는 속성들로만 구성하기 위해 릴레이션을 분해(Decomposition)하는 과정

 

함수적 종속성 (FD - Functional Dependency)

- 어느 시점에서든 릴레이션 내의 모든 튜플에서 하나의 X 값에 대한 Y값이 항상 하나면 "X가 Y를 함수적으로 결정한다" 또는 "Y가 X에 함수족으로 종속되어 있다"

- 함수 종속 관계 : X -> Y, X : 결정자, Y : 종속자

 

■ 함수 종속 관계