• 검색 결과가 없습니다.

4. 관계데이타모델관계데이타모델

N/A
N/A
Protected

Academic year: 2022

Share "4. 관계데이타모델관계데이타모델"

Copied!
45
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

4. 관계 데이타 모델

(2)

이 장의 주요 내용

관계 모델 소개

관계 모델의 개념

릴레이션, 릴레이션 스키마, 릴레이션 상태

관계 모델의 스키마 기반 제약 조건들

도메인 제약 조건

키 제약 조건

엔티티 무결성 제약 조건

참조 무결성 제약 조건

ER모델을 관계 모델로 변환

(3)

관계 모델 소개

정보 시스템의 논리적 스키마(Logical Schema)을 정 의하기 위해 사용

관계 데이타베이스 시스템에 직접 구현될 수 있도록 데이 타베이스 구조를 정의하는 방법을 제공

관계 데이터 모델의 장점

대수 연산의 지원을 받는 탄탄한 수학적 기초를 가짐

사용자에게 단순성을 제공

릴레이션의 생성과 조작을 위한 연산인 관계 대수 (relation algebra)의 지원을 받음 (6장)

(4)

관계 모델의 개념 : 릴레이션

릴레이션(relation)

개체를 표현하기 위한 데이터 구조

2차원 테이블로 표현

행 : 개체를 표현. 관련된 데이터 값들의 모임. 튜플(tuple)이라고 부름

열 : 각 행의 값들의 의미를 해석하는데 사용. 애트리뷰트 (attribute)라고 부름

데이타베이스는 릴레이션들의 모임

(5)

관계 모델의 개념 : 릴레이션 스키마

한 개의 릴레이션 스키마는 하나의 개체 또는 관계성 클 래스를 표현

개체들을 표현하는데 사용되는 테이블의 구조 정의

릴레이션 내포(intension)이라고도 함

R(A

1

, A

2

, ..., A

n

)로 표기

R : 릴레이션 이름

A1, A2, ..., An : 애트리뷰트

예) MOVIE(movieId, title, genre, length, rating)

(6)

관계 모델의 개념 : 릴레이션 상태

한 시점에 릴레이션 R에 포함되어 있는 튜플(tuple)들의 집합

한 개의 튜플은 한 개체가 가지는 애트리뷰트 값들의 집 합

릴레이션은 튜플들의 집합이므로, 각 튜플은 유일해야 함

릴레이션 외포(extension)이라고도 함

(7)

릴레이션 MOVIE의 예

movieId title genre length rating

101 The Thirty-nine

Steps mystery 101 PG

145 Lady and the

Tramp animated

comedy

93 G

90987 Elizabeth costume drama

123 PG-13

99787 Animal House comedy 87 PG-13

123 Annie Hall romantic comedy

110 PG-13

MOVIE

애트리뷰트들 릴레이션 이름

튜플들

릴레이션 구조 또 는 스키마

릴레이션 상태 또는 내용

INTEGER STRING STRING STRING STRING 도메인

(8)

무결성 제약 조건

Integrity constraints : IC

데이타베이스의 인스턴스에 저장될 수 있는 데이터를 제 한함

데이타베이스 스키마에 명시되며, 그 스키마의 모든 데이 타베이스 상태는 이를 만족해야 함

무결성 제약 조건은 서로 다른 시점에 명시되며 시행됨

DBA나 최종 사용자가 데이타베이스 스키마를 정의할 때, IC를 명시

(9)

관계 모델의 스키마 기반 제약 조건들

도메인 제약 조건

널 제약 조건 (이전 장에서 설명하였음)

키 제약 조건 (Key Constraints)

엔티티 무결성 제약 조건 (Entity Integrity Constraints)

참조 무결성 제약 조건 (Referential Integrity Constraints)

(10)

도메인 제약 조건

정의

각각의 투플 내에서 각각의 애트리뷰트 A의 값이 반드시 A의 도메인 dom(A)에 속하는 원자값이어야 한다.

