SQLD
관계(Relationship) & 식별자(Identifiers)
Jeongmin Lee
2020. 1. 2. 15:05
관계(Relationship)
관계
인스턴스 사이의 논리적인 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태
페어링(Paring)
엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것
관계의 표기법
- 관계명 : 관계의 이름
- 관계차수 : 1:1, 1:M, M:N
- 관계선택사양 : 필수관계, 선택관계
식별자(Identifiers)
식별자
엔티티내에서 인스턴스들을 구분할 수 있는 구분자
식별자의 특징
- 유일성 : 주식별자에 의해 엔티티내에 모든 인스턴스들이 유일하게 구분
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
- 불변성 : 지정된 주식별자의 값은 자주 변하지 않는 것
- 존재성 : 주식별자가 지정이 되면 반드시 값이 들어와야함
식별자의 분류
- 대표성 여부
- 주식별자 : 엔티티 내에서 각 어커런스를 구분할 수 있는 구분자, 타 엔티티와 참조관계를 연결할 수 있음
- 보조식별자 : 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결 불가
- 스스로 생성 여부
- 내부식별자 : 스스로 생성되는 식별자
- 외부식별자 : 타 엔티티로부터 받아오는 식별자
- 단일속성여부
- 단일식별자 : 하나의 속성으로 구성
- 복합식별자 : 2개 이상의 속성으로 구성
- 대체여부
- 본질식별자 : 업무에 의해 만들어지는 식별자
- 인조식별자 : 인위적으로 만든 식별자
주식별자 도출기준
- 해당 업무에서 자주 이용되는 속성
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 X
- 복합으로 주식별자로 구성할 경우 너무 많은 속성 X
식별자 관계
- 주식별자 : 자식의 주식별자로 부모의 주식별자 상속
- 부모로부터 받은 식별자를 자식엔티티의 주식별자로 이용하는 경우
- 강한 연결관계 표현, 실설 표기
- 비식별자 : 부모 속성을 자식의 일반 속성으로 사용
- 부모 없는 자식이 생성될 수 있는 경우
- 부모와 자식의 생명주기가 다른 경우
- 여러개의 엔티티가 하나의 엔티티로 통합되어 표현되었는데 각각의 엔티티가 별도의 관계를 가진 경우
- 자식엔티티에 별로의 주식별자를 생성하는 것이 더 유리한 경우
- SQL 문장이 길어져 복잡성 증가되는 것 방지
- 약한 연결관계 표현, 점선 표기
반응형