식별자, Key 정리

Dayon·2023년 3월 21일
0

CS공부

목록 보기
13/18
post-thumbnail

💎 식별자 개념

  • 엔터티는 인스턴스들의 집합
  • 식별자(Identifier)는 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자

식별자의 특징

  • [유일성] 주식별자에 의해 엔터티 내의 모든 인스턴스 들이 유일하게 구분되야 한다.

  • [최소성] 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.

  • [불변성] 지정된 주식별자의 값은 자주 변하지 않아야 한다.

  • [존재성] 주식별자에 Null값은 존재할 수없다, 반드시 값이 들어와야 한다


키와 식별자

식별자와 키(Key)를 동일하게 생각하는 경우가 있는데 식별자라는 용어는 업무적으로 구분이 되는 정보로 생각할 수 있으므로 논리 데이터 모델링 단계에서 사용한다.

키는 데이터베이스 테이블에 접근을 위한 매개체로서 물리 데이터 모델링 단계에서 사용한다.


♻️ 식별자 분류

식별자 분류 체계

  1. 대표성 여부

    • 주 식별자 : 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결 할 수 있는 식별자

    • 보조 식별자 : 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조 관계 연결을 못함

  2. 스스로 생성 여부

    • 내부 식별자 : 엔터티 내부에서 스스로 만들어지는 식별자

    • 외부 식별자 : 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자

  3. 속성의 수

    • 단일 식별자 : 하나의 속성으로 구성된 식별자

    • 복합 식별자 : 둘 이상의 속성으로 구성된 식별자

  4. 대체여부

    • 본질 식별자 : 업무에 의해 만들어지는 식별자

    • 인조 식별자 : 업무적으로 만들어지지는 않지만 원소식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자


식별자 분류

주식별자 도출기준

  • 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.

  • 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다.

  • 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.


🔑 키

키(key) : 튜플을 구분하기 위한 기준이 되는 속성

키의 종류로는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있다.

키의 특성

  • 최소성 : 키를 구성하는 속성들 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질

  • 유일성 : 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질

슈퍼키

  • 유일성의 특성을 만족하는 속성 또는 속성들의 집합
  • 최소성은 만족하지 않는다.

후보키

  • 슈퍼키중에서 최소성을 만족하는 속성들의 집합, 유일성과 최소성 둘다 만족

기본키

  • 후보키 중에서 선택받은 키

  • 기본키 선택 기준

    • NULL 값을 가질수 있는 속성이 포함된 후보키는 기본키로 부적절하다
    • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적절하다
    • 단순한 후보키를 기본키로 선택한다
  • 기본키 속성

    • NULL값을 가질수 없다
    • 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없다.

대체키

  • 후보키 중 선택받지 못한 키
  • 보조키라고도 불린다

외래키

  • 다른 릴레이션의 기본키를 참조
  • 속성 - 참조 무결성 조건 만족 : 외래키로 지정되면 참조 테이블의 기본키에 없는 값은 입력이 불가능하다


🔗 참조한 사이트

https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=5&mod=document&uid=329

https://ggop-n.tistory.com/78

profile
success is within reach, allow yourself time

0개의 댓글