도메인의 데이터 타입들

전형적인 데이터 타입들

예) 정수와 실수, 논리형, 문자, 고정 길이 문자열, 가변 길이 문자 열, 날짜…

어떤 데이터 타입의 전체 값의 일부 범위를 지정

예) 15와 80사이의 정수

모든 가능한 값을 명시적으로 나열

예) 학과명이나 학과 코드를 나타내는 모든 문자열

(11)

키 제약 조건

슈퍼 키(Superkey)

릴레이션 R에 대한 슈퍼키 SK는 다음 조건을 가지는 R의 애트 리뷰트들의 집합임

유효한 릴레이션 상태 r(R)에서 서로 다른 튜플들은 SK에 대해 같 은 값을 가지지 않음

키(Key) : 릴레이션 R에 대한 키의 조건

1. 서로 다른 두 투플은 동일한 키 애트리뷰트 값을 가질 수 없

2. 키는 최소의 슈퍼키(minimal superkey)임

예) STUDENT 릴레이션

{Ssn} : 키

{Ssn, Name, Age}, {Ssn, Name}, {Ssn, Age}, {Ssn} :

(12)

키 제약 조건

만일 릴레이션 스키마가 하나 이상의 키를 가질 경우, 각 키를 후보 키(candidate key)라 함

후보키들 중에 하나를 기본 키로 지정함

기본 키(Primary key)

투플들을 식별할 수 있는 후보키

기본키를 구성하는 애트리뷰트들은 밑줄을 그어 표시

다른 후보 키는 유일키(unique key)라 함

(13)

엔티티 무결성 제약 조건과 참조 무결성 제약 조건

엔티티 무결성 제약 조건

어떠한 기본 키 값도 널 값이 될 수 없음

이유 : 기본 키는 한 릴레이션 내의 각 투플을 식별하는데 사용 되기 때문에 기본 키 값이 널 값이 되면 투플들을 식별할 수 없

참조 무결성 제약 조건

두 릴레이션 사이에 명시되는 제약 조건

한 릴레이션에 있는 투플이 다른 릴레이션에 있는 투플을 참조 하려면 반드시 참조되는 투플이 그 릴레이션 내에 존재해야 함

외래 키(foreign key)는 참조 무결성 제약조건을 만족 해야 함

(14)

외래 키

릴레이션 스키마 R1의 어떤 애트리뷰트들의 집합 FK가 아래 규칙을 만족하면 FK는 릴레이션 R2를 참조하는 R1의 외래키임

R1 : 참조한 릴레이션, R2 : 참조된 릴레이션

1. FK의 애트리뷰트는 R2의 기본키 PK의 애트리뷰트와 동일한 도메인을 가짐

2. 현재 상태 r1(R1)의 한 투플 t1내의 FK값은 현재 상태 r2(R2) 의 어떤 투플 t2내의 PK값과 일치하거나 널값을 가져야 함

각 외래키로부터 그것을 참조하는 릴레이션까지 화살표 를 그려서 표현

참조되는 릴레이션의 기본키를 화살표의 머리가 가리키도록 함

(15)

videoId dateAcquired movieId storeId

101 1/25/98 101 3

111 2/5/97 123 3

112 12/31/95 123 5

114 4/5/98 189 5

145 5/12/95 145 5

movieId title genre length rating

101 The Thirty-nine Steps

Mystery 101 PG

145 Lady and the Tramp Animated comedy

93 G

450 Elizabeth Costume

drama

123 PG-13

189 Animal House Comedy 87 PG-13

123 Annie Hall Romantic

comedy

110 PG-13

stordId street City manager

3 2010 Liberty Rd Apopka 145-09-0967

5 1004 N. Monroe

St

Apopka 588-99-0093

Movie

Store VideoTape

videoId dateAcquired movieId storeId

외래키

movieId title genre length rating

