Transaction(νΈλμμ )
- ν΅μμ μΌλ‘ μ 보μ κ΅νμ΄λ λ°μ΄ν°λ² μ΄μ€ κ°±μ λ± μΌλ ¨μ μμ λ€μ λν μ°μ μ²λ¦¬ λ¨μλ₯Ό μλ―Έ
- λ°μ΄ν°λ² μ΄μ€μ 무결μ±μ΄ 보μ₯λλ μνμμ μμ²λ μμ μ μμνκΈ°μν μμ μ κΈ°λ³Έ λ¨μ
- λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€λ μμ λ€μ λͺ¨μ(κΎΈλ¬λ―Έ)
- μ£Όλ‘ λ°μ΄ν°λ² μ΄μ€μ μνλ₯Ό λ³νμν€λ
INSERT
,DELETE
,UPDATE
μ€ 1κ° μ΄μμ DML(Data Manipulation Language)μ ν¨κ» μ¬μ©
μμ)
- μ μμ μ€ μ΄λ νλκ° μ€ν¨νλ€λ©΄ 'Transaction : Aκ° Bμκ² 100λ§μμ μ κΈν©λλ€.'λ κ²°μ½ μ€νλμ΄μ μλ©λλ€.
BEGIN
- νΈλμμ μ μμμ μ리λ κ²(νΈλμμ νλλΉ λ°λμ BEGIN/COMMIT λλ BEGIN/ROLLBACK μ΄ μΈνΈλ‘ μμ΄μΌν©λλ€.)
COMMIT
- νΈλμμ μ νμ μ νΈλ₯Ό μλ €μ€μΌλ‘μ¨ λ°μ΄ν°λ² μ΄μ€μ λ°μλκ²λ νλ κ²
- COMMITμ ν΅ν΄ νμ μ νΈλ₯Ό 보λ΄μ§ μλλ€λ©΄ λ°μ΄ν°λ² μ΄μ€μ λ΄μ© λ³νκ° μ΄λ£¨μ΄μ§μ§ μμ
- νμ DataBase μ΄μ©μ Auto-commit by Default νμΈνκ³ λκΈ°(κΈ°λ³Έμ μΌλ‘ μλ μ»€λ° κΈ°λ₯μ΄ μΌμ Έμλ κ²½μ° μ‘°μ¬)
μμ)
CREATE TABLE user (
id varchar(10) primary Key,
name varchar(10)
);
BEGIN # νΈλμμ
μ μμμ μ리λ κ²
INSERT INTO user VALUES ('id1', 'user1');
INSERT INTO user VALUES ('id2', 'user2');
COMMIT; # 컀λ°κΉμ§ ν΄μ€μΌ μ€μ λ°μ΄ν°λ² μ΄μ€μ λ°μμ΄ λ©λλ€.
ROLLBACK
- COMMITκ³Ό λ°λλλ κ°λ
- μμΌλ‘ λ³κ²½λ μμ μ λν λ΄μ©μ μ·¨μνκ² λ€λ κ°λ
- νΈλμμ μν μ€μ μ§κΈκΉμ§ μνν λ΄μ©μ λͺ¨λ μ·¨μνκ² λ€λ μλ―Έ
μμ)
BEGIN;
INSERT INTO user VALUES ('id3', 'user3');
ROLLBACK;
BEGIN;
INSERT INTO user VALUES ('id4', 'user4');
COMMIT;
- μμ μμμμ id4, user4 λ§ λ°μ΄ν°λ² μ΄μ€μ λ°μ
ACID (Atomicity, Consistency, Isolation, Durability)
- λ°μ΄ν°λ² μ΄μ€ λ΄μμ μΌμ΄λλ νλμ νΈλμμ μ μμ μ±μ 보μ₯νκΈ° μν΄ νμν μ±μ§
- Atomicity(μμμ±)
- νλμ νΈλμμ μ ꡬμ±νλ μμ λ€μ μ λΆ μ±κ³΅ or μ λΆ μ±κ³΅ν΄μΌν¨, μ¦ λΆλΆμ μΌλ‘ μ€νλλ©΄ μλ©λλ€.
- λ μͺΌκ°μ§ μ μλ λ¨μμ΄κΈ° λλ¬Έμ μμμ±μ΄λΌ λΆλ¦
- Consistency(μΌκ΄μ±)
- νλμ νΈλμμ μ΄μ κ³Ό μ΄ν λ°μ΄ν°λ² μ΄μ€ μνλ μ΄μ κ³Ό κ°μ΄ μ ν¨ν΄μΌνλ€λ μλ―Έ
- λ°μ΄ν°λ² μ΄μ€μ μ μ½μ΄λ κ·μΉμ μκ±°ν λ°μ΄ν°λ² μ΄μ€μ΄μ΄μΌ νλ€λ μλ―Έ
μμ)
CREATE TABLE user (
id varchar(10) primary Key,
name varchar(10)
);
- μμ κ°μ user ν μ΄λΈμ΄ μμ λ, user ν μ΄λΈμ λ°λμ idμ nameμ κ°μ§ κ°λ§ μΆκ°ν μ μμ΅λλ€.
- Isolation(κ³ λ¦½μ±, 격리μ±)
- νλμ νΈλμμ μ΄ λ€λ₯Έ νΈλμμ κ³Ό λ 립λμ΄μΌ νλ€λ μλ―Έ
- λμμ μ¬λ¬ κ°μ νΈλμμ λ€μ΄ μνλ λ, κ° νΈλμμ μ κ³ λ¦½λμ΄ μ°μμΌλ‘ μ€νλ κ²κ³Ό λμΌν κ²°κ³Όκ° λμμΌ ν©λλ€.
ex)
ν΄λΉ κ³μ’λ‘λΆν° κ³μ’ B λ‘ μ‘μ²μμ κ³μ’ μ΄μ²΄λ₯Ό νλ νΈλμμ
ν΄λΉ κ³μ’λ‘λΆν° κ³μ’ C λ‘ μ‘μ²μμ κ³μ’ μ΄μ²΄λ₯Ό νλ νΈλμμ
Bλ‘ μ΄μ²΄νλ νΈλμμ
κ³Ό Cλ‘ μ΄μ²΄νλ νΈλμμ
μ΄ μ무리 λμμ μ§νλλ€ν΄λ B μ΄ν C κ° μ§νλλ κ²°κ³Όμ κ°μμΌ ν¨
λ§μ½, μ΄ κ³ λ¦½μ±μ΄ μλ€λ©΄, κ³μ’μ λμ΄ μμ΄λ λμ΄ λΉ μ Έλκ°λ μν©μ΄ λ°μν μλ μμ΅λλ€.
- Durability(μ§μμ±)
- νλμ νΈλμμ μ΄ μ±κ³΅μ μΌλ‘ μνλμλ€λ©΄ ν΄λΉ νΈλμμ μ λν λ‘κ·Έκ° λ¨μμΌ ν©λλ€.
- μ¬μ§μ΄ μλ¬, μμ€ν μλ¬ λ± μ΄λ€ μλ¬κ° λ°μν΄λ ν΄λΉ κΈ°λ‘(λ‘κ·Έ)μ μꡬμ μΌλ‘ λ¨μμΌ ν©λλ€.
ex)
κ°λ¨ν μλ‘ μνμμ κ³μ’μ΄μ²΄λ₯Ό μ±κ³΅μ μΌλ‘ ν λ€μ ν΄λΉ μν λ°μ΄ν°λ² μ΄μ€μ μ€λ₯κ° λ°μν΄ μ’
λ£κ° λμ΄λ κ³μ’μ΄μ²΄ λ΄μμ λ¨μμΌ ν©λλ€.
λ§μ°¬κ°μ§λ‘ κ³μ’μ΄μ²΄λ₯Ό λ‘κ·Έλ‘ κΈ°λ‘νκΈ° μ μ μμ€ν
μ€λ₯ λ±μ μν΄ μ’
λ£κ° λλ€λ©΄ ν΄λΉ μ΄μ²΄ λ΄μμ μ€ν¨λ‘ λμκ°κ³ κ° κ³μ’λ€μ κ³μ’μ΄μ²΄ μ΄μ μνλ€λ‘ λμκ°κ² λ©λλ€.
'πΏ Data > λΆνΈμΊ ν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[TIL]51. Section3_sprint1_challenge (0) | 2022.01.24 |
---|---|
[TIL]50.DB_ API (0) | 2022.01.21 |
[TIL]48_DataBase, SQL_Basics(SQLite) (0) | 2022.01.19 |
[TIL]47_Git&Github and conda(κ°μνκ²½) (0) | 2022.01.19 |
[TIL]46_Section1_review_λ§λ¬΄λ¦¬ (0) | 2022.01.17 |