데이터베이스 상태

r·2021년 2월 17일
0

데이터베이스

목록 보기
5/7

candidate key: attribute 중 각 table 에 있는 원소들을 유일하게 구분지을 수 있는 하나의 attribute 혹은 여러개의 attribute 쌍을 의미한다.
candidate key 가 되기 위해서는, uniqueness 와 minimality 를 유지해야 하는데, uniqueness 는 바로 위의 정의에서 나와있고
minimality 란 key 의 부분집합 중 uniqueness 를 만족하는 집합이 없을 의미한다.

candidate key 가 하나이거나, 여러개일 땐 하나를 뽑는데 이를 primary key 라 하고 이때 나머지 candidate key 들을 alternate key 라 한다.

primary key 는 relational data model 에서 address 가 아니라 value 에 기반한 주소법(유일하게 식별 가능) 을 제공한다는 점이 매우 중요하다. 즉 릴레이션 이름 과 기본키만 알면 해당 튜플을 찾아낼수 있다는 것이다.

모든 테이블은 당연히 candidate key 가 적어도 하나 있음을 보장한다. ( 왜냐 모든 튜플은 attribute 값이 모두 같은 튜플은 없도록 보장하니까. ㅇㅇ 현실세계에서의 데이터를 반영한 개념일지도?)

이제 foreign key 에 대해 알아보자. foreign key 의 일반적인 정의란 아래와 같다.
R1 에 속한 어떤 attribute 집합 Fk 가 있닥 하자.
만약 Fk 의 값이 반드시 어떤 relation R2 의 primary key 가 된다고 가정하자. 이 경우에 attribute Fk 는 relation R2 를 참조(reference) 한다고 하고,
R1: referancing relation
R2: referenced relation
이라고 한다.

integrity constraint 에 대해 알아보기 전에 null 에 대해 알아보자.
null 은 아직 알려지지 않은 데이터를 명시적으로 표시하기 위해 사용되는 특수한 데이터 값이다. blank 나 zero 와는 다르게 null 은 하나의 정당한 값으로 취급되며 attribute value 를 아직 모르거나 해당 없음( bool false 로 대채가능한 의 느낌이네) ㅇㄹ 의미한다.

integerity constraint 는 무결성 제약으로, 관계형 데이터 모델이 가지고 있는 integerity constraint 는 entity integrity 와 referential integrity 가 있고, 이 둘은 각각 primary key, foreign key 와 연관이 있다.

entity integrity: primary key 에 속해 있는 attribute 는 (혹은 들은) 언제 어느 상황이건 null 값을 가질 수 없다. 왜냐하면 null 값을 갖게 되면 tuple 을 유일하게 실벽할 수 없게 되어 primary key 의 정의를 위반하게 되고, 서로 구별할 수 없는 개체가 되어 개체의 정의에 모순이 된다.

referential integrity: relation 은 "참조할 수 없는 foreign key" 값을 가져서는 안된다.
"참조할 수 없는 foreign key" 란 null 이 아니면서 referenced relation 의 어떤 primiary key 와도 일치하지 않는 값을 말한다.
R1 의 기본키 K 를 참조하는 왜래키 Fk 가 R2에 명세되어 있다면 이 Fk 의 값은 반드시 R1 에 나타나는 기본키 K 의 어떤 값과 같든지 아니면 null 이어야 한다.
여기서 R1 과 R2 가 꼭 서로 다른 릴레이션일 필요는 없다.
( 학번, 대표학생학번)

그리고 r i 가 ei 와는 다르게 null 도 허용하는 이유는
왜래키에 해당하는 참조된 릴레이션 테이블을 제거 됬는데,
참조하는 릴레이션 테이블은 제거 안된 상황이 존재 할 수 있기 때문이다.

profile
프론트엔드 개발자를 꿈꿉니다.

0개의 댓글