์ถ์ฒ : ๋ด์ผ๋ฐฐ์์บ ํ
0. ์ปดํจํฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
์ปดํจํฐ์ ์ฌ๋ฌ ๊ตฌ์กฐ ์ค, ๋ณด์กฐ ๊ธฐ์ต์ฅ์น๋ ์๊ตฌ ์ ์ฅ์๋ก์จ ํ์ผ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค. ํ์ผ์ ํ์ผ์์คํ ์, ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ค
0 - 1. ํ์ผ์์คํ vs ๋ฐ์ดํฐ๋ฒ ์ด์ค
ex) ์นด์นด์คํก ์คํ ํ์ผ์ ํ์ผ์์คํ ์ ์ ์ฅ๋์ด ์๊ณ , ์นดํก์ ๋ฉ์ธ์ง ๋ชฉ๋ก ๋ฑ์ ๋ฐ์ดํฐ๋ DB์ ์ ์ฅ๋๋ค
1) ํ์ผ์์คํ
- ๊ฐ๋ณ ํ์ผ์ ๋ณด๊ดํ๊ณ ์ ๋ฆฌํ๋ ์์คํ ์ผ๋ก, ์ฌ๋ฌ ํด๋์ ํ์ผ์ด ์ ์ฅ๋๊ณ ์ฌ์ฉ์๋ ํ์ผ์ ์ง์ ๊ด๋ฆฌํด์ผ ํ๋ค
~ ํ์ผ ์ ๋ฆฌ, ์ฒ๋ฆฌ ๋ฑ์ ์ฌ์ฉ์์ ์์์ด ๋ง์ด ์ฌ์ฉ๋๋ค
2) ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํ๊ณ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค
- ํ ์ด๋ธ, ๋ ์ฝ๋, ํ๋ ๋ฑ์ ๊ฐ๋ ์ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๊ฒ์ํ ์ ์๋ค
- ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ, ๋ฌด๊ฒฐ์ฑ, ์์ ์ฑ์ ์ ์งํ๋ฉฐ ๋ณต์กํ ๋ฐ์ดํฐ ์กฐ์์ ๊ฐํธํ๊ฒ ์ํํ ์ ์๋ค
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค
1 - 1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์
์ ๋ณด vs ๋ฐ์ดํฐ
์ ๋ณด : ์ฌ๋ฌ ์ข ๋ฅ์ ๋ฌธ์๋ก ํฉ์ด์ ธ์์ด ์กฐํฉํ๊ธฐ ์ด๋ ค์ด ๋จ์ ~ ํ์ผ์์คํ : ์นด์นด์คํก์ ์คํํ ์ ์๋ ์ ๋ณด
๋ฐ์ดํฐ : ์ ๋ณด๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๋ถ๋ฅํด ์กฐํฉํ ์ ์๋ ๋จ์ ~ ๋ฐ์ดํฐ๋ฒ ์ด์ค : ์นด์นด์คํก์ ๋ฉ์ธ์ง๋ฅผ ์ฑํ ๋ฐฉ์ ์ถ๋ ฅํ ์ ์๋ ๋ฐ์ดํฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค : ์กฐ์ง์ฒด์ ์ด์ ๋ฐ์ดํฐ๋ค์ด ํตํฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ ์ด๋ค ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๋์ง์ ๋ฐ๋ผ ๋ค๋ฅด๋ค
ํน์ง
- ๋ฐ์ดํฐ์ ๋๊ท๋ชจ ์ ์ฅ์๋ก์, ์ฌ๋ฌ ์ฌ์ฉ์์ ์ํด ๋์ ์ฌ์ฉ
- ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ค๋ณต์ ์ต์ํํ๋ฉฐ ํตํฉ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด์ ๋ฐ์ดํฐ๋ฟ ์๋๋ผ ๊ทธ ๋ฐ์ดํฐ์ ๊ดํ ์ค๋ช ๊น์ง ํฌํจ ~ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋๋ ๋ฉํ๋ฐ์ดํฐ
- ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๊ฐ๋ณ ์ ์ฅ๊ณต๊ฐ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ ๊ณผ ๋ฐ์ดํฐ ๊ฐ ๋ ๋ฆฝ์ฑ ์ ๊ณต
- ํจ์จ์ ์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณ ์ง์(์ฟผ๋ฆฌ)๋ฅผ ํ ์ ์๋ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS) : ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ํ๊ณ , ์ง์์ด๋ฅผ ์ง์ํ๊ณ , ๋ฆฌํฌํธ๋ฅผ ์์ฑํ๋ ๋ฑ ์์ ์ ์ํํ๋ ์ํํธ์จ์ด
1 - 2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ๊ฐ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง
- ์ ์ฒด์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ๋ปํ๋ฉฐ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ๊ฐ๋ฅํ ์ํ๋ฅผ ๋ฏธ๋ฆฌ ์ ์
ex) ์ฌ๋ ๋ฐ์ดํฐ๋ ์ด๋ฆ, ํค, ๋ชธ๋ฌด๊ฒ, MBTI ํ๋๋ฅผ ๊ฐ์ง๋ค
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ
- ํน์ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ฉ์ ์๋ฏธํ๋ฉฐ, ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ณ์ํด์ ๋ฐ๋
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ์ด ์ผ์ด๋ ๋๋ง๋ค ์ํ๋ ๋ฐ๋๋๋ค
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ (DBS) : DB, DBMS, USER๋ฅผ ํฌํจํ ๊ฐ์ฅ ํฐ ๋ฒ์
๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์กฐ์ง์ฒด์ ์์ฉ ์์คํ ๋ค์ด ๊ณต์ ํด ์ฌ์ฉํ๋ ์ด์ ๋ฐ์ดํฐ๋ค์ด ๊ตฌ์กฐ์ ์ผ๋ก ํตํฉ๋ ๋ชจ์
- ์์คํ ์นดํ๋ก๊ทธ( ๋๋ ๋ฐ์ดํฐ ์ฌ์ , Data Directory)์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ตฌ๋ถํ ์ ์์
- ์์คํ ์นดํ๋ก๊ทธ(system catalog)๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง ์ ๋ณด๋ฅผ ์ ์ง
DBMS์ ๊ธฐ๋ฅ
- ์ฌ์ฉ์๊ฐ ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ๋ช ์
- ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ง์ํ๊ณ ์์ ํ ์ ์๋๋ก ํจ
- ์์คํ ์ ๊ณ ์ฅ์ด๋ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณดํธ
- ๋์์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ทผํ๋ ๊ฒ์ ์ ์ด
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ํน๋ณํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํ ๊ฐ ์ด์ ์ ๊ณต
SQL์ ์ฌ๋ฌ DBMS์์ ์ ๊ณต๋๋ ์ฌ์ค์์ ํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด
ํ๋์จ์ด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋์คํฌ์ ๊ฐ์ ๋ณด์กฐ ๊ธฐ์ต ์ฅ์น์ ์ ์ฅ๋๋ฉฐ, DBMS์์ ์ํ๋ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ ์ํด
๋์คํฌ ๋ธ๋ก๋ค์ ์ฃผ๊ธฐ์ต์ฅ์น๋ก ์ฝ์ด๋ค์ด์ผ ํฉ๋๋ค
- ๊ณ์ฐ์ด๋ ์กฐํฉ ๋ฐ ๋น๊ต ์ฐ์ฐ๋ค์ ์ํํ๊ธฐ ์ํด ์ค์์ฒ๋ฆฌ ์ฅ์น๊ฐ ์ฌ์ฉ
- DBMS ์์ฒด๋ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌ๋์ด ์คํ๋์ด์ผ ํจ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์๊ตฌ์ฌํญ
- ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ
- ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ ๊ทผ
- ๋ฐ์ดํฐ์ ๋ํ ๋์ ์ ๊ทผ
- ๋ฐฑ์ ๊ณผ ํ๋ณต
- ์ค๋ณต์ ์ค์ด๊ฑฐ๋ ์ ์ดํ๋ฉฐ ์ผ๊ด์ฑ ์ ์ง
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ
- ๋ฐ์ดํฐ ๋ณด์
- ์ฌ์ด ์ง์์ด
- ๋ค์ํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค
1 - 3. ํ์ผ์์คํ vs DBMS
ํ์ผ์์คํ ์ ์ฌ์ฉํ ๊ธฐ์กด์ ๋ฐ์ดํฐ ๊ด๋ฆฌ
- ํ์ผ์์คํ ์ DBMS ์ด์ ๋ถํฐ ์ฌ์ฉ๋์๋ค
- ํ์ผ ์ ๊ทผ๋ฐฉ์์ด ํ๋ก๊ทธ๋จ์ ์์ธํ๊ฒ ํํ๋๋ฏ๋ก ๋ฐ์ดํฐ์ ๋ํ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์กด๋๊ฐ ๋๋ค
๋จ์
- ๋ฐ์ดํฐ๊ฐ ์๋ก ๋ค๋ฅธ ๋ค์์ ํ์ผ์ ์ค๋ณตํด์ ์ ์ฅ๋๋ค
- ๋ค์ ์ฌ์ฉ์๋ฅผ ์ํ ๋์์ฑ ์ ์ด๊ฐ ์ ๊ณต๋์ง ์๋๋ค
- ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐํธํ๊ฒ ํด์ฃผ๋ ์ฟผ๋ฆฌ๊ฐ ์ ๊ณต๋์ง ์๋๋ค
- ๋ณด์ ์กฐ์น๊ฐ ๋ฏธํกํ๋ค
- ํ๋ณต ๊ธฐ๋ฅ์ด ์๋ค
- ํ๋ก๊ทธ๋จ, ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ์ด ์์ผ๋ฏ๋ก ์ ์ง๋ณด์ ๋น์ฉ์ด ๋ง์ด ์์๋๋ค
- ํ์ผ์ ๊ฒ์ํ๊ฑฐ๋ ๊ฐฑ์ ํ๋ ์ ์ฐจ๊ฐ ์๋์ ์ผ๋ก ๋ณต์กํด ์์ฐ์ฑ์ ๋จ์ด๋จ๋ฆฐ๋ค
DBMS์ ์ฅ์
1. ์คํค๋ง ์ ์๋ฅผ ํตํด
- ๋ฐ์ดํฐ์ ์ค๋ณต๊ณผ ๋ถ์ผ์น ๊ฐ์
- ํ์คํ ์ฉ์ด
- ์กฐ์ง์ฒด์ ์๊ตฌ์ฌํญ ์๋ณ ๊ฐ๋ฅ
2. ๊ด๋ฆฌ๋๊ตฌ๋ฅผ ํตํด
- ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์ ๋น์ฉ ๊ฐ์
- ๋ณด์, ๋ฌด๊ฒฐ์ฑ ํฅ์
- ๋ค์ํ ์ ํ์ ์ฅ์ ๋ก๋ถํฐ DB ๋ณต๊ตฌ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ณต์ ์ ๋์์ ์ ๊ทผ์ด ๊ฐ๋ฅ
๋จ์
- DBMS ๋ฐ ํ๋์จ์ด ์ถ๊ฐ ๊ตฌ์ ๋น์ฉ ๋ฐ์, ๊ต์ก๋น์ฉ ๋ฐ์
- ํ๋ผ์ด๋ฒ์ ๋ ธ์ถ ์ํ ์ฆ๊ฐ
+ DBMS ์ ์ฉํ๋ฉด ์๋๋ ๊ฒฝ์ฐ
- ์ด๊ธฐ ํฌ์๋น์ฉ์ด ๋๋ฌด ํด ๋
- ์ค๋ฒํค๋๊ฐ ๋๋ฌด ํด ๋
- ์์ฉ์ด ๋จ์ํ๊ณ ์ ์ ์๋์์ผ๋ฉฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒ์ผ๋ก ์์๋ ๋
- ์๊ฒฉํ ์ค์๊ฐ ์ฒ๋ฆฌ ์๊ตฌ์ฌํญ์ด ์์ ๋
- ๋ฐ์ดํฐ์ ๋ํ ๋ค์ ์ฌ์ฉ์์ ์ ๊ทผ์ด ํ์ํ์ง ์์ ๋
1 - 3. DBMS ๋ฐ์ ๊ณผ์
1) ๊ณ์ธต DBMS
- 1960๋ ๋ ํ๋ฐ ๋ฑ์ฅ, ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ณ์ธต ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ DBMS, ๊ณ์ธต ๋ฐ์ดํฐ ๋ชจ๋ธ
์ฅ์ : ํน์ ์ ํ์ ์์ฉ์ ๋ํด ๋น ๋ฅธ ์๋์ ๋์ ํจ์จ ์ ๊ณต
๋จ์
- ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ ์ง ๋ฏธ๋ฆฌ ์์ฉํ๋ก๊ทธ๋จ์ ์ ์ํด์ผ ํ๋ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ฑ๋ ๋ ๊ฐ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ์ํด์ผ ํ๋ค
- ๋ ์ฝ๋๋ค์ด ๋งํฌ๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฏ๋ก ๋ ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ต๋ค
2) ๋คํธ์ํฌ DBMS ๊ตฌ์กฐ
- ๋ ์ฝ๋๋ค์ด ๋ ธ๋๋ก, ๋ ์ฝ๋๋ค ์ฌ์ด์ ๊ด๊ณ๊ฐ ๊ฐ์ ์ผ๋ก ํํ๋๋ ๊ทธ๋ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋คํธ์ํฌ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉ
- ๋คํธ์ํฌ DBMS์์๋ ๋ ์ฝ๋๋ค์ด ๋งํฌ๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฏ๋ก ๋ ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ต๋ค
3) ๊ด๊ณ DBMS(RDBMS) ~ MY SQL Server, Oracle, MySQL
์ฅ์
- ๋ชจ๋ธ์ด ๊ฐ๋จํด ์ดํดํ๊ธฐ ์ฝ๋ค
- ์ฌ์ฉ์๋ ์์ ์ด ์ํ๋ ๊ฒ๋ง ๋ช ์ํ๊ณ ๋ฐ์ดํฐ์ ์์น์ ์ ๊ทผ ๋ฐฉ๋ฒ์ DBMS๊ฐ ๊ฒฐ์ ํ๋ค
4) ๊ฐ์ฒด ์งํฅ DBMS
- ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ
์ฅ์ : ๋ฐ์ดํฐ์ ํ๋ก๊ทธ๋จ์ ๊ทธ๋ฃนํํ๊ณ , ๋ณต์กํ ๊ฐ์ฒด๋ค์ ์ดํดํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ์ ์ง์ ๋ณ๊ฒฝ์ด ์ฉ์ดํ๋ค
ex) ONTOS, OpenODB, GemStone, ObjectStore, O2๋ฑ
5) ๊ฐ์ฒด ๊ด๊ณ DBMS
- DBMS์ ๊ฐ์ฒด ์งํฅ ๋๋ ์ ํตํฉํ ๊ฐ์ฒด ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์ ์๋จ
ex) ์ค๋ผํด, infomix, Universal Server๋ฑ
1 - 4. DBMS ์ธ์ด
1) ๋ฐ์ดํฐ ์ ์์ด (DDL)
- ์ฌ์ฉ์๋ ๋ฐ์ดํฐ ์ ์์ด๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์ ์
- ๋ฐ์ดํฐ ์ ์์ด๋ก ๋ช ์๋ ๋ฌธ์ฅ์ด ์ ๋ ฅ๋๋ฉด DBMS๋ ์ฌ์ฉ์๊ฐ ์ ์ํ ์คํค๋ง์ ๋ํ ๋ช ์ธ๋ฅผ ์์คํ ์นดํ๋ก๊ทธ ๋๋ ๋ฐ์ดํฐ ์ฌ์ ์ ์ ์ฅ
๋ฐ์ดํฐ ์ ์์ด์ ๊ธฐ๋ณธ์ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ์ง์ํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์์ฑ
- ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ
- ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ญ์
- ๋ฐ์ดํฐ ์ ๊ทผ์ ์ํด ํน์ ์ดํธ๋ฆฌ๋ทฐํธ ์์ ์ธ๋ฑ์ค๋ฅผ ์ ์
2) ๋ฐ์ดํฐ ์กฐ์์ด(DML)
- ์ฌ์ฉ์๋ ๋ฐ์ดํฐ ์กฐ์์ด๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์, ์์ , ์ฝ์ , ์ญ์
- ์ ์ฐจ์ ์ธ์ด์ ๋น์ ์ฐจ์ ์ธ์ด
cf)
์ ์ฐจ์ ์ธ์ด : ํ๋ก๊ทธ๋จ์ ์์ฐจ์ ์ผ๋ก ์คํํ๋ ๋ฐฉ์์ผ๋ก ๋์, ๋ช ๋ น์ด์ ํจ์์ ์ฐ์์ผ๋ก ์ด๋ฃจ์ด์ง ํ๋ก์์ ๋ฅผ ์ฌ์ฉํด ์์ ์ ์ํํ๋ค. C, Pascal, Fortan ๋ฑ์ด ์๋ค
- ๊ด๊ณ DBMS์์ ์ฌ์ฉ๋๋ SQL์ ๋ํ์ ์ธ ๋น์ ์ฐจ์ ์ธ์ด
- ๋๋ถ๋ถ ๋ฐ์ดํฐ ์กฐ์์ด๋ SUM, COUNT, AVG์ ๊ฐ์ ๋ด์ฅ ํจ์๋ฅผ ๋ด๊ณ ์๋ค
- ๋ฐ์ดํฐ ์กฐ์์ด๋ ์ ์ถ๋ ฅ์ ํตํด ์ํ๋๊ฑฐ๋ C, ์ฝ๋ณผ ๋ฑ์ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ๋ดํฌ๋์ด ์ฌ์ฉ๋๋ค
๋ฐ์ดํฐ ์กฐ์์ด์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ์ ์ฝ์
- ๋ฐ์ดํฐ์ ๊ฒ์
- ๋ฐ์ดํฐ์ ์์
- ๋ฐ์ดํฐ์ ์ญ์
3) ๋ฐ์ดํฐ ์ ์ด์ด(DCL) : ์ฌ์ฉ์๋ ๋ฐ์ดํฐ ์ ์ด์ด๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ ์ ์ ๋ช ์ํ๊ณ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋ ์ทจ์
1 - 5. DBMS ์ฌ์ฉ์
1) ์์ฉ ํ๋ก๊ทธ๋๋จธ
- DB์์ ํน์ ์์ฉ์ ๊ตฌํํ๋ ์ญํ
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ฉฐ DB์ ์ ๊ทผํ ๋๋ ์ ๊ณต๋ ๋ฐ์ดํฐ ์กฐ์์ด๋ฅผ ์ฌ์ฉํ๋ค
- ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑํ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ต์ข ์ฌ์ฉ์๋ค์ด ๋ฐ๋ณต์ ์ผ๋ก ์ ๊ทผ ๋ฐ ํ๋ก๊ทธ๋จ์ด ์ํ๋๋ฏ๋ก ํ์์ฑ ํธ๋์ ์ ๋๋ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ๋ค
2) DBA
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ ์กฐ์ง ์ฌ๋ฌ ๋ถ๋ถ์ ์์ดํ ์๊ตฌ๋ฅผ ๋ง์กฑ์ํค๊ธฐ ์ํด ์ผ๊ด์ฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์์ฑํ๊ณ ์ ์งํ๋ ์ฌ๋(ํ)
- ๋ฌผ๋ฆฌ DB์ ๋ณ๊ฒฝ์ ์ํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ์์ฑ๊ณผ ๋ณ๊ฒฝ
~ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ๋ช ์
~ ์ฌ์ฉ์ ๊ถํ์ ํ์ฉํ๊ฑฐ๋ ์ทจ์, ์ฌ์ฉ์ ์ญํ ๊ด๋ฆฌ
~ ์ ์ฅ ๊ตฌ์กฐ์ ์ ๊ทผ ๋ฐฉ๋ฒ(๋ฌผ๋ฆฌ์ ์คํค๋ง) ์ ์
~ ๋ฐฑ์ ๊ณผ ํ๋ณต
~ ํ์คํ ์ํ
3) ์คํผ๋ ์ดํฐ(์ธํ๋ผํ)
- DBMS๊ฐ ์ด์๋๊ณ ์๋ ์ปดํจํฐ ์์คํ ๊ณผ ์ ์ฐ์ค์ ๊ด๋ฆฌํ๋ ์ฌ๋
4) ์ต์ข ์ฌ์ฉ์
- ์ง์ํ๊ฑฐ๋ ๊ฐฑ์ ํ๊ฑฐ๋ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋
- ์ต์ข ์ฌ์ฉ์๋ ๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ฌธ์ ์ฌ์ฉํด ๋งค๋ฒ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ์ฐพ๋ ์บ์ฃผ์ผ ์ฌ์ฉ์์ ๊ธฐ์์ฑ ํธ๋์ ์ ์ ์ฃผ๋ก ๋ฐ๋ณตํด ์ฌ์ฉํ๋ ์ด๋ณด ์ฌ์ฉ์๋ก ๊ตฌ๋ถ๋๋ค
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค
2 - 1. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(SQL)
- ๋์ผํ ๊ตฌ์กฐ(๋ฆด๋ ์ด์ )์ ๊ด์ ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ตฌ์ฑ
- ์ ์ธ์ ์ง์์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ์ ๊ทผ์ ์ ๊ณต
- ์์ฉ ํ๋ก๊ทธ๋จ๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ๋ ์ฝ๋๋ค์ ์ด๋ค ์์์๋ ๋ฌด๊ดํ๊ฒ ์์ฑ๋จ
- ์ฌ์ฉ์๋ ์ํ๋ ๋ฐ์ดํฐ๋ง ๋ช ์ํ๊ณ , ์ด๋ป๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ง ๋ช ์ํ ํ์ ์๋ค
- ๊ฐ์ฅ ๋จ์ํ ๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ
ํน์ง
- ๋ฐํ์ด ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ๊ฐ๋จํ ํ ์ด๋ธ์ ์ฌ์ฉ
- ์ค์ฒฉ๋ ๋ณต์กํ ๊ตฌ์กฐ๊ฐ ์๋ค
- ์งํฉ ์์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ
- ์๋ จ๋์ง ์์ ์ฌ์ฉ์๋ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค
- ํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฉ์ ๋ํ ์ข์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค
๋ฆด๋ ์ด์ : 2์ฐจ์์ ํ ์ด๋ธ(์คํ๋ ๋ ์ํธ์ ์ ์ฌ)
๋ ์ฝ๋ : ๋ฆด๋ ์ด์ ์ ๊ฐ ํ
ํํ : ๋ ์ฝ๋์ ๊ณต์ ์ฉ์ด = ๋ก์ฐ(ROW)
์์ฑ : ๋ฆด๋ ์ด์ ์์ ์ด๋ฆ์ ๊ฐ์ง ํ๋์ ์ด = ์ปฌ๋ผ(COLUMN)
* ํ์ผ ์์คํ ์ ๋ ์ฝ๋๋ง ์๋ ํ์ผ ํํ๋ก ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ์ง๋ง, ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์ฑ, ํํ์ ๊ฐ์ง ๋ฆด๋ ์ด์ (ํ ์ด๋ธ) ํํ๋ก ์กด์ฌํ๋ค
๋๋ฉ์ธ
- ํ ์์ฑ์ ๋ํ๋ ์ ์๋ ๊ฐ๋ค์ ์งํฉ
- ๊ฐ ์์ฑ์ ๋๋ฉ์ธ์ ์์๊ฐ
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฐ์ดํฐ ํ์ ๊ณผ ์ ์ฌํ๋ค
- ๋์ผํ ๋๋ฉ์ธ์ด ์ฌ๋ฌ ์์ฑ์์ ์ฌ์ฉ๋ ์ ์๋ค
- ๋ณต์ก ์์ฑ์ด๋ ๋ค์น ์ ํธ๋ฆฌ๋ทฐํธ(์ ํธ๋ฆฌ๋ทฐํธ ํ๋์ ์ฌ๋ฌ ๊ฐ์ด ๋ค์ด๊ฐ ์ ์๋ ๊ฒ ex) ํ๊ณผ ์ฌ๋ฌด์ค ์ ํ๋ฒํธ)
์ฐจ์์ ์นด๋๋๋ฆฌํฐ
- ์ฐจ์ : ํ ๋ฆด๋ ์ด์ ์ ๋ค์ด์๋ ์์ฑ์ ์(ํ๋ ์)
~ ์ ํจ ๋ฆด๋ ์ด์ ์ ์ต์ ์๋ 1 : ์์ฑ์ด 1๊ฐ ์ด์ ์์ด์ผ ๋ฆด๋ ์ด์ ์ด ๋๋ค
~ ๋ฆด๋ ์ด์ ์ ์ฐจ์๋ ์์ฃผ ๋ฐ๋์ง ์๋๋ค : ํ ์ด๋ธ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ ์ ์ฒด ๋ก์ฐ์ ๋ฐ์๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌ๊ฐ ์ค๋จ๋๋ค
- ์นด๋๋๋ฆฌํฐ : ๋ฆด๋ ์ด์ ์ ํํ(๋ก์ฐ ์)
~ ์ ํจํ ๋ฆด๋ ์ด์ ์ ์นด๋๋๋ฆฌํธ 0์ ๊ฐ์ง ์ ์๋ค
~ ๋ฆด๋ ์ด์ ์ ์นด๋๋๋ฆฌํฐ๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ณ์ ๋ณํ๋ค
2 - 2. ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(NoSQL)
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ๋ ์ตํต์ฑ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ฒ์์ ํนํ๋ ๋งค์ปค๋์ฆ์ ์ ๊ณตํ๋ค
- NoSQL์ ๋ถ์ฐ ํ๊ฒฝ์์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋์ฑ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์๋ค
ํน์ง
- ๊ฑฐ๋ํ Map์ผ๋ก Key-Value ํ์์ ์ง์
- ์ปฌ๋ผ๊ฐ ๊ด๊ณ๋ฅผ ์ ์ํ์ง ์๋๋ค(PK ๋ฑ)
- ์คํค๋ง์ ๋ํ ์ ์๊ฐ ์๋ค
์ข ๋ฅ
1) ๋ฌธ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ์ด ์๋ ๋ฌธ์์ฒ๋ผ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- JSON๊ณผ ์ ์ฌํ ํ์์ผ๋ก ๋ฐ์ดํฐ ๋ฌธ์ํ, ์ ์ฅ
- ๊ฐ ๋ฌธ์๋ ํ๋์ ์์ฑ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์๊ณ , ์ปฌ๋ ์ ์ด๋ผ๋ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด ๊ด๋ฆฌ ~ MongoDB
2) Key - Value ํ์
- ์์ฑ์ Key - Value์ ์์ผ๋ก ๋ํ๋ด๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์ด์ ํํ๋ก ์ ์ฅ
- Key : ์์ฑ Value : ์์ฑ์ ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ ๊ฐ
- Redis, Dynamo ๋ฑ
3) Wide - Column Store ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ง์ค์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊ฐ ์ด์๋ Key - Value ํ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ณ , ์ปฌ๋ผ ํจ๋ฐ๋ฆฌ๋ผ๊ณ ํ๋ ์ด์ ์งํฉ์ฒด ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค
- ํ๋์ ํ์ ๋ค์์ ์ด์ ํฌํจํ ์ ์์ด ์ ์ฐ์ฑ์ด ๋๋ค
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํ์ํ ์ด์ ์ ์ฐํ๊ฒ ์ ํํ ์ ์์ด ๊ท๋ชจ๊ฐ ํฐ ๋ฐ์ดํฐ ๋ถ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค
- Cassandra, HBase ๋ฑ
4) ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฃ๊ตฌ์กฐ์ ๊ทธ๋ํ์ ๋น์ทํ ํ์์ผ๋ก ๋ฐ์ดํฐ ๊ฐ ๊ด๊ณ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ ธ๋์ ์์ฑ๋ณ ๋ฐ์ดํฐ ์ ์ฅ, ๊ฐ ๋ ธ๋๊ฐ ๊ด๊ณ๋ ์ ์ผ๋ก ํํํ๋ค. Neo4J, InfiniteGraph ๋ฑ
- ์ฅ์ : ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ํฉ, ์ฝ๊ธฐ๋ณด๋ค ์ฐ๊ธฐ๊ฐ ๋น ๋ฅด๊ณ RDB๋ณด๋ค ์ฝ๊ธฐ ์ฐ๊ธฐ๊ฐ ๋ชจ๋ ๋น ๋ฆ, ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ด ์ ์ฐ, ํ์ฅ์ฑ์ด ์ข์ ๊ฒ์์ ์ ๋ฆฌ, ์ต์ ํ๋ ํค ์ ์ฅ ๊ธฐ๋ฒ์ ์ฌ์ฉํด ์๋ต์๋๋ ์ฒ๋ฆฌํจ์จ ๋ฑ์์ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ค
- ๋จ์ : ์ฟผ๋ฆฌ ์ฒ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฑ ํ ์ฐ์ฐ์ ํด์ผํ๋ฏ๋ก ํฐ ํฌ๊ธฐ์ document๋ฅผ ๋ค๋ฃฐ ๋ ์ฑ๋ฅ์ด ์ ํ๋จ
2 - 3. SQL vs NoSQL
1) SQL ์ฌ์ฉ์ด ์ ํฉํ ๊ฒฝ์ฐ
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ACID ์ฑ์ง์ ์ค์ํด์ผ ํ๋ ๊ฒฝ์ฐ
- SQL์ ์ฌ์ฉํ ๋ DB์ ์ํธ์์ฉ ๋ฐฉ์์ ์ ํํ๊ฒ ๊ท์ ํ ์ ์์ด, DB์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ฐ์ํ ์ ์๋ ์์ธ ์ํฉ์ ์ค์ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํ ์ ์๋ค
- ์ ์ ์๊ฑฐ๋๋ฅผ ํฌํจ, ๋ชจ๋ ๊ธ์ต ์๋น์ค ๋ชฉ์ ์ SW ๊ฐ๋ฐ์ ๋ฐ๋์ ACID๊ฐ ์ค์๋์ด์ผ ํ๋ฏ๋ก SQL์ ์ฌ์ฉํ๋ค
2. ์ํํธ์จ์ด์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๊ฐ ๊ตฌ์กฐ์ ์ด๊ณ ์ผ๊ด์ ์ธ ๊ฒฝ์ฐ
- ์ํํธ์จ์ด(ํ๋ก์ ํธ)์ ๊ท๋ชจ๊ฐ ๋ง์ ์๋ฒ๋ฅผ ํ์๋ก ํ์ง ์๊ณ ์ผ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ RDB๋ฅผ ์ฌ์ฉ
- NoSQL์ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ๊ณผ ๋์ ํธ๋ํฝ๋ ์ง์ํ๋๋ก ์ค๊ณ๋์ด ์์ด ๊ตณ์ด ์ฌ์ฉํ ํ์๊ฐ ์๋ค
2) NoSQL ์ฌ์ฉ์ด ์ ํฉํ ๊ฒฝ์ฐ
1. ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ๊ฑฐ์ ๋๋ ์ ํ ์๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒฝ์ฐ
- ๋๋ถ๋ถ์ NoSQL DB๋ ์ ์ฅ ๋ฐ์ดํฐ ์ ํ์ ์ ํ์ด ์๋ค
- SW ๊ฐ๋ฐ์ ์ ํํ๋์ง ์์ ๋๋์ ๋ฐ์ดํฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ NoSQL ์ ์ฉ์ด ๋ณด๋ค ํจ์จ์
2. ํด๋ผ์ฐ๋ ์ปดํจํ ๋ฐ ์ ์ฅ๊ณต๊ฐ์ ์ต๋ํ ํ์ฉํ๋ ๊ฒฝ์ฐ
- ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ์๋ฅผ ๊ตฌ์ถํ๋ฉด, ์ ๋ ดํ ๋น์ฉ์ ์๋ฃจ์ ์ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค
- ์ํํธ์จ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ฅ์ฑ์ด ์ค์ํ๋ค๋ฉด, ๋ฒ๊ฑฐ๋กญ์ง ์๊ฒ ํ์ฅํ ์ ์๋ NoSQL์ด ์ ํฉํ ์ ์๋ค
3. ๋น ๋ฅด๊ฒ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๋ ๊ณผ์ ์์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์์ฃผ ์ ๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ
- ์คํค๋ง๋ฅผ ๋ฏธ๋ฆฌ ์ค๋นํ ํ์๊ฐ ์์ด ๊ฐ๋ฐ ์๋๊ฐ ๋นจ๋ผ์ง๋ค
- ๋ค์ดํ์(DB ์๋ฒ๋ฅผ ๋ด๋ฆฌ๊ณ ์คํ๋ผ์ธ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์งํํ๋ ์๊ฐ)์์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์์ฃผ ์ ๋ฐ์ดํธํด์ผ ํ๋ ๊ฒฝ์ฐ, ์คํค๋ง๋ฅผ ๋งค๋ฒ ์์ ํด์ผ ํ๋ RDB๋ณด๋ค NoSQL DB๊ฐ ๋ ์ ํฉํ๋ค
'๊ฐ๋ฐ๊ณต๋ถ > CS๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CS ๊ฐ์ 7. ์๋ฃ์ ์ ์ฅ๊ณผ ํํ (0) | 2023.11.10 |
---|---|
CS ๊ฐ์ 6. DBMS์ ๊ธฐ๋ฅ๊ณผ ์ข ๋ฅ (1) | 2023.11.07 |
CS ๊ฐ์ 4. ์ฐ๋ ๋์ ์ฐ๋ ๋ํ (1) | 2023.10.25 |
CS ๊ฐ์ 3. ํ๋ก์ธ์ค ์๋ช ์ฃผ๊ธฐ์ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ (1) | 2023.10.03 |
CS ๊ฐ์ 2. CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌํ (0) | 2023.07.23 |