03 - E-R Model을 이용한 데이터 Modeling

JeonghwanKim·2023년 8월 19일
0

데이터베이스

목록 보기
3/8
post-thumbnail

데이터 모델이란?

데이터 추상화의 수단을 제공하는 것.

구조 - Elements, Data types, relationship, constraints

실행 - Query, Insert, Delete, Update, User-Defined

제약 - Not-Null, Key, Unique ...

Chap2의 용어 정리

Database Schema = A set of Relations

스키마는 Relations(테이블들)로 이루어져있습니다.

Relation = A set of Tuples

Relation(테이블)은 Tuple(instance)들로 이루어져 있습니다.

Record (Tuple) = A group of Fields (attributes)

Record = Tuple = Instance 들 Fields(Attributes)(속성값)들로 이루어져 있습니다.

Tuple을 행이라고 표현하고 Fields는 열로 표현합니다.

Database Schema vs Database State

스키마는 시작 구조를 뜻하고, State는 이를 만족하는 특정 상태의 Data를 뜻합니다.

Chap2 리뷰

Three-Schema Architecture의 구성

1) External Schema 2) Conceptual Schema 3) Internal Schema

  1. 데이터의 독립성 - Schema에서의 변화는 다른 Level의 Schema에 영향을 미치지 않고 Mapping된 정보만 바꾸어서 이루어짐
  1. DBMS의 언어들.

1) DDL - 구조정의 명령어

2) DML - DB 조정 명령어

E-R Model

데이터베이스의 디자인 과정은 2 과정을 거쳐서 이루어집니다.

첫번째인 Application 디자인 단계에선 프로그램과 DB에 접근하는 사용자가 상호작용하는 GUI를 담당합니다.

두번째인 Database 디자인 단계에서는 Conceptual Schema 구성이 이루어집니다.

E-R Model은 후자를 다룹니다.

E-R Model의 구성과 용어

E-R 은 Entity-Relationship을 뜻하고 각각의 Entities, Relationshops, Attributes로 표현됩니다.

Entity란 개체를 뜻합니다.

Attrtibute는 속성을 뜻합니다.

Realation은 Entity들의 관계를 뜻합니다.

예를 들어보겠습니다.

영화관 회원 관리 어플이 있다면 Entity는 '사용자정보', '영화정보' 등등을 뜻합니다.

Attribute는 '사용자정보'의 경우 이름, 주소, 나이, 휴대폰 전화 등이 있습니다.

Attribute의 종류

Simple (Atomic)

  • 하나의 원자값으로 표현되는 것들입니다. ex) Sex, Height...

Composite (합성)

  • 몇가지 구성요소들의 합으로 이루어진 것입니다. Ex) Name(First name, Last name)

Multi-valued(다중값)

  • 하나의 속성에 여러 값이 들어간 것을 뜻합니다. Ex) Color (Red, Green...)

a) 저장 속성 - 단순히 저장되는 속성

b) 도출 속성 - 다른 Attribute로 부터 도출할 수 있는 속성, Ex) 생년월일로 부터 나이를 도출

Entity Type과 Entity Sets에 대하여

전자는 내부 Schema같은 느낌으로 숨겨져있는 정보이고 후자는 해당 Entity에 속해있는 값들을 보여준다.

Key Attrubutes (키속성)

해당 속성값만 알면 Entity를 밝혀낼 수 있는 유일한 고유값.

키속성은 여러개를 가질 수 있습니다.

또한 속성은 특정한 형식을 만족시켜야할 수도 있으며 (Valueset) 범위가 정해져있을 수 있습니다.

Ex) Date - MM-DD-YYYY, Age - 16~70

ER diagram의 개념

Relationship에 대하여

1. 관계

ex) EMPLOYEE 홍길동 Works On SpacX Project

2. Relationship Type (관계 유형)

Binary는 두개의 서로 다른 Entity가 참여하는 것

Ternary는 세개로 이루어진 것

Relationship Type vs Relationship Set

Type은 Schema와 같은 것, Set은 Instance 같은 것.

Role Name

역할 이름은 Entity에 부여됩니다.

모든 Entity Type이 분명하게 정의된 경우엔 Entity Type name = Role name이지만

Entity Type이 하나 이상의 Relationshipe Type에 다른 역할들로 참여하는 경우에는 role name의 명시가 필요합니다.

Recursive Relationship 재귀 관계

자기 자신에 대한 관계를 나타내는 관계입니다.

SUPERVISION의 경우 EMPLOYEE에 속하지만 Role Name이 다릅니다.

위 관계는 재귀적인 속성을 띄고 있습니다.

Cardinality Ratio

Entity가 최대 몇 개의 관계를 맺을 수 있는지를 나타내는 값입니다.

Ex) 1:1 1:N N:1 M:N

위 그림은 MANAGES 관계에 대해서 두 Entity가 1:1의 관계를 가지고 있습니다.

위 사진에선 N : M의 관계를 가지고 있습니다.

한 Employee가 여러개의 Project에 대해서 일할 수 있으며

한 Project는 여러명의 Employee를 포함시킬 수 있습니다.

1 : N의 관계도입니다.

Participation constraint (on each participating entity type)

어떤 relation type에 대해 어떤 entity가 존재하기 위해서는, 또 다른 entity와 (전체적 또는 부분적으로) 관계되어야 합니다. 즉, 아무런 Entity가 참여하지 않는 관계는 관계라고 할 수 없다는 말이겠죠?

Total participation (Called existence dependency)

entity들의 instance가 모두 참여하며

ER diagram에서 double line으로 표현됩니다.

Partial participation (by default)

entity들의 instance 중 일부가 참여하며

ER diagram에서 single line으로 표현됩니다.

Weak Entity Types

  • 개념 : 자기 자신을 위한 키 속성을 가지지 않는 타입.

또는 Child, Subordinate 라고 불리기도 한다.

이는 자기 자체로 존재 불가하고 다른 Entity Type, Parent의 특정 Entity와 관계됨으로써 식별이 가능합니다.

Weak Entity는 같은 부모로 부터 Unique하게 구분될 수 있게 Partial Key를 가집니다.

위와 같은 ER diagram 모형을 가집니다.

ER 다이어그램의 예시

profile
제대로 한번 해보겠습니다.

1개의 댓글

comment-user-thumbnail
2023년 8월 19일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기