YJ의 새벽
sqld (2) - 데이터 모델과 성능 본문
- 성능 데이터 모델링 개념
성능 데이터 모델링은 데이터베이스 성능향상을 위한 것
정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등이 존재함
- 성능 데이터 모델링 수행
사전에 할수록 비용이 들지 않는다.
분석/설계 단계에서 데이터베이스 처리 성능을 향상시킬수 있는 방법을 고려해야 한다.
- 성능 데이터 모델링 고려사항
1) 데이터모델링을 할 때 정규화를 정확하게 수행한다.
2) 데이터베이스 용량 산정을 수행한다.
3) 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다
4) 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
5) 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정 등을 수행한다.
6) 성능관점에서 데이터 모델을 검증한다.
- 정규화 개념
함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 입력/수정/삭제 이상현상을 제거하는 것
정규화된 테이블은 처리 속도가 빨라질 수도 있고 느려질 수도 있다.
입력/수정/삭제 시에는 무조건 성능이 향상된다.
- 정규화 이론
1) 제 1 정규화 ( 중복 속성에 대한 분리 )
-- 같은 성격, 내용 컬럼이 연속될 때 1 : M 으로 분리
2) 제 2 정규화 == 부분함수 종속성 제거 ( 제1정규형 )
-- PK 복합키 구성일 때 부분적 함수 종속 관계 테이블 분리 1 : M 으로 분리
3) 제 3 정규화 == 이행함수 종속성 제거 ( 제2정규형 )
-- PK 가 아닌 일반 컬럼에 의존하는 컬럼 분리
- 반정규화 개념
데이터를 조회할 때 디스크 I/O 량이 많아서 성능이 저하되거나 경로가 너무멀어
조인으로 인한 성능저하가 예상될 때 사용.
- 반정규화 기법 : 테이블 반정규화
1) 테이블 병합
-- 1:1 관계 테이블 병합
-- 1:M 관계 테이블 병합
-- 슈퍼/서브타입 테이블 병합
2) 테이블 분할
-- 수직분할 : 컬럼단위
-- 수평분할 : 로우단위
3 테이블 추가
-- 중복테이블 추가
-- 통계테이블 추가
-- 이력테이블 추가
-- 부분테이블 추가 : 자주 이용하는 집중화된 컬럼들이 있을 때 활용
- 반정규화 기법 : 컬럼의 반정규화
1) 중복컬럼 추가
2) 파생컬럼 추가
3) 이력 테이블 컬럼 추가
4) PK에 의한 컬럼 추가
- 대용량 테이블에서 발생할 수 있는 현상
로우 체이닝 : 로우 길이가 길어서 데이터 블록에 모두 저장되지 않고
두개 이상 블록에 걸쳐 하나의 로우가 저장되는 형태
로우 마이그레이션 : 데이터 블록에서 수정이 발생되면 수정된 데이터를 해당 데이터 블록에서
저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식
- 분산 데이터 베이스
논리적으로 동일한 시스템이며, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터를
하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스
- 분산 데이터베이스 장/단점
1) 장점 :
신뢰성과 가용성이 높다
효용성과 융통성이 높다
응답속도가 빠르다
통신비용이 절감된다
2) 단점 :
소프트웨어 개발 비용이 증대된다
불규칙한 응답 속도를 가진다
데이터 무결성에 대한 위협이 존재한다
'SelfStudy > sqld' 카테고리의 다른 글
sqld (4) - SQL 활용 (0) | 2024.03.06 |
---|---|
sqld (3) - SQL 기본 (0) | 2024.02.21 |
sqld (1) - 데이터 모델링의 이해 (0) | 2024.02.21 |