슈퍼 키
1. 개요
슈퍼 키는 데이터베이스 관계에서 각 튜플을 유일하게 식별하는 하나 이상의 속성 집합을 의미한다. 후보 키를 포함하는 상위 개념으로, 후보 키에 불필요한 속성을 추가한 경우에도 슈퍼 키가 될 수 있다. 관계의 모든 속성으로 구성된 집합은 항상 슈퍼 키이며, 슈퍼 키는 관계 스키마의 함수 종속성 제약 조건을 기반으로 판별한다. 예를 들어, 주민등록번호는 슈퍼 키이며, {주민등록번호, 이름} 또한 슈퍼 키이다.
-
데이터베이스 -
지식 베이스
지식 베이스는 특정 주제 정보를 체계적으로 저장 및 관리하며 규칙 기반 추론으로 새로운 지식 도출에 활용되고, 웹 콘텐츠 관리 및 지식 관리 시스템으로 확장되어 온톨로지를 이용, 인공지능 기술과 결합하여 문제 해결책을 제시하고 경험을 통해 학습하는 시스템이다. -
데이터베이스 -
화이트리스트
화이트리스트는 특정 대상만 허용하고 나머지는 차단하는 접근 제어 목록으로, 정보보안, 무역, 금융 등 다양한 분야에서 활용되지만, 목록 선정 기준의 불명확성, 사회적 문제점 등의 위험성으로 투명하고 엄격한 관리가 필요하다. -
데이터베이스 관리 시스템 -
트랜잭션 처리
트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다. -
데이터베이스 관리 시스템 -
저장 프로시저
저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다. -
데이터 모델링 -
빌딩 정보 모델링
빌딩 정보 모델링(BIM)은 건축물의 전 생애주기 동안 발생하는 정보를 디지털 모델로 통합 관리하는 프로세스이다. -
데이터 모델링 -
저장 프로시저
저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
2. 슈퍼 키의 개념
슈퍼 키는 테이블 내에서 각 튜플을 유일하게 식별할 수 있는 하나 이상의 속성 집합이다. 슈퍼 키는 유일성을 만족하는 최소한의 속성 집합인 후보 키를 포함하는 상위 개념이다.
후보 키와의 차이는, 슈퍼 키는 '고유하게 식별하는 모든 조합'을 뜻하는 점이다. 즉, 후보 키에 불필요한 속성을 덧붙여 장황하게 한 것은 후보 키는 아니지만 여전히 슈퍼 키이다. 더 줄일 수 없는 슈퍼 키, 즉 속성의 중복이 없는 슈퍼 키는 후보 키이기도 하다. 예를 들어, 마을(마을 ID, 도시명, 도명)이라는 관계의 경우 마을 ID, {마을 ID, 도시명}, {마을 ID, 도명}, {마을 ID, 도시명, 도명} {도시명, 도명}은 모두 슈퍼 키이다.
관계의 모든 속성으로 구성된 집합은 그 관계가 기저 관계이든 파생 관계(뷰)이든 항상 슈퍼 키이다.
| 군주 이름 | 군주 번호 | 왕가 |
|---|---|---|
| 에드워드 | 2세 | 플랜태저넷 |
| 에드워드 | 3세 | 플랜태저넷 |
| 리처드 | 3세 | 플랜태저넷 |
| 헨리 | 4세 | 랭커스터 |
먼저, 모든 속성 집합을 나열합니다.
* {}
* {군주 이름}
* {군주 번호}
* {왕가}
* {군주 이름, 군주 번호}
* {군주 이름, 왕가}
* {군주 번호, 왕가}
* {군주 이름, 군주 번호, 왕가}
다음으로, 슈퍼키의 요구 사항을 충족하지 않는 모든 집합을 제거한다. 예를 들어, {군주 이름, 왕가}는 동일한 속성 값(에드워드, 플랜태저넷)에 대해 두 개의 서로 다른 튜플이 있기 때문에 슈퍼키가 될 수 없다.
* (에드워드, 2세, 플랜태저넷)
* (에드워드, 3세, 플랜태저넷)
마지막으로, 제거 후, 남은 속성 집합은 이 예제에서 가능한 유일한 슈퍼키이다.
* {군주 이름, 군주 번호} — 이는 또한 후보키이다.
* {군주 이름, 군주 번호, 왕가}
실제로, 슈퍼키는 관계에서 하나의 튜플 집합을 검사하는 것만으로는 결정할 수 없다. 슈퍼키는 해당 관계 스키마의 모든 가능한 인스턴스 관계에 대해 유지되어야 하는 관계 스키마의 함수 종속성 제약 조건을 정의한다.
2.1. 후보 키와의 관계
후보 키는 튜플을 고유하게 식별할 수 있는 최소한의 속성 집합이다. 슈퍼 키는 후보 키에 다른 속성을 추가하여 만들 수 있다. 즉, 후보 키는 슈퍼 키의 부분 집합이다. 예를 들어, 주민등록번호는 후보 키이며, 동시에 슈퍼 키이다. {주민등록번호, 이름} 또한 슈퍼 키이지만, 최소성을 만족하지 않으므로 후보 키는 아니다.
관계의 모든 속성으로 구성된 집합은 그 관계가 기저 관계이든 파생 관계(뷰)이든 항상 슈퍼 키이다.
예를 들어, 잉글랜드 군주라는 관계에서
| 군주 이름 | 군주 번호 | 왕가 |
|---|---|---|
| 에드워드 | 2세 | 플랜태저넷 |
| 에드워드 | 3세 | 플랜태저넷 |
| 리처드 | 3세 | 플랜태저넷 |
| 헨리 | 4세 | 랭커스터 |
{군주 이름, 군주 번호}, {군주 이름, 군주 번호, 왕가}는 슈퍼키가 될수 있다. {군주 이름, 군주 번호}는 후보 키이기도 하다. 하지만 {군주 이름, 왕가}의 경우 (에드워드, 2세, 플랜태저넷)와 (에드워드, 3세, 플랜태저넷)처럼 동일한 속성 값에 대해 두개의 서로 다른 튜플이 존재하기 때문에 슈퍼키가 될 수 없다.
슈퍼 키는 관계에서 하나의 튜플 집합을 검사하는 것만으로는 결정할 수 없다. 슈퍼 키는 해당 관계 스키마의 모든 가능한 인스턴스 관계에 대해 유지되어야 하는 관계 스키마의 함수 종속성 제약 조건을 정의한다.
3. 슈퍼 키의 예시
대한민국 국민의 주민등록번호는 그 자체로 슈퍼 키이다. {주민등록번호, 이름}, {주민등록번호, 주소, 생년월일} 등도 슈퍼 키이다.
3.1. 잉글랜드 군주 예시
| 군주 이름 | 군주 번호 | 왕가 |
|---|---|---|
| 에드워드 | 2세 | 플랜태저넷 |
| 에드워드 | 3세 | 플랜태저넷 |
| 리처드 | 3세 | 플랜태저넷 |
| 헨리 | 4세 | 랭커스터 |
{군주 이름, 왕가}는 동일한 속성 값(에드워드, 플랜태저넷)에 대해 두 개의 서로 다른 튜플이 있기 때문에 슈퍼키가 될 수 없다.
* (에드워드, 2세, 플랜태저넷)
* (에드워드, 3세, 플랜태저넷)
따라서, 이 예제에서 가능한 유일한 슈퍼키는 다음과 같다.
* {군주 이름, 군주 번호} — 이는 또한 후보키이다.
* {군주 이름, 군주 번호, 왕가}
슈퍼키는 관계에서 하나의 튜플 집합을 검사하는 것만으로는 결정할 수 없다. 슈퍼키는 해당 관계 스키마의 모든 가능한 인스턴스 관계에 대해 유지되어야 하는 관계 스키마의 함수 종속성 제약 조건을 정의한다.
4. 슈퍼 키 판별
슈퍼 키는 관계 스키마의 함수 종속성 제약 조건을 기반으로 판별한다. 특정 튜플 집합만으로는 슈퍼 키를 결정할 수 없으며, 관계 스키마의 모든 가능한 인스턴스에서 유일성을 만족해야 한다. 관계의 모든 속성 집합은 항상 슈퍼 키이다.
후보 키와의 차이는, 슈퍼 키는 '고유하게 식별하는 모든 조합'을 뜻하는 점이다. 즉, 후보 키에 불필요한 속성을 덧붙여 장황하게 한 것은 후보 키는 아니지만 여전히 슈퍼 키이다. 더 줄일 수 없는 슈퍼 키, 즉 속성의 중복이 없는 슈퍼 키는 후보 키이기도 하다. 예를 들어, 마을(마을 ID, 도시명, 도명)이라는 관계의 경우 마을 ID, {마을 ID, 도시명}, {마을 ID, 도명}, {마을 ID, 도시명, 도명} {도시명, 도명}은 모두 슈퍼 키이다.