5. 속성 (Attribute)
1) 속성
- 업무에서 필요한 정보인 엔터티가 가지는 항목
- 원자값 : 더 이상 분리되지 않는 단위. 의미적으로도 더 이상 분해되지 않음
- 업무에 필요한 데이터를 저장할 수 있음
- 인스턴스의 구성요소
2) 속성의 특징과 종류
(1) 속성의 특징
- 업무에서 관리되는 정보 / 하나의 값만 가짐 / 주 식별자에게 함수적으로 종속됨 (기본키가 변경되면 속성의 값도 변경됨)
(2) 속성의 종류
* 분해 여부에 따른 속성의 종류
단일 속성 |
- 하나의 의미로 구성된 것 회원 ID, 이름 등 |
복합 속성 |
- 여러 개의 의미로 구성된 것 주소.... 시 군 구로 분해될 수 있음 |
다중값 속성 |
- 속성에 여러 개의 값을 가질 수 있는 것 - 다중값 속성은 엔터티로 분해됨 상품 리스트 .,.. |
* 특성에 따른 속성의 분류
기본 속성 |
- 비즈니스 프로세스에서 도출되는 본래의 속성 회원 아이디. 이름, 계좌번호 ... - 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호, 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성 |
설계 속성 |
- 데이터 모델링 과정에서 업무를 규칙화하기 위해 발생되는 속성 - 유일한 값을 부여 상품코드, 사원코드 등.. |
파생 속성 |
- 다른 속성에 의해서 만들어지는 속성 (보통 계산된 값들) 합계, 평균 |
* 도메인 : 속성이 가질 수 있는 값의 범위 / 엔터티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것
6. 관계 (Relationship)
1) 관계
- 엔터티 간 관련성
- 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
2) 관계의 종류
(1) 존재 관계 : 엔터티 간의 상태. 두 개의 엔터티가 존재 여부의 관계가 있는 것
(2) 행위 관계 : 엔터티 간에 어떤 행위가 있는 것. 두 개의 엔터티가 어떤 행위에 의한 관련성이 있는 것
3) 관계 차수
- 두 개의 엔터티 간에 관계에 참여하는 수
* 필수적 관계와 선택적 관계
필수적 관계 |
| |
반드시 하나는 존재해야 하는 관계 |
선택적 관계 |
O |
없을 수도 있는 관계 |
* 몇 대 몇 관계
1 대 1 |
완전 1 : 1 |
|
- 하나의 엔터티에 관계되는 엔터티의 관계가 하나 있는 경우 |
선택적 1 : 1 | | - 하나의 엔터테에 관계되는 엔터티의 관계가 하나이거나 없는 경우 | |
1 대 N |
|
- 엔터티에 행이 하나 있을 떄 다른 엔터티의 값이 여러개 있는 관계 |
|
M 대 N |
|
- 두 개 엔터티가 서로 여러 개의 관계를 가지고 있는 경우 - 관계형 DB에서 M대N 관계의 조인(Join)은 카테시안 곱이 발생 -> M : N =>> 1 : M , N : 1 로 해소 (두 엔터티를 각각 1:.N으로 만들어줄 엔터티를 추가함) |
4) 식별 관계와 비식별 관계
* 강한 개체 : 누구에게도 지배되지 않는 독립적인 개체
* 약한 개체 : 개체의 존재가 다른 개체의 존재에 달려있는 개체
항목 |
식별자관계 |
비식별자관계 |
목적 |
강한 연결관계 표현 |
약한 연결관계 표현 |
자식 주식별자 영향 |
자식 주식별자의 구성에 포함됨 |
자식 일반 속성에 포함됨 |
표기법 |
실선 |
점선 |
연결 고려사항 |
- 반드시 부모엔터티 종속 - 자식 주식별자구성에 부모 주식별자 포함 - 상속받은 주식별자속성을 타 엔터티에 이전 필요 |
- 약한 종속관계 - 자식 주식별자 구성을 독립적으로 구성 - 자식 주식별자구성에 부모 주식별자 부분 필요 - 상속받은 주식별자속성을 타 엔터티에 차단 필요 - 부모쪽의 관계 참여가 선택 관계 |
(1) 식별 관계
- 식별 관계 : 강한 객체가 자신의 기본키를 약한 객체의 기본키로 공유시켜 약한 객체의 존재가 강한객체의 존재 여부에 따라 달라지는 관계
실선으로 표시
- 강한 개체의 기본키 값이 변경되면 약한 개체의 엔터티 값도 변경됨
(2) 비식별 관계
- 비식별 관계 : 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것
점선으로 표시
'[자격증] SQLD (SQL Developer)' 카테고리의 다른 글
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_03 분산 데이터베이스 (0) | 2019.11.13 |
---|---|
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_02 반정규화 (0) | 2019.11.13 |
[SQLD][책없이 공부]1과목 02. 데이터 모델과 성능_01 성능데이터모델링, 정규화 (0) | 2019.11.13 |
[SQLD][책없이 공부]1과목 01. 데이터 모델링 (Data Modeling)_02 (0) | 2019.11.12 |
[SQLD][책없이 공부]1과목 01. 데이터 모델링 (Data Modeling)_01 (0) | 2019.11.12 |