DB

ER - model

타자씨 2022. 10. 13. 19:09

1. ER - model 이란?

Database Design 간단하게 아래 6단계 정도로 구분된다.

Requirements Analysis -> Conceptual Design -> Logical Design -> Schema Refinement
 -> Physical design -> Security Design 

그 중 Conceptual design은 기능과 형태를 광범위하게 표현하는 단계이다. 바꾸어 말하면, 어떻게 디자인하려고 한다는 것을 정리하는 단계이다.

주로 ER - model을 이용해서 그래프를 베이스로 해서, database의 기능과 요소를 표현한다. ER diagram은 데이터의 집합 중 특정한 부분을 묘사하기 때문에 schema라고 할 수 있다. 

 

2. 관련 용어 

Data model : 데이터를 묘사하기 위한 concepts의 집합

Schema : data model을 이용하여, 데이터의 집합 중 특정한 부분을 묘사

Relational model of data :모든 관계는 스키마를 가진다.

 

 

3. ER - model 구성요소

ER - model은 Entity Relation Model로 개체(Entity)와 관계(Relationship)를 나타내는 모델이이다. 이름에서 알 수 있듯이, ER - model의 구성요소는 크게 개체(Entity)와 관계(Relationship) 그리고 속성(Attribute)로 나눌 수 있다.

 

Entity : A real - world object described by a set of attribute values
Enity Set : A collection of similar entities.

Entity는 개체이다. Entity를 이해하기 위해서는 먼저 Entity set을 이해할 수 있어야 한다. "학생" 이라는 Entity Set이 있으면, 그 안에 "홍길동" 이라는 학생 1명이 Entity가 되는 것이다. Entity의 특징은 다음 과 같다.

  •  하나의 Entity Set 안에 있는 모든 Entity는 같은 attribute(속성)을 가져야 한다.
  • 각각의 Entity는 하나의 Key를 가져야 한다.
  • 각각의 attribute는 domain(가능한 값)을 가져야 한다.
Attribute : Entity가 가진 속성

개체가 갖는 속성을 의미한다. 예를 들면 "학생"이 가진 학번, 이름, 학년 등의 정보를 속성이라고 한다.

  • Key attribute (키 속성) : 모든 Entity를 구분해주는 고유한 속성                             ex. 주민번호, 학번
  • composite attribute (복합 속성) : 주소를 시 - 군 - 동 - 건물 이름 으로 나누어 표현하는 것과 같다. 더 편한 검색을 위한 방법. 
  • Multi - Valued attribute (다중 속성) : 학생 Entity가 갖는 학과 Attibute에 여러개의 값(복수 전공과 같은)이 있는 것을 의미한다.  
  • Derived attribute (유도된 속송) : 다른 속성으로 부터 유도된 속성. 생년월일을 알 고 있으면, 나이라는 속성이 유도됨. 

다음과 같이 Attribute를 diagram에 표시할 수 있다.

 

 

Relationship : Association among two or more entities
Relationship Set : Collection of similar relationships

말 그대로 개체들 사이의 관계를 나타내주는 관계성이다. 관계를 나타내기 때문에 주로 동사를 사용한다. (ex 근무하다. 수강하다 등) 

다음과 같은 ER diagram이 있다면, Student 개체와 Course 사이를 Takes라는 관계가 묶어주고 있다.

  • Key Contrains : 학생은 여러 수업을 들을 수 있고,  한 강의 역시 여러 학생을 받을 수 있다. 또한 학생을 아무 강의를 듣지 않아도 되지만, 강의는 한명의 학생이라고 있어야 한다. 이런 식으로 개체들 사이에 수적인 관계가 필요하다.    

위 그림에 나타난 실선이 다대다 관계를 나타내고, 화살표가 at most one을 나타내고, bold 선이 al least one을 의미한다.혹은 아래 그림처럼 관계를 직접 작성해서 나타내기도 한다. (1:1 / 1:n / n:m) 

 

 

 

4. 실습

이제 직접 ER diagram을 그려보도록 하자.