>  기사  >  데이터 베이스  >  MySQL의 슈퍼키, 기본키, 후보키의 차이 분석

MySQL의 슈퍼키, 기본키, 후보키의 차이 분석

WBOY
WBOY앞으로
2022-08-01 15:08:321877검색

이 기사는 mysql에 대한 관련 지식을 제공합니다. MySQL의 슈퍼 키, 기본 키 및 후보 키의 차이점을 주로 소개합니다. 좋은 참고 가치가 있으며 모든 사람에게 도움이 되기를 바랍니다.

MySQL의 슈퍼키, 기본키, 후보키의 차이 분석

추천 학습: mysql 동영상 튜토리얼

수퍼 키, 기본 키, 후보 키의 차이점에 대해

최근에 MySQL 책을 읽다가 문제가 발생했습니다.

이제 우리는 이미 개념을 알고 있습니다. 기본 키 중 기본 키는 이미 요구 사항을 충족할 수 있는데 후보 키가 필요한 이유는 무엇입니까? 후보키의 역할은 무엇인가요? 후보 키 정의가 제공되지만 실제로는 아무것도 엉망으로 만들지 않습니다.

자세한 내용을 물어보는 마음으로 인터넷에 검색해서 전문가들의 설명을 보았는데, 그래도 조금 헷갈리는 느낌이 들어서 여기서 정리해서 좀 더 명확하게 이해하고 싶었습니다. 오해가 있으신가요? 제가 이해한 내용은 다음과 같습니다.

사실 기본 키와 슈퍼 키가 더 좋습니다. 예를 들어 다음과 같은 테이블이 있습니다.

MySQL의 슈퍼키, 기본키, 후보키의 차이 분석 표가 좀 거칠어서 읽어도 괜찮습니다.

슈퍼 키

관계에서 튜플을 고유하게 식별할 수 있는 속성 집합을 관계형 스키마의 슈퍼 키라고 합니다. 정의에서 "속성 세트"를 참고하세요. 슈퍼 키는 어떤 행인지 결정할 수 있는 한 큰 세트일 수 있으므로 'id', 'user', 'pwd', 'section', 'name' 모두 OK는 슈퍼키 세트입니다.

후보 키

중복 속성을 포함하지 않는 슈퍼키 예를 들어 위 슈퍼키에서 'id'는 스스로 어떤 행인지 결정할 수 있으므로 다른 4개를 제외하고는 자체적으로 후보 키가 될 수 있습니다. 후보 키일 수도 있지만, 이 5개는 중복되는 열이 있기 때문에 합쳐진 것이므로 후보 키가 아닙니다. (나머지 4개가 후보 키가 될 수 있는 이유는 각 열에 중복된 내용이 있을 수 있기 때문입니다.)

기본 키

모든 후보 키 중 하나를 찾아 기본 키로 사용할 수 있습니다. 즉, id 또는 다른 키가 될 수 있습니다. 네 가지의 조합은 선택 사항 집합이 고유하게 결정될 수 있는 한 다른 선택 사항이 될 수도 있습니다.

요약하자면, 후보 키는 슈퍼키의 하위 집합이고, 기본 키는 후보 키의 하위 집합입니다.

사실 그렇게 많이 정리했는데도 후보키의 기능이 뭔지 아직도 이해가 안가네요. 사실 차에 좌석이 한자리밖에 남지 않은 상황일 수도 있겠네요. 대기실에 몇 개의 기본 열쇠가 있습니다. "우리는 모두 티켓을 구입했으며 모두 버스에 탈 자격이 있습니다. 버스에 타기로 선택한 사람은 누구나 함께 탑승할 것입니다." 그것.

슈퍼키, 후보키, 기본키 및 관계의 개념을 이해하세요

기본 개념

슈퍼키(슈퍼키): 관계에서 튜플을 고유하게 식별할 수 있는 속성 집합을 슈퍼키/코드라고 합니다. 관계형 패턴의
  • 후보 키: 중복 속성을 포함하지 않는 슈퍼키를 후보 키라고 합니다. 즉, 적절한 하위 집합은 더 이상 슈퍼키가 아닙니다.
  • 기본 키: 사용자가 튜플 식별자로 선택한 후보 키를 기본 키라고 하며 후보 키 중 하나입니다.
  • Relationship

후보 키는 슈퍼키의 하위 집합이고, 기본 키는 후보 키 중 하나입니다.

예를 들어

중복된 이름이 없다고 가정하고 속성 세트(ID 번호, 이름, 성별, 나이)를 고려하세요.

a 슈퍼 키는 다음과 같습니다.

ID 카드 번호, 이름, (이름 , 성별) ), (이름, 성별, 나이) 등
  • --수퍼 키는 사람을 고유하게 식별할 수 있는 속성 그룹임을 알 수 있습니다
b.

ID 카드 번호, 이름이 고유하고 중복 속성이 없으므로 후보 키입니다
  • --여기에서 후보 키가 중복 속성이 없는 슈퍼 키임을 알 수 있습니다
c. 기본 키 선택

사용자는 자신의 취향에 따라 선택을 고려할 수 있습니다. 이름 또는 ID 번호를 기본 키로
  • --기본 키는 선택된 후보 키입니다
  • 아직 이해가 안 되시나요?

예:

SQL Server 데이터베이스에는 아래와 같은 학생 정보 테이블이 있습니다. 이 테이블에서 후보 키로 사용할 수 없는 속성 집합은 ( )입니다. (하나 선택)

학생 번호 , 이름, 성별, 나이 학과 전공
20020612 Li Huinan 20 컴퓨터 소프트웨어 개발

20060613 Zhang Mingnan 18 컴퓨터 소프트웨어 개발
20060614 Wang Xiaoyu 여 19 물리 및 역학
20060615 Li Shuhua 여 17 생물 동물학
20060616 Zhao J 잉난 21 화학 식품화학
200 60617 조징누 20 생물식물학

a) {학생번호}
b) {학생번호, 이름}

c) {나이, 학과}
d) {이름, 성별}
e) {이름, 전공 }

추천 학습:
mysql 비디오 튜토리얼

위 내용은 MySQL의 슈퍼키, 기본키, 후보키의 차이 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제