<참조하는 릴레이션>

<참조된 릴레이션>

VideoTape

Movie

Store

<BigHit Video 스키마 다이어그램에 표시된 참조 무결성 제약 조건의 예>

(16)

ER모델을 릴레이션 스키마로 변환

변환 단계

1. ER 모델의 각 개체 클래스에 대해 릴레이션 스키마 생성

2. 생성한 스키마에 애트리뷰트 추가

3. 키 애트리뷰트 지정

4. ER 모델의 모든 관계성을 어떻게 표현할 것인지 선택

우선 위의 변환 단계에 따라 ER 모델을 충실히 표현하는 릴레이션 스키마 생성 → 데이타베이스를 좀 더 효율적 이고, 관리하기 쉽고, 수정하기 편하게 하기 위해 릴레이 션 스키마에 대해 다양한 변환 과정 적용 (5장 정규화 과 정)

(17)

개체 클래스의 릴레이션 스키마로 표현

1.

규칙 1 : ER 모델의 강한 개체 클래스 각각에 대해 같은 이름으로 릴레이션 스키마를 생성한다.

2.

규칙 2 : 강한 개체 클래스의 단순 애트리뷰트에 대해 릴 레이션 스키마에서 같은 이름으로 애트리뷰트를 생성한 다.

3.

규칙 3 : 강한 개체 클래스의 키들 중에 하나를 릴레이션 스키마의 키로 선택한다. 선택된 키가 여러 개의 단순 애 트리뷰트들로 구성되어 있다면, 릴레이션 스키마의 키는 애트리뷰트들의 집합이 된다.

(18)

Movie 클래스 변환 예

스키마 : Movie (movieId, title, genre, length, rating)

movieId title genre length rating

101 The Thirty-nine Steps mystery 101 PG

145 Lady and the Tramp animated comedy

93 G

90987 Elizabeth costume drama 123 PG-13

99787 Animal House comedy 87 PG-13

Movie movieId

title

genre

length rating

(19)

복합, 다중 값, 파생 애트리뷰트의 표현

관계 모델에서 사용할 수 있는 도메인들은 더 이상 나눌 수 없 는, 즉 원자 값(Atomic value)을 가져야 함

OtherUsers와 address가 원자값이 아닌 이유

특정 도시 또는 우편 번호를 가지는 고객을 찾기 위해

특정 개인이 고객 계정의 다른 사용자 리스트에 나타나는지를 확인하기

Customer

accountId firstName

lastName balance

otherUsers

numberRentals

address street

city state

zipcode

복합 애트리뷰트

파생 애트리뷰트 다중값

애트리뷰트

(20)

복합 애트리뷰트 -1/2

복합 애트리뷰트은 이름과 타입을 가지는 여러 개의 애트 리뷰트들로 구성 (예:address)

규칙 4 : 강한 개체 클래스의 복합 애트리뷰트 각각에 대 해, 릴레이션 스키마의 복합 애트리뷰트의 각 구성 필드 에 대해 하나씩의 애트리뷰트들을 생성한다.

(21)

복합 애트리뷰트 - 2/2

스키마 : Customer(accountId, lastName,

firstName, street, city, state, zipcode, balance)

테이블 :

accountId lastName firstName

street city state zipcode

balance

101 Block Jane 1010

Main St.

Apopka FL 30458 0.00

102 Hamilton Cherry 3230

Dade St.

Dade City

FL 30555 4.47

103 Harrison Kate 103

Dodd Hall

Apopka FL 30457 30.57

104 Breaux Carroll 76 Main

St.

Apopka FL 30458 34.58

그림 4-2 Customer 클래스에 대한 스키마 정의와 예제 테이블

(22)

다중 값 애트리뷰트

단일 개체에 대한 애트리뷰트 값이 구성요소 값들의 집합 으로 이루어지기 때문에 원자성을 갖지 못함 (

:OtherUsers)

