본문 바로가기
이것저것

chapter 4 : 관계 데이타베이스

by 문자메일 2016. 10. 26.

관계 데이타 모델


테이블 : relation

테이블의 열 : attribute

테이블의 행 : tuple



릴레이션 STUDENT의 정의 예

DLC RELATION STUDENT

 (sno INTEGER,

  Sname CHAR(10),

  Year INTEGER,

  Dept CHAR(6));


릴레이션 이름 : STUDENT

애트리뷰트 이름 : Sno, Sname, Year, Dept

도메인INTEGER, CHAR(10)....


릴레이션의 개념

-릴레이션 R의 스키마 : 릴레이션 이름 R과 일정수의 애트리뷰트 a1, a2, ... ,an의 집합으로 구성됨

                               R(a1,a2,...,an)으로 표기

-각 애트리뷰트 Ai = (i=1,2,...,N)는 도메인 D1,D2,...,Dn의 도메인 Di와 대응됨.

-하나의 투블은 각 애트리뷰트에 대응하는 값, <v1,v2,..vn>으로 구성

-각 vi는 애트리뷰트 Ai의 값으로서 Ai를 정의하고 있는 도메인 Di의 한 원소 값


릴레이션의 특징

1. 투플의 유일성 (uniqueness of tuples)

- 한 릴레이션안에 포함된 투플들은 모두 상이하다.

  두개의 똑같은 투플은 한 릴레이션에 포함될 수 없다.


2. 투플의 무순서성 (no ordering of tuples)

 - 한 릴레이션 안에 있는 투플 사이에는 순서가 없다.


3. 애트리뷰트의 무순서성 (no ordering of attribute)

 - 한 릴레이션 안에 있는 애트리븉 사이에는 순서가 없다.

   ex) 학번 이름 학과 학년 <o>, 학년 이름 학과 학번 <o> 둘 다 맞다.


4. 애트리뷰트의 원자성 (atomic)

 - 한 릴레이션에 나타난 attribute의 값은 논리적으로 더이상 분해할 수 없는 원자 값이다.


데이타베이스 키

키(key)

- 투플의 유일성

- 실제로는 하나 또는 몇개의 애트리뷰트만 이용해도 투플들을 유일하게 식별가능

- 키(key) : 투플들을 식별할 수 있는 애트리뷰트들의 집합.

후보 키(candidate key)

 - 키를 이루는 애트리뷰트의 집합 K = {Ai,Aj,...,Ak}가 릴레이션 전체 애트리뷰트의 집합 A = {A1,A2....,An}의 부분집합.

  유일성

  : K의 값 <vi, vj, .. ,vk>는 모두 상이하고 유일하다.

  최소성

  : K는 투플을 유일하게 식별하는대 꼭 필요한 애트리뷰트들로만 구성되어야 한다.



데이타베이스 키(2)

 후보키의 예 : 학생 테이블에서 <학번>, <이름, 학과>

                   만약 <이름>이나 <학과> 단독으로 학생 투플을 유일하게 식별할 수 있다면, <이름, 학과>는 후보키가 될 수 없다.

 후보키가 둘 이상 되면 어느 하나를 선정하여 하나는 기본키(primary key), 나머지 후보키들은 대체키(alter key)가 된다.

 슈퍼키 : 유일성은 만족하지만, 최소성은 만족하지 않는 애트리뷰트들의 집합


외래 키 (Foreign key)

- 등록 릴레이션의 애트리뷰트 학번은 실제로 학생 릴레이션의 기본키인 학번을 나타냄.


- 등록 릴레이션의 학번 값은 반드시 학생 릴레이션의 어떤 투플을 나태는 학번값으로 존재하여야 함.


-외래 키 : 등록 릴레이션의 학번이나 과목번호 애트리뷰트


무결성 제약(Integrity Constraints)

1. 개채 무결성 제약

: 기본 키에 속해있는 attribute는 null값을 가질 수 없다.

2. 참조 무결성 제약

: 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.


데이타베이스가 삽입, 삭제, 변경 등의 연상을 통해 변동되어도 무결성 제약이 유지되어야 함.

ex) 과목 릴레이션에서 과목번호 "C123"이 제거시 등록 릴레이션에 있는 과목번호 "C123"도 함께 삭제 되어야 한다.

 

댓글