제2장 엔티티-관계 모델

Download Report

Transcript 제2장 엔티티-관계 모델

CHAPTER 2. 개체 관계 모델
동국대학교
컴퓨터멀티미디어학과
김 여자
컴퓨터멀티미디어학과 DBLab
1
차례
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
기본개념
제약 조건
키
설계 논점
E-R다이어그램(개체관계다이어그램)
약 관계 집합 설계
E-R 모델의 확장
E-R 데이터베이스 스키마의 설계
E-R 스키마의 테이블로 축소변형
UML(The Unified Modeling Language)
컴퓨터멀티미디어학과 DBLab
2
개요

개체 – 관계(E-R)데이터 모델
 기본
객체 들과 객체들 사이의 관계 인식
 조직의 스키마 명시-DB 설계 쉽도록 개발
 데이터의 의미를 표현하는데 중점
 실세계 조직의 의미와 상호작용을 개념적 스키
마로 나타내는데 매우 유용
 많은 데이터베이스 설계 도구들이 E-R 모델 기반
컴퓨터멀티미디어학과 DBLab
3
2.1 기본 개념(1/6)

E-R 데이터 모델의 기본 개념
 개체

집합, 속성, 관계 집합
개체 집합
–
–
데이터베이스는 다음으로 모델링 가능 :
- 개체 집합
- 개체간의 관계
개체- 다른 객체와는 구분되며 존재하는 객체.

–
특정한 사람, 회사, 사건 ,식물
개체 집합- 같은 속성 가진 같은 유형 개체 들의 집합.
예 : 모든 사람들, 회사들, 나무들, 휴일들의 집합
컴퓨터멀티미디어학과 DBLab
4
2.1 기본 개념(2/6)

속성

개체는 개체 집합의 모든 멤버가 소유하는 설명속성인 속성의 집
합으로 표현.
예) customer = (customer-name, social-security,
customer-street, customer-city)
account = (account-number, balance)

도메인 - 각 속성에 허용되는 값들의 집합

속성 유형:
- 단순 및 복합 속성(이름-first,Last)
- 단일 값 및 다중 값(전화번호) 속성
- 널 속성
- 유도 속성(생일->나이 계산)
컴퓨터멀티미디어학과 DBLab
5
2.1 기본 개념(3/6)

관계 집합
–
관계는 여러 개체간의 연관성.
–
예:
Hayes
customer 개체
–
depositor
A-102
관계집합 account 개체
관계 집합은 각각을 다음의 개체 집합으로 취하는 n  2 개체 간의 수
학적인 릴레이션.
{(e1, e2, , en) | e1  E1, e2,  E2, , en  En }
여기서 (e1, e2, , en)은 관계이다
- 예:
(Hayes, A-102)  depositor
컴퓨터멀티미디어학과 DBLab
6
2.1 기본 개념(4/6)

관계집합
–
속성은 또한 관계 집합의 속성일 수도 있다.
예를 들어, customer와 account개체 집합간의
depositor 관계 집합에 속성 access-date 가짐
social-security customer-street
customer-name
access-date
account-number balance
customer-city
customer
depositor
컴퓨터멀티미디어학과 DBLab
account
7
2.1 기본 개념(5/6)

관계 집합의 차수
–
관계 집합에 참여하는 개체 집합의 수 의미
–
이진관계 집합 -두 개체 집합을 내포하는 관계 집합.

일반적으로 DB시스템 내의 대부분의 이진관계 집합.
–
관계 집합에는 3 이상의 개체 집합 내포 가능.
–
개체 집합 customer, loan 및 branch는 삼진(3차) 관계
집합
컴퓨터멀티미디어학과 DBLab
8
2.1 기본 개념(6/6)

역할
–
관계의 개체 집합들이 반드시 구분 불필요.
employee-name
e-social-security
telephone-number
manager
employee
works-for
worker
–
레이블 “manager”와 “worker”를 역할이라 하며, 그들은 works-for 관
계 집합을 통해 employee 개체가 어떻게 상호 작용하는지를 명시.
–
역할은 사각형과 마름모를 연결하는 선에 레이블을 붙여 E-R도에 표
시.
–
역할 레이블은 선택적이며 관계의 의미를 명확히 하는데 사용.
컴퓨터멀티미디어학과 DBLab
9
2.2 제약조건(1/5)

