티스토리 뷰
데이터 모델링 개요
1. 모델링 정의
- 사건에 관한 양상(Aspect)이나 관점(Perspective)을 연관된 사람이나 그룹을 위하여 명확하게 하는 것
- 현실반영 하는 과정
2. 모델링의 특징
- 추상화, 단순화, 명확화
3. 데이터 모델링의 정의
- 데이터베이스를 구축하기 위한 분석/설계의 과정
- 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정
4. 데이터 모델링의 특징
- 가시화, 명세화, 구조화된 틀 제공, 결정된 것을 문서화, 추상화
5. 데이터 모델링의 3단계
-
개념적 데이터모델링 (분석, 계획 단계)
-
핵심 엔터티와 그들간의 관계를 발견하고, 그것을 표현하기 위해서 엔터티-관계 다이어그램을 생성하는 것이다.
-
주로 전사적 데이터 모델링, EA 수립시 많이 이용된다.
-
EA: 엔터프라이즈 구축을 위한 설계도면 + 엔터프라이즈 관리를 위한 거버넌스 체계
-
논리적 데이터모델링(분석, 계획 단계)
-
표로 전환
-
key속성, 관계등을 정확하게 표현
-
물리적 데이터모델링 (설계단계)
-
데이터베이스 제품 선택 후 실제 표로 만드는 과정
-
성능, 저장 등 물리적인 성격을 고려해서 설계
6. 데이터모델링의 3가지 개념
- 어떤 것, 관계, 성격
7. ERD(Entity Relationship Diagram)
-
업무분석에서 도출된 엔터티와 엔터티간의 관계를 이해하기 쉽게 도식화된 다이어그램
-
작업 순서
-
엔터티를 그리고 적절하게 배치
-
엔터티간 관계연결 및 관계명 표시
-
관계 차수, 선택성 기술
-
좋은 데이터모델의 요소
-
완전성, 중복배제, 업무규칙, 데이터 재사용, 의사소통, 통합성(동일한 데이터는 조직 전체에서 한번만 정의되고 여러 다른 영역에서 참조, 활용하게 만들어야 함)
8. 엔터티
-
엔터티(Entity) - 실체, 객체
-
엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.
-
엔터티는 업무상 관리가 필요한 관심사에 해당한다.
-
엔터티는 저장이 되기 위한 어떤 것(Thing)이다.
-
엔터티 - 인스턴스
-
엔터티는 인스턴스의 집합
-
엔터티
-
과목, 강사, 사건
-
인스턴스
-
수학, 영어, 이춘식, 조시형, 2010-001, 2010-002
-
엔터티의 특징
-
반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
-
유일한 식별자에 의해 식별이 가능해야 한다.
-
영속적으로 존재하는 인스턴스의 집합이어야 한다.(‘한 개’가 아니라 ‘두 개 이상’)
-
인스턴스가 한 개 밖에 없는 회사, 병원 엔터티는 집합이 아니므로 엔터티 성립이 안됨
-
엔터티는 업무 프로세스에 의해 이용되어야 한다.
-
업무프로세스에 사용되지 않으면 그 업무의 엔터티가 아님
-
엔터티는 반드시 속성이 있어야 한다.
-
예를들어 날씨를 엔터티로 만들었는데 날씨에 대한 속성이 아무것도 없다면 엔터티가 아님
-
엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
-
엔터티가 관계가 없으면, 잘못된 엔터티이거나 관계가 누락되었을 가능성이 큼
-
엔터티의 명명
-
현업업무에서 사용하는 용어를 사용한다.
-
약어를 사용하지 않는다.
-
단수명사를 사용한다.
-
모든 엔터티에서 유일하게 이름이 부여되어야 한다.
-
엔터티 생성의미대로 이름을 부여한다.
9. 속성
-
속성(Attribute)의 정의
-
“업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위”
-
업무에서 필요로 한다.
-
의미상 더 이상 분리되지 않는다.
-
엔터티를 설명하고 인스턴스의 구성요소가 된다.
-
엔터티: 강사 / 속성: 이름, 주소, 생년월일, 계약일자, 전문분야
-
속성 - 엔터티, 인스턴스, 속성, 속성값의 관계
-
한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
-
한 개의 엔터티는 두 개 이상의 속성을 갖는다.
-
한 개의 속성은 한 개의 속성값을 갖는다.
-
속성의 특징
-
엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (예, 강사의 교재이름)
-
하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
-
속성의 분류 – 엔터티 구성방식에 따른 분류
-
PK(Primary Key) 속성: 엔터티를 식별할 수 있는 속성
-
FK(Foreign Key)속성: 다른 엔터티와의 관계에서 포함된 속성
-
FK(Foreign Key)속성: 엔터티에 포함되어 있고 PK, FK에 포함되지 않은 속성
10. 관계
-
관계의 정의
-
인스턴스 사이의 논리적인 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태
-
관계의 분류
-
존재에 의한 관계
-
부서 -----소속한다-----> 사원
-
행위에 의한 관계
-
고객 ----- 주문한다 ----> 주문
-
관계차수(Degree/Cardinality)
-
1:1
-
사원 -l---등록한다----l- 병역사항
-
사원 -l---작성된다----l- 병역사항
-
1:M
-
부서-l----포함한다----l< 사원
-
부서-l---- 소속된다----l< 사원
-
M:N
-
관계 선택사양
-
필수참여(Mandatory Membership)
-
선택참여(Optional Membership)
11. 식별자
-
식별자(Identifiers) 개념
-
식별자는 엔터티내에서 인스턴스들을 구분할 수 있는 구분자이다.
-
식별자의 특징
-
유일성: 인스턴스들이 유일하게 구분되어야 한다.
-
최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
-
불변성: 자주 변하지 않는 것이어야 한다.
-
존재성: 주식별자가 지정이 되면 반드시 값
-
주식별자 도출기준
-
해당업무에서 자주이용
-
명칭이나 내역은 부적절
-
속성의 수가 많아지지 않도록 함
-
식별자의 속성의 개수가 많은경우 인조식별자를 생성해서 데이터모델을 구성하는 것이 더 좋은 방법이다.
-
외부식별자(Foreign Identifier)
-
자기 자신의 엔터티에서 필요한 속성이 아니라 다른 엔터티와의 관계를 통해 자식 쪽에 엔터티에 생성되는 속성을 외부식별자라 하며 데이터베이스 생성 시에 Foreign Key역할을 한다.
-
식별자관계(Identifiying Relationship)
-
자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우를 식별자 관계(Identifying Relationship)라고 지칭
-
부모로부터 받은 식별자를 자식엔터티의 주식별자로 이용하는 경우는 Null값이 오면 안되므로 반드시 부모엔터티가 생성되어야 자기 자신의 엔터티가 생성되는 경우이다
-
비식별자관계 (Non-Identifying Relationship) 의 정의
-
부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우
'database' 카테고리의 다른 글
[Database] 스칼라 서브쿼리 (0) | 2021.03.01 |
---|---|
[Database] 데이터 모델링 - 데이터 성능 (0) | 2021.03.01 |
[Database] 루씬(Lucene) (0) | 2020.09.27 |
[Database] NoSQL (0) | 2020.08.30 |
auto increment (0) | 2020.04.13 |
- Total
- Today
- Yesterday
- C++
- C
- Java
- 이진탐색
- 세마포어
- 병행프로세스
- 인접행렬
- 동적프로그래밍
- react
- 자료구조
- 알고리즘
- 구조체
- server side rendering
- 스텍
- dfs
- 입출력장치
- client side rendering
- 클래스
- Stack
- 배열
- 퀵정렬
- BFS
- 인접리스트
- 최단경로
- 재귀함수
- 소프트웨어
- 교착상태
- 운영체제
- javascript
- stackframe
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |