제 7 장 엔터티 - 관계를사용한 개념적데이타모델링 Fundamentals of Database Systems R A Elmasri and S B Navathe
목차 71 데이타베이스설계를위한고수준개념적데이타모델의사용 72 간단한예제데이타베이스응용 73 엔터티타입, 엔터티집합, 애트리뷰트, 키 74 관계, 관계타입, 역할, 구조적제약조건 75 약한엔티티타입 (Weak Entity Type) 76 COMPANY 데이타베이스에대한 ER 설계의개선 77 ER 다이어그램, 이름지정에관한규칙, 설계에관한사항 78 3 차이상의관계타입 79 요약 2
개요 개념적모델링은데이타베이스설계에있어중요한단계임 이장에서는개체-관계 (Entity-Relationship: ER) 모델을사용한개념적모델링기법소개함 3
71 DB 설계를위한고수준의개념적데이타모델사용 [ 그림 71] 데이타베이스설계의단계들작은세계 Functional Requirements FUNCTIONAL ANALYSIS High-level Transaction Specification DBMS-independent DBMS-specific APPLICATION PROGRAM DESIGN TRANSACTION IMPLEMENTATION Application Programs 요구사항들의수정과분석 데이타베이스요구사항들 개념적설계 개념스키마 ( 데이타모델사상 ) LOGICAL DESIGN (DATA MODEL MAPPING) Logical (Conceptual) Schema (In the data model of a specific DBMS) PHYSICAL DESIGN Internal Schema (For the same DBMS) 4
72 간단한예제데이타베이스응용 COMPANY 데이타베이스의작은세계 1 회사는여러부서들로구성된다 각부서마다고유한이름, 고유한번호, 부서를관리하는특정사원이있다 사원이부서를관리하기시작한날짜도유지한다 한부서는여러위치에있을수있다 2 한부서는여러프로젝트들을관리한다 각프로젝트는고유한이름, 고유한번호, 한개의위치를가진다 3 각사원에대해서이름, 사회보장번호, 주소, 급여, 성별, 생년월일을저장한다 한사원은한부서에속하지만, 여러프로젝트들에관여할수있다 한사원이관여하는프로젝트들은그사원이소속된부서가관리하는프로젝트가아니어도무방하다 반드시한부서의각사원이각프로젝트를위해일하는주당근무시간을기록한다 또한각사원의직속상사도유지한다 4 보험목적을위해서각사원의부양가족들을기록한다 각부양가족에대해서이름, 성별, 생년월일, 사원과의관계를기록한다 5
Fname Minit Lname 개념적설계의결과 Number Name Address N 1 WORKS_FOR Name Locations Sex Salary Ssn EMPLOYEE Bdate supervisee supervisor 1 SUPERVISION N StartDate 1 NumberOfEmployees 1 DEPATMENT 1 MANAGES CONTROLS Hours N M N WORKS_ON PROJECT 1 Name DEPENDENTS_OF Location N Number DEPENDENT Name Sex BirthDate Relationship [ 그림 72] COMPANY 데이타베이스를위한 ER 스키마다이어그램 6
73 엔터티타입, 엔터티집합, 애트리뷰트, 키 ER 모델은데이터를엔티티 ( 개체 ), 관계, 에트리뷰트 ( 속성 ) 로모델링함 엔티티와애트리뷰트 엔티티 : 실세계에서독립적으로존재하는실체 애트리뷰트 : 엔티티를기술하는속성 Name = John Smith Name = Sunco Oil e 1 Address = 2311 Kirby, Houston, Texas 77001 c 1 Headquarters = Houston Age = 55 HomePhone = 713-749-2630 President = John Smith [ 그림 73] 두개의엔티티 ( 직원 e 1 과회사 c 1 ) 와애트리뷰트및값 7
73 엔터티타입, 엔터티집합, 애트리뷰트, 키 애트리뷰트유형 복합애트리뷰트 단순애트리뷰트 Address StreetAddress City State Zip Number Street ApartmentNumber [ 그림 74] 복합애트리뷰트의계층구조 단일값애트리뷰트 다치애트리뷰트 저장된애트리뷰트 유도된애트리뷰트 8
73 엔터티타입, 엔터티집합, 애트리뷰트, 키 널값 두가지로사용됨 ; 적용할수없음 이라는의미와 알려지지않음 의의미 복합 (composite) 애트리뷰트 {AddressPhone({Phone (AreaCode, PhoneNumber)}, Address(StreetAddress(Number, Street,ApartmentNumber), City, State, Zip ) ) } [ 그림 75] 다치와복합구성요소를가지는복합애트리뷰트 AddressPhone 9
73 엔터티타입, 엔터티집합, 애트리뷰트, 키 엔티티타입 : 엔터티집합 [ 그림 76] 두개체타입과이에속하는개체들 엔터티타입의이름 : 애트리뷰트이름 EMPLOYEE COMPANY Name, Age, Salary Name, Headquarters, President 엔터티집합 ( 외연 ) 애트리뷰터값 e1 (John Smith, 55, 80k) e2 (Fred Brown, 40, 30K) e3 (Judy Clark, 25, 20K) : c1 (Sunco Oil, Houston, John Smith) c2 (Fast Computer, Dallas, Bob King) : : 10
73 엔터티타입, 엔터티집합, 애트리뷰트, 키 [ 그림 77] CAR 엔터티타입 CAR Registration(RegistrationNumber, State), VehicleID, Make, Model, Year, {Color} car1 ((ABC 123, TEXAS), TK629, Ford Mustang, convertible, 1989, {red,black}) car2 ((ABC 123, NEW YORK), WP9872, Nissan Sentra, 2-door, 1992, {blue}) car3 ((VSY 720, TEXAS), TD729, Chrysler LeBaron, 4-door, 1993, {white, blue}) : 11
73 엔터티타입, 엔터티집합, 애트리뷰트, 키 키애트리뷰트 각엔티티마다서로다른값을가지는애트리뷰트 그림 32에서 COMPANY 엔티티타입에서키애트리뷰트는 Name PERSON 엔티티타입의키애트리뷰트는 SocialSecurityNumber 복합키 두개이상의애트리뷰트들이모여서하나의키애트리뷰트역할을하는키 값집합 ( 도메인 ) 각엔티티에서애트리뷰트가가질수있는값들의집합 EMPLOYEE의 Age 애트리뷰트의값집합은? (16부터 70 사이의정수집합 ) 12
73 엔터티타입, 엔터티집합, 애트리뷰트, 키 COMPANY 데이타베이스에대한초기개념적설계 1 엔티티타입 DEPARTMENT는 Name, Number, Location, Manager, ManagerStartDate 애트리뷰트를가진다 Location은유일한다치애트리뷰트이다 Name과 Number는각부서마다고유하기때문에각각키애트리뷰트로지정할수있다 2 엔티티타입 PROJECT는 Name, Number, Locations, ControllingDepartment 애트리뷰트들을가진다 Name과 Number가각각키애트리뷰트이다 3 엔티티타입 EMPLOYEE는 Name, SSN, Sex, Address, Salary, BirthDate, Department, Supervisor 애트리뷰트들을가진다 사용자가사원 Name의각구성요소 (FirstName, MiddleInitial, LastName) 와 Address의각구성요소를참조할것인지의여부를알기위해서사용자와다시협의해야한다 4 엔티티타입 DEPARTMENT는 Employee, DependentName, Sex, BirthDate, Relationship( 사원과의관계 ) 애트리뷰트들을가진다 13
[ 그림 78] COMPANY 데이타베이스를위한엔티티타입들의초기설계 14
74 관계, 관계타입, 역할, 구조적제약조건 관계타입과관계인스턴스 관계타입 ( 관계집합 ) R은엔티티간의연관들의집합임 : 그림 79에서 WORKS_FOR [ 그림 79] 관계 WORKS_FOR에서관계인스턴스 : 7 개 (r1 ~ r7) EMPLOYEE WORKS_FOR DEPARTMENT r1 e1 e2 e3 e4 e5 e6 e7 r2 r3 r4 r5 r6 r7 : d1 d2 d3 15
74 관계, 관계타입, 역할, 구조적제약조건 관계타입의차수 (degree): 관계에참여하고있는엔티티타입의수 이진 (binary) 차수 : [ 그림 79] 의 WORKS_FOR 관계 3진 (ternary) 차수 : [ 그림 710] 3진관계SUPPLY SUPPLIER s1 s2 PART p1 p2 p3 SUPPLY r1 r2 r3 r4 r5 r6 r7 : PROJECT j1 j2 j3 [ 그림 710] 삼진관계 SUPPLY 16
74 관계, 관계타입, 역할, 구조적제약조건 애트리뷰트로서의관계 : 관계는참여엔티티타입의속성으로볼수도있음예 : (EMPLOYEE 의 Department 또는 DEPARTMENT 의 Employees) 역할과순환적 (recursive) 관계 [ 그림 711] Employee 에서의 EMPLOYEE SUPERVISION 순환적관계 SUPERVISION은상사 (1) 와부하 (2) 의두역할로구분할수있음 e1 e2 e3 e4 e5 e6 E7 1 1 2 2 2 2 2 1 2 1 1 1 r1 r2 r3 r4 r5 r6 17
74 관계, 관계타입, 역할, 구조적제약조건 관계타입에서제약조건 카디날리티비율 : 관계인스턴스에참여하는엔티티의개수의비율 ( 이진관계타입에대한카디날리티비율은 1:1, 1:N, M:N) 참여제약조건 : 한엔티티의존재가관계타입을통해연관되어있는다른엔티티에의존하는지의여부 ( 부분참여와전부참여 ) MANAGER 관계 : EMPLOYEE는부분참여하고, DEPARTMENT는전부참여함 EMPLOYEE e1 e2 MANAGES r1 DEPARTMENT d1 e3 r2 d2 e4 e5 r3 : d3 : e6 e7 18
74 관계, 관계타입, 역할, 구조적제약조건 관계타입의애트리뷰트 1:1, 1:N 관계타입의애트리뷰트 MANAGES의 StartDate [ 그림 712], WORKS_FOR의 StartDate[ 그림 79] M:N 관계타입 WORKS_ON의 Hours [ 그림 713] [ 그림 713] M:N 관계 WORKS_ON WORKS_ON EMPLOYEE e1 e2 e3 e4 19 r1 r2 r3 r4 r5 r6 R7 PROJECT p1 p2 p3 p4
75 약한엔티티타입 (Weak Entity Type) 자신의키애트리뷰트가없는엔티티타입 예 : DEPENDENT 엔티티타입 식별 ( 소유 ) 엔티티타입과식별관계 EMPLOYEE 와 DEPENDENT 에서 EMPLOYEE 가식별엔티티타입이며, 두엔티티타입사이의관계를식별관계라고부름 부분키 동일한소유엔티티와연관된약한엔티티집합내의서브집합 ( 예를들어소유엔티티 employee e1 의 dependents set) 내에서서로를구분할수있는애트리뷰트들의집합 ( 예를들어, Dependentname) 약한엔티티는소유엔티티타입의복합속성으로표현될수도있으나다음의경우에는별도의엔티티타입으로표현하는것이바람직함 (1) 엔티티가많은애트리뷰트들을가지고, (2) 식별관계타입외에다른관계타입들에독립적으로참여하는경우 20
76 COMPANY DB 에대한 ER 설계의개선 그림 78에서관계를나타내는애트리뷰트들을관계타입으로변환하여발전시킴 생성되는관계타입들 1 MANAGES : EMPLOYEE와 DEPARTMENT 사이의 1:1 관계타입 2 WORKS_FOR : DEPARTMENT와 EMPLOYEE 사이의 1:N 관계타입 3 CONTROLS : DEPARTMENT와 PROJECT 사이의 1:N 관계타입 4 SUPERVISION : EMPLOYEE( 상사역할 ) 와 EMPLOYEE( 사원역할 ) 사이의 1:N 관계타입 5 WORKS_ON : EMPLOYEE와 PROJECT 사이의 M:N 관계타입 6 DEPENDENTS_OF :EMPLOYEE와 DEPENDENT 사이의 1:N 관계타입 21
77 ER 다이어그램, 명명에관한규칙, 설계에관한사항 [ 그림 714] ER 다이어그램의표기법요약 Symbol Meaning Symbol Meaning 엔티티타입약한엔티티타입관계타입식별관계타입애트리뷰트 E1 R E2 1 N E1 R E2 복합애트리뷰트 유도된애트리뷰트 E1 이 R 에부분참여 E2 가 R 에전체참여 R 에서 E1:E2 의카디날리티비율이 1:N 키애트리뷰트 다치애트리뷰트 R ( 최소값, 최대값 ) E R 에서 E 의참여에대한구조적제약조건 ( 최소값, 최대값 ) 22
77 ER 다이어그램, 명명에관한규칙, 설계에관한사항 스키마에사용된각구조물에대해가능한한그의미를전달할수있는이름선택 복수보다단수이름선택 일반적으로자연어로기술된요구사항에서명사는엔티티타입이름, 동사는관계타입이름으로해석하는것이도움이됨 ER 다이어그램은왼쪽에서오른쪽, 위에서아래로읽기쉽게작성함 스키마설계는반복해서개선하는작업이필요함 한번에완성하기는쉽지않음 다음 TP에서는 ER 다이어그램의또다른표기법소개 23
Fname Minit Lname Number Name Address WORKS_FOR (4,N) (1,1) employee Name department Locations Ssn Bdate (0,N) supervisor Sex EMPLOYEE SUPERVISION Salary StartDate NumberOfEmployees (0,1) manager (1,N) (1,1) worker MANAGES (0,1) supervisee (0,N) employee Hours WORKS_ON (1,N) project Name DEPATMENT departmentmanaged controllingdepartment (0,N) CONTROLS controlled-(1,1project PROJECT [ 그림 715] 모든역할이름들을포함시키고, 관계에대한구조적제약조건들을 ( 최소값, 최대값 ) 형식으로명시한 COMPANY 스키마의 ER 다이어그램 DEPENDENTS_OF dependent (1,1) DEPENDENT Number Location Name Sex BirthDate Relationship 24
78 3 차이상의관계타입 관계타입의차수 : 참여하는엔터티타입의수 이진관계, 3 진관계등 3 진관계예제 : 부품공급 (SUPPLY) (s1, p1, j1) 관계표현 (s1, p1) (p1, j1) (j1,p1) 관계가있어도 (s1,p1,j1) 관계를표현하지못할수도있음 25
78 3 차이상의관계타입 3 진관계예제 : 부품공급 (SUPPLY) ( 계속 ) 이진관계만허용하는시스템의경우, 3개의이진관계를갖는약한엔터티타입으로 3진관계를표현할수있음 26
78 3 차이상의관계타입 3 진관계예제 : 강좌개설 (OFFERS) % OFFERS 내에 (i,s,c) 인스턴스가존재할경우, 세개의이진관계에는 (i,s,), (s,c), (c,i) 가존재해야한다 % 하지만, 세이진관계에 (i,s,), (s,c), (c,i) 가있어도 OFFERS 내에 (i,s,c) 인스턴스가없을수도있다 % CAN_TEACH가 1:1 관계이면, 세개의 2진관계에의해 3진관계 ( 즉, OFFERS) 가유도가능하므로 OFFERS를삭제해도됨 27
78 3 차이상의관계타입 3 진식별관계타입을갖는약한엔터티타입 INTERVIEW 는 2 개의소유엔터티타입을가짐 28
79 요약 엔티티 - 관계 (ER) 모델을사용한모델링개념 엔티티 ( 개체 ) 와관계의정의 스키마레벨에서 ER 모델개념 관계타입의구조적제약조건 ER 다이어그램 29