4. 관계데이타모델contents.kocw.net/kocw/document/2015/chungnam/lee… ·  ·...

45
4. 관계 데이타 모델

Upload: letu

Post on 16-May-2018

216 views

Category:

Documents


3 download

TRANSCRIPT

4. 관계 데이타 모델

인터넷과 Java 중심으로데이타베이스시스템이론과응용 2

이 장의 주요 내용

관계 모델 소개

관계 모델의 개념

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

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

도메인 제약 조건

키 제약 조건

엔티티 무결성 제약 조건

참조 무결성 제약 조건

ER모델을 관계 모델로 변환

인터넷과 Java 중심으로데이타베이스시스템이론과응용 3

관계 모델 소개

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

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

관계 데이터 모델의 장점 대수 연산의 지원을 받는 탄탄한 수학적 기초를 가짐

사용자에게 단순성을 제공

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

릴레이션(relation) 개체를 표현하기 위한 데이터 구조

2차원 테이블로 표현

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

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

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

4

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

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

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

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

R(A1, A2, ..., An)로 표기 R : 릴레이션 이름

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

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

5

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

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

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

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

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

6

인터넷과 Java 중심으로데이타베이스시스템이론과응용

릴레이션 MOVIE의 예

7

movieId title genre length rating

101 The Thirty-nine

Stepsmystery 101 PG

145 Lady and the

Trampanimated

comedy

93 G

90987 Elizabeth costume

drama

123 PG-13

99787 Animal House comedy 87 PG-13

123 Annie Hallromantic

comedy

110 PG-13

MOVIE

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

튜플들

릴레이션구조또는스키마

릴레이션상태또는내용

INTEGER STRING STRING STRING STRING 도메인

인터넷과 Java 중심으로데이타베이스시스템이론과응용

무결성 제약 조건

Integrity constraints : IC

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

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

무결성 제약 조건은 서로 다른 시점에 명시되며 시행됨 DBA나 최종 사용자가 데이타베이스 스키마를 정의할 때, IC를

명시

데이타베이스 응용이 실행될 때, DBMS는 명시된 IC를 만족하는 인스턴스들만 데이타베이스에 저장하도록 함

8

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

도메인 제약 조건

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

키 제약 조건 (Key Constraints)

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

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

9

인터넷과 Java 중심으로데이타베이스시스템이론과응용

도메인 제약 조건

정의 각각의 투플 내에서 각각의 애트리뷰트 A의 값이 반드시 A의

도메인 dom(A)에 속하는 원자값이어야 한다.

도메인의 데이터 타입들 전형적인 데이터 타입들

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

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

예) 15와 80사이의 정수

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

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

10

인터넷과 Java 중심으로데이타베이스시스템이론과응용

키 제약 조건

슈퍼 키(Superkey) 릴레이션 R에 대한 슈퍼키 SK는 다음 조건을 가지는 R의 애트

리뷰트들의 집합임

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

키(Key) : 릴레이션 R에 대한 키의 조건1. 서로 다른 두 투플은 동일한 키 애트리뷰트 값을 가질 수 없

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

예) STUDENT 릴레이션 {Ssn} : 키

{Ssn, Name, Age}, {Ssn, Name}, {Ssn, Age}, {Ssn} : 슈퍼키

11

인터넷과 Java 중심으로데이타베이스시스템이론과응용

키 제약 조건

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

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

기본 키(Primary key) 투플들을 식별할 수 있는 후보키

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

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

12

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

엔티티 무결성 제약 조건 어떠한 기본 키 값도 널 값이 될 수 없음

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

참조 무결성 제약 조건 두 릴레이션 사이에 명시되는 제약 조건

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

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

13

인터넷과 Java 중심으로데이타베이스시스템이론과응용

외래 키

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

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

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

각 외래키로부터 그것을 참조하는 릴레이션까지 화살표를 그려서 표현 참조되는 릴레이션의 기본키를 화살표의 머리가 가리키도록 함

14

인터넷과 Java 중심으로데이타베이스시스템이론과응용 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

storeId street city state

rating

zipcode manager

<참조하는릴레이션>

<참조된릴레이션>VideoTape

Movie

Store

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용 16

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

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

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

3. 키 애트리뷰트 지정

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

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

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

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

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

17

인터넷과 Java 중심으로데이타베이스시스템이론과응용 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

123 Annie Hall romantic comedy 110 PG-13

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

Movie

movieId

title

genre

length rating

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

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

OtherUsers와 address가 원자값이 아닌 이유 특정 도시 또는 우편 번호를 가지는 고객을 찾기 위해

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

Customer

accountIdfirstNamelastName

balance

otherUsers

numberRentalsaddress

street

city state

zipcode

복합애트리뷰트

파생애트리뷰트

다중값애트리뷰트

인터넷과 Java 중심으로데이타베이스시스템이론과응용 20

복합 애트리뷰트 -1/2

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

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용 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 클래스에대한스키마정의와예제테이블

