FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO PNO John B Smith 123456789 09-Jan-55 731 Fondren, Houston, TX M 30000 333445555 5 1, 2 Franklin T Wong 333445555 08-Dec-45 638 Voss, Houston, TX M 40000 888665555 5 2, 3, 10, 20 Alicia J Zelaya 999887777 19-Jul-58 3321 Castle, Spring, TX F 25000 987654321 4 30, 10 Jennifer S Wallace 987654321 20-Jun-31 291 Berry, Bellaire, TX F 43000 888665555 4
Ramesh K Narayn 666884444 15-Sep-52 975 Fire Oak, Humble, TX M 38000 333445555 5
Employee
3. Employee와 Project 관계를 필드(PNO 혹은 EMPs)로 표현하면 어떤 문제 가 발생하는가 ? => 집합값 속성 => 별도의 테이블로 관계를 저장함
PNAME PNUMBER PLOCATION DNUM EMPs
ProductX 1 Bellaire 5 123456789, 453453453
ProductY 2 Sugarland 5 123456789, 453453453, 333445555
ProductZ 3 Houston 5
Computerization 10 Stafford 4
Reorganization 20 Houston 1
Ramesh K Narayn 666884444 15-Sep-52 975 Fire Oak, Humble, TX M 38000 333445555 5 Joyce A English 453453453 31-Jul-62 5631 Rice, Houston, TX F 25000 333445555 5 Ahmad V Jabbar 987987987 29-Mar-59 980 Dallas, Houston, TX M 25000 987654321 4 James E Borg 888665555 10-Nov-27 450 Stone, Houston, T M 55000 null 1
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO John B Smith 123456789 09-Jan-55 731 Fondren, Houston, TX M 30000 333445555 5 Franklin T Wong 333445555 08-Dec-45 638 Voss, Houston, TX M 40000 888665555 5 Alicia J Zelaya 999887777 19-Jul-58 3321 Castle, Spring, TX F 25000 987654321 4 Jennifer S Wallace 987654321 20-Jun-31 291 Berry, Bellaire, TX F 43000 888665555 4 Ramesh K Narayn 666884444 15-Sep-52 975 Fire Oak, Humble, TX M 38000 333445555 5
Employee
123456789ESSN PNO1 HOURS32.5 123456789 2 7.5666884444 3 40
453453453 1 20
453453453 2 20
333445555 2 10
333445555 3 10
333445555 10 10 333445555 20 10 999887777 30 30
Works-On
3. Employee와 Project 관계 (n-m 관계)는 별도의 테이블 (관계 테이블)로 표현
PNAME PNUMBER PLOCATION DNUM
ProductX 1 Bellaire 5
ProductY 2 Sugarland 5
ProductZ 3 Houston 5
Computerization 10 Stafford 4
Reorganization 20 Houston 1
Newbenefits 30 Stafford 4
Project
Joyce A English 453453453 31-Jul-62 5631 Rice, Houston, TX F 25000 333445555 5 Ahmad V Jabbar 987987987 29-Mar-59 980 Dallas, Houston, TX M 25000 987654321 4 James E Borg 888665555 10-Nov-27 450 Stone, Houston, T M 55000 null 1
999887777 30 30 999887777 10 10 987987987 10 35
987987987 30 5
987654321 30 20 987654321 20 15 888665555 20 null
즉,
N-1 관계는 N-side 테이블의 필드로 표현하고,
N-M 관계는 별도의 테이블로 표현한다.
요약 - 관계의 표현
- Employee & Project 는 N-M 관계이며, 관계정보를 별도의 테이블(Works_On)에
e1
r1 r2 r3
p1 p2
EMPLOYEE
WORKS_ON
PROJECT
e2 e3 e4 . . .
r3 r4 r5 r6 R7
..
p2
p3
p4
.
.
r1 r2 r3 r4 r5 r6 s1
s2 . . .
p1 p2 p3
j1 j2 j3 . . .
SUPPLIER
PART
PROJECT SUPPLY
4. 3 진관계의 표현 : 별도의 테이블로 표현 (관계 테이블)
2진 관계와의 차이점 ?
r7 : p3
. . . Supplier
sname address phone 홍길동 대전 010-2334-3456 신윤복 서울 010-3456-4455
Part
pname weight price
볼트 100 30
너트 200 50
Project
SPJ4대강사업 3000금강
신공항건설 2500가덕도
DB 구축 456충북대
Supply
sname pname jname qty
홍길동 볼트 4대강사업 5000
홍길동 볼트 DB구축 400
신윤복 너트 4대강사업 3000
신윤복 볼트 4대강사업 400
신윤복 너트 DB구축 4000
관계속성
DNUMBER DLOCATION
1 Houston
Dept_Locations (set value)
Department
DNAME DNUMBER MGRSSN MGRSTARTDATE Research 5 333445555 22-May-78 Administration 4 987654321 01-Jan-85
Headquarters 1 888665555 19-Jun-71
5. 집합값 속성의 표현
- 테이블의 각 cell 에는 단일값만 표현할 수 있음
- 집합값 속성은 두 개의 테이블로 분리하여 표현함으로써 집합값 속성을 제거함
4 Stafford
5 Bellaire
5 Sugarland
5 Houston
Research 5 333445555 22-May-78
{ Bellaire, Sugarland, Houston }
location
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO John B Smith 123456789 09-Jan-55 731 Fondren, Houston, TX M 30000 333445555 5 Franklin T Wong 333445555 08-Dec-45 638 Voss, Houston, TX M 40000 888665555 5 Alicia J Zelaya 999887777 19-Jul-58 3321 Castle, Spring, TX F 25000 987654321 4 Jennifer S Wallace 987654321 20-Jun-31 291 Berry, Bellaire, TX F 43000 888665555 4 Ramesh K Narayn 666884444 15-Sep-52 975 Fire Oak, Humble, TX M 38000 333445555 5 Joyce A English 453453453 31-Jul-62 5631 Rice, Houston, TX F 25000 333445555 5
Employee
6. Weak Entity Type
Dependent
ESSN DEPENDENT
_NAME SEX BDATE RELATIONSHIP
333445555 Alice F 05-Apr-76 DAUGHTER 333445555 Theodore M 25-Oct-73 SON
333445555 Joy F 03-May-48 SPOUSE 987654321 Abner M 29-Feb-32 SPOUSE 123456789 Michael M 01-Jan-78 SON
123456789 Allice F 32-DEC-78 DAUGHTER 123456789 Elizabeth F 05-May-57 SPOUSE
Ahmad V Jabbar 987987987 29-Mar-59 980 Dallas, Houston, TX M 25000 987654321 4 James E Borg 888665555 10-Nov-27 450 Stone, Houston, T M 55000 null 1
Dependent는 Employee와 함께
생성되고 삭제됨 (Weak entity)
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO
EMPLOYEE
DNAME DNUMBER MGRSSN MGRSTARTDATE
DEPARTMENT
DNUMBER DLOCATION
DEPT_LOCATION
최종 설계된 관계형 데이터베이스
[그림 4.5] 기본키에 밑줄을 그은 COMPANY 관계 데이터베이스 스키마
PNAME PNUMBER PLOCATION DNUM
PROJECT
ESSN PNO HOURS
WORKS_ON
ESSN DEPARTMENT_NAME SEX
DEPENDENT
BDATE RELATIONSHIP
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO EMPLOYEE
DNAME DNUMBER MGRSSN MGRSTARTDATE DEPARTMENT
DNUMBER DLOCATION DEPT_LOCATION
PROJECT
외래키는 동일한 릴레이션의 애트리뷰트를 참조할 수도 있음
[그림 4.7] COMPANY 데이터베이스 스키마에 표시된 참조 무결성 제약 조건들
PNAME PNUMBER PLOCATION DNUM PROJECT
ESSN PNO HOURS WORKS_ON
ESSN DEPARTMENT_NAME SEX DEPENDENT
BDATE RELATIONSHIP
•
제약조건은 모든 릴레이션 인스턴스들이 만족해야 하는 조건임
•
주요 제약조건
– 도메인 제약 조건(domain constraints)
– 키 제약조건(key constraints) : 기본키, 후보키
– 엔티티 무결성 제약조건(entity integrity constraints) : 기본키는 널값을 불허함
관계 제약조건
– 참조 무결성 제약조건(referential integrity constraints)
Department
DNAME DNUMBER MGRSSN MGRSTARTDATE Research 5
33344555522-May-78 Administration 4
98765432101-Jan-85 Headquarters 1
88866555519-Jun-71
FNAME MINIT LNAME
SSN
BDATEJohn B Smith 123456789 09-Jan-55
Franklin T Wong 333445555 08-Dec-45 Alicia J Zelaya 999887777 19-Jul-58 Jennifer S Wallace 987654321 20-Jun-31
Employee
Date 타입 유일한 값
(키 제약조건)
참조무결성 제약조건
외래키 주키
• 릴레이션에 대한 기본 갱신 연산들
– 삽입, 삭제, 수정
• 갱신 연산을 실행하는 경우 스키마에 정의된 무결성 제약 조건을 위반하지 않아야 함
• 삽입연산 – 네가지 제약 조건을 위반할 수 있음
– 삽입되는 투플 t에서 애트리뷰트의 값이 도메인에 없으
관계 제약조건
– 삽입되는 투플 t에서 애트리뷰트의 값이 도메인에 없으 면 도메인 제약 조건을 위반함
– t에서 기본 키의 값이 다른 투플에서 이미 존재한다면 키 제약 조건을 위반하며, 널이면 엔티티 제약 조건을 위반 함
– t에서 외래 키의 값이 참조되는 릴레이션의 키 값으로 존 재하지 않는다면 참조 제약 조건을 위반함
• 제약 조건을 위반하면 그 삽입을 거부하거나 그 위반
사실을 사용자에게 알려야 함
• 삭제연산
– 투플이 삭제되는 경우 다른 테이블에서 참조하고 있는지 검사 하여 그렇지 않는 경우에만 삭제함 (참조 무결성)
• 삭제 연산이 참조 무결성 제약 조건을 위반하는 경우 취할 수 있는 세가지 옵션
– 삭제를 거부
관계 제약조건
– 삭제를 거부
– 삭제되는 투플을 참조하는 투플들까지 모두 삭제 (연쇄 삭제) – 삭제되는 투플을 참조하는 투플에서 외래키 값을 널로 바꾸거
나 다른 유효한 투플을 참조하도록 변경
• 위의 세가지 옵션 중 사용자가 응용의 특성에 적합한 것을 선택하도록 하는 것이 바람직함