제약 조건을 하는 이유
데이터베이스에 저장된 데이터는 문제가 없어야 하며
질의에 대해서 신뢰성 있는 결괏값을 제공해주기 위해서 제약조건을 만들어서 걸어줘야 한다
즉 데이터의 무결성을 만들어주기 위함이다
UserId | Password | NickName | |
---|---|---|---|
1 | peachberry@kakao.com | 1234 | peach |
2 | baek@kakao.com | 1234 | baek |
3 | peach@gmail.com | 3456 | peach |
위와 같은 릴레이션이 존재한다고 하겠다
위의 릴레이션은 UserId와 Email은 중복이 되지 않는다고 하겠다
키 (Key)
키라는 것은 무엇인가를 식별한다는 의미를 가진다
관계 데이터베이스에서 키는 릴레이션에서 특정 튜플을 식별할 때 사용하는 속성 또는 속성 집합이다
식별을 하기위해서 사용되기 때문에 다른 튜플과의 중복이 있어서는 안 된다
릴레이션 간의 관계를 만들 수 있도록 해준다
슈퍼 키
튜플을 유일하게 식별할 수 있게 만들어주는 하나의 속성 또는 속성의 집합
위의 테이블에서의 슈퍼키
(Userid, Email), (Userid, password), (Email, NickName), (Email, Password, NickName) . . ..
중복되지 않는 속성을 적어도 하나 이상을 포함한 모든 집합은 슈퍼키가 될 수 있다
후보 키
슈퍼 키 중에서 식별 가능한 값의 최소 집합을 이야기한다
위의 테이블에서의 후보 키
많은 슈퍼 키가 존재하지만 (Userid), (Email) 만 가능하다
기본키
후보 키 중에 하나를 선정하여서 대표로 삼는 키를 이야기한다
기본키 선정 고려사항
- 튜플 식별을 위한 고유한 값을 가져야 함
- NULL값은 허용하지 않는다
- 키 값의 변동이 없어야 한다
- 키를 사용하는 데 있어서 문제가 발생해서는 안된다
- 최대한 적은 수의 속성을 가지고 있어야 한다
후보 키에 Userid, Email 두개가 존재하고 이 중에 위의 고려사항을 보고 가장 알맞은 키를 선정하면 된다
대리 키
마땅히 설정할 기본키가 존재하지 않거나 기본키가 존재하지만 여러 속성을 포함하고 있어 사용이 어려운 경우
DBMS에서 인조적으로 값을 만들어서 키값으로 사용하는 것을 이야기한다
대체키
기본키로 선정되지 않은 후보 키를 이야기한다
외래 키
다른 릴레이션의 기본키를 참조하는 속성을 이야기한다
외래 키는 중복이 될 수 도 있으며 NULL값을 포함하는 것도 가능하다
위에서 이야기한 키들은 단일 릴레이션 안에서 사용되는 것들이지만 외래키는 릴레이션 사이의 관계를 표현한다
하지만 단일 릴레이션에서도 사용할 수 도 있다
'컴퓨터 기초 > 데이터베이스' 카테고리의 다른 글
관계 데이터 모델 - 무결성 제약조건 (0) | 2021.02.22 |
---|---|
관계 데이터 모델 - Relation (0) | 2021.02.21 |