Previous chapter
Transaction Concept
Transaction์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ฑฐ๋ ์๋ก์ด ๊ฐ์ ๊ฐฑ์ ํ ๋ ์คํํ๋ ํ๋ก๊ทธ๋จ ์คํ๋จ์๋ค
//transfer $50 from A to B
Ti: read(A);
A := A-50;
write(A);
read(B);
B:= B + 50;
write(B);
C
๋ณต์ฌ
๊ฐ์ฅ ๋ํ์ ์ธ ์์ .
A์ ๋์ด ๋น ์ ธ๋๊ฐ๋ ๊ฒ๊ณผ B์ ๋์ด ์ถ๊ฐ๋๋ ๊ฒ์ด ๋ฐ๋์ ๊ฐ์ ๋จ๊ณ ์์์ ์ผ์ด๋์ผ ํ๋ค.
์ฆ, A์ B์ sum์ด ๊ฐ๋๋ก ๋ง๋ค์ด์ผ ํ๋ค.
์ฆ, Ti๋ ๋ฌธ์ ๊ฐ ์๊ฒจ์ ๋์ด ๋ณด๋ด์ง์ง ์๊ฑฐ๋ ์ฐ์ฐ์ด ์๋ฃ๋์ด ์ก๊ธ์ด ์๋ฃ๋๊ฑฐ๋ ๋ ์ค์ ํ๋์ ์ํ๋ง ๊ฐ์ ธ์ผํ๋ค. ๋ค๋ฅธ ์ํ๋ ๊ฐ์ง ์ ์๋ค.
์ด๋ Transaction์ ์ฌ์ฉํ์ฌ ํ๋์ ์ฐ์ฐ์ผ๋ก ๋ฌถ์ด์ค์ผํ๋ค.
Hardware Failure : ํ๋์จ์ด์์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒฝ์ฐ,
System Crashes : ์์คํ
์์ ์ค๋ฅ๊ฐ ์๊ธฐ๋ ๊ฒฝ์ฐ
์ด๋ฐ ์๋ฌ์์ ๋ฐ์ดํฐ๋ฅผ ๋ง๊ฐ๋จ๋ฆฌ์ง ์๊ณ ์ ๋ณด์กดํ ์ ์์ด์ผ ํ๋ค.
๋ํ ์ฌ๋ฌ๊ฐ์ Transaction๋ฅผ ๋์์ ์คํ์ํฌ ๋์ ์ฒ๋ฆฌ ์์๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃฐ์ง๋ ์๊ฐํด์ผ ํ๋ค.
DB์์์ transaction์ ํ๋์ ์ฐ์ฐ๋จ์์ด๋ค.
Example of Fund Transaction
//transfer $50 from A to B
Ti: read(A);
A := A-50;
write(A);
read(B);
B:= B + 50;
write(B);
C
๋ณต์ฌ
transaction์ด ์๋ ๊ฒฝ์ฐ
์ด๋ Transaction์ Atomicity๋ฅผ ๋ณด์ฅํด์ผํ๋ค.
โข
Transaction์ด ์คํ
3๊น์ง๋ง ์คํ๋๊ณ ์ฐ์ฐ ์คํจ๊ฐ ์ผ์ด๋ ๊ฒฝ์ฐ, A์ ๋๋ง ์ฆ๋ฐํ๋ค.
โข
์ฆ, A์ B๊ฐ ๋ชจ๋ ๊ฐ์ด ๋ณํํ๊ฑฐ๋ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ง ์ํด์ผ ํ๋ค.
๋ํ Durability๋ฅผ ๋ณด์ฅํด์ผํ๋ค.
โข
Transaction ์ฐ์ฐ์ด ์๋ฃ๋์๋ค๋ฉด, ์์์ ์ธ ์ ์ฅ์ฅ์น์ ๋ฐ๋์ ์ ์ฅํด์ผํ๋ค.(ํ๋๋์คํฌ ๊ฐ์ ์ ์ฅ์ฅ์น)
Transaction์ Consistency๋ฅผ ์ ์งํด์ผํ๋ค.
A์ 500, B์ 800์ด ์๋ค๊ณ ์๊ฐํ์.
โข
integrity Constraints
Isolation requirement
T1์ T2 ๋๋ค A์ B์ ๊ฐ์ ๋ณด๊ณ ์ถ์ ๋, Isolation์ Transaction์ (Serialization)
ACID Principles
Atomicity
Transaction์ด ๋ชจ๋ ์ ์์ ์ผ๋ก ์ํ๋๊ฑฐ๋, ๊ทธ๋ ์ง ์๊ฑฐ๋ ๋ ์ค ํ๋์ ์ํ๋ง ๊ฐ
Consistency
๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ๋ณด์กดํด์ผํ๋ค.
Isolation
Tranasaction ์ค๊ฐ์ ์ํ๋๋ ์ฐ์ฐ์ ๋ค๋ฅธ Transaction์ด ๋ณผ ์ ์์ด์ผ ํ๋ค.
Durability
Transaction ํ์ ๋ฐ๋์ ๋ฌผ๋ฆฌ ์ ์ฅ์ฅ์น์ ์ ์ฅํด์ผํ๋ค.
Transaction State
โข
Active : ์ต์ด์ ์ํ, Transaction์ด ์ํ๋ ๋ ์ํ.
โข
Partially Commited : ์ต์ข
์ฐ์ฐ์ด ๋๋๊ณ ๋ ํ์ ์ํ
โข
Failed : Transaction์ด ์ํ๋ ๋
โข
Aborted : Transaction์ด ๋กค๋ฐฑ ๋ ์ดํ์ ์ํ
โฆ
Transaction ์ฌ์์
โฆ
Kill Transaction
โข
Committed : Completion์ดํ ?
Concurrent Execution
๋ณต์์ Transaction์ด ๋์์ ์คํ๋ ๋์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
โข
ํ๋ก์ธ์์ ์ฝ์ด์ ๋์คํฌ์ ํจ์จ์ด ๋์ด๋ Transaction์ Throughput์ ๋ซ๊ฒ ๋ง๋ค์ด์ค๋ค.
โข
์๋ต์๊ฐ์ด ์ค์ด๋ ๋ค.
Concurrency Control Schemes : Isolation์ ๋ง์กฑํ๊ธฐ ์ํ ๋ฉ์ปค๋์ฆ
Schedules
์ค์ผ์ฅด๋ง์ ๋ง์ transaction์ ์์๋ฅผ ์ ์งํ๋ฉด์ ๋์์ ์คํํ ์ ์๋์ง์ ๋ํ ๋ฐฉ๋ฒ์ด๋ค.
๊ฐ์ฅ ์ค์ํ ์ ์ ์กฐ๊ฑด์ ์ฐ์ฐ๋ค๋ผ๋ฆฌ ๋ฐ๋์ ์ํ์์๋ฅผ ๋ณด์ฅํด์ผํ๋ค.
Transaction์์ ์๋ฌ๋ฅผ ํ์งํ ์ ์๋ ์กฐ๊ฑด๋ฌด
Serial Schedules
T1์ด ์ ์์ ์ผ๋ก ๋๋ ์ดํ, T2๊ฐ ๋ค๋ฐ๋ผ์ ์คํ๋๋ ์ง๋ ฌ ๊ตฌ์กฐ์ด๋ค.
๋๋ T2์ดํ, T1์ด ์คํ๋๋ค.
์ด์ฒ๋ผ ํ๋์ ์ฐ์ฐ์ด ๋ชจ๋ ๋๋ ์ดํ, ๋ค๋ฅธ ์ฐ์ฐ์ด ์คํ๋๋ ๊ตฌ์กฐ๋ฅผ ์ง๋ ฌ ์ค์ผ์ฅด์ด๋ผ๊ณ ํ๋ค.(Serial Schedules)
T1์ T2๋ชจ๋ ์ 3์ค์ A, ๋ฐ 3์ค์ B์ ๋ํ ์ฐ์ฐ์ด๋ค. ๋ฐ๋ผ์ ์ด์ ๋ํด ๋ถ๋ฆฌ๊ฐ ์ผ๋ถ๋ถ ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
์ฆ, T1์ A์ฐ์ฐ ์ดํ T2์ A์ฐ์ฐ์ด ์คํ๋๋ค๊ณ ํด๋ ์ด๋ ์ฒซ๋ฒ์งธ ์ง๋ ฌ ์ฐ์ฐ๊ณผ Equivalentํ ์ฐ์ฐ์ด ๋ ๊ฒ์ด๋ค.
์ฆ ํด๋น ์ฐ์ฐ์ ์ง๋ ฌ(ํ๋ํ)์ ์๋๋ ์ง๋ ฌ์ ์ฑ์ง์ ๋๊ณ ์๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ Serializableํ์ง ์๋ค.
Serializability
Transaction์ ์์๋ฅผ ๋ฐ๊พธ๋๋ผ๋ ๊ธฐ์กด Serial Schedule๊ณผ ๊ฒฐ๊ณผ๊ฐ์ด ๊ฐ๋ค๋ฉด Serializable Schedule์ด๋ผ๊ณ ํ๋ค.
โข
conflict Schedule : ์๊ฒฉํ Serializable
โข
View Schedule : ์กฐ๊ธ ์ ์ฐํ Serializable
Simplified View of Transaction
๊ฒฐ๊ณผ์ ์ผ๋ก๋ read์ write์ธ์คํธ๋ญ์
์ด ๊ฐ์ฅ ์ค์ํจ.
๋ด๋ถ์ ์ผ๋ก ์ผ์ด๋๋ Computation์ ๋ก์ปฌ ๋ฒํผ์์ cjflehlsek.
Conflicting Instruction
๊ธฐ๋ณธ์ ์ผ๋ก Conflict์ด ๋ฐ์ํ๋ ์กฐ๊ฑด์ write๊ฐ ํ๋๋ผ๋ ๋ค์ด๊ฐ ๊ฒฝ์ฐ์ด๋ค.
write๊ฐ ๋ค์ด๊ฐ๋ ์๊ฐ ๋ฐ์ดํฐ์ ๊ฐ์ด ์์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ conflict๋ Transaction๊ฐ์ ์์๋ฅผ ๊ฐ์ ํ๋ค.
๋ง์ฝ ๋ Transaction์ด conflictํ์ง ์๋๋ค๋ฉด ์์๋ฅผ ๋ฐ๊ฟ๋ ๋ฌด๋ฐฉํ ๊ฒ์ด๋ค.
Conflict๋ Transaction๊ฐ์ ์์๋ฅผ ๊ฐ์ ํ๋ค. ์ด๋ค๊ฐ์ order์ด ๊นจ์ง๋ ์๊ฐ ๋ฐ์ดํฐ์ Consistency๊ฐ ๋ณด์ฅ๋์ง ์๋๋ค.
Conflict Serializability
์ค์ผ์ฅด S๊ฐ Sโ์ผ๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ ๋, ์ด๋ฅผ Conflict Serializablitiy(์ถฉ๋ ๋๋ฑ)์ด๋ผ๊ณ ํ๋ค.
์ค์ผ์ฅด3๊ณผ ์ค์ผ์ฅด6์ ์ถฉ๋ ๋๋ฑ(conflict Serializable)ํ๋ค.
์ด๋ฐ ๊ฒฝ์ฐ๋ Conflict Serializable ํ์ง ์๋ค.
conflict Serializableํ์ง๋ฅผ ํ์ธํ๋ ค๋ฉด?
View Serializability
์๋์ ์ธ๊ฐ์ง ์กฐ๊ฑด๋ง ๋ง์กฑํ์.
S์ Sโ
โข
์ค์ผ์ฅด S์์ Transaction Ti๊ฐ ์์ ๋, Q์ ์์๊ฐ์ ์ฝ์ผ๋ฉด, Sโ์ Transaction Ti๋ํ ์์๊ฐ Q๋ฅผ ์ฝ์ด์ผ ํ๋ค.
โข
S์์ Ti๊ฐ read(Q)๋ฅผ ์คํํ๊ณ ๊ทธ ๊ฐ์ด Transaction Tj์ ์ํด ์์ฑ๋์์ ๊ฒฝ์ฐ, Sโ๋ํ ๊ทธ ์์๋ฅผ ์ง์ผ์ผ ํ๋ค.
โข
final Write(Q)๋ ๋ฐ๋์ ๊ฐ์ Transaction์ด ์ํํด์ผํ๋ค.
Example
์ฒ์ read๋ฅผ ์คํํ ๊ฑด T27์ด๊ณ , ๋ง์ง๋ง write๋ T29์ด๋ค
write ๋ค์ read๊ฐ ์์ผ๋ฏ๋ก 2๋ฒ์งธ ์กฐ๊ฑด์ ์๋์ผ๋ก ์ถฉ์กฑ.
View Serializableํ๋ค. โ ๋ค๋ง, conflict Serializableํ์ง๋ ์์!!!
์ด์ฒ๋ผ view serializableํ์ง๋ง conflict serializableํ์ง ์๋ ๊ฒฝ์ฐ blind writes๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์ด๋ค.
blind write๋ ์ฐ๊ธฐ ์ฐ์ฐ์ ํ์ง๋ง ์ ํ ์ํฅ์ ์ฃผ์ง ์๋ ๊ฒฝ์ฐ์ด๋ค.
๋ค์ ์์๋ฅผ ๋ณด์.
Serial Schedule์ T1โT2โT3 || R(Q)W(Q)โ W(Q)R(Q) ->R(Q)W(Q)์ด๋ค.
๋ค์ ๋์ฒด ์ค์ผ์ฅด์ 1,3๋ฒ์ ๋ง์กฑํ๋ 2๋ฒ์ ๋ง์กฑํ์ง ์๋๋ค.
T1์ W(Q) ์ดํ R()
Testing for Serializability
์ ์ ์๋ Transaction์, ์ฃ์ง๋ ๋ค์ ์์๋ฅผ ํฅํ๋ค.
์ฌ์ดํด์
Recoverable Schedules
Cascading Rollbacks
T10์ด ์คํจํ ๊ฒฝ์ฐ, T11์ T12๊ฐ ๋ชจ๋ rollbackํด์ผํ๋ ๊ฒฝ์ฐ. ์ด๋ฅผ cascading Rollback์ด๋ผ๊ณ ํ๋ค.
์ด๋ ์ฌ๊ฐํ ์ฑ๋ฅ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์์.
Cascadeless schedule
โข
Tj๊ฐ Ti๊ฐ ์ด ๊ฐ์ ์ฝ์ ๋, Ti๋ commit๋ ์ํ์ฌ์ผ ํ๋ค.
Concurrency Control
DBMS๊ฐ ์ฌ๋ฌ๊ฐ์ Transaction์ด ์์ ๋ ์ค์ผ์ฅด๋ง์ ๊ฒฐ์ ํด์ผํ๋ค.
โข
conflict or view serializable
โข
recoverable and preferably cascadeless
Weak Levels of Consistency
Next chapter



















