KEY

상품 테이블

상품코드 회사명 단가
A 교촌 25,000
B BBQ 30,000
C 네네 23,000
D 노랑통닭 22,000

판매 테이블

판매번호 상품코드 수량 판매일 판매금액
1 B 1 2024-11-19
2 A 1 2024-11-19
3 D 1 2024-11-19
4 C 1 2024-11-19

유일성

데이터베이스 내에서 중복되지 않도록 보장하며 고유하게 식별할 수 있는 것을 말한다. 예를 들어 주민등록번호, 학번 등이 있고 이 기준으로 하나의 데이터(사람)을 식별할 수 있다.

특정 필드를 기준으로 테이블 내에서 유일하게 하나를 선택할 수 있다면 유일성을 만족하게 되며 위 상품테이블 예시에서 상품코드 기준으로 중복없이 회사명, 단가를 확인할 수 있다.

최소성

후보키를 구성하는 속성의 집합에서 어느 하나라도 제거하면 더 이상 해당 키가 테이블의 튜플(행)을 고유하게 식별할 수 없는 경우를 최소성이라 한다.

즉, 최소성이란 후보키가 데이터를 고유하게 식별하기 위해 꼭 필요한 속성만 포함하고, 불필요한 속성을 포함하지 않는 상태를 의미한다.

다른 속성과 결합하지 않아도 유일성을 유지할 수 있는 필드는 최소성을 충족한다고 말한다.

키의 개념 및 종류

상품 테이블에서 유일성, 최소성을 만족하는 필드는 상품코드 또는 회사명이다.
이러한 키를 후보키(Candidate key)라고 하며 후보키 중에서 하나가 기본키가 될 수 있으며 기본키(Primary Key, PK)는 개발자가 직접 지정한다.

후보키 중에서 기본키가 되지 못한 키를 대체키(Alternative Key)라고 하며 유일성은 만족하지만 최소성을 만족하지 못하는 키를 슈퍼키(Super Key)라고 한다.

판매 테이블이 상품코드 필드를 값으로 상품 테이블을 참조하여 상품코드가 B라면 상품명 네네, 단가 23000을 확인할 수 있다. 다른 테이블의 기본키를 참조하는 현재 테이블의 필드를 외래키(Foreign Key, FK)라고 한다

무결성

무결성에는 개체, 참조, 도메인이 있다

개체 무결성 : 기본키(Primary Key, PK)는 중복 값 입력과 null도 불가능하다. 각 행을 고유하게 식별해야할 때 PK로 지정한다

도메인 무결성 : 각 열의 데이터가 타입, 형식 제한 조건을 준수해야 함을 뜻한다. 성별 필드의 경우 남, 여의 값만 저장되어야한다 등의 제약조건이 필요하며 데이터 타입, not null, check 제약 조건 등을 사용한다.

참조 무결성 : 자식 테이블의 FK(Foreing Key, FK)를 통해 자식테이블이 부모테이블을 참조할 수 있도록 보장한다.

외래키가 기본키를 참조할 때 참조 무결성이 발생 가능한 상황

  1. 상품 테이블 - 데이터 삽입 : X, 새로운 상품코드가 생겨 무관하다
  2. 상품 테이블 - 데이터 삭제 : O, 참조 못할 수 있음
  3. 상품 테이블 - 데이터 수정 : O, 참조 못할 수 있음
  4. 판매 테이블 - 데이터 삽입 : O, 잘못된 값 삽입
  5. 판매 테이블 - 데이터 삭제 : X, 참조할 테이블에 문제가 없기 때문에 가능성이 없다
  6. 판매 테이블 - 데이터 수정 : O, 외래키가 수정되면 참조 무결성 발생

따라서 상품 테이블의 데이터 삽입 또는 판매 테이블의 데이터 삭제는 참조 무결성이 발생할 가능성이 없다.

정리

  1. 후보키(Candidate key) : 유일성, 최소성을 만족하는 키
  2. 기본키(Primary Key, PK) : 후보키 중에서 선택
  3. 대체키(Alternative Key) : 기본키가 되지 못한 후보키
  4. 슈퍼키(Super Key) : 유일성은 만족하나 최소성을 만족하지 못하는 키
  5. 외래키(Foreign Key, FK) : 다른 테이블의 기본키를 참조하는 현재 테이블의 필드
  6. 기본키는 중복 값 입력과 null도 불가능 => 개체 무결성
반응형

+ Recent posts