Skip to content

Latest commit

ย 

History

History
378 lines (175 loc) ยท 26.6 KB

database.md

File metadata and controls

378 lines (175 loc) ยท 26.6 KB

Database

Database๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ด์ „์—๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.(ํ˜„์žฌ๋„ ๋ถ€๋ถ„์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.) Database๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ๊ฐ์˜ ํŒŒ์ผ ๋‹จ์œ„๋กœ ์ €์žฅํ•˜๋ฉฐ ์ด๋Ÿฌํ•œ ์ผ๋“ค์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋…๋ฆฝ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒํ˜ธ ์—ฐ๋™์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Database์˜ ๊ธฐ๋ณธ๊ฐœ๋…

  • ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ (a Set of Data)
  • ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ๋“ค์˜ ํ†ตํ•ฉ๋œ ์ •๋ณด๋“ค์„ ์ €์žฅํ•˜๊ณ  ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์šฉ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ
  • ํšจ์œจ์ ์œผ๋กœ ์ €์žฅ, ๊ฒ€์ƒ‰, ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ๋“ค๋ผ๋ฆฌ ์—ฐ๊ด€์‹œํ‚ค๊ณ  ์กฐ์งํ™”

Database์˜ ํŠน์„ฑ

  • ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ์„ฑ(Real-time Accessability) : ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ์ฆ‰์‹œ ์ฒ˜๋ฆฌ
  • ๊ณ„์†์ ์ธ ๋ณ€ํ™”(Continuous Evolution) : ์ •ํ™•ํ•œ ๊ฐ’์„ ์œ ์ง€ํ•˜๋ ค๊ณ  ์‚ฝ์ž…ยท์‚ญ์ œยท์ˆ˜์ • ์ž‘์—… ๋“ฑ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ฐฑ์‹ 
  • ๋™์‹œ ๊ณต์œ ์„ฑ(Concurrent Sharing) : ์‚ฌ์šฉ์ž๋งˆ๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋™์‹œ์— ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ณ  ์ด์šฉ
  • ๋‚ด์šฉ ์ฐธ์กฐ(Content Reference) : ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ์˜ ์œ„์น˜๋‚˜ ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž๊ฐ€ ์š”๊ตฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ, ์ฆ‰ ๋ฐ์ดํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ์ฐธ์กฐ

DBMS(DataBase Management System)

๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. DMBS๊ฐ€ ๋“ฑ์žฅํ•˜๊ธฐ ์ด์ „์—๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฝ์–ด๋“ค์ด๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋…ธ๋ ฅ์˜ ๊ฒฐ๊ณผ๋กœ DMBS๋ผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

DBMS์— ๋Œ€ํ•œ ์ตœ์ดˆ์˜ ๊ฐœ๋…์€ IBM์—์„œ ๋…ผ๋ฌธ์œผ๋กœ ๋‚˜์™”๊ณ  ์ตœ์ดˆ์˜ ๊ตฌํ˜„์€ Oracle์—์„œ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

DBMS์˜ ํŠน์ง•

  1. ๋ฐ์ดํ„ฐ์˜ ๋…๋ฆฝ์„ฑ

    • ๋ฌผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ : Database ์‚ฌ์ด์ฆˆ๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•˜๋”๋ผ๋„ ๊ด€๋ จ๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
    • ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ : Database๋Š” ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋กœ ๋‹ค์–‘ํ•ญ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋…ผ๋ฆฌ์  ์š”๊ตฌ๋ฅผ ๋งŒ์กฑ์‹œ์ผœ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ

    ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  3. ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์„ฑ

    ์ธ๊ฐ€๋œ ์‚ฌ์šฉ์ž๋“ค๋งŒ Database๋‚˜ Database ๋‚ด์˜ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ„์ • ๊ด€๋ฆฌ ๋˜๋Š” ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ค์ •ํ•จ์œผ๋กœ์จ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ๋ณด์•ˆ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ

    ์—ฐ๊ด€๋œ ์ •๋ณด๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋กœ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ์–ด๋–ค ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ณ€๊ฒฝํ–ˆ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ถˆ์ผ์น˜์„ฑ์„ ๋ฐฐ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ž‘์—… ์ค‘ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋งŒ ๋ณ€๊ฒฝ๋˜์–ด ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ฐฐ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ตœ์†Œํ™”

    Database๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•ด์„œ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋‹จ์  ์ค‘ ํ•˜๋‚˜์ธ ์ž๋ฃŒ์˜ ์ค‘๋ณต๊ณผ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Database์˜ ์ข…๋ฅ˜

