SQL ์๋ฆฌ์ฆ (8์ฅ) ๐ชด
<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์ฅ๊น์ง ๋ชจ์ค๋ ์ ๋ฆฌ ๋ ! ์ด์ ๊ณ์ ๋ณด๊ณ ์น๋ฉด์ ์ฐ์ตํ๋ ๊ธธ ๋ฟ ! ํ์ดํ ์ํด๋ฐ~~~ ๐
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(SQL ์๋ฆฌ์ฆ (8์ฅ) ๐ชด), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@majaeh43/SQL-์๋ฆฌ์ฆ-8์ฅ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค