holy's story
[DB] key 본문
SMALL
데이터베이스
무결성
- 개체 무결성(Entity Integrity)
- 기본키의 속성은 null 불가
- 기본키의 속성은 중복 불가
- 참조 무결성(Referential Integrity)
- 외래키의 속성은 참조 테이블, 즉 원래 테이블 기본키 값과 동일 (당연한 이야기 아닌가)
- 도메인 무결성(Domain Integrity)
- 속성값은 속성이 정의된 도메인의 범위 내에 존재
- 특정 릴레이션에서 성별은 male. female 중에서만 작성가능
- 속성값은 속성이 정의된 도메인의 범위 내에 존재
키란?
- 데이터베이스에서 각 행을 구분하는 유일한 식별자
- 검색, 생성, 삭제 유지 작업을 수행할 때 필요
- 명칭
- 열
- 필드 = 속성
- 열을 구성하는 하나의 세부항목
- 필드 = 속성
- 행 = 튜플 = 레코드
- 열
키의 특징
유일성
- 하나의 키값으로 레코드를 식별할 수 있는 성질
- ex)사람의 정보(주민번호, 나이, 이름)
- 사람의 정보가 담긴 릴레이션이 존재할 때, 나이, 이름은 중복될 수 있지만 주민등록번호의 중복은 발생할 수 없는데, 이때 이 주민등록번호가 키가 되고 이 키 덕분에 각 레코드를 구분할 수 있게 된다.
- ex)사람의 정보(주민번호, 나이, 이름)
최소성
- 키는 여러 속성을 묶어서 지정할 수 있는데, 이때 최소로 필요한 속성들로만 키를 구성하는 성질
- ex)사람의 정보(주민번호, 나이, 이름)
- 주민번호와 이름을 묶어서 키로 지정되었을 때, 사실 이름 빼고 주민번호만으로도 유일성을 보장할 수 있기 때문에 해당 키는 최소성을 만족하지 않는다.
- ex)사람의 정보(주민번호, 나이, 이름)
키의 종류
1. 슈퍼키
- 유일성을 만족
- ex) 나이 + 이름 or 나이 + 주민번호
2. 후보키
- 유일성과 최소성 둘 다 만족
- 기본키가 될 수 있는 ‘후보’
3. 기본키
- 후보키 중 몇몇 기준을 통과하여 선택된 키
- null 값을 가지지 않는
- 값이 자주 변경되지 않는
- 단순한
- 동일한 값 불가
4. 대체키(보조키)
- 후보키 중 기본키가 아닌 키
- 기준에 부합하지 못해 기본키로 선택받지 못함
5. 외래키
- 다른 테이블의 기본 키를 참조하는 속성
- 테이블 간의 관계를 나타낼 수 있음
MEMBER
ID | Name | |
1 | sumi | sumi@naver.com |
2 | jieung | jieung@naver.com |
3 | hyunsu | hyunsu@naver.com |
4 | jimin | jimin@naver.com |
- id가 기본키
DIARY
Diary_id | Diary_content | ID |
1 | “아이스크림 먹었다” | 1 |
2 | “샌드위치 먹었다” | 1 |
3 | “국밥 먹었다” | 1 |
4 | “삼겹살 먹었다” | 1 |
- id가 외래키
- MEMBER 테이블의 기본키인 ID값을 참조해 DIARY 테이블에서 외래키로 사용하였다.
- 외래키가 들어오지 않았다면, Diary_id 1번이 누구의 것인지 구분이 불가능할 것이다.
6. 복합키
- 2개 이상의 속성을 사용한 키
- 그래서, 모든 슈퍼키는 후보키가 아니다.
'CS' 카테고리의 다른 글
[DB] 저장 프로시저 (0) | 2024.07.28 |
---|---|
[DB] 조인 (0) | 2024.07.21 |
[NETWORK] 프록시 서버 (0) | 2024.07.05 |
[NETWORK] L4,L7 스위치, 로드밸런싱 (1) | 2024.06.30 |
[Algorithm] 그리디 (2) | 2024.06.09 |