Database๋Š” 1960๋…„๋Œ€์— ์‹œ์ž‘๋œ ์ดํ›„ ๊ณ„์ธต ๋ฐ Network Database๋กœ ์‹œ์ž‘ํ•˜์—ฌ 1980๋…„๋Œ€์— ๊ฐ์ฒด ์ง€ํ–ฅ Database๋ฅผ ๊ฑฐ์ณ ์˜ค๋Š˜ ๋‚ ์—๋Š” SQL ๋ฐ NoSQL Database์™€ Cloud Database๋กœ ๋ฐœ์ „ํ•ด ์™”์Šต๋‹ˆ๋‹ค.

๊ด€๊ณ„ํ˜•(Relational) Database

ํ‚ค(key)์™€ ๊ฐ’(value)๋“ค์˜ ๊ฐ„๋‹จํ•œ ๊ด€๊ณ„๋ฅผ ํ…Œ์ด๋ธ”ํ™” ์‹œํ‚จ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์›์น™์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋ฒ”์ฃผ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ํ…Œ์ด๋ธ” ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. SQL(Structured Query Language)์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ํ‘œ์ค€ ์‚ฌ์šฉ์ž ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ™•์žฅํ•˜๊ธฐ ์‰ฝ๊ณ  ๋ชจ๋“  ๊ธฐ์กด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •ํ•  ํ•„์š” ์—†์ด ์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ํ›„์— ์ƒˆ ๋ฐ์ดํ„ฐ ๋ฒ”์ฃผ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถ„์‚ฐ(Distributed) Database

๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๋ถ€๊ฐ€ ์—ฌ๋Ÿฌ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ์ €์žฅ๋˜๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ๋„คํŠธ์›Œํฌ์˜ ๋‹ค๋ฅธ ์ง€์  ๊ฐ„์— ๋ถ„์‚ฐ๋˜๊ฑฐ๋‚˜ ๋ณต์ œ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋™์ข… ๋˜๋Š” ์ด๊ธฐ์ข…์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ข… ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ๋ฌผ๋ฆฌ์  ์œ„์น˜์—๋Š” ๋™์ผํ•œ ๊ธฐ๋ณธ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์žˆ์œผ๋ฉฐ ๋™์ผํ•œ ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ธฐ์ข… ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•˜๋“œ์›จ์–ด, ์šด์˜ ์ฒด์ œ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์œ„์น˜๋งˆ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ์ 

  • ์กฐ์ง ๊ตฌ์กฐ์˜ ๋ฐ˜์˜ : ๊ธฐ์—… ๋“ฑ ๋ถ€๋ฌธ๋ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋†“๊ณ  ๊ทธ๋“ค์„ ํ†ตํ•ฉํ•˜์—ฌ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตญ์†Œ ์ž์œจ์„ฑ : ๊ฐ ๋ถ€์„œ๋Š” ์ž์ฒด ๋ณด์œ ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ์˜ ๋ณดํ˜ธ : ํ™”์žฌ ๋“ฑ์˜ ์žฌํ•ด๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ„์‚ฐ๋˜์–ด ์žˆ์œผ๋ฉด ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ์— ์žƒ๋Š” ๊ฒƒ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ํ–ฅ์ƒ : ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ฐ€๊นŒ์šด ์œ„์น˜์— ์žˆ์œผ๋ฉด์„œ, ์ „์ฒด๊ฐ€ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€๊ฐ€ ๊ณผ๋ถ€ํ•˜ ๋˜์–ด๋„ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์ด ์ž‘์Šต๋‹ˆ๋‹ค.
  • ๊ฒฝ์ œ์„ฑ : ๊ฑฐ๋Œ€ํ•œ ๊ณ ์„ฑ๋Šฅ ์ปดํ“จํ„ฐ๋ณด๋‹ค ๋™์ผํ•œ ์ •๋„์˜ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜๋Š” ์†Œํ˜• ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ์ชฝ์ด ์Œ‰๋‹ˆ๋‹ค.
  • ๋ชจ๋“ˆํ™” : ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‹ค๋ฅธ ๋ชจ๋“ˆ(์‹œ์Šคํ…œ)์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๊ฐœ๋ณ„ ์‹œ์Šคํ…œ์„ ๊ฐฑ์‹ , ์ถ”๊ฐ€, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋†’์€ ์‹ ๋ขฐ์„ฑ์˜ ํŠธ๋žœ์žญ์…˜ : ๋ณต์ œ(replication)๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ์‚ฌ์ดํŠธ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์ „์ฒด ๊ธฐ๋Šฅ์€ ์†์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฑฐ๋ž˜๋Š” ACID ํŠน์„ฑ์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

ACID : ์›์ž์„ฑ(Atomicity), ์ผ๊ด€์„ฑ(Consistency), ๋…๋ฆฝ์„ฑ(Isolation), ์ง€์†์„ฑ(Durability)์˜ ์•ฝ์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์ด ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์„ฑ์งˆ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

