์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- ์ฝ๋๋ธ๋ก
- branch ์์ฑ
- ๋ธ๋์น ํ์ธ
- ๋ธ๋์น ์์ฑ
- Git๋ช ๋ น์ด
- branch ์ญ์
- ![rejected]
- ์ฝ๋๋ธ๋ญ
- markdown
- branch ํ์ธ
- ๋ธ๋์น ์ญ์
- ๋งํฌ๋ค์ด
- Today
- Total
DevLog
Database - ACID ๋ณธ๋ฌธ
ACID
ํธ๋์ญ์
ํธ๋์ญ์ ์ด๋ ์ฌ๋ฌ ๊ฐ์ ์์ ์ ํ๋๋ก ๋ฌถ์ ์คํ ์ ๋์ ๋๋ค. ๊ฐ ํธ๋์ญ์ ์ ํ๋์ ํน์ ์์ ์ผ๋ก ์์์ ํด ๋ฌถ์ฌ ์๋ ๋ชจ๋ ์์ ์ ๋ค ์๋ฃํด์ผ ์ ์์ ์ผ๋ก ์ข ๋ฃํฉ๋๋ค. ๋ง์ฝ ํ๋์ ํธ๋์ญ์ ์ ์ํด์๋ ์ฌ๋ฌ ์์ ์ค์์ ๋จ ํ๋์ ์์ ์ด๋ผ๋ ์คํจํ๋ฉด, ์ด ํธ๋์ญ์ ์ ์ํ ๋ชจ๋ ์์ ์ ์คํจํ ๊ฒ์ผ๋ก ํ๋จํฉ๋๋ค. ๋ค์ ๋งํด ์์ ์ด ํ๋๋ผ๋ ์คํจ๋ฅผ ํ๊ฒ ๋๋ฉด ํธ๋์ญ์ ๋ ์คํจ์ด๊ณ , ๋ชจ๋ ์์ ์ด ์ฑ๊ณต์ ์ด๋ฉด ํธ๋์ญ์ ๋ํ ์ฑ๊ณต์ ๋๋ค. ์ฑ๊ณต ๋๋ ์คํจ ๋ผ๋ ๋ ๊ฐ์ ๊ฒฐ๊ณผ๋ง ์กด์ฌํ๋ ํธ๋์ญ์ ์, ๋ฏธ์๋ฃ๋ ์์ ์์ด ๋ชจ๋ ์์ ์ ์ฑ๊ณตํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ ACID๋ผ๋ ํน์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
ACID
ACID๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ์ผ์ด๋๋ ํ๋์ ํธ๋์ญ์ (transaction)์ ์์ ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ํ์ํ ์ฑ์ง์ ๋๋ค.
- Atomicity
- Consistency
- Isolation
- Durability
Atomicity(์์์ฑ)
์์์ฑ์ ํ๋์ ํธ๋์ญ์ ์ ์ํด์๋ ๋ชจ๋ ์์ ์ด ์ ๋ถ ์ฑ๊ณตํ๊ฑฐ๋ ์ ๋ถ ์คํจํด์ ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ ์ ์์ด์ผ ํฉ๋๋ค. ํ๋์ ๋จ์๋ก ๋ฌถ์ฌ์๋ ์ฌ๋ฌ ์์ ์ด ๋ถ๋ถ์ ์ผ๋ก ์คํ๋๋ค๋ฉด, ์ ๋ฐ์ดํธ๊ฐ ์ผ์ด๋ฌ์ง๋ง ๋๊ฐ ์ ๋ฐ์ดํธํ๋์ง ๋ชจ๋ฅด๊ฑฐ๋, ์ ๋ฐ์ดํธ ๋ ์ง๊ฐ ๋๋ฝ๋๋ ๋ฑ ๋ฐ์ดํฐ๊ฐ ์ค์ผ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ณ์ข์ด์ฒด๋ฅผ ํ ๋์๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๋จ๊ณ๊ฐ ์์ต๋๋ค. 1. A ๊ณ์ข์์ ์ถ๊ธํฉ๋๋ค. 2. B ๊ณ์ข์ ์ ๊ธํฉ๋๋ค.
๊ณ์ข์ด์ฒด๋ฅผ ํ๋ ค๋๋ฐ A ๊ณ์ข์์๋ ์ถ๊ธ์ด ์ด๋ค์ง๊ณ , B ๊ณ์ข์ ์ ๊ธ๋์ง ์์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ์ด๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ํ์ ํ ์ ์๋ค๋ฉด, A ๊ณ์ข์์ ์ถ๊ธ๋ ๋์ ์ธ์์์ ์ฌ๋ผ์ง๋ ๋์ด ๋ฉ๋๋ค. ๋ง์ฝ ์ํ์์ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ค๋ฉด, ์ํ์ ๋๋ ์ ๊ธฐ๋ฅ์ ํ ์ ์์ ๊ฒ๋๋ค. A ๊ณ์ข์์ ์ถ๊ธํ๋ ์ผ์ ์ฑ๊ณตํ์ง๋ง, B ๊ณ์ข์ ์ ๊ธํ๋ ์์ ์ ์คํจํ๋ค๋ฉด ๊ณ์ข A์์ ์ถ๊ธํ๋ ์์ ์ ํฌํจํ์ฌ ๋ชจ๋ ์์ ์ด ์คํจ๋ก ๋์๊ฐ์ผ ํ๋ค๋ ๊ฒ์ด Atomicity(์์์ฑ)์ ๋๋ค.
์์์ฑ์ ์ง์ผฐ๋ค๋ฉด 1๋ฒ๊ณผ 2๋ฒ, ๋ ์์ ์ด ๋ชจ๋ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด(๋ ์ค ํ๋์ ์์ ์ด๋ผ๋ ์คํจํ๋ค๋ฉด), ํ๋์ ๋จ์๋ก ๋ฌถ์ฌ์๋ ๋ชจ๋ ์์ ์ด ์คํจํ๊ฒ ๋ง๋ค์ด ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํฉ๋๋ค.
SQL์์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ํน์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋๋ฐ ๋ถ๋ถ์ ์ผ๋ก ์คํจํ๋ ๋ถ๋ถ์ด ์๋ค๋ฉด, ์ ๋ถ ์คํจํ๋๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. ๋๋๋ก ์ถฉ๋ ์์ธ์ ๋ํด์ ์ ํ์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
Consistency(์ผ๊ด์ฑ)
๋ ๋ฒ์งธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๊ฐ ์ผ๊ด๋์ด์ผ ํ๋ค๋ ์ฑ์ง์ ๋๋ค. ํ๋์ ํธ๋์ญ์ ์ด์ ๊ณผ ์ดํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ ์ด์ ๊ณผ ๊ฐ์ด ์ ํจํด์ผ ํฉ๋๋ค. ๋ค์ ๋งํด, ํธ๋์ญ์ ์ด ์ผ์ด๋ ์ดํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฝ์ด๋ ๊ท์น์ ๋ง์กฑํด์ผ ํ๋ค๋ ๋ป์ ๋๋ค.
์๋ฅผ ๋ค์ด '๋ชจ๋ ๊ณ ๊ฐ์ ๋ฐ๋์ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค'๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฝ์ด ์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ํธ๋์ญ์ ์ Consistency(์ผ๊ด์ฑ)๋ฅผ ์๋ฐํฉ๋๋ค:
- ์ด๋ฆ ์๋ ์๋ก์ด ๊ณ ๊ฐ์ ์ถ๊ฐํ๋ ์ฟผ๋ฆฌ
- ๊ธฐ์กด ๊ณ ๊ฐ์ ์ด๋ฆ์ ์ญ์ ํ๋ ์ฟผ๋ฆฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ํจํ ์ํ๋ ๋ค๋ฅผ ์ ์์ง๋ง, ๋ฐ์ดํฐ์ ์ํ์ ๋ํ ์ผ๊ด์ฑ์ ๋ณํ์ง ์์์ผ ํฉ๋๋ค. ์ด ์์๋ '์ด๋ฆ์ด ์์ด์ผ ํ๋ค' ๋ผ๋ ์ ์ฝ์ ์๋ฐํฉ๋๋ค. ๋ฐ๋ผ์ ์์ ํธ๋์ญ์ ์ด ์ผ์ด๋ ์ดํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ผ๊ด๋์ง ์๋ ์ํ๋ฅผ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
Isolation(๊ฒฉ๋ฆฌ์ฑ, ๊ณ ๋ฆฝ์ฑ)
Isolation(๊ฒฉ๋ฆฌ์ฑ) ์ ๋ชจ๋ ํธ๋์ญ์ ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ผ๋ก๋ถํฐ ๋ ๋ฆฝ๋์ด์ผ ํ๋ค ๋ ๋ป์ ๋๋ค. ์ค์ ๋ก ๋์์ ์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์ ๋ค์ด ์ํ๋ ๋, ๊ฐ ํธ๋์ญ์ ์ ๊ณ ๋ฆฝ(๊ฒฉ๋ฆฌ) ๋์ด ์์ด ์ฐ์์ผ๋ก ์คํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ ๋๋ค.
์๋ฅผ ๋ค์ด ๊ณ์ข์ ๋ง ์์ด ์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
- ์ด ๊ณ์ข๋ก๋ถํฐ ๊ณ์ข B๋ก 6์ฒ ์์, ๊ณ์ข C๋ก 6์ฒ ์์ ๋์์ ๊ณ์ข ์ด์ฒดํ๋ ๊ฒฝ์ฐ, ๊ณ์ข B์ ๋จผ์ ์ก๊ธํ ๋ค ๊ณ์ข C์ ๋ณด๋ด๋ ๊ฒฐ๊ณผ์ ๋์ผํด์ผ ํฉ๋๋ค.
๋์์ ํธ๋์ญ์ ์ ์คํํ๋ค๊ณ ํด์ ๊ณ์ข B์ C์ ๊ฐ๊ฐ 6์ฒ ์์ฉ ์ก๊ธํ์ฌ ๋ง์ด๋์ค ํต์ฅ์ด ๋๋ ๊ฒ์ด ์๋๋๋ค. ๊ฐ๊ฐ์ ์ก๊ธ ์์ ์ ์ฐ์์ผ๋ก ์คํํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋์ผ ํฉ๋๋ค. ๊ฒฉ๋ฆฌ์ฑ์ ์งํค๋ ๊ฐ ํธ๋์ญ์ ์ ์ฒ ์ ํ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ํธ๋์ญ์ ์ ์์ ๋ด์ฉ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํธ๋์ญ์ ์ด ๋์์ ์คํ๋ ๋์ ์ฐ์์ผ๋ก ์คํ๋ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๊ฐ ๋์ผํด์ผ ํฉ๋๋ค.
Durability(์ง์์ฑ)
Durability(์ง์์ฑ)๋ ํ๋์ ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋์๋ค๋ฉด, ํด๋น ํธ๋์ญ์ ์ ๋ํ ๋ก๊ทธ๊ฐ ๋จ์์ผ ํฉ๋๋ค. ๋ง์ฝ ๋ฐํ์ ์ค๋ฅ๋ ์์คํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ผ๋, ํด๋น ๊ธฐ๋ก์ ์๊ตฌ์ ์ด์ด์ผ ํ๋ค๋ ๋ป์ ๋๋ค.
์๋ฅผ ๋ค์ด ์ํ์์ ๊ณ์ข์ด์ฒด๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ ๋ค์, ํด๋น ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํด ์ข ๋ฃ๋๋๋ผ๋ ๊ณ์ข์ด์ฒด ๋ด์ญ์ ๊ธฐ๋ก์ผ๋ก ๋จ์์ผ ํฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ๊ณ์ข์ด์ฒด๋ฅผ ๋ก๊ทธ๋ก ๊ธฐ๋กํ๊ธฐ ์ ์ ์์คํ ์ค๋ฅ ๋ฑ์ ์ํด ์ข ๋ฃ๊ฐ ๋๋ค๋ฉด, ํด๋น ์ด์ฒด ๋ด์ญ์ ์คํจ๋ก ๋์๊ฐ๊ณ ๊ฐ ๊ณ์ข๋ค์ ๊ณ์ข์ด์ฒด ์ด์ ์ํ๋ค๋ก ๋์๊ฐ๊ฒ ๋ฉ๋๋ค.
'๐ง๐ปโ๐ป ๊ฐ๋ฐ๊ฐ๋ฐ > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MySQL foreign key ์กฐํ๋ฐฉ๋ฒ (0) | 2022.01.03 |
---|---|
Database - SQL ๋ด์ฅํจ์ (0) | 2021.11.11 |
SQL - DataBase, Table ์ ๋ณด ์ฟผ๋ฆฌ (0) | 2021.10.12 |
MySQL - safe ๋ชจ๋ ํด์ (0) | 2021.10.10 |
SQL ๊ธฐ๋ณธ๋ฌธ๋ฒ (0) | 2021.10.08 |