2009-04-20 3 views

답변

16

고유 한 값을 가진 필드는 본질적으로 키입니다. 그러나 키는 테이블의 행을 고유하게 식별하는 데 사용되고 인덱스는 테이블의 행을 정렬하거나 그룹화하는 데 사용됩니다. 키가 처음 설정되면 키는 데이터베이스의 다른 위치로 참조 될 수 있으므로 변경해서는 안됩니다. 그러나 인덱싱 된 필드는 자유롭게 바뀔 수 있습니다.

4

키는 테이블의 행을 고유하게 식별합니다. 인덱스는 테이블의 필드를 기반으로하는 행 순서입니다. 인덱스는 시스템이 검색을 위해 사용하는 설정 필드의 특정 순서 일 수 있기 때문에 테이블에 여러 개의 인덱스가있을 수 있으며 실제 행을 조회합니다. 기술적으로, 시스템이 행을 식별하는 데 사용하는 키는 하나만있을 수 있습니다. 대부분의 경우, 이것은 또한 기본 색인이지만 반드시 그렇게 할 필요는 없습니다.

+0

테이블에 키가 둘 이상 있다고 생각했습니다. –

+0

기본 키는 하나만 사용할 수 있습니다. 기본 키는 둘 이상의 필드로 구성 될 수 있지만 키는 하나뿐입니다. 하나 이상의 외래 키를 정의 할 수도 있지만 질문 범위를 벗어날 수 있습니다. –

2

고유성은 데이터에서 강제되는 제약 조건이지만 인덱스는 데이터베이스에서 행을 물리적으로 (클러스터형 인덱스) 또는 논리적으로 (비 클러스터형 인덱스) 정렬하는 데 도움이됩니다.

+0

클러스터 된 인덱스는 물리적 순서이며 클러스터되지 않은 인덱스는 논리적입니다. –

3

키는 데이터 무결성을 유지하는 데 사용되고 인덱스는 데이터베이스 성능을 유지하는 데 사용됩니다. 해결하려는 모든 문제에 대해 생각해보십시오. 올바른 방향으로 인도 할 것입니다.

2

키는 행에 대한 비즈니스 모델의 고유 식별자 여야합니다. 고유하게 색인 된 열은 "대체 키"로 간주 될 수 있습니다. 일반적으로 SQL 서버는 기본 키에 대한 고유 인덱스를 자동으로 생성합니다.

또한 고유하지 않은 열을 색인 할 수 있음을 언급해야합니다. 이러한 인덱스는 인덱싱 된 열에 대한 쿼리 속도를 높이는 데 사용됩니다. 고유 한 제약 SQL 서버는 또한 생성됩니다 만들 때

1

당신은 기본 키를 만들 경우 키가 항상 현장 뒤에 색인이있을 것이다는 SQL Server는 심지어 그

을 지원하는 클러스터 된 고유 인덱스를 생성합니다

물론 고유 제한 조건 및 기본 키의 차이는 고유 제한 조건 당신은 단지 1 차 키와 많은 수 (더 오라클 하나보다 SQL 서버 1) 적어도 1 NULL 값을 수 있다는 것입니다 인덱스

(SQL Server에서 249) 테이블의 고유 한 제약

9

키는 데이터베이스에 저장된 행을 식별합니다. 색인은 책 끝에있는 것과 같은 구조입니다. 책이 끝나면 단어가있는 여러 페이지와 단어를 찾을 수있는 곳을 볼 수 있습니다. 이러한 페이지는 인덱스이며 데이터베이스의 경우에도 마찬가지입니다. 색인은 키와 그 위치를 포함합니다. 행의 위치를 ​​찾는 데 도움이됩니다. 책의 경우 색인은 어떤 페이지에서 단어를 찾을 수 있는지 알려줍니다. 데이터베이스 인덱스는 동일한 기능을합니다.

많은 언급처럼 인덱스는 b- 트리로 구현됩니다. 그러나 이는 구현 세부 사항 일뿐입니다. 색인을 구현하는 방법은 여러 가지가 있습니다.

