일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 데이터베이스
- 프로그래머스
- RDBMS
- mysql
- programmers
- CCAAdministrator
- CCA131
- Identity and access management
- 코딩테스트
- 쉘스크립트
- IAM
- 클라우데라자격증
- 하둡
- 파이썬
- 클라우드자격증
- EC2
- AWSCloudPractitioner
- sql자격증
- 빅데이터실무자격증
- 리눅스
- Multi Factor Authentication
- 클라우드컴퓨팅
- SQLD
- hive
- CLF-01
- 빅데이터
- hadoop
- AWS자격증
- SQL
- MFA
- Today
- Total
Sherry IT Blog
[SQLD 핵심 요약] 데이터 모델과 성능 본문
*성능 데이터모델링
-데이터베이스 성능 향상이 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는것
-데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 증가한다,
-데이터모델은 성능을 튜닝하면서 변경이 될 수 있다.
-분석/설계 단계에서 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 Rework비용을 최소화 할 수 있는 기회를 가지게 된다.
*모델링의 순서
1) 정규화
2) 용량산정
3)트랜잭션 유형 파악
4)반정규화
5)조정(PK,슈퍼타입,서브타입 조정)
6)데이터 모델 검증
*성능 데이터 모델링 고려사항
1.데이터 모델링을 할 때 정규화를 정확하게 수행한다.
2.데이터베이스 용량산정을 수행한다.
3.데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
4.용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
5.이력모델의 조정,PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다.
6.성능관점에서 데이터 모델을 검증한다.
*함수적 종속성
결정자 ► 종속자
ex) 주민등록번호 ► (이름,출생지,주소)
기본적으로 데이터는 속성간의 함수종속성에 근거하여 정규화되어야한다.
*대량 데이터 발생에 따른 형태
-로우체이닝(Row Chaining) : 로우길이가 너무 길이서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두개 이상의 블록에 걸처 하나의 로우가 저장되어 있는 형태
-로우마이그레이션(Row Migration) : 데이터 블록속에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식
*대량 데이터 저장 및 처리로 인해 성능 향상 기법
1 ) RANGE Partition 적용
- 숫자값으로 분리가 가능하면 범위를 지정해서 분리, 데이터보관주기에 따른 테이블관리가 용이함
2) HASH Partition (해쉬적용)
-지정된 HASH조건에 따라 해쉬 알고리즘이 적용되어 테이블이 분리되며 설계자는 테이블 데이터가 정확히 어떻게 들어갔는지 알 수 없다.
3) LIST Partition (특정값 지정)
- 대용량 데이터를 특정값에 따라 분지 저장할 수 있으나, 데이터 보관주가에 따라 쉽게 삭제하는 기능은 제공될 수 없다.
4) COMPOSITE Partition(범위와 해쉬가 복합)
*칼럼 수가 적지만 데이터용량이 많아 성능저하가 예상되는 경우 테이블에 대해 파티셔닝 전략을 고려해야함
*정규화
1정규형(1NF) : 모든 속성은 반드시 하나의 값을 가져야한다.(릴레이션이어야한다.) - 원자성만족
2정규형(2NF) :일반속성은 주식별자 전체에 종속적이어야한다.(부분함수 종속제거)
3정규형(3NF) : 일반속성 간에는 종속성이 없어야 한다. ( 추이 함수 종속성 제거)
*기능향상
정규화 ► 입력/수정/삭제 기능 향상
반정규화 ► 조회 기능 향상
========================================================
*트랜잭션의 특성
ACID
-원자성(Atomicity)
트랜잭션의 작업은 모두 수행되거나 모두 수행되지 않아야함
-일관성(COnsistency)
트랜잭션이 완료되면 데이터 무결성 이 일관되게 보장되어야함
-고립성(Isolation)
트랜잭션이 다른 트랜잭션으로부터 고립된 상태로 수행되어야함
-지속성(Durability)
트랜잭션이 완료되면 장애가 발생하더라도 변경 내용이 지속되어야함
'DataBase > SQLD' 카테고리의 다른 글
[SQL 핵심요약] SQL 활용 (0) | 2021.03.20 |
---|---|
[SQL 핵심요약] SQL 기본 (2) | 2021.03.19 |
[SQLD 핵심 요약] 데이터모델링의 이해 (0) | 2021.03.18 |