* 관계
- 엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태, 관계 페어링의 집합 ex) 강사 - 가르친다(관계) - 수강생
* 페어링
- 엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것
* UML(통합모델링언어)에서의 관계
- 연관관계(실선) : 항상 이용하는 관계 ex) 소속된다.
- 의존관계(점선) : 상대 행위에 의해 발생하는 관계 ex) 주문한다.
* 관계의 표기법
- 관계명 : 관계의 이름
- 관계차수 : 1:1, 1:N, M:N
- 관계선택성(관계선택사양) : 필수관계, 선택관계
* 관계 체크사항
1. 2개의 엔티티 사이에 관심있는 연관 규칙O?
2. 2개의 엔티티 사이에 정보의 조합 발생O?
3. 업무기술서, 장표에 관계연결에 대한 규칙 서술O?
4. 업무기술서, 장표에 관계연결을 가능케 하는 동사O?
* 식별자
- 엔티티 내에서 인스턴스를 구분하는 구분자 식별자는 논리적, Key는 물리적 데이터 모델링 단계에 사용
* 식별자의 특징
- 유일성 : 주식별자에 의해 모든 인스턴스들이 유일하게 구분
- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성 : 지정된 주식별자의 값은 자주 변하지 않아야 함. 변하면 이전 기록 말소됨
- 존재성 : 주식별자가 지정되면 반드시 값이 들어와야 함
* 식별자 분류
- 대표성영부 : 주식별자, 보조식별자
- 주 : 엔티티 내에서 각 어커런스를 구분할 수 있는 구분자, 타 엔티티와 참조관계를 연결O
- 보조 : 구분자이나 대표성X, 참조관계 연결X
- 스스로생성여부 : 내부식별자, 외부식별자
- 내부 : 스스로 생성되는 식별자
- 외부 : 타 엔티티로부터 받아오는 식자
* 속성의 수 : 단일식별자, 복합식별자
- 단일 : 하나의 속성으로 구성
- 복합 : 2개 이상의 속성으로 구성
* 대체 여부 : 본질식별자 , 인조 식별자
- 본질 : 업무에 의해 만들어지는 식별자
- 인조 : 인위적으로 만든 식별자
* 주식별자 도출기준
1. 해당 업무에서 자주 이용되는 속성임
2. 명칭, 내역 등과 같이 이름으로 기술되는 것들은 X
3. 복합으로 주식별자로 구성할 경우 너무 많은 속성 X
-> 너무 많으면 인조식별자 생성한다
* 식별자 관계
- 주식별자 : 자식의 주식별자로 부모의 주식별자 상속
= 부모로부터 받은 식별자를 자식엔티티의 주식별자로 이용하는 경우
= 강한 연결관계 표현, 실설 표기
= 식별자 관계로만 설정 시 주식별자 증가로 오류 유발
- 비식별자 : 부모 속성을 자식의 일반 속성으로 사용
1. 부모 없는 자식이 생성될 수 있는 경우
2. 부모와 자식의 생명주기가 다른 경우(별도로 소멸)
3. 여러개의 엔티티가 하나의 엔티티로 통합되어 표현되었는데 각각의 엔티티가 별도의 관계를 가진 경우
4. 자식엔티티에 별도의 주 식별자를 생성하는 것이 더 유리한 경우
5. SQL 문장이 길어져 복잡성 증가되는 것 방지
- 약한 연결관계 표현, 점선 표기
- 비식별자 관계로만 설정 시 부모 엔티티와 조인하여 성능 저하
(오늘은 관계와 식별자에 관해서 배웠다. DB를 설계할 때 식별자/비식별자가 구분이 되어야만 설계하는게 편해지고 성능이 좋아진다는 것을 배웠다.)
'SQLD > 1장 데이터 모델링의 이해' 카테고리의 다른 글
데이터 모델링의 이해 - (2) (0) | 2023.05.31 |
---|---|
데이터 모델링의 이해 - (1) (0) | 2023.05.30 |