Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

holy's story

[DB] key 본문

CS

[DB] key

soom22 2024. 7. 14. 23:49
SMALL

데이터베이스

무결성

  • 개체 무결성(Entity Integrity)
    1. 기본키의 속성은 null 불가
    2. 기본키의 속성은 중복 불가
  • 참조 무결성(Referential Integrity)
    1. 외래키의 속성은 참조 테이블, 즉 원래 테이블 기본키 값과 동일 (당연한 이야기 아닌가)
  • 도메인 무결성(Domain Integrity)
    1. 속성값은 속성이 정의된 도메인의 범위 내에 존재
      1. 특정 릴레이션에서 성별은 male. female 중에서만 작성가능

키란?

  • 데이터베이스에서 각 행을 구분하는 유일한 식별자
  • 검색, 생성, 삭제 유지 작업을 수행할 때 필요
  • 명칭
      • 필드 = 속성
        • 열을 구성하는 하나의 세부항목
    • 행 = 튜플 = 레코드

키의 특징

유일성

  • 하나의 키값으로 레코드를 식별할 수 있는 성질
    • ex)사람의 정보(주민번호, 나이, 이름)
      • 사람의 정보가 담긴 릴레이션이 존재할 때, 나이, 이름은 중복될 수 있지만 주민등록번호의 중복은 발생할 수 없는데, 이때 이 주민등록번호가 키가 되고 이 키 덕분에 각 레코드를 구분할 수 있게 된다.

최소성

  • 키는 여러 속성을 묶어서 지정할 수 있는데, 이때 최소로 필요한 속성들로만 키를 구성하는 성질
    • ex)사람의 정보(주민번호, 나이, 이름)
      • 주민번호와 이름을 묶어서 키로 지정되었을 때, 사실 이름 빼고 주민번호만으로도 유일성을 보장할 수 있기 때문에 해당 키는 최소성을 만족하지 않는다.

키의 종류

1. 슈퍼키

  • 유일성을 만족
  • ex) 나이 + 이름 or 나이 + 주민번호

2. 후보키

  • 유일성과 최소성 둘 다 만족
  • 기본키가 될 수 있는 ‘후보’

3. 기본키

  • 후보키 중 몇몇 기준을 통과하여 선택된 키
    • null 값을 가지지 않는
    • 값이 자주 변경되지 않는
    • 단순한
    • 동일한 값 불가

4. 대체키(보조키)

  • 후보키 중 기본키가 아닌 키
    • 기준에 부합하지 못해 기본키로 선택받지 못함

5. 외래키

  • 다른 테이블의 기본 키를 참조하는 속성
  • 테이블 간의 관계를 나타낼 수 있음

MEMBER

ID  Name  Mail
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