You are on page 1of 35

제 3 장

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


데이타 모델링

Fundamentals of Database Systems


R. A. Elmasri and S. B. Navathe

© 2005 황규영 홍의경 음두헌 박영철 김진호 조완섭



목차차

• 예제 데이터베이스 응용 (COMPANY)
• ER 모델의 개념
– 엔티티와 애트리뷰트
– 엔티티 타입 , 값 집합 , 키 애트리뷰트
– 관계와 관계 타입
– 약한 엔티티 타입
– 역할과 관계 타입에서의 애트리뷰트

• ER 다이어그램 - 표기법
• COMPANY 스키마를 위한 ER 다이어그램
• 다른 표기법 - UML 클래스 다이어그램 , 기타

5판Ch3 Fundamentals of Database Systems 2


예제 COMPANY 데이터베이스
예제 COMPANY 데이터베이스
• 회사 (Company) 의 데이타베이스 요구사항 ( 설명을 위해 간략화 됨 )
– 회사는 여러 부서 (DEPARTMENT) 들로 구성 . 각 부서는 부서명 (name), 번호
(number), 부서장을 가진다 . 부서장의 부임 날짜 (start date) 도 유지한다 .

– 한 부서는 여러 개의 프로젝트 (PROJECT) 들을 관리한다 . 각 프로젝트는 이름


(name) 과 번호 (number) 를 가지며 한 곳 (location) 에 위치한다 .

– 각 사원 (EMPLOYEE) 의 주민등로번호 (social security number), 주소


(address), 월급 (salary), 성별 (sex), 생년월일 (birthdate) 을 저장한다 . 각 사
원은 한 부서에서 근무하며 (works for) 여러 프로젝트에 관여한다 (work on). 각
사원이 각 프로젝트를 위해 주당 근무 시간을 저장한다 . 또한 , 각 직원의 직속 상
사 (direct supervisor) 도 유지한다 .

– 각 사원은 여러 명의 부양가족 (DEPENDENT) 들을 가진다 . 각 부양가족에 대해


이름 (name), 성별 (sex), 생년월일 (birthdate), 직원과의 관계 (relationship)
를 저장한다 .

5판Ch3 Fundamentals of Database Systems 3


ER 모델의
ER 모델의 개념
개념
• 엔티티와 애트리뷰트
– 엔티티는 데이타베이스 내에 표현된 작은 세계에 존재하는 객체 또는 실체이
다 . 예를 들어 , EMPLOYEE John Smith, 연구 DEPARTMENT, ProductX
PROJECT 등이 있다 .
– 애트리뷰트들은 엔티티를 기술하기 위한 속성들이다 . 예를 들어 ,
EMPLOYEE 엔티티는 Name, SSN, Address, Sex, BirthDate 를 가질 수 있
다.
– 특정한 엔티티는 자신의 각 애트리뷰트에 대해 값을 가진다 . 예를 들어 , 한
특정한 사원 엔티티는 Name='John Smith', SSN='123456789', Address
='731, Fondren, Houston, TX', Sex='M', BirthDate='09-JAN-55‘ 를 값
으로 가진다 .
– 각 애트리뷰트는 정수 , 스트링과 같은 자신에 연계된 값 집합 ( 또는 데이터
타입 ) 을 가진다 .

5판Ch3 Fundamentals of Database Systems 4


