CS 전공/DB

[데이터베이스] 4. 데이터 모델링

Easyho.log 2024. 4. 19. 16:22

1. 데이터 모델링과 데이터 모델의 개념

1. 2단계 데이터 모델링

- 개념적 데이터 모델링 : 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업

- 논리적 데이터 모델링 : 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

모델링의 예

2. 데이터 모델

데이터 모델이란, 데이터 모델링의 결과물을 표현하는 도구이다.

 

1) 개념적 데이터 모델

: 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구이다. (개체 - 관계 모델)

2) 논리적 데이터 모델

: 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구이다. (관계 데이터 모델)

3. 데이터 모델의 구성

1) 데이터 구조 (정적)

- 개념적 모델링에서의 데이터 구조 : 현실 세계를 개념 세계로 추상화 했을 때 어떤 요소로 이루어져 있는가

- 논리적 모델링에서의 데이터 구조 : 데이터를 어떤 모습으로 저장할 것인가

2) 연산 (동적)

3) 제약 조건 -> 데이터 무결성 유지 목적


2. 개체 - 관계 모델

1. 개체 - 관계 모델 (E-R Model), 개체-관계 다이어그램 (E-R Diagram)

1) E-R Model

- P.chen이 제안한 개념적 데이터 모델

- 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현

- 사용하는 DBMS의 영향을 받지 않는다.

- 핵심 요소 : 개체, 속성, 관계

 

2) E-R Diagram

: 개체 관계 모델을 이용해 햔실 세계를 개념적으로 모델링한 결과물을 그림으로 표현하는 것

2. 개체 - 관계 모델의 요소

1) 개체 : 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것, 저장할 가치가 있는 중요 데이터를 가지고 있다. 또한, 다른 개체와 구별되는 이름을 가지고 있고 고유한 특성 즉, 속성을 가지고 있음

ex. 서점 데이터베이스에서 필요한 개체 : 고객, 책

- 개체 인스턴스 : 개체가 구성하고 있는 속성이 실제 값을 가지면서 실체화된 개체이다.

- 개체 집합 : 개체 인스턴스의 집합이다.

 

2) 속성 : 개체가 가지고 있는 고유한 특성이다.

- 단일 값 속성 : 값을 하나만 가질 수 있는 속성 (타원 하나)

- 다중 값 속성 : 값을 여러 개 가질 수 있는 속성 (타원 둘)

단일 값 속성과 다중 값 속성

 

- 단순 속성 : 의미를 더는 분해할 수 없는 속성 (ex. 이름 속성 : 분해가 안됨)

- 복합 속성 : 의미를 더 분해할 수 있는 속성 (ex. 주소 속성 -> 읍,면,동으로 나눌 수 있음)

 

-NULL 속성 : 널 값이 허용된다.

여기서 NULL 값은 아직 결정되지 않았거나 존재하지 않거나 모르는 값이다. (0이랑 다르다!)

- 키 속성 : 각 개체 인스턴스를 식별하는 데 사용되는 속성

 

3) 관계 : 개체와 개체가 맺고 있는 의미 있는 연관성

- 유형 : 일대일 (1:1), 일대다 (1:M), 다대다(N:M) 관계

- 참여 특성 : 필수적 참여, 선택적 참여

  •  필수적 참여 : 모든 개체 인스턴스가 관계에 반드시 참여해야 되는 것 의미 (이중선)
  •  선택적 참여 : 모든 개체 인스턴스가 관계에 반드시 참여해야 되는 것은 아님 (단일선)

- 관계의 종속성 : 약한 개체(의존적), 강한 개체(결정적)

  • 강한 개체와 약한 개체는 일반적으로 일대다 관계이다.
  • 약한 개체는 강한 개체와의 관계에서 필수적 참여
  • 약한 개체는 강한 개체의 키를 포함하여 키를 구성
  • 약한 개체는 이중 사각형, 또한 강한 개체와 약한 개체 사이의 관계는 이중 마름모이다.

약한 개체와 강한 개체, 그리고 그 사이의 관계

 

저들을 E-R 다이어그램으로 표현하기 위해서는 다음과 같이 그려야 한다.

E-R 다이어그램