기본 키
1. 개요
기본 키는 관계형 데이터베이스에서 테이블의 각 행을 고유하게 식별하는 데 사용되는 키이다. SQL 표준에서는 `PRIMARY KEY` 제약 조건을 사용하여 정의하며, 테이블 생성 시 또는 `ALTER TABLE` 문을 사용하여 기존 테이블에 추가할 수 있다. 기본 키는 데이터 크기가 작고 불변하는 속성을 선택하는 것이 좋으며, 인공 키, 자연 키, 대체 키 등의 종류가 있다. 기본 키 선택에 대한 논쟁과 함께 한국적 관점, 활용 예시 등이 존재한다.
| 유형 | 관계형 데이터베이스 |
|---|---|
| 설명 | 테이블 내의 데이터를 고유하게 식별하는 데 사용되는 필드 또는 필드 집합 |
| 다른 이름 | 키, 정의 키, 키 필드 |
| 특성 | 각 테이블에는 하나의 기본 키만 있을 수 있음 기본 키 값은 고유해야 함 기본 키 값은 null일 수 없음 |
|---|---|
| 목적 | 테이블의 각 레코드를 고유하게 식별 |
| 관계 | 외래 키를 통해 다른 테이블과의 관계를 설정 |
| 예시 | 직원 ID (EmployeeID) 제품 ID (ProductID) 주문 ID (OrderID) |
| 복합 키 | 둘 이상의 필드로 구성된 기본 키 |
|---|---|
| 대리 키 | 테이블에 대한 고유 식별자로만 사용되는 인공 필드 |
-
데이터 모델링 -
빌딩 정보 모델링
빌딩 정보 모델링(BIM)은 건축물의 전 생애주기 동안 발생하는 정보를 디지털 모델로 통합 관리하는 프로세스이다. -
데이터 모델링 -
저장 프로시저
저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다. -
데이터베이스 -
지식 베이스
지식 베이스는 특정 주제 정보를 체계적으로 저장 및 관리하며 규칙 기반 추론으로 새로운 지식 도출에 활용되고, 웹 콘텐츠 관리 및 지식 관리 시스템으로 확장되어 온톨로지를 이용, 인공지능 기술과 결합하여 문제 해결책을 제시하고 경험을 통해 학습하는 시스템이다. -
데이터베이스 -
화이트리스트
화이트리스트는 특정 대상만 허용하고 나머지는 차단하는 접근 제어 목록으로, 정보보안, 무역, 금융 등 다양한 분야에서 활용되지만, 목록 선정 기준의 불명확성, 사회적 문제점 등의 위험성으로 투명하고 엄격한 관리가 필요하다. -
데이터베이스 관리 시스템 -
트랜잭션 처리
트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다. -
데이터베이스 관리 시스템 -
저장 프로시저
저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
2. 기본 키의 정의 및 특징
관계형 데이터베이스 모델에서 기본 키는 테이블 내에서 특정 레코드를 유일하게 식별하는 데 사용된다. 기본 키는 하나 이상의 열로 구성될 수 있으며, 이를 복합 키라고 한다. 기본 키 제약 조건은 데이터 중복을 방지하고, 참조 무결성을 유지하는 데 중요한 역할을 한다. 기본 키는 암시적으로 `NOT NULL` 제약 조건을 가지며, 이는 해당 열에 NULL 값이 들어갈 수 없음을 의미한다.
기본 키는 증가하는 정수, 범용 고유 식별자(UUID)일 수 있으며, 하이/로우 알고리즘을 사용하여 생성할 수도 있다.
* 학생 명부(학생 번호, 학생 이름, 반)라는 관계의 경우, 학생 번호가 주 키가 될 수 있다. 동명이인을 고려하면, 학생 번호는 유일한 후보 키이므로, 대리 키는 없다.
* 정・부・시・군・구(일본)(町村, ちょうそん, ちょうむら, ちょう) (정촌ID, 정촌명, 군명, 도도부현명)이라는 관계의 경우, 정촌ID와 {도도부현명, 군명, 정촌명}이 후보 키이며, 어느 쪽이든 주 키가 될 수 있다. 예를 들어, 정촌ID를 주 키로 한 경우, {도도부현명, 군명, 정촌명}은 대리 키가 된다.
2.1. SQL에서의 기본 키 정의
SQL:2003 표준에서는 `PRIMARY KEY` 제약 조건을 사용하여 기본 키를 정의한다. `CREATE TABLE` 문을 사용하여 테이블 생성 시 기본 키를 지정하거나, `ALTER TABLE` 문을 사용하여 기존 테이블에 기본 키를 추가할 수 있다.
기존 테이블에 기본 키 제약 조건을 추가하는 구문은 다음과 같다.
```sql
ALTER TABLE