05. Relational DBMS 명지대학교 ICT 융합대학 김정호
관계 데이터 모델 개요 관계 데이타 모델(relational data model)의 탄생 관계 데이타 모델의 특성 1970년에 IBM의 E. F. Codd에 의해 제안 관계 데이타 모델의 특성 수학에서의 릴레이션(relation)과 집합(set) 이론에 기초 일반 사용자는 테이블(table) 형태로 생각 통상적인 테이블의 개념과는 다름 관계 데이타 모델의 직관적인 이해에 도움 테이블의 열(column) = 필드(field) 혹은 아이템(item) ≒ 관계 데이타 모델의 애트리뷰트(attribute) 테이블의 행(row) = 레코드(record) ≒ 관계 데이타 모델의 투플(tuple)
관계 데이터 모델 개요 테이블(table) ≒ 릴레이션(relation) 도메인(domain) 애트리뷰트(attribute) 애트리뷰트가 취할 수 있는 값(value)들의 집합 애트리뷰트(attribute) 도메인의 역할(role) 이름 한 릴레이션 내에서 애트리뷰트 이름들은 모두 달라야 함 ☞ Note 애트리뷰트 이름과 도메인 이름은 같을 수도 있음 역할 이름을 도메인 이름으로 지정
관계 데이터 모델 개요 학생(STUDENT) 테이블 : 릴레이션 학번 (Sno) 이름 (Sname) 학년 (Year) 학과 (Dept) 100 나 수 영 4 컴퓨터 200 이 찬 수 3 전기 300 정 기 태 1 컴퓨터 400 송 병 길 4 컴퓨터 500 박 종 화 2 산공
릴레이션의 개념 STUDENT 릴레이션의 정의 도메인 명세가 생략된 STUDENT 릴레이션 정의 DCL DOMAIN DSNO INTEGER; DCL DOMAIN NAME CHAR(10); DCL DOMAIN DYEAR INTEGER; DCL DOMAIN DEPT CHAR(6); DCL RELATION STUDENT (Sno DOMAIN DSNO, Sname DOMAIN NAME, Year DOMAIN DYEAR, Dept DOMAIN DEPT); DCL RELATION STUDENT (Sno INTEGER, Sname CHAR(10), Year INTEGER, Dept CHAR(6));
STUDENT 릴레이션 예 학번 (Sno) 이름 (Sname) 학년 (Year) 학과 (Dept) 100 나 수 영 4 컴퓨터 INTEGER . . DSNO CHAR(10) . . NAME INTEGER . . DYEAR CHAR(6) . . DEPT 도메인 애트리뷰트 학생 (STUDENT) 릴레이션 스키마 학번 (Sno) 이름 (Sname) 학년 (Year) 학과 (Dept) 학생 (STUDENT) 릴레이션 100 나 수 영 4 컴퓨터 200 이 찬 수 3 전기 투플 인스턴스 300 정 기 태 1 컴퓨터 400 송 병 길 4 컴퓨터 500 박 종 화 2 산공
릴레이션(Relation) R 수학적 정의 개념적 정의 릴레이션 R : 카티션 프로덕트(Cartesian product)의 부분집합 R ⊆ D1 × D2 × ... × Dn , 단 Di : i번째 도메인 즉 n-투플, <d1, d2, ... , dn>의 집합 di ∈ Di, i = 1,2, ... ,n n : R의 차수(degree :1차, 2차, 3차, ... , n차) 투플의 수 : 카디널리티(cardinality) 개념적 정의 릴레이션 스키마 + 릴레이션 인스턴스 학번 ⅹ과목번호 (Sno ⅹ Cno) <100,C412> <100,C123> <100,C312> <200,C412> <200,C123> <200,C312> 학번 (Sno) 과목번호 (Cno) 100 200 C412 C123 C312
Example 대학(University) 관계 데이타베이스 학번 (Sno) 이름 (Sname) 학년 (Year) 학과 (Dept) 100 나 수 영 4 컴퓨터 200 이 찬 수 3 전기 300 정 기 태 1 400 송 병 길 500 박 종 화 2 산공 학생 (STUDENT) 과목번호 (Cno) 과목이름 (Cname) 학점 (Credit) 학과 (Dept) C123 프로그래밍 3 컴퓨터 C312 자료 구조 C324 화일 구조 C413 데이타베이스 E412 반 도 체 전자 담당교수 (PRname) 김성국 황수관 이규찬 이일로 홍봉진 과목 (COURSE)
Example 대학(University) 관계 데이타베이스(cont’d) 학번 (Sno) 100 200 300 400 500 과목번호 (Cno) C413 E412 C123 C312 C324 성적 (Grade) A B C 중간성적 (Midterm) 90 95 85 75 80 65 기말성적 (Final) 등록 (ENROL)
데이타베이스 키(key) 키(key) 후보 키(candidate key) 각 투플을 유일하게 식별할 수 있는 애트리뷰트 집합(set of attributes) 후보 키(candidate key) 릴레이션 R(A1, A2, ..., An)에 대한 애트리뷰트 집합, K({Ai , Aj , ..., Ak})로서 다음 두 성질을 만족 유일성(uniqueness) 각 투플에 대해 K({Ai , Aj , ... , Ak})의 값(< vi , vj , ... , vk >)은 유일 최소성(minimality) K는 각 투플을 유일하게 식별하는데 필요한 애트리뷰트만 포함
데이타베이스 키 슈퍼 키 (super key) 기본 키 (primary key) 대체 키 (alternate key) 데이타베이스 키 슈퍼 키 (super key) 유일성(uniqueness)은 만족하지만 최소성(minimality)은 만족하지 않는 애트리뷰트의 집합 기본 키 (primary key) 후보 키(candidate key) 중에서 지정된 하나의 키 데이타베이스 설계자가 지정 각 투플에 대한 기본 키 값은 항상 유효한 값이어야 함 null 값이 허용되지 않음 대체 키 (alternate key) 후보 키 중에서 기본 키를 제외한 나머지 후보 키
데이타베이스 키 외래 키(foreign key) 데이타베이스 키 외래 키(foreign key) 릴레이션 R의 애트리뷰트 집합 FK가 릴레이션 S의 기본 키일 때 이 FK는 R의 외래 키이다. (FK의 도메인) = (S의 기본 키의 도메인) FK의 값은 S에 존재하는 값이거나 null 릴레이션 R은 FK를 통해 릴레이션 S를 참조
외래 키 R S인 경우 R = S인 경우 교수 (교수번호, 교수이름, 학과번호, 직급) 학과 (학과번호, 학과이름, 학과장교수번호, 학생수) PK FK 학생 (학번, 이름, 학년, 학과) 과목 (과목번호, 과목이름, 학점, 학과, 담당교수) 등록 (학번, 과목번호, 성적) FK FK R = S인 경우 교수1 (교수번호, 교수이름, 학과번호, 학장교수번호) PK FK
Question ?