Computer Science/DataBase

[DB] Key의 종류

검은 까마귀 2024. 2. 21. 13:59

2024.02.20 - [Computer Science/DataBase] - [DB] 데이터 모델과 용어정리

 

[DB] 데이터 모델과 용어정리

2024.02.19 - [Computer Science/DataBase] - [DB] DataBase와 SQL VS. NoSQL [DB] DataBase와 SQL VS. NoSQL # DataBase 먼저, 데이터베이스의 정의가 무엇인지 알아보겠다. 여러 사람에 의해 공유되어 사용될 목적으로 통합하

blaj2938.tistory.com

이전 포스팅에서 우리가 데이터모델과 용어 정리에 대해서 알아보았고, 용어에는 속성(attribure) 엔티티, 인스턴스와 같은 여러 용어들과 이를 하나로 묶을 수 있는 테이블 구조라는 것도 알아보았다.

 

여기서 우리는 Table(테이블)이라는 일종의 틀을 활용하여 DB에 정보들을 저장해 이것들을 하나의 관리 시스템 안에 밀어넣어 관리되도록하는게 맨 처음 포스팅한 DBMS이다. 이를 관계형으로 관리하기 때문에 Relation(관계)라는 것을 붙여 RDBMS라고 부른다.

 

자 위에 내용이 우리가 여태까지 포스팅하면서 DB에 관한 약간의 이론, 용어들을 정리한 내용이다. 스쳐지나갔지만 튜플이라는 용어도 나오는데 이는 테이블의 가로, 즉 행을 구분하는 단위이다.

 

튜플이 머리속으로 그려진다면, 키를 이해할 준비가 된거다.


# Key

key의 정의는 DB의 데이터들은 검색 정렬시 Tuple(튜플)을 구분할 수 있는 속성을 의미한다.

  • 슈퍼키

슈퍼키가 될 수 있는 것들을 묶어둔 것이다. 절대 겹치지 않는 것들을 묶어 두면 된다. 여러개 속성을 합쳐서 슈퍼키로 만들 수도 있다. 중복되지만 않는다면 슈퍼키가 될 수 있다는 것이다.

 

  • 후보키

최소한의 속성으로 테이블의 인스턴스 값들을 구분할 수 있어야한다. 즉, 튜플들을 구분할 수 있어야한다.

위에서 보면 이름, 생년월일, 이메일이 묶여있는데 이는 속성의 최소성을 만족하지 못해서 후보키가 될 수 없다

 

  • 기본키(PK)

슈퍼키에서 최소성을 만족하여 후보키가 되고 후보키들 중 하나로 테이블에서 하나만 존재할 수 있으면 유일성을 만족해야한다. 이 뜻은 중복되는 값과 NULL값이 포함될 수 없다는 의미이다.

 

우리는 위에서 사번을 기본키로 만들었고 테이블에서 PK는 단 하나이다.

 

  • 대체키

슈퍼키에서 최소성을 만족하여 후보키가 되고 기본키가 아닌 나머지 키들을 대체키라고 한다. 위의 표를 보면 휴대폰 번호가 대체키가 될 수 있다는 것이다.

 

  • 외래키(FK)

외래키는 테이블간의 관계(Relation)을 사용할때 사용되는데 우리가 두개의 테이블을 만든다고 가정한다면 이를 연결해주기 위해서 외래키를 활용한다. 이를 기본키를 참조하여 외래키를 만들기 때문에 외래키는 참조되는 테이블의 기본키와 동일한 키 속성을 가져아한다.

 

그러면 스파회사 정보테이블을 먼저 삭제할 수 있을까?

삭제할 수 없다. 그 이유는 참조되는 테이블을 먼저 삭제하면 외래키는 참조되는 부모테이블의 기본키를 찾을 수 없게된다.

그래서 항상 테이블을 삭제할때 외래키를 해제하던가 외래키를 가진 테이블을 삭제하여야한다.


실무에서 SQL에서 가장 많은 이슈가 생긴다. 코드는 작성을 하지만 테이블을 설계한다고 표현한다.

 

만약 처음부터 설계가 잘못되었다면, 내가 해당 데이터를 조회하는데 어마어마한 시간이 소모된다. 그래서 우리는 이를 정규화를 하여 원자화를 하게된다. 이건 다음 포스팅에서 알아보겠다.

 

반응형