[정처기] 실기요약 - 3-1. 논리 데이터 저장소 확인
목차
1. 요구사항 확인
Chapter 01 소프트웨어 개발 방법론
Chapter 02 현행 시스템 분석
Chapter 03 요구사항 확인
2. 화면 설계
Chapter 01 UI 요구사항 확인
Chapter 02 UI 설계
3. 데이터 입출력 구현
Chapter 01 논리 데이터 저장소 확인
Chapter 02 물리 데이터 저장소 설계
Chapter 03 데이터베이스 기초 활용하기
데이터모델
표시요소: 연산 / 구조 / 제약조건
- 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
- 논리적 데이터 구조, 연산, 제약 조건
1. 연산
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
- 릴레이션을 조작하기 위한 관계 연산을 나타냄
- SELECT, PROJECT, JOIN, DIVISION
2. 구조
- 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계
- 데이터 구조 및 정적 성질을 표현하는 요소
3. 제약 조건
- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
- 데이터 무결성 유지를 위한 DB의 보편적 방법
- 릴레이션의 특정 칼럼에 설정하는 제약 의미(개체 무결성, 참조 무결성)
데이터 모델 절차
요구사항 분석 / 개념적 데이터 모델 / 논리적 데이터 모델 / 물리적 데이터 모델
1. 요구조건 분석
- 도출된 요구사항 간 상충을 해결, 범위를 파악하여 외부 환경과의 상호작용을 분석을 통해 데이터에 대한 요구 분석
2. 개념적 설계
- 개념적 데이터 모델
- 사용자의 요구에 대한 트랜잭션을 모델링 하는 단계
- 개념적 데이터 모델은 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
- 주요 산출물: 개체관계 다이어그램
3. 논리적 설계
- 논리적 데이터 모델
- 트랜잭션의 인터페이스를 설계
- 논리적 데이터 모델은 업무의 모습을 모델링 표기법으로 형상화 하여 사람이 이해하기 쉽게 표현
- 정규화 수행
4. 물리적 설계
- 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
- 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장구조로 변환하는 모델
- 성능 측면에서 반 정규화 수행
논리 데이터 모델 검증
- 업무의 모습을 모델링 표기법으로 형상화 하여 사람이 이해하기 쉽게 표현하는 프로세스
- 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현
논리적 데이터 모델링 종류
관계 데이터 모델
- 논리적 구조가 2차원 테이블 형태로 구성된 모델
- 기본키와 이를 참조하는 외래 키로 관계 표현
- 1:1, 1:N, N:M 관계를 자유롭게 표현
계층 데이터 모델
- 논리적 구조가 트리 형태로 구성된 모델
- 상하 관계 존재
- 1:N 관계만 허용
네트워크 데이터 모델
- 논리적 구조가 그래프 형태로 구성된 모델
- CODASYL DBTG 모델이라고 불림
- 상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조
1. 관계 데이터 모델
- 관계 대수: 절차적언어 / 관계 해석: 비절차적 언어
- 일반 집합 연산자: 합집합( ∪ ), 교집합( ∩ ) , 차집합(-), 카티션 프로덕트( × )
- 순수 관계 연산자: 셀렉트( σ ), 프로젝트 ( π ), 조인( ), 디비전( ÷ )
2. 관계 해석
- 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
- 관계대수 : 절차적 언어 / 어떻게 유도하는지 목적 / 순수관계 연산자, 일반 집합 연산자
- 관계해석: 비절차적 언어 / 무엇을 얻을 것인지가 목적 / 튜플 관계 해석, 도메인 관계해석
논리 데이터 모델링 속성
개체 / 속성 / 관계
1. 개체
- 사물 또는 사건으로 정의
- 피터챈모델에서는 사각형으로 표시
- 까마귀발모델에서는 표 형식으로 표시
2. 속성
- 개체가 가지고 있는 요소 또는 성질
- 피터챈모델에서는 타원형으로 표시
- 까마귀발모델에서는 표 내부에 표시
3. 관계
- 두 개체 간의 관계 정의
- 피터챈모델에서는 마름모로 표시
- 까마귀발모델에서는 표 내부에 표시
개체 관계 모델
- 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용
- 논리 데이터 모델링에서는 모든 이해당사자와 의사소통의 보조 자료로 E-R 모델을 활용
- 요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델
개체 - 관계 다이어그램 기호
개체 집합 | 관계 집합 | 속성 | 다중 값 속성 | 개체 집합-관계 집합연결 | 개체 집합-속성 연결 | 관계 집합-속성 연결 |
□ | ◇ | ○ | ◎ | (실선) | (실선) | (점선) |
정규화
- 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지
- 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
1. 이상현상
- 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
- 삽입, 삭제, 갱신 이상
2. 정규화의 단계
- 1정규형(1NF): 원자값으로 구성
- 2정규형(2NF): 부분함수 종속 제거
- 3정규형(3NF): 이행함수 종속 제거
- 보이스-코드 정규형(BCNF): 결정자 후보 키가 아닌 함수 종속 제거
- 4정규형(4NF): 다치 종속 제거
- 5정규형(5NF): 조인 종속 제거
3. 함수 종속
- 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건
- X → Y 관계일 때 X는 결정자, Y는 종속자
- 부분함수종속(Partial functional dependency): 기본키가 복합키일 경우 기본키를 구성하는 속성 중 일부에게 종속된 경우
- 완전함수종속(Full Functional Dependency): 릴레이션에서 X→Y 관계가 있을 때, Y는 X의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않는 경우
- 이행함수종속(Transitive Functional Dependency): 릴레이션에서 X→Y Y→Z 종속 관계가 있을 때, X→Z가 성립되는 경우
반 정규화
- 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법
- 비정규화, 역정규화
1. 반 정규화 특징
- 장점: 반 정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가
- 단점: 데이터의 일관성 및 정합성 저하 / 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음
2. 반 정규화 기법
- 테이블 : 테이블 병합 / 테이블 분할(수평분할, 수직분할) / 중복 테이블 추가(집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가)
- 컬럼: 컬럼 중복화
- 관계: 중복 관계 추가