관계 데이터 모델과
Chap.3
관계 데이터 모델과
관계 데이터베이스
관계모델의 개념
예제를 통한 관계 데이터베이스 설계 내 용
예제를 통한 관계 데이터베이스 설계
관계 제약조건
관계 모델은 E.F. CODD가 1972년 제안한 데이터 모델로써 오늘날 대부분의 데이터베이스 관리시스템에서 지원하는 데이터 모델임
관계 모델은 실세계 데이터를 행과 열로 된 표(테이블, 릴레이션) 형태로 저장하고, 한 테이블의 필드 값을 이용하여 다른 테이블에 관련된 데이터를 찾는 식으로 검색하는 데이터 모델
관계모델의 개념
실세계 데이타
(예) Student(Name, SSN, HomePhone, Address, OfficePhone, Age, Gpa)
관계모델의 개념
STUDENT
Benjamin Bayer Katherine Ashly
305-61-2435 381-62-1245
Name SSN HomePhone Address OfficePhone Age Gpa
373-1616 375-4409
2918 BlueBonnet Lane 125 Kirby Road
null null
19 18
3.21 2.89
릴레이션의 이름 애트리뷰트 (필드, 속성) 애트리뷰트 이름
Katherine Ashly Dick Davidson Charles Cooper Barbara Benson
381-62-1245 422-11-2420 489-22-1100 533-69-1238
375-4409 null 376-9821 839-8461
125 Kirby Road 3452 Elgin Road 265 Lark Lane 7384 Fontana Lane
null 749-1253 749-1253
null
18 25 28 19
2.89 3.53 3.93 3.25
튜플
애트리뷰트의 값
Primary Key
관계 모델에서− 데이터베이스는 테이블(릴레이션)들의 집합 (모임)으로 표현되며,
− 테이블은 튜플 (행, 레코드)들의 집합으로 표현되고,
− 튜플은 애트리뷰트 (컬럼, 필드, 혹은 속성)들로 구성됨
• 각 학생은 레코드로 표시되고, 레코드의 각 필드는 단일값을 가진다.
• 각 테이블에는 모든 레코드에서 서로 다른 값을 가지는 필드(들)가 있어햐 함 : 주 키 (primary key)
• 릴레이션의 특징
• 릴레이션에서 튜플의 순서는 의미가 없음
• 집합에서 원소 순서가 무의미한 것과 마찬가지
• 각 튜플 내에서의 (필드) 값들의 순서
• n-튜플은 n 개 값의 리스트이며, 한 투플 내에서 값들의 순서는 중요함 (리스트에서 원소의 순서는 중요한 의미를 가짐)
관계모델의 개념
중요함 (리스트에서 원소의 순서는 중요한 의미를 가짐)
• 튜플 내의 필드값
• 나눌 수 없는 원자 값들(atomic values)로 한정하며, 집합 속성이나 복합속성은 허용하지 않음 (별도의 테이블로 저장함)
• 값을 알 수 없거나 해당되는 값이 없을 때에는 null 이라는 특수 값을 사용함
1 a
2 b
3 c
4 d
2 b
1 a
3 c
4 d
==
제약조건
– 도메인 제약조건
• 각 필드의 값은 반드시 그 필드의 도메인에 속하는 원자값 이어야 한다.
• 예를들어, Student 테이블의 Gpa 필드의 값은 4.5 이내의 실수값이어야 한다.
– 엔티티 제약조건
• 테이블마다 투플을 서로 구분할 수 있는 필드가 존재하며, 이 필드를 Primary key (기본 키)라고 한다.
• 기본 키 값은 널 값이 될 수 없다는 조건을 엔티티 무결성 제약조건이라고 한다.
관계모델의 개념
• 기본 키 값은 널 값이 될 수 없다는 조건을 엔티티 무결성 제약조건이라고 한다.
• 예를들어, Student 테이블에서 SSN 필드는 각 학생들을 구분하는 필드이다.
– 참조 무결성 제약조건
• 한 테이블의 필드 값은 다른 테이블의 기본 키 값을 참조할 때 두 테이블 사이에 참조무결성 제약조건이 있다고 한다.
• 예를들어, Student 테이블의 dno 필드 값은 Department 테이블의 dnumber 필드 값을 가져야 한다.
• 이 때, Student 테이블의 dno 필드를 외래키(foreign key)라고 부른다.
dno dnumber
Student Department
실세계 데이터를 어떻게 테이블(들)로 모델링하는가 ?
– 실세계 정보를 분석한 후 몇 개의 테이블로 구성되는가 ?
• 극단적으로 하나의 테이블에 모든 정보를 저장할 수도 있음
• Universal Table
– 각 테이블의 구조 (필드와 키)는 어떻게 되는가 ?
관계 데이터베이스 설계
실세계 데이타
Τ1 Τ2
Τ3
Τ4 Τ5
Departments Employees
Projects
회사
다음과 같은 회사의 데이터베이스를 구축하는 문제를 생각하자.
몇 개의 테이블 ? 각 테이블의 구조는 ?
이름, 주민번호, 생일, 주소, 성별, 연봉, 상사, 근무부서
부서명, 부서번호, 관리자, 관리시작일
예제를 통한 관계 데이터베이스 설계
Projects
사업−1
Dependents
이름, 성별, 생일, 관계, 부모주민번호
프로젝트 이름, 프로젝트 번호, 위치, 관리부서
Departments Employees
Projects 사업−1 Dependents
회사
1. Employee와 Department를 하나의 테이블로 표현
Employee 정보 Department 정보
FNAME MINIT LNAME
SSN
BDATE ADDRESS SEX SALARY SUPERSSN dnamedno
mgrssn mgr-str-date John B Smith 123456789 09-Jan-55 731 Fondren,Houston, TX M 30000 333445555 Research 5 333445555 22-May-78
Franklin T Wong 333445555 08-Dec-45 638 Voss, Ho
uston, TX M 40000 888665555 Research 5 333445555 22-May-78
Alicia J Zelaya 999887777 19-Jul-58 3321 Castle,
Spring, TX F 25000 987654321 Administration 4 987654321 01-Jan-85 Jennifer S Wallace 987654321 20-Jun-31 291 Berry, Bel
laire, TX F 43000 888665555 Administration 4 987654321 01-Jan-85 Ramesh K Narayn 666884444 15-Sep-52 975 Fire Oak,
Humble, TX M 38000 333445555 Research 5 333445555 22-May-78
Joyce A English 453453453 31-Jul-62 5631 Rice, Ho
uston, TX F 25000 333445555 Research 5 333445555 22-May-78
Ahmad V Jabbar 987987987 29-Mar-59 980 Dallas, H
ouston, TX M 25000 987654321 Administration 4 987654321 01-Jan-85 James E Borg 888665555 10-Nov-27 450 Stone, H
ouston, T M 55000 null Headquarters 1 888665555 19-Jun-71
데이터 중복 !
− 공간 낭비
− 데이터 일치성 문제
FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO John B Smith 123456789 09-Jan-55
731 Fondren, Houston, TXM 30000 333445555 5 Franklin T Wong 333445555 08-Dec-45
638 Voss, Houston, TXM 40000 888665555 5 Alicia J Zelaya 999887777 19-Jul-58
3321 Castle, Spring, TXF 25000 987654321 4 Jennifer S Wallace 987654321 20-Jun-31
291 Berry, Bellaire, TXF 43000 888665555 4
Employee
2. Employee 와 Department 를 분리하여 두 개의 테이블로 표현 (테이블 분할, 정규화) Employee와 Department는 N:1 관계 => n-side의 필드(DNO)로 관계 정보를 표현함
키 외래키 (관계정보)
Ramesh K Narayn 666884444 15-Sep-52
975 Fire Oak, Humble, TXM 38000 333445555 5 Joyce A English 453453453 31-Jul-62
5631 Rice, Houston, TXF 25000 333445555 5 Ahmad V Jabbar 987987987 29-Mar-59
980 Dallas, Houston, TXM 25000 987654321 4 James E Borg 888665555 10-Nov-27
450 Stone, Houston, TM 55000 null 1
Department
DNAME DNUMBER MGRSSN MGRSTARTDATE Research 5 333445555 22-May-78 Administration 4 987654321 01-Jan-85 Headquarters 1 888665555 19-Jun-71
키
요약 - 관계의 표현
- Employee & Department는 N-1 관계임
- N-side Table인 Employee 테이블의 DNO 필드에 관계 정보를 표현함