기본 키는 데이터 무결성을 강화하고 성공적인 데이터 검색을 가능하게 함으로써 관계형 데이터베이스에서 중요한 역할을 합니다. 또한 기본 키는 관계형 데이터베이스에서 테이블 간의 관계를 정의하기 위해 다른 유형의 키에서 참조할 수 있습니다.
다양한 데이터베이스에서 자주 인용되는 기본 키의 예는 다음과 같습니다.
기본 키에 대한 세부 사항을 살펴보기 전에 관계형 데이터베이스 시스템과 기본 키와 같은 키가 데이터베이스 설계에서 수행하는 역할을 이해하는 것이 도움이 됩니다.
관계형 데이터베이스는 여러 테이블에 걸쳐 구조화된 데이터를 저장하며, 서로 다른 테이블 간에 관련 데이터 포인트가 존재합니다. 이러한 데이터베이스는 IBM Db2, Oracle Database, Microsoft SQL Server 및 PostgreSQL, mySQL과 같은 오픈 소스 데이터베이스 시스템 등의 관계형 데이터베이스 관리 시스템을 통해 관리됩니다.
구조화 쿼리 언어(SQL)는 데이터베이스 상호 작용에 사용되는 일반적인 프로그래밍 언어이지만 일부 데이터베이스 관리 시스템은 다른 언어를 지원합니다.
데이터베이스 컨텍스트에서 키는 테이블의 데이터 행을 식별하는 데 사용되는 열 또는 정렬된 열 모음입니다. 키는 관련 테이블 간의 관계를 표시하고 고유 레코드를 식별하며 데이터의 정확성과 무결성을 보장하여 데이터베이스를 구성하는 데 도움이 됩니다. 이러한 이점은 성공적이고 효율적인 SQL 데이터베이스 쿼리를 지원합니다.
SQL 기본 키라고도 하는 기본 키는 기본 키 값과 연결된 각 레코드에 고유 식별자를 제공합니다. 기본 키의 중요한 특성은 다음과 같습니다.
기본 키는 단일 테이블 내의 기존 열일 수 있으며, 이 경우 자연 키라고 합니다. 그러나 테이블에 기본 키 제약 조건(값이 null이 아닌 고유해야 한다는 기본 키 규칙)을 충족하는 단일 열이 없는 경우가 있습니다.
이러한 상황에서는 테이블의 기존 데이터에서 파생되지 않은 고유 값의 새 열이 기본 키 역할을 하도록 생성될 수 있습니다. 이렇게 인위적으로 생성된 기본 키를 대체 키라고 합니다.
관계형 데이터베이스 관리 시스템은 일반적으로 열에 대해 고유 값을 생성하는 기능을 제공하며, 이는 대체 키로 사용할 수 있습니다. 예를 들어, mySQL의 자동 증가 기능이 있습니다.
기본 키는 복합 키일 수도 있으며, 이는 하나 이상의 열 값으로 구성된다는 의미입니다.
복합 기본 키는 레코드를 식별하는 데 사용할 수 있는 열의 고유 조합으로, 대체 키 생성을 대신할 수 있습니다. 예를 들어, 고객 성 열과 생년월일 열을 결합하여 복합 기본 키를 만들 수 있습니다.
SQL은 타임스탬프(날짜 및 시간 표현)에서 varchar(가변 길이 문자열)에 이르는 다양한 데이터 유형을 지원합니다. 그러나 모든 데이터 유형이 기본 키에 적합한 것은 아닙니다.
숫자 값, 특히 정수를 포함하는 열은 일반적으로 관계형 데이터베이스 관리 시스템에서 더 빠르게 처리되므로 기본 키로 사용하는 것이 좋습니다.
데이터베이스 관리에 사용되는 다른 키는 다음과 같습니다.
기본 키는 고유 키의 하위 집합입니다. 고유 키는 고유 제약 조건이라고 알려진 규칙을 따릅니다. 이 규칙은 키 값이 고유한 경우에만 유효하다는 것입니다. 모든 기본 키는 고유 키이지만, 모든 고유 키가 기본 키인 것은 아닙니다. 기본 키와 달리 고유 키에는 null 값이 포함될 수 있기 때문입니다.
후보 키는 고유한 값을 포함하고 null 값이 없기 때문에 기본 키 역할을 할 수 있는 키입니다. 기본 키와 후보 키의 차이점은 기존 테이블에 여러 개의 후보 키는 있을 수 있지만 기본 키는 하나만 존재한다는 것입니다.
슈퍼 키는 여러 열을 포함할 수 있고 레코드를 식별하는 데 사용할 수 있다는 점에서 복합 기본 키와 유사합니다. 그러나 슈퍼 키는 레코드를 고유하게 식별하는 데 엄격하게 필요한 것보다 더 많은 열이나 정보를 포함할 수 있지만, 복합 기본 키는 필요한 것보다 더 많은 열이나 데이터를 포함하지 않습니다.
한 테이블의 외래 키는 다른 테이블의 특정 기본 키를 참조하여 테이블 간 관계를 정의합니다. 예를 들어, 고객 주문 정보를 담은 테이블의 외래 키는 고객 데이터를 포함한 다른 테이블의 고유 고객 ID가 포함된 기본 키 열을 참조할 수 있습니다. 이렇게 하면 특정 고객의 주문이 해당 고객의 이메일 주소, 생년월일과 같은 중요한 정보와 연결될 수 있습니다.
기본 키와 외래 키가 관계형 데이터베이스에서 테이블 간 관계를 어떻게 정의하는지 이해하려면 참조 무결성 제약 조건을 고려하는 것이 도움이 됩니다.
참조 제약 조건 또는 외래 키 제약 조건이라고도 하는 참조 무결성 제약 조건은 한 테이블의 외래 키 값이 다른 테이블의 기본 키 값과 일치해야 하는 규칙입니다.
예를 들어, 직원 데이터베이스에서 참조 무결성 제한조건은 EMPLOYEE 테이블의 각 직원이 DEPARTMENT 테이블에 나열된 기존 회사 부서의 구성원이어야 함을 지정할 수 있습니다.
이 경우 DEPARTMENT 테이블의 기본 키는 고유한 부서 번호를 저장하는 열이고, EMPLOYEE 테이블의 외부 키는 동일한 고유한 부서 번호를 저장하는 열입니다. 이러한 일치하는 열은 테이블이 외래 키 제약 조건을 준수한다는 것을 의미합니다.
DEPARTMENT 테이블이 EMPLOYEE 테이블의 외래 키가 참조하는 기본 키를 포함하고 있으므로 EMPLOYEE 키는 DEPARTMENT 테이블에 종속된 것으로 간주됩니다. 따라서 이 테이블 관계에서 DEPARTMENT 테이블은 “상위 테이블”로 간주됩니다.
참조 무결성 제약 조건은 데이터베이스에 잘못된 데이터가 삽입되는 것을 차단할 수 있습니다. 예를 들어, 이러한 제약 조건은 직원 레코드에 포함된 부서 번호가 DEPARTMENT 테이블에 존재하지 않는 경우 사용자가 EMPLOYEE 테이블에 해당 직원 레코드를 추가하는 것을 방지합니다.
관계형 데이터베이스 관리 시스템은 데이터베이스의 각 기본 키에 대응하는 고유 인덱스를 생성하거나 생성하도록 요구할 수 있습니다. 데이터베이스 설계에서 인덱스는 테이블의 행을 참조하는 포인터 집합입니다. 인덱스를 사용하여 데이터 검색 최적화를 비롯한 성능을 개선할 수 있습니다.
데이터 모델링은 데이터베이스 스키마의 시각적 표현 또는 데이터베이스의 테이블 간 데이터 관계에 대한 청사진을 제공합니다. 데이터 모델에는 이러한 관계를 유지하는 데 사용되는 기본 키 및 외래 키에 대한 정보가 포함될 수 있습니다.
SQL 문은 관계형 데이터베이스와 상호 작용하는 데 사용되는 명령입니다. SQL 구문에서 테이블의 기본 키는 CREATE TABLE 또는 ALTER TABLE 문을 사용하여 할당하거나 추가할 수 있습니다.
예를 들어, IBM의 Db2를 사용하여 EMP라는 직원 이름 테이블을 생성하는 CREATE TABLE 문을 고려해 보겠습니다. 열 이름은 ID(직원 ID용), FIRSTNME 및 LASTNAME(각각 최대 15자)입니다. ID가 기본 키로 선택되면 구문은 다음과 같을 수 있습니다.
Db2에서 기존 테이블에 대해 ALTER TABLE 문을 사용할 때 기본 키를 추가하는 절은 ADD PRIMARY KEY이며, 외래 키는 상위 테이블을 참조하는 ADD CONSTRAINT 절을 통해 추가됩니다.
IBM 데이터베이스 솔루션을 사용하면 하이브리드 클라우드 전반에서 다양한 워크로드 요구 사항을 충족할 수 있습니다.
IBM Db2에 대해 알아보세요. 고성능과 확장성, 안정성을 제공하여 구조화된 데이터를 저장하고 관리하는 관계형 데이터베이스 IBM Db2는 IBM Cloud에서 SaaS 형태로, 또는 자체 호스팅을 통해 사용할 수 있습니다.
IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.