애트리뷰트
애트리뷰트 타입
타입 (1)
(1)
• 단순 ( 원자 ) 애트리뷰트
– 각 엔티티는 각 애트리뷰트에 대해 더 이상 나눌 수 없는 값을 가진다 . 예를
들면 , SSN 또는 Sex.
• 복합 애트리뷰트
– 애트리뷰트는 몇 개의 구성요소들로 이루어 질 수 있다 . 예를 들면 , Address
(Apt#, House#, Street, City, State, ZipCode, Country) 또는 Name
(FirstName, MiddleName, LastName). 구성은 그 구성요소가 다시 복합
애트리뷰트인 계층 구조를 형성할 수 있다 .
• 다치 애트리뷰트
– 각 엔티티는 애트리뷰트의 값으로 여러 값을 가질 수 있다 . 예를 들면 ,
{Color} 로 표기되는 CAR 의 색 또는 {PreviousDegrees} 로 표기되는
STUDENT 의 이전 학위가 다치 애트리뷰트이다 .

5판Ch3 Fundamentals of Database Systems 5


애트리뷰트의
애트리뷰트의 타입
타입(2)
(2)

• 일반적으로 , 복합 및 다치 애트리뷰트는 몇 단계로 내포


될 수 있지만 그런 경우는 흔하지 않다 .
• 예를 들면 , STUDENT 의 PreviousDegrees 는
{PreviousDegrees (College, Year, Degree, Field)} 로
표기되는 다치 애트리뷰트일 수 있다 .

5판Ch3 Fundamentals of Database Systems 6


엔티티
엔티티 타입과
타입과 키
키 애트리뷰트
애트리뷰트
• 엔티티 타입은 동일한 애트리뷰트들을 갖는 엔티티들의 집합으로
정의함
– 예를 들면 , EMPLOYEE 엔티티 타입 또는 PROJECT 엔티티 타입 .

• 키 애트리뷰트
– 한 엔티티 타입에서 각 엔티티가 유일한 값을 가지는 애트리뷰트를 그 엔티티 타입의
키 애트리뷰트라 한다 . 예를 들면 , EMPLOYEE 의 SSN.
– 키 애트리뷰트는 복합형일 수 있다 . 예를 들어 , VehicleTagNumber 는 구성요소로
(Number, State) 를 가지는 CAR 엔티티 타입의 키이다 .
– 엔티티 타입은 한 개 이상의 키를 가질 수 있다 . 예를 들어 , CAR 엔티티 타입은 다음
의 두 키를 가진다 .
• VehicleIdentificationNumber (popularly called VIN)
• VehicleTagNumber (Number, State), 또는 license_plate number.

5판Ch3 Fundamentals of Database Systems 7


엔티티
엔티티 타입 CAR에
타입 CAR 에 해당하는
해당하는 엔티티
엔티티 집합
집합

CAR
Registration(RegistrationNumber, State), VehicleID, Make, Model, Year, (Color)

car1
((ABC 123, TEXAS), TK629, Ford Mustang, convertible, 1999, (red, black))
car2
((ABC 123, NEW YORK), WP9872, Nissan 300ZX, 2-door, 2002, (blue))
car3
((VSY 720, TEXAS), TD729, Buick LeSabre, 4-door, 2003, (white, blue))

5판Ch3 Fundamentals of Database Systems 8


ER 스키마를
ER 스키마를 위한 ER-다이어그램
위한 ER- 다이어그램 표기법의
표기법의 요약
요약

Symbol •ENTITY TYPE


•WEAK ENTITY TYPE
•RELATIONSHIP TYPE
•IDENTIFYING RELATIONSHIP TYPE
•ATTRIBUTE
•KEY ATTRIBUTE
•MULTIVALUED ATTRIBUTE
•COMPOSITE ATTRIBUTE
•DERIVED ATTRIBUTE
•TOTAL PARTICIPATION OF E2 IN R
E1 R E2 •CARDINALITY RATIO 1:N FOR E1:E2 IN R

E1 N •STRUCTURAL CONSTRAINT (min, max) ON


R E2
PARTICIPATION OF E IN R
(min,max)
R E

5판Ch3 Fundamentals of Database Systems 9


ER 다이어그램
ER 다이어그램 –– 엔티티
엔티티 타입
타입::
EMPLOYEE,
EMPLOYEE,DEPARTMENT,
DEPARTMENT,PROJECT,
PROJECT,DEPENDENT
DEPENDENT
Fname Minit Lnam Number
e
N 1
Name Address WORKS_FOR Name Locations

Sex Salary
NumberOfEmployees DEPATMENT
StartDate
Ssn
EMPLOYEE 1 1 1
MANAGES
Bdate CONTROLS
Hours
N
supervisee
supervisor M N
WORKS_ON PROJECT
1 SUPERVISION N
1
Name
DEPENDENTS_OF Location

N
Number

DEPENDENT

Name Sex BirthDate Relationship

[ 그림 3.2] COMPANY 데이타베이스를 위한 ER 스키마 다이어그램

5판Ch3 Fundamentals of Database Systems 10


관계와
관계와 관계
관계 타입
타입 (1)
(1)
• 관계는 두 개 또는 그 이상의 엔티티들을 특정한 의미로
연관 짓는 것임
• 예를 들어 , EMPLOYEE John Smith 는 ProductX PROJECT 를 위해
일하며 , EMPLOYEE Franklin Wong 은 Research DEPARTMENT
를 관리한다 .
• 같은 형의 관계들은 관계 타입으로 그룹화되어 형이 주
어짐
– 예를 들면 , EMPLOYEE 들과 PROJECT 들이 참여하는 WORKS_ON
관계 타입 , EMPLOYEE 들과 DEPARTMENT 들이 참여하는
MANAGES 관계 타입 .
• 관계 타입의 차수는 참여하는 엔티티 타입의 개수임
– MANAGES 와 WORKS_ON 은 모두 이진 관계이다 .

5판Ch3 Fundamentals of Database Systems 11


EMPLOYEE와
EMPLOYEE DEPARTMENT 간의
와 DEPARTMENT 간의 WORKS_FOR
WORKS_FOR
관계에
관계에 대한
대한 일부
일부 관계
관계 인스턴스들의
인스턴스들의 예예
EMPLOYEE WORKS_FOR DEPARTMENT

r1
e1 ● ● d1
r2
e2 ●
r3
e3 ● ● d2
e4 ● r4
e5 ● d3
r5 ●

e6 ●
r6
e7 ●
r7

5판Ch3 Fundamentals of Database Systems 12


EMPLOYEE 와 PROJECT 간의 WORKS_ON 관계에 대한
일부 관계 인스턴스들의 예

r9
r1
e1 ● ● p1

e2 ● r2

e3 ● r3 ● p2

e4 ● r4
● p3
e5 ●
r5
e6 ●
r6
e7 ●
r 8 r7

5판Ch3 Fundamentals of Database Systems 13


관계와
관계와 관계
관계 타입
타입 (2)
(2)
• 두 엔티티 타입들에 대해 한 개 이상의 관계 타입이 있
을 수 있다 .
– 예를 들면 , EMPLOYEE 와 DEPARTMENT 간의 MANAGES 와
WORKS_FOR 는 서로 다른 의미와 관계 인스턴스들을 가지는 두 관계
들이다 .

5판Ch3 Fundamentals of Database Systems 14


ER 다이어그램
ER 다이어그램 –– 관계관계 타입
타입::
WORKS_FOR,
WORKS_FOR,MANAGES,
MANAGES,WORKS_ON,
WORKS_ON,CONTROLS,
CONTROLS,
SUPERVISION,
SUPERVISION,DEPENDENTS_OF
DEPENDENTS_OF
Fname Minit Lname Number
N
Name Address WORKS_FOR 1 Name Locations

Sex Salary
NumberOfEmployees DEPATMENT
StartDate
Ssn
EMPLOYEE 1 1 1
MANAGES
Bdate CONTROLS
Hours
N
supervisee
supervisor M N
WORKS_ON PROJECT
1 SUPERVISION N
1
Name
DEPENDENTS_OF Location
N
Number

DEPENDENT

Name Sex BirthDate Relationship

[ 그림 3.2] COMPANY 데이타베이스를 위한 ER 스키마 다이어그램

5판Ch3 Fundamentals of Database Systems 15


약한
약한 엔티티
엔티티 타입
타입
• 키 애트리뷰트가 없는 엔티티
• 약한 엔티티는 소유 또는 식별 엔티티 타입과의 식별 관계
타입에 참여해야 함
• 엔티티들은 다음의 조합에 의해 식별됨
– 약한 엔티티 타입의 부분 키
– 식별 엔티티 타입과 연관된 특정 엔티티
예:
DEPENDENT 엔티티는 부양가족의 이름과 생년월일 및
그 부양가족과 연관되는 사원에 의해 식별된다고 가정하
자 . DEPENDENT 는 EMPLOYEE 를 식별 엔티티 타입으
로 하고 DEPENDENT_OF 의 식별 관계 타입으로 연관되
는 약한 엔티티 타입이다 .

5판Ch3 Fundamentals of Database Systems 16


약한
약한 엔티티
엔티티 타입타입::DEPENDENT
DEPENDENT
식별
식별 관계
관계::DEPENDENTS_OF
DEPENDENTS_OF
Fname Minit Lname Number

N 1
Name Address WORKS_FOR Locations
Name

Sex Salary
NumberOfEmployees DEPATMENT
StartDate
Ssn

EMPLOYEE 1 1 1
MANAGES
CONTROLS
Bdate
Hours
N
supervisee
supervisor M N
WORKS_ON PROJECT
1 SUPERVISION N
1
Name
DEPENDENTS_OF Location

N
Number

DEPENDENT

Name Sex BirthDate Relationship

[ 그림 3.2] COMPANY 데이타베이스를 위한 ER 스키마 다이어그램


5판Ch3 Fundamentals of Database Systems 17
관계에
관계에 대한
대한 제약조건
제약조건

• 관계 타입에 대한 제약조건
– 카디날리티 비율 제약조건과 참여 제약조건 두가지가 있음
1. 카디날리티 비율 제약조건
– 최대 카디날리티
• 1:1, 1:N 또는 N:1, M:N
– 최소 카디날리티 ( 참여 제약조건 또는 존재 종속 제약조건 )
• 0 ( 선택적 참여 , 존재 종속이 아님 )
• 0 또는 그 이상 ( 의무적 , 존재 종속 )

2. 참여제약 조건
관계에 참여하는 엔티티 타입의 일부 엔티티만 관계에 참여함 ;
예를들어 , Employee 중에서 일부만 Department 와의 manager 관
계에 참여함

5판Ch3 Fundamentals of Database Systems 18


N :: 11 관계
N 관계
EMPLOYEE WORKS_FOR DEPARTMENT
r1
e1 ● ● d1
r2
e2 ●
r3
e3 ● ● d2
r4
e4 ●
d3
e5 ● r5 ●

e6 ● r6
e7 ●
r7

5판Ch3 Fundamentals of Database Systems 19


M N 관계
M :: N 관계
r9
r1
e1 ● ● p1

e2 ● r2

e3 ● r3 ● p2

e4 ● r4
● p3
e5 ●
r5
e6 ●
r6
e7 ●
r 8 r7

5판Ch3 Fundamentals of Database Systems 20


관계
관계 및
및 관계
관계 타입
타입 (3)
(3)
• 순환적 관계 타입
– 한 개의 엔티티 타입이 어떤 관계 타입에 서로 다른 역할로 중복 참여하는 경우를 의미함

– 예를 들어 , EMPLOYEE ( 감독자 또는 상사의 역할로 ) 와 EMPLOYEE ( 부하 또는 근로


자의 역할로 ) 간의 SUPERVISION 관계

– 다음 page 그림에서 1 이라고 표기된 첫 번째 역할 ( 감독자 또는 상사의 역할 ) 참여와


2 라고 표기된 두 번째 역할 ( 부하 또는 근로자의 역할 ) 참여 .

– ER 다이어그램에서는 참여를 구분하기 위해 역할 이름을 표기한다 .

5 판Ch5 Fundamentals of Database Systems 21


순환
순환 관계
관계 SUPERVISION
SUPERVISION
EMPLOYEE SUPERVISION

e1 ● 2
1 r1
e2 ● 2
1
r2
e3 ● 2
1
e4 ● 2 r3
1
e5 ● 1
2 r4
e6 ● 1

2 r5
e7 ●

r6
5판Ch3 Fundamentals of Database Systems 22
순환적
순환적 관계
관계 타입
타입:: SUPERVISION
SUPERVISION
((참여
참여 역할
역할 이름을
이름을 표기함
표기함))
Fname Minit Lname Number

N 1
Name Address WORKS_FOR Name Locations

Sex Salary
NumberOfEmployees DEPATMENT
StartDate
Ssn

EMPLOYEE 1
1 1
MANAGES
CONTROLS
Bdate
Hours
N
supervisee
supervisor M N
WORKS_ON PROJECT
1 SUPERVISION N
1
Name
DEPENDENTS_OF Location

N
Number

DEPENDENT

Name Sex BirthDate Relationship

[ 그림 3.2] COMPANY 데이타베이스를 위한 ER 스키마 다이어그램


5판Ch3 Fundamentals of Database Systems 23
관계
관계 타입의
타입의 애트리뷰트
애트리뷰트
• 관계 타입도 애트리뷰트들을 가질 수 있다 .
• 예를 들면 , 관계 타입 WORKS_ON 의 Hours 속성의 값은 각 관계
인스턴스에 대해 EMPLOYEE 가 PROJECT 를 위해 주당 일한 시간을
나타낸다 .

5판Ch3 Fundamentals of Database Systems 24


관계
관계 타입의
타입의 애트리뷰트
애트리뷰트::
WORKS_ON의
WORKS_ON 의 HoursPerWeek
HoursPerWeek
Fname Minit Lname Number

N 1
Name Address WORKS_FOR Locations
Name

Sex Salary
NumberOfEmployees DEPATMENT
StartDate
Ssn

EMPLOYEE 1 1 1
MANAGES
CONTROLS
Bdate
Hours
N
supervisee
supervisor M N
WORKS_ON PROJECT
1 SUPERVISION N
1
Name
DEPENDENTS_OF Location

N
Number

DEPENDENT

Name Sex BirthDate Relationship

[ 그림 3.2] COMPANY 데이타베이스를 위한 ER 스키마 다이어그램


5판Ch3 Fundamentals of Database Systems 25
구조적
구조적 제약조건
제약조건 ––
관계에
관계에 대한
대한 의미를
의미를 표현하는
표현하는 방법
방법
관계에 대한 구조적 제약조건 :
● 카디날리티 비율 (2 진 관계의 )
● 1:1, 1:N, N:1, or M:N
● 연결된 선에 적절한 숫자를 나타냄으로써 표기함 .

● 참여 제약조건 ( 각 참여 엔티티에 대해 )
● 전체 ( 또는 존재 종속성 ) 또는 부분 참여
● 전체 참여의 경우 연결된 선을 이중선으로 표기함 .

주의 : 이진 관계 타입을 쉽게 명시할 수 있음 .

5판Ch3 Fundamentals of Database Systems 26


관계 구조적 제약조건을 위한 또 다른 ( 최소값 ,
최대값 ) 표기법 :
● 관계 타입 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) 로 표기

