저자:Herouth Maoz 작성 (<herouth@oumail.openu.ac.il). 이것은 원래 사용자의 메일링 리스트에 나타났습니다. 1998-03-02 질문에 대한 응답: "무엇이 무엇입니까? PRIMARY KEY와 UNIQUE 제약 조건의 차이점은 무엇입니까?".
제목: Re: [질문] 기본 키 | 사설 토토 사이트
차이점은 무엇인가요?
기본 키(필드,...) 및
사설 토토 사이트(필드,...)
- 별칭인가요?
- PRIMARY KEY가 이미 사설 토토 사이트한 경우 그 이유
UNIQUE라는 이름의 다른 종류의 키가 있나요?
기본 키는 특정 행을 식별하는 데 사용되는 필드입니다. 예를 들어 개인을 식별하는 사회보장번호입니다.
단순히 사설 토토 사이트한 필드 조합은 아무 관련이 없습니다. 행을 식별합니다. 이는 단순히 무결성 제약 조건일 뿐입니다. 에 대한 예를 들어 링크 모음이 있습니다. 각 컬렉션은 기본 키인 사설 토토 사이트 번호로 식별됩니다. 이 열쇠 관계식에 사용됩니다.
그러나 내 응용프로그램에서는 각 컬렉션이 사설 토토 사이트한 이름도 가지고 있습니다. 왜? 그래서 원하는 인간은 컬렉션을 수정하면 컬렉션을 식별할 수 있습니다. 훨씬 더 힘들어요 이름이 두 개의 컬렉션인 경우 알아두세요."생명과학", 24433 태그가 붙은 것은 하나는 필요하지만 29882 태그가 붙은 것은 필요하지 않습니다.
그래서 사용자는 이름으로 컬렉션을 선택합니다. 그러므로 우리는 데이터베이스 내에서 이름이 사설 토토 사이트한지 확인하십시오. 그러나, 데이터베이스의 다른 테이블은 컬렉션 테이블과 관련이 없습니다. 컬렉션 이름으로. 그러면 매우 비효율적입니다.
게다가 사설 토토 사이트함에도 불구하고 컬렉션 이름은 실제로 컬렉션을 정의하십시오! 예를 들어 누군가 결정했다면 컬렉션의 이름을 변경하려면"생명과학"에"생물학", 여전히 동일한 컬렉션입니다. 다른 이름으로만. 이름이 독특하기만 하면 알았어.
그래서:
기본 키:
행을 식별하고 다음과 관련시키는 데 사용됩니다. 그것.
업데이트가 불가능하거나 어렵습니다.
NULL을 허용해서는 안 됩니다.
사설 토토 사이트 필드:
행에 대한 대체 액세스로 사용됩니다.
사설 토토 사이트하게 유지되는 한 업데이트가 가능합니다.
NULL은 허용됩니다.
왜 사설 토토 사이트하지 않은 키가 명시적으로 정의되어 있지 않은지에 대해서는 표준SQL구문? 글쎄, 꼭 해야 해 인덱스는 구현에 따라 다르다는 점을 이해하세요.SQL은(는) 정의하지 않습니다. 구현은 단지 데이터 간의 관계일 뿐입니다. 데이터베이스.포스트그레허용합니다 사설 토토 사이트하지 않은 인덱스이지만 시행하는 데 사용되는 인덱스SQL키는 항상 사설 토토 사이트합니다.
따라서 당신은 열의 조합으로 테이블을 질의할 수 있습니다. 이 열에 대한 색인이 없다는 사실에도 불구하고. 색인은 단지 각각의 구현 보조 수단일 뿐입니다.RDBMS당신에게 제안합니다. 일반적으로 사용되는 쿼리를 보다 효율적으로 수행합니다. 일부RDBMS추가 정보를 제공할 수 있습니다. 주요 메모리에 키를 저장하는 것과 같은 조치. 그들은 그럴 것이다 예를 들어 특별한 명령이 있습니다.
MEMSTORE 생성테이블열열(이것은 기존 명령이 아니며 단지 예입니다.)
실제로 기본 키나 사설 토토 사이트한 조합을 생성할 때 필드 어디에도 없습니다.SQL사양에는 색인이 생성되거나 키를 사용하여 데이터를 검색하는 것이 키를 사용하는 것보다 더 효율적입니다. 순차 스캔!
그래서, 만약 당신이 그렇지 않은 필드 조합을 사용하고 싶다면 보조 키로 고유하므로 지정할 필요가 없습니다. 무엇이든 - 해당 조합으로 검색을 시작하세요! 그러나 만일 검색을 효율적으로 수행하려면 다음 방법을 사용해야 합니다. 당신의 수단으로RDBMS공급자 당신에게 제공합니다 - 색인이든, 가상의 MEMSTORE 명령이든, 지능적인RDBMS생성하는 당신이 가지고 있다는 사실을 바탕으로 당신이 모르는 사이에 인덱스 특정 키 조합을 기반으로 많은 쿼리를 보냈습니다... (경험을 통해 배웁니다).