diff --git "a/database/q7_\355\212\270\353\236\234\354\236\255\354\205\230_\355\212\271\354\247\225\354\227\220_\353\214\200\355\225\264_\354\204\244\353\252\205\355\225\264\354\243\274\354\204\270\354\232\224/pk.md" "b/database/q7_\355\212\270\353\236\234\354\236\255\354\205\230_\355\212\271\354\247\225\354\227\220_\353\214\200\355\225\264_\354\204\244\353\252\205\355\225\264\354\243\274\354\204\270\354\232\224/pk.md" new file mode 100644 index 0000000..49a0fb4 --- /dev/null +++ "b/database/q7_\355\212\270\353\236\234\354\236\255\354\205\230_\355\212\271\354\247\225\354\227\220_\353\214\200\355\225\264_\354\204\244\353\252\205\355\225\264\354\243\274\354\204\270\354\232\224/pk.md" @@ -0,0 +1,32 @@ +# 트랜잭션 +데이터베이스 트랜잭션은 데이터베이스 관리 시스템에서 상호작용의 단위이다. 시스템의 특징으로, 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있다는 특징이 있다. + +## 특징 - ACID +위에서 설명한 특징을 풀어서 설명하면 ACID 특징을 보장한다고 할 수 있다. + +### A (Atomicity) +* 원자성 +* 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력. +* 작업이 모두 성공하거나 모두 실패해야한다는 특징이 있다. +### C (Consistency) +* 일관성 +* 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것. +### I (Isolation) +* 고립성(독립성) +* 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것. +* 성능관련 이슈로 인해 가장 유연성이 있는 제약 조건이다. +### D (Durability) +* 지속성(영구성) +* 성공적으로 수행된 트랙잭션이 영구적으로 반영되도록 하는 것. + +## 트랜잭션의 목적 +사용자가 데이터베이스 완전성(Integrity) 유지를 확신하게 한다. + +### 질문 +* 트랜잭션의 고립성은 어떤식으로 유연하게 조절할 수 있을까? + +### 참고 자료 +* https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98 +* https://en.wikipedia.org/wiki/ACID +* https://ko.wikipedia.org/wiki/ACID +