Home > 2024 > Database > ๐Ÿ’พ[Database] DBMS์˜ ๋ถ„๋ฅ˜

๐Ÿ’พ[Database] DBMS์˜ ๋ถ„๋ฅ˜
Database

DBMS์˜ ๋ถ„๋ฅ˜.

โ€œDBMSโ€ ๋Š” ํฌ๊ฒŒ ๊ณ„์ธตํ˜•(hierarchical), ๋งํ˜•(network), ๊ด€๊ณ„ํ˜•(relational), ๊ฐ์ฒด์ง€ํ–ฅํ˜•(object-oriented), ๊ฐ์ฒด๊ด€๊ณ„ํ˜•(object-relational) ์œผ๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค.

  • โ€œ๊ณ„์ธตํ˜•(Hierachical) DBMSโ€
    • 1960๋…„๋Œ€์— ์ฒ˜์Œ ๋“ฑ์žฅํ•œ DBMS ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.
    • ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ ๋ณด๋“ฏ์ด ๊ฐ ๊ณ„์ธต์ด ํŠธ๋ฆฌ ํ˜•ํƒœ๋ฅผ ๋ ๊ณ  1:N ๊ด€๊ณ„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.
      • ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์žฅ 1๋ช…์— ๋ถ€์„œ 3๊ฐœ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ตฌ์กฐ๊ฐ€ ๊ณ„์ธตํ˜• ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.
    • ๊ณ„์ธตํ˜• DBMS๋Š” ๊ตฌ์ถ•ํ•œ ํ›„ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค.
    • ์ฃผ์–ด์ง„ ์ƒํƒœ์—์„œ ๊ฒ€์ƒ‰์€ ๋น ๋ฅด๋‚˜ ์ ‘๊ทผ์˜ ์œ ์—ฐ์„ฑ์ด ๋ถ€์กฑํ•˜์—ฌ ์ž„์˜ ๊ฒ€์ƒ‰ ์‹œ ์–ด๋ ค์›€์ด ์žˆ๋Š” ๊ฒƒ์ด ๋‹จ์ ์ž…๋‹ˆ๋‹ค.

  • โ€œ๋งํ˜•(network) DBMSโ€
    • ๊ณ„์ธตํ˜•(Hierachical) DBMS์˜ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด 1970๋…„๋Œ€์— ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • 1:1, 1:N, N:M(๋‹ค๋Œ€๋‹ค) ๊ด€๊ณ„๊ฐ€ ์ง€์›๋˜์–ด ํšจ๊ณผ์ ์ด๊ณ  ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ถ”์ถœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ๊ทธ๋Ÿฌ๋‚˜ ๋งค์šฐ ๋ณต์žกํ•œ ๋‚ด๋ถ€ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ชจ๋“  ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด์•ผ๋งŒ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • ๊ด€๊ณ„ํ˜•(Relational) DBMS
    • 1969๋…„ ์—๋“œ๊ฑฐ F.์ฝ”๋“œ(Edgar F. Codd)๊ฐ€ ์ˆ˜ํ•™ ๋ชจ๋ธ์— ๊ทผ๊ฑฐํ•˜์—ฌ ๊ณ ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ด€๊ณ„ํ˜•(Relational) DBMS์˜ ํ•ต์‹ฌ ๊ฐœ๋…์€ โ€˜๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ…Œ์ด๋ธ”(table)โ€™์ด๋ผ๋Š” ์ตœ์†Œ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์—ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    • ๊ด€๊ณ„ํ˜• DBMS์—์„œ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
      • ํ…Œ์ด๋ธ”์ด๋ผ๋Š” ๊ตฌ์กฐ๋Š” ๊ด€๊ณ„ํ˜• DBMS์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ์ค‘์š”ํ•œ ๊ตฌ์„ฑ์œผ๋กœ, ํ…Œ์ด๋ธ”์„ ์ž˜ ์ดํ•ดํ•˜๋ฉด ๊ด€๊ณ„ํ˜• DBMS์˜ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ์„ ์ดํ•ดํ–ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.
    • ๊ด€๊ณ„ํ˜• DBMS์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์— ๋‚˜๋ˆ„์–ด ์ €์žฅํ•˜๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๋ฅผ ์ค„์ด๊ณ  ๋ฐ์ดํ„ฐ ์ €์žฅ์˜ ํšจ์œจ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
      • ์ด๋ ‡๊ฒŒ ๋‚˜๋‰œ ํ…Œ์ด๋ธ”์˜ ๊ด€๊ณ„๋ฅผ โ€œ๊ธฐ๋ณธํ‚ค(Primary Key, PK)โ€ ์™€ โ€œ์™ธ๋ž˜ํ‚ค(Foreign Key, FK)โ€ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งบ์Œ์œผ๋กœ์จ ๋‘ ํ…Œ์ด๋ธ”์„ ๋ถ€๋ชจ์™€ ์ž์‹ ๊ด€๊ณ„๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค.
      • ๊ทธ๋ฆฌ๊ณ  ๋ถ€๋ชจ์™€ ์ž์‹ ๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋œ ํ…Œ์ด๋ธ”์„ ์„œ๋กœ ์กฐํ•ฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
        • ์ด ๋•Œ โ€œSQL(Structured Query Language, ๊ตฌ์กฐํ™”๋œ ์งˆ์˜ ์–ธ์–ด)โ€ ์˜ ์กฐ์ธ(join) ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์€ ๋ฆด๋ ˆ์ด์…˜(relation), ์—”ํ‹ฐํ‹ฐ(entity) ๋“ฑ์œผ๋กœ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค.

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