๋‹จ์ 

  • ๋ณต์žก์„ฑ : ํˆฌ๋ช…์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์ถ•์—๋Š” ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณด๋‹ค ๊ธฐ๋Ÿ‰์„ ์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ตฌ์„ฑํ•˜๋Š” ์‹œ์Šคํ…œ์€ ๋™์ผํ•œ ๊ธฐ์ข… ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ ‘์†์ด ๋Š์–ด์กŒ์„ ๋•Œ์˜ ๋™์ž‘๋„ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐํ•ฉ์„ ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ๊ฐ„์— ํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„์šฉ : ์‹œ์Šคํ…œ์˜ ๊ทœ๋ชจ์™€ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๊ด€๋ฆฌ ๋น„์šฉ๋„ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ : ๊ฐœ๋ณ„ ์‚ฌ์ดํŠธ์˜ ๋ณด์•ˆ์„ ํ™•๋ณดํ•˜๊ณ , ์‚ฌ์ดํŠธ ๊ฐ„ ๋„คํŠธ์›Œํฌ์˜ ๋ณด์•ˆ๋„ ํ™•๋ณดํ•˜์ง€ ์•Š์œผ๋ฉด ์ „์ฒด์— ๋Œ€ํ•œ ๋ณด์•ˆ์„ ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ์˜ ์–ด๋ ค์›€ : ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋ ค๋ฉด ๋งŽ์€ ๋„คํŠธ์›Œํฌ ์ž์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฏธ์„ฑ์ˆ™ํ•œ ๊ธฐ์ˆ  : ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฏธ์„ฑ์ˆ™ํ•œ ๋ถ„์•ผ์ด๋ฉฐ, ๊ฒฝํ—˜์  ์ง€์‹์˜ ์ถ•์ ์ด ์ ์Šต๋‹ˆ๋‹ค.
  • ํ‘œ์ค€์˜ ๋ถ€์กฑ : ์ค‘์•™ DBMS๋ฅผ ๋ถ„์‚ฐ DBMS๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ์œ„ํ•œ ๋„๊ตฌ์™€ ๋ฐฉ๋ฒ•๋ก ์€ ์•„์ง ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์˜ ๋ณต์žก์„ฑ : ์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์ด์™ธ์—, ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ ์‚ฌ์ดํŠธ์— ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ•˜๊ฑฐ๋‚˜ ๋ณต์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€ ๋“ฑ ์„ค๊ณ„์‹œ์— ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ•„์š”๋กœํ•ฉ๋‹ˆ๋‹ค.
  • ์šด์˜ ์ฒด์ œ๊ฐ€ ๋ถ„์‚ฐ ์ปดํ“จํŒ…์„ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋™์‹œ์„ฑ ์ œ์–ด๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ(Cloud) Database

ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋ผ์šฐ๋“œ, ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ๋˜๋Š” ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ์—์„œ ๊ฐ€์ƒํ™”๋œ ํ™˜๊ฒฝ์„ ์œ„ํ•ด ์ตœ์ ํ™”๋˜๊ฑฐ๋‚˜ ๊ตฌ์ถ•๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‚ฌ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ์Šคํ† ๋ฆฌ์ง€ ์šฉ๋Ÿ‰ ๋ฐ ๋Œ€์—ญํญ ๋น„์šฉ์„ ์ง€๋ถˆํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๊ณ ๊ฐ€์šฉ์„ฑ๊ณผ ํ•จ๊ป˜ ์˜จ๋””๋งจ๋“œ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋˜ํ•œ ๊ธฐ์—…์ด 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 Database

NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•ด๊ฒฐํ•˜๋„๋ก ๊ตฌ์ถ•๋˜์ง€ ์•Š์€ ๋น… ๋ฐ์ดํ„ฐ ์„ฑ๋Šฅ ๋ฌธ์ œ์— ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ์กฐ์ง์ด ํด๋ผ์šฐ๋“œ์˜ ์—ฌ๋Ÿฌ ๊ฐ€์ƒ ์„œ๋ฒ„์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๋˜๋Š” ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ์˜ ํฐ ์ฒญํฌ๋ฅผ ๋ถ„์„ํ•ด์•ผ ํ•  ๋•Œ ๊ฐ€์žฅ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

์ข…๋ฅ˜๋งˆ๋‹ค ์“ฐ๊ธฐ/์ฝ๊ธฐ ์„ฑ๋Šฅ ํŠนํ™”, 2 ์ฐจ ์ธ๋ฑ์Šค ์ง€์›, ์˜คํ†  ์ƒค๋”ฉ(DBMS์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์ฒด๋ฅผ ๋ถ„ํ• ํ•˜๋Š” ๋ฐฉ์‹) ์ง€์› ๊ฐ™์€ ๊ณ ์œ ํ•œ ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์ž„์‹œ ์ €์žฅํ•˜๊ณ  ์‘๋‹ตํ•˜๋Š” ๋“ฑ์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์ ์ธ ์Šค์ผ€์ผ ์•„์›ƒ(์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€ ์ถ”๊ฐ€ํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•)์„ ์ง€์›ํ•˜๊ธฐ๋„ ํ•˜๋ฉฐ, ๊ฐ€์šฉ์„ฑ์„ ์œ„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ณต์ œ ๋“ฑ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๋Š” ์„ฑ๋Šฅ๊ณผ ํŠน์ง•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