대응 수
–
관계 집합을 통해 다른 개체와 연관될 수 있는 개체의 수를 표현.
–
이진 관계 집합을 기술하는데 가장 유용.
–
이진 관계 집합에 대한 대응 수는 다음 유형 중 하나.
-일대일
-일대다
-다대일
-다대다
–
관계 집합과 개체 집합간의 “일(하나)”을 나타내는 데는()를, “다
(많음)”를 나타내는 데는 (—)을 사용해 이들 유형을 구분한다.
컴퓨터멀티미디어학과 DBLab
10
2.2 제약조건(2/5)

일 대 일 관계
social-security
customer-street
customer-name
customer
–
–
loan-number
amount
customer-city
borrower
loan
고객은 관계 borrower를 통해 하나의 대출과 연관.
대출은 borrower를 통해 하나의 고객과 연관.
컴퓨터멀티미디어학과 DBLab
11
2.2 제약조건(3/5)

일 대 다 및 다 대 일 관계
social-security
customer-street
customer-name
amount
customer-city
customer
social-security
loan-number
(a)
borrower
customer-street
customer-name
customer
loan
loan-number
amount
customer-city
(b)
borrower
컴퓨터멀티미디어학과 DBLab
loan
12
2.2 제약조건(4/5)

일 대 다 및 다 대 일 관계(계속)
–
일 대 다 관계에서 (a) borrower를 통해 대출은 기껏해야 하나
의 고객과 연관되고, 고객은 여러(0포함) 대출과 연관된다.
–
다 대 일 관계에서 (b) borrower를 통해 대출은 여러(0포함) 고
객과 연관되고, 고객은 기껏해야 하나의 대출과 연관된다.
컴퓨터멀티미디어학과 DBLab
13
2.2 제약조건(5/5)

다 대 다 관계
social-security
customer-street
customer-name
customer
loan-number
amount
customer-city
borrower
loan
–
고객은 borrower를 통해 여러(0 가능) 대출과 연관.
–
대출은 borrower를 통해 여러(0 가능) 고객과 연관.
컴퓨터멀티미디어학과 DBLab
14
2.3 키(1/2)

개체 집합
–
어떤 개체 집합의 수퍼 키는 그 값이 각 개체를 유일하게 결정
하는 하나 이상의 속성 집합이다.
–
개체 집합의 후보 키는 최소한의 수퍼키.
- social-security는 customer의 후보 키
- account-number는 account의 후보 키
–
여러 개의 후보 키가 존재 가능, 그 중의 하나가 기본 키로 선
택

개체 집합의 기본 키의 결합이 관계 집합 후보 키.
- 기본 키를 선택할 때 대응 수와 관계 집합의 의미를 고려.
컴퓨터멀티미디어학과 DBLab
15
2.3 키(2/2)

관계 집합
–
–
–
R: 관계 집합, E1, E2,…En : 개체 집합
Primary-key(E1), Primary-key(E2),…
관계 집합 R이 연관된 속성이 없다면 속성들
의 집합에서 관계집합의 슈퍼키
 Primary-key(E1)U
Primary-key(E2)U….
(social-security, account-number)가 depositor의 후보키, 기본키
컴퓨터멀티미디어학과 DBLab
16
2.4 설계 논점(1/2)

설계 논점
–
개체 집합의 사용과 속성의 사용

–
선택은 주로 모델링하고 있는 조직의 구조와 해당 속성에 연관된 의미에
따름.(예: 전화번호개체, 속성…이름 속성)
개체 집합과 관계 집합의 사용

객체 표현의 한 가지 가능한 지침
–
–
개체 간에 일어나는 동작을 기술하는데 관계 집합을 사용하는 것.
이진 관계 집합과 n-항 관계 집합

비이진(n>2인 n항의) 관계 집합을 여러 개의 관계 집합으로 대치할 수 있
지만, n항 관계 집합은 하나의 관계 내에 여러 개체들이 참여함을 보다 명
백히 보여줌.
컴퓨터멀티미디어학과 DBLab
17
2.4 설계 논점(2/2)

관계 속성의 위치
–
–
–
관계의 대응수 비율은 관계속성 위치에 영향
미침
그림 2.6에서 access-date는 account보다는 관
계 집합 속성 depositor의 속성에 위치하는 것
이 낫다. (관계가 1:1)
그림 2.7 표현 참조
컴퓨터멀티미디어학과 DBLab
18
2.5 E-R다이어그램

E-R 구성
–
사각형- 개체, 이중 사각형-약한 개체 집합
–
타원- 속성, 이중선-개체의 관계 집합에의 전체적인 참가
–
마름모- 관계 집합.
–
선- 속성과 개체 집합 및 개체 집합과 관계 집합 연결.
–
이중 타원- 다중 값 속성.
–
빗금 무의 타원- 유도 속성.
–
기본 키 속성- 밑줄.
컴퓨터멀티미디어학과 DBLab
19
2.6 약 관계 집합(1/3)

