본문 바로가기
두고두고 볼 것

DB (about 관계형 데이터 모델링, 정규화, 트랜잭션)

by 문자메일 2020. 10. 5.

www.youtube.com/watch?v=qJtOBj7wp7Y&list=PLuHgQVnccGMDF6rHsY9qMuJMd295Yk4sa&index=32

 

제1 정규화 : 각 행, 칼럼의 값들은 atomic 해야 한다. (원자적 이어야 한다.)

 => 각 칼럼의 값들은 하나만 존재해야 한다. ex) 1,2 처럼 저장 X

 

제2 정규화 (중복키-composite key 존재하는 경우) : No Partial Dependencies, 부분 종속성이 없어야 한다.

 => 하나의 key에만 의존하는 칼럼 값들이 있으면 필연적으로 중복이 존재할 수 밖에 없다.

 

제3 정규화 : 이행적 종속성

 => 한 테이블에서 key값 이외의 column 값에 의존하는 column 값들이 존재하면 분리한다.

 

 

index : 읽기 성능 ↑, 쓰기 성능 ↓

 

정규화 : 쓰기 편리함(write) ↑, 읽기 성능(read) ↓ ( join은 비싼 작업임. 즉, 읽기 작업이 많으면 부하가 생길 수 있고 할 수 있는 개선을 다 해본 다음 방법이 없다면 역정규화 수행하여 read 속도 개선 가능)

 

 

트랜잭션이란?

- 하나의 단위로 수행되길 바라는 쿼리의 묶음. (=업무 수행 단위, 논리적인 수행단위)

- ACID를 유지하는 것 - 원시성, 일관성, 고립성, 지속성

 

어떻게?

1. 현재 세션을 위한 임시저장소에서 테스트.

2. 그 동안 다른 세션이 건드리지 못하도록(ex-update) lock을 건다.

 

 

댓글