ddit/Oracle

Oracle 식별자와 key

ssong2ku 2022. 5. 10. 21:09
728x90

식별자(Identifier)

한 개체(Entity)내에서 각각의 인스턴스를 유일하게 구분할 수 있는 단일 속성 또는 그룹 속성.

식별자에 동일한 값이 중복 불허 (실체 무결성)

모든 Entity는 반드시 하나 이상의 식별자를 보유하며 여러 개의 식별자를 보유할 수도 있음.

주로 식별자를 통해 해당 인스턴스의 구분이 가능.

->검색이나 조인 시 중요 작용

키(Key)

DB에서 조건에 만족하는 튜플/인스턴스를 찾거나 순서대로 정렬 시

다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성(Attribute) 혹은 속성의 집합.

-> 릴레이션간의 관계 맺을 시에도 사용

 

슈퍼키(Super Key)

튜플을 유일하게 식별할 수 있는 하나의 속성 또는 속성의 집합

튜플을 식별 할 수 있으면 슈퍼키에 해당

후보키(Candidate Key)

튜플을 유일하게 식별할 수 있는 속성의 최소집합.

하나 또는 여러 개의 속성으로 구성.

즉, 기본키(PK)가 될 수 있는 후보 속성. 

 

기본키(Primary Key)

여러 후보키 중에 선택한 하나의 속성이나 속성그룹.

위의 예에서는 '사원번호'를 기본키로 설정.

 

기본키를 선정 시 고려사항

  • 해당 실체를 대표할 수 있을 것
  • 업무적으로 활용도가 높을 것
  • 길이가 짧을 것 
  • Not Null
  • No Duplicate(중복안됨)
  • 유일(Unique)함

유니크키(Unique Key)

유일성을 가지기 위해 설정해 놓은 것으로 중복방지.

기본키는 유니크 키의 성질을 포함하는 것 중에서

본적으로 선택한 키.

 

유니크 키는 하나의 테이블에 각각의 컬럼마다 설정가능

기본키는 오직 하나만 설정이 가능

대체키(Alternate Key)

기본키로 선정되지 않은 후보키

 

복합키(Composite Key)

하나의 속성으로는 기본키가 될 수 없는 경우는 둘 이상의 컬럼을 묶어 식별자로 정의하는 것.

주로 조회의 조건으로 사용되는 컬럼을 먼저 정의하는 것이 성능 향상을 위해 도움이 됨. 

대리키(Surrogate Key)=인공키

식별자가 너무 길거나 여러 개의 속성으로 구성되어 있는 경우 인위적으로 추가하는 식별자

->조인의 속도를 향상위해 많이 사용.

 

외래키(Foreign Key)

다른 릴레이션의 기본키를 참조하는 속성(관계를 맺는데 활용)

외래 키 테이블이 참조하는 테이블의 열은 P.K 이거나 unique 제약조건이 필수로 있어야함.

 

외래키를 사용할 때 참조하는 릴레이션과 참조되는 릴레이션이 다를 필요 없음.

자기자신의 기본키를 외래키로 가질 수 있음. 

728x90