๋ฐ์ดํฐ๋ฒ ์ด์ค๋?
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ผ๋ฐ์ ์ผ๋ก ์ปดํจํฐ ์์คํ ์ ์ ์ฅ๋ ์ ๋ณด ๋๋ ๋ฐ์ดํฐ์ ์งํฉ์ ์๋ฏธํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)๋ก ์ ์ดํฉ๋๋ค. ๋ฐ์ดํฐ์ DBMS๋ ์ฐ๊ด๋ ์ดํ๋ฆฌ์ผ์ด์ ๋ค๊ณผ ํจ๊ป '๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ '์ผ๋ก ์ผ์ปฌ์ด์ง๋ฉฐ, ๋ ์งง๊ฒ๋ '๋ฐ์ดํฐ๋ฒ ์ด์ค'๋ผ๊ณ ํต์นญ๋๊ธฐ๋ ํฉ๋๋ค
Application์์๋ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์์ ์กด์ฌํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋
๋ณด์กด์ด ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ข
๋ฃํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ค์ ๋ค์ ์ฝ์ด ๋ค์ผ ์ ์์ต๋๋ค.
๋ฐ๋ผ์, ๋ฐ์ดํฐ๋ฅผ ์ค๋ ๊ธฐ๊ฐ ์ ์ฅ ๋ฐ ๋ณด์กด ํ๊ธฐ ์ํด์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉ
ํ๋ ๊ฒ์
๋๋ค.
์ผ๋ฐ์ ์ผ๋ก database์๋ ํฌ๊ฒ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)์ "NoSQL"๋ก ๋ช ์นญ๋๋ ๋น๊ด๊ณํ(Non-relational) database๊ฐ ์์ต๋๋ค.
์ค๋๋ ์ด์ฉ๋๋ ๊ฐ์ฅ ๊ณตํต์ ์ธ ์ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ผ๋ จ์ ํ ์์ ํ๊ณผ ์ด๋ก ๋ชจ๋ธ๋ง๋๋ฉฐ, ์ด๋ ํ๋ก์ธ์ฑ๊ณผ ๋ฐ์ดํฐ ์ฟผ๋ฆฌ ์์ ์ ๋ ํจ์จ์ ์ผ๋ก ์คํํ๊ธฐ ์ํจ์ ๋๋ค. ์ด๋ก์จ ๋ฐ์ดํฐ๋ ์ฝ๊ฒ ์ก์ธ์ค, ๊ด๋ฆฌ, ์์ , ์ ๋ฐ์ดํธ, ์ ์ด, ์ฒด๊ณํ๋ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ ์์ฑ ๋ฐ ์ฟผ๋ฆฌ ์์ ์ ๊ตฌ์กฐํ ์ง์ ์ธ์ด(SQL)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๐ก๐ ์ ๋ฆฌํด๋ณด์๋ฉด ! ๐๐ก
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ๋ณด ๋๋ ๋ฐ์ดํฐ์ ์ ์ฅ๊ณต๊ฐ์ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)๋ก ๊ด๋ฆฌํ๋ค.
์๋ํ๋ฉด ์ดํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋๋ฐ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ํญ์ ๋ณด์กดํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ ๊ธฐ์ ์์คํ ์ ํตํ ์ ์ฅ๊ณผ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค.
์์์ฑ(Atomicity)
์ ํธ๋์ญ์
๊ณผ ๊ด๋ จ๋ ์์
๋ค์ด ๋ถ๋ถ์ ์ผ๋ก ์คํ๋๋ค๊ฐ ์ค๋จ๋์ง ์๋ ๊ฒ์ ๋ณด์ฅํ๋ ๋ฅ๋ ฅ์
๋๋ค.
์ผ๊ด์ฑ(Consistency)
์ ํธ๋์ญ์
์ด ์คํ์ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃํ๋ฉด ์ธ์ ๋ ์ผ๊ด์ฑ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ก ์ ์งํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ณ ๋ฆฝ์ฑ(Isolation)
์ ํธ๋์ญ์
์ ์ํ ์ ๋ค๋ฅธ ํธ๋์ญ์
์ ์ฐ์ฐ ์์
์ด ๋ผ์ด๋ค์ง ๋ชปํ๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๊ฒ์ ํธ๋์ญ์
๋ฐ์ ์๋ ์ด๋ค ์ฐ์ฐ๋ ์ค๊ฐ ๋จ๊ณ์ ๋ฐ์ดํฐ๋ฅผ ๋ณผ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์ง์์ฑ(Durability)
์ ์ฑ๊ณต์ ์ผ๋ก ์ํ๋ ํธ๋์ญ์
์ ์์ํ ๋ฐ์๋์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
๋ฌด๊ฒฐ์ฑ์ด๋
์ฌ์ ์ ์๋ฏธ
๋ก ๊ฒฐํจ์ด๋ ํ ์ด ์๋ค๋ ๋ป์ด๋ค.
์์ ์ ์๋ ์ผ๋ ฌ์ ๋ฒ์น๋ค๋ก ์ธํด DataBase๋ ๋ฌด๊ฒฐ์ฑ์ ๋๋ค.
๋ง์ฝ์ ๋ด๊ฐ ์ ์ฅํด๋์ ๋ฐ์ดํฐ๊ฐ ์ผ๊ด์ฑ ์์ด ์์ ์์ฌ๋ก ์์ง์ธ๋ค๋ฉด ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ฝ์ง ์์ ๊ฒ์ด๋ค.
์ด๋ฌํ ๊ฒ๋ค์ ์ฌ๋์ด ์ฝ๊ฒ ํ ์ ์๊ฒ ๋์์ฃผ๋๊ฒ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ญํ์ด๋ผ ์๊ฐํ๋ค.
ํธ๋์ญ์ (Transaction)
- ํธ๋์ญ์ ์ ์ผ๋ จ์ ์์ ๋ค์ด ๋ง์น ํ๋์ ์์ ์ฒ๋ผ ์ทจ๊ธ๋์ด์ ๋ชจ๋ ๋ค ์ฑ๊ณตํ๊ฑฐ๋ ์๋๋ฉด ๋ชจ๋ ๋ค ์คํจํ๋๊ฑธ ์ด์ผ๊ธฐ ํฉ๋๋ค.
(ACID๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์ผ๋ ฌ์ ์์ ์ ํ๋๋ก ์ทจ๊ธํด ์คํํ๋๊ฒ ๊ฐ๋ฅํ๋ค.)
DataBase๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๊ทผ์ ์ ์ดํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ์๋ณ๋ก ๋ค๋ฅธ ๊ถํ์ ๋ถ์ฌํ ์๋ ์๋ค.
์ฌ์ฉ์๊ฐ ํน์ ๋ถ๋ถ์๋ง ์ ๊ทผ์ ํ ์ ์๊ฒ ํ๋ค๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ๋๋ฆด ์๋ ์์ง๋ง ์์ ํ ์๋ ์๊ฒ ๋ง๋๋ ๋ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉ์๊ฐ ์ค์ ํ๊ธฐ ๋๋ฆ์ด๋ค. ์คํ๋ ๋์ํธ๋ ํ
์คํธ ํ์ผ์ ์ ๊ทผ์ ๋ณดํธํ ์๋ ์์ง๋ง
ํ๋ฒ ์ ๊ทผ์ ํ๋ฉด ํด๋น ํ์ผ์ ๋ชจ๋ ์์์ ์ ๊ทผํ ์ ์๊ธฐ์ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ์๋ ์์ฌ์ด ์ธก๋ฉด์ด ์๋ค.
โ๏ธ ๋ฐ๋ก ์์ ๋ฐ์ดํฐ๋ ๋ณด์์ด ์ข์์ ์ฌ์ฉํ๋ค๊ณ ์ ์ด ๋์์ง๋ง
์ฌ์ค RDMBS(๊ด๊ณํ ๋ฐ์ดํฐ)์ ๋นํด ์๋์ ์ผ๋ก ๋ง์ ๋ณด์์ ์ ๊ณตํ์ง๋ ์๊ณ
๋ฐ์ดํฐ๋ฅผ ์ ๊ทํ ํ ์ ์์ด ๋์ ์ค๋ณต์ฑ์ ๊ฐ์ง ์๋ ์๋ ์ทจ์ฝ์ ์ด ์๋ค. โ๏ธ
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ธฐ์ด๋ฅผ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋งํ๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ก ์ํธ๊ด๋ จ์ฑ์ ๊ฐ์ง ํํ๋ก ํํํ ๋ฐ์ดํฐ๋ฅผ ๋ปํจ.
๋ชจ๋ ๋ฐ์ดํฐ๋ค์ 2์ฐจ์ ํ
์ด๋ธ๋ก ํํ์ด ๊ฐ๋ฅํ๋ค.
๊ฐ ํ
์ด๋ธ์ ์ปฌ๋ผ(column)๊ณผ row(๋ก์ฐ)๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
Primary Key
)๋ผ๋ ๊ฐ์ ๊ฐ์ง๋ฉฐ Primary Key๋ฅผ ํตํด ํด๋น ๋ก์ฐ๋ฅผ ์ฐพ๊ฑฐ๋ ์ธ์ฉํ๋ค.๊ฐ ํ ์ด๋ธ์ ์๋ก ์ํธ๊ด๋ จ์ฑ์ ๊ฐ์ง๊ณ ์๋ก ์ฐ๊ฒฐ๋ ์ ์๋ค.
ํ
์ด๋ธ A์ ๋ก์ฐ์ ํ
์ด๋ธ B์ ๋ก์ฐ๊ฐ ์ ํํ ์ผ๋์ผ ๋งค์นญ์ด ๋๋ ๊ด๊ณ = one to one ๊ด๊ณ
ํ
์ด๋ธ A์ ๋ก์ฐ๊ฐ ํ
์ด๋ธ B์ ์ฌ๋ฌ ๋ก์ฐ์ ์ฐ๊ฒฐ์ด ๋๋ ๊ด๊ณ = one to many ๊ด๊ณ
๊ฐ ๊ณ ๊ฐ์ ์ฌ๋ฌ ์ ํ์ ๊ตฌ๋งคํ ์ ์์ง๋ง ๊ตฌ๋งค๋ ์ ํ์ ์ฃผ์ธ์ ์ค์ง ํ ๊ณ ๊ฐ ๋ฟ์ด๋ค - one to many
ํ
์ด๋ธ A์ ์ฌ๋ฌ ๋ก์ฐ๊ฐ ํ
์ด๋ธ B์ ์ฌ๋ฌ ๋ก์ฐ์ ์ฐ๊ฒฐ์ด ๋๋ ๊ด๊ณ๋ฅผ many to many ๋ผ๊ณ ํฉ๋๋ค.
์ฑ
์ ์ฌ๋ฌ ์๊ฐ์ ์ํด ์ฐ์ผ ์ ์๊ณ ์๊ฐ๋ค์ ์ฌ๋ฌ ์ฑ
์ ์ธ ์ ์๋ค - many to many
ํ๋์ ํ ์ด๋ธ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ฃ์ผ๋ฉด ๋์ผํ ์ ๋ณด๋ค์ด ๋ถํ์ํ๊ฒ ์ค๋ณต๋์ด ์ ์ฅ๋๋ค. (์ ์ฅ๊ณต๊ฐ์ ๋ญ๋น)
- ์ฌ๋ฌ ํ ์ด๋ธ์ ๋๋์ด ์ ์ฅํํ ํ ์ด๋ธ ๋ผ๋ฆฌ ์ฐ๊ฒฐ์์ผ ์ค๋ณต๋๋ ๋ฐ์ดํฐ์ ์์ฑ์ ๋ง๊ณ
- ๊ฐ์ ๋ฐ์ดํฐ์ด์ง๋ง ๋ถ๋ถ์ ์ผ๋ก ๋ด์ฉ์ด ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ๋ ๋ฌธ์ ๊ฐ ์๋ค.
์ด๊ฒ์ normalization(์ ๊ทํ)๋ผ๊ณ ํ๋ค.
์ถ์ฒ
์ค๋ผํด ๊ณต์ ํํ์ด์ง
https://www.futurelearn.com/info/courses/introduction-to-databases-and-sql/0/steps/75849
https://m.blog.naver.com/cjhol2107/221758915414