데이터베이스 관리를 쉽게하는 기본 키

데이터베이스 키는 효율적인 관계형 데이터베이스를 만드는 가장 쉬운 방법입니다.

이미 알고 있듯이 데이터베이스는 테이블을 사용하여 정보를 구성합니다. (데이터베이스 개념에 대한 기본 지식이없는 경우 , 데이터베이스 란?을 읽으십시오 . ) 각 테이블은 여러 개의 행으로 구성되며 각 행은 단일 데이터베이스 레코드에 해당합니다. 그렇다면 데이터베이스가 이러한 모든 기록을 어떻게 유지합니까? 그것은 열쇠의 사용을 통해서입니다.

기본 키

우선 논의 할 첫 번째 유형의 키는 기본 키 입니다. 모든 데이터베이스 테이블에는 기본 키로 지정된 하나 이상의 열이 있어야 합니다 . 이 키가 보유하는 값은 데이터베이스의 각 레코드마다 고유해야합니다.

예를 들어 회사의 모든 직원에 대한 인사 정보가 포함 된 Employees라는 테이블이 있다고 가정합니다. 각 직원을 고유하게 식별 할 수있는 적절한 기본 키를 선택해야합니다. 첫 번째 생각은 직원의 이름을 사용하는 것입니다. 같은 이름의 직원 2 명을 고용하는 것이 가능하기 때문에 이것은 잘 해결되지 않습니다. 더 나은 선택은 고용 될 때 각 직원에게 할당하는 고유 한 직원 ID 번호를 사용하는 것입니다. 일부 조직은이 작업에 사회 보장 번호 (또는 유사한 정부 식별자)를 사용하기를 원합니다. 왜냐하면 각 직원마다 이미 하나가 있으며 고유 한 것으로 보장되기 때문입니다. 그러나이 목적을 위해 사회 보장 번호를 사용하는 것은 개인 정보 보호 문제로 인해 매우 논쟁의 여지가 있습니다. (정부 기관에서 근무하는 경우 사회 보장 번호 사용은 1974 년 사생활 보호법에 따라 불법 일 수도 있습니다.) 이러한 이유로 대부분의 조직에서는 고유 한 식별자 (직원 ID, 학생증 등)로 이동했습니다. .) 이러한 개인 정보 보호 문제를 공유하지 않습니다.

기본 키를 결정하고 데이터베이스를 설정하면 데이터베이스 관리 시스템이 키의 고유성을 적용합니다.

기존 레코드를 복제하는 기본 키가있는 테이블에 레코드를 삽입하려고하면 삽입이 실패합니다.

대부분의 데이터베이스는 자체 기본 키를 생성 할 수도 있습니다. 예를 들어 Microsoft Access는 일련 번호 데이터 형식을 사용하여 테이블의 각 레코드에 고유 한 ID를 할당하도록 구성 될 수 있습니다. 효과적이기는하지만 이는 테이블의 각 레코드에 의미없는 값을 남겨주기 때문에 잘못된 디자인 방법입니다. 왜 그 공간을 유용하게 저장하는 데 사용하지 않습니까?

외래 키

또 다른 유형은 테이블 간의 관계를 만드는 데 사용되는 외래 키 입니다. 대부분의 데이터베이스 구조에서 테이블간에 자연스러운 관계가 있습니다. Employees 데이터베이스로 돌아가 부서 정보를 포함하는 테이블을 데이터베이스에 추가하려고한다고 가정 해보십시오. 이 새 테이블은 부서라고 할 수 있으며 전체 부서에 대한 많은 양의 정보를 포함합니다. 우리는 또한 부서의 직원에 대한 정보를 포함하고자하지만 동일한 정보를 두 테이블 (직원 및 부서)에 포함시키는 것은 불필요합니다. 대신 두 테이블 간의 관계를 만들 수 있습니다.

Departments 테이블이 부서 이름 열을 기본 키로 사용한다고 가정 해 봅시다. 두 테이블 간의 관계를 만들려면 Department라는 Employees 테이블에 새 열을 추가합니다. 그런 다음 각 직원이 속한 부서 이름을 기입합니다. 또한 Employees 테이블의 Department 열이 Departments 테이블을 참조하는 외래 키 임을 데이터베이스 관리 시스템에 알립니다.

그런 다음 데이터베이스는 Employees 테이블의 Departments 열에있는 모든 값에 Departments 테이블에 해당 항목이 있는지 확인하여 참조 무결성 을 적용합니다.

외래 키에 대한 고유성 제약 조건 은 없습니다. 우리는 단일 부서에 속한 직원이 두 명 이상일 수 있습니다. 마찬가지로 Departments 테이블의 항목에 Employees 테이블의 해당 항목이 있어야한다는 요구 사항은 없습니다. 직원이없는 부서도있을 수 있습니다.

이 항목에 대한 자세한 내용은 외부 키 만들기 를 참조하십시오.