ERD 개념과 실습

23.11.24

    데이터베이스
E-R Diagram example

개념

ERD는 개체 - 관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다.

개체 - 관계 모델은 피터 첸이 제안한 개념적 데이터 모델로, 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현한 것이다.

개념적 데이터 모델링이란 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업이다.

image

이 개체 - 관계 모델에는 3가지 핵심 요소가 있다.

  • 개체
  • 속성
  • 관계

개체

  • 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
  • 저장할 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건 등
  • 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있음
  • 예) 서점에 필요한 개체: 고객, 책
  • 예) 학교에 필요한 개체: 학과, 과목
  • 파일 구조의 레코드와 대응됨
  • E-R 다이어그램에서 사각형으로 표현하고 사각형 안에 이름을 표기한다.(아래는 고객 개체 예시)

image

속성

  • 개체나 관계가 가지고 있는 고유의 특성
  • 의미 있는 데이터의 가장 작은 논리적 단위
  • 파일 구조의 필드와 대응됨
  • E-R 다이어그램에서 타원으로 표현하고 타원 안에 이름을 표기(아래는 고객 개체의 속성)

image

속성은 속성 값의 개수, 의미의 분해 가능성, 유도 속성에 따라 분류할 수 있다.

  1. 속성 값의 개수

단일 값 속성

  • 값을 하나만 가질 수 있는 속성
  • 예) 고객 개체의 이름, 적립금 속성

다중 값 속성

  • 값을 여러개 가질 수 있는 속성
  • 예) 고객 개체의 연락처 속성
  • 예) 책 개체의 저자 속성
  • E-R 다이어그램에서 이중 타원으로 표현

image

  1. 의미의 분해 가능성

단순 속성

  • 의미를 더는 분해할 수 없는 속성
  • 예) 고객 개체의 적립금 속성
  • 예) 책 개체의 이름, ISBN, 가격 속성

복합 속성

  • 의미를 분해할 수 있는 속성
  • 예) 고객 개체의 주소 속성
    • 도, 시, 동, 우편번호 등으로 의미를 세분화할 수 있음
  • 예) 고객 개체의 생년월일 속성
    • 연, 월, 일로 의미를 세분화할 수 있음

image

  1. 유도 속성
  • 기존의 다른 속성의 값에서 유도되어 결정되는 속성
  • 값이 별도로 저장되지 않음
  • 예) 책 개체의 가격과 할인율 속성으로 계산되는 판매가격 속성
  • 예) 고객 개체의 출생연도 속성으로 계산되는 나이 속성
  • E-R 다이어그램에서 점선 타원으로 표현

image

추가 속성

  • 널 속성
    • 널 값이 허용되는 속성
    • 아직 결정되지 않거나 모르는 값 또는 존재하지 않는 값
    • 공백이나 0과는 의미가 다름
    • 예) 등급 속성이 널 값 → 등급이 아직 결정되지 않았음을 의미
  • 키 속성
    • 각 객체 인스턴스를 식별하는 데 사용되는 속성
    • 모든 개체 인스턴스의 키 속성 값이 다름
    • 둘 이상의 속성들로 구성되기도 함
    • 예) 고객 개체의 고객아이디 속성
    • E-R 다이어그램에서 밑줄로 표현

image

관계

  • 개체와 개체가 맺고 있는 의미 있는 연관성
  • 개체 집합들 사이의 대응 관계, 즉 매핑을 의미
  • 예) 고객 개체와 책 개체 간의 구매 관계
  • E-R 다이어그램에서 마름모로 표현

image

관계의 유형

  • 관계에 참여하는 개체 타입의 수 기준(ex: 이항, 삼항..)
  • 매핑 카디널리티 기준(ex: 1:1, 1:n ...)

관계의 참여 특성

  • 필수적 참여(전체 참여)
    • 모든 개체 인스턴스가 관계에 반드시 참여해야 하는 것을 의미
    • ER 다이어그램에서 이중선으로 표현
    • 예) 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여(모든 고객은 책을 반드시 구매해야 함)
  • 선택적 참여(부분 참여)
    • 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미
    • 예) 책 개체가 고객 개체와의 구매 관계에 선택적으로 참여(고객이 구매하지 않은 책이 존재할 수 있음)

image

ERD 기준에선 필수적 참여가 이중선이지만 draw.io 에선 아래와 같이 표현하는 듯. 실선이 필수적 참여, 점선이 선택적 참여

image

관계의 종속성

  • 약한 개체(다른 개체의 존재 여부에 의존)
    • 오너 개체와 일반적으로 일대다 관계
    • 오너 개체와 관계에 필수적으로 참여
    • 오너 개체의 키를 포함하여 키를 구성하는 특징
    • E-R 다이어그램에서 이중 사각형, 관계는 이중 마름모로 표현
  • 오너 개체(다른 개체의 존재 여부를 결정)

image

실습

요구 사항 분석 예 - [한빛 마트 데이터베이스]

  1. 한빛 마트에 회원으로 가입하려면 회원아이디, 비밀번호, 이름, 나이, 직업을 입력해야 한다.
  2. 가입한 회원에게는 등급과 적립금이 부여된다.
  3. 회원은 회원아이디로 식별한다.
  4. 상품에 대한 상품번호, 상품명, 재고량, 단가 정보를 유지해야 한다.
  5. 상품은 상품 번호로 식별한다.
  6. 회원은 여러 상품을 구매할 수 있고, 하나의 상품을 여러 회원이 주문할 수 있다.
  7. 회원이 상품을 주문하면 주문에 대한 주문번호, 주문수량, 배송지, 주문일자 정보를 유지해야 한다.
  8. 각 상품은 한 제조업체가 공급하고, 제조업체 하나는 여러 상품을 공급할 수 있다.
  9. 제조업체가 상품을 공급하면 공급일자와 공급량 정보를 유지해야 한다.
  10. 제조업체에 대한 제조업체명, 전화번호, 위치, 담당자 정보를 유지해야 한다.
  11. 제조업체는 제조업체명으로 식별한다.
  12. 회원은 게시글을 여러 개 작성할 수 있고, 게시글 하나는 한 명의 회원만 작성할 수 있다.
  13. 게시글에 대한 글번호, 글제목, 글내용, 작성일자 정보를 유지해야 한다.
  14. 게시글은 글번호로 식별한다.

위 예시를 1)개체와 속성을 추출하고, 2)관계를 추출한 후, 3)E-R 다이어그램으로 작성해보자.

  1. 개체와 속성 추출
개체 속성
회원 회원 아이디, 비밀번호, 이름, 나이, 직업, 등급, 적립금
상품 상품번호, 상품명, 재고량, 단가
제조업체 제조업체명, 전화번호, 위치, 담당자
게시글 글번호, 글제목, 글내용, 작성일자
  1. 관계 추출
관계 관계에 참여하는 개체 관계 유형 속성
주문 회원(선택), 상품(선택) 다대다 주문번호, 주문수량, 배송지, 주문일자
공급 상품(필수), 제조업체(선택) 일대다 공급일자, 공급량
작성 회원(선택), 게시글(필수) 일대다
  1. E-R 다이어그램

image

참고자료

일론 머스크

Hustle-dev

It is possible for ordinary people to choose to be extraordinary.

Copyright © 2023. hustle-dev. All rights reserved.Designed by Julie