+2

이것은 훌륭한 설명입니다. 특히 초보자에서 중간 DB 사용자의 관점에서 볼 때 질문이 더 많이 나온 것 같아서 그렇습니다. –

+3

"키"를 페이지 번호로, "색인"을 여기에 설명 된대로 생각하십시오. 우수한 상관 관계. – GalacticCowboy

1

키에는 기본적으로 MS SQL Server의 클러스터 색인이 있습니다.

키는 각 행에 대해 고유 한 값입니다.

데이터베이스 성능을 최대화하기 위해 색인을 사용하십시오. 요구 사항에 따라 인덱스를 만들 수 있습니다. 다른 종류의 색인이 있습니다.

  • 비트 맵 인덱스
  • 밀집 인덱스
  • 스파 스 인덱스
  • 커버링 인덱스
4

키 (선언) 제약이다. 키 데이터가 누락되거나 키 데이터가 이미 테이블에있는 행을 복제하는 경우 행이 테이블에 입력되지 않도록합니다.

인덱스는 인덱스에 사용 된 열 (필드)에 대한 값이 지정된 행을 빠르게 검색 할 수있는 데이터 구조입니다. 인덱스를 사용하여 특정 다른 종류의 쿼리도 빠르게 처리 할 수 ​​있습니다. 예를 들어, 병합 조인은 조인 조건을 구성하는 두 개의 열 (두 인덱스가 모두있는 경우)에서 인덱스를 사용합니다. DBMS가 병합 조인을 수행할지 여부는 쿼리 최적화 프로그램, 테이블 크기 및 필요한 인덱스의 존재 여부에 따라 다릅니다.

약간의 혼동을 피하기 위해 색인에서 색인 키로 사용하는 열을 참조하는 문구가 있습니다. 같은 문학은 일반적으로 기본 키와 외래 키를 "논리 키"라고합니다. 같은 문학은 종종 테이블의 논리적 기능으로 키를 참조하는 반면, 인덱스는 테이블의 물리적 특징이라고합니다.

대부분의 DBMS는 기본 키를 선언 할 때 색인을 생성합니다. 이 동작에는 두 가지 이유가 있습니다. 첫 번째는 색인없이 중복을 탐지하는 것이 큰 테이블에서 오랜 시간이 걸린다는 것입니다. 두 번째는 아마도 기본 키를 기반으로 많은 조회를 수행 할 것이고 이러한 조회는 색인으로 훨씬 빠르게 실행된다는 것입니다.

2

키는 각 행을 고유하게 식별하는 필드 또는 필드 집합입니다. 일반적으로 기본 키로 지정된 하나의 키가 있으며 요즘은 자주 그 자체로 의미가없는 하나의 필드 인 것처럼 보입니다 (페이지의 내용을 식별하는 데 중요합니다).

외부 키라고하는 다른 테이블의 키가있는 테이블을 가질 수 있습니다. 예를 들어 온라인 상점의 데이터베이스에는 주.에 대한 테이블이있을 수 있으며 각 주.에는 연관된 고객이 있으 G로 orders 테이블의 각 행에는 고객 테이블에 대한 외래 키가 있습니다.

인덱스는 테이블의 하나 이상의 필드를 기반으로하는 데이터 구조로, 해당 필드를 기반으로 테이블에 신속하게 액세스 할 수 있습니다. 색인은 개별 행 (예 : 고객 전자 메일 주소 색인)을 나타낼 수도 있고 그룹을 나타낼 수도 있습니다 (예 : 고객의 비과세 상태). 책의 색인처럼 사용되거나 역 디렉토리 (예 : 전화 번호로 주문 된 전화 번호부)와 비슷합니다.

키는 주로 데이터베이스에 대해 생각하는 방법입니다 (데이터베이스에 키에 대해 말할 수는 있지만 데이터베이스에서 중복 키가있는 행을 거부 할 수 있음). 인덱스는 데이터베이스를 더 빠르게 작동시키는 방법입니다.

관련 문제