본문 바로가기

CS

논리 데이터 저장소 확인

데이터 모델

(1) 데이터 모델(Data Model)개념

- 데이터 모델은 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
- 데이터 모델에 표시해야 할 요소 : 논리적 데이터 구조, 연산, 제약조건
- 데이터 모델 절차 : 개념적 데이터 모델 -> 논리적 데이터 모델 -> 물리적 데이터 모델

(2) 데이터 모델 절차

개념적 데이터 모델

현실 세계에 대한 인식을 '추상적, 개념적으로 표현하여 개념적 구조를 도출'하는 데이터 모델
트랜잭션 모델링, View 통합방법 및 Attribute 합성 고려모델
- 트랜잭션모델링 : 트랜잭션을 개념적 시스템 독립적으로 정의, 트랜잭션의 입출력 기능, 형태만 정의
개념적 데이터 모델은 DB 종류와 관계 없음
주요 산출물로는 개체관계 다이어그램이 있음

논리적 데이터 모델

업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델
논리적 데이터 모델을 통해 "관계 데이터 모델", "계층 데이터 모델", "네트워크 데이터 모델", "객체지향 데이터 모델", "객체-관계 데이터 모델" 중 하나의 모델에 맞게 설계
목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스 설계
논리적 데이터 모델링에서 정규화 수행
스키마의 평가 및 정제

물리적 데이터 모델

논리 데이터 모델을 DBMS 특성 및 성능을 고려하여 물리적인 스키마를 만드는 일련의 데이터 모델
Table, Index, View, Partition 고려하여 데이터베이스 저장 구조로 반환
응답시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계
성능에 맞게 반정규화 수행
접근 경로 설계

+ 정규화
관계형 데이터 모델에서 데이터 중복 제거, 이상 현상 방지, 데이터 일관성, 정확성 유지 (무손실 분해)
+ 반 정규화
정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

논리 데이터 모델 검증

(1) 논리 데이터 모델링 개념

논리적 데이터 모델링은 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
개념모델로부터 업무 데이터, 규칙을 구체적으로 표현한 모델
+개념모델
주제 영역과 핵심 데이터 집합 간의 관계를 정의하는 모델

(2) 논리적 데이터 모델링 종류

관계 데이터 모델

논리적 구조가 2차원 테이블 형태로 구성된 모델
기본 키(PK)와 이를 참조하는 외래 키(FK)로 관계 표현
1:1, 1:N, N:M 관계를 자유롭게 표현

계층 데이터 모델

논리적 구조가 트리 형태
상하관계 존재(부모<->자식)
1:N 관계만 허용

네트워크 데이터 모델

논리적 구조가 그래프 형태
CODASYL DBTG 모델
상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조

(3) 관계형 데이터 모델

관계 데이터 모델의 구성요소

릴레이션 : 행과 열로 구성된 테이블
튜플 : 릴레이션의 행에 해당되는 요소
속성(Attribute) : 릴레이션의 열에 해당되는 요소
카디널리티 : 튜플의 수
차수(Degree) : 애트리뷰트(Column)의 수
스키마 : 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적 구조
인스턴스 : 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

관계 대수

관계 대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어

관계 대수 연산자의 종류
일반 집합 연산자

순수 집합 연산자

 

순수 집합 연산자

 

(4) 논리 데이터 모델링 속성

논리 데이터 모델링의 속성은 개체, 속성, 관계로 구성된다.
개체(Entity) : 관리할 대상이 되는 실체
속성(Attributes) : 관리할 정보의 구체적 항목
관계(Relationship) : 개체 간의 대응 관계

개체
- 개체는 사물 또는 사건으로 정의되며 개체라고도 한다.
- 피터 챈 모델에서는 개체를 사각형(ㅁ)으로 표시
- 까마귀발 모델에서는 개체를 표 형식으로 표시

속성
- 속성은 개체가 가지고 있는 요소 또는 성질
- 피터 챈 모델 : 속성을 타원형으로 표시
- 까마귀발 모델에서는 속성을 표 내부에 표시

관계
- 두 개체 간의 관계를 정의
- 피터 챈 모델에서는 관계를 마름모로 표시

까마귀발 모델 표기법

(5) 개체-관계(E-R) 모델

E-R 모델은 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 가장 널리 사용되고 있는 모델이다.
논리 데이터 모델링에서 의사소통의 보조자료로 활용
요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델

(6) 정규화

관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정

이상 현상
- 이상 현상은 데이터의 중복성으로 인해 '릴레이션'을 조작할 때 발생하는 비합리적 현상
- 삽입, 삭제, 갱신 이상이 있다.

삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력하는 경우
삭제 이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
갱신 이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

데이터베이스 정규화 단계
1정규형(1NF) 원자값으로 구성
- 원자값으로 구성, 반복 속성/중복 제거가 필요
2정규형(2NF) 부분 함수 종속 제거(완전 함수적 종속 관계)
- 주식별자 아닌 속성을 분리한다.
3정규형 (3NF) 이행함수 종속 제거
- 속성에 종속적인 속성을 분리
보이스-코드 정규형(BCNF) 결정자 후보 키가 아닌 함수 종속 제거
- 결정자 함수 종속, 모든 결정자가 후보 키이다.
4정규형 (4NF) 다치(다중값)종속 제거
- 특정 속성값에 따라 선택적인 속성을 분리한다.
5정규형(5NF) 조인 종속 제거

(7) 반 정규화

반 정규화는 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법이다.

장점 : 성능 향상, 관리 효율성 증가
단점 : 데이터의 일관성 및 정합성 저하

반정규화기법
테이블 - 테이블 병합/테이블 분할/중복 테이블 추가
컬럼 - 컬럼 중복화
관계 - 중복 관계 추가

'CS' 카테고리의 다른 글

OOP / Functional  (0) 2021.07.16
물리 데이터 저장소 설계  (0) 2021.04.12