본문 바로가기
프로그래밍 공부/DBMS

[lesson] DBMS - 삭제조건과 KEY (후보, 기본, 조합, 슈퍼, 외래, 유니크)

by Luna_lua 2021. 8. 23.
반응형

<후보키>

 - 릴레이션을 구성하는 속성들 중 튜플(하나의 행)을 유일하게 식별할 수 있는 속성들의 집합을 의미합니다.

 - 모든 테이블은 반드시 하나 이상의 후보키를 가져야 합니다.

 - 후보키는 모든 튜플을 구분지을수 있도록 유일성과 최소성을 만족해야합니다.

=> 주민을 구분할 수 있는 주민등록번호, 학생을 구분할수 있는 학번 등

 

<기본키>

 - 후보키 중에서 선택한 메인으로 사용할 키(main key)

 - 테이블에서 특정 튜플을 유일하게 구별할 수 있는 속성

 - NULL값을 가질수 없습니다. (개체 무결성 1)

 - 기본키로 정의된 속성은 중복값을 가질 수 없습니다. (개체 무결정 2)

 

<+ 조합키>

하나의 속성(column)으로 키를 사용하는것이 아닌 2개이상의 속성을 하나의 키로 사용

주의할 점은, 2가지 속성이 하나의 키로 되기때문에 2가지 모두 동일해야 같은 값으로 판단,

=> 중복값 계산과 데이터 무결성을 한번더 생각해봐야 하는 과정이 필요합니다.

 

<유니크키>

릴레이션 내 항상 유일해야 하는 값. 중복을 허용하지 않습니다.

해당 컬럼에 입력되는 데이터가 각각 유일하나는 것을 보장하기 위해 제약 조건 NULL값도 허용된다.

 

+) 여기서 유니크키에 NOT NULL을 제약조건에 걸어줘서 기본키와 같은 조건을 가질수 있지만 구분해야하는 이유!

기본키는 튜플을 구분해햐는 키(기준) 그러나 키로 사용하고 싶지만 기본키와 같이 개체 무결성을 지정해주고 싶을때 사용합니다. (예. 회원 ID는 하나만 있어야 하지만 USERNUM(회원가입 등록순서)으로 릴레이션을 기본키로 사용하고 있을때 두개 기본키로 사용할 수 있지만 2개를 기본키로 사용하면 이것은 조합키가 되어 기본기의 사용속성이 달라진다!

 

=> 하나의 테이블에는 기본키는 하나만 있어야 한다! 그러나 기본키역할을 하는 속성(컬럼)은 꼭 하나만 되는것은 아니다!(조합키)

 

<슈퍼키>

속성들의 집합으로 구성된 키로서 유일성은 만족하지만 최소성은 만족 하지 않습니다.

 

<외래키>

RDBMS(관계를 맺고 있는 테이블(릴레이션)끼리 키를 참조하고 있는 상태)

=> 1번 테이블의 기본키를 2번 테이블에서 키로 참조하고 있음(외래키)

=> 참조하는 내용이므로 값을 키에 값을 입력 할 수 없습니다. (참조 무결성)

외래키는 참조되는 릴레시션의 기본키와 대응되어 릴레이션간 참조관계를 표현하는데 중요한 도구로 사용합니다.

 

<+ 외래키 삭제시 참조할 사항>

1. RESTRICT : 개체를 변경/삭제할때 참조된 데이터가 있다면 변경/삭제를 실행 할수 없습니다.

2. CASCADE : 개체를 변경/삭제할때 참조된 데이터가 있다면 참조된 데이터를 함께 변경/삭제 됩니다.

2. SET NULL : 개체를 변경/삭제할때 참조된 데이터가 있다면 참조하고 있는 값을 NULL로 변경합니다.

 

+) NULL

데이터 베이스에서 아직 알려지지 않거나, 모르는 값으로 해당없음이라는 내용을 표시하기 위하여 사용하는 특수 ㅌ데이터 -> 숫자에서 0도 데이터이기 때문에 완전한 데이터가 없다고 할때 NULL을 사용합니다.

 

반응형

'프로그래밍 공부 > DBMS' 카테고리의 다른 글

[POSTGRESQL] COALESCE 조회 시 결과 자체가 없어서 안된다고?  (0) 2023.01.17
#{} ${}  (0) 2023.01.09
[lesson] DBMS - VIEW  (0) 2021.08.22
[lesson] DBMS - JOIN  (0) 2021.08.22
[lesson] DBMS - CREATE AS(데이터 복사)  (0) 2021.08.21