er er...

46
데이터베이스 데이터베이스 (D t b ) (D t b ) 데이터베이스 데이터베이스 (Database) (Database) ER ER 모델을 모델을 사용한 사용한 데이터 데이터 모델링 모델링 양세 양세 강원대학교 강원대학교 IT IT특성화대학 특성화대학 컴퓨터과학전공 컴퓨터과학전공

Upload: ngotu

Post on 19-May-2018

246 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

데이터베이스데이터베이스 (D t b )(D t b )데이터베이스데이터베이스 (Database)(Database)

ER ER 모델을모델을 사용한사용한 데이터데이터 모델링모델링

문양세문양세양세양세강원대학교강원대학교 ITIT특성화대학특성화대학 컴퓨터과학전공컴퓨터과학전공

Page 2: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

강의강의 내용내용ER 모델을 사용한 데이터 모델링

예제 데이터베이스 응용(COMPANY)

ER 모델의 개념

• 엔티티와 애트리뷰트

• 엔티티 타입, 값 집합, 키 애트리뷰트

• 관계와 관계 타입

• 약한 엔티티 타입

• 역할과 관계 타입에서의 애트리뷰트

ER 다이어그램 (ERD) – 표기법

COMPANY 스키마를 위한 ER 다이어그램키마를 위 다이어

다른 표기법 - UML 클래스 다이어그램, 기타

(UML: Universal Modeling Language)

Database by Yang-Sae MoonPage 2

(UML: Universal Modeling Language)

Page 3: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

서론서론ER 모델을 사용한 데이터 모델링

데이터베이스 응용

데이터베이스 + 필요한 기능을 구현한 프로그램• 데이터베이스 + 필요한 기능을 구현한 프로그램

엔티티-관계 모델링 (ER Modeling)

• 고수준 데이터 모델: 인간의 이해를 돕기 위한 모델

• 개념설계 도구로서 데이터베이스 구조와 제약조건 정의

다른 모델링 기법

• UML 방법론의 클래스 다이어그램을 이용한 모델링

• 데이터베이스 구조와 제약조건 + 연산 정의

Database by Yang-Sae MoonPage 3

Page 4: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

DB DB 설계를설계를 위한위한 개념적개념적 데이터데이터 모델모델 사용사용ER 모델을 사용한 데이터 모델링

데이터베이스 설계의 단계들 [그림 3.1]작은 세계

요구사항들의수정과 분석

기능적 요구사항들데이타베이스 요구사항들

개념적 설계

기능적 요구사항들

FUNCTIONAL ANALYSIS ERD 사용

DFD, 순서도,시나리오,

순서 다이어그램

개념 스키마(고수준 데이터 모델로 표현됨)

논리적 설계

High-level TransactionSpecification

DBMS-independent 논리적 설계(DATA MODEL MAPPING)

논리적(개념적)스키마(특정 DBMS의 구현(표현) 데이터 모델로 표현됨)APPLICATION PROGRAM

p

DBMS-specific상용 DBMS 사용

(특정 DBMS의 구현(표현) 데이터 모델로 표현됨)

물리적 설계

내부스키마

APPLICATION PROGRAMDESIGN

TRANSACTIONIMPLEMENTATION

내부저장구조인덱스접근경로

Database by Yang-Sae MoonPage 4

내부스키마(For the same DBMS)

접근경로화일조직

Application Programs

Page 5: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

예제예제 COMPANY COMPANY 데이터베이스데이터베이스ER 모델을 사용한 데이터 모델링

COMPANY 데이터베이스의 작은 세계

1 회사는 여러 부서들로 구성된다 각 부서마다 고유한 이름 고유한 번호 부서를 관리하는1. 회사는 여러 부서들로 구성된다. 각 부서마다 고유한 이름, 고유한 번호, 부서를 관리하는

특정 사원이 있다. 사원이 부서를 관리하기 시작한 날짜도 유지한다. 한 부서는 여러 위치

에 있을 수 있다.에 있을 수 있다

2. 한 부서는 여러 프로젝트들을 관리한다. 각 프로젝트는 고유한 이름, 고유한 번호,

한 개의 위치를 가진다.

3. 각 사원에 대해서 이름, 사회보장번호, 주소, 급여, 성별, 생년월일을 저장한다. 한 사원은

한 부서에 속하지만, 여러 프로젝트들에 관여할 수 있다. 한 사원이 관여하는 프로젝트들

은 그 사원이 소속된 부서가 관리하는 프로젝트가 아니어도 무방하다. 반드시 한 부서의

각 사원이 각 프로젝트를 위해 일하는 주당 근무 시간을 기록한다. 또한 각 사원의 직속 상

사도 유지한다사도 유지한다.

