일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백엔드
- 데이터베이스
- 혼공컴운
- 자바스크립트
- db
- Java
- 알고리즘
- 프로그래머스
- 스프링부트
- 국비지원코딩
- 프로세스
- 자바알고리즘
- 백엔드개발자
- 미라클모닝
- 개발자
- Codeup
- 프로그래머
- 국비지원
- 코드업
- 소셜로그인구현
- 운영체제
- 자바의정석
- 자바개발자
- 프로그래밍
- 자바
- 리액트
- 코딩
- SpringBoot
- React
- 개발자일기
- Today
- Total
초코딩(chocoding)
[SQLD] 이기적 - SQL 개발자 / part.2 데이터 모델과 성능 본문
데이터 중복을 제거하여 데이터 모델의 유연성을 향상시키는 것
=> 정규화, 3층 스키마, 이상현상 제거
정규화란?
=> 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며, 데이터를 분해하는 과정
=> 정규화는 데이터 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법
=> 정규화는 테이블을 분해해서 데이터 중복을 제거하기 때문에 데이터 모델의 유연성을 높임
=> 정규화를 수행하면 비즈니스에 변화가 발생하여도 데이터 모델의 변경을 최소화할 수 있음
=> 제1정규화부터 제5정규화까지 있지만, 실질적으로 제3정규화까지만 수행
정규화 절차
제1정규화 => 속성의 원자성 확보, 기본키 설정
제2정규화 => 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)
제3정규화 => 기본키를 제외한 칼럼 간에 종속성을 제거, 즉 이행 함수 종속성 제거
반정규화란?
=> 데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법
=> 조회(SELECT)속도를 향상하지만, 데이터 모델의 유연성이 낮아짐
반정규화 수행하는 경우
1. 정규화에 충실하면 종속성, 활용성은 향상되지만 수행속도가 느려지는 경우
2. 다량의 범위를 자주 처리해야 하는 경우
3. 특정 범위의 데이터만 자주 처리하는 경우
4. 요약 / 집계 정보가 자주 요구되는 경우
반정규화 기법
1. 계산된 칼럼 추가 : 배치 프로그램으로 칼럼을 미리 계산하고 그 결과를 특정 칼럼에 추가
2. 테이블 수직 분할 : 하나의 테이블을 두 개 이상의 테이블로 분할하여 새로운 테이블을 만드는 것
3. 테이블 수평 분할 : 하나의 테이블에 있는 값을 기준으로 테이블을 분할하는 방법
데이터베이스의 구조
1. 중앙 집중형 데이터베이스
2. 분산 데이터베이스
분산데이터베이스란?
=> 물리적으로 떨어진 데이터베이스에 네트워크로 연결하여 단일 데이터베이스 이미지를 보여주고, 분산된 작업 처리를 수행하는 데이터 베이스
분산데이터베이스의 투명성
=> 고객이 시스템이 네트워크로 분산되어 있는지의 여부를 인식하지 못하면서, 자신만의 데이터베이스를 사용하는 것처럼 투명성을 제공해야 함.
1. 분할 투명성
2. 위치 투명성
3. 지역 사상 투명성
4. 중복 투명성
5. 장애 투명성
6. 병행 투명성
분산 데이터베이스의 장점
=> 데이터베이스 신뢰성과 가용성이 높음
=> 분산 데이터베이스가 병렬 처리를 수행하기 때문에 빠른 응답 가능
=> 시스템 용량 확장이 쉬움
분산 데이터베이스의 단점
=> 데이터베이스가 여러 네트워크를 통해서 분리되어 있기 때문에 관리와 통제가 어려움
=> 보안관리가 어려움
=>데이터 무결성 관리가 어려움
=> 데이터베이스 설계가 복잡함
'MySQL' 카테고리의 다른 글
[MySQL] SQL이란? (0) | 2023.09.21 |
---|---|
[MySQL] 데이터 베이스란? (0) | 2023.09.21 |
[SQLD] 이기적 - SQL 개발자 / part02 데이터 모델링의 이해 : 출제 예상문제 (0) | 2023.09.07 |
[SQLD] 이기적 - SQL 개발자 / part.2 데이터 모델링의 이해 (0) | 2023.09.05 |