데이터 모델링의 이해(3)

이재민·2023년 8월 13일
0

데이터베이스

목록 보기
3/5

정규화

정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법

비지니스에 변화가 발생하여도 데이터 모델의 변경을 최소화

제1정규화부터 제5정규화까지 있지만, 실질적으로는 제3정규형까지 수행

  • 제1정규화

    원자성의 원자성을 확보, 기본키를 설정

  • 제2정규화

    기본키가 2개 이산의 속성으로 이루어진 경우, 부분 함수 종속성을 제거

  • 제3정규화

    기본키를 제외한 칼럼 간에 종속성을 제거, 이행 함수 종속성을 제거

  • BCNF

    기본키를 제외하고 후보키가 있는 경우 분해하여 다중값 종속성을 제거

  • 제4정규화

    여러 칼럼들이 하나의 칼럼을 종속시키는 경우 분해하여 다중값 종속성을 제거

  • 제5정규화

    조인 의해서 종속성이 발생되는 경우 분해

정규화 문제점

정규화 데이터 조회 시에 조인을 유발하기 때문에 CPU와 메모리를 많이 사용.

정규화의 문제점을 해결하기 위해서 반정규화를 하여 하나의 테이블에 저장한다면 조인을 통한 성능 저하는 해결.

반정규화

데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법.

반정규화는 죄회 속도를 향상하지만, 데이터 모델의 유연성은 낮아짐.

반정규화를 수행하는 경우

  • 정규화에 충실하면 종속성, 활용성 향상, 수행 속도가 느려짐.
  • 다량의 범위를 자주 처리해야 하는 경우
  • 특정 범위의 데이터만 자주 처리하는 경우
  • 요약/집계 정보가 자주 요구되는 경우

반정규화 절차

  • 대상 조사 및 검토 : 데이터 처리 범위, 통계성 등을 확인해서 반정규화 대상을 조사.
  • 다른 방법 검토 : 반정규화를 수행하기 전에 다른 방법이 있는지 검토
  • 반정규화 수행 : 테이블, 속성, 관계등을 반정규화

클러스터링 : 인덱스 정보를 저장할 때 물리적으로 정렬해서 저장 -> 인접 블록을 연속적으로 읽기 때문에 성능이 향상

반정규화 기법

  • 계산된 칼럼 추가

  • 테이블 수직 분할

  • 테이블 수평 분할 : 값을 기준으로 분할

  • 테이블 병합

    1대1 관계의 테이블 을 하나의 테이블로 병합해서 성능 향상

    1대N 관계의 테이블을 병합하여 성능을 향상. 하지만 많은 양의 데이터 중복 발생

    슈퍼 타입과 서브 타입 관계가 발생하면 테이블을 통합하여 성능 향상

슈퍼 타입 및 서브 타입 변환 방법
  • OneToOne Type : 슈퍼 타입과 서브 타입을 개별 테이블로 도출.
  • Plus Type : 슈퍼 타입과 서브 타입 테이블로 도출.
  • Single : 슈퍼 타입과 서브 타입을 하나의 테이블로 도출.
파티션 기법
  • Range Partition
  • List Partition
  • Hash Partition
  • Composite Partition

장점 : 데이터 조회 시에 액세스 범위가 줄어들기 때문에 성능 향상

​ 데이터가 분할되어 있기 때문에 I/O성능 향상

​ 각 파티션을 독립적으로 백업 및 복구 가능

데이터베이스의 구조

  • 중앙 집중형 데이터베이스 : 한대의 물리적 시스템에 데이터베이스 관리 시스템을 설치하고 여러 명의 사용자가 데이터베이스 관리 시스템에 접속하여 데이터 베이스를 사용
  • 분산 데이터베이스 : 물리족으로 떨어진 데이터베이스에 네트워크로 연결하여 단일 데이터베이스 이미지를 보여 주고 분산된 작업 처리를 수행하는 데이터베이스

분산 데이터베이스의 투명성

  • 분할 투명성 : 각 단편의 사본이 여러 시스템에 저장되어 있음을 인식할 필요 없음
  • 위치 투명성 : 데이터 저장 장소를 명시할 필요가 없음
  • 지역 사상 투명성 : 각 지역 시스템 이름과 무관한 이름이 사용 가능
  • 중복 투명성 : 데이터베이스 객체가 여러 시스템에 중복되어도 무관하게 일관성이 유지
  • 장애 투명성 : 통신망에 이상이 발생해도, 데이터의 무결성은 보장.
  • 병행 투명성 : 동시에 분산 데이터베이스에 대한 트랜잭션을 수행하는 경우에도 결과에 이상이 없음

분산 데이터베이스 설계 방식

  • 상향식 설계 방식 : 지역 스키마 작성 후 전역 스키마 작성
  • 하향식 설계 방식 : 전역 스키마 작성 후 지역 사상 스키마 작성

분산 데이터베이스 장점과 단점

  • 장점

    데이터베이스 신뢰성과 가용성이 높음

    병렬처리로 빠른 응답 가능

    용량 확장이 쉬움

  • 단점

    관리와 통제가 어려움

    보안관리가 어려움

    무결성 관리가 어려움

    설계가 복잡함

profile
안녕하세요

0개의 댓글