방법 1 : 한 개의 otherUser 애트리뷰트를 갖게 하면서 otherUser에 나타나는 사용자마다 새로운 행 생성

(23)

다중 값 애트리뷰트 : 방법 1의 예

스키마 : Customer(accountId, lastName,

firstName, street, city, state, zipcode, otherUser)

테이블 :

accountId lastName firstName street city state zipcode otherUser

104 Breaux Carroll 76 Main St. Apopka FL 30458 Judy Breaux

104 Breaux Carroll 76 Main St. Apopka FL 30458 Cyrus

Lambeaux

104 Breaux Carroll 76 Main St. Apopka FL 30458 Jean Deaux

(24)

다중 값 애트리뷰트 : 방법 1의 문제점

문제점 : 기본적인 정보 시스템의 원칙에 위배

1. 모든 데이터 모델은 그것이 표현하는 실제 상황들과 비슷해야 한다. 그러나, 3개의 개체(테이블의 행들)는 단일 실제 고객을 표현함

2. 데이터 모델들이 값들의 중복을 최소화해야 한다. 그러나, 거의 대부분의 정보가 중복되어 있음

(25)

다중 값 애트리뷰트 : 방법 2 – 1/3

방법 2 : ER 모델에서 OtherUser 개체 클래스 생성하 고 Customer 클래스와 관계성 설정

Customer 1 lastName

address

accountId firstName

zipcode state

city street

numberRentals

is a part of

0/M OtherUser

otherUser

(26)

다중 값 애트리뷰트 : 방법 2 -2/3

스키마 : OtherUser(accountId, otherUser)

테이블 :

accountId OtherUser

104 Judy Breaux

104 Cyrus Lambeaux

104 Jean Deaux

그림 4-5 OtherUser 클래스에 대한 스키마 정의와 예제 테이블

(27)

다중 값 애트리뷰트 : 방법 2 -3/3

규칙 14

개체 클래스 C의 다중값 애트리뷰트 M 각각에 대하여, 새로운 릴레이션 스키마 M을 정의

애트리뷰트 M의 필드들을 새로운 스키마에 추가

C의 나머지 애트리뷰트들을 포함하는 스키마의 키 애트리뷰트 들을 외래키로 M에 추가

새로운 스키마의 키는 그것이 가지는 모든 애트리뷰트들의 조합 이 되도록 선언

(28)

관계성을 애트리뷰트로 표현

관계 모델은 관계성 표현을 위해 특별한 데이타 구조를 지원하지 않음. 테이블과 애트리뷰트만을 가지고 관계성 표현

관계 모델에서 모든 릴레이션 스키마는 한 개 이상의 애 트리뷰트로 구성된 키를 가져야 함

관계 모델은 관계성을 표현하기 위해 이 키들을 이용

1-대-다, 1-대-1 관계성 표현에 적용

(29)

1-대-다 관계성 표현 - 1/3

스키마 : Videotape(videoId, dateAcquired, movieId, storeId)

movieId : Is a copy of 관계 타입을 표현. 외래키

storeId : Is a Located In 관계 타입을 표현. 외래키

Movie

Copy Is a

Videotape Store

of

Is a Located

In

MovieId videoId dateAcquired storeId

M 1 1 M

(30)

1-대-다 관계성 표현 - 2/3

테이블

videoId dateAcquired movieId storeId

101 1/25/98 101 3

111 2/5/97 123 3

112 12/31/95 123 5

113 4/5/98 123 5

114 4/5/98 189 5

123 3/25/86 123 3

145 5/12/95 145 5

77564 4/29/91 189 3

90987 3/25/99 450 3

99787 10/10/97 987 5

(31)

1-대-다 관계성 표현 - 3/3

데이타베이스 시스템은 참조 무결성 제약 조건을 적용하 는 책임을 짐

외래키의 값은 반드시 참조하는 기본키의 어떤 값과 같든지 아니면 null 이어야 한다

