041. 관계형 데이터베이스의 제약조건 – 키(Key)
1) 키(Key)
- 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
2) 후보키(Candidate Key)
- 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합(대통령 선거 후보들 전부)
- 유일성(Unique), 최소성(Minimality)를 모두 만족시켜야 함
3) 기본키(Primary Key)
- 후보키 중에서 특별히 선정된 주키(당선된 대통령)
4) 대체키(Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키(당선되지 못한 나머지 후보들)
5) 슈퍼키(Super Key)
- 속성들의 집합으로 구성된 키
- 유일성은 만족하지만 최소성은 만족하지 못함(다른 필드와 묶어서 만들기 때문)
6) 외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
042. 관계형 데이터베이스의 제약조건 – 무결성(Integrity)
- 데이터베이스에 저장된 데이터 값과 현실 세계의 실제값이 일치하는 정확성
1) 무결성의 종류
개체 무결성
|
기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정 (공백은 Null이 아님)
|
참조 무결성
|
외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 함
|
도메인 무결성
|
주어진 속성값이 정의된 도메인에 속한 값이어야 한다는 규정
|
사용자 정의 무결성
|
속성값들이 사용자가 정의한 제약조건에 만족되어야 한다는 규정
|
NULL 무결성
|
릴레이션의 특정 속성 값이 Null이 될 수 없도록 하는 규정
|
고유 무결성
|
릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야 한다는 규정
|
키 무결성
|
하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정
|
관계 무결성
|
릴레이션에 어느 한 튜플의 삽입 가능 여부 또느 한 릴레이션과 다른 릴레이션의 튜플들 사 이의 관계에 대한 적절성 여부를 지정한 규정
|
2) 데이터 무결성 강화 : 애플리케이션, 데이터베이스 트리거, 제약조건
043. 관계대수 및 관계해석
1) 관계대수
- 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
2) 순수 관계 연산자
Select
|
선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산
|
σ (시그마)
|
Project
|
속성 리스트에 제시된 속성값만을 추출하여 새로운 릴레이션을 만드는 연산
|
π(파이)
|
Join
|
공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만듦
|
⋈
|
Division
|
X⊃Y인 두 개의 릴레이션 R(X)과 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가 진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
|
÷
|
3) 일반 집합 연산자
- 수학적 집합 이론에서 사용하는 연산자
- 합집합(∪), 교집합(∩), 차집합(−), 교차곱(×)
4) 관계해석(Relational Calculus)
- 관계 데이터의 연산을 표현하는 방법
- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지님
044. 이상/함수적 종속
1) 이상(Anomaly)
- 테이블에서 데이터의 중복이 발생하고, 이 중복(Redundancy)으로 인해 문제가 발생하는 현상
- 삽입 이상(Insertion Anomaly)
: 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
- 삭제 이상(Deletion Anomaly)
: 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
- 갱신 이상(Update Anomaly)
: 테이블에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 불일치성이 생기는 현상
2) 함수적 종속(Functional Dependency)
- 학번, 이름, 학년, 학과라는 속성을 가지는 테이블에서 학번으로는 이름을 찾을 수 있지만 이름으로는 학번을 찾을 수 없음
(동명이인이 있을 수 있기 때문) : 학번(결정자) -> 이름(종속자)
- 완전 함수적 종속 : X와 Y가 모두 결정자이고 Z가 종속자인 경우에 X, Y -> Z
- 부분 함수적 종속 : X와 Y가 모두 결정자이지만 X만으로도 Z를 결정할 수 있을 때 X -> Z