-
SQLD[요약정리(2)05/05~05/28]자격증/sqld 2022. 5. 9. 22:32
2장 데이터 모델과 성능
정규화란?
-반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게 배치되도록 하는것
-쉽게말해 데이터 중복을 제고하고 데이터 모델의 독립성을 확보하기 위한 방법
*1차 정규화
-같은 성격, 내용 컬럼이 연속될 때 컬럼 제거, 테이블 생성
*2차 정규화(부분 함수 종속성 제거)
-PK 복합키 구성일때 부분 함수 종속 관계 테이블 분리
*3차 정규화(이행 함수 종속성 제거)
-PK 가 아닌 일반 컬럼에 의존하는 컬럼 분리
정규화 문제점
-데이터 조회시 JOIN을 많이 유발하기 때문에 CPU와 메모리를 많이사용한다.
->반정규화를 사용해 해결
반정규화란?
-데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법
-조회 속도를 향상시키지만 데이터 모델의 유연성은 낮아진다.
*반정규화기법(수직분할, 수평분할)
- 수직분할 :칼럼단위 테이블을 디스크 I/O를 분산처리하기 위해 테이블을 1:1로 분리하여 성능향상
- 수평분할(특정 값에 따라서 테이블을 분할하는 방식): 로우단위로 집중 발생되는 트랜잭션을 분석하여 디스크 I/O 및 데이터 접근의 효율성을 높여 성능을 향상하기 위해 로우단위로 테이블을 쪼갬
*PK에 의해 테이블을 분할하는 방법 (파티셔닝)
1. RANGE PARTITION : 대상 테이블이 날짜 또는
숫자값으로 분리가 가능하고 각 영역별로 트랜잭션이
분리되는 경우 ex) _0401 요금
2. LIST PARTITION : , 지점 사업소 등 핵심적인
코드값으로 PK가 구성되어 있고 대량의 데이터가
있는 테이블의 경우 ex) _ 고객 서울
3. HASH PARTITION : HASH 지정된 조건에 따라
해시 알고리즘이 적용되어 테이블이 분리
테이블에 대한 수평 수직분할의 / 절차1. 데이터 모델링을 완성한다
2. DB .용량산정을 한다
3. 대량 데이터가 처리되는 테이블에 대해 트랜잭션
처리 패턴을 분석한다.
4. 칼럼 단위로 집중화된 처리가 발생하는지 로우 ,
단위로 집중화된 처리가 발생하는지 분석하여
집중화된 단위로 테이블을 분리하는 것을 검토한다.
컬럼 많음- -> 1:1 분리
데이터 많음- -> 파티셔닝*슈퍼 서브 / 타입 데이터 모델의 변환기술
1. 개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성 (OneToOne Type)
2. + 슈퍼타입 서브타입에 대해 발생되는 트랜잭션에 대해서는 슈퍼 서브타입 + 테이블로 구성 (Plus Type)
3. 전체를 하나로 묶어 트랜잭션이 발생할 때는 하나의 테이블로 구성 (Single Type, All in One Type)
분산 DB 를 만족하기 위한 6가지 투명성
1.분할 투명성 (단편화) : 하나의 논리적 Relation 이
여러 단편으로 분할되어 각 사본이 여러 site에 저장
2.위치 투명성 : 사용하려는 데이터의 저장 장소
명시 불필요 ,위치정보가 시스템 카탈로그에 유지
3. 지역사상 투명성 : 지역 DBMS 와 물리적DB
사이의 Mapping 보장
4.중복 투명성 : DB 객체가 여러 stie에 중복 되어
있는지 알 필요가 없는 성질
5.장애 투명성 : 구성요소의 장애에 무관한
트랜잭션의 원자성 유지
6.병행 투명성 : 다수 트랜잭션 동시 수행시 결과의
일관성 유지 , TimeStamp,분산 2단계 Locking 단계 이용
분산 DB - 장 단점
장점 : 지역 자치성 신뢰성 가용성 효용성,융통성
빠른 응답속도, 비용절감, 각 지역 사용자 요구 수용
단점 : 비용증가, 오류의 잠재성 증대, 설계 관리의
복잡성 불규칙한 응답 속도, 통제의 어려움, 데이터
무결성 위협
분산 DB 적용 기법
1. 테이블 위치 분산 : 설계된 테이블을 본사와
지사단위로 분산 위치별 DB문서 필요
2. 테이블 분할 분산 : 각각의 테이블을 쪼개어 분산
- 수평분할 로우 단위로 분리 지사별로 다를때,
중복X
-수직분할: 칼럼 단위로 분리, 각 테이블에 동일
PK 있어야 함.'자격증 > sqld' 카테고리의 다른 글
sqld 30회 기출 오답정리(1) (0) 2022.05.18 sqld[빈출 개념 복습05/05~05/28] (0) 2022.05.17 SQLD[요약정리(4)05/05~05/28] (1) 2022.05.13 SQLD[요약정리(3)05/05~05/28] (0) 2022.05.10 SQLD[요약정리05/05~05/28] (0) 2022.05.05