Database - 질문 정리

marafo·2021년 1월 19일
0

∙ Trade-Off 관계 :

∙ Cardinality :

∙ Selectivity :

∙ Transaction - 병행 제어(Concurrency Control) :

복수의 트랜잭션을 동시에 제어할 때, DB의 일관성이 깨지지 않도록 트랜잭션간의 interaction을 조율 제어하는 것이다. 트랜잭션들을 로테이션하면서 조금씩 처리해주는 것을 의미한다. Interleaving이라고 한다.

∙ Transaction - ACID :

기본적으로 트랜잭션은 DB의 상태 변화를 가져오는 논리적 기능들을 모아놓은 작업의 단위이다. DB의 일관성 유지 또는 다른 형태의 일관성을 만들기도 한다.

Atomicity(원자성)
트랜잭션의 작업이 부분 실행 혹은 중단을 막아준다. 다시 말해 트랜잭션의 실행은 DB에 all or nothing의 형태로 반영이 된다. 하나의 작업이라도 실패하면 nothing, 모든 작업이 성공적으로 처리되어야 all.

Consistency(일관성)
트랜잭션이 성공적으로 완료되면 항상 일관성 있는 DB로 변환 및 관리된다. 예를 들어 은행의 송금액이 정수형이었다가 문자열로 변하는 일관성 error를 막아준다.

Isolation(격리성)
트랜잭션 실행시 다른 트랜잭션의 작업이 끼어들지 못하게 독립성을 보장한다. 다시 말해 A 트랜잭션이 완료되기 전에는 B 트랜잭션이 수행 결과를 참조할 수 없다.

Durability(영속성)
트랜잭션이 완료(commit)된 후 시스템 error가 발생해도 그 상태(트랜잭션의 결과)를 유지해야 한다. 비휘발성 메모리에 데이터를 저장해서 실현할 수 있다.

∙ Commit, Rollback :

commit은 기본적으로 해당 트랜잭션을 통해 반영된 DB의 상태 변경을 저장하는 것이고 rollback은 트랜잭션에 의한 DB 상태 변경을 취소하는 것.

∙ 정규화 :

∙ Transaction Isolation Levels :


참고

ACID)
https://victorydntmd.tistory.com/129
https://kadamon.tistory.com/21

Commit, Rollback)
https://kadamon.tistory.com/21

정규화)
https://kadamon.tistory.com/21
https://victorydntmd.tistory.com/132?category=687930

Transaction - 병행 제어(Concurrency Control)
https://cbts.tistory.com/250
https://kadamon.tistory.com/21

profile
프론트 개발자 준비

0개의 댓글