In-Memory Database

๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€์˜ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์„ค์น˜๋˜์–ด ์šด์˜๋˜๋Š” ๋ฐฉ์‹์˜ DBMS์ž…๋‹ˆ๋‹ค.

์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋””์Šคํฌ์— ์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณด๋‹ค ๋” ๋น ๋ฅธ๋ฐ ๊ทธ ๊นŒ๋‹ญ์€ ๋””์Šคํฌ ์ ‘๊ทผ์ด ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ๋ณด๋‹ค ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ, ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋‚ด๋ถ€ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋” ๋‹จ์ˆœํ•˜๋ฉฐ ๋” ์ ์€ CPU ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ๊ฒ€์ƒ‰ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ๋ณด๋‹ค ๋” ๋น ๋ฅด๊ณ  ๋” ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์–‘์˜ ๋น ๋ฅธ ์ฆ๊ฐ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘๋‹ต ์†๋„๊ฐ€ ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์•ˆ์ด In-Memory Database์ž…๋‹ˆ๋‹ค. ์ „ํ˜•์ ์ธ ๋””์Šคํฌ ๋ฐฉ์‹์€ ๋””์Šคํฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹์€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์ƒ‰์ธ์„ ๋„ฃ์–ด ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์ƒ‰์ธ์„ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€์˜ ์ž ์žฌ์ ์ธ ๊ธฐ์ˆ ์  ๋ฌธ์ œ๋Š” RAM์˜ ํœ˜๋ฐœ์„ฑ์ž…๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•ด ์ „์›์ด ์†Œ์‹ค๋  ๊ฒฝ์šฐ๋‚˜ ๊ณ ์˜์ ์ธ ์ƒํ™ฉ ๋“ฑ์—์„œ ํœ˜๋ฐœ์„ฑ RAM ์•ˆ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ์†์‹ค๋ฉ๋‹ˆ๋‹ค. ๋น„ํœ˜๋ฐœ์„ฑ RAM ๊ธฐ์ˆ ์˜ ๋„์ž…์œผ๋กœ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ „๋ ฅ ์†์‹ค์—๋„ ์™„์ „ํ•œ ์†๋„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์œ ๋ช…ํ•œ NoSQL์ธ RediS๊ฐ€ In-Memory Database ๋ฐฉ์‹ ์ž…๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ(Object-oriented) Database

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ํ•ญ๋ชฉ์€ ์ข…์ข… ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์ง€๋งŒ ๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ž‘์—…๋ณด๋‹ค๋Š” ๊ฐ์ฒด, ๋…ผ๋ฆฌ๋ณด๋‹ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋ ˆ์ฝ”๋“œ๋Š” ์˜์ˆซ์ž ๊ฐ’๊ณผ ๋‹ฌ๋ฆฌ ์ •์˜ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

**์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์Šค์Šค๋กœ ๋ฐ์ดํ„ฐ ํ˜•๊ณผ ๋ฉ”์„œ๋“œ(์ด ๋‘ ์กฐํ•ฉ์€ ๊ฐ์ฒด ์ง€ํ–ฅ์—์„œ ๋งํ•˜๋Š” ๊ฐ์ฒด์˜ ํด๋ž˜์Šค์— ํ•ด๋‹น)๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ (DBMS)**์ž…๋‹ˆ๋‹ค.

๊ด€๊ณ„ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ RDBMS ๋˜๋Š” SQL-DBMS๋Š”, SQL๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด ํ‘œ์ค€์— ์˜ํ•ด ์‚ฌ์ „์— ๊ทœ์ •๋œ ์ œํ•œ๋œ ๋ฐ์ดํ„ฐ ํ˜•์‹ ์ง‘ํ•ฉ์— ์†ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ์‚ฌ๊ณ ๋ฐฉ์‹์„ ์ฑ„์šฉํ•œ ORDBMS์—์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์Šค์Šค๋กœ ๋ฐ์ดํ„ฐ ํ˜•์‹๊ณผ ๋ฐฉ๋ฒ•์„ ์ž์œ ๋กญ๊ฒŒ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ DBMS์— ํ†ตํ•ฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ORDBMS ๊ธฐ์ˆ ์˜ ๋ชฉํ‘œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฌธ์ œ ์˜์—ญ์„ ์ƒ๊ฐํ•˜๋Š” ์ˆ˜์ค€๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ๋†’์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด์˜ RDBMS์— ์™ธ๋ถ€ ์†Œํ”„ํŠธ์›จ์–ด ๋„๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ORDBMS์™€ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ์™ธ๋ถ€ ์†Œํ”„ํŠธ์›จ์–ด ๋„๊ตฌ๋ฅผ ๊ฐ์ฒด ๊ด€๊ณ„ ๋งคํ•‘ ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

