식별자 뜻과 개념에 대해서 이야기해봅시다.
식별자 뜻과 개념 알기
식별자 뜻(Identifiers) 은 데이터 베이스(DB) 안에서 테이블(Table)을 구성하는 데이터에 대해서 데이터의 특징을 대표하고 표시하고 구분하기 위해서 사용하는 식별 값을 의미합니다.
식별자(Identifiers)는 유일성, 최소성, 불변성, 존재성의 4가지 특징을 가지고 있어야 합니다.
식별자는 주식별자에 의해서 엔티티 안에 있는 모든 인스턴스들을 유일하게 구분해야 합니다. 또한 주식별자를 구성하는 속성의 개수는 유일성을 만족하는 최소의 수가 되어야 합니다. 지정된 주식별자의 값은 자주 변하지 않는 고정된 값이어야 합니다. 주식별자가 지정되면 반드시 어떤 값이 들어와야 합니다.
식별자의 종류에는 다양한 종류가 있습니다.
데이터베이스(DB, DataBase)의 엔티티(Entity) 안에서 대표성을 가지는지에 따라서 주식별자(PK, Primary Identifier)와 보조식별자(Alternate Identifier)로 구분될 수 있습니다. 엔티티 안에서 스스로 생성되었는지 여부에 따라서 내부 식별자(Internal Identifier)와 외부 식별자(External Identifier)로 구분됩니다. 또한 단일 속성으로 식별이 가능한지에 따라서 단일 식별자(Single Identifier)와 복합 식별자(Composit Identifier)로 구분됩니다. 원래 업무적으로 의미가 있었던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 구분하기 위해서 본질 식별자와 인조 식별자로도 구분할 수 있습니다.
식별자 뜻과 개념 설명
식별자 뜻(Identifiers)은 데이터의 특성을 표시하기 위해서 사용하는 구분 값을 의미합니다. 모든 엔티티와 테이블들은 인스턴스를 가지고 있고 각 인스턴스들은 속성으로 자신의 특성을 나타낼 수 있는데 식별자는 이러한 속성들 중에서 각각의 인스턴스를 구분할 수 있도록 해주는 대표하는 속성입니다.
식별자(Identifiers)는 데이터 항목을 식별하거나 이름을 붙이거나 데이터의 특정 성질을 나타내는데 사용하는 구분값, 식별값, 문자나 문자의 집합입니다.
식별자는 대표적으로 고객번호, 회원번호, 상품번호, 증권번호, 학번, 군번과 같이 사람이나 계약을 유일하게 구분할 수 있는 값들이 있습니다.
식별자는 주식별자가 중요합니다.
주식별자(PK, Primary Key)는 기본 키에 해당하는 속성입니다. 하나의 속성이 주식별자가 될 수도 있고 여러 개의 속성이 주식별자가 될 수 있습니다. 주식별자는 유일성, 최소성, 불변성, 존재성의 4가지 성질을 가지고 있어야 합니다.
[식별자의 4가지 특징]
구분 | 내용 |
1 | 유일성 |
2 | 최소성 |
3 | 불변성 |
4 | 존재성 |
유일성은 각 인스턴스에 유일함을 부여하여 식별이 가능하도록 하는 성질입니다.
최소성은 유일성을 보장하는 최소 개수의 속성이어야 하는 성질입니다. 불변성은 속성 값이 변하지 않는 성질입니다. 존재성은 속성 값이 없을 수 없는 것을 의미합니다. 따라서 주식별자는 유일해야 하고, 변하지 않아야 하며 데이터를 대표해야 하며 반드시 하나가 존재해야 하는 값입니다.
주식별자는 모든 인스턴스에 유니크함을 부여합니다. 주식별자는 반드시 속성 값이 존재해야 하며 주식별자는 변하지 않는 값이어야 합니다.
식별자는 대표성 여부, 스스로 생성되었는지 여부, 단일 속성 여부, 대체 가능 여부를 통해 여러 가지로 분류할 수 있습니다.
식별자의 대표성 여부로는 주식별자(PK, Primary Identifier)와 보조식별자(Alternate Identifier)로 나눌 수 있습니다. 주식별자는 유일성, 최소성, 불변성, 존재성을 가지고 있는 대표 식별자가 되고 다른 엔티티와 참조 관계로 연결되는 식별자입니다. 주식별자는 인티티 안에서 각 어커런스를 구분할 수 있는 구분자로 다른 엔티티와 참조 관계를 연결할 수 있는 식별자입니다. 보조 식별자는 인스턴스를 식별할 수 있지만 대표 식별자가 아닌 식별자입니다. 보조 식별자는 다른 엔티티와 참조 관계로 연결되지 않습니다. 보조식별자는 엔티티 안에서 각 어커런스를 구분할 수 있는 구분자이지만 대표성을 가지지 못하기 때문에 참조 관계로 연결할 수 없습니다.
식별자가 스스로 생성되었는지 여부에 대해서는 내부식별자(Internal Identifier)와 외부식별자(External Identifier)로 구분할 수 있습니다. 내부 식별자는 엔티티 내부에서 스스로 생성된 식별자입니다. 내부 식별자는 엔티티 내부에서 만들어지는 식별자입니다. 외부 식별자는 다른 엔티티에서 온 식별자로 다른 엔티티와 연결고리 역할을 합니다. 외부 식별자는 다른 엔티티와의 관계를 통해서 다른 엔티티로부터 받아오는 식별자가 됩니다.
식별자의 단일 속성 여부는 단일 식별자(Single Identifier)와 복합 식별자(Composite Identifier)가 있습니다. 단일 식별자는 하나의 속성으로 구성되어 있는 식별자입니다. 단일 식별자는 하나의 속성으로 구성된 식별자입니다. 복합식별자는 2개 이상의 속성으로 구성되어 있는 식별자입니다. 복합식별자는 둘 이상의 속성으로 구성됩니다.
식별자의 대체 여부에 대해서는 본질 식별자(Original Identifier)와 대리 식별자(Surrogate Identifier)로 구분할 수 있습니다. 본질 식별자는 비즈니스와 업무 프로세스에서 존재하는 식별자로 가공되지 않은 원래의 식별자 입니다. 본질 식별자는 업무에 의해서 만들어지는 식별자입니다. 대리 식별자는 주식별자의 속성이 2개 이상인 경우에 해당 속성을 하나로 묶어서 사용할 수 있는 식별자입니다. 인조 식별자는 업무적으로 만들어지지는 않지만 본질 식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만드는 식별자입니다.
식별자는 비식별자와 구분됩니다.
식별자는 강한 연결 관계를 표현합니다.
하지만 비식별자는 약한 연결 관계를 표현합니다. 식별자는 자식 주식별자의 구성에 포함됩니다. 하지만 비식별자는 자식 일반 속성에 포함됩니다. 식별자는 실선으로 표현하고 비식별자는 점선으로 표현합니다. 식별자는 반드시 부모 엔티티에 종속되어 있어야 합니다. 그리고 자식 주식별자 구성에 부모 주식별자가 포함되어야 합니다. 상속 받은 주식별자 속성을 다른 엔티티에 이전할 필요가 있습니다. 비식별자는 약한 종속 관계입니다. 비식별자는 자식 주식별자 구성을 독립적으로 구성합니다. 비식별자는 자식 주식별자 구성에 부모 주식별자 부분이 필요합니다. 비식별자는 상속 받은 주식별자 속성을 다른 엔티티에 차단해야 합니다. 비식별자는 부모 쪽 관계 참여가 선택적입니다.
식별자 관계(Identification Relationship)은 부모 인테티의 식별자가 자식 엔티티의 주식별자가 되는 관계를 의미합니다. 주식별자는 반드시 존재해야 하고 부모 엔티티가 반드시 있어야 만들어 질 수 있는데 이는 단일 식별자인지 복합 식별자인지에 따라서 1대 1이거나 1대 다 관계가 될 수 있습니다. 이는 부모 엔티티와 자식 엔티티가 1:1 또는 1:M 관계가 만들어지는 것입니다. 단, 부모 엔티티와 자식 엔티티가 M:1 관계는 될 수 없습니다.
자식 인티티의 데이터가 부모 엔티티에 반드시 있어야 합니다. 식별자 관계는 부모 엔티티의 주식별자가 자식 엔티티의 주식별자가 되는 관계입니다. 자식 엔티티는 단일 식별자나 복합 식별자를 가질 수 있습니다.
비식별자 관계(Non-Identification Relationship)는 부모 엔티티의 식별자가 자식 엔티티의 주식별자가 아닌 일반 속성이 되는 관계입니다. 비식별자 관계에서는 일반 속성의 속성 값이 없을 수 있기 때문에 부모 엔티티가 없는 자식 엔티티가 만들어질 수 있고 동일한 이유로 자식 엔티티가 존재하는 상태에서 부모 엔티티가 없어질 수 있습니다.