데이터베이스 (Database) ER- 관계사상에의한관계데이터베이스설계 문양세강원대학교 IT특성화대학컴퓨터과학전공
설계과정 [ 그림 3.1] 작은세계 요구사항들의수정과분석 Functional Requirements 데이타베이스요구사항들 FUNCTIONAL ANALYSIS 개념적설계 ERD 사용 High level ltransaction Specification 개념스키마 ( 데이타모델사상 ) DBMS independent DBMS specific APPLICATION PROGRAM DESIGN TRANSACTION IMPLEMENTATION Application Programs 논리적설계 (DATA MODEL MAPPING) 상용 DBMS 사용 관계스키마사용논리스키마 (In the data model of a specific DBMS) 물리적설계 Internal Schema (For the same DBMS) 내부저장구조인덱스접근경로화일조직 Page 2
COMPANY 데이터베이스의 ER 스키마다이어그램 Page 3
ERD를관계 DB 스키마로사상 어떻게하지? Page 4
사상단계 1: 정규엔티티타입 엔티티타입은릴레이션으로매핑한다. 모든단순애트리뷰트를포함시킨다. 엔티티타입의키중에서하나를릴레이션의기본키로지정한다. [ 단계 1] Strong Entity EMPLOYEE FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY DEPARTMENT DNAME DNUMBER PROJECT PNAME PNUMBER PLOCATION Page 5
사상단계 2: 약한엔티티타입 약한엔티티타입을릴레이션으로매핑한다. 모든단순애트리뷰트를포함시킨다. 소유릴레이션 (owner relation) 의키속성을포함시킨다. 생성된릴레이션의기본키는소유릴레이션의키와약한엔티티타입의 부분키를합쳐서만든다. [ 단계 2] Weak Entity EMPLOYEE FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY DEPARTMENT DNAME DNUMBER PROJECT PNAME PNUMBER PLOCATION DEPENDENT ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP Page 6
사상단계 3: 릴레이션 S와 T의 1:1 관계 외래키접근방식 : 한릴레이션 (S) 을선택하여 T 의기본키를 S 에외래키로포함, S 는완전참여릴레이션을선택하는것이좋음. 관계타입의모든단순애트리뷰트 를 S 에포함시킴. ( 이방식이가장유용, 다음방식은참조만할것 ) 합병된릴레이션접근방식 : 두릴레이션을하나의릴레이션으로통합, 두릴레이션이모두완전참여일때좋은방법 교차참조 / 관계릴레이션접근방식 : S 와 T 를교차참조하는제 3 의릴레이션 R 생성 [ 단계 3] 1:1 Relationship EMPLOYEE FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY DEPARTMENT PROJECT MANAGES DNAME DNUMBER MGRSSN MGRSTARTDATE DNUMBER MGRSSN MGRSTARTDATE PNAME PNUMBER PLOCATION DEPENDENT ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP Page 7
사상단계 4: 릴레이션 S와 T의 1:N 관계 외래키접근방식 : N 측의릴레이션 (S) 을선택하여 1 측의릴레이션 T 의기본키를 S 에외래키로포함, 관계타입의모든단순애트리뷰트를 S 에포함시킴. 교차참조 / 관계릴레이션접근방식 : S 와 T 를교차참조하는제 3 의릴레이션 R 생성 [ 단계4] 1:N Relationship EMPLOYEE FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO DEPARTMENT DNAME DNUMBER MGRSSN MGRSTARTDATE PROJECT CONTROLS PNAME PNUMBER PLOCATION DNUM PNUMBER DNUM DEPENDENT ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP Page 8
사상단계 5: 릴레이션 S와 T의 M:N 관계 N:M 이진관계는별도의릴레이션 ( 이를관계릴레이션이라고부름 ) 으로생성하고, 관계에참여하는두릴레이션의기본키를각각참조하는외래키로애트리뷰트를 구성한다. 이때두외래키가관계릴레이션의기본키를형성한다. [ 단계5] M:N Relationship EMPLOYEE FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO DEPARTMENT DNAME DNUMBER MGRSSN MGRSTARTDATE PROJECT PNAME PNUMBER PLOCATION DNUM DEPENDENT ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP WORKS_ON ESSN PNO HOURS Page 9
사상단계 6: 다치애트리뷰트 릴레이션 R 의다치애트리뷰트는 R 의기본키를포함하는새로운릴레이션으로 매핑된다. 새로운릴레이션의키는 R 의기본키와다치애트리뷰트의조합이다. [ 단계6] Multivalued Attribute EMPLOYEE FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO DEPARTMENT DNAME DNUMBER MGRSSN MGRSTARTDATE DEPT_LOCATION DNUMBER DLOCATION PROJECT PNAME PNUMBER PLOCATION DNUM DEPENDENT ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP WORKS_ON ESSN PNO HOURS Page 10
사상단계 7: n 차관계 n 차관계는관계에참여하는 n 개릴레이션의키들로구성되는관계릴레이션으로 매핑된다. 관계릴레이션의애트리뷰트들은참여릴레이션의기본키를참조하는 외래키들과관계속성 ( 들 ) 으로구성된다. Page 11
사상단계요약 ER Model Entity Type Relational Model Entity relation 1:1,1:N 1:N relationship type Foreign Key (or relationship relation) N:M relationship type Relationship relation and two foreign keys N ary relationship type Relationship relation and n foreign keys Simple attribute Composite attribute Multi valued attribute Value set Key attribute Attribute Set of simple component attribute Relation and foreign key Domain Primary (or secondary) key Page 12