제 3 장 관계 데이터 모델 1. 개요 2. 기본 개념 3. 관계 데이터 제약
용어 정의 속성 (Attribute) 도메인 (Domain) 투플 (Tuple) 릴레이션 (Relation) Simple Attribute vs. Composite Attribute 속성 (Attribute) Single-valued Attribute vs. Multivalued Attribute Null Attribute 도메인 (Domain) Derived Attribute 투플 (Tuple) 단순 도메인 (Simple Domain) 복합 도메인 (Complex Domain) 릴레이션 (Relation) 릴레이션 스킴(Relation Scheme) 데이터베이스 스키마 (Database Schema) 릴레이션 스키마 (Relation Schema) 릴레이션 내포 (Relation Intension) 카디널리티 (Cardinality) 릴레이션 인스턴스(Relation Instance) 데이터베이스 인스턴스 (Database Instance) 릴레이션 차수 (Degree) 릴레이션 릴레이션 외연 (Relation Extension) 키 (Key)
1. 개요 1970년도 E. F. Codd 릴레이션 구조와 구성 요소 - 관계 데이터 모델은(Relational Data Model) 열(column)과 행(row)으로 이루어진 테이블(릴레이션)과 수학적으로 정의된 연산들로 구성된다. 릴레이션 구조와 구성 요소 생일 (S_BIRTH) 학번 (S_NO) 9711001 9812045 9913051 9914021 이름 (S_NAME) 엄두섭 한근희 이동석 윤재형 학과 (DEPT) 컴퓨터 교육 국어 미술 학년 (YEAR) 3 2 1 년 1974 1975 1976 월 (MONTH) 5 10 12 8 일 (DATE) 9 7 17 INT(7) CHAR(10) CHAR(6) INT(1) INT(2) 학생(STUDENT) 카디널리티 (= 4) 투 플 릴레이션 인스턴스 스킴 단순속성 복합속성 단순 도메인 복합 도메인 INT(6) 릴레이션 차수 (= 7) 키
2. 기본 개념 관계 데이터 모델 vs 파일 시스템 관계데이터모델 파일 시스템 비고 릴레이션 파일(file) 테이블 투플(tuple) 레코드(record) 행(row) 속성(attribute) 필드(field) 열(column) 릴레이션 차수 속성의 개수 카디널리티 투플의 개수
릴레이션 스킴(Relation Scheme) 릴레이션 인스턴스(Relation Instance) 2.1 릴레이션 – 2.1.1 릴레이션 구성 릴레이션 스킴 - 릴레이션 이름(R) 과 릴레이션을 구성하는 속성 이름(A1, A2, A3, . . . An) 들의 합으로 표현하며, R (A1, A2, A3, . . . An) 과 같이 표현한다. 릴레이션 인스턴스 - 어느 한 시점에 릴레이션 R에 포함되는 투플(tuple)의 집합을 의미하는 것으로 실제 값이라고도 함. 릴레이션(Relation) 릴레이션 스키마 (Relation Schema) 릴레이션 내포 (Relation Intension) 릴레이션 스킴(Relation Scheme) 릴레이션 릴레이션 외연 (Relation Extension) 릴레이션 인스턴스(Relation Instance) 데이터베이스 스키마 (Database Schema) 데이터베이스 인스턴스 (Database Instance)
2.1.2 릴레이션 특성 한 릴레이션에는 중복된 투플이 존재하지 않는다. 한 릴레이션에 저장된 투플들 간에는 순서가 없다. 한 릴레이션을 구성하는 속성들 간에는 순서가 없다. 모든 속성 값은 원자 값(atomic value)이다.
2.2 속성 속성(attribute)이란 릴레이션의 열(column)이며, 파일 시스템의 필드(field)에 해당한다. 속성의 분류 속성 (Attribute) 단순 속성 (Simple Attribute) vs. 복합 속성 (Composite Attribute) 단일 값 속성 (Single-valued Attribute) vs. 다중 값 속성 (Multi-valued Attribute) 널 속성 (Null Attribute) 유도 속성 (Derived Attribute)
속성의 정의 단순 속성 : 속성값이 하나의 의미만을 가지는 것. 복합 속성 : 속성값이 여러 의미를 포함하는 것. 단일 값 속성 : 원자값인 것으로 하나의 값만 존재하는 것 다중 값 속성 : 속성 값이 여러 개 존재할 수 있는 것. 널 속성 : 속성 값이 널 값(null value)인 것. 유도 속성 : 새롭게 유도해 낸 속성.
Single-valued Attribute Multivalued Attribute 속성의 종류 Simple Attribute vs. Composite Attribute 학생 학생 이름 이름 성 학생 주소 시/도 구/군 읍/면/동 번지 우편번호 Entity Set Composite Attribute Component Single-valued Attribute vs. Multivalued Attribute 학생 번호 학생 전화 번호 Null Attribute A null value is used when an entity does not have a value for an attribute Null can designate that an attribute value is unknown An unknown value may be either missing or not known. Derived Attribute 학생 입력 날짜 : base or stored attribute 재학 기간 = 현재 날짜 - 입학 날짜
2.2.2 복합 속성 복합 속성 구성 예 Component Attribute Entity Set 학생 Composite 2.2.2 복합 속성 복합 속성 구성 예 Entity Set 학생 Composite Attribute 생일 학생 이름 학생 주소 Component Attribute 년 월 일 이름 성 시/도 구/군 읍/면/동 번지 우편번호
2.2.5 널 속성 널 속성의 개념 학생(STUDENT) 학번 (S_NO) 이름 (S_NAME) 학과 (DEPT) 학년 2.2.5 널 속성 널 속성의 개념 학생(STUDENT) 학번 (S_NO) 이름 (S_NAME) 학과 (DEPT) 학년 (YEAR) 생일 (S_BIRTH) 년 (YEAR) 월 (MONTH) 일 (DATE) 9711001 엄두섭 컴퓨터 3 1974 5 8 9812045 한근희 교육 2 1975 10 9 9913051 이동석 국어 1 1976 12 7 9914021 윤재형 미술 1 1976 8 17 9615051 윤재형 통신 null 1973 9 30 새로이 입력된 투플 널 값을 갖는 널 속성 아직 학년이 결정되지 않았다는 의미를 지님.
2.2.6 유도 속성 유도 속성의 개념 학생(STUDENT) 학번 (S_NO) 이름 (S_NAME) 학과 (DEPT) 학년 2.2.6 유도 속성 유도 속성의 개념 학생(STUDENT) 학번 (S_NO) 이름 (S_NAME) 학과 (DEPT) 학년 (YEAR) 생일 (S_BIRTH) 년 (YEAR) 1974 1975 1976 월 (MONTH) 5 10 12 8 일 (DATE) 9 7 17 1973 30 나이 (AGE) 9711001 엄두섭 컴퓨터 3 나이 계산 프로그램 (현재날짜 – 생일) 27 9812045 한근희 교육 2 26 9913051 이동석 국어 1 25 9914021 윤재형 미술 1 25 9615051 윤재형 통신 null 28 기본 속성 또는 저장 속성 유도 속성
2.3 도메인 도메인(domain) 은 특정 속성이 가질 수 있는 원자 값들의 집합을 가리킴 학번 (S_NO) 생일 2.3 도메인 도메인(domain) 은 특정 속성이 가질 수 있는 원자 값들의 집합을 가리킴 학번 (S_NO) 생일 (S_BIRTH) 이름 (S_NAME) 학과 (DEPT) 학년 (YEAR) INT(7) INT(6) CHAR(10) INT(1) 속성 이름 속성 유형 서울특별시 부산광역시 대구광역시 광주광역시 대전광역시 인천광역시 … 컴퓨터공학 컴퓨터과학 컴퓨터교육 정보공학 통신공학 수학 수학교육 도메인 도메인이 아님
2.4 키(Key) 키(Key)는 릴레이션의 투플을 유일하게 식별할 수 있는 속성의 집합. 유일성 (Uniqueness) - 속성의 집합인 키의 내용이 릴레이션내에서 유일하다는 특성. 최소성(Minimality) - 속성의 집합인 키가 릴레이션의 모든 투플을 유일하게 식별하기 위하여 꼭 필요한 속성들로 구성되는 것.
관계 데이터 모델의 키 분류 후보키 : 유일성과 최소성을 만족하는 키. 슈퍼키 : 유일성은 있으나 최소성은 없는 키. 기본키 : 후보키들중 하나를 선정해 사용하는 것 대체키 : 후보키를 대체할 수 있는 키. 외래키 : 한 릴레이션의 속성의 집합이 다른 릴레이션에서 기본 키로 이용되는 것. 키 (Key) 후보키 (Candidate key) 슈퍼키 (Super key) 기본키 (Primary key) 대체키 (Alternate key) 외래키 (Foregine key)
학생 릴레이션의 지도교수 속성은 교수 릴레이션에서 기본키로 사용된다. 외래키의 개념 김수철 이기문 박동진 이름 P_NAME 정찬우 김정길 강재우 이수자 이길녀 S_NAME 서울… 경기도… 인천… 대전… 주소 S_ADDRESS 19800505 19801215 19801119 19791205 19791130 생년월일 S_BIRTH P0001 P0002 P0003 : 교 수 부교수 T102 T103 T302 4444 4445 4555 교수번호 P_NO 직급 GRADE 연구실 ROOM_NBR 전화 P_TEL P_ADDRESS 19520401 19540605 19610105 P_BIRTH 00880301 00890901 00910301 입사일 JOIN_DATE 9911001 9912002 9911003 9813009 9811015 컴퓨터공학과 정보과학과 정보통신학과 2 3 023355519 03463355411 0325491115 0428601144 023386634 학번 S_NO 학과 DEPT 학년 YEAR S_TEL P0015 P0022 지도교수 ADVISOR 교수(PROFESSOR) 학생(STUDENT) 30 29 15 호봉 PAY_STEP 학생 릴레이션의 기본키 교수 외래키 학생 릴레이션의 지도교수 속성은 교수 릴레이션에서 기본키로 사용된다.
- 릴레이션의 기본키 속성은 절대 널 값을 가질 수 없는 것. 3. 관계 데이터 제약 개체 무결성 제약 - 릴레이션의 기본키 속성은 절대 널 값을 가질 수 없는 것. 참조 무결성 제약 - 릴레이션의 외래키 속성은 참조할 수 없는 값을 가질 수 없는 것.
관계 데이터 제약 개념 학생(STUDENT) 교수(PROFESSOR) 9911001 9912002 9911003 9813009 null : 김수철 이기문 박동진 이름 P_NAME 정찬우 김정길 강재우 이수자 이길녀 S_NAME 서울… 경기도… 인천… 대전… 주소 S_ADDRESS P0001 P0002 P0003 교 수 부교수 교수번호 P_NO 직급 GRADE 00880301 00890901 00910301 입사일 JOIN_DATE 학번 S_NO P0015 이수정 P0022 지도교수 ADVISOR 교수(PROFESSOR) 학생(STUDENT) 30 29 15 호봉 PAY_STEP 개체 무결성 제약 위반 교수 릴레이션의 기본키 학생 외래키 참조 무결성