반응형

# SQLD 2과목_1 데이터 모델과 성능

## 성능 데이터 모델링

  • 데이터베이스 성능 향상을 목적으로, 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것.
  • 데이터의 증가가 빠를수록, 성능저하에 따른 성능개선비용은 증가한다.
  • 데이터모델은 성능을 튜닝하면서 변경 될 수 있는 특징이 있다.
  • 분석/설계 단계에서 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 Rework 비용을 최소화 할 수 있는 기회를 갖게 된다.

 

## 성능을 고려한 데이터모델링 순서

  • 데이터 모델링을 할 때 정규화를 정확하게 수행
  • 데이터베이스 용량산정 수행
  • 데이터베이스에 발생되는 트랜잭션 유형 파악
  • 용량과 트랜잭션의 유형에 따라 반정규화 수행
  • 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정 수행
  • 성능관점에서 데이터 모델 검증

 

## 성능데이터 모델링 고려사항

  • 용량산정은 전체 데이터베이스에 발생되는 트랜잭션의 유형과 양을 분석하는 자료가 되므로, 성능데이터 모델링을 할 때 중요한 작업이 될 수 있다.
  • 물리적인 데이터 모델링을 할 때 PK/FK의 칼럼 순서조정, FK인덱스 생성 등은 성능향상을 위한 데이터 모델링 작업에 중요한 요소가 된다.
  • 이력데이터는 시간에 따라 반복적으로 발생되기 때문에 대량의 데이터일 가능성이 높아 특별히 성능을 고려하여 칼럼 등을 추가하도록 설계한다.
  • 중복된 데이터를 제거하면 조회능력을 향상시킬수 있다.

 

## 1차 정규화 대상

  • 중복 속성에 대한 분리 / 로우 단위의 중복 / 칼럼 단위의 중복이 되는 경우가 1차 정규화의 대상이다.

 

## 반 정규화

  • 정규화된 엔터티, 속성, 관계에 대한 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법.
  • 데이터를 중복하여 성능을 향상 시키기 위한 기법.
  • 넓은 의미의 반정규화는 성능을 향상 시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미.
  • 데이터 무결성이 깨질 수 있는 위험을 무릅쓰고 데이터를 중복하여 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나, 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행한다.

 

## 칼럼의 반정규화 기법

  • 중복 칼럼 추가
  • 파생 칼럼 추가
  • 이력테이블 칼럼 추가
  • PK에 의한 칼럼 추가
  • 응용시스템 오작동을 위한 칼럼 추가

 

## 반정규화 절차

  1. 반정규화 대상 조회 : 범위 처리 빈도수 조사 / 대량의 범위 처리 조사 / 통계성 프로세스 조사 / 테이블 조인 개수
  2. 다른 방법유도 검토 : 뷰 테이블 / 클러스터링 적용 / 인덱스의 조정 / 응용애플리케이션
  3. 반정규화 적용 : 테이블 / 속성 / 관계 반정규화

 

## 로우체이닝이 발생할 정도로 한 테이블에 많은 칼럼이 존재할 경우 조회성능저하가 발생할 수 있다. 트랜잭션이 접근하는 칼럼유형을 분석하여 1:1로 테이블을 분리하면 디스크 I/O가 줄어 조회 성능을 향상 시킬 수 있다.

 

## 파티셔닝

  • 데이터 액세스 성능을 향상시키기 위해 적용하는 방법
  • 하나의 테이블에 많은 양의 데이터가 저장되면 인덱스를 추가, 테이블을 몇 개로 쪼개도 성능이 저하되는 경우가 있다. 이때 논리적으로 하나의 테이블이지만 물리적으로 여러 개의 테이블로 분리하여 데이터 액세스 성능도 향상시키고, 데이터 관리방법도 개선할 수 있도록 테이블에 적용하는 기법이다.

 

## 반정규화 대상에 대한 다른 방법으로 처리

  • 지나치게 많은 조인으로 데이터 조회 작업이 기술적으로 어려울 경우 뷰를 사용하면 해결할 수 있다.
  • 대량의 데이터 처리나 부분처리에 의해 성능이 저하된 경우 클러스터링을 적용하거나 인덱스를 조정해 성능을 향상할 수 있다.
  • 대량의 데이터는 PK의 성격에 따라 부분적인 테이블로 분리할 수 있다. 파티셔닝 기법을 적용하여 성능저하를 방지.
  • 응용 애플리케이션에서 로직을 구사하는 방법을 변경해 성능을 향상시킬 수 있다.

 

