SQLD

#5 데이터 모델링(식별자)

sundori 2024. 7. 15. 17:47

목차

    식별자란

    모든 엔터티는 인스턴스를 가지고 있고 인스턴스는 속성으로 자신의 특성을 나타낸다. 식별자는 이런 속성 중에 각각의 인스턴스를 구분 가능하게 만들어주는 대표적인 속성을 말한다.

     

    주식별자

    주식별자는 기본키에 해당하는 속성인데, 하나의 속성이 주식별자가 될 수 있고 여러 개의 속성이 주식별자가 될 수 있다.

    유일성 각 인스턴스에 유니크함을 부여하여 각 인스턴스 별로 식별이 가능하게 해야한다.
    최소성 유일성을 보장하는 최소 개수의 속성이어야한다.
    불변성 속성값이 되도록 변하지 않아야 한다.
    존재성 속성값은 NULL일 수 없다.

    분류

    식별자를 분류하는 방식은 여러 가지이다. 

    1. 대표성 여부

    주식별자(Primary Identifier) -유일성, 최소성, 불변성, 존재성을 가진 대표 식별자
    -다른 엔터티와 참조 관계로 연결
    보조식별자 (Alternate Identifier) -인스턴스를 식별할 수는 있지만 대표 식별자가 아니다.
    -다른 엔터티와 참조 관계로 연결되지 않음

    2. 스스로 생성되었는지의 여부

    내부식별자(Interrnal Identifier) 엔터티 내부에서 스스로 생성된 식별자
    외부식별자(Foreign Identifier) 다른 엔터티에서 온 식별자, 다른 엔터티와 연결고리 역할

    3. 단일 속성의 여부

    단일식별자 (Single Identifier) 하나의 속성으로 구성된 식별자
    복합식별자 (Composite Identifier) 두 개 이상의 속성으로 구성된 식별자

    4. 대체 여부

    원조식별자(Original Identifier) 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자(본질식별자)
    대리식별자(Surrogate Identifier) 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자(인조식별자)

     

    식별자 관계 ~ 비식별자 관계

    1. 식별자 관계(Identification Relationship)

    부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계이다. 주식별자는 반드시 존재해야 하므로(존재성) 부모 엔터티가 있어야 생성 가능하며 단일식별자인지 복합식 별자인지에 따라 1:1이거나 1:M이거나 결정된다.

     

    2. 비식별자 관계(Non-Identification Relationship)

    부모 엔터티의 식별자가 자식 엔터티의 주식별자가 아닌 일반 속성이 되는 관계이다. 일반속성의 속성값은 NULL이 될 수 있으므로 부모 엔 터티가 없는 자식 엔터티 생성이 가능하고 마찬가지의 이유로 자식엔터티가 존재하는 상태에서 부모엔터티가 삭제될 수도 있다.

    Tips

    기본키 (Primary Key, PK)

    • 설명: 기본키는 테이블 내에서 각 레코드를 고유하게 식별하는 키입니다. 각 테이블에는 하나의 기본키만 존재할 수 있습니다.
    • 특징:
      • 유일성: 기본키 값은 각 레코드마다 유일해야 합니다.
      • NULL 불가: 기본키는 NULL 값을 가질 수 없습니다.
      • 대표성: 기본키는 엔터티(테이블)의 대표 키로 사용됩니다.

    후보키 (Candidate Key, CK)

    • 설명: 후보키는 유일성과 최소성을 만족하지만, 기본키로 선정되지 않은 키입니다.
    • 특징:
      • 유일성: 각 후보키 값은 각 레코드마다 유일해야 합니다.
      • 최소성: 후보키는 중복되는 속성이 없어야 합니다.
      • 대표성 부족: 여러 후보키 중 하나만 기본키로 선택됩니다.

    슈퍼키 (Super Key, SK)

    • 설명: 슈퍼키는 테이블 내에서 각 레코드를 고유하게 식별할 수 있는 하나 이상의 속성의 집합입니다.
    • 특징:
      • 유일성: 슈퍼키 값은 각 레코드마다 유일해야 합니다.
      • 최소성 부족: 슈퍼키는 후보키와 달리 최소성을 만족할 필요는 없습니다. 즉, 불필요한 속성을 포함할 수 있습니다.

    대체키 (Alternate Key, AK)

    • 설명: 대체키는 후보키 중 기본키로 선택되지 않은 키를 의미합니다.
    • 특징:
      • 기본키 제외: 기본키로 선택된 후보키를 제외한 나머지 후보키가 대체키가 됩니다.
      • 유일성: 여전히 유일성을 유지합니다.

    외래키 (Foreign Key, FK)

    • 설명: 외래키는 한 테이블의 필드가 다른 테이블의 기본키를 참조하는 키입니다. 데이터베이스의 참조 무결성을 유지하기 위해 사용됩니다.
    • 특징:
      • 참조 관계: 외래키는 한 테이블의 필드를 다른 테이블의 기본키와 연결하여 테이블 간의 관계를 설정합니다.
      • 무결성 유지: 참조 무결성을 보장하기 위해 사용되며, 허용된 데이터 값만 저장할 수 있도록 합니다.
      • NULL 가능: 외래키는 NULL 값을 가질 수 있지만, 이는 참조하는 레코드가 없는 경우에 한정됩니다.

    참조 무결성 (Referential Integrity)

    • 설명: 참조 무결성은 데이터베이스의 일관성과 정확성을 유지하기 위해 외래키의 값이 참조하는 테이블의 기본키 값과 항상 일치하도록 하는 규칙입니다.
    • 목적:
      • 데이터 일관성 유지: 참조 무결성은 데이터의 일관성을 유지하여 데이터베이스의 무결성을 보장합니다.
      • 잘못된 데이터 방지: 참조 무결성을 통해 존재하지 않는 레코드를 참조하는 것을 방지하여 데이터의 정확성을 보장합니다.
    • 예시:
      • 예를 들어, Orders 테이블의 CustomerID 필드는 Customers 테이블의 CustomerID 필드를 참조하는 외래키입니다. 참조 무결성이 유지되면 Orders 테이블의 CustomerID 필드는 반드시 Customers 테이블에 존재하는 CustomerID 값을 가져야 합니다.

    요약

    • 기본키 (PK): 각 레코드를 고유하게 식별하는 필드.
    • 후보키 (CK): 기본키로 선택될 수 있는 유일성과 최소성을 만족하는 필드.
    • 슈퍼키 (SK): 유일성을 만족하지만 최소성을 만족하지 않는 필드 집합.
    • 대체키 (AK): 후보키 중에서 기본키로 선택되지 않은 키.
    • 외래키 (FK): 다른 테이블의 기본키를 참조하여 테이블 간의 관계를 설정하는 키.
    • 참조 무결성: 데이터베이스의 일관성과 정확성을 유지하기 위해 외래키의 값이 참조하는 테이블의 기본키 값과 일치하도록 하는 규칙.

     

    'SQLD' 카테고리의 다른 글

    #4 데이터 모델링(관계)  (0) 2024.07.09
    #3 데이터 모델링(속성)  (0) 2024.07.08
    #2 데이터 모델링(엔티티)  (0) 2024.07.04
    #1 데이터 모델링  (0) 2024.07.04