2017-11-08 6 views
1

저는 데이터 모델링에서 대용 키와 대용 키에 관한 훌륭한 논쟁을 읽었습니다. 분명히 여기 나는 어려운 질문에 빠지 려하지 않습니다. 내가 알고 싶은 건 좋은 자연 키의 가장 좋은 예가 무엇인가?SQL에서 자연 키의 가장 좋은 예는 무엇입니까?

나는 온라인에서 누군가가 일 수 있다고 생각하는 열쇠를 발견했다.은 좋지만 사회 보장 번호처럼 좋지는 않다. (프라이버시 우려, 사후에 재사용되는 사람은 모두 개인 신상 도용으로 변경 될 수 있으며 신분 도용 후에 변경 될 수 있으며 사업세 ID로 중복 될 수 있습니다.)

내 생각에 국제 표준화 된 코드 (ISBN, VIN, country) 코드, 언어 코드)를 사용하면 좋은 키를 만들 수 있습니다.

+0

ISBN과 같은 귀하의 예는 식별을 목적으로 작성된 것입니다. 키는 데이터베이스 빌더의 관점에서 자연스럽지 만 대리 키와 마찬가지로 인공적입니다. DBMS가 발명을 할 필요가 없다는 것입니다. –

답변

3

인보이스 번호, 차량 등록 번호, 예정된 항공편 코드, 로그인 이름, 이메일 주소, 직원 번호, 객실 번호, UPC 코드. 통화, 언어, 금융 수단, 화학 물질 및 의학 진단 등 모든 것에 대한 산업, 공공 및 국제 표준도 수천 가지입니다. 이들 모두는 핵심 속성에 대해 잠재적으로 좋은 후보입니다. 키 선택 및 설계에 대한 합리적인 기준은 단순성, 안정성 및 친숙성 (즉, 사용되는 비즈니스 또는 기타 상황에서 친숙 함)입니다.

일부 사람들은 특정 키가 특정 인구에서 고유하지 않을 수도있는 상황을 가정하기 때문에 "자연스러운"주요 특성을 선택하는 데 어려움을 겪는 것처럼 보입니다. 이것은 요점을 놓친다. 핵심은 특정 시점에서 특정 테이블 내의 데이터 채우기에 대해 특성이 고유해야하며 고유해야한다는 비즈니스 규칙을 부과하는 것입니다. 테이블은 항상 잘 이해 된 특정 상황 ("비즈니스 도메인"일명 "담론의 영역")의 데이터를 나타냅니다. 중요한 도메인 내에서 고유성 제약 조건을 적용하려는 의도/요구 사항입니다.

예를 들어 내 웹 사이트에 등록 할 때 각 사용자가 고유 이메일 주소를 제공해야하는 경우 이메일 주소는 해당 웹 사이트를 지원하는 데이터베이스에서 유효한 키 선택 일 수 있습니다. 전자 메일 주소가 고유하지 않아도되는 다른 도메인에 다른 인구가 있다는 사실이 내 웹 사이트에 대한 해당 키 선택을 반드시 무효화하지는 않습니다.

1

귀하의 DNA 코드는 실생활에서 자연스러운 열쇠의 하나의 좋은 예가 될 것입니다.

+2

트윈이 동일한 경우가 아닙니다. –

+0

일란성 쌍둥이조차도 같은 DNA를 가지고 있지 않다. – NickDim

+0

나는 DNA가 자연 키의 좋은 예라고 생각하지 않는다. 나는 그것이 안정적이라고 생각하지만 거의 익숙하지 않거나 간단하지 않다. – sqlvogel

2

사람이라는 테이블이 있다고 가정하십시오. 성, 성주소을 키로 사용하면 사람들에게 자연스러운 자연스러운 키가되며 테이블의 열 사이에는 논리적 인 관계가 있습니다.

+0

시간이 지남에 따라 사람이 어디에 살았는지 추적하고 싶다면 어떻게해야합니까? 그들은 움직여서 새로운 사람이되지 않습니다. –

+2

두 명의 여성이 아파트에 살고 있다고합니다 : Jill Brown과 Jill Bravo. 브라보 부부는 조 브라운과 결혼합니다. 그녀는 지금 룸메이트처럼 Jill Brown입니다. Jill Brown은 데이터베이스에서 자신의 이름을 업데이트해야하지만 기본 키를 위반하기 때문에 이름을 업데이트 할 수 없습니다. 자연의 열쇠는 작동하지 않을 것입니다 ... – Zorkolot

+0

부모도 부모의 이름을 따서 지은 적이 없다는 것은 좋은 일입니다. –