본문 바로가기

컴퓨터 기초/데이터베이스

관계 데이터 모델 - 무결성 제약 조건 (Key)

제약 조건을 하는 이유

데이터베이스에 저장된 데이터는 문제가 없어야 하며

질의에 대해서 신뢰성 있는 결괏값을 제공해주기 위해서 제약조건을 만들어서 걸어줘야 한다

즉 데이터의 무결성을 만들어주기 위함이다

UserId Email Password NickName
1 peachberry@kakao.com 1234 peach
2 baek@kakao.com 1234 baek
3 peach@gmail.com 3456 peach

위와 같은 릴레이션이 존재한다고 하겠다

위의 릴레이션은 UserIdEmail은 중복이 되지 않는다고 하겠다

키 (Key)

키라는 것은 무엇인가를 식별한다는 의미를 가진다

관계 데이터베이스에서 키는 릴레이션에서 특정 튜플을 식별할 때 사용하는 속성 또는 속성 집합이다

식별을 하기위해서 사용되기 때문에 다른 튜플과의 중복이 있어서는 안 된다

릴레이션 간의 관계를 만들 수 있도록 해준다

슈퍼 키

튜플을 유일하게 식별할 수 있게 만들어주는 하나의 속성 또는 속성의 집합

 

위의 테이블에서의 슈퍼키

(Userid, Email), (Userid, password), (Email, NickName), (Email, Password, NickName) . . ..

중복되지 않는 속성을 적어도 하나 이상을 포함한 모든 집합은 슈퍼키가 될 수 있다

후보 키

슈퍼 키 중에서 식별 가능한 값의 최소 집합을 이야기한다

 

위의 테이블에서의 후보 키

많은 슈퍼 키가 존재하지만 (Userid), (Email) 만 가능하다

기본키

후보 키 중에 하나를 선정하여서 대표로 삼는 키를 이야기한다

 

기본키 선정 고려사항

  • 튜플 식별을 위한 고유한 값을 가져야 함
  • NULL값은 허용하지 않는다
  • 키 값의 변동이 없어야 한다
  • 키를 사용하는 데 있어서 문제가 발생해서는 안된다
  • 최대한 적은 수의 속성을 가지고 있어야 한다

후보 키에 Userid, Email 두개가 존재하고 이 중에 위의 고려사항을 보고 가장 알맞은 키를 선정하면 된다

대리 키

마땅히 설정할 기본키가 존재하지 않거나 기본키가 존재하지만 여러 속성을 포함하고 있어 사용이 어려운 경우

DBMS에서 인조적으로 값을 만들어서 키값으로 사용하는 것을 이야기한다

대체키

기본키로 선정되지 않은 후보 키를 이야기한다

외래 키

다른 릴레이션의 기본키를 참조하는 속성을 이야기한다

외래 키는 중복이 될 수 도 있으며 NULL값을 포함하는 것도 가능하다

위에서 이야기한 키들은 단일 릴레이션 안에서 사용되는 것들이지만 외래키는 릴레이션 사이의 관계를 표현한다

하지만 단일 릴레이션에서도 사용할 수 도 있다