약 개체 집합
–
기본 키를 갖지 않는 개체 집합- 약 개체 집합.
–
기본 키를 가지고 있는 개체 집합-강 개체 집합
–
강 개체 집합이 있어야만 약 개체 집합 존재. 약 개체 집합은
일 대 다 관계 집합을 통해 강 개체 집합에 연결.
–
약 개체 집합의 구별자(또는 부분 키)는 약 개체 집합 내의 개
체들을 구분하는 속성 집합.
–
약 개체 집합의 기본 키는 약 개체 집합이 존재 종속 관계에 있
는 강 개체 집합의 기본 키와 약 개체 집합의 구별자로 구성.
컴퓨터멀티미디어학과 DBLab
20
2.6 약 관계 집합(2/3)

존재 종속
–
개체 y가 있어야만 개체 x가 존재할 때 x는 y에 존재 종속되었
다 한다.
y는 지배 개체(아래 예에서, loan)
x는 종속 개체(아래 예에서, payment)
loan

loan-payment
payment
loan 개체가 삭제되면, 그에 연관된 모든 payment 개체
또한 삭제되어야 한다.
컴퓨터멀티미디어학과 DBLab
21
약 관계 집합(3/3)

약 개체 집합
–
약 개체 집합은 이중 사각형으로 표현.
–
약 개체 집합의 구별자에는 점선으로 밑줄.

–
payment-number - payment 개체 집합의 구별자
payment의 기본 키 - (loan-number, payment-number)
payment-date
loan-number
amount
loan
payment-number
loan-payment
컴퓨터멀티미디어학과 DBLab
payment-amount
payment
22
2.7 E-R 모델의 확장

세분화

하향식 설계 절차; 집합내의 서로 다른 개체와 구분되
는 개체 집합내의 서브 그룹핑으로 지정

이들 서브 그룹핑은 상위 단계 개체 집합에는 적용되지
않는 속성을 가지거나 관계에 참여하는 하위단계 개체
집합이 된다.

ISA라는 라벨을 가진 역삼각형으로 나타낸다(즉,
savings-account “is an” account)
컴퓨터멀티미디어학과 DBLab
23
2.7 E-R 모델의 확장
그림 2.17 세분화와 일반화
account-number
balance
account
ISA
interest-rate
savings-account
overdraft-amount
checking-account
ISA
standard
num-checks
gold
interest-payment
senior
min-balance
컴퓨터멀티미디어학과 DBLab
date-of-birth
24
2.7 E-R 모델의 확장

일반화

상향식 설계 절차; 동일한 기능을 공유하는 여러 개체
집합을 상위 단계 개체 집합으로 결합한다.

세분화와 일반화는 서로가 단순한 역 관계이다; E-R도
에서는 같은 방법으로 표현된다.

속성 상속 - 하위 단계 개체 집합은 연결된 상위 단계
개체 집합의 모든 속성과 관계 참여를 상속한다.
컴퓨터멀티미디어학과 DBLab
25
일반화에서의 설계 제약 조건

어떤 개체들이 주어진 하위 단계 개체 집합의 멤버가
될 수 있는가에 대한 제약 조건



단일 일반화 내에서 개체들이 하나 이상의 하위 단계
개체 집합에 속할 수 있는가에 대한 제약 조건



조건에 의한 정의
사용자 정의
분리
중첩
완전성 제약 조건 - 일반화 내에서 상위 단계 개체 집합
내의 개체가 적어도 하나의 하위 단계 개체 집합에 속
해야만 하는가 여부를 지정


전체 일반화 혹은 세분화
부분 일반화 혹은 세분화(기본)
컴퓨터멀티미디어학과 DBLab
26
2.7.5 통합화

대출 고객은 대출 담당 직원의 조언 받을 수 있음.
social-security
customer-street
customer-name
loan-number
amount
customer-city
customer
borrower
loan
loan-officer
employee
e-social-security
telephone-number
employee-name
컴퓨터멀티미디어학과 DBLab
27
통합화(계속)


관계 집합 borrower와 loan-officer는 같은 정보를
표현한다.
이러한 중복을 통합화를 통해 제거
- 관계를 추상적인 개체로 취급
- 관계간의 관계를 허용
- 관계의 추상화를 새로운 개체로