즉, 기본키에 없는 값은 가질 수 없다

규칙 5 : 클래스 S 와 T가 존재하고, 클래스 간의 관계성 타입 R의 카디널리티 비율이 1-대-다일 경우, 클래스 S 의 키 애트리뷰트들을 클래스 T에 외래키로 추가

“대-1”인 스키마에 대해 외래키 애트리뷰트를 추가

규칙 6 : 클래스 T에 관계성 타입 R의 애트리뷰트 추가

(32)

1-대-1 관계성 표현

1-대-1 관계 타입에서 관련된 둘 중의 어느 한쪽 스키마 에 외래키 속성을 더함

Employee

WorksIn

Manages

Store

M M

1 1

worker

manager

(33)

스키마 : Store(storeId, street, city, state, zipcode, manager)

테이블 :

외래키 manager가 Store 스키마에 포함

storeId street city state zipcode manager

3 2010 Liberty Rd Apopka FL 34505 145-09-0967

5 1004 N. Monroe St Apopka FL 34506 588-99-0093

Store와 Employee 간의 Manages 관계

표현 방법 `1

(34)

Store와 Employee 간의 Manages 관계 표현 방법 2

스키마 : Employee(ssn, lastName, firstName, managed)

테이블 :

외래키 manager가 Employee 스키마에 포함

모든 상점에는 관리자가 있으나, 대부분 직원들은 관리자가 아

ssn lastName firstName managed

145-09-0967 Uno Jane 3

245-11-4554 Toulouse Jennifer

376-77-0099 Threat Ayisha

479-98-0098 Fortune Bruce

588-99-0093 Fivozinsky Bruce 5

(35)

1-대-1 관계성 표현 규칙

Tip : Null 값을 갖지 않는 쪽, 즉 참여 제약조건이 Total인 쪽에 외래키를 포함시키는 것이 좋음

규칙 7

클래스 S와 T가 존재하고, 클래스 간의 관계성 타입 R의 카디 널리티 비율이 1-대-1인 경우, 어느 한 쪽의 클래스 선정. 이때 전부 참여 제약조건을 갖는 개체 클래스는 선택하는 것이 바람 직함.

규칙 4적용, 규칙 6 적용

(36)

개체 합병을 통한 관계성 표현

관계된 개체 클래스들이 관계성을 통해 하나의 릴레이션 으로 합병

개체 클래스 Employee와 Store가 Manages 관계성을 통해 하나의 EmployeeStore 릴레이션으로 합병

스키마 : EmployeeStore(ssn, lastName,

firstName, storeId, storeStreet, storeCity, storeState, StoreZipcode)

(37)

Employee와 Store를 합병한 EmployeeStore 스키마 예

테이블 :

문제점

개체 클래스들 사이의 구분이 제거되어 관계성을 명시적으로 표 현하지 못함

ssn last

Name

first Name

storeId store Street

store City

store State

store Zipcode

145-09-0967 Uno Jane 3 2010 Liberty

Rd

Apopka FL 34505

245-11-4554 Toulouse Jennifer

376-77-0099 Threat Ayisha 479-98-0098 Fortune Bruce

588-99-0093 Fivozinsky Bruce 5 1004

N. Monroe St

Apopka FL 34506

(38)

관계성을 테이블로 표현

다-대-다 관계성 타입은 스키마에 외래키를 추가하는 방 법으로 표현 할 수 없음.

이유 : 한 개체의 외래키는 관계된 각 개체의 값들의 집합을 가 져야 하기 때문

다-대-다 관계성 타입은 원래의 스키마와는 분리된 별도 의 릴레이션 스키마로 표현되어야 함

이 스키마의 애트리뷰트로는 관계된 개체 타입들의 키와 관계성 타입 자신의 애트리뷰트가 옴

(39)

다-대-다 관계성 표현 예

스키마 : WorksIn(ssn, storeId)

테이블 :

Employee

WorksIn

Manages

Store

M M

1 1

worker

manager

ssn storeId

358-44-7865 3 579-98-8778 5

(40)

다-대-다 관계성 표현 규칙

규칙 8:

클래스 S와 T가 존재하고, 이 클래스 간의 관계성 타입 R의 카 디널리티 비율이 다-대-다일 경우에 새로운 릴레이션 스키마 R 생성

S와 T의 키를 외래키로써 R에 추가

규칙 6적용

(41)

약한 개체 클래스의 표현

약한 개체 클래스는 자신의 유일 키 애트리뷰트가 없음

키를 위한 추가적인 애트리뷰트를 소유자 개체 타입으로 부터 가져와 약한 개체 클래스를 위한 스키마를 만듦

Customer Has Rental

dateDue cost

1 Has Video

M 1 1

약한 개체 클래스

식별 관계 클래스 소유자 개체 클래스

(42)

약한 개체 클래스 표현 예 : Rental 스키마

스키마 : Rental(videoId, dateDue, dateRented, cost, accountId)

테이블 :

videoId dateRented dateDue cost accountId

101 1/3/02 1/4/02 $1.59 103

113 2/22/02 2/25/02 $3.00 101

114 2/22/02 2/25/02 $3.00 101

123 12/1/01 12/31/01 $10.99 103

(43)

약한 개체 클래스 표현 예:TimeCard 스키마

Employee Has TimeCard

date

startTime

paid

M Has Store

M 1

1

약한 개체 클래스 정의 관계 클래스

구별자

endTime

(44)

TimeCard 개체 클래스의 스키마와 테이블

스키마 : TimeCard(ssn, date, startTime, endTime,storeId,paid)

테이블 :

ssn date startTime endTime storeId paid

145-09-0967 01/14/99 8:15 12:00 3 yes

245-11-4554 01/14/99 8:15 12:00 3 yes

376-77-0099 02/23/99 14:00 22:00 5 yes

145-09-0967 01/16/99 8:15 12:00 3 yes

376-77-0099 01/03/99 10:00 14:00 5 yes

(45)

약한 개체 클래스 표현 규칙

규칙 9:

각 약한 개체 클래스 W에 대하여, 새로운 릴레이션 스키마 생성

식별 관계성과 관련된 강한 개체 클래스 각각에 대해서 이 클래 스의 키 애트리뷰트들을 새로 생성한 스키마에 외래키 애트리뷰 트들로 추가

추가된 외래키 애트리뷰트들과 약한 개체 클래스의 부분키 애트 리뷰트들의 조합으로 스키마의 키 선언

규칙 2, 4 적용

참조

관련 문서

하나의 원자 궤도함수는 하나의 전자를 발견할 확률이 높은 공간 영역이다. 원자 궤도함수는

그러나, 이 변화는 역설적으로 시간을 통해 보존되는 통일성을 전제하는 것이다... 다발이론에 대한 반론1: 변화 속

이 활동을 통해 학생들은 하나의 미술사조로서의 옵아트 분야에 대한 이해를 높일 것이며 , 여기에 숨겨진 과학 원리에 대해서도 학습함으로서 미술과 과학의 연관성에

30쌍의 고정체와 지대주가 선택되었고,하나의 고정체에 하나의 지대주와 하나의 지대주 나사로 시편을 구성하였다.실험을 위해 고정체를 불포화 폴

○ 큰 발전기의 세포 역할을 하는 하나의 표준 풍력 발전기를 제작했기 때문에 이를 여러 개 더 제작하고 하나의 기둥에 연결하여 하나의 큰 발전기로써 발전시켜보는

최종으로

▶ 종합서비스 디지털 통신망으로서 여러 가지 다양한 통신서비스를 하나의 통일된 통신망을 통해 경제적으로 제공하는 통신망 시스템. 개념적

◇ 영역분석을 통해 문화에 대한 탐색이 이루어진다.. ◆하나의 문화기술지로