programing

프라이머리 키와 아이덴티티의 차이점은 무엇입니까?

bestprogram 2023. 4. 17. 22:33

프라이머리 키와 아이덴티티의 차이점은 무엇입니까?

SQL Server DB에서 기본 키와 ID 열의 차이점은 무엇입니까?열은 들여쓰기가 아닌 기본 키가 될 수 있습니다.단, 프라이머리 키가 아닌 한 열은 아이덴티티가 될 수 없습니다.

PK 및 ID 열은 차이점 외에도 PK 열만 제공하지 않는 기능을 제공합니다.

열은 PK가 아닌 ID일 수 있습니다.

ID는 단순히 자동 증가 열입니다.

기본 키는 행을 정의하는 고유한 열입니다.

이 두 가지를 함께 사용하는 경우가 많지만, 반드시 함께 사용해야 하는 것은 아닙니다.

이 답변은 Joe가 위의 WHAT에 올바르게 답했기 때문에 WHAT보다 WHY ID와 주요 키가 더 중요합니다.

ID는 SQL이 제어하는 값입니다.ID는 행 함수입니다.적어도 SQL Server에서는 값이 증가하거나 감소하는 순차적인 작업입니다.이 값은 절대 수정하지 않으며 값의 간격도 무시해야 합니다.ID 값은 중복되지 않기 때문에 테이블B를 테이블A에 링크할 때 매우 편리합니다.ID가 모든 경우 클러스터된 인덱스에 대해 최선의 선택은 아닙니다.테이블에 감사 데이터가 포함되어 있는 경우, 데이터 페이지에 날짜의 레코드가 순차적이기 때문에 작업량이 적은 "오늘부터4일 전 사이에 발생한 일" 질문에 대한 답변이 제공되므로 클러스터 인덱스를 작성하는 것이 좋습니다.

기본 키는 행의 열을 고유하게 만듭니다.기본 키는 열 함수입니다.테이블에 정의할 수 있는 프라이머리 키는 1개뿐이지만 프라이머리 키를 시뮬레이트하는 고유 인덱스를 여러 개 작성할 수 있습니다.프라이머리 키를 클러스터링하는 것이 항상 올바른 선택은 아닙니다.전화번호부를 생각해 보세요.전화번호부가 기본 키(전화번호)로 클러스터되어 있는 경우, "First Street"의 전화번호를 반환하기 위한 문의는 비용이 많이 듭니다.

ID 및 기본 키에 대해 따르는 일반적인 규칙은 다음과 같습니다.

  1. 항상 ID 열 사용
  2. 범위 검색에 사용되는 열에 클러스터된 인덱스 만들기
  3. 클러스터된 인덱스는 다른 모든 인덱스의 끝에 추가되므로 클러스터된 인덱스를 좁게 유지합니다.
  4. 중복된 값을 거부할 기본 키 및 고유 인덱스 생성
  5. 좁은 키가 좋다
  6. 조인에서 사용되는 하나 이상의 열에 대한 인덱스 만들기

이것이 나의 일반적인 규칙이다.

프라이머리 키(후보 키라고도 함)는 일의성 및 최소성의 속성을 가진 속성 세트입니다.즉, 키 열이 고유하도록 구속됩니다.즉, DBMS는 두 행이 이러한 속성에 대해 동일한 값 집합을 갖는 것을 허용하지 않습니다.

IDENTY 속성은 열에 대한 자동 증분 기본값을 효과적으로 생성합니다.단, 이 열이 고유할 필요는 없으므로 IDENTY 열이 반드시 키는 아닙니다.

단, ID 컬럼은 일반적으로 키로 사용하기 위한 것이므로 중복이 허용되지 않도록 ID 컬럼에 고유 제약이 제약됩니다.

[ Primary ]컬럼과 [Identity]컬럼의 주요 차이

기본 열:

  • 기본 키는 중복된 값을 가질 수 없습니다.
  • 테이블에 대한 클러스터된 인덱스를 만듭니다.
  • 모든 열 유형에 대해 설정할 수 있습니다.
  • 테이블에 삽입하는 동안 기본 열 값을 제공해야 합니다.

ID 열:

  • ID 열에 중복된 값이 있을 수 있습니다.
  • int, bigint, smallint, tinyint 또는 decimal과 같은 정수 관련 열에만 설정할 수 있습니다.
  • ID 열에 값을 삽입할 필요가 없습니다.시드를 기반으로 자동으로 삽입됩니다.

FEEDB를 기반으로 한 편집ACK

키는 행에 고유합니다.행을 식별하는 방법입니다.행에는 키가 없음, 1개 또는 여러 개 있을 수 있습니다.이러한 키는 하나 이상의 열로 구성될 수 있습니다.

키는 고유한 제약 조건이 있는 인덱스입니다.이로 인해 키가 아닌 인덱스와 구별됩니다.

다중 열이 있는 인덱스를 "복합 인덱스"라고 합니다.

기존에는 프라이머리 키가 행을 일의로 식별하는 메인 키로 간주되었습니다.이 중 하나만 있을 수 있습니다.

테이블의 설계에 따라서는 프라이머리 키가 없는 경우가 있습니다.

주요 열쇠는 바로 그것이다 - "주요 열쇠".행의 고유 ID를 지정하는 주요 항목입니다.테이블의 설계에 따라서는 이름이 잘못되어 여러 키가 고유성을 나타낼 수 있습니다.

SQL Server에서 기본 키가 클러스터될 수 있습니다.즉, 나머지 열은 인덱스의 리프 레벨에서 이 키에 부착됩니다.즉, SQL Server가 키를 찾으면 행도 찾은 것입니다(분명히 클러스터된 측면 때문입니다).

아이덴티티 열은 단순히 행의 고유 ID를 생성하는 방법입니다.

이 두 가지를 함께 사용하는 경우가 많지만 이는 필수가 아닙니다.

IDENTY는 정수뿐만 아니라 척도가 0인 모든 숫자 데이터 유형에도 사용할 수 있습니다.

primary key에는 scale이 있을 수 있지만 필수는 아닙니다.

ID는 프라이머리 키 또는 고유 제약 조건과 조합하여 심플한 고유 행 식별자를 제공할 수 있습니다.

동일 열에 있는 모든 레코드의 중복 값을 피하고 고유성을 강조하는 프라이머리 키입니다.ID는 데이터를 삽입하지 않고 컬럼에 숫자를 늘립니다.두 기능 모두 단일 열에 있을 수도 있고 다른 하나에 있을 수도 있습니다.

언급URL : https://stackoverflow.com/questions/4293426/whats-the-difference-between-a-primary-key-and-identity