기본 키와 후보 키의 차이 | 기본 키 대 후보 키
후보 키 정의, 기본 키 정의, 기본 키 정의, 후보 키 정의, 기본 키와 후보 키의 차이, > 기본 키 대 후보 키
후보 키에서 기본 키가 선택되었지만 기본 키와 다른 후보 키 간에는 약간의 차이가 있습니다 (이 기사에서 자세히 설명 함). 데이터베이스 설계는 데이터를 유지하고 저장할 때 수행해야하는 가장 중요한 활동 중 하나입니다. 이 설계 프로세스 중에 많은 관계가있는 여러 테이블을 작성해야합니다. 데이터베이스의 이러한 테이블에 액세스하기 위해 MYSQL, MSAccess, SQLite 등과 같은 최신 데이터베이스 설계 언어에서 다른 유형의 키가 사용됩니다. 이러한 키 중 후보 키와 기본 키가 데이터베이스 설계 관행에 필수적입니다.
후보자 키 란 무엇입니까?
후보 키는 다른 데이터를 참조하지 않고 데이터베이스 레코드를 고유하게 식별하는 데 사용할 수있는 데이터베이스 테이블의 단일 열 또는 열 집합입니다. 데이터베이스의 각 테이블에는 하나 이상의 후보 키가있을 수 있습니다. 기능 키를 사용하여 후보 키 세트를 작성할 수 있습니다. 후보 키에는 몇 가지 중요한 기능이 있습니다. 그들은;
• 후보 키는 절대로 변경되어서는 안되며, 엔티티의 특정 발생에 대해 동일한 값을 보유해야합니다.
후보 키의 주요 목적은 큰 테이블에서 수백만 행 중에서 하나의 행을 식별하는 것입니다. 각 후보 키는 기본 키가 될 자격이 있습니다. 그러나 모든 후보 키 중에서 가장 중요하고 특별한 후보 키는 테이블의 기본 키가되며 후보 키 중에서 가장 좋습니다.
기본 키는 테이블
에 저장된 레코드 를 고유하게 식별하는 데 사용되는 테이블의 가장 좋은 후보 키입니다 (999). 데이터베이스에 새 테이블을 만들 때 기본 키를 선택하라는 메시지가 표시됩니다. 따라서 테이블에 대한 기본 키를 선택하는 것이 데이터베이스 설계자가 취해야 할 가장 중요한 결정입니다. 기본 키를 결정할 때 고려해야 할 가장 중요한 제약 조건은 테이블의 선택된 열에는 고유 한 값만 포함하고 NULL 값을 포함하면 안된다는 것입니다. 테이블을 디자인 할 때 일반적으로 사용되는 기본 키 중 일부는 사회 보장 번호 (SSN), ID 및 국가 신원 카드 번호 (NIC)입니다. 프로그래머는 변경하기가 어렵 기 때문에 기본 키를 신중하게 선택해야합니다. 따라서 프로그래머에 따르면 기본 키를 만드는 가장 좋은 방법은 Microsoft Access의 일련 번호 데이터 형식으로 만든 레코드 ID와 같이 내부적으로 생성 된 기본 키를 사용하는 것입니다. 기존 레코드를 복제하는 기본 키가있는 테이블에 레코드를 삽입하려고하면 삽입이 실패합니다. 기본 키 값은 계속 변하지 않아야하므로 정적 기본 키를 유지하는 것이 더 중요합니다. 기본 키가 최상의 후보 키입니다.
기본 키와 후보 키의 차이점은 무엇입니까?
• 후보 키는 고유 한 것으로 간주되는 열이며 기본 키는 레코드를 고유하게 식별하는 열입니다.
• 후보 키가없는 테이블은 관계를 나타내지 않습니다.
• 데이터베이스에는 테이블에 대한 후보 키가 많이있을 수 있지만 테이블에는 기본 키가 하나만 있어야합니다.
• 기본 키가 후보 키 중 하나이지만, 때때로 유일한 후보 키입니다.
• 기본 키가 선택되면 다른 후보 키가 고유 키가됩니다.
• 실제로 후보 키는 현재 값을 포함하지 않지만 NULL 값을 포함 할 수 있습니다. 따라서 기본 키는 NULL 값을 포함해서는 안되기 때문에 후보 키는 기본 키에 대해 한정되지 않습니다.
• 현재 유일무이 한 후보 키가 후보 키가 기본 키가되지 못하게하는 중복 값을 포함 할 수도 있습니다.
요약:
기본 키 대 후보 키
후보 키와 기본 키는 레코드의 데이터를 고유하게 식별하고 데이터베이스 테이블간에 관계를 설정하기 위해 데이터베이스 설계에 사용되는 필수 키입니다. 테이블에는 기본 키가 하나만 있어야하며 둘 이상의 후보 키가 포함될 수 있습니다. 오늘날 대부분의 데이터베이스는 자체 기본 키를 자동으로 생성 할 수 있습니다. 따라서 기본 키 W 후보 키는 데이터베이스 관리 시스템에 대한 많은 지원을 제공합니다.
이미지 제공: SqlPac에 의한
기본 키 (CC BY-SA 3.0)