#  데이터베이스 개론 : 4. 데이터 모델링

- Author: @laetipark
- Published: 2022-12-10
- Updated: 2022-12-10
- Source: http://blex.me/@laetipark/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B0%9C%EB%A1%A0-4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EB%A7%81
- Tags: 데이터베이스, 한빛아카데미, database

---

## 데이터 모델링
- 데이터를 데이터베이스로 옮기는 과정
- 개념적 데이터 모델 : 데이터베이스의 개념적 구조로 표현하는 도구(개체-관계 모델)
- 논리적 데이터 모델 : 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구(관계 데이터 모델)
- 데이터 모델 구성 : 데이터구조 / 연산 / 제약조건

## 개체-관계 모델(E-R Model)
- 개체와 개체 간 관계를 개념적 구조로 표현한 모델
- 개체-관계 다이어그램(E-R Diagram) : 개체-관계 모델을 그림으로 표현한 것
- 개체(Entity) : 조직을 운영하는 데 꼭 필요한 사람이나 사물 같이 구별되는 모든 것
	- 다른 개체와 구별되는 이름과 고유한 특성이나 상태로 속성 하나 이상을 가지고 있음
	- E-R 다이어그램에서 사각형으로 표현  
![](https://static.blex.me/images/content/2022/12/10/2022121016_R55QP989a65SgSmS9kV3.png)
	- 개체 타입 : 개체를 고유의 이름이나 속성들로 정의한 것
	- 개체 인스턴스 : 개체를 구성하고 있는 속성이 실제 값을 가지면서 실체화된 개체
	- 개체 집합 : 특정 개체 타입에 대한 개체 인스턴스들의 집합
	![](https://static.blex.me/images/content/2022/12/10/2022121016_WbW687IHoECsUfPwKZIx.png)
- 속성(Attribute) : 개체나 관계가 가지고 있는 고유의 특성
	- 데이터의 가장 작은 논리적 단위
	- E-R 다이어그램에서 타원으로 표현  
![](https://static.blex.me/images/content/2022/12/10/2022121016_cRziklDg2dehvilt30ZP.png)
	- 단일 값 속성(Single-Valued Attribute) : 값을 하나만 가질 수 있는 속성
	- 다중 값 속성(Multi-Valued Attribute) : 값을 여러 개 가질 수 있는 속성
		- E-R 다이어그램에서 이중 타원으로 표현
	- 유도 속성(Derived Attribute) : 다른 속성 값에 유도되어 결정되는 속성
		- E-R 다이어그램에서 점선 타원으로 표현  
	![](https://static.blex.me/images/content/2022/12/10/2022121017_cSK1BHn4Ny3L2rSP2Xgc.png)
	- 단순 속성(Simple Attribute)
		- 의미를 더는 분해할 수 없는 속성
	- 복합 속성(Composite Attribute)
		- 의미를 분해할 수 있는 속성
	- 널 속성(Null Attribute) : 존재하지 않는 값인 널 값이 허용되는 속성
	- 키 속성(Key Attribute) : 각 개체 인스턴스를 식별하는 데 사용하는 속성으로 모두 값이 다름
		- E-R 다이어그램에서 밑줄로 표현
	- 관계 : 개체와 개체가 맺고 있는 연관성, 개체 집합들 사이의 대응 관계, 매핑(mapping)
		- E-R 다이어그램에서 마름모로 표현  
	![](https://static.blex.me/images/content/2022/12/10/2022121020_OoKurSBqgKm85lwSWRex.png)
		- 관계에 참여하는 개체 타입의 수 기준 관계의 유형
			- 이항 관계 : 개체 타입 두 개가 맺는 관계
			- 삼항 관계 : 개체 타입 세 개가 맺는 관계
			- 순환 관계 : 개체 타입 하나가 자기 자신과 맺는 관계
		- 매핑 카디널리티 기준 관계의 유형
			- 매피 카디널리티 : 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
			- 일대일(1:1) 관계
			- 일대다(1:n)관계
			- 다대다(n:m) 관계
		- 관계의 참여 특성
			- 필수적 참여(Mandatory) : 모든 개체 인스턴스가 관계에 반드시 참여해야 하는 것
				- E-R 다이어그램에서 이중선으로 표현
			- 선택적 참여(Optional) : 개체 인스턴스 중 일부만 관계에 참여해도 되는 것
### E-R 다이어그램
- 개체 : 사각형으로 표현
- 관계 : 마름모로 표현
- 속성 : 타원으로 표현
- 링크 : 선으로 연결
- 레이블 : 일대일, 일대다, 다대다 관계 표기  
![](https://static.blex.me/images/content/2022/12/10/2022121020_L71tI9IMvHX6olYJgG6j.png)

## 논리적 데이터 모델
- E-R 다이어그램으로 표현한 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적 구조 
	- 데이터베이스의 스키마(Schema)와 같음
- 관계 데이터 모델 : 일반적으로 많이 사용되며, 2차원 테이블 형태
- 계층 데이터 모델 : 논리적 구조가 트리(tree) 형태
	- 루트 역할하는 개체가 존재하고 사이클이 존재하지 않음, 상하 관계
	- 두 개체 사이 하나의 관계만 정의할 수 있으며, 다대다 관계를 직접 표현할 수 없음
	- 데이터 삽입, 삭제, 수정, 검색이 쉽지 않음
- 네트워크 데이터 모델 : 논리적 구조가 그래프(graph) 형태
	- 개체 간 일대다 관계만 허용됨(owner : member)
	- 다대다 관계를 직접 표현할 수 없음
	- 구조가 복잡하고 데이터 삽입, 삭제, 수정, 검색이 쉽지 않음

## 참고문헌
김연희, 『데이터베이스 개론』, 2판, 한빛아카데미, 2019
