Database๊ฐ ์กด์ฌํ๊ธฐ ์ด์ ์๋ ํ์ผ ์์คํ ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ์์ต๋๋ค.(ํ์ฌ๋ ๋ถ๋ถ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.) Database๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ฐ์ ํ์ผ ๋จ์๋ก ์ ์ฅํ๋ฉฐ ์ด๋ฌํ ์ผ๋ค์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ ๋ฆฝ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์ฐ๋์ด ๋์ด์ผ ํฉ๋๋ค.
- ๋ฐ์ดํฐ์ ์งํฉ (a Set of Data)
- ์ฌ๋ฌ ํ๋ก๊ทธ๋จ๋ค์ ํตํฉ๋ ์ ๋ณด๋ค์ ์ ์ฅํ๊ณ ์ด์ํ ์ ์๋ ๊ณต์ฉ ๋ฐ์ดํฐ์ ์งํฉ
- ํจ์จ์ ์ผ๋ก ์ ์ฅ, ๊ฒ์, ๊ฐฑ์ ํ ์ ์๋๋ก ๋ฐ์ดํฐ ์งํฉ๋ค๋ผ๋ฆฌ ์ฐ๊ด์ํค๊ณ ์กฐ์งํ
- ์ค์๊ฐ ์ ๊ทผ์ฑ(Real-time Accessability) : ์ฌ์ฉ์์ ์๊ตฌ๋ฅผ ์ฆ์ ์ฒ๋ฆฌ
- ๊ณ์์ ์ธ ๋ณํ(Continuous Evolution) : ์ ํํ ๊ฐ์ ์ ์งํ๋ ค๊ณ ์ฝ์ ยท์ญ์ ยท์์ ์์ ๋ฑ์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ง์์ ์ผ๋ก ๊ฐฑ์
- ๋์ ๊ณต์ ์ฑ(Concurrent Sharing) : ์ฌ์ฉ์๋ง๋ค ์๋ก ๋ค๋ฅธ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ฏ๋ก ๋์์ ์ฌ๋ฌ ์ฌ๋์ด ๋์ผํ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ณ ์ด์ฉ
- ๋ด์ฉ ์ฐธ์กฐ(Content Reference) : ์ ์ฅํ ๋ฐ์ดํฐ ๋ ์ฝ๋์ ์์น๋ ์ฃผ์๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์๊ตฌํ๋ ๋ฐ์ดํฐ์ ๋ด์ฉ, ์ฆ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๋ผ ์ฐธ์กฐ
๋ค์์ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ๋ ์ํํธ์จ์ด์ ๋๋ค. DMBS๊ฐ ๋ฑ์ฅํ๊ธฐ ์ด์ ์๋ ๊ฐ๋ฐ์๋ค์ด ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฝ์ด๋ค์ด๋ ๋ฑ์ ๊ธฐ๋ฅ์ ๋ชจ๋ ๊ตฌํํด์ผ ํ์ต๋๋ค. ์ด๋ฌํ ๋ถํธํจ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ฌ๋ฌ ๊ฐ์ง ๋ ธ๋ ฅ์ ๊ฒฐ๊ณผ๋ก DMBS๋ผ๋ ์ํํธ์จ์ด๊ฐ ๋ฑ์ฅํ๊ฒ ๋์์ต๋๋ค.
DBMS์ ๋ํ ์ต์ด์ ๊ฐ๋ ์ IBM์์ ๋ ผ๋ฌธ์ผ๋ก ๋์๊ณ ์ต์ด์ ๊ตฌํ์ Oracle์์ ํ์์ต๋๋ค.
-
๋ฐ์ดํฐ์ ๋ ๋ฆฝ์ฑ
- ๋ฌผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ : Database ์ฌ์ด์ฆ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ฑ๋ฅ ํฅ์์ ์ํด ๋ฐ์ดํฐ ํ์ผ์ ๋๋ฆฌ๊ฑฐ๋ ์๋กญ๊ฒ ์ถ๊ฐํ๋๋ผ๋ ๊ด๋ จ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ ํ ํ์๊ฐ ์์ต๋๋ค.
- ๋ ผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ : Database๋ ๋ ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋ก ๋ค์ํญ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ ผ๋ฆฌ์ ์๊ตฌ๋ฅผ ๋ง์กฑ์์ผ์ค ์ ์์ต๋๋ค.
-
๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ
์ฌ๋ฌ ๊ฒฝ๋ก๋ฅผ ํตํด ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ์ผ๋ก ๋ฐ์ดํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๊ตฌํํ๊ฒ ๋ฉ๋๋ค.
-
๋ฐ์ดํฐ์ ๋ณด์์ฑ
์ธ๊ฐ๋ ์ฌ์ฉ์๋ค๋ง Database๋ Database ๋ด์ ์์์ ์ ๊ทผํ ์ ์๋๋ก ๊ณ์ ๊ด๋ฆฌ ๋๋ ์ ๊ทผ ๊ถํ์ ์ค์ ํจ์ผ๋ก์จ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ณด์์ ๊ตฌํํ ์ ์์ต๋๋ค.
-
๋ฐ์ดํฐ์ ์ผ๊ด์ฑ
์ฐ๊ด๋ ์ ๋ณด๋ฅผ ๋ ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋ก ๊ด๋ฆฌํจ์ผ๋ก์จ ์ด๋ค ํ๋์ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝํ์ ๊ฒฝ์ฐ ๋ฐ์ํ ์ ์๋ ๋ฐ์ดํฐ์ ๋ถ์ผ์น์ฑ์ ๋ฐฐ์ ํ ์ ์์ต๋๋ค. ๋ํ ์์ ์ค ์ผ๋ถ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝ๋์ด ๋๋จธ์ง ๋ฐ์ดํฐ์ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐฐ์ ํ ์ ์์ต๋๋ค.
-
๋ฐ์ดํฐ ์ค๋ณต ์ต์ํ
Database๋ ๋ฐ์ดํฐ๋ฅผ ํตํฉํด์ ๊ด๋ฆฌํจ์ผ๋ก์จ ํ์ผ ์์คํ ์ ๋จ์ ์ค ํ๋์ธ ์๋ฃ์ ์ค๋ณต๊ณผ ๋ฐ์ดํฐ์ ์ค๋ณต์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
Database๋ 1960๋ ๋์ ์์๋ ์ดํ ๊ณ์ธต ๋ฐ Network Database๋ก ์์ํ์ฌ 1980๋ ๋์ ๊ฐ์ฒด ์งํฅ Database๋ฅผ ๊ฑฐ์ณ ์ค๋ ๋ ์๋ SQL ๋ฐ NoSQL Database์ Cloud Database๋ก ๋ฐ์ ํด ์์ต๋๋ค.
ํค(key)์ ๊ฐ(value)๋ค์ ๊ฐ๋จํ ๊ด๊ณ๋ฅผ ํ
์ด๋ธํ ์ํจ ๋งค์ฐ ๊ฐ๋จํ ์์น์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์
๋๋ค. ๋ฏธ๋ฆฌ ์ ์๋ ๋ฒ์ฃผ์ ๋ง๋ ๋ฐ์ดํฐ๊ฐ ์๋ ํ
์ด๋ธ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. SQL(Structured Query Language)
์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ํ์ค ์ฌ์ฉ์ ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ ์ธํฐํ์ด์ค์
๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ฅํ๊ธฐ ์ฝ๊ณ ๋ชจ๋ ๊ธฐ์กด ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ ํ ํ์ ์์ด ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ ํ์ ์ ๋ฐ์ดํฐ ๋ฒ์ฃผ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๋ถ๊ฐ ์ฌ๋ฌ ๋ฌผ๋ฆฌ์ ์์น์ ์ ์ฅ๋๊ณ ์ฒ๋ฆฌ๊ฐ ๋คํธ์ํฌ์ ๋ค๋ฅธ ์ง์ ๊ฐ์ ๋ถ์ฐ๋๊ฑฐ๋ ๋ณต์ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋์ข ๋๋ ์ด๊ธฐ์ข ์ผ ์ ์์ต๋๋ค. ๋์ข ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋ชจ๋ ๋ฌผ๋ฆฌ์ ์์น์๋ ๋์ผํ ๊ธฐ๋ณธ ํ๋์จ์ด๊ฐ ์์ผ๋ฉฐ ๋์ผํ ์ด์ ์ฒด์ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํฉ๋๋ค. ์ด๊ธฐ์ข ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๋์จ์ด, ์ด์ ์ฒด์ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฉ ํ๋ก๊ทธ๋จ์ ์์น๋ง๋ค ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ์กฐ์ง ๊ตฌ์กฐ์ ๋ฐ์ : ๊ธฐ์ ๋ฑ ๋ถ๋ฌธ๋ณ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋๊ณ ๊ทธ๋ค์ ํตํฉํ์ฌ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ํ ์ ์์ต๋๋ค.
- ๊ตญ์ ์์จ์ฑ : ๊ฐ ๋ถ์๋ ์์ฒด ๋ณด์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
- ์ค์ํ ๋ฐ์ดํฐ์ ๋ณดํธ : ํ์ฌ ๋ฑ์ ์ฌํด๊ฐ ๋ฐ์ํ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋ถ์ฐ๋์ด ์์ผ๋ฉด ์ ์ฒด๋ฅผ ํ ๋ฒ์ ์๋ ๊ฒ์ ์๋ฐฉํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ํฅ์ : ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ ๊ฐ๊น์ด ์์น์ ์์ผ๋ฉด์, ์ ์ฒด๊ฐ ๋ณ๋ ฌ์ ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ ๋ถ์ฐ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ผ๋ถ๊ฐ ๊ณผ๋ถํ ๋์ด๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด์ ๋ฏธ์น๋ ์ํฅ์ด ์์ต๋๋ค.
- ๊ฒฝ์ ์ฑ : ๊ฑฐ๋ํ ๊ณ ์ฑ๋ฅ ์ปดํจํฐ๋ณด๋ค ๋์ผํ ์ ๋์ ์ฑ๋ฅ์ ๋ฐํํ๋ ์ํ ์ปดํจํฐ ๋คํธ์ํฌ ์ชฝ์ด ์๋๋ค.
- ๋ชจ๋ํ : ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค๋ฅธ ๋ชจ๋(์์คํ )์ ์ํฅ์ ์ฃผ์ง ์๊ณ ๊ฐ๋ณ ์์คํ ์ ๊ฐฑ์ , ์ถ๊ฐ, ์ญ์ ํ ์ ์์ต๋๋ค.
- ๋์ ์ ๋ขฐ์ฑ์ ํธ๋์ญ์ : ๋ณต์ (replication)๋ก ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํ๋์ ์ฌ์ดํธ์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ์ ์ฒด ๊ธฐ๋ฅ์ ์์๋์ง ์์ต๋๋ค. ๋ชจ๋ ๊ฑฐ๋๋ ACID ํน์ฑ์ ๋ฐ๋ฆ ๋๋ค.
ACID : ์์์ฑ(Atomicity), ์ผ๊ด์ฑ(Consistency), ๋ ๋ฆฝ์ฑ(Isolation), ์ง์์ฑ(Durability)์ ์ฝ์ด๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์ ์ด ์์ ํ๊ฒ ์ํ๋๋ค๋ ๊ฒ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ฑ์ง์ ๋งํฉ๋๋ค.
- ๋ณต์ก์ฑ : ํฌ๋ช ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ตฌ์ถ์๋ ๊ฐ๋จํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ๊ธฐ๋์ ์ํฉ๋๋ค. ๋ํ ๊ตฌ์ฑํ๋ ์์คํ ์ ๋์ผํ ๊ธฐ์ข ๊ฒ์ ์๋๋๋ค. ์ ์์ด ๋์ด์ก์ ๋์ ๋์๋ ๊ณ ๋ คํ ํ์๊ฐ์์ต๋๋ค. ๊ฒฐํฉ์ ์ฌ๋ฌ ์์คํ ๊ฐ์ ํ ๊ฒฝ์ฐ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค.
- ๋น์ฉ : ์์คํ ์ ๊ท๋ชจ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๊ด๋ฆฌ ๋น์ฉ๋ ์ฆ๊ฐํฉ๋๋ค.
- ๋ณด์ : ๊ฐ๋ณ ์ฌ์ดํธ์ ๋ณด์์ ํ๋ณดํ๊ณ , ์ฌ์ดํธ ๊ฐ ๋คํธ์ํฌ์ ๋ณด์๋ ํ๋ณดํ์ง ์์ผ๋ฉด ์ ์ฒด์ ๋ํ ๋ณด์์ ๋งํ ์ ์์ต๋๋ค.
- ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ์ ์ด๋ ค์ : ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ค๋ฉด ๋ง์ ๋คํธ์ํฌ ์์์ด ํ์ํฉ๋๋ค.
- ๋ฏธ์ฑ์ํ ๊ธฐ์ : ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฏธ์ฑ์ํ ๋ถ์ผ์ด๋ฉฐ, ๊ฒฝํ์ ์ง์์ ์ถ์ ์ด ์ ์ต๋๋ค.
- ํ์ค์ ๋ถ์กฑ : ์ค์ DBMS๋ฅผ ๋ถ์ฐ DBMS๋ก ๋ณํํ๊ธฐ์ํ ๋๊ตฌ์ ๋ฐฉ๋ฒ๋ก ์ ์์ง ์กด์ฌํ์ง ์์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ๋ณต์ก์ฑ : ์ผ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ์ด์ธ์, ๋ฐ์ดํฐ๋ฅผ ๊ฐ ์ฌ์ดํธ์ ์ด๋ป๊ฒ ๋ฐฐ์นํ๊ฑฐ๋ ๋ณต์ ๋ฅผ ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ ๋ฑ ์ค๊ณ์์ ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ด ๋์ด๋ฉ๋๋ค.
- ์ถ๊ฐ ์ํํธ์จ์ด๋ฅผ ํ์๋กํฉ๋๋ค.
- ์ด์ ์ฒด์ ๊ฐ ๋ถ์ฐ ์ปดํจํ ์ ์ง์ํด์ผ ํฉ๋๋ค.
- ๋์์ฑ ์ ์ด๊ฐ ์ค์ํฉ๋๋ค.
ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋
, ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋
๋๋ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋
์์ ๊ฐ์ํ๋ ํ๊ฒฝ์ ์ํด ์ต์ ํ๋๊ฑฐ๋ ๊ตฌ์ถ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์
๋๋ค. ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ฉ๋์ ๋ฐ๋ผ ์คํ ๋ฆฌ์ง ์ฉ๋ ๋ฐ ๋์ญํญ ๋น์ฉ์ ์ง๋ถํ ์ ์๋ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ด์ ์ ์ ๊ณตํ๋ฉฐ, ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ํจ๊ป ์จ๋๋งจ๋ ํ์ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค.
ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ํ ๊ธฐ์ ์ด SaaS(Software-as-a-Service) ๋ฐฐํฌ์์ ๋น์ฆ๋์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ธฐ์ ์ ์ฅ์์๋ ์์ ์ฑ์ด ์ ์ผ ์ค์ํ๊ธฐ ๋๋ฌธ์ ์ต๊ทผ์๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํด ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๊ฒ ๊ฐ์ต๋๋ค.
SaaS(Software-as-a-Service) : ์ฌ์ฉ์์๊ฒ ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต์ ์ฒด๊ฐ ๊ด๋ฆฌํ๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ๋ ์๋น์ค๋ฅผ ๋งํฉ๋๋ค.
ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ : ์ผ๋ฐ์ ์ผ๋ก ์ต์ข ์ฌ์ฉ์๊ฐ ์์ ํ์ง ์์ IT ์ธํ๋ผ์์ ์์ฑ๋๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๋งํฉ๋๋ค.(AWS, Google Cloud ๋ฑ)
ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ : ๋จ์ผ ์ต์ข ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน์ ์ ์ฉ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ผ๋ก, ์คํ ์ ๋๊ฐ ํด๋น ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน์ ๋ฐฉํ๋ฒฝ์ผ๋ก ๋ณดํธ๋ฉ๋๋ค. ์์ ํ ๋ ๋ฆฝ์ ์ธ ์ก์ธ์ค ๊ถํ์ด ์๋ ๋จ์ผ ๊ณ ๊ฐ๋ง ๊ธฐ๋ฐ IT ์ธํ๋ผ๋ฅผ ๋ ์ ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋ชจ๋ ํด๋ผ์ฐ๋๋ฅผ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋๋ผ๊ณ ์ ์ํฉ๋๋ค.
ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋ : ๋จ์ผ IT ํ๊ฒฝ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์ค์ ๋ก๋ ์ฌ๋ฌ ํ๊ฒฝ์ด LAN(Local Area Network), WAN(Wide Area Network), VPN(Virtual Private Network) ๋ฐ/๋๋ API๋ฅผ ํตํด ์ฐ๊ฒฐ๋ ํํ์ ๋๋ค. (2๊ฐ ์ด์์ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋, 1๊ฐ ์ด์์ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ + 1๊ฐ ์ด์์ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ...)
NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋๊ท๋ชจ ๋ถ์ฐ ๋ฐ์ดํฐ ์ธํธ์ ์ ์ฉํฉ๋๋ค. NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํด๊ฒฐํ๋๋ก ๊ตฌ์ถ๋์ง ์์ ๋น ๋ฐ์ดํฐ ์ฑ๋ฅ ๋ฌธ์ ์ ํจ๊ณผ์ ์ ๋๋ค. ์กฐ์ง์ด ํด๋ผ์ฐ๋์ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ๋๋ ๋น์ ํ ๋ฐ์ดํฐ์ ํฐ ์ฒญํฌ๋ฅผ ๋ถ์ํด์ผ ํ ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค.
์ข ๋ฅ๋ง๋ค ์ฐ๊ธฐ/์ฝ๊ธฐ ์ฑ๋ฅ ํนํ, 2 ์ฐจ ์ธ๋ฑ์ค ์ง์, ์คํ ์ค๋ฉ(DBMS์์ ๋ฐ์ดํฐ๋ฅผ ๋๋๋ ๊ฒ์ด ์๋๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๋ฅผ ๋ถํ ํ๋ ๋ฐฉ์) ์ง์ ๊ฐ์ ๊ณ ์ ํ ํน์ง์ ๊ฐ์ง๋๋ค. ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์์ ์ ์ฅํ๊ณ ์๋ตํ๋ ๋ฑ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ๋์ ์ธ ์ค์ผ์ผ ์์(์๋ฒ๋ฅผ ์ฌ๋ฌ ๋ ์ถ๊ฐํ์ฌ ์์คํ ์ ํ์ฅํ๋ ๋ฐฉ๋ฒ)์ ์ง์ํ๊ธฐ๋ ํ๋ฉฐ, ๊ฐ์ฉ์ฑ์ ์ํ์ฌ ๋ฐ์ดํฐ ๋ณต์ ๋ฑ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ๊ณตํ์ง ๋ชปํ๋ ์ฑ๋ฅ๊ณผ ํน์ง์ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ค์น๋์ด ์ด์๋๋ ๋ฐฉ์์ DBMS์ ๋๋ค.
์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋์คํฌ์ ์ต์ ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ๋ ๋น ๋ฅธ๋ฐ ๊ทธ ๊น๋ญ์ ๋์คํฌ ์ ๊ทผ์ด ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ๋ณด๋ค ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ฉฐ, ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ด๋ถ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋จ์ํ๋ฉฐ ๋ ์ ์ CPU ๋ช ๋ น์ ์คํํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ๊ฒ์ ์๊ฐ์ด ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ๋์คํฌ๋ณด๋ค ๋ ๋น ๋ฅด๊ณ ๋ ์์ธก ๊ฐ๋ฅ์ฑ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ดํฐ ์์ ๋น ๋ฅธ ์ฆ๊ฐ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ต ์๋๊ฐ ๋จ์ด์ง๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋์์ด In-Memory Database์ ๋๋ค. ์ ํ์ ์ธ ๋์คํฌ ๋ฐฉ์์ ๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์ํํ์ง๋ง, ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐฉ์์ ๋ฉ๋ชจ๋ฆฌ์์ ์์ธ์ ๋ฃ์ด ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์์ธ์ ํตํด ๋น ๋ฅด๊ฒ ๊ฒ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง์ ์ ์ฌ์ ์ธ ๊ธฐ์ ์ ๋ฌธ์ ๋ RAM์ ํ๋ฐ์ฑ์ ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก ๋งํด ์ ์์ด ์์ค๋ ๊ฒฝ์ฐ๋ ๊ณ ์์ ์ธ ์ํฉ ๋ฑ์์ ํ๋ฐ์ฑ RAM ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์์ค๋ฉ๋๋ค. ๋นํ๋ฐ์ฑ RAM ๊ธฐ์ ์ ๋์ ์ผ๋ก ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ๋ ฅ ์์ค์๋ ์์ ํ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์งํ ์ ์๊ฒ ๋์๋ค๊ณ ํฉ๋๋ค.
์ ๋ช ํ NoSQL์ธ RediS๊ฐ In-Memory Database ๋ฐฉ์ ์ ๋๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ํญ๋ชฉ์ ์ข ์ข ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ง๋ง ๊ฐ์ฒด ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ฌํ ํญ๋ชฉ์ ์ ํฉํฉ๋๋ค.
๊ฐ์ฒด ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์ ๋ณด๋ค๋ ๊ฐ์ฒด, ๋ ผ๋ฆฌ๋ณด๋ค๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ฌ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฉํฐ๋ฏธ๋์ด ๋ ์ฝ๋๋ ์์ซ์ ๊ฐ๊ณผ ๋ฌ๋ฆฌ ์ ์ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ฐ์ฒด์ผ ์ ์์ต๋๋ค.
**์ํํธ์จ์ด ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก ๋ฐ์ดํฐ ํ๊ณผ ๋ฉ์๋(์ด ๋ ์กฐํฉ์ ๊ฐ์ฒด ์งํฅ์์ ๋งํ๋ ๊ฐ์ฒด์ ํด๋์ค์ ํด๋น)๋ฅผ ์์ ๋กญ๊ฒ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ๋ฐํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)**์ ๋๋ค.
๊ด๊ณ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก RDBMS
๋๋ SQL-DBMS
๋, SQL๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด ํ์ค์ ์ํด ์ฌ์ ์ ๊ท์ ๋ ์ ํ๋ ๋ฐ์ดํฐ ํ์ ์งํฉ์ ์ํ๋ ๋ฐ์ดํฐ์ ๋ํด์๋ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ง๋ง, ๊ฐ์ฒด ์งํฅ์ ์ฌ๊ณ ๋ฐฉ์์ ์ฑ์ฉํ ORDBMS
์์๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก ๋ฐ์ดํฐ ํ์๊ณผ ๋ฐฉ๋ฒ์ ์์ ๋กญ๊ฒ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ๋ฐํ์ฌ DBMS์ ํตํฉ์ํฌ ์ ์์ต๋๋ค. ORDBMS ๊ธฐ์ ์ ๋ชฉํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์๊ฒ ๋ฌธ์ ์์ญ์ ์๊ฐํ๋ ์์ค๊น์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ์ถ์ํ ์์ค์ ๋์ด๋ ๊ฒ์
๋๋ค.
๊ธฐ์กด์ RDBMS
์ ์ธ๋ถ ์ํํธ์จ์ด ๋๊ตฌ๋ฅผ ์ถ๊ฐํ์ฌ ORDBMS
์ ๋น์ทํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ฒ ํ ์๋ ์๋๋ฐ, ์ด๋ฌํ ์ธ๋ถ ์ํํธ์จ์ด ๋๊ตฌ๋ฅผ ๊ฐ์ฒด ๊ด๊ณ ๋งคํ ์์คํ
์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
๊ทธ๋ํ ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ทธ๋ํ ์ด๋ก ์ ์ฌ์ฉํ์ฌ ๊ด๊ณ๋ฅผ ์ ์ฅ, ๋งคํ ๋ฐ ์ฟผ๋ฆฌํ๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ์ ๋๋ค. ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ธ๋์ ์์ง์ ๋ชจ์์ผ๋ก, ๊ฐ ๋ ธ๋๋ ์ํฐํฐ๋ฅผ ๋ํ๋ด๊ณ ๊ฐ ์์ง๋ ๋ ธ๋ ๊ฐ์ ์ฐ๊ฒฐ์ ๋ํ๋ ๋๋ค.
๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ํธ ์ฐ๊ฒฐ ๋ถ์์ ์ํ ์ธ๊ธฐ๊ฐ ๋์์ง๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ฌ๋ ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์ ๋ฏธ๋์ด์์ ๊ณ ๊ฐ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๋ํ ์ ์์ต๋๋ค.
๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ข
์ข
๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถ์์ ์ํ ์ ์ธ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ํ๋กํ ์ฝ์ธ SPARQL
์ ์ฌ์ฉํฉ๋๋ค. SPARQL์๋ SQL์ด ์ํํ ์ ์๋ ๋ชจ๋ ๋ถ์์ ์ํํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ผ๋ฉฐ ์๋ฏธ๋ก ์ ๋ถ์, ๊ด๊ณ ๊ฒ์ฌ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐํ๋์ง ์์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์๋ ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ๋ถ์์ ์ํํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. SPARQL์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๊ฐ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ์ ๋ณด๋ ๋ฌผ๋ก FOAF(friend-of-a-friend) ๊ด๊ณ, PageRank ๋ฐ ์ต๋จ ๊ฒฝ๋ก์ ๋ํ ๋ถ์์ ์ํํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ๋ง์ด๋ : ๋ฐ์ดํฐ ์์์ ์ฒด๊ณ์ ์ด๊ณ ์๋์ ์ผ๋ก ํต๊ณ์ ๊ท์น์ด๋ ํจํด์ ์ฐพ์๋ด๋ ๊ฒ
FOAF(friend-of-a-friend) : ์ฌ๋๊ณผ ์ฌ๋๊ฐ์ ๊ด๊ณ(Relationship)๋ฅผ ์๋ฏธ์ ์ผ๋ก ํํํ๊ธฐ ์ํ RDF(์น์์ ์์์ ์ ๋ณด๋ฅผ ํํํ๊ธฐ ์ํ XML ๊ท๊ฒฉ) ๋ช ์ธ
PageRank : ํ์ด์ง์ ์ค์๋๋ฅผ ์นํ์ด์ง ๊ฐ ์ฐ๊ฒฐ๊ด๊ณ์ ๊ธฐ๋ฐ์ ๋๊ณ ์ธก์ ํ ์งํ
Database์์ ์ฌ์ฉํ๋ ์ฉ์ด์ ๋ํ์ฌ ์์๋ณด๊ฒ ์ต๋๋ค.
- ํ๊ณผ ์ด๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ์ ์งํฉ์ ํ ์ด๋ธ
- ์์ ์ ํ์ ์ ์ฌํ ๋ชจ์
- ์ผ๋ฐ์ ์ธ Database์์๋ ํ๊ณผ ์ด๋ง ์์ผ๋ฉด ํ
์ด๋ธ์ด๋ผ๊ณ ํ์ง๋ง,
๊ด๊ณํ Database
์์๋ ์ฌ๊ธฐ์ ํน๋ณํ ์ ์ฝ์ ์ถ๊ฐํด์๋ฆด๋ ์ด์ (Relation)
์ด๋ผ๊ณ ๋ถ๋ฆ - ์๋ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ํ ์ด๋ธ๋ง์ด ๋ฆด๋ ์ด์ ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ฆด๋ ์ด์ ์ ํ ์ด๋ธ์ด์ง๋ง, ๋ชจ๋ ํ ์ด๋ธ์ด ๋ฆด๋ ์ด์ ์ธ๊ฑด ์๋
- ๋ชจ๋ ๊ฐ์ ์ ์ผํ ๊ฐ์ ๊ฐ์ง
- ํ๋์ ๋ฆด๋ ์ด์ ์์ ์ค๋ณต๋๋ ํ์ด ์กด์ฌํ๋ฉด ์๋จ
- ํ ์ด๋ธ์ ๊ตฌ์ฑํ๋ ๋ฐ์ดํฐ๋ค ์ค ๊ฐ๋ก๋ก ๋ฌถ์ ๋ฐ์ดํฐ์ ์ ์๋ฏธ (column ๊ฐ์ ์กฐํฉ)
- ์ผ๋ฐ์ ์ผ๋ก ํ์ ํ ๊ฐ์ฒด์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์
- ๋ฆด๋ ์ด์ ์์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ์ ์์
- ํ์ ์๋ Cardinality๋ผ๊ณ ํจ
- ํ ์ด๋ธ์ ๊ตฌ์ฑํ๋ ๋ฐ์ดํฐ๋ค ์ค ์ธ๋ก๋ก ๋ฌถ์ ๋ฐ์ดํฐ์ ์ ์๋ฏธ(๋จ์ผ ์ข ๋ฅ์ ๋ฐ์ดํฐ)
- ํน์ ๋ฐ์ดํฐ ํ์ ๋ฐ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์
- ์ผ๋ฐ์ ์ผ๋ก ์ด์ ๊ทธ ํ
์ด๋ธ์ ์์ฑ์ ์๋ฏธํ๋ฉฐ ์ด์ ๊ตฌ์ฑํ๋ ๊ฐ๋ค์ ๊ฐ์
๋๋ฉ์ธ(Domain)
์ผ๋ก ๋์ด ์์ - ์ด์ ์๋ Degree๋ผ๊ณ ํจ
- Database์์ ํ๋(Field)์ ์ฑ์์ง ์ ์๋ ๊ฐ์ ์งํฉ(๋ฒ์)
- ์๋ฅผ ๋ค์ด, ๋๋ฉ์ธ์ด 1์์ 10์ฌ์ด์ ์ ์์ธ ์์ฑ์ ํ๋์ 11์ด๋ -1์ฒ๋ผ ๋๋ฉ์ธ์ ๋ฒ์ด๋๋ ๊ฐ ๋๋ "๊ณ ์์ด"์ฒ๋ผ ์์ ์๋ฃํ์ด ๋ค๋ฅธ ๊ฐ์ด ๋ค์ด๊ฐ ์ ์์
- ํ๊ณผ ์ด์ ๊ต์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ์ ์๊ณ , ์์ ๋๋ NULL๊ฐ์ ๊ฐ์ง๊ณ ์์
- Database์ ๊ตฌ์กฐ๋ฅผ ์ ๋ฐ์ ์ผ๋ก ๊ธฐ์ ํ ๊ฒ์ ๋งํจ
- ๊ตฌ์ฒด์ ์ผ๋ก Database๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ์ดํฐ ๋ ์ฝ๋์ ํฌ๊ธฐ, ํค์ ์ ์, ๋ ์ฝ๋ ๊ฐ์ ๊ด๊ณ ๋ฑ์ ์ ์ํ ๊ฒ์ ๋งํจ
- ์ฌ์ฉ์์ ๊ด์ ์ ๋ฐ๋ผ
์ธ๋ถ ์คํค๋ง
,๊ฐ๋ ์คํค๋ง
,๋ด๋ถ ์คํค๋ง
๋ก ๊ตฌ๋ถ - DBMS๋ ์ธ๋ถ ์คํค๋ง์ ๋ช ์ธ๋ ์ฌ์ฉ์์ ์๊ตฌ๋ฅผ ๊ฐ๋ ์คํค๋ง ํํ๋ก ๋ณํํ๊ณ , ์ด๋ฅผ ๋ค์ ๋ด๋ถ ์คํค๋ง ํํ๋ก ๋ณํ
- ์ฌ์ฉ์์ ์ ์ฅ์์ ์ ์ํ Database์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๋งํจ
- ๋ฐ์ดํฐ๋ค์ ์ด๋ค ํ์, ๊ตฌ์กฐ, ํ๋ฉด์ ํตํด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ๊ฒ์ธ๊ฐ์ ๋ํ ๋ช ์ธ๋ฅผ ๋งํ๋ฉฐ ํ๋์ Database์๋ ์ฌ๋ฌ ๊ฐ์ ์ธ๋ถ ์คํค๋ง๊ฐ ์์ ์ ์์
- ์ผ๋ฐ ์ฌ์ฉ์์๊ฒ๋ ์ง์์ด๋ฅผ ์ด์ฉํด DB๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๊ณ ์์ฉ ํ๋ก๊ทธ๋๋จธ๋ ์ธ์ด๋ฅผ ์ฌ์ฉํด์ DB์ ์ ๊ทผ
์ฌ์ฉ ์ฃผ์ฒด๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ์ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ ์ฅ๋์ด ์๋ Database๋ฅผ ๋ฐ๋ผ๋ณด๋ ๊ด์ ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ฆ, SELECT ์ฟผ๋ฆฌ๋ฅผ ๋์ก์ ๋, ๋ณผ ์ ์๋ ํ๋ฅผ ์ธ๋ถ ์คํค๋ง์ ๋ํ์ ์ธ ์๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. (ํ์ง๋ง ์ธ๋ถ ์คํค๋ง๊ฐ ์กฐํ๋ ๊ฒฐ๊ณผ๊ฐ์ ์๋ฏธ ํ๋ ๊ฒ์ ์๋๋๋ค.)
- ์กฐ์ง์ฒด ์ ์ฒด๋ฅผ ๊ด์ฅํ๋ ์ ์ฅ์์ DB๋ฅผ ์ ์ํ ์คํค๋ง๋ฅผ ๋งํฉ๋๋ค.
- DB์ ๋ํ ๋ชจ๋ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ ํ๊ธฐ ๋๋ฌธ์ Database์ ํ๋๋ง ์กด์ฌํ๋ฉฐ, ํต์ ์คํค๋ง๋ผ๊ณ ํ๋ฉด ๊ฐ๋ ์คํค๋ง๋ฅผ ์ผ์ปซ๋๋ค.
DA๊ฐ ์ค๊ณํ DB ๊ตฌ์กฐ๋ฅผ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ERD(Entity Relationship Diagram)๊ฐ ๋ํ์ ์ธ ์๋ผ๊ณ ํ ์ ์์ต๋๋ค.
- Database๊ฐ ์ด๋ป๊ฒ ์ ์ฅ ์ฅ์น์ ์ ์ฅ๋ ์ง์ ๋ํ ๋ช ์ธ๋ฅผ ๋งํฉ๋๋ค.
- ๋ฌผ๋ฆฌ์ ์ธ ์ ์ฅ ์ฅ์น์ Database ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ๋ฏ๋ก ์์คํ ํ๋ก๊ทธ๋๋จธ๋ ์์คํ ์ค๊ณ์๊ฐ ๋ณด๋ ๊ด์ ์ ์คํค๋ง์ ๋๋ค.
DA๊ฐ ์๋ ์ค๋ผํด์ฌ์ Database ๊ฐ๋ฐ์ ๊ด์ ์์์ ์คํค๋ง๋ผ๊ณ ํ ์ ์์ต๋๋ค.
ํค๋ ๊ฒ์, ์ ๋ ฌ ์ Tuple์ ๊ตฌ๋ถํ ๋, ๊ธฐ์ค์ด ๋๋ Attribute๋ฅผ ๋งํฉ๋๋ค.
Tuple์ ์ ์ผํ๊ฒ ์๋ณํ๊ธฐ ์ํด ์ฌ์ฉํ๋ Attribute์ ๋ถ๋ถ ์งํฉ์ ๋งํฉ๋๋ค. ์ฆ, ๊ธฐ๋ณธํค๋ก ์ฌ์ฉํ ์ ์๋ ์์ฑ๋ค์ ๋งํฉ๋๋ค. ์๋์ 2๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํ์ฌ์ผ ํฉ๋๋ค.
- ์ ์ผ์ฑ : Key๋ก ํ๋์ Tuple์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์์
- ์ต์์ฑ : ๊ผญ ํ์ํ ์์ฑ์ผ๋ก๋ง ๊ตฌ์ฑ
๋ชจ๋ ๋ฆด๋ ์ด์ ์ ๋ฐ๋์ ํ๋ ์ด์์ ํ๋ณด ํค๋ฅผ ๊ฐ์ ธ์ผ ํฉ๋๋ค. (๊ธฐ๋ณธํค๊ฐ ํ์์ด๊ธฐ ๋๋ฌธ)
<ํ์> ๋ฆด๋ ์ด์
์์ ํ๋ฒ
์ด๋ ์ฃผ๋ฏผ๋ฒํธ
๋ ๋ค๋ฅธ ๋ ์ฝ๋๋ฅผ ์ ์ผํ๊ฒ ๊ตฌ๋ณํ ์ ์๋ ๊ธฐ๋ณธํค๋ก ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ํ๋ณดํค๊ฐ ๋ ์ ์์ต๋๋ค. ์ฆ, ๊ธฐ๋ณธํค๊ฐ ๋ ์ ์๋ ํค๋ค์ ํ๋ณดํค๋ผ ํ๋ ๊ฒ์
๋๋ค.
- ํ๋ณดํค ์ค ์ ํํ Key๋ฅผ ๋งํฉ๋๋ค.
- ํ ๋ฆด๋ ์ด์ ์์ ๊ธฐ๋ณธํค๋ก ํน์ ํํ์ ์ ์ผํ ๊ฒ ๊ตฌ๋ณํ ์ ์์ด์ผ ํฉ๋๋ค.
- NULL ๊ฐ์ ๊ฐ์ง ์ ์๊ณ , ์ค๋ณต๋ ์ ์๋ค๋ ํน์ง์ด ์์ต๋๋ค.
<ํ์> ๋ฆด๋ ์ด์
์๋ ํ๋ฒ
์ด๋ ์ฃผ๋ฏผ ๋ฒํธ
๊ฐ ๊ธฐ๋ณธํค๊ฐ ๋ ์ ์๊ณ , <์๊ฐ> ๋ฆด๋ ์ด์
์๋ ํ๋ฒ+๊ณผ๋ชฉ๋ช
์ผ๋ก ์กฐํฉํด์ผ ๊ธฐ๋ณธํค๊ฐ ๋ง๋ค์ด์ง ์ ์์ต๋๋ค. <์๊ฐ> ๋ฆด๋ ์ด์
์์๋ ํ๋ฒ
์์ฑ๊ณผ ๊ณผ๋ชฉ๋ช
์์ฑ์ ๊ฐ๋ณ์ ์ผ๋ก ๊ธฐ๋ณธํค๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํํ๋ค๊ณผ ๊ตฌ๋ณ๋์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
ํ๋ณดํค ๋ ์ด์์ผ ๋, ๊ธฐ๋ณธํค๋ฅผ ์ ์ธํ ๋๋จธ์ง ํค๋ฅผ ๋งํฉ๋๋ค.
<ํ์> ๋ฆด๋ ์ด์
์์ ํ๋ฒ
์ ๊ธฐ๋ณธํค๋ก ์ ํ๋ฉด ์ฃผ๋ฏผ๋ฒํธ
๋ ๋์ฒดํค๊ฐ ๋ฉ๋๋ค.
- ํ ๋ฆด๋ ์ด์ ๋ด์ ์๋ ์์ฑ๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ํค๋ก์ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ชจ๋ ํํ ์ค ์ํผํค๋ก ๊ตฌ์ฑ๋ ์์ฑ์ ์งํฉ๊ณผ ๋์ผํ ๊ฐ์ ๋ํ๋ด์ง ์์ต๋๋ค.
- ์ ์ผ์ฑ์ ๋ง์กฑํ์ง๋ง, ์ต์์ฑ์ ๋ง์กฑํ์ง ๋ชปํ๋ ํค๋ฅผ ๋งํฉ๋๋ค.
<ํ์> ๋ฆด๋ ์ด์
์์๋ ํ๋ฒ
, ์ฃผ๋ฏผ๋ฒํธ
, ํ๋ฒ+์ฃผ๋ฏผ๋ฒํธ
, ํ๋ฒ+์ฃผ๋ฏผ๋ฒํธ+์ฑ๋ช
๋ฑ์ผ๋ก ์ํผํค๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ํ, ์ฌ๊ธฐ์ ์ต์์ฑ์ ๋ง์กฑ์ํค์ง ๋ชปํ๋ค๋ ๋ง์ ํ๋ฒ+์ฃผ๋ฏผ๋ฒํธ+์ฑ๋ช
์ด ์ํผํค์ธ ๊ฒฝ์ฐ, 3๊ฐ์ ์์ฑ ์กฐํฉ์ ํตํด ๋ค๋ฅธ ํํ๊ณผ ๊ตฌ๋ณ์ด ๊ฐ๋ฅํ์ง๋ง, ์ฑ๋ช
๋จ๋
์ ์ผ๋ก ์ํผํค๋ฅผ ์ฌ์ฉํ์ ๋๋ ๊ตฌ๋ณ์ด ๊ฐ๋ฅํ์ง ์๊ธฐ ๋๋ฌธ์ ์ต์์ฑ์ ๋ง์กฑ์ํค์ง ๋ชปํ๋ ๊ฒ์
๋๋ค.
- ๊ด๊ณ(Relation)๋ฅผ ๋งบ๊ณ ์๋ ๋ฆด๋ ์ด์ R1,R2์์ ๋ฆด๋ ์ด์ R1์ด ์ฐธ์กฐํ๊ณ ์๋ ๋ฆด๋ ์ด์ R2์ ๊ธฐ๋ณธํค์ ๊ฐ์ R1 ๋ฆด๋ ์ด์ ์ ์์ฑ์ ์ธ๋ํค๋ผ๊ณ ํฉ๋๋ค.
- ์ธ๋ํค๋ ์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค์ ๋์๋์ด ๋ฆด๋ ์ด์ ๊ฐ์ ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ํํํ๋ ๋ฐ ์ค์ํ ๋๊ตฌ๋ก ์ฌ์ฉ๋๋ค.
- ์ธ๋ํค๋ก ์ง์ ๋๋ฉด ์ฐธ์กฐ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค์ ์๋ ๊ฐ์ ์ ๋ ฅํ ์ ์์ต๋๋ค.
<์๊ฐ> ๋ฆด๋ ์ด์
์ด <ํ์> ๋ฆด๋ ์ด์
์ ์ฐธ์กฐํ๊ณ ์์ผ๋ฏ๋ก, <ํ์> ๋ฆด๋ ์ด์
์ ํ๋ฒ
์ ๊ธฐ๋ณธํค์ด๊ณ , <์๊ฐ> ๋ฆด๋ ์ด์
์ ํ๋ฒ
์ ์ธ๋ํค์
๋๋ค. ์ฆ, ๊ฐ ๋ฆด๋ ์ด์
์ ์
์ฅ์์ ์์ฑ์ ๊ธฐ๋ณธํค๊ฐ ๋๊ธฐ๋ ํ๊ณ , ์ธ๋ํค๊ฐ ๋๊ธฐ๋ ํฉ๋๋ค.
Database์ ์ฑ๋ฅ ์ด์๋ ๋์คํฌ I/O ๋ฅผ ์ด๋ป๊ฒ ์ค์ด๋๋์์ ์์๋ฉ๋๋ค. ๋์คํฌ I/O
๋ ๋์คํฌ ๋๋ผ์ด๋ธ์ ํ๋ํฐ(์ํ)์ ๋๋ ค์ ์ฝ์ด์ผ ํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์์น๋ก ๋์คํฌ ํค๋๋ฅผ ์ด๋์ํจ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋์คํฌ ํค๋๋ฅผ ์์ง์ฌ์ ์ฝ๊ณ ์ธ ์์น๋ก ์ฎ๊ธฐ๋ ๋จ๊ณ์์ ๊ฒฐ์ ๋ฉ๋๋ค. ์ฆ ๋์คํฌ์ ์ฑ๋ฅ์ ๋์คํฌ ํค๋์ ์์น ์ด๋ ์์ด ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๊ธฐ๋กํ๋๋์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ฐจ I/O
๊ฐ ๋๋ค I/O
๋ณด๋ค ๋น ๋ฅผ ์ ๋ฐ์ ์์ต๋๋ค. ํ์ง๋ง ํ์ค์์๋ ๋๋ถ๋ถ์ I/O ์์
์ด ๋๋ค I/O
์
๋๋ค. ๋๋ค I/O
๋ฅผ ์์ฐจ I/O
๋ก ๋ฐ๊ฟ์ ์คํํ ์๋ ์์๊น? ๋ผ๋ ์๊ฐ์์๋ถํฐ ์์๋๋ Database ์ฟผ๋ฆฌ ํ๋
์ ๋๋ค I/O ์์ฒด๋ฅผ ์ค์ฌ์ฃผ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฑ๋ฅ ๊ฐ์ ์ ๊ดํ ๊ธ
์ฐธ๊ณ : https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Database
https://github.com/WooVictory/Ready-For-Tech-Interview
https://github.com/WeareSoft/tech-interview/blob/master/contents/db.md
https://coding-factory.tistory.com/77
https://searchdatamanagement.techtarget.com/definition/database
https://www.redhat.com/ko/topics/cloud-computing/public-cloud-vs-private-cloud-and-hybrid-cloud