<SQL 첫걸μ> μ λ³΄κ³ μ§μ νμ΅νκ³ κΈ°λ‘νλ ν¬μ€νΈ! π₯
DATABASE λ§μ€ν°λ₯Ό κΏκΎΈλ©°...π₯
π€ 8μ₯ λ°μ΄ν°λ² μ΄μ€ μ€κ³
π€ 34κ° λ°μ΄ν°λ² μ΄μ€ μ€κ³
- λ°μ΄ν°λ² μ΄μ€ μ€κ³ -> λ°μ΄ν°λ² μ΄μ€μ μ€ν€λ§ λ΄μ ν
μ΄λΈ, μΈλ±μ€ λ·° λ±μ λ°μ΄ν°λ² μ΄μ€ κ°μ²΄λ₯Ό μ μνλ κ².
- μ£Όλ λ΄μ©: ν
μ΄λΈμ μ΄λ¦μ΄λ μ΄, μλ£νμ κ²°μ νλ κ².
- 'μ΄ ν
μ΄λΈμ μ΄ μ΄μ μ΄μ©ν΄ μ μͺ½ ν
μ΄λΈκ³Ό μ°κ²°νλ€'μ κ°μ΄ ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό μκ°νλ©΄μ μ¬λ¬ ν
μ΄λΈμ μ μνκ³ μμ±.
- ERλ€μ΄μ΄κ·Έλ¨
- κ°μ²΄ κ° κ΄κ³λ₯Ό ννν κ²
- ν
μ΄λΈκ³Ό ν
μ΄λΈκ΄κ³ κ΄κ³(μ°κ³-릴λ μ΄μ
μ)
ex) μΌλμΌ, μΌλλ€, λ€λλ€
π€ 35κ° μ κ·ν
- ν
μ΄λΈμ μ¬λ°λ₯Έ ννλ‘ λ³κ²½νκ³ λΆν νλ κ².
- λ°μ΄ν°λ² μ΄μ€μ μ€κ³ λ¨κ³μμ νν΄μ§. or κΈ°μ‘΄ μμ€ν
μ μ¬κ²ν ν λ μ κ·ννλ κ²½μ°λ μμ.
- μ κ·ν
- μ κ·νλ λ¨κ³μ μΌλ‘.
2~4. μ 1~3μ κ·ν
π€ λ΄κ° μ 리νλ λΈλ‘κΉ
μ°Έκ³ : https://velog.io/@majaeh43/SQL-normalization%EC%A0%95%EA%B7%9C%ED%99%94%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
- μ κ·νμ λͺ©μ
- μ κ·νμμλ μ€λ³΅νκ±°λ λ°λ³΅λλ λΆλΆμ μ°Ύμλ΄μ ν
μ΄λΈμ λΆν νκ³ κΈ°λ³Έν€λ₯Ό μμ±ν΄ μ¬μ©νλ κ²μ κΈ°λ³Έ κ°λ
μΌλ‘ ν¨! 'νλμ λ°μ΄ν°λ ν κ³³μ μμ΄μΌ ν¨!'
π€ 36κ° νΈλμμ
π€ start transaction
π€ commit
π€ rollback
- λ°μ΄ν°λ² μ΄μ€λ νΈλμμ
μ΄λΌλ κΈ°λ₯μ μ 곡.
- insertλ updateλͺ
λ ΉμΌλ‘ λ°μ΄ν°λ₯Ό μΆκ°, κ°±μ ν λλ νΈλμμ
κΈ°λ₯μ μ¬μ©.
- νΈλμμ
π€ insert into μ£Όλ¬Έ values(4, '2021-03-01', 1);
π€ insert into μ£Όλ¬Έμν values(4, '0003', 1);
π€ insert into μ£Όλ¬Έμν values(4, '0004', 2);
- μλ₯Ό λ€μ΄, insert λͺ
λ Ήμ΄ νΉμ μμΈμΌλ‘ μΈν΄ μλ¬κ° λ°μνλ©΄? νΈλμμ
κΈ°λ₯μ μ¬μ©νμ§ μμΌλ©΄ insert λͺ
λ Ήμ delete λͺ
λ Ήμ μ€νν΄ μ§μμΌν¨.
- λ‘€λ°±κ³Ό 컀λ°
- νΈλμμ
μ μ¬μ©ν΄ λ°μ΄ν°λ₯Ό μΆκ°νλ©΄ μλ¬κ° λ°μν΄λ νΈλμμ
μ λ‘€λ°±ν΄μ μ’
λ£ν μ μμ!
-> λ‘€λ°±νλ©΄ νΈλμμ
λ΄ νν΄μ§ λͺ¨λ λ³κ²½μ¬νμ μμλ κ²μΌλ‘ ν μ μλ κ²!
-> μλ¬΄λ° μλ¬κ° λ°μ μνλ©΄ λ³κ²½μ¬ν μ μ© ν νΈλμμ
μ’
λ£νλλ° μ΄λ 컀λ°μ μ¬μ©ν¨!
-> νΈλμμ
μ λ‘€λ°±νλ©΄ λ³κ²½ν λ΄μ©μ΄ μ μ©λμ§ μμ!
- νΈλμμ
μ μ¬μ©ν΄μ λ°μ΄ν°λ₯Ό μΆκ°ν λλ μλ컀λ°μ κΊΌμΌν¨. mysql ν΄λΌμ΄μΈνΈμμ λͺ
λ Ήμ μ€νν λλ μλ컀λ°μ΄ μΌμ Έμλ μν.
- insertλ update, deleteκ° μ²λ¦¬λ λλ§λ€ νΈλμμ
μ μ묡μ μΌλ‘ μλμ»€λ° μνμ.
- μλ컀λ°μ λλ €λ©΄ νΈλμμ
μ μμμ μ μΈν΄μΌν¨.
π€ start transaction π€
- νΈλμμ
μ μ’
λ£νκΈ° μν΄μλ λ³κ²½λ λ΄μ©μ μ μ©ν νμ μ’
λ£νλ '컀λ°'κ³Ό μ μ©μνꡬ μ’
λ£νλ 'λ‘€λ°±'μ λ κ°μ§ λ°©μμ΄μμ!
- 컀λ°ν λμλ commit λͺ
λ Ή μ¬μ©!
- λ‘€λ°±μ rollback λͺ
λ Ή μ¬μ©!
π€ start transaction;
π€ insert into μ£Όλ¬Έ values(4, '2021-03-01', 1);
π€ insert into μ£Όλ¬Έμν values(4, '0003', 1);
π€ insert into μ£Όλ¬Έμν values(4, '0004', 2);
π€ commit;
- νΈλμμ
μ¬μ©λ²
- λ°μ£Όμ²λ¦¬μ κ°μ λ°μ΄ν° λ±λ‘μ²λ¦¬ κ³Όμ μμλ λλΆλΆ νΈλμμ
λ΄μμ μ¬λ¬κ°μ SQLλͺ
λ Ήμ μ€ννκ² λ¨.
- λ°λμ μΈνΈλ‘ μ€ννκ³ μΆμ SQLλͺ
λ Ήμ νΈλμμ
μμ νλλ‘ λ¬Άμ΄ μ€ννλ€λ κ²! (νλμ λͺ
λ Ήμ νΈλμμ
μ κ±Έμ΄ μ€ννμ§ μλλ€λ λΌ!)
π€ λ΄κ° μ 리νλ λΈλ‘κΉ
μ°Έκ³ : https://velog.io/@majaeh43/Transaction%ED%8A%B8%EB%9E%9C%EC%A0%9D%EC%85%98
π μ κ·νμ νΈλμμ
μ μ΄μ μ ν λ² κ³΅λΆνλ κΈ°μ΅μ΄μλλ° μλ‘κ² λ€μ νλ κΈ°λΆμ΄ λλ건 μμΌκΉ? CSλ μ λ§ λμ΄ μλ κ² κ°λ€. γ
γ
λ€μ 볡μ΅νκ³ μ΅νλμΌμ§ ! SQL 첫걸μ 8μ₯κΉμ§ λͺ¨μ€λ μ 리 λ ! μ΄μ κ³μ λ³΄κ³ μΉλ©΄μ μ°μ΅νλ κΈΈ λΏ ! νμ΄ν
μν΄λ°~~~ π