일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MFC
- c++
- 자청
- sqld요약
- N-Queen
- 게임서버개발
- 서버최적화
- beautifulsoup
- 역행자
- 클린코드
- SQLD이론
- Backtracking
- BFS
- 백준
- 파이썬
- 오픽
- Python
- Javascript
- 클린 코드
- SQLD 이론
- SW개발자를 위한 성능좋은 SQL
- 주석
- git
- sqld
- 폴링vs이벤트
- 서버아키텍처
- 오픽 초보
- clean code
- DP
- 알고리즘
- Today
- Total
가취공부하자
SQLD 과목 1 데이터 모델링의 이해 (정규화, 트랜잭션 슈퍼타입/서브타입, 분산DB) 본문
마지막 마무리 중인데 아직 헷갈리는 부분 정리
1. 정규화
- 1차 정규화
중복 속성에 대한 분리
* 로우단위 중복제거 : 테이블의 칼럼이 원자 값(하나의 값)을 갖도록 테이블을 분해하는 것
* 컬럼단위 중복제거 : 칼럼 단위로 중복된 내용이 있는 경우 제거한다.
전
이름 | 좋아하는 가수 |
지수 | 블랙핑크, 에이핑크 |
지성 | 엔시티, 엔믹스 |
후
이름 | 좋아하는 가수 |
지수 | 블랙핑크 |
지수 | 에이핑크 |
지성 | 엔시티 |
지성 | 엔믹스 |
- 2차 정규화
1차 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것
(완전 함수 종속 : 기본키의 부분 집합이 결정자가 되어선 안된다는 것)
예를 들어 학생정보 테이블의 기본키가 '학번', '이름'일 경우 학번으로도 기본키 역할이 가능하지만 불필요한 '이름'이 추가된 경우, 이 경우 2차 정규화를 통해 불필요한 기본키를 제거하고 기본키를 학번으로만 설정해준다.
- 3차 정규화
2차 정규화를 진행한 테이블에 대해 이행정 종속을 없애도록 테이블을 분해하는 것
하나의 테이블에 기본키 외의 테이블이 다른 칼럼을 결정할 수 없다는 것을 의미한다.
A, B 두 개의 테이블이 합쳐졌는데 A의 테이블의 기본키만 기본키로 설정됨. 이런 경우 분해해주는 게 3차 정규화
- BCNF(Boyce-Codd Normal Form)
3차 정규화를 진행한 테이블에 대해 모든 결정자가 후보 키가 되어 테이블을 분해하는 것
기본키가 아닌 칼럼이 역으로 기본키를 결정하는지 확인 후 데이터 분리.
2. 트랜잭션
- 트랜잭션은 항상 전체를 대상으로 일괄 처리하는데 테이블은 서브타입 개별 유지하는 것으로 변환하면 Union연산에 의해 성능이 저하될 수 있다.
- 트랜잭션은 항상 서브타입 개별로 처리하는데 테이블은 하나로 통합하여 변환하면 불필요하게 많은 양의 데이터가 직접 되어 있어 성능이 저하될 수 있다.
- 트랜잭션은 항상 슈퍼+서브 타입을 함께 처리하는데 개별로 유지하면 조인에 의해 성능이 저하될 수 있다.
- 트랜잭션은 항상 전체를 통합해 분석 처리하는데 슈퍼-서브타입이 하나의 테이블로 통합되어 있으면 하나의 테이블에 직접된 데이터만 읽어 처리할 수 있기 때문에 다른 형식에 비해 더 성능이 우수하다. (조인이 감소해서)
3. 분산 DB
- 빠른 네트워크 환경을 이용해 DB를 여러 지역, 여러 노드로 위치시켜 사용성, 성능을 극대화시킨 DB
- '논리적'으로 동일한 하나의 시스템이며, 네트워크를 통해 '물리적'으로 분산된 데이터들의 모임
<=> GIS는 통합 데이터 베이스 구조를 의미하며 분산 데이터와는 대치되는 개념.
'SQL' 카테고리의 다른 글
SQLD 요약 이라쓰고 오답노트라 읽는다.. (엔터티 종류, ERD 작성순서, 식별자 종류 등..) (1) | 2022.09.03 |
---|---|
SQLD 요약 4 SQL 최적화 기본 원리 (0) | 2022.08.28 |
SQLD 요약 3 SQL 활용 (0) | 2022.08.28 |
SQLD 요약2 SQL 기본 및 활용 (0) | 2022.08.27 |
SQLD 요약 1 (데이터 모델링의 이해~트랜잭션) (2) | 2022.08.27 |