데이터베이스 데이터베이스 (D t b ) (D t b ) 데이터베이스 데이터베이스 (Database) (Database) ER ER 모델을 모델을 사용한 사용한 데이터 데이터 모델링 모델링 문양세 문양세 강원대학교 강원대학교 IT IT특성화대학 특성화대학 컴퓨터과학전공 컴퓨터과학전공
데이터베이스데이터베이스 (D t b )(D t b )데이터베이스데이터베이스 (Database)(Database)
ER ER 모델을모델을 사용한사용한 데이터데이터 모델링모델링
문양세문양세양세양세강원대학교강원대학교 ITIT특성화대학특성화대학 컴퓨터과학전공컴퓨터과학전공
강의강의 내용내용ER 모델을 사용한 데이터 모델링
예제 데이터베이스 응용(COMPANY)
ER 모델의 개념
• 엔티티와 애트리뷰트
• 엔티티 타입, 값 집합, 키 애트리뷰트
• 관계와 관계 타입
• 약한 엔티티 타입
• 역할과 관계 타입에서의 애트리뷰트
ER 다이어그램 (ERD) – 표기법
COMPANY 스키마를 위한 ER 다이어그램키마를 위 다이어
다른 표기법 - UML 클래스 다이어그램, 기타
(UML: Universal Modeling Language)
Database by Yang-Sae MoonPage 2
(UML: Universal Modeling Language)
서론서론ER 모델을 사용한 데이터 모델링
데이터베이스 응용
데이터베이스 + 필요한 기능을 구현한 프로그램• 데이터베이스 + 필요한 기능을 구현한 프로그램
엔티티-관계 모델링 (ER Modeling)
• 고수준 데이터 모델: 인간의 이해를 돕기 위한 모델
• 개념설계 도구로서 데이터베이스 구조와 제약조건 정의
다른 모델링 기법
• UML 방법론의 클래스 다이어그램을 이용한 모델링
• 데이터베이스 구조와 제약조건 + 연산 정의
Database by Yang-Sae MoonPage 3
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
예제예제 COMPANY COMPANY 데이터베이스데이터베이스ER 모델을 사용한 데이터 모델링
COMPANY 데이터베이스의 작은 세계
1 회사는 여러 부서들로 구성된다 각 부서마다 고유한 이름 고유한 번호 부서를 관리하는1. 회사는 여러 부서들로 구성된다. 각 부서마다 고유한 이름, 고유한 번호, 부서를 관리하는
특정 사원이 있다. 사원이 부서를 관리하기 시작한 날짜도 유지한다. 한 부서는 여러 위치
에 있을 수 있다.에 있을 수 있다
2. 한 부서는 여러 프로젝트들을 관리한다. 각 프로젝트는 고유한 이름, 고유한 번호,
한 개의 위치를 가진다.
3. 각 사원에 대해서 이름, 사회보장번호, 주소, 급여, 성별, 생년월일을 저장한다. 한 사원은
한 부서에 속하지만, 여러 프로젝트들에 관여할 수 있다. 한 사원이 관여하는 프로젝트들
은 그 사원이 소속된 부서가 관리하는 프로젝트가 아니어도 무방하다. 반드시 한 부서의
각 사원이 각 프로젝트를 위해 일하는 주당 근무 시간을 기록한다. 또한 각 사원의 직속 상
사도 유지한다사도 유지한다.
4. 보험 목적을 위해서 각 사원의 부양가족들을 기록한다. 각 부양 가족에 대해서 이름, 성별,
생년월일, 사원과의 관계를 기록한다.
Database by Yang-Sae MoonPage 5
생년월일, 사원과의 관계를 기록한다
개념적개념적 설계의설계의 결과결과 –– 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
개체개체 타입타입, , 개체개체 집합집합, , 애트리뷰트애트리뷰트, , 키키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
엔티티엔티티 & & 애트리뷰트애트리뷰트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
애트리뷰트애트리뷰트 유형유형 (1/2)(1/2)ER 모델을 사용한 데이터 모델링
복합 애트리뷰트(애트리뷰트 집합): 더 작은 구성 요소로 나뉨
단 애 리 원자 애 리단순 애트리뷰트(원자 애트리뷰트)Address
StreetAddress City State Zip
복합 애트리뷰트의 계층구조 [그림 3.4]
Number Street ApartmentNumber
단일 값 애트리뷰트: 애트리뷰트 하나는 하나의 값을 가짐
다치 애트리뷰트: 애트리뷰트 하나가 여러 값을 가질 수 있음
한 사람은 여러 개 학위를 가질 수 있음
Database by Yang-Sae MoonPage 9
한 사람은 여러 개 학위를 가질 수 있음
애트리뷰트애트리뷰트 유형유형 (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
특수한특수한 애트리뷰트애트리뷰트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
널널(NULL)(NULL) 값값ER 모델을 사용한 데이터 모델링
두 가지 의미로 사용됨
‘적용할 수 없음’이라는 의미• 적용할 수 없음 이라는 의미
Apartment_number는 단독 주택에 적용되지 않음
College_degree는 대학 미 졸업자에게는 적용되지 않음g _ g 는 대학 미 졸업자에게는 적용되지 않음
• ‘알려지지 않음’의 의미
John Smith(는 핸드폰이 있으나) 핸드폰 번호는 알지 못함
Database by Yang-Sae MoonPage 12
복잡한복잡한(complex) (complex) 애트리뷰트애트리뷰트ER 모델을 사용한 데이터 모델링
괄호를 사용하여 중첩된 형태의 애트리뷰트를 구성
예제 Add h예제: AddressPhone
{AddressPhone( {Phone(AreaCode, PhoneNumber)},Address( StreetAddress(Number, Street, ApartmentNumber),
City, SState,Zip )
)}}
Database by Yang-Sae MoonPage 13
엔티티엔티티 타입타입((개체개체 타입타입))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):
:
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
키키 애트리뷰트와애트리뷰트와 값값 집합집합[[도메인도메인]]ER 모델을 사용한 데이터 모델링
키 애트리뷰트 (key attribute)
각 엔티티마다 서로 다른 값을 가지는 애트리뷰트• 각 엔티티마다 서로 다른 값을 가지는 애트리뷰트
• 그림 3.6에서 COMPANY 엔티티 타입에서 키 애트리뷰트는 Name
• 일반적으로 PERSON 엔티티 타입의 키 애트리뷰트는 SocialSecurityNumber• 일반적으로, PERSON 엔티티 타입의 키 애트리뷰트는 SocialSecurityNumber
• 복합 키: 두 개 이상의 애트리뷰트들이 모여서 하나의 키 애트리뷰트 역할을 하는 키
값 집합(도메인)
각 엔티티에서 애트리뷰트가 가질 수 있는 값들의 집합• 각 엔티티에서 애트리뷰트가 가질 수 있는 값들의 집합
• EMPLOYEE의 Age 애트리뷰트의 값 집합은? (16부터 70 사이의 정수 집합)
Database by Yang-Sae MoonPage 16
키키 애트리뷰트애트리뷰트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
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(사원과의 관계) 애트리뷰트들을가진다.
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
관계관계, , 관계관계 타입타입, , 역할역할, , 구조적구조적 제약조건제약조건ER 모델을 사용한 데이터 모델링
관계 타입과 관계 인터페이스
관계 타입의 차 d관계 타입의 차수(degree)
애트리뷰트로서의 관계
역할과 순환적(recursive) 관계
관계 타입에서 제약조건관계 타입에서 제약조건
관계 타입의 애트리뷰트
Database by Yang-Sae MoonPage 20
관계관계 타입과타입과 관계관계 인스턴스인스턴스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
관계관계 타입의타입의 차수차수(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
.
애트리뷰트로서의애트리뷰트로서의 관계관계ER 모델을 사용한 데이터 모델링
관계는 참여 엔티티 타입의 애트리뷰트로 볼 수도 있음
즉 관계가 엔티티의 애트리뷰트로 표현(구현)될 수 있음을 의미 즉, 관계가 엔티티의 애트리뷰트로 표현(구현)될 수 있음을 의미
예: EMPLOYEE와 DEPARTMENT 사이의 WORKS_FOR는
• 엔티티 타입 EMPLOYEE에 Department 애트리뷰트로 표현되거나,
• 엔티티 타입 DEPARTMENT의 Employees 애트리뷰트로 표현될 수 있음
Database by Yang-Sae MoonPage 23
역할역할 이름과이름과 순환적순환적(recursive) (recursive) 관계관계 (1/2)(1/2)ER 모델을 사용한 데이터 모델링
역할 이름(role name): 관계 타입에 참여하는 각 에니티 타입은 관계 내
에서 특정한 역할을 담당함에서 특정한 역할을 담당함
예: 관계 WORKS_FOR에서 EMPLOYEE는 사원/근로자 역할이고,
DEPARTMENT는 부서/고용주의 역할임
일반적으로 관계에 참여하는 엔티티 타입이 다르면, 그 이름 자체가 역
할로서 사용되기 때문에, 역할 이름을 특별히 명시하지 않음
Database by Yang-Sae MoonPage 24
역할역할 이름과이름과 순환적순환적(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
관계관계 타입에서타입에서 제약제약 조건조건 (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
관계관계 타입에서타입에서 제약제약 조건조건 (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
관계관계 타입에서타입에서 제약제약 조건조건 (3/3)(3/3)ER 모델을 사용한 데이터 모델링
참여 제약조건(participation constraint): 한 엔티티의 존재가 관계 타입을 통해 연관되어 있는 다른 엔티티에 의존하는지의 여부
부분참여(partial participation)와 전체참여(total participation)
예: MANAGES 관계에서,
• (모든 사원이 manager로 참여하는 것은 아니므로) EMPLOYEE는 부분참여이고,
• (모든 부서는 (한 명의) manager가 있으므로) DEPARTMENT는 전체참여임
전체참여를 존재종속성(existence dependency)라고도 부름
Database by Yang-Sae MoonPage 28
관계관계 타입의타입의 애트리뷰트애트리뷰트 (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
관계관계 타입의타입의 애트리뷰트애트리뷰트 (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
약한약한 엔티티엔티티 타입타입 (Weak Entity Type) (1/2)(Weak Entity Type) (1/2)ER 모델을 사용한 데이터 모델링
약한 엔티티 타입: 자신의 키 애트리뷰트가 없는 엔티티 타입
예: DEPENDENT 엔티티 타입• 예: DEPENDENT 엔티티 타입
약한 엔티티 타입과 구분하기 위해, 키를 가지는 정규(regular) 엔티티 타
입을 강한 엔티티 타입이라 부르기도 함
약한 엔티티 타입은 애트리뷰트 중 하나가 다른 엔티티 타입에 연계됨으
로서 식별될 수 있음 식별(identifying) 엔티티 타입
식별(소유) 엔티티 타입과 식별 관계식별( 유) 엔티티 타입과 식별 관계
• EMPLOYEE와 DEPENDENT에서 EMPLOYEE가 식별 엔티티 타입이며,
두 엔티티 타입 사이의 관계를 식별 관계라고 부름
Database by Yang-Sae MoonPage 31
약한약한 엔티티엔티티 타입타입 (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
• 식별 관계 타입 외에 다른 관계 타입들에 독립적으로 참여하는 경우
약한약한 엔티티엔티티 타입의타입의 표현표현ER 모델을 사용한 데이터 모델링
• 약한 엔티티 타입으로 표현 • 복합 다치 애트리뷰트로 표현
EMPLOYEEEMPLOYEE
1
Dependents
HAS
Dependents
Name Sex BirthDate Relationship
N
DEPENDENTS
N
Name Sex BirthDate Relationship
Database by Yang-Sae MoonPage 33
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
개념적개념적 설계의설계의 결과결과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
ERDERD에서에서 명명명명 규칙과규칙과 설계설계 시시 유의유의 사항사항ER 모델을 사용한 데이터 모델링
명명 규칙
스키마에 사용된 각 구조물에 대해 가능한 한 그 의미를 전달할 수 있는 이름 선택• 스키마에 사용된 각 구조물에 대해 가능한 한 그 의미를 전달할 수 있는 이름 선택
• 복수보다 단수 이름 선택
• 일반적으로 자연어로 기술된 요구 사항에서 명사는 엔티티 타입 이름 동사는 관계 타입• 일반적으로 자연어로 기술된 요구 사항에서 명사는 엔티티 타입 이름, 동사는 관계 타입
이름으로 해석하는 것이 도움이 됨
설계 시 유의 사항
• ER 다이어그램은 왼쪽에서 오른쪽 위에서 아래로 읽기 쉽게 작성함• ER 다이어그램은 왼쪽에서 오른쪽, 위에서 아래로 읽기 쉽게 작성함
• 스키마 설계는 반복해서 개선하는 작업이 필요함 한번에 완성하기는 쉽지 않음
Database by Yang-Sae MoonPage 36
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
구조적구조적 제약제약 조건조건ER 모델을 사용한 데이터 모델링
관계(relationship)에 대한 구조적 제약 조건
관계에 대한 의미를 현하 방법을 일컬음 관계에 대한 의미를 표현하는 방법을 일컬음
(2진 관계에서의) 카디날리티 비율
• 1:1, 1:N, or M:N
• 연결된 선에 적절한 숫자를 나타냄으로써 표기함
(각 참여 엔티티에 대한) 참여 제약조건(각 참여 엔티티에 대한) 참여 제약조건
• 전체 (또는 존재 종속성) 또는 부분 참여
• 전체 참여의 경우 연결된 선을 이중선으로 표기함.전체 참여의 경우 연결된 선을 이중선 기함
Database by Yang-Sae MoonPage 38
구조적구조적 제약제약 조건을조건을 위한위한 다른다른 표기법표기법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)로 표기
((최소값최소값, , 최대값최대값) ) 표기법표기법 관계관계 제약제약 조건조건ER 모델을 사용한 데이터 모델링
(1,1)(0,1) ( , )
(1 N)(1,1) (1,N)(1,1)
Database by Yang-Sae MoonPage 40
((최소값최소값,,최대값최대값))를를 사용한사용한 COMPANY ERDCOMPANY ERDER 모델을 사용한 데이터 모델링
Database by Yang-Sae MoonPage 41
UML UML 클래스클래스 다이어그램다이어그램ER 모델을 사용한 데이터 모델링
엔티티타입클래스엔티티(개체) 오브젝트(객체)관계연관(Association), 순환적관계재귀연관
이름
속성애트리뷰트
최소..최대연관의애트리뷰트
연산: ERD와의차이점연관
역할이름
집단화(Aggregation)
참여수에상관없음
재귀연관
역할이름
역할이름
판별자
자격연관자격집단화
애트리뷰트: 도메인(애트리뷰트값집합)
Database by Yang-Sae MoonPage 42
데이터데이터 모델링모델링 도구도구 (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
데이터데이터 모델링모델링 도구도구 (2/2)(2/2)ER 모델을 사용한 데이터 모델링
Database by Yang-Sae MoonPage 44
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
요약요약ER 모델을 사용한 데이터 모델링
엔티티-관계(ER) 모델을 사용한 모델링 개념
엔티티 (개체)와 관계의 정의• 엔티티 (개체)와 관계의 정의
스키마 레벨에서 ER 모델 개념
ER 다이어그램
Database by Yang-Sae MoonPage 46