Computer Science/Database, SQL

[HUFS/데이터베이스] #5 무결성 제약

성중 2021. 9. 15. 20:23

관계형 데이터베이스(Relational Database)

관계형 데이터베이스는 Relation들의 집합을 테이블 형태로 표현한 것인데,,

관계형 데이터베이스의 Schema는 Relation Schema무결성 제약조건으로 구성된다!

 

Relationship 을 가진 Relation들 (key attribute로 연결됨)

데이터베이스 키(key)

여기서 키(key)는 각 tuple을 유일하게 식별할 수 있는 attribute들의 집합이다

 

유일성: 각 tuple에서 해당 attribute들의 집합이 유일한가?

최소성: 해당 attribute의 집합이 각 tuple을 식별하는데 필요한 값들만 포함되었는가?

 

유일성과 최소성을 만족한다면 후보 키(candidate key)

유일성은 만족하지만 최소성을 만족하지 않는다면 슈퍼 키(super key)

후보 key 중에서 DB 설계자가 지정한 key를 기본 키(primary key)라고 한다

~ 기본 키는 null값을 허용하지 않는다

후보 키 중에서 기본 키를 제외한 나머지 후보 키들대체 키(alternate key)라고 한다

 

기본 키가 다른 Relation 키를 참조한다면 외래 키(foreign key)라고 한다

 

이 경우 등록의 ‘학번’이 외래 키(참조-피참조 관계)

* 즉 FK의 도메인은 참조한 키의 도메인과 같다

 

참조와 피참조 Relation이 같을 수도 있다!

무결성 제약(Integrity Constraints)

데이터베이스에 저장되어 있는 데이터 값(tuple)들의 어느 한 시점을 데이터베이스 상태(database state)라고 한다

~ DBMS는 데이터 베이스 상태의 변화에도 항상 무결성 제약을 만족시켜야 한다

 

무결성 제약에는 개체 무결성(entity integrity)참조 무결성(referential integrity)이 있다

개체 무결성: 기본 키 값은 모든 순간에 null 값을 가질 수 없고 유일해야 한다

참조 무결성: 외래 키 값은 반드시 피참조 relation의 기본 키 값이거나 null이다

 

* 데이터 베이스 상태는 항상 위 두 제약 조건을 만족시켜야 한다