4. 보험 목적을 위해서 각 사원의 부양가족들을 기록한다. 각 부양 가족에 대해서 이름, 성별,

생년월일, 사원과의 관계를 기록한다.

Database by Yang-Sae MoonPage 5

생년월일, 사원과의 관계를 기록한다

Page 6: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

개념적개념적 설계의설계의 결과결과 –– ERDERDER 모델을 사용한 데이터 모델링

Fname Minit Lname

Name Address WORKS_FOR

Number

Name LocationsN 1

Sex Salary

SsnStartDate

NumberOfEmployees

Name Locations

DEPATMENT

Bdate

EMPLOYEEMANAGES CONTROLS

Hoursi

N

11 1

SUPERVISIONPROJECTWORKS_ON

supervisor

1 N

superviseeM N

1

Name

Location

Number

DEPENDENTS_OF

NNumber

DEPENDENT

Database by Yang-Sae MoonPage 6

SexName BirthDate Relationship

Page 7: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

개체개체 타입타입, , 개체개체 집합집합, , 애트리뷰트애트리뷰트, , 키키ER 모델을 사용한 데이터 모델링

ER 모델은 데이터를 엔티티(개체), 관계, 애트리뷰트 (속성)로 모델링함

엔티티 관계 델링엔티티-관계 모델링

• 엔티티: 실세계에서 독립적으로 존재하는 실체

• 애트리뷰트: 엔티티를 기술하는 속성

두 개 엔티티(직원 e1과 회사 c1)와 애트리뷰트 및 값 [그림 3.3]

Name = John Smith Name = Sunco OilName John Smith

Address = 2311 Kirby,Houston, Texas 77001e1

Name Sunco Oil

Headquarters = Houstonc1Houston, Texas 77001

Age = 55

e1 Headquarters Houston

President = John Smith

1

Database by Yang-Sae MoonPage 7

HomePhone = 713-749-2630

Page 8: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

엔티티엔티티 & & 애트리뷰트애트리뷰트ER 모델을 사용한 데이터 모델링

Locations

Fname Minit Lname

Name Address WORKS FOR

Number

NameN 1

Locations

Sex Salary

Ssn

WORKS_FOR

StartDateNumberOfEmployees

Name

DEPATMENT

Bdate

EMPLOYEEMANAGES

CONTROLS

Hoursi

N

11 1

SUPERVISION

PROJECTWORKS_ONsupervisor

1 N

superviseeM N

1

Name

Location

Number

DEPENDENTS_OF

NNumber

DEPENDENT

Database by Yang-Sae MoonPage 8

SexName BirthDate Relationship

Page 9: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

애트리뷰트애트리뷰트 유형유형 (1/2)(1/2)ER 모델을 사용한 데이터 모델링

복합 애트리뷰트(애트리뷰트 집합): 더 작은 구성 요소로 나뉨

단 애 리 원자 애 리단순 애트리뷰트(원자 애트리뷰트)Address

StreetAddress City State Zip

복합 애트리뷰트의 계층구조 [그림 3.4]

Number Street ApartmentNumber

단일 값 애트리뷰트: 애트리뷰트 하나는 하나의 값을 가짐

다치 애트리뷰트: 애트리뷰트 하나가 여러 값을 가질 수 있음

한 사람은 여러 개 학위를 가질 수 있음

Database by Yang-Sae MoonPage 9

한 사람은 여러 개 학위를 가질 수 있음

Page 10: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

애트리뷰트애트리뷰트 유형유형 (2/2)(2/2)ER 모델을 사용한 데이터 모델링

저장된(stored) 애트리뷰트: DB에 실제로 저장된 애트리뷰트

(예: DOB Date of Birth)(예: DOB Date of Birth)

유도된(derived) 애트리뷰트: 실제 저장되어 있지 않으나, 다른 애트리뷰

트나 사실(fact)에 의해 그 값이 유도될 수 있는 애트리뷰트

(예: Age 오늘 날짜와 DOB에 의해 나이가 유도될 수 있음)

Database by Yang-Sae MoonPage 10

Page 11: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

특수한특수한 애트리뷰트애트리뷰트ER 모델을 사용한 데이터 모델링

Fname Minit Lname

N Add

Number

N 1

복합 애트리뷰트

다치애트리뷰트

LocationsName Address

Sex Salary

Ssn

WORKS_FOR

StartDateNumberOfEmployees

Name

DEPATMENT

1

유도 애트리뷰트Ssn

Bdate

EMPLOYEEMANAGES

CONTROLS

HoursN

11 1

유도 애트리뷰트

SUPERVISION

PROJECTWORKS_ONsupervisor

1 N

superviseeM N

N

1

Name

LocationDEPENDENTS_OF

NNumber

DEPENDENT

N

Database by Yang-Sae MoonPage 11

