본문 바로가기

데이터베이스

[데이터베이스] ERD 설계하기 (1) - 기본과 용어

728x90
반응형

 

데이터베이스를 설계 할 때, 데이터베이스를 물리적으로 만들기 전에

어떠한 구조를 가지고 만들 것인지 설계도를 그리는 작업을 해야합니다.

 

 

이러한 것을 conceptual database design(개념적 DB 설계)라고 합니다.

conceptual database를 디자인 하는 방법은 ERD, EERD 등 다양한 방법이 있습니다.

 

 

이번 시간에는 ER(Entity Relationship) Diagram, 즉 ERD가 무엇인지, 또 어떻게 그리는지에 대해서 다뤄보고자합니다.

 

 

 

 

ER Model의 기본

 

 

우선 ER Model을 만들기 전에, 기본적인 용어를 알아두어야합니다.

 

 

Entities

엔티티는 ER 모델의 기본적인 개념입니다.

DB에 저장되는 객체 하나하나를 entity라고 부릅니다.

예를 들어서 사원 relation의 김수연, 박지훈, 홍길동 등등.. 의 사원 이름이나 부서 table의 리서치부, 개발부 와 같은 것들이 모두 각각의 엔티티라고 볼 수 있습니다.

 

 

entity type

어트리뷰트들이 집합되어있는 상태이며,

예시로 '이름, 사원번호, 집주소, 성별, 탄생일이라는 어트리뷰트를 모아놓은 entity type은 사원이다' 라고 말 할 수 있습니다.

ERD에서 각 entity type은 반드시 유니크한 값을 갖는 'key'를 두어야합니다.

 

 

Attributes

어트리뷰트는 entity의 속성을 의미합니다.

즉, 사원 relation에 이름, 사원번호, 집주소, 성별, 탄생일에 대한 내용이 정의되어있다면,

어트리뷰트는 이름, 사원번호, 집주소, 성별, 탄생일이 됩니다.

따라서 특정한 엔티티는 각 어트리뷰트에 대한 값을 가지고 있다라고 말할 수 있습니다.

 

 

data type (value set)

각 어트리뷰트의 데이터 형을 의미합니다.

예시로 integer, string, date 등이 있습니다.

 

 

simple과 Multi-valued

 

simple

각 엔티티에서 하나의 어트리뷰트에 여러개의 값을 넣을 수 없는 상태를 의미합니다.

예를 들어서 성별이나 이름과 같이 하나의 엔티티가 여러 개의 값을 가질 수 없는 경우가 있습니다.

이름이 '김수연이자 홍길동이다'라는 경우가 없기 때문입니다.

 

multi-valued

각 엔티티에서 하나의 어트리뷰트에 여러 개의 값을 가질 수 있는 상태입니다.

예를 들어서 '차에 사용된 색깔'이라는 어트리뷰트는 '노랑, 파랑, 빨강'과 같이 한 번에 여러 개의 값을 가질 수 있습니다.

 

 

composite

어트리뷰트 안에 또 다른 어트리뷰트가 있는, 즉 계층 구조를 가진 어트리뷰트가 있는 상태를 의미합니다.

아래와 같은 경우가 address 안에 street_address, city, state, zip 이라는 어트리뷰트가 있고,

street_address 안에 또 number, street, Apartment_number와 같은 어트리뷰트가 있으므로 composite의 경우에 해당합니다.

 

 

 

 

 

ERD의 법칙

 

 

ERD를 설계할 때에는 주어진 다음의 규칙들에 따라서 그려야합니다.

하나씩 익히며 간단한 ERD부터 완성시켜보도록 하겠습니다.

 

 

- attribute는 oval 모양으로 그린다.

- multivalued는 oval의 선을 두겹으로 하여 그린다.

- composite는 계층 그대로 그린다.

- key로 사용할 수 있는 attribute의 아래에는 밑줄을 한다.

- entity type은 네모로 그린다.

 

 

이제 위의 규칙을 사용하여 아래의 조건을 만족하는 ERD를 그려보겠습니다.

 

 

entity type : 자동차

숫자와 등록 지역으로 이루어진 차량 번호 / 차량 모델 / 차의 색깔 / 출시년도로 이루어져있음

차의 색깔은 한 대에 여러 개의 색깔이 사용 될 수 있음

 

 

이러한 정보로 다음의 정보를 알 수 있습니다.

 

 

entity type은 자동차

차량 번호는 숫자 attribute, 등록 지역 attribute를 포함한 composite attribute이고, 고유한 번호이니 key가 될 수 있음

차의 색깔은 multi valued attribute

출시년도는 attribute

 

 

이제 위의 분석에 따라서 아래와 같이 ERD를 그릴 수 있게 됩니다.

 

 

 

 

다음 시간에는 여러 개의 entity type 들을 이어주는 relationship에 대해서 배우고,

ERD에 relationship을 적용시키는 방법에 대해서 배워보도록 하겠습니다.

 

 

728x90
반응형