관계 데이타 모델
테이블 : 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"도 함께 삭제 되어야 한다.
'이것저것' 카테고리의 다른 글
SQL 데이타 조작어(검색, 갱신, 삽입, 삭제) (0) | 2016.11.03 |
---|---|
스테이트 차트(머신) 다이어그램 (0) | 2016.11.03 |
컴퓨터구조 1장 (0) | 2016.10.26 |
영어 현재시제, 과거시제 (0) | 2016.10.26 |
클래스 다이어그램 (Class Diagram) (0) | 2016.10.26 |
댓글