고유 키
Unique key릴레이셔널 데이터베이스 관리 시스템에서 고유 키는 관계의 주요 키가 아닌 후보 키입니다.관계의 모든 후보 키는 관계의 레코드를 일의로 식별할 수 있지만, 그 중 하나만 관계의 주요 키로 사용됩니다.나머지 후보 키는 관계에서 레코드를 고유하게 식별할 수 있기 때문에 고유 키라고 불립니다.고유 키는 여러 열로 구성될 수 있습니다.고유 키는 대체 키라고도 합니다.일의 키는 이 관계의 프라이머리 키 대신 사용됩니다.일반적으로 고유 키에는UNIQUE
중복을 방지하기 위해 할당된 제약 조건(중복 엔트리는 고유 열에 유효하지 않습니다).대체 키는 단일 테이블 선택을 수행할 때 또는 where 절을 필터링할 때 프라이머리 키와 같이 사용할 수 있지만 일반적으로 여러 테이블을 결합할 때는 사용되지 않습니다.
요약
키는 지정된 테이블을 데이터베이스가 사용할 수 있는 수단을 제공합니다. 예를 들어 직원 테이블에는 직원 간호사와 데이터베이스 테이블의 정보를 식별하고 액세스하며 업데이트하는 애플리케이션 소프트웨어가 있습니다. 여러 개의 키가 있을 수 있으며 로그인 이름은 개별적으로 고유합니다.테이블에서의 키 제약(즉, 고유성 제약)의 적용도 데이터베이스의 데이터 무결성 기능입니다.DBMS는 키 값이 중복되는 업데이트를 방지하여 테이블이 원하는 고유성 규칙을 항상 준수하도록 합니다.따라서 데이터베이스를 설계할 때 키를 적절하게 선택하는 것은 데이터베이스 무결성의 중요한 측면입니다.
릴레이셔널 데이터베이스 테이블에는 사용 가능한 고유 키(공식적으로는 후보 키)가 1개 이상 있을 수 있습니다.테이블마다 이러한 키 중 하나를 프라이머리 키로 지정할 수 있습니다.다른 키를 대체 키라고 부릅니다.
임의의 키는 1개 이상의 Atribute로 구성할 수 있습니다.예를 들어, 사회 보장 번호는 직원의 단일 속성 키일 수 있으며, 비행 번호와 날짜의 조합은 예약된 비행에 대한 두 가지 속성으로 구성된 키일 수 있습니다.
데이터베이스 모델링 및 구현에는 몇 가지 유형의 키가 사용됩니다.
키 이름 | 정의. |
---|---|
간단하죠. | 하나의 Atribute만으로 작성된 키. |
연결됨 | 이메일 주소로 자주 사용되는 시스템 생성 번호가 부가된 부분 또는 전체 이름 등 여러 Atribute가 단일 키로 결합된 키입니다. |
컴파운드 | 적어도 2개의 속성 또는 단순 키로 이루어진 키.복합 키에는 단순 키만 존재합니다. |
컴포지트 | 복합 키와 비슷하지만 개별 속성이 단순 키일 필요는 없습니다. |
자연의 | 현재 데이터베이스 외부에 있는 데이터로 만든 키입니다.즉, 데이터는 다른 시스템에서 가져온 사회보장번호와 같은 시스템 생성 데이터가 아니다. |
대리 | 다른 후보 키가 존재할 때 시스템에 할당되거나 생성된 데이터로 만든 인공 키입니다.대리 키는 일반적으로 숫자 ID 값이며 성능상의 [citation needed]이유로 자주 사용됩니다. |
후보 | 프라이머리 키가 될 가능성이 있는 키. |
기본적인 | 프라이머리 키로 선택된 키.엔티티 내의 1개의 키만 프라이머리 키로 선택됩니다.이것은 엔티티 간에 존재하는 관계를 정의하기 위해 다른 엔티티로 이행할 수 있는 키입니다.데이터 모델이 물리적 데이터베이스로 인스턴스화되면 데이터 모델은 테이블에 액세스하거나 데이터를 선택할 때 테이블을 결합할 때 시스템에서 가장 많이 사용하는 키입니다. |
교대하는 | 테이블 내의 1개의 행만 식별하기 위해 사용할 수 있는 프라이머리 키 이외의 키.대체 키는 단일 테이블 선택 항목에서 기본 키처럼 사용할 수 있습니다. |
외국의 | 다른 엔티티에 마이그레이션된 키입니다. |
가장 기본적인 정의로는 "키는 고유 식별자"[1]이므로 고유 키는 흉막이다.원래 엔티티 내에 있는 키는 해당 엔티티 내에서 고유합니다.다른 엔티티로 마이그레이션되는 키는 설계 및 다른 테이블에서 사용되는 방법에 따라 고유하거나 고유하지 않을 수 있습니다.외부 키가 다른 테이블(예: 사용자)의 기본 키가 될 수 있습니다.ID가 종업원이 될 수 있다[ Employee ]테이블의 아이디이 경우 종업원은ID는 외부 키이자 고유 프라이머리 키입니다.즉, 테이블은 1:1 관계를 가집니다.개인실체가 생물학적 아버지 ID를 포함하는 경우, 아버지 ID는 아버지가 둘 이상의 자녀를 가질 수 있기 때문에 고유할 것으로 예상되지 않는다.
다음으로 프라이머리 키가 관련 테이블의 외부 키가 되는 예를 나타냅니다.ID는 [작성자] 표에서 [책] 표로 마이그레이션됩니다.
작가. 테이블 스키마: 작가.(아이디, 이름., 주소., 태어난) 책 테이블 스키마: 책(ISBN, AuthorID, 제목, 출판인, 가격.)
여기서 ID는 테이블 'Author'의 기본 키이지만 작성자 역할도 합니다.ID는 'Book' 테이블에서 외부 키 역할을 합니다.외부 키는 이 샘플 데이터베이스 내의 관련 테이블 2개 간의 링크, 즉 연결로 기능합니다.
관계형 데이터베이스에서 후보 키는 데이터베이스 테이블 내의 데이터 값의 각 행을 일의로 식별한다.후보 키는 단일 데이터베이스 테이블 내의 단일 열 또는 열 세트를 포함합니다.NULL 값은 사용되지 않으므로 데이터베이스 테이블 내의 두 개의 개별 행 또는 데이터 레코드는 이러한 후보 키 열에 동일한 데이터 값(또는 데이터 값의 조합)을 가질 수 없습니다.설계에 따라서는 데이터베이스 테이블에는 다수의 후보 키가 있을 수 있지만 프라이머리 키로서 최대 1개의 후보 키가 구별될 수 있습니다.
키 제약은 테이블 내의 튜플 세트에 지정된 시점에서 적용됩니다.키는 테이블에 저장할 수 있는 모든 가능한 튜플 인스턴스의 집합에서 반드시 하나의 식별자는 아니지만 데이터베이스 테이블에서 중복을 허용하지 않는 데이터 무결성 규칙을 의미합니다.가능한 키의 예로는 사회 보장 번호, ISBN, 차량 등록 번호 또는 사용자 로그인 이름 등이 있습니다.
원칙적으로 임의의 키는 외부 키로 참조할 수 있습니다.일부 SQL DBMS는 기본 키에 대한 외부 키 제한만 허용하지만 대부분의 시스템에서는 외부 키 제한으로 테이블의 모든 키를 참조할 수 있습니다.
SQL에서 키 정의
SQL 키 정의:
바꾸다 테이블 < >테이블 식별자> 더하다 [ 제약 < >제약 식별자> ] { 기본적인 열쇠 독특한 } ( < >기둥. 이름.> [ {, < >기둥. 이름.>}... ] )
마찬가지로 키는 의 일부로 정의할 수 있습니다.CREATE TABLE
SQL 문
만들다 테이블 table_name ( id_col 인트, col2 성격 변화하고 있다(20), key_col 스몰인트 것은 아니다. 특수한 순서, ... 제약 키_키 독특한(key_col), ... )
만들다 테이블 table_name ( id_col 인트 기본적인 열쇠, col2 성격 변화하고 있다(20), ... key_col 스몰인트 것은 아니다. 특수한 순서 독특한, ... )
프라이머리 키 제약 조건과 고유 제약 조건의 차이
프라이머리 키 제약
- 기본 키는 null을 허용할 수 없습니다(null을 허용하는 열에는 기본 키를 정의할 수 없습니다).
- 각 테이블에는 여러 개의 기본 키를 사용할 수 없습니다.
- 일부 RDBMS에서는 기본 키가 클러스터된 인덱스를 생성합니다.
고유 제약
- Null을 허용하는 열에 고유한 제약 조건을 정의할 수 있습니다. 이 경우 Null을 포함하는 행은 제약 조건에 의해 정의된 열 집합에서 실제로 고유하지 않을 수 있습니다.
- 각 테이블에는 여러 개의 고유한 제약 조건이 있을 수 있습니다.
- 일부 RDBMS에서는 고유한 제약조건이 기본적으로 비클러스터 인덱스를 생성합니다.
PRIMAY KEY 제약조건과 달리 UNIQURE 제약조건은 제약조건에 참여하는 열에 대해 NOT NULL을 의미하지 않습니다.열을 키로 만들려면 NOT NULL을 지정해야 합니다.Nullable 열에 UNIQUICE 제약 조건을 설정할 수 있지만 SQL 표준에서는 이 제약 조건이 Nullable 열의 고유성을 보장하지 않는다고 명시되어 있습니다(열 중 하나에 Null이 포함된 행에는 고유성이 적용되지 않음).
SQL[2] 표준에 따르면 null이 존재하는 경우 고유한 제약조건에 의해 고유성이 적용되지 않으므로 null과 null 이외의 값의 동일한 조합을 가진 여러 행을 포함할 수 있습니다.단, 모든 RDBMS가 SQL [3][4]표준에 따라 이 기능을 구현하는 것은 아닙니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Awad, Elias (1985), Systems Analysis and Design, Second Edition, Richard D. Irwin, Inc., ISBN 0-256-02824-9
- ^ ANSI/ISO/IEC SQL 요약(Wayback Machine에서 2012년 4월 25일 아카이브 완료)
- ^ "Constraints - SQL Database Reference Material - Learn sql, read an sql manual, follow an sql tutorial, or learn how to structure an SQL query!". www.sql.org. Retrieved 16 August 2018.
- ^ "Comparison of different SQL implementations". troels.arvin.dk. Retrieved 16 August 2018.
외부 링크
- 관계 데이터베이스 참조 조건, 키:RDB의 다양한 키 유형 개요씨