본문 바로가기
CS 전공 지식/데이터베이스

4강 - 개념적 데이터 모델링 (ERD)

by Chaedie 2022. 6. 2.
728x90

모든 레퍼런스는 KOCS - 데이터베이스의 원리와 응용 (한양대 백현미 교수님) 입니다.


학습 목표

  1. 데이터베이스 설계의 5단계 중 2단계 - 개념적 설계에 대해 ARABOJA.

4.0. 데이터베이스 설계 단계

  1. 요구 사항 분석 : DB가 실생활에 어떻게 쓰일지 요구 사항을 분석해서 “요구 사항 명세서”를 작성한다. 이를 토대로 다음 단계들에서 설계를 한다.
  2. 개념적 설계 : DBMS 운영과는 상관없이 개념적 스키마 설계 (ERD를 설계한다.)
  3. 논리적 설계 : DMBS에 적합하도록 논리적 스키마 설계 (릴레이션 스키마)
  4. 물리적 설계 :
  5. 구현 : SQL 작성, DB 생성

*본 강의는 “2단계 : 개념적 설계”에서 사용하는 “ERD” 에 대해 알아볼 것이다.

4.1. 데이터 모델링과 데이터 모델의 개념

데이터 모델링

현실 세계에 존재하는 데이터를 컴퓨터 세계의 DB로 옮기는 과정

→ DB 설계의 핵심 과정

(💡 내 생각 : 현실 세계를 관찰하고, 관찰된 정보를 ‘데이터’의 형태로 변환하는 과정이 모델링이다. 지금 진행하고 있는 “Airbnb” 클론 코딩을 생각해보자. Airbnb 웹사이트의 각 화면을 관찰하고 각 요소들을 “데이터”의 형태로 변환하기 위해 적어보고, 그룹별로 테이블에 담고, 각각의 테이블의 관계를 생각해보며 FK를 통해 관계를 맺어주는 과정이 데이터 모델링의 과정이다. 지금 너무 어렵지만 정말 간단하게 리버스 엔지니어링 해보면, 단순히 “현실 세계의 정보를 컴퓨터 세계의 데이터로 옮겨 저장하는 것”이 핵심이다. 어렵지만 단순하게 생각하고, 많이 해보고, 많은 예제를 보면 익숙해질거다. 가쥬아! 🚀🚀🚀 )


4.2. 개체-관계 모델

개체-관계 모델 (E-R model: Entity-Relationship model)

피터 첸이 제안한 개념적 데이터 모델

개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현

핵심 요소 : 개체, 속성, 관계

ER diagram

N:M - 하나의 고객이 여러 책을 구매할수있고, 하나의 책을 여러 고객이 구매할수있는 관계

1:N - 하나의 출판사가 여러 책을 공급할수있고, 하나의 책은 하나의 출판사가 공급한다.

( 💡 내 생각 - ERD 과제를 하다보니, 데이터간의 관계를 생각하는게 가장 중요하더라. 1:N의 관계인지, N:M의 관계인지를 먼저 파악해야만 이후에 논리적 단계로 갈 때 FK를 어떻게 설정하느냐, 테이블안에 어떤 컬럼들이 설정되느냐가 정해지더라.)

개체 (Entity)

현실 세계에서 조직을 운영하는데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것

저장할 가치가 있는 중요 데이터를 가지는 사람, 사물, 개념, 사건 등

다른 개체와 구별되는 이름을 가지고, 각 개체만의 고유 특성이나 상태, 즉 속성을 하나 이상 가짐

ex) 서점에 필요한 개체 : 고객, 책

ex) 학교에 필요한 개체 : 학과, 과목

ERD에선 사각형으로 그림

속성 (Attribute)

개체나 관계가 가지고 있는 고유 특성

의미 있는 데이터의 가장 작은 논리적 단위

ERD에선 타원으로 그림

개체 타입 (Entity Type)

개체를 고유의 이름과 속성으로 정의한 것

개체 인스턴스 (Entity Instance)

개체를 구성하는 속성이 실제 값을 가짐으로써 실체화된 개체 (하나의 로우라고 보면될듯?)

개체 집합 (Entity set)

특정 개체 타입에 대한 개체 인스턴스들을 모아 놓은 것

속성의 분류

단일 값 속성과 다중 값 속성

단일 값 속성 : 값을 하나만 가질 수 있는 속성 (ex) 고객 개체의 이름, 적립금 속성)

다중 값 속성 : 값을 여러 개 가질 수 있는 속성 (ex) 고객 개체의 연락처 속성, 책 개체의 저자 속성), ERD에서 이중 타원으로 표현

단순 속성과 복합 속성

단순 속성 : 의미를 더 분해할 수 없는 속성 (ex) 고객 개체의 적립금 속성, 책 개체의 이름, ISBN, 가격 속성)

복합 속성 : 의미를 분해할 수 있는 속성 (ex) 고객 개체의 주소 속성, 고객 개체의 생년월일 속성)

유도 속성 (Derived Attribute)

기존의 다른 속성 값에서 유도되어 결정되는 속성

값이 별도로 저장되지 않음

점선 타원으로 표현

널 속성 (Null Attribute)

널 값이 허용되는 속성 (공백, 0과는 다름)

키 속성 (Key Attribute)

각 개체 인스턴스를 식별하는 데 사용되는 속성

모든 개체 인스턴스의 키 속성 값이 다름

둘 이상의 속성들로 구성되기도 함 (ex) “고객이름” + “생년월일” 이런 식)

ERD에서 밑줄로 표현

관계 (Relationship)

개체와 개체가 맺고 있는 의미 있는 연관성

개체 집합들 사이의 대응 관계, 즉 매핑을 의미

관계의 유형 : 개체 타입의 수 기준

이항 관계 : 개체 타입 두 개가 맺는 관계

삼항 관계 : 개체 타입 세 개가 맺는 관계

순항 관계 : 개체 타입 하나가 자기 자신과 맺는 관계

관계의 유형 : 매핑 카디널리티 기준

1:1 관계

1:N 관계

N:M 관계

관계의 참여 특성

필수적 참여 : 모든 개체 인스턴스가 관계에 반드시 참여, 이중선으로 표현

선택적 참여 (부분 참여) : 개체 인스턴스 중 일부만 관계에 참여해도 되는 것

관계의 종속성

약한 개체 (Weak Entity) : 오너 개체의 존재 여부에 의존적

오너 개체 (Owner Entity)

오너 개체와 약한 개체는 1:N의 관계를 가지고, 약한 개체는 오너 개체와의 관계에 필수적으로 참여, 약한 개체는 오너 개체의 키를 포함하여 키를 구성하는 특징이 있음

ERD에서 약한 개체는 이중 사각형으로 표현

약한 개체 - 오너 개체 관계는 이중 마름모로 표현

배운 내용 토대로 시작할 때 봤던 ERD 해석해보기


 

댓글