ERD 개념과 실습
23.11.24
데이터베이스
개념
ERD는 개체 - 관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다.
개체 - 관계 모델은 피터 첸이 제안한 개념적 데이터 모델로, 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현한 것이다.
개념적 데이터 모델링이란 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업이다.
이 개체 - 관계 모델에는 3가지 핵심 요소가 있다.
- 개체
- 속성
- 관계
개체
- 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
- 저장할 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건 등
- 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있음
- 예) 서점에 필요한 개체: 고객, 책
- 예) 학교에 필요한 개체: 학과, 과목
- 파일 구조의 레코드와 대응됨
- E-R 다이어그램에서 사각형으로 표현하고 사각형 안에 이름을 표기한다.(아래는 고객 개체 예시)
속성
- 개체나 관계가 가지고 있는 고유의 특성
- 의미 있는 데이터의 가장 작은 논리적 단위
- 파일 구조의 필드와 대응됨
- E-R 다이어그램에서 타원으로 표현하고 타원 안에 이름을 표기(아래는 고객 개체의 속성)
속성은 속성 값의 개수, 의미의 분해 가능성, 유도 속성에 따라 분류할 수 있다.
- 속성 값의 개수
단일 값 속성
- 값을 하나만 가질 수 있는 속성
- 예) 고객 개체의 이름, 적립금 속성
다중 값 속성
- 값을 여러개 가질 수 있는 속성
- 예) 고객 개체의 연락처 속성
- 예) 책 개체의 저자 속성
- E-R 다이어그램에서 이중 타원으로 표현
- 의미의 분해 가능성
단순 속성
- 의미를 더는 분해할 수 없는 속성
- 예) 고객 개체의 적립금 속성
- 예) 책 개체의 이름, ISBN, 가격 속성
복합 속성
- 의미를 분해할 수 있는 속성
- 예) 고객 개체의 주소 속성
- 도, 시, 동, 우편번호 등으로 의미를 세분화할 수 있음
- 예) 고객 개체의 생년월일 속성
- 연, 월, 일로 의미를 세분화할 수 있음
- 유도 속성
- 기존의 다른 속성의 값에서 유도되어 결정되는 속성
- 값이 별도로 저장되지 않음
- 예) 책 개체의 가격과 할인율 속성으로 계산되는 판매가격 속성
- 예) 고객 개체의 출생연도 속성으로 계산되는 나이 속성
- E-R 다이어그램에서 점선 타원으로 표현
추가 속성
- 널 속성
- 널 값이 허용되는 속성
- 아직 결정되지 않거나 모르는 값 또는 존재하지 않는 값
- 공백이나 0과는 의미가 다름
- 예) 등급 속성이 널 값 → 등급이 아직 결정되지 않았음을 의미
- 키 속성
- 각 객체 인스턴스를 식별하는 데 사용되는 속성
- 모든 개체 인스턴스의 키 속성 값이 다름
- 둘 이상의 속성들로 구성되기도 함
- 예) 고객 개체의 고객아이디 속성
- E-R 다이어그램에서 밑줄로 표현
관계
- 개체와 개체가 맺고 있는 의미 있는 연관성
- 개체 집합들 사이의 대응 관계, 즉 매핑을 의미
- 예) 고객 개체와 책 개체 간의 구매 관계
- E-R 다이어그램에서 마름모로 표현
관계의 유형
- 관계에 참여하는 개체 타입의 수 기준(ex: 이항, 삼항..)
- 매핑 카디널리티 기준(ex: 1:1, 1:n ...)
관계의 참여 특성
- 필수적 참여(전체 참여)
- 모든 개체 인스턴스가 관계에 반드시 참여해야 하는 것을 의미
- ER 다이어그램에서 이중선으로 표현
- 예) 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여(모든 고객은 책을 반드시 구매해야 함)
- 선택적 참여(부분 참여)
- 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미
- 예) 책 개체가 고객 개체와의 구매 관계에 선택적으로 참여(고객이 구매하지 않은 책이 존재할 수 있음)
ERD 기준에선 필수적 참여가 이중선이지만 draw.io 에선 아래와 같이 표현하는 듯. 실선이 필수적 참여, 점선이 선택적 참여
관계의 종속성
- 약한 개체(다른 개체의 존재 여부에 의존)
- 오너 개체와 일반적으로 일대다 관계
- 오너 개체와 관계에 필수적으로 참여
- 오너 개체의 키를 포함하여 키를 구성하는 특징
- E-R 다이어그램에서 이중 사각형, 관계는 이중 마름모로 표현
- 오너 개체(다른 개체의 존재 여부를 결정)
실습
요구 사항 분석 예 - [한빛 마트 데이터베이스]
- 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
- 가입한 회원에게는 등급과 적립금이 부여된다.
- 회원은 회원아이디로 식별한다.
- 상품에 대한 상품번호, 상품명, 재고량, 단가 정보를 유지해야 한다.
- 상품은 상품 번호로 식별한다.
- 회원은 여러 상품을 구매할 수 있고, 하나의 상품을 여러 회원이 주문할 수 있다.
- 회원이 상품을 주문하면 주문에 대한 주문번호, 주문수량, 배송지, 주문일자 정보를 유지해야 한다.
- 각 상품은 한 제조업체가 공급하고, 제조업체 하나는 여러 상품을 공급할 수 있다.
- 제조업체가 상품을 공급하면 공급일자와 공급량 정보를 유지해야 한다.
- 제조업체에 대한 제조업체명, 전화번호, 위치, 담당자 정보를 유지해야 한다.
- 제조업체는 제조업체명으로 식별한다.
- 회원은 게시글을 여러 개 작성할 수 있고, 게시글 하나는 한 명의 회원만 작성할 수 있다.
- 게시글에 대한 글번호, 글제목, 글내용, 작성일자 정보를 유지해야 한다.
- 게시글은 글번호로 식별한다.
위 예시를 1)개체와 속성을 추출하고, 2)관계를 추출한 후, 3)E-R 다이어그램으로 작성해보자.
- 개체와 속성 추출
개체 | 속성 |
---|---|
회원 | 회원 아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금 |
상품 | 상품번호, 상품명, 재고량, 단가 |
제조업체 | 제조업체명, 전화번호, 위치, 담당자 |
게시글 | 글번호, 글제목, 글내용, 작성일자 |
- 관계 추출
관계 | 관계에 참여하는 개체 | 관계 유형 | 속성 |
---|---|---|---|
주문 | 회원(선택), 상품(선택) | 다대다 | 주문번호, 주문수량, 배송지, 주문일자 |
공급 | 상품(필수), 제조업체(선택) | 일대다 | 공급일자, 공급량 |
작성 | 회원(선택), 게시글(필수) | 일대다 |
- E-R 다이어그램
참고자료
Hustle-dev
It is possible for ordinary people to choose to be extraordinary.