중복을 도입하지 않고, 다음 도표는 아래와 같은
내용을 표현한다.
- 고객이 대출을 받고 있다.
- 직원은 customer-loan 쌍에 대해 대출 담당자일 수 있다.
컴퓨터멀티미디어학과 DBLab
28
통합화의 예
social-security
customer-street
customer-name
loan-number
amount
customer-city
borrower
customer
loan
loan-officer
employee
e-social-security
telephone-number
employee-name
컴퓨터멀티미디어학과 DBLab
29
E-R 설계 결정






객체를 표현하기 위해 속성을 사용할 것인가 개체 집합
을 사용할 것인가.
실세계의 개념을 개체 집합으로 나타낼 것인가 관계 집
합으로 나타낼 것인가.
삼진 관계를 사용할 것인가 이진 관계의 쌍을 사용할 것
인가.
강 개체를 사용할 것인가 약 개체를 사용할 것인가.
일반화의 사용 - 설계시 모듈화에 기여
통합화의 사용 - 내부 구조의 상세 사항에는 관여하지
않고 통합 개체 집합을 단일 단위로 취급할 수 있다.
컴퓨터멀티미디어학과 DBLab
30
은행 기관의 E-R도
branch-city
branch-name
assets
branch
loan-number
customer-street
customer-name
payment-date
loan-branch
social-security
payment-amount
amount
payment-number
customer-city
customer
borrower
loan
access-date
cust-banker
loan-payment
account-number
payment
balance
type
depositor
account
manager
employee
works-for
worker
e-social-security
dependent-name
employment-length
ISA
employee-name
telephone-number
start-date
savings-account
interest-rate
컴퓨터멀티미디어학과 DBLab
checking-account
overdraft-amount
31
E-R 스키마를 테이블로 변환





주 키는 개체 집합과 관계 집합이 데이터베이스의 내용
을 표현하는 테이블로 균일하게 나타나도록 한다.
E-R도에 상응하는 데이터베이스는 테이블의 모임으로
표현가능.
각 개체 집합과 관계 집합에 대해 그에 상응하는 이름
이 할당된 유일한 테이블 존재.
각 테이블에는 고유한 이름을 가진 여러 개의 열(일반
적으로 속성에 대응함)을 가지고 있음.
E-R도를 테이블 형식으로 변환하는 것이 E-R도로부터
관계 형 데이터베이스 설계를 유도하는 기본.
컴퓨터멀티미디어학과 DBLab
32
일반화를 테이블로 표현

방법1 : 일반화 개체 account에 대한 테이블 작성
일반화되는 각 개체 집합에 대한 테이블 작성(일반화 개체
집합의 주 키 포함)
테이블
account
savings-account
checking-account

테이블 속성
account-number, balance, account-type
account-number, interest-rate
account-number, overdraft-amount
방법2 : 일반화되는 각 개체 집합에 대한 테이블 작성
테이블
savings-account
checking-account
테이블 속성
account-number, balance, interest-rate
account-number, balance, overdraft-amount
방법2에서는 일반화 개체 account에 대한 테이블이 없다.
컴퓨터멀티미디어학과 DBLab
33
통합화에 상응하는 릴레이션
customer
customer-name cust-social-security customer-street customer-city
loan
loan-number
amount
borrower
cust-social-security
loan-number
employee
emp-social-security employee-name phone-number
loan-officer
emp-social-security cust-social-security loan-number
컴퓨터멀티미디어학과 DBLab
34
개체 집합을 테이블로 표현

강 개체 집합은 같은 속성을 가진 테이블로 변환
customer-name
Jones
Smith
Hayes

social-security
321-12-3123
019-28-3746
677-89-9011
c-street
Main
North
Main
c-city
Harrison
Rye
Harrison
customer 테이블
약 개체 집합은 강 개체 집합을 식별하는 주 키의 행을 포함
한 테이블이 된다
loan-number
L-17
L-23
L-15
payment-number
5
11
22
payment-date payment-amount
10 May 1996
50
17 May 1996
75
23 May 1996
300
payment 테이블
컴퓨터멀티미디어학과 DBLab
35
관계 집합을 테이블로 표현

다 대 다 관계 집합은 참여하는 두 개체 집합의 주 키와 관계 집합
의 어떤 설명 속성에 대한 열을 가진 테이블로 표현된다.
social-security
…
account-number
…
access-date
…
depositor 테이블

약 개체 집합에 그를 식별하고 있는 강 개체 집합을 연결하는 관계
집합에 상응하는 테이블은 중복이다.
payment 테이블에는 loan-payment 테이블에 나타난 정보
(즉, loan- number와 payment-number 열)를 이미 가지고 있다.
컴퓨터멀티미디어학과 DBLab
36