데이터베이스 (Databases)
ER 모델을 사용한 데이터 모델링
문양세
강원대학교 IT 대학 컴퓨터공학과
Database by Yang-Sae Moon Page 2
강의 내용
개념적 모델링과 예제 데이터베이스 (COMPANY) ER 모델의 개념
엔티티와 애트리뷰트
엔티티 타입 , 값 집합 , 키 애트리뷰트
관계와 관계 타입
약한 엔티티 타입
역할과 관계 타입에서의 애트리뷰트
ER 다이어그램 (ERD) – 표기법
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 3
서론
데이터베이스 응용
데이터베이스 + 필요한 기능을 구현한 프로그램
엔티티 - 관계 모델링 (ER Modeling)
고수준 데이터 모델 : 인간의 이해를 돕기 위한 모델
개념설계 도구로서 데이터베이스 구조와 제약조건 정의
다른 모델링 기법
UML 방법론의 클래스 다이어그램을 이용한 모델링
데이터베이스 구조와 제약조건 + 연산 정의
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 4
DB 설계를 위한 개념적 데이터 모델 사용
데이터베이스 설계의 단계들 [ 그림 3.1]
ER 모델을 사용한 데이터 모델링
작은 세계
요구사항들의 수정과 분석
데이타베이스 요구사항들 개념적 설계
개념 스키마
(고수준 데이터 모델로 표현됨 ) 논리적 설계
(DATA MODEL MAPPING) 논리적 ( 개념적 ) 스키마
(특정 DBMS 의 구현 ( 표현 ) 데이터 모델로 표현됨 ) 물리적 설계
내부스키마
(For the same DBMS) 기능적 요구사항들
FUNCTIONAL ANALYSIS
APPLICATION PROGRAM DESIGN
TRANSACTION IMPLEMENTATION High-level Transaction Specification DBMS-independent
DBMS-specific
내부저장구조 인덱스접근경로 화일조직
상용 DBMS 사용 ERD 사용
DFD, 순서도 , 시나리오 , 순서 다이어그램
Application Programs
Database by Yang-Sae Moon Page 5
예제 COMPANY 데이터베이스 (1/2)
COMPANY 데이터베이스의 작은 세계
1. 회사는 여러 부서들로 구성된다 .
각 부서마다 고유한 이름 , 고유한 번호 , 부서를 관리하는 특정 사원이 있다 .
사원이 부서를 관리하기 시작한 날짜도 유지한다 . 한 부서는 여러 위치에 있을 수 있다 .
2. 한 부서는 여러 프로젝트들을 관리한다 . 각 프로젝트는 고유한 이름 , 고유한 번호 , 한 개의 위치를 가진다 .
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 6
예제 COMPANY 데이터베이스 (2/2)
COMPANY 데이터베이스의 작은 세계 ( 계속 )
3. 각 사원에 대해서 이름 , 사회보장번호 , 주소 , 급여 , 성별 , 생년월일을 저장한다 . 한 사원은 한 부서에 속하지만 , 여러 프로젝트들에 관여할 수 있다 .
한 사원이 관여하는 프로젝트들은 그 사원이 소속된 부서가 관리하는 프로젝트가 아니어도 무방하다 .
반드시 한 부서의 각 사원이 각 프로젝트를 위해 일하는 주당 근무 시간을 기록한다 . 또한 각 사원의 직속 상사도 유지한다 .
4. 보험 목적을 위해서 각 사원의 부양가족들을 기록한다 .
각 부양 가족에 대해서 이름 , 성별 , 생년월일 , 사원과의 관계를 기록한다 .
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 7
개념적 설계의 결과 – ERD
(1/2)
ER 모델을 사용한 데이터 모델링Fname Minit Lname
Name Address
Sex Salary
Ssn
Bdate
EMPLOYEE
WORKS_FOR
StartDate NumberOfEmployees
MANAGES
SUPERVISION
Number
Name Locations
DEPATMENT
CONTROLS
PROJECT
Name
Location Number
Hours
WORKS_ON
DEPENDENTS_OF
DEPENDENT
Sex
Name BirthDate Relationship supervisor
1 N
supervisee
N 1
M N
N 1
N 1
1 1
Database by Yang-Sae Moon Page 8
개념적 설계의 결과 – ERD
(2/2)
ER 모델을 사용한 데이터 모델링[ 그림 3.2]
Database by Yang-Sae Moon Page 9
COMPANY 데이터베이스
Database by Yang-Sae Moon Page 10
강의 내용
개념적 모델링과 예제 데이터베이스 (COMPANY) ER 모델의 개념
엔티티와 애트리뷰트
엔티티 타입 , 값 집합 , 키 애트리뷰트
관계와 관계 타입
약한 엔티티 타입
역할과 관계 타입에서의 애트리뷰트
ER 다이어그램 (ERD) – 표기법
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 11
개체 타입 , 개체 집합 , 애트리뷰트 , 키
ER 모델은 데이터를 엔티티 ( 개체 ), 관계 , 애트리뷰트 ( 속성 ) 로 모델 링함
엔티티 - 관계 모델링
엔티티 : 실세계에서 독립적으로 존재하는 실체
애트리뷰트 : 엔티티를 기술하는 속성
두 개 엔티티 ( 직원 e
1과 회사 c
1) 와 애트리뷰트 및 값 [ 그림 3.3]
ER 모델을 사용한 데이터 모델링
Name = John Smith
Address = 2311 Kirby,
Houston, Texas 77001 Age = 55
HomePhone = 713-749-2630
e1
Name = Sunco Oil
Headquarters = Houston
President = John Smith
c
1Database by Yang-Sae Moon Page 12
엔티티 & 애트리뷰트
ER 모델을 사용한 데이터 모델링
Locations Fname Minit Lname
Name Address
Sex Salary
Ssn
Bdate
EMPLOYEE
WORKS_FOR
StartDate NumberOfEmployees
MANAGES
SUPERVISION
Number
Name
DEPATMENT
CONTROLS
PROJECT
Name
Location
Number Hours
WORKS_ON
DEPENDENTS_OF
DEPENDENT
Sex
Name BirthDate Relationship supervisor
1 N
supervisee
N 1
M N
N 1
N 1
1 1
Database by Yang-Sae Moon Page 13
애트리뷰트 유형 (1/2)
복합 (composite) 애트리뷰트 ( 애트리뷰트 집합 ) : 더 작은 요소로 나 뉨
단순 (simple) 애트리뷰트 ( 원자 애트리뷰트 )
복합 애트리뷰트의 계층구조 [ 그림 3.4]
단일 값 (single value) 애트리뷰트 : 애트리뷰트 하나는 하나의 값을 가 짐
다치 (multi-valued) 애트리뷰트 :
애트리뷰트 하나가 여러 값을 가질 수 있음
한 사람은 여러 개 학위를 가질 수 있음
ER 모델을 사용한 데이터 모델링
Address
StreetAddress City State Zip
Number Street ApartmentNumber
Database by Yang-Sae Moon Page 14
애트리뷰트 유형 (2/2)
저장된 (stored) 애트리뷰트 : DB 에 실제로 저장된 애트리뷰트 ( 예 : DOB Date of Birth)
유도된 (derived) 애트리뷰트 : 실제 저장되어 있지 않으나 , 다른 애트 리뷰트나 사실 (fact) 에 의해 그 값이 유도될 수 있는 애트리뷰트
( 예 : Age 오늘 날짜와 DOB 에 의해 나이가 유도될 수 있음 )
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 15
특수한 애트리뷰트
ER 모델을 사용한 데이터 모델링
Locations Fname Minit Lname
Name Address
Sex Salary
Ssn
Bdate
EMPLOYEE
WORKS_FOR
StartDate NumberOfEmployees
MANAGES
SUPERVISION
Number
Name
DEPATMENT
CONTROLS
PROJECT
Name
Location Number
Hours
WORKS_ON
DEPENDENTS_OF
DEPENDENT
Sex
Name BirthDate Relationship supervisor
1 N
supervisee
N 1
M N
N 1
N 1
1 1
복합 애트리뷰트
애트리뷰트다치
유도 애트리뷰트
Database by Yang-Sae Moon Page 16
널 (NULL) 값
두 가지 의미로 사용됨
‘ 적용할 수 없음’이라는 의미
Apartment_number 는 단독 주택에 적용되지 않음
College_degree 는 대학 미 졸업자에게는 적용되지 않음
‘ 알려지지 않음’의 의미
John Smith( 는 핸드폰이 있으나 ) 핸드폰 번호는 알지 못함
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 17
복잡한 (complex) 애트리뷰트
ER 모델을 사용한 데이터 모델링
괄호를 사용하여 중첩된 형태의 애트리뷰트를 구성 예제 : AddressPhone
{AddressPhone( {Phone(AreaCode, PhoneNumber)},
Address( StreetAddress(Number, Street, ApartmentNumber), City,
State, Zip ) )
}
Database by Yang-Sae Moon Page 18
엔티티 타입 ( 개체 타입 )
엔티티 타입 : 같은 애트리뷰트를 갖는 엔티티들의 집합 ( 각 엔티티는 각 애트리뷰트에 대해 자신만의 값을 가짐 )
EMPLOYEE 와 COMPANY 엔티티 타입과 이에 속하는 개체들 [ 그림 3.6]
ER 모델을 사용한 데이터 모델링
엔티티 타입의 이름 : 애트리뷰트 이름
개체 집합 ( 외연 )
애트리뷰트 값
e1
(John Smith, 55, 80k)
e2
(Fred Brown, 40, 30K)
e3
(Judy Clark, 25, 20K) :
c1
(Sunco Oil, Houston, John Smith)
c2
(Fast Computer, Dallas, Bob King)
: :
EMPLOYEE COMPANY
Name, Age, Salary Name, Headquarters, President
Database by Yang-Sae Moon Page 19
CAR 엔티티 ( 개체 ) 타입
Registration 과 VehicleID 의 두 개의 키 애트리뷰트를 가짐 [ 그림 3.7]
ER 모델을 사용한 데이터 모델링
CAR
Registration(RegistrationNumber, State), VehicleID, Make, Model, Year, {Color}
car1
((ABC 123, TEXAS), TK629, Ford Mustang, convertible, 1989, {red,black}) car2
((ABC 123, NEW YORK), WP9872, Nissan Sentra, 2-door, 1992, {blue}) car3
((VSY 720, TEXAS), TD729, Chrysler LeBaron, 4-door, 1993, {white, blue}) :
Database by Yang-Sae Moon Page 20
키 애트리뷰트와 값 집합 [ 도메인 ]
키 애트리뷰트 (key attribute)
각 엔티티마다 서로 다른 값을 가지는 애트리뷰트
그림 3.6 에서 COMPANY 엔티티 타입에서 키 애트리뷰트는 Name
일반적으로 , PERSON 엔티티 타입의 키 애트리뷰트는 SocialSecurityNumber
복합 키 : 두 개 이상의 애트리뷰트들이 모여서 하나의 키 애트리뷰트 역할을 하는 키
값 집합 ( 도메인 )
각 엔티티에서 애트리뷰트가 가질 수 있는 값들의 집합
EMPLOYEE 의 Age 애트리뷰트의 값 집합은 ? (16 부터 70 사이의 정수 집합 )
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 21
키 애트리뷰트
ER 모델을 사용한 데이터 모델링
Fname Minit Lname
Name Address
Sex Salary
Ssn
Bdate
EMPLOYEE
WORKS_FOR
StartDate NumberOfEmployees
MANAGES
SUPERVISION
Number
Name Locations
DEPATMENT
CONTROLS
PROJECT
Name
Location Number
Hours
WORKS_ON
DEPENDENTS_OF
DEPENDENT
Sex
Name BirthDate Relationship supervisor
1 N
supervisee
N 1
M N
N 1
N 1
1 1
Database by Yang-Sae Moon Page 22
COMPANY DB 에 대한 초기 개념적 설계 (1/2)
1. 엔티티 타입 DEPARTMENT 는 Name, Number, Location, Manager, ManagerStartDate 애트리뷰트를 가진다 .
Location 은 다치 애트리뷰트이다 . Name 과 Number 는 각 부서마다 고유하기
때문에 각각 키 애트리뷰트로 지정할 수 있다 .
2. 엔티티 타입 PROJECT 는 Name, Number, Locations, ControllingDepart- ment
애트리뷰트들을 가진다 .
Name 과 Number 가 각각 키 애트리뷰트이다 .
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 23
COMPANY DB 에 대한 초기 개념적 설계 (2/2)
3. 엔티티 타입 EMPLOYEE 는 Name, SSN, Sex, Address, Salary, BirthDate, Department, Supervisor 애트리뷰트들을 가진다 .
SSN 이 키 애트리뷰트이고 , Name 은 복합 애트리뷰트 이다 .
4. 엔티티 타입 DEPENDENT 는 Employee, DependentName, Sex, Birth- Date, Relationship( 사원과의 관계 ) 애트리뷰트들을가진다 .
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 24
COMPANY DB 의 엔티티 타입들의 초기 설계 (1/2)
ER 모델을 사용한 데이터 모델링
DEPARTMENT
Name, Number, {Locations}, Manager, ManagerStartDate
PROJECT
Name, Number, Location, ControllingDepartment
Database by Yang-Sae Moon Page 25
COMPANY DB 의 엔티티 타입들의 초기 설계 (2/2)
ER 모델을 사용한 데이터 모델링
EMPLOYEE
Name(FName, MInit, LName), SSN, Sex, Address, Salary, BirthDate, Department, Supervisor, {WorksOn (Project, Hours)}
DEPENDENT
Employee, DependentName, Sex, BirthDate, Relationship
Database by Yang-Sae Moon Page 26
강의 내용
개념적 모델링과 예제 데이터베이스 (COMPANY) ER 모델의 개념
엔티티와 애트리뷰트
엔티티 타입 , 값 집합 , 키 애트리뷰트
관계와 관계 타입
약한 엔티티 타입
역할과 관계 타입에서의 애트리뷰트
ER 다이어그램 (ERD) – 표기법
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 27
관계 , 관계 타입 , 역할 , 구조적 제약조 건
관계 타입과 관계 인터페이스 관계 타입의 차수 (degree) 애트리뷰트로서의 관계
역할과 순환적 (recursive) 관계 관계 타입에서 제약조건
관계 타입의 애트리뷰트
ER 모델을 사용한 데이터 모델링
MANAGES
DEPENDENTS_OF
SUPERVISION
Database by Yang-Sae Moon Page 28
관계 타입과 관계 인스턴스
관계 타입 ( 관계 집합 ) R 은 엔티티 간의 연관들의 집합임 : [ 그림 3.9] 에서 WORKS_FOR 가 이에 해당함 ( 아래 그림 )
[ 그림 3.9] 관계 WORKS_FOR 에서 관계 인스턴스 : 7 개 (r1 ~ r7)
ER 모델을 사용한 데이터 모델링
e1 e2 e3 e4 e5 e6 e7 . .
r1 r2 r3 r4 r5 r6 r7 :
d1 d2 d3 . . .
EMPLOYEE
WORKS_FOR
DEPARTMENT
Database by Yang-Sae Moon Page 29
관계 타입의 차수 (degree)
차수 : 관계에 참여하고 있는 엔티티 타입의 수
이진 (binary) 차수 : [ 그림 3.9] 의 WORKS_FOR 관계
3 진 (ternary) 차수 : [ 그림 3.10] 3 진 관계 SUPPLY ( 아래 그림 )
ER 모델을 사용한 데이터 모델링
r1 r2 r3 r4 r5 r6 r7 : s1
s2 . . .
p1 p2 p3 . . .
j1 j2 j3 . . .
SUPPLIER
PART
PROJECT SUPPLY
Database by Yang-Sae Moon Page 30
애트리뷰트로서의 관계
관계는 참여 엔티티 타입의 애트리뷰트로 볼 수도 있음
즉 , 관계가 엔티티의 애트리뷰트로 표현 ( 구현 ) 될 수 있음을 의미 예 : EMPLOYEE 와 DEPARTMENT 사이의 WORKS_FOR 는
엔티티 타입 EMPLOYEE 에 Department 애트리뷰트로 표현되거나 ,
엔티티 타입 DEPARTMENT 의 Employees 애트리뷰트로 표현될 수 있음
ER 모델을 사용한 데이터 모델링
EMPLOYEE
Name(FName, MInit, LName), SSN, Sex, Address, Salary, BirthDate, Department, Supervisor, {WorksOn (Project, Hours)}
Database by Yang-Sae Moon Page 31
역할 이름과 순환적 (recursive) 관계 (1/2)
역할 이름 (role name): 관계 타입에 참여하는 각 에티티 타입은 관계 내에서 특정한 역할을 담당함
예 : 관계 WORKS_FOR 에서 EMPLOYEE 는 사원 / 근로자 역할이고 , DEPARTMENT 는 부서 / 고용주의 역할임
일반적으로 관계에 참여하는 엔티티 타입이 다르면 , 그 이름 자체가 역 할로서 사용되기 때문에 , 역할 이름을 특별히 명시하지 않음
ER 모델을 사용한 데이터 모델링
EMPLOYEE WORKS_FOR DEPARTMENT
SUPERVISION supervisor supervisee
Database by Yang-Sae Moon Page 32
역할 이름과 순환적 (recursive) 관계 (2/2)
한 엔티티 타입이 관계에 두 번 이상 참여하면 , 역할을 구분하기 위해 , 역할 이름을 부여하거나 , 대응하는 번호 등을 부여함
[ 그림 3.2] 의 SUPERVISION 관계에서 , supervisor 와 supervisee 가 역할 이름임
같은 예로서 , [ 그림 3.11] Employee 에서의 순환적 관계 SUPERVISION 은 상사 (1) 와
부하 (2) 의 두 역할로 구분할 수 있음
ER 모델을 사용한 데이터 모델링
e1 e2 e3 e4 e5 e6 E7 ...
r1 r2 r3 r4 r5 r6 ...
1 2
12 1 2
2 1 1 2 1
2
EMPLOYEE SUPERVISION
Database by Yang-Sae Moon Page 33
관계 타입에서 제약 조건 (1/3)
카디날리티 (cardinality) 비율 : 엔티티가 참여할 수 있는 최대 관계 인 스턴스의 수를 명시
이진 관계 타입에 대한 카디날리티 비율은 1:1, 1:N, M:N 1:1 카디날리티 비율의 예 (MANAGES)
ER 모델을 사용한 데이터 모델링
e1
e2
e3
e4
e5
e6
e7 . . .
r1
r2
r3 :
d1
d2
d3 :
EMPLOYEE
MANAGES DEPARTMENT
Database by Yang-Sae Moon Page 34
관계 타입에서 제약 조건 (2/3)
M:N 카디날리티 비율의 예 (WORKS_ON) [ 그림 3.13]
ER 모델을 사용한 데이터 모델링
e1 e2 e3 e4 . . .
r1 r2 r3 r4 r5 r6 R7 . .
p1 p2 p3 p4 . . .
EMPLOYEE
WORKS_ON
PROJECT
Database by Yang-Sae Moon Page 35
관계 타입에서 제약 조건 (3/3)
참여 제약조건 (participation constraint) : 한 엔티티의 존재가 관계 타 입을 통해 연관되어 있는 다른 엔티티에 의존하는지의 여부
부분참여 (partial participation) 와 전체참여 (total participation)
( 일반적으로 ) 부분참여는 단일 실선으로 표현하고 ,
전체참여는 이중 실선으로 표현함
예 : MANAGES 관계에서 ,
( 모든 사원이 manager 로 참여하는 것은 아니므로 ) EMPLOYEE 는 부분참여이고 ,
( 모든 부서는 ( 한 명의 ) manager 가 있으므로 ) DEPARTMENT 는 전체참여임
전체참여를 존재종속성 (existence dependency) 라고도 부름
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 36
관계 타입의 애트리뷰트 (1/2)
관계 타입도 ( 엔티티 타입 처럼 ) 애트리뷰트들을 가질 수 있음 관계 타입이 애트리뷰트를 가지는 예 :
WORKS_ON 관계 타입에 Hours 애트리뷰트를 포함시킬 수 있음
MANAGES 관계 타입에 StartDate 를 포함시킬 수 있음 ( 언제 관리자가 되었나 )
1:1 관계 타입의 애트리뷰트 : 양쪽 엔티티 타입으로 이동 가능
ER 모델을 사용한 데이터 모델링
EMPLOYEE
DEPARTMENT
MANAGES StartDate 1
1
EMPLOYEE
DEPARTMENT MANAGES
StartDate 1
1
EMPLOYEE
DEPARTMENT MANAGES
1
1
StartDate
Database by Yang-Sae Moon Page 37
관계 타입의 애트리뷰트 (2/2)
1:N 관계 타입의 애트리뷰트 : N 쪽 엔티티 타입으로 이동 가능
M:N 관계 타입의 애트리뷰트 : 엔티티 타입으로 이동 불가
해당 애트리뷰트는 반드시 관계 타입에 표현되어야 함
ER 모델을 사용한 데이터 모델링
EMPLOYEE
DEPARTMENT
WORKSFOR StartDate N
1
EMPLOYEE
DEPARTMENT WORKSFOR
N
1
StartDate EMPLOYEE
DEPARTMENT WORKSFOR
N
1
StartDate
Database by Yang-Sae Moon Page 38
약한 엔티티 타입 (Weak Entity Type) (1/2)
약한 엔티티 타입 : 자신의 키 애트리뷰트가 없는 엔티티 타입
예 : DEPENDENT 엔티티 타입
약한 엔티티 타입과 구분하기 위해 , 키를 가지는 정규 (regular) 엔티티 타입을 강한 엔티티 타입이라 부르기도 함
약한 엔티티 타입은 애트리뷰트 중 하나가 다른 엔티티 타입에 연계됨으 로서 식별될 수 있음 식별 (identifying) 엔티티 타입
식별 ( 소유 ) 엔티티 타입과 식별 관계
EMPLOYEE 와 DEPENDENT 에서 EMPLOYEE 가 식별 엔티티 타입이며 , 두 엔티티 타입 사이의 관계를 식별 관계라고 부름
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 39
약한 엔티티 타입 (Weak Entity Type) (2/2)
부분 키 (partial key)
동일한 소유 엔티티와 연관된 약한 엔티티 집합 내의 서브 집합 ( 예를 들어 , 소유 엔티티 employee e1 의 dependents set) 내에서 , 서로를 구분할 수 있는 애트리뷰트들의 집합 ( 예를 들어 , Dependent.name) [ 가정 : 부양 가족 내에 같은 이름은 없음 ]
ERD 에서 약한 엔티티 타입과 이의 식별 관계는 마름모를 이중선으로 , 부분키는 점선 밑줄로 표현함 ( 그림 3.2 참조 )
약한 엔티티는 소유 엔티티 타입의 복합 애트리뷰트로 표현할 수도 있음
예를 들어 , EMPLOYEE 에 대해 , Name, Birth_date, Sex, Relationship 의 애트리뷰트 로 구성되는 복합 다치 애트리뷰트 Dependents 를 명시할 수 있음 ( 다음 슬라이드 참 조 )
그러나 , 다음 경우에는 별도 엔티티 타입으로 표현하는 것이 바람직함
엔티티가 많은 애트리뷰트들을 가지고 ,
식별 관계 타입 외에 다른 관계 타입들에 독립적으로 참여하는 경우
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 40
약한 엔티티 타입의 표현
ER 모델을 사용한 데이터 모델링
약한 엔티티 타입으로 표현
EMPLOYEE
DEPENDENTS HAS
Name
1
Sex BirthDate Relationship
복합 다치 애트리뷰트로 표현
EMPLOYEE
Dependents
Name Sex BirthDate Relationship
N
Database by Yang-Sae Moon Page 41
강의 내용
개념적 모델링과 예제 데이터베이스 (COMPANY) ER 모델의 개념
엔티티와 애트리뷰트
엔티티 타입 , 값 집합 , 키 애트리뷰트
관계와 관계 타입
약한 엔티티 타입
역할과 관계 타입에서의 애트리뷰트
ER 다이어그램 (ERD) – 표기법
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 42
COMPANY DB 에 대한 ER 설계의 개선
그림 3.8( 초기 설계 ) 에서 관계를 나타내는 애트리뷰트들을 관계 타입 으로 변환하여 발전시킴 ( 결과는 다음 페이지 [ 그림 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 관계 타입
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 43
개념적 설계의 결과
ER 모델을 사용한 데이터 모델링
Fname Minit Lname
Name Address
Sex Salary
Ssn
Bdate
EMPLOYEE
WORKS_FOR
StartDate NumberOfEmployees
MANAGES
SUPERVISION
Number
Name Locations
DEPATMENT
CONTROLS
PROJECT
Name
Location Number
Hours
WORKS_ON
DEPENDENTS_OF
DEPENDENT
Sex BirthDate Relationship supervisor
1 N
supervisee
N 1
M N
N 1
N 1
1 1
Name
Database by Yang-Sae Moon Page 44
ERD 에서 명명 규칙과 설계 시 유의 사항
명명 규칙
스키마에 사용된 각 구조물에 대해 가능한 한 그 의미를 전달할 수 있는 이름 선택
복수보다 단수 이름 선택
일반적으로 자연어로 기술된 요구 사항에서 명사는 엔티티 타입 이름 , 동사는 관계 타입 이름으로 해석하는 것이 도움이 됨
설계 시 유의 사항
ER 다이어그램은 왼쪽에서 오른쪽 , 위에서 아래로 읽기 쉽게 작성함
스키마 설계는 반복해서 개선하는 작업이 필요함 한번에 완성하기는 쉽지 않음
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 45
개념적 설계의 결과
ER 모델을 사용한 데이터 모델링
Fname Minit Lname
Name Address
Sex Salary
Ssn
Bdate
EMPLOYEE
WORKS_FOR
StartDate NumberOfEmployees
MANAGES
SUPERVISION
Number
Name Locations
DEPATMENT
CONTROLS
PROJECT
Name
Location Number
Hours
WORKS_ON
DEPENDENTS_OF
DEPENDENT
Sex BirthDate Relationship supervisor
1 N
supervisee
N 1
M N
N 1
N 1
1 1
Name
Database by Yang-Sae Moon Page 46
ER 다이어그램 표기법 요약 [ 그림
3.14]
ER 모델을 사용한 데이터 모델링Symbol Meaning Symbol Meaning
엔티티 타입 약한 엔티티 타입 관계 타입
식별 관계 타입
애트리뷰트 키 애트리뷰트 다치 애트리뷰트
...
E1 R E2
E1 R E2
R (최대값 , 최소값 )
E
복합 애트리뷰트
유도된 애트리뷰트 E2가 R 에 전체참여 E1이 R 에 부분참여 R에서 E1:E2 의
카디날리티 비율이 1:N R에서 E 의 참여에 대한 구조적 제약조건
( 최대값 , 최소값 )
E가 R 의 관계를 몇 개나 가지는가 ?
1 N
Database by Yang-Sae Moon Page 47
구조적 제약 조건
관계 (relationship) 에 대한 구조적 제약 조건
관계에 대한 의미를 표현하는 방법을 일컬음
(2 진 관계에서의 ) 카디날리티 비율
1:1, 1:N, or M:N
연결된 선에 적절한 숫자를 나타냄으로써 표기함
( 각 참여 엔티티에 대한 ) 참여 제약조건
전체 ( 또는 존재 종속성 ) 또는 부분 참여
전체 참여의 경우 연결된 선을 이중선으로 표기함 .
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 48
구조적 제약 조건을 위한 다른 표기법
( 최소값 , 최대값 ) 을 사용한 표기법
ER 모델을 사용한 데이터 모델링
관계 타입 R 에서 엔티티 타입 E 의 각 참여를 명시
E 내의 각 엔티티 e 가 적어도 최소값 만큼 그리고 최대 최대값 만큼 R 내의 관계 인스턴스들과 참여함을 나타냄
디폴트 ( 제약조건 무 ): 최소값 =0, 최대값 =n
반드시 , 최소값최대값 , 최소값 0, 최대값 1
예 : 다음 페이지 참조
부서는 정확히 한 명의 부서장을 가지며 사원은 최대 한 개의 부서를 관리할 수 있다 .
MANAGES의 EMPLOYEE 의 참여에 (0,1) 로 표기
MANAGES의 DEPARTMENT 의 참여에 (1,1) 로 표기
사원은 정확히 한 부서에서 일 할 수 있으며 부서는 몇 명의 사원이라도 둘 수 있다 .
WORKS_FOR 의 EMPLOYEE 의 참여에 (1,1) 로 표기
WORKS_FOR 의 DEPARTMENT 의 참여에 (0,n) 로 표기
Database by Yang-Sae Moon Page 49
( 최소값 , 최대값 ) 표기법 관계 제약 조
건
ER 모델을 사용한 데이터 모델링Employee (0,1) Manages (1,1) Department
Employee (1,1) Works-for (0,N) Department
Database by Yang-Sae Moon Page 50
( 최소값 , 최대값 ) 를 사용한 COMPANY
ERD
ER 모델을 사용한 데이터 모델링Database by Yang-Sae Moon Page 51
UML 클래스 다이어그램
ER 모델을 사용한 데이터 모델링
이름 속성애트리뷰트
연산 : ERD 와의 차이점 엔티티 타입 클래스
엔티티 ( 개체 ) 오브젝트 ( 객체 )
관계 연관 (Association), 순환적 관계 재귀연관
애트리뷰트 : 도메인 ( 애트리뷰트 값집합 )
연관
참여수에 상관없음 최소 .. 최대
재귀연관 역할이름
역할이름
연관의 애트리뷰트
집단화 (Aggregation)
판별자
자격연관자격집단화
Database by Yang-Sae Moon Page 52
요약
엔티티 - 관계 (ER) 모델을 사용한 모델링 개념
엔티티 ( 개체 ) 와 관계의 정의
스키마 레벨에서 ER 모델 개념 ER 다이어그램
ER 모델을 사용한 데이터 모델링
Database by Yang-Sae Moon Page 53
Homework #1
ER 모델을 사용한 데이터 모델링