SexName BirthDate Relationship

Page 12: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

널널(NULL)(NULL) 값값ER 모델을 사용한 데이터 모델링

두 가지 의미로 사용됨

‘적용할 수 없음’이라는 의미• 적용할 수 없음 이라는 의미

Apartment_number는 단독 주택에 적용되지 않음

College_degree는 대학 미 졸업자에게는 적용되지 않음g _ g 는 대학 미 졸업자에게는 적용되지 않음

• ‘알려지지 않음’의 의미

John Smith(는 핸드폰이 있으나) 핸드폰 번호는 알지 못함

Database by Yang-Sae MoonPage 12

Page 13: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

복잡한복잡한(complex) (complex) 애트리뷰트애트리뷰트ER 모델을 사용한 데이터 모델링

괄호를 사용하여 중첩된 형태의 애트리뷰트를 구성

예제 Add h예제: AddressPhone

{AddressPhone( {Phone(AreaCode, PhoneNumber)},Address( StreetAddress(Number, Street, ApartmentNumber),

City, SState,Zip )

)}}

Database by Yang-Sae MoonPage 13

Page 14: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

엔티티엔티티 타입타입((개체개체 타입타입))ER 모델을 사용한 데이터 모델링

엔티티 타입: 같은 애트리뷰트를 갖는 엔티티들의 집합

(각 엔티티는 각 애트리뷰트에 대해 자신만의 값을 가짐)(각 엔티티는 각 애 리뷰 에 대해 자신만의 값을 가짐)

EMPLOYEE와 COMPANY 엔티티 타입과 이에 속하는 개체들 [그림 3.6]

엔티티 타입의 이름: EMPLOYEE COMPANY엔티티 타입의 이름:

애트리뷰트 이름

EMPLOYEE COMPANY

Name, Age, Salary Name, Headquarters, President

개체 집합

e1(John Smith, 55, 80k)

c1(Sunco Oil, Houston,

John Smith)개체 집합(외연)

e2(Fred Brown, 40, 30K) c2