๊ทธ๋ž˜ํ”„(Graph) Database

๊ทธ๋ž˜ํ”„ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ทธ๋ž˜ํ”„ ์ด๋ก ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๊ณ„๋ฅผ ์ €์žฅ, ๋งคํ•‘ ๋ฐ ์ฟผ๋ฆฌํ•˜๋Š” NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋…ธ๋“œ์™€ ์—์ง€์˜ ๋ชจ์Œ์œผ๋กœ, ๊ฐ ๋…ธ๋“œ๋Š” ์—”ํ„ฐํ‹ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ๊ฐ ์—์ง€๋Š” ๋…ธ๋“œ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ƒํ˜ธ ์—ฐ๊ฒฐ ๋ถ„์„์„ ์œ„ํ•œ ์ธ๊ธฐ๊ฐ€ ๋†’์•„์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํšŒ์‚ฌ๋Š” ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์…œ ๋ฏธ๋””์–ด์—์„œ ๊ณ ๊ฐ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์ด๋‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ข…์ข… ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ„์„์„ ์œ„ํ•œ ์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ํ”„๋กœํ† ์ฝœ์ธ SPARQL์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SPARQL์—๋Š” SQL์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉฐ ์˜๋ฏธ๋ก ์  ๋ถ„์„, ๊ด€๊ณ„ ๊ฒ€์‚ฌ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ์™€ ๊ตฌ์กฐํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋Œ€ํ•œ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. SPARQL์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ์ •๋ณด๋Š” ๋ฌผ๋ก  FOAF(friend-of-a-friend) ๊ด€๊ณ„, PageRank ๋ฐ ์ตœ๋‹จ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋งˆ์ด๋‹ : ๋ฐ์ดํ„ฐ ์•ˆ์—์„œ ์ฒด๊ณ„์ ์ด๊ณ  ์ž๋™์ ์œผ๋กœ ํ†ต๊ณ„์  ๊ทœ์น™์ด๋‚˜ ํŒจํ„ด์„ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ

FOAF(friend-of-a-friend) : ์‚ฌ๋žŒ๊ณผ ์‚ฌ๋žŒ๊ฐ„์˜ ๊ด€๊ณ„(Relationship)๋ฅผ ์˜๋ฏธ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ RDF(์›น์ƒ์˜ ์ž์›์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ XML ๊ทœ๊ฒฉ) ๋ช…์„ธ

PageRank : ํŽ˜์ด์ง€์˜ ์ค‘์š”๋„๋ฅผ ์›นํŽ˜์ด์ง€ ๊ฐ„ ์—ฐ๊ฒฐ๊ด€๊ณ„์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์ธก์ •ํ•œ ์ง€ํ‘œ

Database ์šฉ์–ด

Database์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”(Table)

table

  • ํ–‰๊ณผ ์—ด๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์„ ํ…Œ์ด๋ธ”
  • ์—‘์…€์˜ ํ‘œ์™€ ์œ ์‚ฌํ•œ ๋ชจ์–‘
  • ์ผ๋ฐ˜์ ์ธ Database์—์„œ๋Š” ํ–‰๊ณผ ์—ด๋งŒ ์žˆ์œผ๋ฉด ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ•˜์ง€๋งŒ, ๊ด€๊ณ„ํ˜• Database์—์„œ๋Š” ์—ฌ๊ธฐ์— ํŠน๋ณ„ํ•œ ์ œ์•ฝ์„ ์ถ”๊ฐ€ํ•ด์„œ ๋ฆด๋ ˆ์ด์…˜(Relation)์ด๋ผ๊ณ  ๋ถ€๋ฆ„
  • ์•„๋ž˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ํ…Œ์ด๋ธ”๋งŒ์ด ๋ฆด๋ ˆ์ด์…˜์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ฆด๋ ˆ์ด์…˜์€ ํ…Œ์ด๋ธ”์ด์ง€๋งŒ, ๋ชจ๋“  ํ…Œ์ด๋ธ”์ด ๋ฆด๋ ˆ์ด์…˜์ธ๊ฑด ์•„๋‹˜
  1. ๋ชจ๋“  ๊ฐ’์€ ์œ ์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง
  2. ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—์„œ ์ค‘๋ณต๋˜๋Š” ํ–‰์ด ์กด์žฌํ•˜๋ฉด ์•ˆ๋จ

