230 likes | 555 Views
4. 관계 데이타베이스. 관계 데이타 모델 (1). 관계 데이타 모델 (relational data model) 의 탄생 1970 년에 IBM 의 E. F. Codd 에 의해 제안 관계 데이타 모델의 특성 수학에서의 릴레이션 (relation) 과 집합 (set) 이론에 기초 일반 사용자는 테이블 (table) 형태로 생각 통상적인 테이블의 개념과는 다름 관계 데이타 모델의 직관적인 이해에 도움
E N D
관계데이타모델(1) • 관계데이타모델(relational data model)의탄생 • 1970년에 IBM의 E. F. Codd에의해제안 • 관계데이타모델의특성 • 수학에서의릴레이션(relation)과집합(set) 이론에기초 • 일반사용자는테이블(table) 형태로생각 • 통상적인테이블의개념과는다름 • 관계데이타모델의직관적인이해에도움 • 테이블의열(column) =필드(field) 혹은아이템(item)≒ 관계데이타모델의애트리뷰트(attribute) • 테이블의행(row) =레코드(record)≒ 관계데이타모델의투플(tuple)
관계데이타모델(2) 학생(STUDENT) 테이블 : 릴레이션 학생(STUDENT) 학번 (Sno) 이름 (Sname) 학년 (Year) 학과 (Dept) 100 나수영 4 컴퓨터 200 이찬수 3 전기 300 정기태 1 컴퓨터 400 송병길 4 컴퓨터 500 박종화 2 산공
애트리뷰트와도메인 • 테이블(table) ≒ 릴레이션(relation) • 도메인(domain) • 애트리뷰트가취할수있는값(value)들의집합 • 애트리뷰트(attribute) • 도메인의역할(role) 이름 • 한릴레이션내에서애트리뷰트이름들은모두달라야함 • 단순도메인 (simple domain) → 단순애트리뷰트 : 원자값 • 복합도메인 (composite domain) → 복합애트리뷰트 : 복합값 연, 월, 일 ⇒ 날짜:<연,월,일> ☞ Note • 애트리뷰트이름과도메인이름은같을수도있음 • 역할이름을도메인이름으로지정
릴레이션의개념 • 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 릴레이션예 INTEGER..DSNO CHAR(10)..NAME INTEGER..DYEAR CHAR(6)..DEPT 도메인 애트리뷰트 학생(STUDENT) 릴레이션스키마 학번 (Sno) 이름 (Sname) 학년 (Year) 학과 (Dept) 100 나수영 4 컴퓨터 릴레이션 200 이찬수 3 전기 투플 릴레이션 인스턴스 300 정기태 1 컴퓨터 400 송병길 4 컴퓨터 500 박종화 2 산공
▶ 릴레이션스키마 (relation schema) • 릴레이션내포 (relation intension) 또는릴레이션스킴 (relation scheme)이라고도함 • 릴레이션이름 + 애트리뷰트이름 R(A1, A2, ... , An), Ai ⇔ Di R({A1, A2, ... , An}) • 정적성질 • 시간에무관 • 시간에따라변경되지않음 • 릴레이션타입과같은의미
▶ 릴레이션인스턴스 (relation instance) • 릴레이션외연 (relation extension)이라고도함 • 릴레이션 R의인스턴스 • 어느한시점에릴레이션 R이포함하고있는투플들의집합 {< V1, V2, ... , Vn >} Vi ∈ Di • 릴레이션의내용, 상태, snapshot • 투플: <attr1=V1, attr2=V2, ··· , attrn=Vn> • 동적성질 • 삽입, 삭제, 갱신으로시간에따라변함 • 릴레이션값(보통릴레이션)
학번 ⅹ과목번호 (Sno ⅹ Cno) 과목번호 (Cno) 학번 (Sno) C412 C123 C312 100 200 <100,C412> <100,C123> <100,C312> <200,C412> <200,C123> <200,C312> ▶릴레이션(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) ⅱ. 개념적정의 릴레이션스키마 + 릴레이션인스턴스
릴레이션의특성 (1) 1). 투플의유일성(uniqueness of tuples) 릴레이션=투플들의 "집합(set)" 2). 투플의무순서성 (no ordering of tuples) 릴레이션 : 추상적개념 투플들의집합(set) 테이블 : 구체적개념 3). 애트리뷰트의무순서성(no ordering of attributes) 릴레이션스키마 → 애트리뷰트들의 "집합" 투플 : <attribute: value>쌍의집합
릴레이션의특성 (2) 4). 애트리뷰트의원자성(atomicity) • 애트리뷰트값은원자값(atomic value) • 논리적으로분해불가능 • 정규화릴레이션 (normalized relation) • 애트리뷰트값으로원자값만허용되는릴레이션 • 비정규화릴레이션은분해(decomposition)를통해정규화 • 동등한의미를유지 • 널값(null value)도원자값으로취급 • unknown, inapplicable • 도메인 • 단순도메인 • 복합도메인 : 값을하나의단위로취급
▶ 릴레이션의정규화 등록1(ENROL1) 등록(ENROL) (b) 정규릴레이션 (a) 비정규릴레이션
▶ 릴레이션의정규화 학생(Student) 등록(ENROL) (b) 정규릴레이션 (a) 비정규릴레이션
관계데이타베이스개념 • 관계데이타베이스(relational database) • 테이블들의집합 • 데이타베이스를시간에따라그내용(상태)이변할수있는테이블형태로표현 • 관계데이타베이스스키마(relational database schema) = {릴레이션스키마} + {무결성제약조건} • 관계데이타모델 ⇔ 프로그래밍시스템 릴레이션 ⇔ 화일 투플 ⇔ 레코드 (레코드어커런스) 애트리뷰트 ⇔ 필드(필드타입) ☞ Notes • 관계데이타베이스라고할때데이타가물리적테이블형태로저장된다는것을의미하지는않음
학번 (Sno) 이름 (Sname) 학년 (Year) 학과 (Dept) 학생 (STUDENT) 100 나수영 4 컴퓨터 200 이찬수 3 전기 300 정기태 1 컴퓨터 400 송병길 4 컴퓨터 500 박종화 2 산공 과목번호 (Cno) 과목이름 (Cname) 학점 (Credit) 학과 (Dept) 담당교수 (PRname) 과목 (COURSE) C123 프로그래밍 3 컴퓨터 김성국 C312 자료구조 3 컴퓨터 황수관 C324 화일구조 3 컴퓨터 이규찬 C413 데이타베이스 3 컴퓨터 이일로 E412 반도체 3 전자 홍봉진 example(1) • 대학(University) 관계데이타베이스
학번 (Sno) 과목번호 (Cno) 성적 (Grade) 중간성적 (Midterm) 기말성적 (Final) 등록 (ENROL) 100 C413 A 90 95 100 E412 A 95 95 200 C123 B 85 80 300 C312 A 90 95 300 C324 C 75 75 300 C413 A 95 90 400 C312 A 90 95 400 C324 A 95 90 400 C413 B 80 85 400 E412 C 65 75 500 C312 B 85 80 example(2) • 대학(University) 관계데이타베이스(cont’d)
데이타베이스키(key) • 키(key) • 각투플을유일하게식별할수있는애트리뷰트집합(set of attributes) • 후보키(candidate key) • 릴레이션 R(A1, A2, ..., An)에대한애트리뷰트집합,K({Ai , Aj , ..., Ak})로서다음두성질을만족 ① 유일성(uniqueness) 각투플에대해 K({Ai , Aj , ... , Ak})의값(< vi , vj , ... , vk >)은유일 ② 최소성(minimality) K는각투플을유일하게식별하는데필요한애트리뷰트만포함
데이타베이스키 (2) • 슈퍼키 (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과 S가같은릴레이션일수도있음 • R을참조릴레이션(referencing relation), S를피참조릴레이션(referenced relation)이라함 • 릴레이션 R은 FK를통해릴레이션 S를참조
외래키 (2) • R S인경우 교수 (교수번호, 교수이름, 학과번호, 직급) 학과 (학과번호, 학과이름, 학과장교수번호, 학생수) PK FK 학생 (학번, 이름, 학년, 학과) 과목 (과목번호, 과목이름, 학점, 학과, 담당교수) 등록 (학번, 과목번호, 성적) FK FK • R = S인경우 교수1 (교수번호, 교수이름, 학과번호, 학장교수번호) PK FK
무결성제약(Integrity Constraints) (1) 개체무결성(entity integrity) • 기본키값은언제어느때고 null 값을가질수없다. ☞ Notes : null 값 • 정보부재를명시적으로표현하는특수한데이타값 ① 알려지지않은값(unknown value) ② 해당없음(inapplicable) (2) 참조무결성(referential integrity) • 외래키값은반드시피참조릴레이션의기본키값이거나 null이다. • 이무결성제약조건은데이타베이스상태(database state)가항상만족시켜야될제약조건임
무결성제약(Integrity Constraint)(2) • 데이타베이스상태 (database state) • 어느한시점에데이타베이스에저장되어있는모든데이타값 (투플) • 데이타베이스인스턴스(database instance) • 데이타베이스스키마에포함되어있는모든릴레이션들의인스턴스집합 • 데이타베이스상태의계속적인변화 • 삽입, 삭제, 변경연산 ★ DBMS는데이타베이스상태의변화에도항상무결성제약을만족시키도록해야함