programing

기본 키와 대리 키의 차이점은 무엇입니까?

lastmoon 2023. 7. 16. 17:44
반응형

기본 키와 대리 키의 차이점은 무엇입니까?

저는 많은 검색을 했지만, 정확한 단도직입적인 답을 예로 들어 찾지 못했습니다.

이에 대한 예는 어떤 것이든 더 도움이 될 것입니다.

기본 키는 테이블에서 레코드를 가장 고유하게 식별하는 고유한 키입니다.레코드를 업데이트하거나 삭제하려면 레코드를 고유하게 식별하는 방법을 알아야 하므로 모든 테이블에는 기본 키가 있어야 합니다.

대리 키는 인공적으로 생성된 키입니다. 키▁()가 없을 때 유용합니다.Person같은 날짜에 태어난 두 사람이 동일한 이름을 가질 수도 있고 로그에 기록될 수도 있기 때문에, 두 사건이 동일한 타임스탬프를 전달할 수도 있기 때문입니다.)대부분의 경우 자동 증분 필드에서 정수로 구현되거나 각 레코드에 대해 자동으로 생성되는 GUID로 구현됩니다.ID 번호는 거의 항상 대리 키입니다.

그러나 기본 키와 달리 모든 테이블에 대리 키가 필요한 것은 아닙니다.만약 당신이 미국의 주들을 나열하는 표를 가지고 있다면, 당신은 그들을 위한 ID 번호가 필요하지 않습니다.상태 약어를 기본 키 코드로 사용할 수 있습니다.

대리 키의 주요 장점은 고유한 키로 보증하기 쉽다는 것입니다.가장 큰 단점은 그들이 아무런 의미가 없다는 것입니다.예를 들어, "28"이 위스콘신이라는 의미는 없지만, 여러분이 '를 볼 수 있습니다.주소 테이블의 상태 열에 있는 'WI'는 상태 테이블에서 어떤 상태를 검색할 필요 없이 어떤 상태를 말하는지 알 수 있습니다.

대리 키는 행을 고유하게 식별하기 위한 목적으로만 구성된 값입니다.일반적으로 이 값은 자동 증분 ID로 표시됩니다.

코드 예제:

CREATE TABLE Example
(
    SurrogateKey INT IDENTITY(1,1) -- A surrogate key that increments automatically
)

기본 키는 테이블의 식별 열 또는 열 집합입니다.대리 키 또는 다른 고유한 열 조합(예: 복합 키)일 수 있습니다.모든 행에 대해 고유해야 하며 다음과 같을 수 없습니다.NULL.

코드 예제:

CREATE TABLE Example
(
    PrimaryKey INT PRIMARY KEY -- A primary key is just an unique identifier
)

모든 키는 자신이 식별한 항목의 대용품으로 사용되는 식별자입니다.E.F. Codd는 다음과 같이 시스템이 할당한 대리 개념을 설명했습니다 [1].

데이터베이스 사용자는 시스템에서 대리모를 생성하거나 삭제할 수 있지만 해당 값을 제어할 수 없으며 해당 값이 표시되지도 않습니다.

이것은 일반적으로 대리 키라고 하는 것입니다.그러나 Codd는 이러한 기능이 DBMS에 의해 제공될 것이라고 가정했기 때문에 이 정의는 즉시 문제가 됩니다. DBMS에는 일반적으로 이러한 기능이 없습니다.키는 일반적으로 적어도 일부 DBMS 사용자가 볼 수 있습니다. 명백한 이유로 볼 수 있어야 합니다.따라서 대리 개념은 사용에서 약간 변형되었습니다.이 용어는 일반적으로 데이터 관리 전문가에서 노출되지 않고 비즈니스 도메인에서 식별자로 사용되는 키를 의미합니다.이는 키가 생성되는 방식 또는 키가 "인공"으로 인식되는 방식과 근본적으로 관련이 없습니다.모든 열쇠는 인간이나 기계가 발명한 기호로 구성되어 있습니다.따라서 대리라는 용어의 유일한 의미는 키가 어떻게 생성되는지 또는 값이 무엇인지가 아니라 키가 어떻게 사용되는지와 관련이 있습니다.

더 많은 의미를 포착하기 위해 데이터베이스 관계 모델을 확장하는 것, E.F.커드, 1979

이것은 다양한 종류의 키를 설명하는 훌륭한 방법입니다.

http://www.agiledata.org/essays/keys.html

대체 키는 일반적으로 숫자 값입니다.SQL Server 내에서 Microsoft는 ID 속성으로 열을 정의하여 대리 키 값을 생성할 수 있도록 지원합니다.

주 키 제약 조건은 데이터베이스 테이블의 각 레코드를 고유하게 식별합니다.기본 키에는 고유 값이 포함되어야 합니다.기본 키 열에는 NULL 값을 포함할 수 없습니다.대부분의 테이블에는 기본 키가 있어야 하며 각 테이블에는 기본 키가 하나만 있을 수 있습니다.

http://www.databasejournal.com/features/mssql/article.php/3922066/SQL-Server-Natural-Key-Verses-Surrogate-Key.htm

Michelle Poolt는 그것을 매우 명확한 방식으로 설명한다고 생각합니다.

대리 키는 인위적으로 생성된 값이며, 대부분의 경우 시스템에서 관리하는 증분 카운터이며, 값의 범위는 1에서 n까지이며, 여기서 n은 테이블의 최대 행 수를 나타냅니다.SQL Server에서는 숫자 데이터 유형이 있는 열에 ID 속성을 할당하여 대리 키를 생성합니다.

http://sqlmag.com/business-intelligence/surrogate-key-vs-natural-key

일반적으로 ID 열이 있는 복합 키를 변경할 때 대리 키를 사용하는 데 도움이 됩니다.

언급URL : https://stackoverflow.com/questions/36773011/what-is-the-difference-between-a-primary-key-and-a-surrogate-key

반응형