본문 바로가기
DB & SQL/데이터베이스 개론

데이터 모델링

by k-mozzi 2022. 1. 31.
반응형
Preface

 

이번 장에선 데이터 모델링에 대해 공부했다.

 

E-R 다이어그램은 소프트웨어 공학에서 이미 배웠던 내용이라 복습하는 기분으로 지난 포스팅을 살펴보며 쉽게 이해하고 넘어갈 수 있었다.

 

개념적인 내용들을 도식화하는 개념적 모델링은 생각보다 단순한 작업인 것 같은데, 이를 실제 DB에 저장하는 논리적 모델링 작업은 어떻게 진행될지 궁금하다.

 

이론적인 부분을 하루 빨리 마무리한 후 실제로 데이터베이스를 구축하여 나만의 웹 사이트를 만들어보고 싶다.


 

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

 

 

- 데이터 모델링: 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정

1) 개념적 모델링: 현실 세계의 특정 개념에 대한 중요 데이터를 추출하여 개념 세계로 옮기는 작업

2) 논리적 모델링: 개념 세계의 데이터를 DB에 저장할 구조를 결정하고 이 구조로 표현하는 작업

 

 

- 데이터 모델: 데이터 모델링의 결과물을 표현하는 도구

1) 개념적 데이터 모델: 주로 개체-관계 모델을 사용

2) 논리적 데이터 모델: 주로 관계 데이터 모델을 사용

 

 

- 데이터 모델의 구성 요소

1) 데이터 구조

2) 연산

3) 제약 조건

 

 

- 사용하는 데이터 모델에 다라 현실 세계를 표현하는 개념적 구조나 논리적 구조의 모습이 달라진다.

 


 

2. 개체-관계 모델

 

 

- 개체-관계 모델: 개체(entity)와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 방법

 

 

- 개체-관계(E-R) 다이어그램: 현실 세계를 개체-관계 모델을 이용해 개념적으로 모델링하여 그림으로 표현한 것

 

 

- 개체: 현실 세계에서 구별되는 모든 것

→ 개념적으로만 존재하는 것도 개체가 될 수 있다.

 

 

- 개체 타입: 개체를 고유의 이름과 속성들로 정의한 것

 

 

- 개체 인스턴스(어커런스): 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체

 

 

- 개체 집합: 특정 개체 타입에 대한 개체 인스턴스들을 모아 놓은 것

 

 

- 대응 관계

1) 개체 → 레코드(행: low/Tuple)

2) 속성 → 필드(열: column)

3) 개체 타입 → 레코드 타입

4) 개체 인스턴스 → 레코드 인스턴스

 

 

- 속성: 개체가 가지고 있는 고유의 특성

→ 의미 있는 데이터의 가장 작은 논리적 단위

 

 

- 속성의 분류

1) 단일 값 속성: 특정 개체를 구성하는 속성의 값이 하나인 경우

→ ex) 이름, 적립금 등의 속성

2) 다중 값 속성: 속성이 값을 여러 개 가질 수 있는 경우

→ ex) 연락처 속성

3) 단순 속성: 의미를 더 분해할 수 없는 경우

4) 복합 속성: 의미를 분해할 수 있어 값이 여러 개의 의미를 포함하는 경우

5) 유도 속성: 값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값에서 유도되어 결정되는 속성

→ cf. 저장 속성: 실제로 값을 저장하고 있는 것

6) 널 속성: 널 값이 허용되는 속성

→ 널 값: 아직 결정되지 않았거나 모르는 값

7) 키 속성: 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용되는 속성

 

 

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

1) 개체 집합들 사이의 대응 관계(매핑)을 의미한다.

2) 관계도 속성을 가질 수 있다.

→ 관계를 맺음으로써 발생하는 중요한 데이터

 

 

- 관계의 유형

1) 이항 관계

2) 삼항 관계

3) 순환 관계: 개체 타입 하나가 자기 자신과 맺는 관계

 

 

- 매핑 카디널리티: 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수

1) 일대일 관계

2) 일대다 관계

3) 다대다 관계

※참고

 

 

- 존재 종속: 개체 A가 존재해야 개체 B가 존재할 수 있고, A가 삭제되면 B도 삭제되는 관계의 종속

1) 약한 개체: 다른 개체의 존재 여부에 의존적인 개체 B

→ 구별자(구분키): 약한 개체를 구별해주는 속성

2) 강한 개체: 다른 개체의 존재 여부를 결정하는 개체 A

 

 

- E-R 다이어그램

1) 개체: 사각형

2) 속성: 타원

3) 다중값 속성: 이중 타원

4) 유도 속성: 점선 타원

5) 키 속성: 밑줄

6) 관계: 마름모

7) 필수적 참여 관계: 이중선

8) 약한 개체: 이중 사각형

9) 약한 개체와 강한 개체가 맺는 관계: 이중 마름모

 

 


 

3. 논리적 데이터 모델

 

 

- 데이터 스키마: 논리적 데이터 모델로 표현된 DB의 논리적 구조

 

 

- 계층 데이터 모델

1) DB의 논리적 구조가 트리 형태이다.

2) 일대다 관계만 표현할 수 있다.

3) 두 개체 사이의 관계를 하나만 정의할 수 있다.

4) 루트 역할을 하는 개체가 존재한다.

5) 사이클이 존재하지 않는다.

 

 

- 네트워크 데이터 모델

1) DB의 논리적 구조가 그래프 혹은 네트워크 형태이다.

2) 일대다 관계만 표현할 수 있다.

→ 각 개체를 '오너'와 '멤버'라 부르고 이 관계를 오너-멤버 관계라 부른다.

3) 두 개체 사이의 관계를 여러 개 정의할 수 있어 관계를 이름으로 구별한다.

 

 

- DB를 구축하는 환경에 맞는 DBMS를 선택한 후 이를 지원하는 논리적 데이터 모델을 선택해야 한다.

 

728x90
반응형

'DB & SQL > 데이터베이스 개론' 카테고리의 다른 글

관계 데이터 연산  (0) 2022.02.13
관계 데이터 모델  (0) 2022.02.11
데이터베이스 시스템  (0) 2022.01.26
데이터베이스 관리 시스템  (0) 2022.01.24
데이터베이스 기본 개념  (1) 2022.01.23

댓글