데이터베이스 개론2판(김연희)를 읽고 복습목적으로 내용을 정리한 글입니다.
1. 데이터 모델링과 데이터 모델
1.1 데이터 모델링
데이터베이스에 정보를 저장하기 위해서는 현실세계에 존재하는 정보를 컴퓨터가 저장할 수 있는 형태로 바꿔야한다. 이러한 과정을 모델링(modeling)이라고 한다.
예를 들어, 코끼리를 데이터베이스에 저장한다고 할 때, 코끼리를 특정할 수 있는 데이터를 추출해서 정의해야하는데 이러한 작업을 추상화(abstraction)라고 한다.
개념적 모델링
논리적 모델링
- 개념적 모델링의 결과물을 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업
논리적 모델링은 추상화 결과물을 조금 더 구체화 하는 것.
모델링 = 개념적 모델링 + 논리적 모델
1.2 데이터 모델
모델링을 쉽게 하도록 도와주는 도구. 일종의 모델링을 위한 '틀'의 개념이다.
개념적 데이터 모델
- 현실 세계를 개념적으로 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
- 개체 관계 모델(Entity-Relationship Model)

논리적 데이터 모델
- 개념적 구조를 바탕으로 데이터베이스의 논리적 구조로 표현하는 도구
- 관계 데이터 모델(Relational data model)
2. 개체-관계 모델
- 개념적 데이터 모델 중 대표적인 모델이다.
- 개체(entity)와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 방법이다.
2.1 개체(entity)
현실세계에서 사람과 사물과 같이 구별되는 모든 것을 의미한다.
- 개념이나 사건같이 실체가 없는 것도 개체가 될 수 있다.
- 각 개체는 다른 개체와는 구별되는 이름을 가지고, 고유한 속성을 하나 이상 가지고 있다.
- 고객 개체는 이름, 연락처, 주소 등의 속성을 가진다.
인스턴스(instance)
개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
2.2 속성(attribute)
속성은 개체가 가지고 있는 고유의 특성이다.
속성은 일반적으로 의미 있는 데이터의 가장 작은 논리적 단위로 인식된다.
속성의 분류

2.2.1 단일 값 속성, 다중 값 속성
- 단일 값 속성은 인스턴스에 하나의 값만 가진다.
- 다중 값 속성은 인스턴스 하나가 여러 개의 값을 가질 수 있다.
- ex) 고객 연락처 ->(집 전화, 휴대 전화)
2.2.2 단순 속성, 복합 속성
2.2.3 유도 속성
- 유도 속성은 기존의 다른 속성 값에서 유도되어 결정된다.
- ex) 판매가격은 기존가격과 할인율에 영향을 받아 결정된다.
2.2.4 널(Null) 속성
널(Null) 값은 데이터베이스에서 중요한 의미를 가진다.
- 아직 결정되지 않았거나 모르는 값을 의미한다.
- 공백이나 0과는 다르다.
2.2.5 키 속성
개체 인스턴스를 서로 구분할 수 있는 속성이다.
- 키를 둘 이상의 속성들로 구성하기도 한다.
- 키 속성으로 개체 인스턴스를 식별할 수 있어야 한다.
2.3 관계
개체-관계 모델에서 개체 집합들 사이의 대응 관계, 즉 매핑을 의미한다.
2.3.1 관계의 유형
각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수에 따라 일대일, 일대다, 다대다라는 세 가지 유형으로 분류할 수 있다.
일대일(1:1) 관계
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺는다.
- 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 하나와 관계를 맺는다.
일대다(1:n) 관계
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러개와 관계를 맺는다.
- 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 하나와 관계를 맺는다.
다대다(N:M) 관계
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러개와 관계를 맺는다.
- 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 여러개와 관계를 맺는다.
2.3.2 관계의 참여 특성
예를 들어 상품과 고객 사이에 구매
라는 관계가 존재할 때, 상품과 고객은 모두 구매에 선택적으로 참여한다.
2.3.3 관계의 종속성
- 개체 A가 독자적으로 존재할 수 없고 B의 존재 여부에 의존적이라면, 개체 A가 B에 종속되어 있다고 한다.
- ex) 학교 입장에서 학생 없이 학부모 개체는 존재할 수 없다.
이렇게 존재를 결정짓는 종속성을 존재 종속이라 한다. 이때 존재에 의존적인 개체 A를 약한 개체(weak entity), 다른 개체의 존재 여부를 결정하는 개체 A를 강한 개체(strong entity)라 한다.
3. 논리적 데이터 모델
3.1 논리적 데이터 모델의 개념과 특성
E-R다이어그램으로 표현된 개념적 구조를 실제 데이터베이스에 표현하는 방식을 결정하는 논리적 데이터 모델링에서는 데이터베이스 관리 시스템의 종류가 중요하다.
3.2 계층 데이터 모델(hierarchical data model)
특징
- 계층 데이터 모델은 데이터베이스의 논리적 구조가 트리(tree) 형태다.
- 두 개체 사이에 관계를 하나만 정의할 수 있어, 관계에 이름을 붙여 구분할 필요가 없다.
- 링크는 일대다 관계만 표현할 수 있다.
일대다 관계는 사실상 일대일 관계를 포함한다.
단점
계층 데이터 모델을 관계를 정의할 때 여러 제약이 존재하여, 구조가 복잡해질 수 있다.
데이터의 삽입,삭제,수정,검색 등의 연산이 쉽지 않다는 단점이 있다.
3.3 네트워크 데이터 모델(network data model)
- 네트워크 데이터 모델은 데이터베이스의 논리적 구조가 그래프(graph) 또는 네트워크(network) 형태다.
특징
- 계층 데이터 모델과 마찬가지로 일대다 관계만 표현할 수 있다.
- 두 개체간 관계가 여러개일 수 있다.
장점
- 관계를 여러개 표현할 수 있어서 계층 데이터 모델보다 개념적 구조를 논리적 구조로 더 자연스럽게 모델링할 수 있다.
단점
- 구조가 계층 데이터 모델보다 복잡해질 수 있다.
- 구조가 복잡해지면 데이터에 대한 연산이 더 어려워진다.
일반적으로 DBMS는 논리적 데이터 모델을 하나만 지원한다. 따라서 데이터베이스를 구축하는 환경에 맞는 데이터베이스 관리 시스템을 먼저 선택한 후 이를 지원하는 논리적 데이터 모델을 선택해야 한다.
Reference
IT CookBook, 데이터베이스 개론(2판): 기초 개념부터 빅데이터까지_김연희