반응형
해당 글에서는 관계형 데이터 베이스의 키에 대해 이해하고 각각의 종류들에 대해 이해를 돕기 위해 작성한 글입니다.
1) 데이터베이스 키(Key)
💡 데이터베이스 키(Key)
- 데이터베이스에서 각 ‘행’을 구분하는 ‘유일한 식별자’를 의미합니다.
- 일반적으로 키는 테이블에서 하나 이상의 열로 구성되며 해당 열 값은 유일하고 불변해야 합니다.
- 키는 데이터 정합성 유지, 검색, 수정, 삭제 등의 작업을 수행할 때 중요한 역할을 합니다.
[ 더 알아보기 ]
💡 데이터 정합성
- 데이터가 올바르게 유지되고 일관성 있게 유지되는 것을 의미합니다. 이는 데이터베이스 내의 모든 데이터가 정확하고 일관되게 유지되도록 하는 것을 목표로 합니다.
[참고] 데이터베이스의 행과 열에 대한 용어들
💡 데이터베이스는 행과 열로 구성이 되어 있으며 이에 대해 각각의 용어를 확인해 봅니다.
용어 | 의미 |
열(Column) | 하나의 데이터 타입을 가진 값들의 집합을 의미합니다. |
필드(Feild) | 테이블에서 열(Column)을 구성하는 하나의 세부 항목을 의미합니다. |
속성(Attribute) | 필드와 동일한 의미로 사용되며, 열(Column)을 구성하는 하나의 세부 항목을 의미합니다. |
행(row) | 테이블에서 하나의 행을 의미합니다. |
튜플(tuple) | 테이블에서 하나의 행을 의미합니다. |
레코드(record) | 테이블에서 하나의 행(Row)을 의미합니다. |
2) 데이터베이스 키 종류
💡 데이터베이스에서 키의 종류는 기본 키, 후보 키, 대체 키, 슈퍼 키, 외래 키, 복합 키, 유니크 키 등이 있습니다.
1. 요약
키 종류 | 설명 |
기본 키(Primary Key) | 테이블에서 각 행을 ‘유일하게 식별’할 수 있는 키 |
후보 키(Candidate Key) | 기본 키가 될 수 있는 후보로 선정된 키 |
대체 키(Alternate Key) | 기본 키 대신 사용할 수 있는 다른 유일한 식별자 |
슈퍼 키(Super Key) | 레코드(행)를 유일하게 식별할 수 있는 하나 이상의 키 |
외래 키(Foreign Key) | 다른 테이블의 기본 키로 사용되는 키 |
복합 키(Composite Key) | 두 개 이상의 열을 조합하여 만든 키 |
유니크 키(Unique Key) | 중복된 값을 가질 수 없는 키 |
2. 기본 키(Primary Key) = 주 키, 프라이머리 키
💡 기본 키(Primary Key)
- 테이블 내에서 특정 레코드(행)를 식별하기 위해 사용되며 중복되는 값이 없어야 합니다.
- 일반적으로 숫자 또는 문자열 형태로 사용됩니다.
- NULL 값, 빈 값에 대해 허용하지 않습니다.
3. 후보 키(Candidate Key)
💡 후보 키(Candidate Key)
- 테이블의 행을 유일하게 식별할 수 있는 속성 또는 속성의 집합입니다.
- 유일성을 보장하기 위해 NULL 값, 빈 값을 허용하지 않습니다.
[ 더 알아보기 ]
💡 기본 키 외에 다른 컬럼들이 모두 후보 키 인가?
- 아닙니다. ‘가능성이 있는 컬럼’일 뿐 고유성(unique)과 최소성(minimality)을 만족해야 합니다.
- 즉 후보키로 선정된 컬럼들은 ‘중복된 값이 없어야’ 하며 후보키로 선정된 모든 컬럼의 부분집합이 후보키가 되면 안 됩니다.
4. 대체 키(Alternate Key)
💡 대체 키(Alternate Key)
- 기본 키(Primary)로 사용되지 않는 후보 키(Candidate Key)의 집합을 의미합니다.
- 후보 키와 대체 키가 다른 점은 둘 다 행을 유일하게 식별 가능하지만, 대체 키의 경우 'NULL의 값을 가질 수 있습니다.'
5. 슈퍼 키(Super Key)
💡 슈퍼 키(Super Key)
- 행을 고유하게 식별할 수 있는 모든 필드의 조합입니다.
- 주 키와 후보 키, 대체 키들의 조합이 슈퍼키가 된다.
- 대체 키가 포함되어 있기에 NULL 값을 허용합니다.
[참고] 기본키 - 후보키 - 슈퍼키 간의 관계
💡 슈퍼키는 후보키가 될 수 있고, 후보 키는 슈퍼키가 될 수 있다는 서로 간의 관계를 의미합니다.
6. 외래 키(Foreign Key)
💡 외래 키(Foreign Key)
- 두 개 이상의 테이블을 연결하는 데 사용됩니다. 하나의 테이블에서 다른 테이블의 주 키를 ‘참조’합니다.
7. 복합 키(Composite Key)
💡 복합 키(Composite Key)
- ‘두 개 이상의 열을 조합’하여 ‘고유한 값’을 나타내는 키를 의미합니다. 이러한 키는 하나의 열만으로 유일성을 보장할 수 없는 경우 사용이 됩니다.
- 대표적으로 주문서 번호와 주문 내역 상세번호를 합쳐서 고유한 값을 나타내는 경우가 있습니다.
8. 유니크 키(Unique Key) = 유일 키
💡 유니크 키(Unique Key)
- 데이터베이스에서 테이블에 존재하는 특정 ‘컬럼(열)의 값이 모두 다르도록 제약’을 걸어둔 것을 말합니다.
- 테이블 내에는 여러 개의 유니크 키가 존재할 수 있습니다.
- 유니크 키는 중복된 데이터가 존재하지 않도록 하기 위해 사용됩니다.
- 유니크 키는 빈값 또는 NULL 값을 허용하는 데이터베이스도 있지만 NOT NULL 제약 조건을 걸어두는 것을 권장합니다.
- 회원가입 시 이메일 주소를 입력하는 컬럼에 유니크 키를 걸어두면 같은 이메일로 중복해서 회원가입을 하는 것을 막을 수 있습니다.
오늘도 감사합니다. 😀
반응형
'DB > 이론 및 문법' 카테고리의 다른 글
[DB/mongo] Document DB 이해하기 -1 : MongoDB 이론 및 주요 메서드 (0) | 2023.09.24 |
---|---|
[DB/Postgres] 뷰 테이블(View Table) 이해하고 활용하기 (0) | 2023.09.22 |
[DB/Postgres] PL/pgSQL 구성하기 -2 : DBeaver 기반 구축 및 활용 (0) | 2023.04.17 |
[DB/Postgres] 테이블 스캔 -1 : 전체, 인덱스(전체, 범위, 고유, 루스, 병합) 스캔 (2) | 2023.04.09 |
[DB/Postgres] GROUP BY, ORDER BY, LIMIT 이해하기 -1 (0) | 2023.04.08 |