4. 관계데이타모델
이장의주요내용 관계모델소개 관계모델의개념 릴레이션, 릴레이션스키마, 릴레이션상태 관계모델의스키마기반제약조건들 도메인제약조건 키제약조건 엔티티무결성제약조건 참조무결성제약조건 ER 모델을관계모델로변환 2
관계모델소개 정보시스템의논리적스키마 (Logical Schema) 을정의하기위해사용 관계데이타베이스시스템에직접구현될수있도록데이타베이스구조를정의하는방법을제공 관계데이터모델의장점 대수연산의지원을받는탄탄한수학적기초를가짐 사용자에게단순성을제공 릴레이션의생성과조작을위한연산인관계대수 (relation algebra) 의지원을받음 (6 장 ) 3
관계모델의개념 : 릴레이션 릴레이션 (relation) 개체를표현하기위한데이터구조 2 차원테이블로표현 행 : 개체를표현. 관련된데이터값들의모임. 튜플 (tuple) 이라고부름 열 : 각행의값들의의미를해석하는데사용. 애트리뷰트 (attribute) 라고부름 데이타베이스는릴레이션들의모임 4
관계모델의개념 : 릴레이션스키마 한개의릴레이션스키마는하나의개체또는관계성클래스를표현 개체들을표현하는데사용되는테이블의구조정의 릴레이션내포 (intension) 이라고도함 R(A 1, A 2,..., A n ) 로표기 R : 릴레이션이름 A 1, A 2,..., A n : 애트리뷰트 예 ) MOVIE(movieId, title, genre, length, rating) 5
관계모델의개념 : 릴레이션상태 한시점에릴레이션 R 에포함되어있는튜플 (tuple) 들의집합 한개의튜플은한개체가가지는애트리뷰트값들의집합 릴레이션은튜플들의집합이므로, 각튜플은유일해야함 릴레이션외포 (extension) 이라고도함 6
릴레이션 MOVIE 의예 INTEGER STRING STRING STRING STRING 도메인 릴레이션이름 애트리뷰트들 튜플들 MOVIE movieid title genre length rating 101 The Thirty-nine Steps 145 Lady and the Tramp mystery 101 PG animated comedy 93 G 90987 Elizabeth costume 123 PG-13 drama 99787 Animal House comedy 87 PG-13 릴레이션구조또는스키마 릴레이션상태또는내용 123 Annie Hall romantic comedy 110 PG-13 7
무결성제약조건 Integrity constraints : IC 데이타베이스의인스턴스에저장될수있는데이터를제한함 데이타베이스스키마에명시되며, 그스키마의모든데이타베이스상태는이를만족해야함 무결성제약조건은서로다른시점에명시되며시행됨 DBA 나최종사용자가데이타베이스스키마를정의할때, IC 를명시 데이타베이스응용이실행될때, DBMS 는명시된 IC 를만족하는인스턴스들만데이타베이스에저장하도록함 8
관계모델의스키마기반제약조건들 도메인제약조건 널제약조건 ( 이전장에서설명하였음 ) 키제약조건 (Key Constraints) 엔티티무결성제약조건 (Entity Integrity Constraints) 참조무결성제약조건 (Referential Integrity Constraints) 9
도메인제약조건 정의 각각의투플내에서각각의애트리뷰트 A 의값이반드시 A 의도메인 dom(a) 에속하는원자값이어야한다. 도메인의데이터타입들 전형적인데이터타입들 예 ) 정수와실수, 논리형, 문자, 고정길이문자열, 가변길이문자열, 날짜 어떤데이터타입의전체값의일부범위를지정 예 ) 15 와 80 사이의정수 모든가능한값을명시적으로나열 예 ) 학과명이나학과코드를나타내는모든문자열 10
키제약조건 슈퍼키 (Superkey) 릴레이션 R 에대한슈퍼키 SK 는다음조건을가지는 R 의애트리뷰트들의집합임 유효한릴레이션상태 r(r) 에서서로다른튜플들은 SK 에대해같은값을가지지않음 키 (Key) : 릴레이션 R 에대한키의조건 1. 서로다른두투플은동일한키애트리뷰트값을가질수없음 2. 키는최소의슈퍼키 (minimal superkey) 임 예 ) STUDENT 릴레이션 {Ssn} : 키 {Ssn, Name, Age}, {Ssn, Name}, {Ssn, Age}, {Ssn} : 슈퍼키 11
키제약조건 만일릴레이션스키마가하나이상의키를가질경우, 각키를후보키 (candidate key) 라함 후보키들중에하나를기본키로지정함 기본키 (Primary key) 투플들을식별할수있는후보키 기본키를구성하는애트리뷰트들은밑줄을그어표시 다른후보키는유일키 (unique key) 라함 12
엔티티무결성제약조건과참조무결성제약조건 엔티티무결성제약조건 어떠한기본키값도널값이될수없음 이유 : 기본키는한릴레이션내의각투플을식별하는데사용되기때문에기본키값이널값이되면투플들을식별할수없음 참조무결성제약조건 두릴레이션사이에명시되는제약조건 한릴레이션에있는투플이다른릴레이션에있는투플을참조하려면반드시참조되는투플이그릴레이션내에존재해야함 외래키 (foreign key) 는참조무결성제약조건을만족해야함 13
외래키 릴레이션스키마 R1 의어떤애트리뷰트들의집합 FK 가아래규칙을만족하면 FK 는릴레이션 R2 를참조하는 R1 의외래키임 R1 : 참조한릴레이션, R2 : 참조된릴레이션 1. FK 의애트리뷰트는 R2 의기본키 PK 의애트리뷰트와동일한도메인을가짐 2. 현재상태 r1(r1) 의한투플 t1 내의 FK 값은현재상태 r2(r2) 의어떤투플 t2 내의 PK 값과일치하거나널값을가져야함 각외래키로부터그것을참조하는릴레이션까지화살표를그려서표현 참조되는릴레이션의기본키를화살표의머리가가리키도록함 14
Movie movieid title genre length rating 외래키 VideoTape 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 < 참조하는릴레이션 > VideoTape 101 The Thirty-nine Steps 145 Lady and the Tramp Animated comedy 450 Elizabeth Costume drama Mystery 101 PG 93 G 123 PG-13 189 Animal House Comedy 87 PG-13 123 Annie Hall Romantic comedy Store 110 PG-13 stordid street City manager 3 2010 Liberty Rd Apopka 145-09-0967 5 1004 N. Monroe St Apopka 588-99-0093 < 참조된릴레이션 > videoid dateacquired movieid storeid Movie movieid title genre length Store rating <BigHit Video 스키마다이어그램에표시된참조무결성제약조건의예 > storeid street city state zipcode manager 15
ER 모델을릴레이션스키마로변환 변환단계 1. ER 모델의각개체클래스에대해릴레이션스키마생성 2. 생성한스키마에애트리뷰트추가 3. 키애트리뷰트지정 4. ER 모델의모든관계성을어떻게표현할것인지선택 우선위의변환단계에따라 ER 모델을충실히표현하는릴레이션스키마생성 데이타베이스를좀더효율적이고, 관리하기쉽고, 수정하기편하게하기위해릴레이션스키마에대해다양한변환과정적용 (5 장정규화과정 ) 16
개체클래스의릴레이션스키마로표현 1. 규칙 1 : ER 모델의강한개체클래스각각에대해같은이름으로릴레이션스키마를생성한다. 2. 규칙 2 : 강한개체클래스의단순애트리뷰트에대해릴레이션스키마에서같은이름으로애트리뷰트를생성한다. 3. 규칙 3 : 강한개체클래스의키들중에하나를릴레이션스키마의키로선택한다. 선택된키가여러개의단순애트리뷰트들로구성되어있다면, 릴레이션스키마의키는애트리뷰트들의집합이된다. 17
Movie 클래스변환예 movieid title Movie genre length rating 스키마 : 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 93 G comedy 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 클래스에대한스키마정의와예제테이블 18
복합, 다중값, 파생애트리뷰트의표현 lastname firstname accountid balance 다중값애트리뷰트 otherusers Customer numberrentals address 복합애트리뷰트 파생애트리뷰트 street city state zipcode 관계모델에서사용할수있는도메인들은더이상나눌수없는, 즉원자값 (Atomic value) 을가져야함 OtherUsers 와 address 가원자값이아닌이유 특정도시또는우편번호를가지는고객을찾기위해 특정개인이고객계정의다른사용자리스트에나타나는지를확인하기 위해 19
복합애트리뷰트 -1/2 복합애트리뷰트은이름과타입을가지는여러개의애트리뷰트들로구성 ( 예 :address) 규칙 4 : 강한개체클래스의복합애트리뷰트각각에대해, 릴레이션스키마의복합애트리뷰트의각구성필드에대해하나씩의애트리뷰트들을생성한다. 20
복합애트리뷰트 - 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. 102 Hamilton Cherry 3230 Dade St. 103 Harrison Kate 103 Dodd Hall 104 Breaux Carroll 76 Main St. Apopka FL 30458 0.00 Dade City FL 30555 4.47 Apopka FL 30457 30.57 Apopka FL 30458 34.58 그림 4-2 Customer 클래스에대한스키마정의와예제테이블 21
다중값애트리뷰트 단일개체에대한애트리뷰트값이구성요소값들의집합으로이루어지기때문에원자성을갖지못함 ( 예 :OtherUsers) 방법 1 : 한개의 otheruser 애트리뷰트를갖게하면서 otheruser 에나타나는사용자마다새로운행생성 22
다중값애트리뷰트 : 방법 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 클래스에대한스키마정의와예제테이블 : 다른모든애트리뷰트는중복됨 23
다중값애트리뷰트 : 방법 1 의문제점 문제점 : 기본적인정보시스템의원칙에위배 1. 모든데이터모델은그것이표현하는실제상황들과비슷해야한다. 그러나, 3 개의개체 ( 테이블의행들 ) 는단일실제고객을표현함 2. 데이터모델들이값들의중복을최소화해야한다. 그러나, 거의대부분의정보가중복되어있음 24
다중값애트리뷰트 : 방법 2 1/3 방법 2 : ER 모델에서 OtherUser 개체클래스생성하고 Customer 클래스와관계성설정 lastname firstname accountid Customer 1 is a part of 0/M OtherUser numberrentals address otheruser street city state zipcode 25
다중값애트리뷰트 : 방법 2-2/3 스키마 : OtherUser(accountId, otheruser) 테이블 : accountid OtherUser 104 Judy Breaux 104 Cyrus Lambeaux 104 Jean Deaux 그림 4-5 OtherUser 클래스에대한스키마정의와예제테이블 26
다중값애트리뷰트 : 방법 2-3/3 규칙 14 개체클래스 C 의다중값애트리뷰트 M 각각에대하여, 새로운릴레이션스키마 M 을정의 애트리뷰트 M 의필드들을새로운스키마에추가 C 의나머지애트리뷰트들을포함하는스키마의키애트리뷰트들을외래키로 M 에추가 새로운스키마의키는그것이가지는모든애트리뷰트들의조합이되도록선언 27
관계성을애트리뷰트로표현 관계모델은관계성표현을위해특별한데이타구조를지원하지않음. 테이블과애트리뷰트만을가지고관계성표현 관계모델에서모든릴레이션스키마는한개이상의애트리뷰트로구성된키를가져야함 관계모델은관계성을표현하기위해이키들을이용 1- 대 - 다, 1- 대 -1 관계성표현에적용 28
1- 대 - 다관계성표현 - 1/3 1 Is a M M Is a 1 Movie Copy Videotape Located Store of In MovieId videoid dateacquired storeid 스키마 : Videotape(videoId, dateacquired, movieid, storeid) movieid : Is a copy of 관계타입을표현. 외래키 storeid : Is a Located In 관계타입을표현. 외래키 29
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 30
1- 대 - 다관계성표현 - 3/3 데이타베이스시스템은참조무결성제약조건을적용하는책임을짐 외래키의값은반드시참조하는기본키의어떤값과같든지아니면 null 이어야한다 즉, 기본키에없는값은가질수없다 규칙 5 : 클래스 S 와 T 가존재하고, 클래스간의관계성타입 R 의카디널리티비율이 1- 대 - 다일경우, 클래스 S 의키애트리뷰트들을클래스 T 에외래키로추가 대 -1 인스키마에대해외래키애트리뷰트를추가 규칙 6 : 클래스 T 에관계성타입 R 의애트리뷰트추가 31
1- 대 -1 관계성표현 1- 대 -1 관계타입에서관련된둘중의어느한쪽스키마에외래키속성을더함 worker WorksIn Employee M 1 M 1 Store manager Manages 32
Store 와 Employee 간의 Manages 관계표현방법 `1 스키마 : Store(storeId, street, city, state, zipcode, manager) 테이블 : 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 외래키 manager 가 Store 스키마에포함 33
Store 와 Employee 간의 Manages 관계표현방법 2 스키마 : Employee(ssn, lastname, firstname, managed) 테이블 : 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 외래키 manager 가 Employee 스키마에포함 모든상점에는관리자가있으나, 대부분직원들은관리자가아님. 그러므로, Employee 테이블의많은행들이 manager 값으로 null 을가질수있음 34
1- 대 -1 관계성표현규칙 Tip : Null 값을갖지않는쪽, 즉참여제약조건이 Total 인쪽에외래키를포함시키는것이좋음 규칙 7 클래스 S 와 T 가존재하고, 클래스간의관계성타입 R 의카디널리티비율이 1- 대 -1 인경우, 어느한쪽의클래스선정. 이때전부참여제약조건을갖는개체클래스는선택하는것이바람직함. 규칙 4 적용, 규칙 6 적용 35
개체합병을통한관계성표현 관계된개체클래스들이관계성을통해하나의릴레이션으로합병 개체클래스 Employee 와 Store 가 Manages 관계성을통해하나의 EmployeeStore 릴레이션으로합병 스키마 : EmployeeStore(ssn, lastname, firstname, storeid, storestreet, storecity, storestate, StoreZipcode) 36
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 문제점 개체클래스들사이의구분이제거되어관계성을명시적으로표현하지못함 어떤관계성을통해연관되어있는지명확히표현할수없음 37
관계성을테이블로표현 다 - 대 - 다관계성타입은스키마에외래키를추가하는방법으로표현할수없음. 이유 : 한개체의외래키는관계된각개체의값들의집합을가져야하기때문 다 - 대 - 다관계성타입은원래의스키마와는분리된별도의릴레이션스키마로표현되어야함 이스키마의애트리뷰트로는관계된개체타입들의키와관계성타입자신의애트리뷰트가옴 38
다 - 대 - 다관계성표현예 worker WorksIn Employee M M Store 1 1 manager Manages 스키마 : WorksIn(ssn, storeid) 테이블 : ssn storeid 358-44-7865 3 579-98-8778 5 358-44-7865 5 39
다 - 대 - 다관계성표현규칙 규칙 8: 클래스 S 와 T 가존재하고, 이클래스간의관계성타입 R 의카디널리티비율이다 - 대 - 다일경우에새로운릴레이션스키마 R 생성 S 와 T 의키를외래키로써 R 에추가 규칙 6 적용 40
약한개체클래스의표현 약한개체클래스는자신의유일키애트리뷰트가없음 키를위한추가적인애트리뷰트를소유자개체타입으로부터가져와약한개체클래스를위한스키마를만듦 약한개체클래스 소유자개체클래스 Customer 1 Has M Rental 1 Has 1 Video datedue cost 식별관계클래스 daterented 41
약한개체클래스표현예 : 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 42
약한개체클래스표현예 :TimeCard 스키마 정의관계클래스 약한개체클래스 Employee 1 Has M M 1 TimeCard Has Store date paid 구별자 starttime endtime 43
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 44
약한개체클래스표현규칙 규칙 9: 각약한개체클래스 W 에대하여, 새로운릴레이션스키마생성 식별관계성과관련된강한개체클래스각각에대해서이클래스의키애트리뷰트들을새로생성한스키마에외래키애트리뷰트들로추가 추가된외래키애트리뷰트들과약한개체클래스의부분키애트리뷰트들의조합으로스키마의키선언 규칙 2, 4 적용 45