5판Ch3 Fundamentals of Database Systems 27


( 최소값 , 최대값 ) 표기법 관계 제약조

(0,1) (1,1)

(1,1) (1,N)

5판Ch3 Fundamentals of Database Systems 28


(min, max) 표기법을 사용한 COMPANY ERD

5판Ch3 Fundamentals of Database Systems 29


3 진 차수 이상의 관계

● 2 진관계
● 차수가 2 인 관계 타입을 2 진 관계라 한다 .

● 3 진관계 , n-ary 관계
● 차수가 3 인 관계 타입을 3 진 관계라 하고 , 차수가 n 인 관계를
n-ary 관계라 한다 .

● “n-ary 관계”와 “ n 개의 이진 관계들” 사이의 차



● 일반적으로 , n-ary 관계는 n 개의 이진 관계들과 같지 않다 .

5판Ch3 Fundamentals of Database Systems 30


데이터 모델링 도구

• Data Modeling Tools


– 개념적 모델링을 지원하고 관계 스키마 설계로 사상하는 기능을 제공하는
많은 도구들이 존재함
– 예 : ERWin, S- Designer (Enterprise Application Suite), ER- Studio,

• 장점
– 응용 요구사항에 대한 문서로서의 기능 제공
– 사용하기 쉬운 사용자 인터페이스 – 대부분 그래픽 편집기 지원

