2 장 : 엔티티 - 관계성데이터모델 Prof. Jin Hyun Son jhson@cse.hanyang.ac.kr Department of Computer Science & Engineering Hanyang University
2 장. E/R 데이터모델 엔티티-관계성 (Entity-Relationship) 모델의요소설계원칙제약 (constraint) 의모델링약엔티티집합 (weak entity set) 2
데이터베이스모델링개요 데이터모델 (data model) 데이터와데이터들간의관계를기술하는개념적도구데이터베이스의논리적구조를명시 데이터베이스모델링과구현과정 착상 E/R 설 릴레이션 계스키마 ( 개념적설계 ) ( 구현설계 ) 관계 DBMS DBMS 가 E/R 모델을직접사용하지는않음 3
E/R 모델의요소 엔티티 - 관계성 (Entity-Relationship:E/R) 다이어그램 데이터베이스모델링을그래피컬하게표현 E/R 다이어그램의세가지구성요소 엔티티집합 (entity set) 유사한엔티티들의집합, 엔티티는객체에해당애트리뷰트 (attribute) 엔티티의특성을기술하는값관계성 (relationship) 둘이상엔티티집합들간의연결 4
E/R 모델의요소 ( 계속 ) name address title year Stars-in Stars Movies name length filmtype Owns Studios address 영화데이터베이스를위한 E/R 다이어그램 5
E/R 모델의요소 ( 계속 ) E/R 다이어그램의인스턴스 (instance) E/R 다이어그램은데이터베이스의구조를기술하는표기법데이터베이스의구조기술 : 스키마 인스턴스 : 스키마에특정값들이배정 ( 예 ) Stars-in 관계성의한인스턴스 Movies Basic Instinct Total Recall Total Recall Stars Sharon Stone Arnold Schwarzenengger Sharon Stone 6
E/R 모델의요소 ( 계속 ) E/R 관계성의다중연관성 (multiplicity) 다대다 (many-many) 관계성 Movies n Stars-in n Stars 다대일 (many-one) 관계성 Movies n Owns 1 Studios 일대일 (one-one) 관계성 Studios 1 Runs 1 Presidents 7
E/R 모델의요소 ( 계속 ) 다중방향 (multiway) 관계성 세개이상의엔티티집합들이참여하는관계성 ( 예 ) 관계성 Contracts: 영화사가제작하는영화에 출연하는스타와의계약 Stars Contracts Movies Studios 다중방향관계성은그리흔치는않다.» 이진 (binary) 관계성이일반적 8
E/R 모델의요소 ( 계속 ) 화살표의의미 엔티티 E 로화살표가있다고하자. 다른엔티티집합들로부터엔티티를각각하나씩선정하면,» E 에는이들에대응하는엔티티가많아야하나존재 이진관계성에서도위와같은의미 9
E/R 모델의요소 ( 계속 ) 관계성에서의역할 (role) 한엔티티집합이한관계성에서두번이상사용가능엔티티는각라인 ( 즉, 관계성에의참여 ) 에대해서로다른 역할 Original ( 예 ) 영화의후속편을나타내는관계성 Sequel-of Sequel-of Movies Sequel 관계성에서두영화들을구별하기위하여, 한선에는역할 Original 이표기, 다른선에는역할 Sequel 이표기 10
E/R 모델의요소 ( 계속 ) ( 예 ) 관계성 Contracts 스타가소속된스튜티오는그스타가 ( 다른스튜디오에서제작되는 ) 특정영화에출연할수있도록다른스튜디오와계약가능 Stars Movies Contracts 스타가소속된스튜디오 Studio of star Producing studio 영화를제작하는스튜디오 Studios 관계성을나타내는튜플 : (studio1, studio2, star, movie) 11
E/R 모델의요소 ( 계속 ) 관계성에있는애트리뷰트 관계성이애트리뷰트를가질수도있다 ( 예 ) 스타가영화에출연할때받는 salary 를표시 salary Movies Contracts Stars 애트리뷰트 salary 는 Studios, Movies, Stars 어느것의애트리뷰트도아님 Studios 12
E/R 모델의요소 ( 계속 ) 애트리뷰트를반드시관계성에위치시키지않아도됨 salary Salaries Movies Contracts Stars Studios 13
E/R 모델의요소 ( 계속 ) 다중방향관계성을이진관계성으로변환 다중방향관계성은여러개의이진 (binary) 다대일관계성들로변환가능 연결 (connecting) 엔티티집합생성 다중방향관계성을엔티티로모델 연결엔티티집합과기존엔티티집합을다대일관계성들에의한연결로모델 14
E/R 모델의요소 ( 계속 ) ( 예 ) 관계성 Contracts: 다중방향관계성 vs. 이진관계성들 Stars Movies Stars Movies Studio of star Contracts Producing studio (st1, ct1) Star-of Contracts Movie-of (mv1, ct1) Studios Studio of star Producing studio (ct1, sd1) (ct1, sd2) Studios Contracts 관계성 : (sd1, sd2, st1, mv1) 15
E/R 모델의요소 ( 계속 ) 연결엔티티집합이더적합한경우 ( 예 ) 영화제작에임의의여러스튜디오들이참여할수있다고하자.» ( 예 ) 제작, 특수효과, 배포담당회사등 Contracts 에스튜디오들의집합이대응» (star, movie, set-of-studios) Contracts 를다중방향관계성으로모델하면, Contracts 관계성의한인스턴스에대해» studio 들의집합이대응즉, studio 집합이하나의엔티티 인엔티티집합이필요 Contracts 를연결엔티티집합으로모델하는것이더적절 16
E/R 모델의요소 ( 계속 ) Stars Movies Star-of Movie-of Contracts Contracts 와 Studios 사이의 관계성은 Many-many Studios-of Studios 17
E/R 모델의요소 ( 계속 ) E/R 모델에서의서브클래스 일부엔티티들이그엔티티집합의모든멤버들이가지고있지는않은특별한특성을가질수도있음 서브클래스 (subclass) 이러한일부엔티티들을위해추가로정의된엔티티집합 isa 관계성 클래스-서브클래스관계성삼각형으로표시 isa 관계성은 one-one 18
E/R 모델의요소 ( 계속 ) ( 예 ) Cartoons 와 MurderMysteries 를 Movies 엔티티 집합의서브클래스로모델 length title year filmtype To Stars Movies Voices isa isa weapon Cartoons MurderMysteries isa Hierarchy 19
설계원칙 충실성 (faithfulness) 설계는다루고자하는상황을충실하게나타내야함 ( 예 ) 관계성 Stars-in» 엔티티집합 : Stars, Movies 다중연관성 : many-many 관계성이적절 ( 예 ) 관계성 Teaches» 엔티티집합 : Courses, Instructors 다중연관성 : many-one 또는 many-many 학교의정책에따라결정 20
설계원칙 ( 계속 ) 중복 (redundancy) 회피 하나의사실을나타내기위해, 가능한하나의정보만을유지중복이있으면, 저장공간낭비정보의비일관성 (inconsistency) ( 예 ) 영화의소유권을가지고있는스튜디오 관계성 Owns: 엔티티집합 Movies 와 Studios 애트리뷰트 studioname: 엔티티집합 Movies 의애트리뷰트 21
설계원칙 ( 계속 ) title year name address Movies Stars-in Stars length filmtype name Owns Studios address Not Good!!! title year name address Movies Stars-in Stars length filmtype studio name 22
설계원칙 ( 계속 ) 단순화 (simplicity) 필요이상의요소는설계에포함시키지않음 ( 예 ) 특정영화의소유권을나타내는 Holdings 라는엔티티집합을가정해보자. Movies Owns Studios Movies Represents Holdings Owns Studios 기술적으로잘못된점은없으나, Holdings 는불필요하게복잡도만높임 23
설계원칙 ( 계속 ) 올바른관계성의선택 존재하는모든관계성을모델하는것은부적절 정보표현의중복발생 24
설계원칙 ( 계속 ) ( 예 ) 아래 E/R 다이어그램을고려해보자. title year Stars-in length filmtype Movies Contracts Stars name address Owns Studios name address 25
설계원칙 ( 계속 ) Owns 관계성이필요한가? 다음의경우불필요 각 movie 에는 contract 관계성이반드시존재한다. Owns 관계성을만들어낼수있음 다음의경우필요함 movie 에따라 contract 관계성이없을수도있다고하자.» 예를들어, 출연하는스타가정해지지않은경우 Owns 관계성을만들어낼수없음 Stars-in 관계성의경우도이와유사 관계성의필요여부는예상되는실제상황에따라결정 26
설계원칙 ( 계속 ) ( 예 ) 아래 E/R 다이어그램을고려해보자. Stars-in Stars Movies Worksfor Owns Studios 27
설계원칙 ( 계속 ) Works-for 관계성이필요한가? 다음의경우불필요 Works-for 의의미» 스타가이스튜디오의영화에출연 Stars-in 과 Owns 로부터 Works-for 관계성을만들어짐 다음의경우필요함 Works-for 의의미» 영화출연과무관 28
설계원칙 ( 계속 ) 올바른요소의선택 실세계의개념을모델 애트리뷰트로표현??? 엔티티집합 / 관계성으로표현??? 29
설계원칙 ( 계속 ) ( 예 ) 아래 E/R 다이어그램에서, 스튜디오엔티티집합대신, 스튜디오의이름과주소를영화의애트리뷰트로만들면, title year Movies Owns length filmtype name Studios addr a title year Movies length filmtype name addr 주소의반복 ( 각영화마다 ) 어떤스튜디오가소유하는영화가하나도없으면, 그스튜디오의주소도잃어버리게됨. 30
설계원칙 ( 계속 ) 스튜디오의이름뿐만아니라주소등과같이좀더많은정보를필요로한다면 엔티티집합으로만드는것이바람직 그러나, 단지스튜디오이름만필요하다면, 애트리뷰트로만드는것이더좋다. 31
설계원칙 ( 계속 ) 애트리뷰트로모델하는것이바람직한조건 엔티티집합을 E 라고하자. E 와연관된관계성에서 E 쪽은 one E 쪽이 many 일때 E 를애트리뷰트로대치하면, 다중값발생 E 에있는모든애트리뷰트는상호독립 ( 예 ) Studios 엔티티집합에서, address 는 name 과독립아님, 따라서조건을만족하지않음 애트리뷰트로할경우, 정보의중복현상 E 가두번이상참가하는관계성은없음 애트리뷰트로할경우, 관계성정보유실 ( 예 ) Sequel-of 와같은관계성이 E 에있으면조건만족안함 위조건들을만족하면, 엔티티집합을애트리뷰트로대치가능 32
설계원칙 ( 계속 ) 엔티티집합 E 를애트리뷰트로대치 E 와연관된관계성을 R 이라하자 관계성 R 이이진관계성인경우 E 와 R 을제거 E 의애트리뷰트를, R 과연관된다른엔티티집합 F 로이동 f1 e1 f1 e1 F R E a F 33
설계원칙 ( 계속 ) 관계성 R 이다중방향관계성인경우 엔티티집합 E 를제거 E 의애트리뷰트를관계성 R 의애트리뷰트로이동 salary Salaries Contracts a salary Contracts Movies Studios Stars Movies Studios Stars 34
제약 (constraint) 모델링 제약 (constraint) 실세계를올바르게나타낼수있도록데이터베이스를유지 제약의분류 키 (key) 엔티티집합에서엔티티를유일하게구별할수있는하나또는둘이상애트리뷰트들의집합 단일값 (single-value) 제약 중복된값이나타나면안됨 key 제약은단일값제약의의미포함 many-one 관계성도단일값제약의예 35
제약모델링 ( 계속 ) 참조무결성 (referential integrity) 제약 어떤다른객체에의해참조되는값이데이터베이스에반드시존재해야함. 도메인 (domain) 제약 애트리뷰트의값이특정값의집합에속해야함. 일반 (general) 제약 데이터베이스에서지켜져야할임의의무결성단정 (assertion) 을의미. 36
제약모델링 ( 계속 ) 키 (key) E: 엔티티집합키 : 하나이상애트리뷰트의집합 K E 에있는엔티티 e 1 과 e 2 는키 K를구성하는모든애트리뷰트에동일한값을가질수없다. ( 예 ) Movies: (title, year), Studios: name, Stars: (name, address) 설계자가유일한 ID 를생성해서사용하기도함 ( 예 ) student-id, employee-id 37
제약모델링 ( 계속 ) 한엔티티집합에둘이상의키들이존재가능 ( 예 ) Students 엔티티집합을가정해보자키 : student-id 와 social-security-number 각각이키가능 isa 계층구조에서 키를구성하는모든애트리뷰트는, 모두 root 엔티티집합에존재 38
제약모델링 ( 계속 ) E/R 모델에서키의표현 키에속하는애트리뷰트에밑줄 title Movies year Stars-in Stars name address length filmtype E/R 모델은키가두개이상존재하는것을나타내는 표기법은제공하지않는다. 주석등으로처리하기도한다. 39
제약모델링 ( 계속 ) 단일값 (single value) 제약 많아야하나의값만가질수있다는제약 단일값제약을가진애트리뷰트 키에속하는애트리뷰트애트리뷰트의값이반드시존재키에속하지않는애트리뷰트애트리뷰트의값이없는경우, 널 (null) 값이사용될수도있음» 널값은애트리뷰트에대한유효한정보가없을때사용 40
제약모델링 ( 계속 ) E/R 모델에서단일값제약표현 모든애트리뷰트는단일값을갖는다고간주값이 NULL 이될수없다는표기법은별도로없음 many-one 관계성» 엔티티집합 E 로부터, 엔티티집합 F 로, (E F) E 에있는엔티티 e 는단일값제약 41
제약모델링 ( 계속 ) 참조무결성제약 관계성에서참조되는엔티티는반드시존재해야한다. ( 예 ) 관계성 Owns 엔티티집합 Movies 로부터 Studios 로 Movie 를소유하는 studio 가반드시존재해야하는가? 단순한 many-one 관계성은이제약을나타내고있지는않음 Many-one 관계성에서 one 이반드시존재해야한다는 제약으로볼수있음 42
제약모델링 ( 계속 ) 참조무결성제약이지켜지도록하기위한방법참조되는객체의삭제를금지참조되는객체가삭제되면, 이객체를참조하고있던모든객체도같이삭제 참조하는객체가새로만들어지면, 기존에존재하는객체가관계성으로연결 관계성에서참조되는객체와의연결을변경하려면, 새로연결되는참조되는객체는반드시이미존재하는객체 43
제약모델링 ( 계속 ) E/R 다이어그램에서참조무결성표현 둥근화살표사용 둥근화살표는다음을표시 참조무결성제약 Movies Owns Studios Runs President s 44
제약모델링 ( 계속 ) 도메인제약 애트리뷰트의값은어떤제한된집합에있어야함 ( 예 ) 애트리뷰트타입선언 ( 예 ) 0 length 240 45
제약모델링 ( 계속 ) 관계성의차수 (degree) 에대한제약 관계성에참여하는엔티티의수를제한에지에숫자를기입하여표시 10 Movies Stars-in Stars 화살표는 1 제약 둥근화살표는 = 1 제약 46
약엔티티집합 약엔티티집합 (weak entity set) 키의일부또는전부가다른엔티티집합에있는애트리뷰트들로만들어진엔티티집합 오너 (owner) 엔티티없이는식별될수없음 ( 예 ) Studios 의하부조직인 Crews number name address 약엔티티집합 : Crews Unit-of Studios 지원 (supporting) 관계성 : 47
약엔티티집합 ( 계속 ) 약엔티티집합의요인 분류관점에서계층구조상의하부조직 / 분류 ( 예 ) Studios 와 Crews ( 예 ) 종 (species) 은 속 (genus) 의하부분류 name name Homo Sapiens genus species Species Belongs-to Genus species names are not unique 48
약엔티티집합 ( 계속 ) 연결엔티티집합 연결엔티티집합의키연결시키는엔티티집합의키들이모여구성» 또는, 설계자가별도로키애트리뷰트생성 ( 예 ) Contracts: 다중방향관계성과연결엔티티집합 salary Salaries Contracts Movies Studios Stars 49
약엔티티집합 ( 계속 ) salary Contracts Star-of Studio-of Movie-of Stars Studios Movies length filmtype name addr name addr title year 50
약엔티티집합 ( 계속 ) 약엔티티집합에대한요구사항 약엔티티집합 W W R S 관계성 R: 지원관계성 (supporting relationship)» many-one 엔티티 S: 강엔티티집합 (strong entity set) 약엔티티집합 W 의키 자신의애트리뷰트 ( 종종없는경우가많음 ) + W 로부터관계성 R 로연결된엔티티집합 S 의키애트리뷰트 51
약엔티티집합 ( 계속 ) 지원관계성 R 의조건 1) W 로부터 S 로이진 many-one 관계성» one-one 은 many-one 의특별한경우 2) W 로부터 S 로참조무결성제약을가짐 W R S 3) W 의키의일부로사용된 S 의애트리뷰트는,» S 의키애트리뷰트 4) S 도약엔티티집합이면,» 위의 (1), (2), (3) 과정이 S 에같은요령으로적용 52