본문 바로가기
CS

데이터 모델과 논리데이터 모델링

by Forsaken Developer 2023. 4. 4.
728x90
728x90

데이터 모델

현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

데이터 모델 표시요소

  • 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
  • 구조(Structure) : 개체 타입과 개체 타입간의 관계
  • 제약조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

데이터 모델 절차

요구조건 분석

도출된 요구사항 간 상충을 해결하고 범위를 파악하여 외부 환경과의 상호 작용 분석을 통해 데이터에 대한 요구 분석

개념적 설계

현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델

주요 산출물로는 개체 관계 다이어그램이 있다.

논리적 설계

업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델

정규화를 수행하는 단계

물리적 설계

논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계

반 정규화를 수행하는 단계

관계 데이터 모델

데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델

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

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

관계 데이터 모델의 표현

데이터 간의 관계를 기본키와 이를 참조하는 외래키로 표현한다.

테이블 간 관계를 1:1, 1:N, M:N 관계로 목적에 맞게 표현한다.

관계 대수

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

관계 대수 연산자의 종류

일반 집합 연산자

수학의 집합 개념을 릴레이션에 적용한 연산자

  • 합집합(Union) : 합병 가능한 두 릴레이션 R과 S의 합집합
  • 교집합(Intersection) : 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션을 구성
  • 차집합(Difference) : R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션을 구성
  • 카티션 프로덕트(CARTESIAN Product) : R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션을 구성

순수 관계 연산자

관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자

  • 셀렉트(Select) : 합병 가능한 두 릴레이션 R과 S의 합집합
  • 프로젝트(Project) : 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션을 구성
  • 조인(Join) : R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션을 구성
  • 디비전(Division) : R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션을 구성

논리 데이터 모델링 속성

개체(Entity)

개체는 사물 또는 사건으로 정의되며 개체라고도 한다.

피터 챈 모델(Peter Chen Model)에서는 개체를 사각형으로 표시한다.

까마귀발 모델(Crow's Foot Model)에서는 개체를 표 형식으로 표시한다.

속성(Attribute)

속성은 개체가 가지고 있는 요소 또는 성질이다.

피터 챈 모델(Peter Chen Model)에서는 속성을 타원형으로 표시한다.

까마귀발 모델(Crow's Foot Model)에서는 속성을 표 내부에 표시한다.

관계(Relationship)

두 개체 간의 관계를 정의한다.

피터 챈 모델(Peter Chen Model)에서는 관계를 마름모로 표시한다.

까마귀발 모델(Crow's Foot Model)에서는 관계를 다음과 같이 표시한다.

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

현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델

요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델

출처 - IT위키

정규화(Normalization)

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

이상현상(Anomaly)

데이터의 중복으로 인해 릴레이션을 조작할 때 발생하는 비 합리적 현상

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

정규화의 단계

  • 1정규형(1NF) : 원자값으로 구성
  • 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계)
  • 3정규형(3NF) : 이행함수 종속 제거
  • 보이드-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
  • 4정규형(4NF) : 다치(다중 값)종속 제거
  • 5정규형(5NF) : 조인 종속 제거

반정규화(De-Normalization)

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

반정규화 기법

  • 테이블 병합 : 1:1 관계, 1: N 관계를 통합하여 조인 횟수를 줄여 성능을 향상
  • 테이블 분할 : 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함
  • 중복 테이블 추가 : 대량의 데이터들에 대한 집계함수를 사용할 때 별도의 통계 테이블을 두거나 중복 테이블을 추가
  • 컬럼 중복화 : 조인 성능 향상을 위한 중복 허용
  • 중복 관계 추가 : 여러 경로를 거쳐 조인이 가능하지만 이 때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법
728x90
반응형

'CS' 카테고리의 다른 글

데이터베이스의 종류  (0) 2023.04.05
물리 데이터 모델 설계  (0) 2023.04.04
UML의 개념과 UML 다이어그램의 분류  (0) 2023.04.03
스토리보드와 프로토타입  (0) 2023.04.02
UI 요구사항 확인  (0) 2023.04.02

댓글