ํ–‰(Row == Record == Tuple)

  • ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ์ค‘ ๊ฐ€๋กœ๋กœ ๋ฌถ์€ ๋ฐ์ดํ„ฐ์…‹์„ ์˜๋ฏธ (column ๊ฐ’์˜ ์กฐํ•ฉ)
  • ์ผ๋ฐ˜์ ์œผ๋กœ ํ–‰์€ ํ•œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ๋ฆด๋ ˆ์ด์…˜์—์„œ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ
  • ํ–‰์˜ ์ˆ˜๋Š” Cardinality๋ผ๊ณ  ํ•จ

์—ด(Column == Attribute)

  • ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ์ค‘ ์„ธ๋กœ๋กœ ๋ฌถ์€ ๋ฐ์ดํ„ฐ์…‹์„ ์˜๋ฏธ(๋‹จ์ผ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ)
  • ํŠน์ • ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ฐ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์—ด์€ ๊ทธ ํ…Œ์ด๋ธ”์˜ ์†์„ฑ์„ ์˜๋ฏธํ•˜๋ฉฐ ์—ด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ’๋“ค์€ ๊ฐ™์€ ๋„๋ฉ”์ธ(Domain)์œผ๋กœ ๋˜์–ด ์žˆ์Œ
  • ์—ด์˜ ์ˆ˜๋Š” Degree๋ผ๊ณ  ํ•จ

๋„๋ฉ”์ธ(Domain)

  • Database์—์„œ ํ•„๋“œ(Field)์— ์ฑ„์›Œ์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ์ง‘ํ•ฉ(๋ฒ”์œ„)
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„๋ฉ”์ธ์ด 1์—์„œ 10์‚ฌ์ด์˜ ์ •์ˆ˜์ธ ์†์„ฑ์˜ ํ•„๋“œ์— 11์ด๋‚˜ -1์ฒ˜๋Ÿผ ๋„๋ฉ”์ธ์„ ๋ฒ—์–ด๋‚˜๋Š” ๊ฐ’ ๋˜๋Š” "๊ณ ์–‘์ด"์ฒ˜๋Ÿผ ์•„์˜ˆ ์ž๋ฃŒํ˜•์ด ๋‹ค๋ฅธ ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†์Œ

ํ•„๋“œ(Field)

  • ํ–‰๊ณผ ์—ด์˜ ๊ต์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๊ณ , ์—†์„ ๋•Œ๋Š” NULL๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

์Šคํ‚ค๋งˆ(Schema)

  • Database์˜ ๊ตฌ์กฐ๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ๊ธฐ์ˆ ํ•œ ๊ฒƒ์„ ๋งํ•จ
  • ๊ตฌ์ฒด์ ์œผ๋กœ Database๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ์˜ ํฌ๊ธฐ, ํ‚ค์˜ ์ •์˜, ๋ ˆ์ฝ”๋“œ ๊ฐ„์˜ ๊ด€๊ณ„ ๋“ฑ์„ ์ •์˜ํ•œ ๊ฒƒ์„ ๋งํ•จ
  • ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์— ๋”ฐ๋ผ ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ, ๊ฐœ๋… ์Šคํ‚ค๋งˆ, ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ๋กœ ๊ตฌ๋ถ„
  • DBMS๋Š” ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ์— ๋ช…์„ธ๋œ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ๊ฐœ๋… ์Šคํ‚ค๋งˆ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์ด๋ฅผ ๋‹ค์‹œ ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜

์™ธ๋ถ€ ์Šคํ‚ค๋งˆ

  • ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ ์ •์˜ํ•œ Database์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ๋งํ•จ
  • ๋ฐ์ดํ„ฐ๋“ค์„ ์–ด๋–ค ํ˜•์‹, ๊ตฌ์กฐ, ํ™”๋ฉด์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ๋ช…์„ธ๋ฅผ ๋งํ•˜๋ฉฐ ํ•˜๋‚˜์˜ Database์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ
  • ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์งˆ์˜์–ด๋ฅผ ์ด์šฉํ•ด DB๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ DB์— ์ ‘๊ทผ

์‚ฌ์šฉ ์ฃผ์ฒด๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋”ฐ๋ผ์„œ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” Database๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ด€์ ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, SELECT ์ฟผ๋ฆฌ๋ฅผ ๋˜์กŒ์„ ๋•Œ, ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ‘œ๋ฅผ ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. (ํ•˜์ง€๋งŒ ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ๊ฐ€ ์กฐํšŒ๋œ ๊ฒฐ๊ณผ๊ฐ’์„ ์˜๋ฏธ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.)

๊ฐœ๋… ์Šคํ‚ค๋งˆ

  • ์กฐ์ง์ฒด ์ „์ฒด๋ฅผ ๊ด€์žฅํ•˜๋Š” ์ž…์žฅ์—์„œ DB๋ฅผ ์ •์˜ํ•œ ์Šคํ‚ค๋งˆ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • DB์— ๋Œ€ํ•œ ๋ชจ๋“  ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ˆ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Database์— ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋ฉฐ, ํ†ต์ƒ ์Šคํ‚ค๋งˆ๋ผ๊ณ  ํ•˜๋ฉด ๊ฐœ๋… ์Šคํ‚ค๋งˆ๋ฅผ ์ผ์ปซ๋Š”๋‹ค.

