SQLD/1장 데이터 모델링의 이해

데이터 모델링의 이해 - (3)

깐까망 2023. 6. 1. 10:52
728x90
반응형
SMALL

* 관계 

- 엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태, 관계 페어링의 집합 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를 설계할 때 식별자/비식별자가 구분이 되어야만 설계하는게 편해지고 성능이 좋아진다는 것을 배웠다.)

 

728x90
반응형
LIST

'SQLD > 1장 데이터 모델링의 이해' 카테고리의 다른 글

데이터 모델링의 이해 - (2)  (0) 2023.05.31
데이터 모델링의 이해 - (1)  (0) 2023.05.30