SQLD 학습 1-5 식별자

제우민·2022년 8월 8일
0
post-thumbnail

식별자의 개념

  • 엔터티는 인스턴스들의 집합이라고 하였다. 여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름이 있어야 하는데 이 구분자를 식별자라고 한다.

  • 엔터티 내의 각 인스턴스를 개별적으로 식별하기 위해 사용된다.

식별자의 특징

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

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

  • 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.

  • 주식별자가 지정이 되면 반드시 값이 들어와야 한다.

식별자 분류

대표성여부

  • 주식별자: 엔터티 내에서 각 행을 구분할 수 있는 구분자

  • 보조식별자: 각 행을 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결을 못함

스스로 생성여부

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

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

속성의 수

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

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

대체여부

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

  • 인조 식별자: 인위적으로 만든 식별자

식별자 도출 기준

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

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

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

식별자관계와 비식별자 관계의 결정

  • 외부식별자는 자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와의 관계를 통해 자식 쪽 엔터티에 생성되는 속성을 외부식별자라 하며 데이터베이스 생성 시에 Foreign Key 역할을 한다.

  • 자식엔터티에서 부모엔터티로부터 받은 외부식별자를 자신의 주식별자로 이용할 것인지 또는 부모와 연결이 되는 속성으로서만 이용할 것인지를 결정해야한다.

식별자 관계

  • 자식 엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우를 식별자 관계라고 지칭한다.

비식별자 관계

  • 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우가 있다. 이와 같은 경우를 비식별자 관계라고 한다.

식별자 관계와 비식별자 관계
관계분석 --- 관계의 강/약분석 --- 자식테이블 독립 PK필요 ---SQL복잡성증가
비식별자 관계 고려

profile
Work hard

0개의 댓글