DA๊ฐ€ ์„ค๊ณ„ํ•œ DB ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ERD(Entity Relationship Diagram)๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ

  • Database๊ฐ€ ์–ด๋–ป๊ฒŒ ์ €์žฅ ์žฅ์น˜์— ์ €์žฅ๋  ์ง€์— ๋Œ€ํ•œ ๋ช…์„ธ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ ์žฅ์น˜์™€ Database ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋ฏ€๋กœ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‚˜ ์‹œ์Šคํ…œ ์„ค๊ณ„์ž๊ฐ€ ๋ณด๋Š” ๊ด€์ ์˜ ์Šคํ‚ค๋งˆ์ž…๋‹ˆ๋‹ค.

DA๊ฐ€ ์•„๋‹Œ ์˜ค๋ผํด์‚ฌ์˜ Database ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ์˜ ์Šคํ‚ค๋งˆ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‚ค(Key)

key table

ํ‚ค๋Š” ๊ฒ€์ƒ‰, ์ •๋ ฌ ์‹œ Tuple์„ ๊ตฌ๋ถ„ํ•  ๋•Œ, ๊ธฐ์ค€์ด ๋˜๋Š” Attribute๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

ํ›„๋ณดํ‚ค(Candidate Key)

Tuple์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” Attribute์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ๋ณธํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ๋“ค์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ 2๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์œ ์ผ์„ฑ : Key๋กœ ํ•˜๋‚˜์˜ Tuple์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ตœ์†Œ์„ฑ : ๊ผญ ํ•„์š”ํ•œ ์†์„ฑ์œผ๋กœ๋งŒ ๊ตฌ์„ฑ

๋ชจ๋“  ๋ฆด๋ ˆ์ด์…˜์€ ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ›„๋ณด ํ‚ค๋ฅผ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. (๊ธฐ๋ณธํ‚ค๊ฐ€ ํ•„์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ)

<ํ•™์ƒ> ๋ฆด๋ ˆ์ด์…˜์—์„œ ํ•™๋ฒˆ์ด๋‚˜ ์ฃผ๋ฏผ๋ฒˆํ˜ธ๋Š” ๋‹ค๋ฅธ ๋ ˆ์ฝ”๋“œ๋ฅผ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ›„๋ณดํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋“ค์„ ํ›„๋ณดํ‚ค๋ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธํ‚ค(Primary Key)

  • ํ›„๋ณดํ‚ค ์ค‘ ์„ ํƒํ•œ Key๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • ํ•œ ๋ฆด๋ ˆ์ด์…˜์—์„œ ๊ธฐ๋ณธํ‚ค๋กœ ํŠน์ • ํŠœํ”Œ์„ ์œ ์ผํ• ๊ฒŒ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • NULL ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๊ณ , ์ค‘๋ณต๋  ์ˆ˜ ์—†๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

<ํ•™์ƒ> ๋ฆด๋ ˆ์ด์…˜์—๋Š” ํ•™๋ฒˆ์ด๋‚˜ ์ฃผ๋ฏผ ๋ฒˆํ˜ธ๊ฐ€ ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ณ , <์ˆ˜๊ฐ•> ๋ฆด๋ ˆ์ด์…˜์—๋Š” ํ•™๋ฒˆ+๊ณผ๋ชฉ๋ช…์œผ๋กœ ์กฐํ•ฉํ•ด์•ผ ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. <์ˆ˜๊ฐ•> ๋ฆด๋ ˆ์ด์…˜์—์„œ๋Š” ํ•™๋ฒˆ ์†์„ฑ๊ณผ ๊ณผ๋ชฉ๋ช… ์†์„ฑ์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ธฐ๋ณธํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŠœํ”Œ๋“ค๊ณผ ๊ตฌ๋ณ„๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋Œ€์ฒดํ‚ค( == ๋ณด์กฐํ‚ค, Alternate Key)

ํ›„๋ณดํ‚ค ๋‘˜ ์ด์ƒ์ผ ๋•Œ, ๊ธฐ๋ณธํ‚ค๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํ‚ค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

<ํ•™์ƒ> ๋ฆด๋ ˆ์ด์…˜์—์„œ ํ•™๋ฒˆ์„ ๊ธฐ๋ณธํ‚ค๋กœ ์ •ํ•˜๋ฉด ์ฃผ๋ฏผ๋ฒˆํ˜ธ๋Š” ๋Œ€์ฒดํ‚ค๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์Šˆํผํ‚ค(Super Key)

  • ํ•œ ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์— ์žˆ๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ‚ค๋กœ์„œ ๋ฆด๋ ˆ์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ํŠœํ”Œ ์ค‘ ์Šˆํผํ‚ค๋กœ ๊ตฌ์„ฑ๋œ ์†์„ฑ์˜ ์ง‘ํ•ฉ๊ณผ ๋™์ผํ•œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์œ ์ผ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€๋งŒ, ์ตœ์†Œ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ํ‚ค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

