🤝

Relational 모델 - 2


Constraints

제약조건은 어떤 값이 허용 가능하고 어떤 값이 불가능한지 결정한다. DB의 무결성을 위해 제약조건을 설정한다.

주요 카테고리:

  1. Inherent or implicit constraints:
    데이터 모델에 자체에 의해 결정된다.
    예) 관계형 모델은 attribute의 값에 여러 개의 값을 넣을 수 없다.

  2. Schema-based or explicit constraints:
    데이터 모델 스키마에 명시되어 표현된다.
    에) ER 모델의 total/partial participation, min/max cardinality

  3. Application-based or semantic constraints:
    응용 프로그램에서 강제된다. 데이터 모델로 표현될 수 없다.

Relational 모델에서는 두 번째 제약조건에 집중한다.

Relational Integrity Constraints

제약조건은 모든 relation state에서 유효해야 한다.

관계형 데이터 모델의 주요 제약조건

  1. Key 제약조건: 유일 제약조건

  2. Entity integirity(엔티티 무결성) 제약조건: 기본 키(PK) 속성은 NULL이 되면 안된다.

  3. Referential integirity(참조 무결성) 제약조건: 외래 키(FK)의 값은 참조하는 relation의 기본 키(PK)이어야 한다. NULL일 수도 있다.

  4. Domain 제약조건

Key 제약조건

Relation의 모든 튜플은 유일하게 식별될 수 있어야 한다.

Super Key?
SK를 어트리뷰트의 부분집합이라고 하면, 어떤 두 튜플도 같은 SK 값을 가지지 않아야 한다. (t1[SK]t2[SK]t_1[SK]≠t_2[SK]).

각 튜플을 유일하게 식별할 수 있는, 즉, 유일성을 만족하는 하나 이상의 속성들의 집합이다.

Candidate Key(후보 키)?
'minimal'한(최소성을 만족하는) 슈퍼 키다. 유일성과 최소성을 만족하는 속성들의 집합이다.

모든 key는 super key이지만, 그 반대는 아니다.

Primary key(기본 키)는 후보 키 중 하나를 선택한 것이고, 나머지 키는 alternate key(대체 키)가 된다.

Primary key(기본 키)는 relation에서 각 튜플들을 고유하게 식별해주는 역할을 한다. 또한, 다른 튜플이 튜플을 참조할 때 사용한다. 이때 참조되는 키를 'foreign key(외래 키)'라고 한다.

Entity 무결성 제약조건

Primary Key(PK)는 NULL값을 가질 수 없는 제약조건이다. 어느 튜플의 어떤 기본 키라도 NULL 값을 가질 수 없다. 왜냐하면 기본 키는 어떤 튜플을 유일하게 식별할 수 있는 값이기 때문이다.

Referential 무결성 제약조건

두 개 이상의 관계에 대한 제약조건이다. 참조하는 relation의 튜플 R1R_1은 참조되는 튜플의 PK를 속성(FK)으로 가지고 있어야 한다. 두 관계 간 일관성을 유지하기 위해 사용된다.


Relation Database Schema

관계형 데이터베이스 스키마는 동일한 DB에 속하는 relational schema의 집합 SS다.

S={R1,...,Rn}+ICsS=\{R_1, ..., R_n\} + ICs

ICIC: Integrity Constraints(무결성 제약조건)

Relation Database의 State, 혹은, snapshot(instance)은 다음과 같이 표시할 수 있다.

DB={r1,...,rm}DB=\{r_1, ..., r_m\}

rir_iRiR_i의 state이고, 각 state는 무결성 제약조건을 만족한다.