4. 논리적 모델링과 정규화

April·5일 전
0

🌱server

목록 보기
22/22

1. 논리적 모델링 개요

(1) 논리적 모델링의 개념과 특징 

  • 논리적 모델링(Logical Modeling) 의 개념
    • 개념적 모델링을 기반으로 , 속성, 관계 등 데이터의 논리적 구조를 정확하게 정의하는 과정
    • 관계형 데이터베이스의 논리적 구조에 적합하도록 변환하고 정체하는 과정
  • 논리적 모델링의 일반적인 특징
    • 특정 DBMS 혹은 물리적 구현에 독립적인 설계 
    • 엔터티를 테이블로 변환
    • 속성을 칼럼(속성)으로 변환
    • 기본키와 외래키 설정
    • 제약 조건 설정

⇒ 정규화를 통한 데이터 중복 최소화, 데이터 이상현상 방지, 무결성 및 일관성 유지 

  • 논리적 모델의 주요 고려사항

    • 엔터티 정제: 유사한 엔터티의 통합 및 분리를 통한 구조화
    • 식별자(Key) 선정: 릴레이션(테이블)의 튜플(레코드)를 대표하는 식별자(Key) 선정
    • 관계 설정/해소: 교차 엔터티를 이용하여 M:N 관계 재 설정(해소) 
    • 다중값 속성 해소: 다중값 속성을 별도의 릴레이션으로 분리, 원래 엔터티의 기본키를 외래키로 포함
    • 정규화 및 제약조건: 데이터 중복제거 및 이상현상 해소, 무결성 검사 및 제약 사항 적용 
  • 키(Key)의 종류와 특징

    • 기본키(Primary Key)
      • 주식별자, 여러 개의 후보키 중에서 하나를 선정
      • 테이블을 대표하는 키
      • 대표성
    • 후보키(Candidate Key)
      • 키의 특성인 유일성과 최소성을 만족하는 키 
    • 슈퍼키(Super Key)
      • 유일성은 만족하나 최소성을 만족하지 않는 키
    • 대체키(Alternative Key)
      • 후보키 중 기본키로 선정되지 않는 키
      • 기본키를 대체할 수 있는 키
    • 외래키(Foreign Key)
      • 한 릴레이션의 속성(집합)이 다른 릴레이션의 기본키로 이용되는 키 
  • 키(Key)의 상호 관계



2. 정규화

(1) 함수적 종속성의 개념과 종류 

  • 함수적 종속성의 개념

함수적 종속성이란?
데이터들이 결정자와 종속자의 관계로 상호 종속되는 관계
➜ X → Y: 결정자인 X가 종속자인 Y를 결정
➜ 한 릴레이션(R)의 X → Y인 관계에서 X가 기본키가 아닐 경우 이상현상이 발생할 수 있음

  • 함수적 종속성의 종류
종류설명
완전함수 종속성(X,Y) → Z일때, X→Z가 아니고 Y→Z가 아니면 Z는 완전함수 종속
부분함수 종속성 (X,Y)→Z일때, X→Z이거나 Y→Z인 경우
이행함수 종속성X→Y, X→Z 인 상황에서 Y→Z를 만족하는 경우

(2) 이상현상의 개념과 특징

  • 이상현상(Anomaly)의 개념

이상현상(Anomaly)이란?
데이터의 중복성으로 인해 릴레이션을 조작 시 발생하는 비합리적인 현상
➜ 중복된 속성, 속성 간에 종속하는 다양한 종속관계에 따라 발생하는 문제

  • 이상현상의 종류와 특징
종류특징
갱신 이상릴레이션에서 특정 속성값을 갱신할 경우 중복 저장된 속성값 중 하나만 변경되어, 데이터간 불일치가 발생하는 문제
삭제 이상 릴레이션에서 특정 튜플을 삭제할 경우 보유하고자 하는 정보까지도 삭제되는 현상
삽입 이상릴레이션에 특정 튜플을 삽입하고자 할 경우 원하지 않는 (불필요한) 정보까지도 추가해야 하는 현상
  • 이상현상의 사례


(3) 정규화의 개념과 특징

  • 정규화(Normalization)의 개념

정규화(Normalization)란?

  • 이상현상(Anomaly)을 해결하기 위해 중복을 최소화 하면서 무손실 분해하는 과정
  • 함수적 종속성을 참고하여 기본적으로 하나의 종속성이 하나의 릴레이션으로 표현되도록 분해하는 과정

➜ 정규형: 정규화로 도출된 데이터 모델이 갖추어야 할 특성

  • 정규화의 특징

    • 이상현상 해결, 일관성과 무결성 확보
    • 중복 제거로 저장 공간 회소화
    • 연관 관계를 이용한 유연한 관리

    ➜  정보의 무손실, 데이터 중복 최소화, 분리의 원칙 

    ※ 조인(Join)을 위한 정보 구성 및 활용 시 성능 저하


  • 정규화의 유형별 특징
종류특징
1차 정규화- 속성의 원자값 확보(Atomic Value) - 반복되는 속성 제거, 다중값 속성의 분리
2차 정규화- 부분함수 종속성 제거 - 릴레이션 R이 1NF이고, 릴레이션의 기본키가 아닌 속성들이 기본키에 완전히 함수적으로 종속
3차 정규화- 이행함수 종속성 제거 - 릴레이션 R이 2NF이고, 기본키가 아닌 모든 속성들이 기본키에 대하여 이행적 함수 종속성의 관계를 가지지 않음 - 기본키 외의 속성들 간에 함수적 종속적을 가지지 않는 경우
기타- BCNF, 4차 정규화, 5차 정규화
  • 1차 정규화의 예: atomic 하게 적용하기

  • 2차 정규화의 예: 부분 종속성 제거하기 

  • 3차 정규화의 예: 이행적 종속성 제거하기 



3. 반정규화

(1) 정규화의 고려사항과 반정규화

  • 정규화의 고려사항
    • 정규화의 장점
      • 데이터 이상현상 제거
      • 데이터 중복 최소화
      • 입력/수정/삭제 효율화
    • 정규화 고려사항
      • 조회 시 처리 조건에 따라 성능 저하 발생
      • Join 시 성증 저하 발생
        • Join: 논리적 관계를 기준으로 둘 이상의 테이블을 연결하여 결과 집합을 만드는 과정
  • 반정규화(Denormalization)의 개념

반정규화(Denormalization)란?
정규화 이후 조회(질의) 성능 향상을 위하여, 일부 데이터의 중복을 허용하거나 테이블의 구조를 변경하는 작업

  • 반정규화의 절차

  • 반정규화의 주요 기법
    • 테이블 반정규화: 테이블 병합, 테이블 분할, 테이블 추가
    • 컬럼 반졍규화: 중복 컬럼 추가, 파생 컬럼 추가, 집계 컬럼 추가
    • 관계 반정규화: 중복 관계 추가




profile
🚀 내가 보려고 쓰는 기술블로그

0개의 댓글

관련 채용 정보