๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

DB

2์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ - DBMS

 

reference: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ก  2ํŒ


01. DBMS์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

ํŒŒ์ผ ์‹œ์Šคํ…œ(file system)

  • ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ์„ ์ƒ์„ฑ·์‚ญ์ œ·์ˆ˜์ •·๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด
  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•จ

ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ์ 

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

ใ…ก> DBMS๋Š” ๋‹ค ํ•ด๊ฒฐ ๊ฐ€๋Šฅ !

02. DBMS์˜ ์ •์˜

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ DBMS(DataBase Management System)

ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ์‹œ๋œ ์†Œํ”„ํŠธ์›จ์–ด ์กฐ์ง์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ†ตํ•ฉํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•จ.

์ฃผ์š” ๊ธฐ๋Šฅ

  • ์ •์˜ ๊ธฐ๋Šฅ (DDL, definition): ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์กฐ์ž‘ ๊ธฐ๋Šฅ (DML, manipulation): ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ •, ๊ฒ€์ƒ‰ํ•˜๋Š” ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ œ์–ด ๊ธฐ๋Šฅ (DCL, control): ๋ฐ์ดํ„ฐ๋ฅผ ํ•ญ์ƒ ์ •ํ™•ํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

03. DBMS์˜ ์žฅ๋‹จ์ 

์žฅ์ 

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

๋‹จ์ 

  • ๋น„์šฉ์ด ๋งŽ์ด ๋“ ๋‹ค. + ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋“ฑ
  • ๋ฐฑ์—…๊ณผ ํšŒ๋ณต ๋ฐฉ๋ฒ•์ด ๋ณต์žกํ•˜๋‹ค.
  • ์ค‘์•™ ์ง‘์ค‘ ๊ด€๋ฆฌ๋กœ ์ธํ•œ ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค.

04. DBMS์˜ ๋ฐœ์ „ ๊ณผ์ •

1์„ธ๋Œ€ : ๋„คํŠธ์›Œํฌ DBMS, ๊ณ„์ธต DBMS

  • ๋„คํŠธ์›Œํฌ DBMS : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ
    • ์˜ˆ) IDS(Integrated Data Store)
  • ๊ณ„์ธต DBMS : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ
    • ์˜ˆ) IMS(Information Management System)

2์„ธ๋Œ€ : ๊ด€๊ณ„ DBMS (RDBMS)

  • ๊ด€๊ณ„ DBMS : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ
    • ์˜ˆ) ์˜ค๋ผํด(Oracle), MS SQL ์„œ๋ฒ„, ์•ก์„ธ์Šค(Access), ์ธํฌ๋ฏน์Šค(Informix), MySQL

3์„ธ๋Œ€ : ๊ฐ์ฒด์ง€ํ–ฅ DBMS, ๊ฐ์ฒด๊ด€๊ณ„ DBMS

  • ๊ฐ์ฒด์ง€ํ–ฅ DBMS : ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑ
    • ์˜ˆ) ์˜คํˆฌ(O2), ์˜จํˆฌ์Šค(ONTOS), ์ ฌ์Šคํ†ค(GemStone)
  • ๊ฐ์ฒด๊ด€๊ณ„ DBMS : ๊ฐ์ฒด DBMS + ๊ด€๊ณ„ DBMS

4์„ธ๋Œ€ : NoSQL • NewSQL DBMS

  • NoSQL DBMS : ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์ ํ•ฉํ•˜๊ณ  ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚จ
    • ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ฅธ ์‹œ๋Œ€์  ํŒจ๋Ÿฌ๋‹ค์ž„์— ๋”ฐ๋ผ ๋“ฑ์žฅ
    • ์•ˆ์ •์„ฑ๊ณผ ์ผ๊ด€์„ฑ ์œ ์ง€๋ฅผ ์œ„ํ•œ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ํฌ๊ธฐ
    • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด๋‘์ง€ ์•Š๋Š” ์œ ์—ฐ์„ฑ
    • ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌ ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ
    • ์˜ˆ) ๋ชฝ๊ณ ๋””๋น„(MongoDB), H๋ฒ ์ด์Šค(HBase), ์นด์‚ฐ๋“œ๋ผ(Cassandra), ๋ ˆ๋””์Šค(Redis), ๋„ค์˜คํฌ์ œ์ด(Neo4j), ์˜ค๋ฆฌ์—”ํŠธDB(OrientDB) ๋“ฑ
  • NewSQL DBMS: ๊ด€๊ณ„ DBMS์˜ ์žฅ์ + NoSQL์˜ ํ™•์žฅ์„ฑ ๋ฐ ์œ ์—ฐ์„ฑ
    • ์˜ˆ) ๊ตฌ๊ธ€ ์ŠคํŒจ๋„ˆ(Spanner), ๋ณผํŠธDB(VoltDB), ๋ˆ„์˜คDB(NuoDB)