5판Ch3 Fundamentals of Database Systems 31


현 모델링 도구의 문제점

• 다이어그램 기능
– 의미 있는 개념 표기 수단이 미약함
– 다이어그램 배치 및 외관을 위해 박스와 선을 주로 사용하기 때문에 결
과 테이블 간의 관계만 ( 기본과 외래 키 ) 을 표시함

• 방법론
– 내장 방법론 지원의 미약
– 균형 분석 및 사용자 중심의 설계 선호 기능의 미약
– 설계 검증과 개선을 위한 제안 기능의 미약

5판Ch3 Fundamentals of Database Systems 32


데이터베이스 자동 설계 도구의
일부 리스트
COMPANY TOOL FUNCTIONALITY
Embarcadero ER Studio Database Modeling in ER and IDEF1X
Technologies
DB Artisan Database administration and space and security
management
Oracle Developer 2000 and Database modeling, application development
Designer 2000
Popkin Software System Architect 2001 Data modeling, object modeling, process
modeling, structured analysis/design
Platinum Platinum Enterprice Data, process, and business component modeling
Technology Modeling Suite: Erwin,
BPWin, Paradigm Plus
Persistence Inc. Pwertier Mapping from O-O to relational model
Rational Rational Rose Modeling in UML and application generation in C+
+ and JAVA
Rogue Ware RW Metro Mapping from O-O to relational model
Resolution Ltd. Xcase Conceptual modeling up to code maintenance
Sybase Enterprise Application Data modeling, business logic modeling
Suite
Visio Visio Enterprise Data modeling, design and reengineering Visual
Basic and Visual C++

5판Ch3 Fundamentals of Database Systems 33


BANK 데이타베이스의 ER 다이어그램

5판Ch3 Fundamentals of Database Systems 34


ER 표기법의 문제점

• 원래 ER 모델은 객체 모델링 기법에서 제공하는


추상화 ( 특수화 / 일반화 ) 기능을 지원하지 못함
• 확장 엔티티 - 관계 (EER) 모델
– 집합 - 부분집합 관계를 포함 .
– 특수화 / 일반화 계층구조를 포함 .

5판Ch3 Fundamentals of Database Systems 35

You might also like