## 슈퍼/서브 타입 데이터 모델의 변환기술

  • 개별로 발생되는 트랜잭션에 대해 개별 테이블 구성
  • 슈퍼타입 + 서브타입에 대해 발생되는 트랜잭션에 대해 슈퍼타입 + 서브타입 테이블 구성
  • 전체를 하나로 묶어 트랜잭션이 발생할 경우 하나의 테이블로 구성

 

## PK순서를 결정하는 기준은 인덱스 정렬구조를 이해한 상태에서 인덱스를 효율적으로 이용할 수 있도록 PK순서를 지정해야 한다. 인덱스의 특징은 여러 개의 속성이 하나의 인덱스로 구성되어 있을 때 앞쪽에 위치한 속성의 값이 비교자로 있어야 인덱스가 좋은 효율을 나타낼 수 있다. 앞쪽에 위치한 속성 값이 가급적 '=' 아니면 최소한 범위 'BETWEEN', '<>'가 들어와야 인덱스를 이용할 수 있다.

 

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

  • 장점
  1. 지역 자치성, 점증적 시스템 용량 확장
  2. 신뢰성과 가용성
  3. 효용성과 융통성
  4. 빠른 응답 속도와 통신비용 절감
  5. 데이터의 가용성과 신뢰성 증가
  6. 시스템 규모의 적절한 조절
  7. 각 지역 사용자의 요구수용 증대
  • 단점
  1. 소프트웨어 개발 비용
  2. 오류의 잠재성 증대
  3. 처리 비용의 증대
  4. 설계, 관리의 복잡성과 비용
  5. 불규칙한 응답 속도
  6. 통제의 어려움
  7. 데이터 무결성에 대한 위협
반응형
반응형

*논리 데이터 모델 검증

1. 논리 데이터 모델링

- 데이터베이스 설계 프로세스의 기초 설계 단계로 비즈니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법이다.

- 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델이다.

 

2. 논리 데이터 모델링 특성

- 논리 데이터 모델링의 특징으로는 포용성, 정규화, 완전성, 독집성을 가진다.

- 정규화 : 모든 데이터를 정규화하여 모델링

- 포용성 : 모든 엔티티 타입, 속성, 관계, 프로세스 등을 포함

- 완전성 : 모든 규칙과 관계를 완전하고 정확하게 표현

- 독립성 : 성능, 제약사항에 독립적인 모델, 특정 DBMS로부터 독립적인 성질

 

3. 논리 데이터 모델링 속성

- 논리 데이터 모델링의 속성은 개체, 속성, 관계로 구성된다.

- 개체 : 관리할 대상이 되는 실체

- 속성 : 관리할 정보의 구체적 항목

- 관계 : 개체 간의 대응 관계

 

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

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

- 논리 데이터 모델링에서는 모든 이해당사자와 의사소통의 보조 자료로 E-R모델을 활용한다.

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

4-1. 개체-관계(E-R) 다이어그램 기호

- 개체 : 사각형 ( □ )

- 관계 : 마름모 ( ◇ )

- 속성 : 타원 ( ○ )

- 다중 값 속성 : 이중 타원 ( ◎ )

- 관계-속성 연결 : 선  ( - )

 

5. 정규화

- 관계형 데이터베이스의 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스이다.

5-1. 이상 현상 (Anomaly)

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

- 삽입, 삭제, 갱신 이상이 있다.

- 삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우

- 삭제 이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우

- 갱신 이상 : 중복 데이터 중 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

5-2. 정규화의 단계

- 1정규형 (1NF) : 원자값으로 구성

- 2정규형 (2NF) : 부분 함수 종속 제거 (완전 함수적 종속 관계)

- 3정규형 (3NF) : 이행함수 종속 제거

- 보이스-코드 정규형 (BCNF) : 결정자 함수이면서 후보키가 아닌 것 제거

- 4정규형 (4NF) : 다치 종속성 제거

- 5정규형 (5NF) : 조인 종속성 제거

반응형

+ Recent posts