인터넷과 Java 중심으로데이타베이스시스템이론과응용

다중 값 애트리뷰트

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

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

22

인터넷과 Java 중심으로데이타베이스시스템이론과응용 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

그림 4-3 otherUser 애트리뷰트를가지는 Customer 클래스에대한스키마정의와예제테이블: 다른모든애트리뷰트는중복됨

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

문제점 : 기본적인 정보 시스템의 원칙에 위배1. 모든 데이터 모델은 그것이 표현하는 실제 상황들과 비슷해야

한다. 그러나, 3개의 개체(테이블의 행들)는 단일 실제 고객을표현함

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

24

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

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

25

1Customer

lastName

address

accountIdfirstName

zipcodestatecitystreet

numberRentals

is a

part of

0/MOtherUser

otherUser

인터넷과 Java 중심으로데이타베이스시스템이론과응용 26

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

스키마 : OtherUser(accountId, otherUser)

테이블 :

accountId OtherUser

104 Judy Breaux

104 Cyrus Lambeaux

104 Jean Deaux

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

규칙 14 개체 클래스 C의 다중값 애트리뷰트 M 각각에 대하여, 새로운

릴레이션 스키마 M을 정의

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

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

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

27

인터넷과 Java 중심으로데이타베이스시스템이론과응용 28

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

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

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

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

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

스키마 : Videotape(videoId, dateAcquired, movieId, storeId) movieId : Is a copy of 관계 타입을 표현. 외래키

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

29

Movie Videotape StoreIs a

Copy of

Is a Located

In

MovieId videoId dateAcquired storeId

1MM1

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

테이블

30

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

데이타베이스 시스템은 참조 무결성 제약 조건을 적용하는 책임을 짐 외래키의 값은 반드시 참조하는 기본키의 어떤 값과 같든지

아니면 null 이어야 한다

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

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

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

31

인터넷과 Java 중심으로데이타베이스시스템이론과응용

1-대-1 관계성 표현

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

32

Employee

WorksIn

Manages

Store

M M

11

worker

manager

인터넷과 Java 중심으로데이타베이스시스템이론과응용 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

인터넷과 Java 중심으로데이타베이스시스템이론과응용 34

Store와 Employee 간의 Manages 관계표현 방법 2 스키마 : Employee(ssn, lastName, firstName,

managed)

테이블 :

외래키 manager가 Employee 스키마에 포함 모든 상점에는 관리자가 있으나, 대부분 직원들은 관리자가 아

님. 그러므로, Employee 테이블의 많은 행들이 manager 값으로 null을 가질 수 있음

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

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

규칙 7 클래스 S와 T가 존재하고, 클래스 간의 관계성 타입 R의 카디

널리티 비율이 1-대-1인 경우, 어느 한 쪽의 클래스 선정. 이때전부 참여 제약조건을 갖는 개체 클래스는 선택하는 것이 바람직함.

규칙 4적용, 규칙 6 적용

35

인터넷과 Java 중심으로데이타베이스시스템이론과응용 36

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

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

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

스키마 : EmployeeStore(ssn, lastName, firstName, storeId, storeStreet, storeCity, storeState, StoreZipcode)

인터넷과 Java 중심으로데이타베이스시스템이론과응용 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

인터넷과 Java 중심으로데이타베이스시스템이론과응용 38

관계성을 테이블로 표현

다-대-다 관계성 타입은 스키마에 외래키를 추가하는 방법으로 표현 할 수 없음. 이유 : 한 개체의 외래키는 관계된 각 개체의 값들의 집합을 가

져야 하기 때문

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

타입 자신의 애트리뷰트가 옴

인터넷과 Java 중심으로데이타베이스시스템이론과응용

다-대-다 관계성 표현 예

스키마 : WorksIn(ssn, storeId)

테이블 :

39

Employee

WorksIn

Manages

Store

M M

11

worker

manager

ssn storeId

358-44-7865 3

579-98-8778 5

358-44-7865 5

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

규칙 8: 클래스 S와 T가 존재하고, 이 클래스 간의 관계성 타입 R의 카

디널리티 비율이 다-대-다일 경우에 새로운 릴레이션 스키마 R 생성

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

규칙 6적용

40

인터넷과 Java 중심으로데이타베이스시스템이론과응용 41

약한 개체 클래스의 표현

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

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

41

Customer RentalHas

dateDue

dateRented

cost

1Has Video

M

11

약한개체클래스

식별관계클래스

소유자개체클래스

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

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

테이블 :

42

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

인터넷과 Java 중심으로데이타베이스시스템이론과응용

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

43

Employee TimeCardHas

date

startTime

paid

MHas Store

M 11

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

구별자endTime

인터넷과 Java 중심으로데이타베이스시스템이론과응용 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

376-77-0099 01/03/99 15:00 19:00 5 yes

인터넷과 Java 중심으로데이타베이스시스템이론과응용

약한 개체 클래스 표현 규칙

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

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

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

규칙 2, 4 적용

45