SQLD/모델링
3.속성의 식별자와 관계
김귤🐵
2023. 9. 7. 14:41
1.식별자
식별자란?
- 모든 엔터티는 2개 이상의 인스턴스를 가지고 있고, 인스턴스는 속성으로 자신의 특성을 나타낸다.
- 식별자는 이런 속성 중에 각각의 인스턴스를 구분 가능하게 만들어주는 대표 격인 속성을 말한다.
식별자의 분류
분류 | 식별자 |
대표성 여부 | 주식별자 |
보조식별자 | |
스스로 생성된 여부 | 내부식별자 |
외부식별자 | |
속성 수에 따른 여부 | 단일식별자 |
복합식별자 | |
대체 여부 | 본질식별자 |
인조식별자 |
1.대표성 여부
분류 | 설명 |
주식별자 (Primary Identifier) |
유일성,최소성,불변성,존재성을 가진 대표 식별자 기본키인 PK에 해당하는 속성이다. 하나의 속성이 주식별자가 될 수 있고, 여러 개의 속성이 주식별자가 될 수도 있다. 예-사원 번호,고객 번호 등 ⚠️주식별자의 특징
|
보조식별자 (Alternate Identifier) |
인스턴스를 식별할 수는 있지만 대표 식별자가 아님 다른 엔터티와 참조 관계로 연결되지 않음 예-주민등록번호 등 |
2.스스로 생성되었는지 여부
분류 | 설명 |
내부식별자 | 엔터티 내부에서 스스로 생성된 식별자 예-고객번호 |
외부식별자 | 다른 엔터티에서 온 식별자,다른 엔터티와의 연결고리 역할을 한다. 예-주문엔터티의 고객번호 |
3.속성 수의 따른 여부
분류 | 설명 |
단일식별자 | 하나의 속성으로 구성된 식별자 예-고객엔터티의 고객번호 |
복합식별자 | 두 개 이상의 속성으로 구성된 식별자 예-주문 상세 엔터티의 주문번호+상세번호 |
4.대체 여부
분류 | 설명 |
원조식별자 | 업무 프로세스에 존재하는 식별자,가공되지 않은 원래의 식별자 예-고객번호 |
대리식별자 | 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자 |
식별자와 비식별자관계
식별자 관계 | 비식별자 관계 | |
설명 | 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계 부모 데이터가 없다면 자식 데이터는 생길 수 없다. |
부모 엔터티의 식별자가 자식 엔터티의 일반 속성이 되는 관계 일반 속성의 속성값은 NULL이 될 수 있으므로, 부모 엔터티가 없는 자식 엔터티 생성이 가능하다. |
키의 구분 | 부모 릴레이션의 기본키가 자식 릴레이션의 기본키로 사용 |
부모 릴레이션의 기본키가 자식 릴레이션의 일반속성으로 사용된다. |
표기법 | 실선 표현 | 점선 표현 |
관계
관계란?
- 엔터티와 엔터티와의 관계를 의미한다.
- 어떠한 연관성이 있는지에 따라 존재 관계와 행위 관계로 나눌 수 있다.
관계의 분류
존재관계 | 행위 관계 |
존재 자체로 연관이 있는 관계 엄마와 자식,직원과 부서,학생과 학과 같은 존재로서 관계가 형성 |
특정 행위를 함으로써 연관이 생기는 관계 회원-주문 ,학생-출석부 |
관계 표기법
관계를 표기하기 위한 표기법은 관계명,관계차수,관계선택사양 세 가지로 이루어진다.
1.관계명(Membership)
- 엔터티와 엔터티가 어떤 관계를 맺는지 나타내는 문장
- 관계명은 반드시 명확한 문장이고 현재형으로 표기해야한다.
2.관계 차수
1:1 관계
1:M 관계
N:M 관계
3.관계 선택 사양
- 관계가 필수적인지 선택적인지를 나타낸다.
- 필수적 관계 → 주문은 반드시 하나 이상의 주문 상품이 있어야 한다.
- 선택적 관계 → 학생이 출석하는 것은 선택사항이므로 선택적 관계가 된다.