데이터 분석이란
- 고객 비즈니스를 이해하여 논리 ERD를 도출하고 시스템 성능을 고려하여 물리 ERD로 전환하는 절차
논리 ERD | 물리 ERD | |
용어 | 일반 용어 | DBMS 용어 |
대상 | Entity, Attribute, identifier, Occurrence | Table, Column, Primary Key |
특징 | 정규화, 중복 배제, 유연성 | 반정규화, 중복 허용, 파티셔닝, 집계테이블 |
- 현행시스템에서 사용한 용어/도메인을 조사하여 엔티티 도출, 속성/식별자/관계를 정의하는 활동
데이터 분석 목적
- 비즈니스 처리에 필요한 정보를 구조화
- 안정적 시스템의 기초
논리 데이터 모델
논리 데이터 구성 요소
1. 주제영역: 주요 토픽에 대한 엔터티 그룹
2. 엔터티: 유용한 정보를 저장하고 관리하는 영속적으로 존재하는 단위
3. 관계: 두 앤터티 사이의 논리적 연결
4. 식별자: 각 객체를 유일하게 구분하는 구분자
5. 속성: 더 이상 분리되지 않는 최소의 데이터 단위
논리 데이터 모델링 절차
주제영역 정의 ➡️ 엔터티 정의 ➡️ 관계 정의 ➡️ 식별자 정의 ➡️ 속성 정의 ➡️ 세부사항 정의(정규화)
엔터티
- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 영속적인 존재 단위
ex) Entity: 사원, 속성: 사번(PK), 이름, 주소, 전화번호
Occurrence: (10001, 홍길동, 서울, 010-), (10002, 섭섭, 서울, 010-)
엔터티 특징
1. Occurence의 집합
2. 유일한 식별자에 의해 식별 가능
3. 속성이 반드시 존재
2021.07.24 - [IT/CS] - [DB] 데이터 모델링1
엔터티 명명 규칙
1. 현업에서 사용하는 용어
2. 약어 사용 자제
3. 단수 명사 사용
5. 모든 엔터티 이름은 유일해야 함
엔터티 유형
1. 중심 엔터티: 주제 내 가장 핵심
2. 독립 엔터티: 다른 엔터티와 관계없이 데이터 생성이 가능한 엔터티, 중심 엔터티가 되는 경우가 많음
3. 의존 엔터티: 다른 엔터티에 데이터가 존재해야 생성 가능한 엔터티
4. 특성 엔터티: 항상 의존 엔터티, 특정 엔터티의 특징을 설명
5. 연관 엔터티: 두 개 이상의 엔터티에 의존적인 엔터티, N:N 관계
슈퍼/서브타입 엔터티
- 특정 기준에 따라 엔터티를 논리적으로 분리한 것 -> 비즈니스 파악이 용이해짐
- 슈퍼/서브 타입은 11:1 관계 형태를 가짐
- 서브타입: 배타적 관계, 포함 관계
관계
- 엔터티 간의 상호적 의미
- 하나의 관계는 두 가지 관점을 가짐
관계의 3요소
1. Membership: 관계에 참여한 각각 엔터티 관점에서 관계를 표현
2. Cardinality: Relationship Paring 분석을 통해 다중성 표시
3. Optionality: 필수적인지 선택적인지 표시
관계 정련
1. M:M 관계
- 관계 엔터티 생성
- 속성/식별자에 의한 통합
2. 하나의 엔터티에서 Occurrence가 1:M 관계를 맺음
- 1:M 자기 참조 관계
3. 하나의 엔터티에서 Occurrence가 1:1 관계를 맺음
- 1:1 자기 참조 관계
4. 둘 이상의 상위 엔터티로부터 동일한 역할의 외부 식별자를 선택적으로 받아오는 Arc 관계
- 관계 Role Name을 주어 하나의 속성으로 관리
식별자
- 엔터티 내에서 Occurrence를 구분할 수 있는 구분자
식별자 분류
1. 주 식별자(PK): 엔터티 내 각 Occurrence 구분
2. 보조 식별자: 엔터티 내 각 Occurrence 구분이 가능하나 대표성을 가지지 못함
3. 내부 식별자: 엔터티 내부에서 스스로 만들어지는 식별자
4. 외부 식별자(FK)
식별자 규칙
1. 유일성: Occurrence를 유니크하게 구별할 수 있는 속성
2. 최소성: 최소한의 속성으로 구성
3. Not Null
4. 값이 변경될 수 없음
식별자 관계
- 부모 엔터티 타입의 주식별자를 상속받아 자식 엔터티 타입의 주식별자로 사용하는 경우
- 부모 엔터티 없이 자식 엔터티 생성 불가
비식별자 관계
- 부모 엔터티 타입으로 부터 속성을 받았지만 자식 엔터티 타입의 주 식별자로 사용하지 않고 일반적인 속성으로 사용하는 경우
- 부모 없이 자식 생성 가능
속성
- 업무에 필요한 엔터티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위
속성 분류
1. 기본속성: 업무상 수집된 속성
2. 설계속성: 업무에 필요한 정보를 주기 위한 속성
3. 파생속성: 다른 속성에 의해 만들어진 속성 ➡️ 비즈니스 규칙 파악 용이, 데이터 전환 설계 시 검증 규칙으로 활용
표기법
정규화
- 어려 유형의 검사를 통해 데이터 모델을 구조화하고 개선시키는 절차
- 테이블에 중복된 데이터가 없도록 함
필요성
- 데이터처리에 있어 입력, 수정, 삭제의 이상현상 제거
- 중복된 데이터가 제거되어 프로그램 단순화
- 다양한 유형의 검사를 통해 데이터 모델을 구조화
함수의 종속성
- 데이터들이 어떤 기준 값에 의해 종속되는 현상
기준값: 결정자(Determinant) - 종속값: 종속자(Dependent)
ex) 결정자(주민등록번호) - 종속자(이름, 출생지, 주소)
정규화 단계
1차 정규화 | 복수의 속성값을 갖는 속성 분리 - 한 컬럼에는 여러 개의 데이터 값이 중복되어 나타나지 않아야 함 |
2차 정규화 | 주식별자 전체에 종속적이지 않은 속성 분리 부분종속 분리 |
3차 정규화 | 일반속성에 종속적인 속성 분리 이전종속 분리 |
보이스-코드 정규화(BCNF) | 주식별자 안에서 함수적 종속관계 발생 다수 주식별자 분리 > 식별자 간에 종속성이 있는 경우 별도의 엔터티로 분리 |
4차 정규화 | 다가종속 속성 분리 - 여러 값을 중복으로 삽입해야 하는 종속 제거 |
상관 모델링
- 데이터와 프로세스의 영향을 분석하는 것
- 데이터 모델링 작업을 통한 엔터티 타입과 프로세스 모델링에서 도출한 단위 프로세스를 이용하여 작업을 진행
목적
- 프로세스 모델과 데이터 모델의 정합성을 검증하여 중복되거나 누락되는 엔터티와 프로세스 도출
산출물
CRUD 매트릭스 | 엔티티와 프로세스의 상관관계 표현 |
DFD(Data Flow Digram) | 데이터가 프로세스를 따라 흐르면서 변환되는 과정을 표현한 것 |
화면정의서 | 화면을 통해 데이터의 모델의 엔터티, 속성 도출 빠짐없이 누락되지 않게 화면과 데이터 도출 |
'IT > CS' 카테고리의 다른 글
[DB] 데이터 모델링의 이해 - 물리 모델링 절차 (0) | 2022.04.24 |
---|---|
[JavaScript] 자바스크립트 비동기적 프로그래밍 (0) | 2021.12.07 |
[Architecture] MSA (0) | 2021.09.28 |
[Java] Lambda expression (0) | 2021.09.28 |
[JavaScript] jQuery (0) | 2021.08.22 |