constraints : relational database의 relation들이 항상/무조건 지켜줘야 하는 제약사항.
constraints는 크게 implicit constraints(내포된/묵시적 제약사항)와 explicit constraints(명시적 제약사항)로 나뉜다.
implicit constraints
relational data model 자체가 가지는 constraints로써 아래 2가지 예시가 있다.
1] relation은 중복되는 tuple을 가질 수 없다.
2] relation 내에 같은 이름의 attribute를 가질 수 없다.
explicit constraints( schema-based constraints )
주로 DDL을 통해 Schema에 직접 명시할 수 있는 constraints.
-> 이러한 의미한에서 schema-based constraints라고도 불린다.
domain constrains - explicit constraints(schema-based constraints)
attribute의 value는 해당 attribute의 domain 범위의 value여야 한다.
grade 도메인의 범위는 {1,2,3,4} 중 하나여야 하는데, 위 예시에서는 100으로 되어 있다.
이건 domain constraints 위반이며, relation(table) schema를 정의할 때 명시적으로 설정을 해준다.
key constrains - explicit constraints(schema-based constraints)
서로 다른 tuple은 같은 value의 key를 가질 수가 없다
Null value constraints - explicit constraints(schema-based constraints)
referential integrity constraints-explicit constraints(schema-based constraints)
Foreign Key와 Primary Key는 도메인이 같아야 함 && Primary Key에 없는 value를 Foreign Key가 가질 수 없음
FK/PK의 도메인은 같으나 PLAYER의 FK인 "team_023" 이라는 value는 TEAM의 PK에는 없는 value이다.
'CSあるある' 카테고리의 다른 글
SQL은 tuple의 중복을 허락한다! (0) | 2025.02.05 |
---|---|
DB에서 NULL은 되도록 사용하지 말자 (1) | 2025.02.05 |
도메인(Domain)의 정의 -종결편- (0) | 2025.02.05 |
추상화에 대한 정리(Feat. 객체 지향,oop) (0) | 2025.01.31 |
MVCC에 대한 오해 (0) | 2025.01.22 |