<ํ•™์ƒ> ๋ฆด๋ ˆ์ด์…˜์—์„œ๋Š” ํ•™๋ฒˆ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ, ํ•™๋ฒˆ+์ฃผ๋ฏผ๋ฒˆํ˜ธ, ํ•™๋ฒˆ+์ฃผ๋ฏผ๋ฒˆํ˜ธ+์„ฑ๋ช… ๋“ฑ์œผ๋กœ ์Šˆํผํ‚ค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ์—ฌ๊ธฐ์„œ ์ตœ์†Œ์„ฑ์„ ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•œ๋‹ค๋Š” ๋ง์€ ํ•™๋ฒˆ+์ฃผ๋ฏผ๋ฒˆํ˜ธ+์„ฑ๋ช…์ด ์Šˆํผํ‚ค์ธ ๊ฒฝ์šฐ, 3๊ฐœ์˜ ์†์„ฑ ์กฐํ•ฉ์„ ํ†ตํ•ด ๋‹ค๋ฅธ ํŠœํ”Œ๊ณผ ๊ตฌ๋ณ„์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์„ฑ๋ช… ๋‹จ๋…์ ์œผ๋กœ ์Šˆํผํ‚ค๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋Š” ๊ตฌ๋ณ„์ด ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์†Œ์„ฑ์„ ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์™ธ๋ž˜ํ‚ค(Foreign key)

  • ๊ด€๊ณ„(Relation)๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ๋ฆด๋ ˆ์ด์…˜ R1,R2์—์„œ ๋ฆด๋ ˆ์ด์…˜ R1์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋ฆด๋ ˆ์ด์…˜ R2์˜ ๊ธฐ๋ณธํ‚ค์™€ ๊ฐ™์€ R1 ๋ฆด๋ ˆ์ด์…˜์˜ ์†์„ฑ์„ ์™ธ๋ž˜ํ‚ค๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • ์™ธ๋ž˜ํ‚ค๋Š” ์ฐธ์กฐ๋˜๋Š” ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค์™€ ๋Œ€์‘๋˜์–ด ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์— ์ฐธ์กฐ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ๋„๊ตฌ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • ์™ธ๋ž˜ํ‚ค๋กœ ์ง€์ •๋˜๋ฉด ์ฐธ์กฐ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค์— ์—†๋Š” ๊ฐ’์€ ์ž…๋ ฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

<์ˆ˜๊ฐ•> ๋ฆด๋ ˆ์ด์…˜์ด <ํ•™์ƒ> ๋ฆด๋ ˆ์ด์…˜์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, <ํ•™์ƒ> ๋ฆด๋ ˆ์ด์…˜์˜ ํ•™๋ฒˆ์€ ๊ธฐ๋ณธํ‚ค์ด๊ณ , <์ˆ˜๊ฐ•> ๋ฆด๋ ˆ์ด์…˜์˜ ํ•™๋ฒˆ์€ ์™ธ๋ž˜ํ‚ค์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ์ž…์žฅ์—์„œ ์†์„ฑ์€ ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋˜๊ธฐ๋„ ํ•˜๊ณ , ์™ธ๋ž˜ํ‚ค๊ฐ€ ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

Database์˜ ์„ฑ๋Šฅ?

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://gyoogle.dev/blog/

https://github.com/WeareSoft/tech-interview/blob/master/contents/db.md

https://coding-factory.tistory.com/77

https://raisonde.tistory.com/entry/%EC%8B%9C%ED%97%98%EB%8C%80%EB%B9%84-%EC%99%B8%EB%B6%80-%EC%8A%A4%ED%82%A4%EB%A7%88-%EA%B0%9C%EB%85%90-%EC%8A%A4%ED%82%A4%EB%A7%88-%EB%82%B4%EB%B6%80-%EC%8A%A4%ED%82%A4%EB%A7%88%EB%A5%BC-%EA%B5%AC%EB%B6%84%ED%95%98%EC%9E%90

https://searchdatamanagement.techtarget.com/definition/database

https://www.redhat.com/ko/topics/cloud-computing/public-cloud-vs-private-cloud-and-hybrid-cloud

https://ko.wikipedia.org/wiki/%EC%9D%B8%EB%A9%94%EB%AA%A8%EB%A6%AC_%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4

https://dheldh77.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%B1%EB%8A%A5-%EA%B0%9C%EC%84%A0

https://namu.wiki/w/%EC%9D%B8%20%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4