(F t C t D ll애트리뷰트 값

e3d l k

(Fast Computer, Dallas, Bob King)::

Database by Yang-Sae MoonPage 14

(Judy Clark, 25, 20K):

:

Page 15: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

CAR CAR 개체개체 타입타입ER 모델을 사용한 데이터 모델링

Registration과 Vehicle_id의 두 개 키 애트리뷰트를 가짐 [그림 3.7]

CARRegistration(RegistrationNumber, State), VehicleID, Make, Model, Year, {Color}

car1

((ABC 123, TEXAS), TK629, Ford Mustang, convertible, 1989, {red,black})(( , ), , g, , , { , })

car2

((ABC 123, NEW YORK), WP9872, Nissan Sentra, 2‐door, 1992, {blue})(( , ), , , , , { })

car3

((VSY 720, TEXAS), TD729, Chrysler LeBaron, 4‐door, 1993, {white, blue})(( , ), , y , , , { , }):

Database by Yang-Sae MoonPage 15

Page 16: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

키키 애트리뷰트와애트리뷰트와 값값 집합집합[[도메인도메인]]ER 모델을 사용한 데이터 모델링

키 애트리뷰트 (key attribute)

각 엔티티마다 서로 다른 값을 가지는 애트리뷰트• 각 엔티티마다 서로 다른 값을 가지는 애트리뷰트

• 그림 3.6에서 COMPANY 엔티티 타입에서 키 애트리뷰트는 Name

• 일반적으로 PERSON 엔티티 타입의 키 애트리뷰트는 SocialSecurityNumber• 일반적으로, PERSON 엔티티 타입의 키 애트리뷰트는 SocialSecurityNumber

• 복합 키: 두 개 이상의 애트리뷰트들이 모여서 하나의 키 애트리뷰트 역할을 하는 키

값 집합(도메인)

각 엔티티에서 애트리뷰트가 가질 수 있는 값들의 집합• 각 엔티티에서 애트리뷰트가 가질 수 있는 값들의 집합

• EMPLOYEE의 Age 애트리뷰트의 값 집합은? (16부터 70 사이의 정수 집합)

Database by Yang-Sae MoonPage 16

Page 17: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

키키 애트리뷰트애트리뷰트ER 모델을 사용한 데이터 모델링

Fname Minit Lname

Name Address WORKS FOR

Number

Name LocationsN 1a dd

Sex Salary

Ssn

WORKS_FOR

StartDateNumberOfEmployees

Name Locations

DEPATMENT

Bdate

EMPLOYEEMANAGES

CONTROLS

Hoursi

N

11 1

SUPERVISIONPROJECTWORKS_ON

supervisor

1 N

superviseeM N

1

Name

Location

Number

DEPENDENTS_OF

NNumber

DEPENDENT

Database by Yang-Sae MoonPage 17

SexName BirthDate Relationship

Page 18: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

COMPANY DBCOMPANY DB에에 대한대한 초기초기 개념적개념적 설계설계ER 모델을 사용한 데이터 모델링

1. 엔티티 타입 DEPARTMENT는 Name, Number, Location, Manager,

ManagerStartDate 애트리뷰트를 가진다 Location은 다치 애트리뷰트이다ManagerStartDate 애트리뷰트를 가진다. Location은 다치 애트리뷰트이다.

Name과 Number는 각 부서마다 고유하기 때문에 각각 키 애트리뷰트로 지정할

수 있다.수 있다.

2. 엔티티 타입 PROJECT는 Name, Number, Locations, ControllingDepartment 애

트리뷰트들을 가진다 Name과 Number가 각각 키 애트리뷰트이다트리뷰트들을 가진다. Name과 Number가 각각 키 애트리뷰트이다.

3. 엔티티 타입 EMPLOYEE는 Name, SSN, Sex, Address, Salary, BirthDate,

D t t S i 애트리뷰트들을 가진다 사용자가 사원 N 의 각 구Department, Supervisor 애트리뷰트들을 가진다. 사용자가 사원 Name의 각 구

성요소(FirstName, MiddleInitial, LastName)와 Address의 각 구성요소를 참조할

것인지의 여부를 알기 위해서 사용자와 다시 협의해야 한다것인지의 여부를 알기 위해서 사용자와 다시 협의해야 한다.

4. 엔티티 타입 DEPARTMENT는 Employee, DependentName, Sex, BirthDate,

사원과의 관계 애 리 을가진다

Database by Yang-Sae MoonPage 18

Relationship(사원과의 관계) 애트리뷰트들을가진다.

Page 19: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

COMPANY DBCOMPANY DB를를 위한위한 엔티티엔티티 타입들의타입들의 초기초기 설계설계ER 모델을 사용한 데이터 모델링

DEPARTMENTName, Number, {Locations}, Manager, ManagerStartDate

PROJECTPROJECTName, Number, Location, ControllingDepartment

EMPLOYEEName(FName, MInit, LName), SSN, Sex, Address, Salary,

BirthDate, Department, Supervisor, {WorksOn (Project, Hours)}BirthDate, Department, Supervisor, {WorksOn (Project, Hours)}

DEPENDENTE l D d N S Bi hD R l i hiEmployee, DependentName, Sex, BirthDate, Relationship

Database by Yang-Sae MoonPage 19

Page 20: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

관계관계, , 관계관계 타입타입, , 역할역할, , 구조적구조적 제약조건제약조건ER 모델을 사용한 데이터 모델링

관계 타입과 관계 인터페이스

관계 타입의 차 d관계 타입의 차수(degree)

애트리뷰트로서의 관계

역할과 순환적(recursive) 관계

관계 타입에서 제약조건관계 타입에서 제약조건

관계 타입의 애트리뷰트

Database by Yang-Sae MoonPage 20

Page 21: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

관계관계 타입과타입과 관계관계 인스턴스인스턴스ER 모델을 사용한 데이터 모델링

관계 타입(관계 집합) R은 엔티티 간의 연관들의 집합임:

[그림 3 9]에서 WORKS FOR가 이에 해당함 (아래 그림)[그림 3.9]에서 WORKS_FOR가 이에 해당함 (아래 그림)

[그림 3.9] 관계 WORKS_FOR에서 관계 인스턴스: 7 개(r1 ~ r7)

r1

EMPLOYEE WORKS_FOR DEPARTMENT

e1

e2

e3

r2

r3d1

e4

e5

e6

r4

r5

d1

d2

d3.e6

e7..

r6

r7:

.

.

Database by Yang-Sae MoonPage 21

Page 22: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

관계관계 타입의타입의 차수차수(degree)(degree)ER 모델을 사용한 데이터 모델링

차수: 관계에 참여하고 있는 엔티티 타입의 수

이진(binary) 차수: [그림 3 9]의 WORKS FOR 관계• 이진(binary) 차수: [그림 3.9]의 WORKS_FOR 관계

• 3진(ternary) 차수: [그림 3.10] 3진 관계 SUPPLY (아래 그림)

r1s1

s2j1

SUPPLIER PROJECTSUPPLY

r2

r3

.

.

.

j1

j2

r4

r5p1

2

j3

.

.

.

PART

r6

r7

:

p2

p3

.

.

Database by Yang-Sae MoonPage 22

.

Page 23: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

애트리뷰트로서의애트리뷰트로서의 관계관계ER 모델을 사용한 데이터 모델링

관계는 참여 엔티티 타입의 애트리뷰트로 볼 수도 있음

즉 관계가 엔티티의 애트리뷰트로 표현(구현)될 수 있음을 의미 즉, 관계가 엔티티의 애트리뷰트로 표현(구현)될 수 있음을 의미

예: EMPLOYEE와 DEPARTMENT 사이의 WORKS_FOR는

• 엔티티 타입 EMPLOYEE에 Department 애트리뷰트로 표현되거나,

• 엔티티 타입 DEPARTMENT의 Employees 애트리뷰트로 표현될 수 있음

Database by Yang-Sae MoonPage 23

Page 24: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

역할역할 이름과이름과 순환적순환적(recursive) (recursive) 관계관계 (1/2)(1/2)ER 모델을 사용한 데이터 모델링

역할 이름(role name): 관계 타입에 참여하는 각 에니티 타입은 관계 내

에서 특정한 역할을 담당함에서 특정한 역할을 담당함

예: 관계 WORKS_FOR에서 EMPLOYEE는 사원/근로자 역할이고,

DEPARTMENT는 부서/고용주의 역할임

일반적으로 관계에 참여하는 엔티티 타입이 다르면, 그 이름 자체가 역

할로서 사용되기 때문에, 역할 이름을 특별히 명시하지 않음

Database by Yang-Sae MoonPage 24

Page 25: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

역할역할 이름과이름과 순환적순환적(recursive) (recursive) 관계관계 (2/2)(2/2)ER 모델을 사용한 데이터 모델링

한 엔티티 타입이 관계에 두 번 이상 참여하면, 역할을 구분하기 위해, 역할 이름을 부여하거나, 대응하는 번호 등을 부여함

• [그림 3.2]의 SUPERVISION 관계에서, supervisor와 supervisee가 역할 이름임

• 같은 예로서, [그림 3.11] Employee에서의 순환적 관계 SUPERVISION은 상사(1)와

부하(2)의 두 역할로 구분할 수 있음

EMPLOYEE SUPERVISION

e1

e2

r1

r2

21

21

e3

e4

r3

r4

21

2 1e5

e6

r5

r6

1 11

2

Database by Yang-Sae MoonPage 25

E7...

...2

Page 26: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

관계관계 타입에서타입에서 제약제약 조건조건 (1/3)(1/3)ER 모델을 사용한 데이터 모델링

카디날리티(cardinality) 비율: 엔티티가 참여할 수 있는 최대 관계 인스턴스의 수를 명시 이진 관계 타입에 대한 카디날리티 비율은 1:1, 1:N, M:N

1:1 카디날리티 비율의 예 (MANAGES)

e1 r1d1EMPLOYEE

MANAGESDEPARTMENT

e2

e3

e4

r2d2

EMPLOYEE

e4

e5

e6

r3

:

d3

:

e7

.

.

.

Database by Yang-Sae MoonPage 26

Page 27: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

관계관계 타입에서타입에서 제약제약 조건조건 (2/3)(2/3)ER 모델을 사용한 데이터 모델링

M:N 카디날리티 비율의 예(WORKS_ON) [그림 3.13]

r1EMPLOYEE

WORKS_ON

PROJECT

e1

e2

e3

r2

r3

r4

p1

p2

e3

e4

.

r4

r5

r6

p3

p4.

.

. R7

.

.

.

.

Database by Yang-Sae MoonPage 27

Page 28: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

관계관계 타입에서타입에서 제약제약 조건조건 (3/3)(3/3)ER 모델을 사용한 데이터 모델링

참여 제약조건(participation constraint): 한 엔티티의 존재가 관계 타입을 통해 연관되어 있는 다른 엔티티에 의존하는지의 여부

부분참여(partial participation)와 전체참여(total participation)

예: MANAGES 관계에서,

• (모든 사원이 manager로 참여하는 것은 아니므로) EMPLOYEE는 부분참여이고,

• (모든 부서는 (한 명의) manager가 있으므로) DEPARTMENT는 전체참여임

전체참여를 존재종속성(existence dependency)라고도 부름

Database by Yang-Sae MoonPage 28

Page 29: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

관계관계 타입의타입의 애트리뷰트애트리뷰트 (1/2)(1/2)ER 모델을 사용한 데이터 모델링

관계 타입도 (엔티티 타입 처럼) 애트리뷰트들을 가질 수 있음관계 타입이 애트리뷰트를 가지는 예:

• WORKS_ON 관계 타입에 Hours 애트리뷰트를 포함시킬 수 있음

• MANAGES 관계 타입에 Start_date를 포함시킬 수 있음 (언제 관리자가 되었나)

1:1 관계 타입의 애트리뷰트: 양쪽 엔티티 타입으로 이동 가능

EMPLOYEE

1

EMPLOYEE StartDate

1

EMPLOYEE

1

DEPARTMENT

MANAGES StartDate

1

DEPARTMENT

MANAGES

1

DEPARTMENT

MANAGES

1

StartDate

Database by Yang-Sae MoonPage 29

Page 30: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

관계관계 타입의타입의 애트리뷰트애트리뷰트 (2/2)(2/2)ER 모델을 사용한 데이터 모델링

1:N 관계 타입의 애트리뷰트: N쪽 엔티티 타입으로 이동 가능

EMPLOYEE

N

EMPLOYEE

N

StartDate EMPLOYEE

N

DEPARTMENT

WORKSFOR StartDate

1

DEPARTMENT

WORKSFOR

1

DEPARTMENT

WORKSFOR

1

StartDate

M:N 관계 타입의 애트리뷰트: 엔티티 타입으로 이동 불가

해당 애트리뷰트는 반드시 관계 타입에 표현되어야 함

Database by Yang-Sae MoonPage 30

Page 31: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

약한약한 엔티티엔티티 타입타입 (Weak Entity Type) (1/2)(Weak Entity Type) (1/2)ER 모델을 사용한 데이터 모델링

약한 엔티티 타입: 자신의 키 애트리뷰트가 없는 엔티티 타입

예: DEPENDENT 엔티티 타입• 예: DEPENDENT 엔티티 타입

약한 엔티티 타입과 구분하기 위해, 키를 가지는 정규(regular) 엔티티 타

입을 강한 엔티티 타입이라 부르기도 함

약한 엔티티 타입은 애트리뷰트 중 하나가 다른 엔티티 타입에 연계됨으

로서 식별될 수 있음 식별(identifying) 엔티티 타입

식별(소유) 엔티티 타입과 식별 관계식별( 유) 엔티티 타입과 식별 관계

• EMPLOYEE와 DEPENDENT에서 EMPLOYEE가 식별 엔티티 타입이며,

두 엔티티 타입 사이의 관계를 식별 관계라고 부름

Database by Yang-Sae MoonPage 31

Page 32: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

약한약한 엔티티엔티티 타입타입 (Weak Entity Type) (2/2)(Weak Entity Type) (2/2)ER 모델을 사용한 데이터 모델링

부분 키(partial key)

동일한 소유 엔티티와 연관된 약한 엔티티 집합 내의 서브 집합(예를 들어 소유 엔티티• 동일한 소유 엔티티와 연관된 약한 엔티티 집합 내의 서브 집합(예를 들어, 소유 엔티티

employee e1의 dependents set) 내에서, 서로를 구분할 수 있는 애트리뷰트들의 집합

(예를 들어, Dependent.name) [가정: 부양 가족 내에 같은 이름은 없음](예를 들어, p ) [가정 부양 가족 내에 같은 이름은 없음]

ERD에서 약한 엔티티 타입과 이의 식별 관계는 이중선으로, 부분키는 점

선 밑줄로 표현함 (그림 3 2 참조)선 밑줄로 표현함 (그림 3.2 참조)

약한 엔티티는 소유 엔티티 타입의 복합 애트리뷰트로 표현할 수도 있음

• 예를 들어, EMPLOYEE에 대해, Name, Birth_date, Sex, Relationship의 애트리뷰트로 구

성되는 복합 다치 애트리뷰트Dependents를 명시할 수 있음

러나 다음 경우에는 별 엔티티 타입 현하는 것이 바람직함그러나, 다음 경우에는 별도 엔티티 타입으로 표현하는 것이 바람직함

• 엔티티가 많은 애트리뷰트들을 가지고,

Database by Yang-Sae MoonPage 32

• 식별 관계 타입 외에 다른 관계 타입들에 독립적으로 참여하는 경우

Page 33: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

약한약한 엔티티엔티티 타입의타입의 표현표현ER 모델을 사용한 데이터 모델링

• 약한 엔티티 타입으로 표현 • 복합 다치 애트리뷰트로 표현

EMPLOYEEEMPLOYEE

1

Dependents

HAS

Dependents

Name Sex BirthDate Relationship

N

DEPENDENTS

N

Name Sex BirthDate Relationship

Database by Yang-Sae MoonPage 33

Page 34: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

COMPANY DBCOMPANY DB에에 대한대한 ER ER 설계의설계의 개선개선ER 모델을 사용한 데이터 모델링

그림 3.8(초기 설계)에서 관계를 나타내는 애트리뷰트들을 관계 타입으

로 변환하여 발전시킴 (결과는 다음 페이지[그림 3 2])로 변환하여 발전시킴 (결과는 다음 페이지[그림 3.2])

생성되는 관계 타입들

1. MANAGES: EMPLOYEE와 DEPARTMENT 사이의 1:1 관계 타입

2. WORKS_FOR: DEPARTMENT와 EMPLOYEE 사이의 1:N 관계 타입

3. CONTROLS: DEPARTMENT와 PROJECT 사이의 1:N 관계 타입와 사이의 관계 타입

4. SUPERVISION: EMPLOYEE(상사역할)와 EMPLOYEE(사원역할) 사이의 1:N 관계 타입

5. WORKS_ON: EMPLOYEE와 PROJECT 사이의 M:N 관계 타입

6. DEPENDENTS_OF: EMPLOYEE와 DEPENDENT 사이의 1:N 관계 타입

Database by Yang-Sae MoonPage 34

Page 35: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

개념적개념적 설계의설계의 결과결과ER 모델을 사용한 데이터 모델링

Fname Minit Lname

Name Address WORKS FOR

Number

N LocationsN 1Name Address

Sex Salary

Ssn

WORKS_FOR

StartDateNumberOfEmployees

Name Locations

DEPATMENT

Bdate

EMPLOYEEMANAGES

CONTROLS

HoursN

11 1

SUPERVISIONPROJECTWORKS_ON

supervisor

1 N

superviseeM N

N

1

Name

Location

Number

DEPENDENTS_OF

NNumber

DEPENDENT

Database by Yang-Sae MoonPage 35

Sex BirthDate RelationshipName

Page 36: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

ERDERD에서에서 명명명명 규칙과규칙과 설계설계 시시 유의유의 사항사항ER 모델을 사용한 데이터 모델링

명명 규칙

스키마에 사용된 각 구조물에 대해 가능한 한 그 의미를 전달할 수 있는 이름 선택• 스키마에 사용된 각 구조물에 대해 가능한 한 그 의미를 전달할 수 있는 이름 선택

• 복수보다 단수 이름 선택

• 일반적으로 자연어로 기술된 요구 사항에서 명사는 엔티티 타입 이름 동사는 관계 타입• 일반적으로 자연어로 기술된 요구 사항에서 명사는 엔티티 타입 이름, 동사는 관계 타입

이름으로 해석하는 것이 도움이 됨

설계 시 유의 사항

• ER 다이어그램은 왼쪽에서 오른쪽 위에서 아래로 읽기 쉽게 작성함• ER 다이어그램은 왼쪽에서 오른쪽, 위에서 아래로 읽기 쉽게 작성함

• 스키마 설계는 반복해서 개선하는 작업이 필요함 한번에 완성하기는 쉽지 않음

Database by Yang-Sae MoonPage 36

Page 37: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

ER ER 다이어그램다이어그램 표기법표기법 요약요약 [[그림그림 3.14]3.14]ER 모델을 사용한 데이터 모델링

Symbol Meaning MeaningSymbol

엔티티 타입

약한 엔티티 타입

... 복합 애트리뷰트

관계 타입

식별 관계 타입 E1 R E2

유도된 애트리뷰트

E1이 R에 전체참여식별 관계 타입

애트리뷰트

E1 E2

E1 R E2

E2가 R에 부분참여

R에서 E1:E2의카디날리티 비율이 1:N

1 N

애트리뷰트

키 애트리뷰트

다치 애트리뷰트

R(최대값, 최소값)

ER에서 E의 참여에 대한구조적 제약조건(최대값, 최소값)다치 애트리뷰트E가 R의 관계를 몇 개나 가지는가?

Database by Yang-Sae MoonPage 37

Page 38: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

구조적구조적 제약제약 조건조건ER 모델을 사용한 데이터 모델링

관계(relationship)에 대한 구조적 제약 조건

관계에 대한 의미를 현하 방법을 일컬음 관계에 대한 의미를 표현하는 방법을 일컬음

(2진 관계에서의) 카디날리티 비율

• 1:1, 1:N, or M:N

• 연결된 선에 적절한 숫자를 나타냄으로써 표기함

(각 참여 엔티티에 대한) 참여 제약조건(각 참여 엔티티에 대한) 참여 제약조건

• 전체 (또는 존재 종속성) 또는 부분 참여

• 전체 참여의 경우 연결된 선을 이중선으로 표기함.전체 참여의 경우 연결된 선을 이중선 기함

Database by Yang-Sae MoonPage 38

Page 39: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

구조적구조적 제약제약 조건을조건을 위한위한 다른다른 표기법표기법ER 모델을 사용한 데이터 모델링

(최소값, 최대값)을 사용한 표기법

관계 타입 R에서 엔티티 타입 E의 각 참여를 명시 관계 타입 R에서 엔티티 타입 E의 각 참여를 명시 E 내의 각 엔티티 e가 적어도 최소값 만큼 그리고 최대 최대값 만큼 R 내의

관계 인스턴스들과 참여함을 나타냄 디폴트(제약조건 무): 최소값=0, 최대값=n 반드시, 최소값최대값, 최소값0, 최대값 1

예: 다음 페이지 참조 부서는 정확히 한 명의 부서장을 가지며 사원은 최대 한 개의 부서를 관리할

있다수 있다.– MANAGES의 EMPLOYEE의 참여에 (0,1)로 표기– MANAGES의 DEPARTMENT의 참여에 (1,1)로 표기

사원은 정확히 한 부서에서 일 할 수 있으며 부서는 몇 명의 사원이라도 둘 수있다.

– WORKS_FOR의 EMPLOYEE의 참여에 (1,1)로 표기

Database by Yang-Sae MoonPage 39

– WORKS_FOR의 DEPARTMENT의 참여에 (0,n)로 표기

Page 40: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

((최소값최소값, , 최대값최대값) ) 표기법표기법 관계관계 제약제약 조건조건ER 모델을 사용한 데이터 모델링

(1,1)(0,1) ( , )

(1 N)(1,1) (1,N)(1,1)

Database by Yang-Sae MoonPage 40

Page 41: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

((최소값최소값,,최대값최대값))를를 사용한사용한 COMPANY ERDCOMPANY ERDER 모델을 사용한 데이터 모델링

Database by Yang-Sae MoonPage 41

Page 42: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

UML UML 클래스클래스 다이어그램다이어그램ER 모델을 사용한 데이터 모델링

엔티티타입클래스엔티티(개체) 오브젝트(객체)관계연관(Association), 순환적관계재귀연관

이름

속성애트리뷰트

최소..최대연관의애트리뷰트

연산: ERD와의차이점연관

역할이름

집단화(Aggregation)

참여수에상관없음

재귀연관

역할이름

역할이름

판별자

자격연관자격집단화

애트리뷰트: 도메인(애트리뷰트값집합)

Database by Yang-Sae MoonPage 42

Page 43: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

데이터데이터 모델링모델링 도구도구 (1/2)(1/2)ER 모델을 사용한 데이터 모델링

Data Modeling Tools (다음 페이지 예제 참조)

개념적 모델링을 지원하고 관계 스키마 설계로 사상하는 기능을 제공하는 도구들이 존• 개념적 모델링을 지원하고 관계 스키마 설계로 사상하는 기능을 제공하는 도구들이 존

재함

• 예: ERWin S-Designer (Enterprise Application Suite) ER-Studio 등예: ERWin, S Designer (Enterprise Application Suite), ER Studio 등

장점장점

• 응용 요구사항에 대한 문서로서의 기능 제공

• 사용하기 쉬운 사용자 인터페이스 대부분 그래픽 편집기 지원• 사용하기 쉬운 사용자 인터페이스 – 대부분 그래픽 편집기 지원

Database by Yang-Sae MoonPage 43

Page 44: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

데이터데이터 모델링모델링 도구도구 (2/2)(2/2)ER 모델을 사용한 데이터 모델링

Database by Yang-Sae MoonPage 44

Page 45: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

DB DB 자동자동 설계설계 도구도구 ((일부일부))ER 모델을 사용한 데이터 모델링

COMPANY TOOL FUNCTIONALITY

Embarcadero Technologies

ER Studio Database Modeling in ER and IDEF1XTechnologies

DB Artisan Database administration and space and security management

Oracle Developer 2000 and Designer 2000

Database modeling, application development

Popkin Software System Architect 2001 Data modeling, object modeling, process modeling, structured analysis/design

Platinum Technology Platinum Enterprice Modeling Suite: Erwin, BPWin, Paradigm

Data, process, and business component modeling, , g

Plus

Persistence Inc. Pwertier Mapping from O-O to relational model

Rational Rational Rose Modeling in UML and application generation in C++ and JAVAJAVA

Rogue Ware RW Metro Mapping from O-O to relational model

Resolution Ltd. Xcase Conceptual modeling up to code maintenance

Sybase Enterprise Application Suite Data modeling, business logic modeling

Visio Visio Enterprise Data modeling, design and reengineering Visual Basic and Visual C++

Database by Yang-Sae MoonPage 45

Page 46: ER ER 모델을모델을사용한사용한데이터데이터모델링모델링cs.kangwon.ac.kr/~ysmoon/courses/2009_2/db/04.pdf · 강의강의내용내용 er 모델을사용한데이터모델링

요약요약ER 모델을 사용한 데이터 모델링

엔티티-관계(ER) 모델을 사용한 모델링 개념

엔티티 (개체)와 관계의 정의• 엔티티 (개체)와 관계의 정의

스키마 레벨에서 ER 모델 개념

ER 다이어그램

Database by Yang-Sae MoonPage 46