Home > SQL > 2024 > ๐Ÿ’พ[Database] DBMS์˜ ๊ฐœ์š”.

๐Ÿ’พ[Database] DBMS์˜ ๊ฐœ์š”.
Database

๐Ÿ’พ[Database] DBMS์˜ ๊ฐœ์š”.

1๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •์˜์™€ ํŠน์ง•.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต์œ ํ•˜๊ณ  ๋™์‹œ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ โ€˜๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉโ€™์ด๋ผ๊ณ  ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  DBMS(DataBase Management System)๋Š” ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌ.์šด์˜ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” MS์˜ ์—‘์…€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์„ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— DBMS์™€ ๋น„์Šทํ•ด ๋ณด์ด์ง€๋งŒ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ DBMS๋ผ๊ณ  ๋ถ€๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” โ€˜๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๊ณต๊ฐ„โ€™ ์ž์ฒด๋ฅผ ์˜๋ฏธํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
  • MySQL์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ž๋ฃŒ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋””์Šคํฌ ๊ณต๊ฐ„(์ฃผ๋กœ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋จ)์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
  • DBMS๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ DBMS๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋™์‹œ์— ์ ‘์†ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ฆ‰, DBMS์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ง‘์ค‘ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

DBMS ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ค‘์š”ํ•œ ํŠน์ง•.

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

2๏ธโƒฃ DBMS์˜ ๋ถ„๋ฅ˜.

  • DBMS๋Š” ํฌ๊ฒŒ ๊ณ„์ธตํ˜•(Hierarchical), ๋งํ˜•(network), ๊ด€๊ณ„ํ˜•(relational), ๊ฐ์ฒด์ง€ํ–ฅํ˜•(object-oriented), ๊ฐ์ฒด๊ด€๊ณ„ํ˜•(object-relational)์œผ๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค.
  • ํ˜„์žฌ๋Š” ๊ด€๊ณ„ํ˜• DBMS(Relational DBMS)๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์ผ๋ถ€ ๋ฉ…ํ‹ฐ๋ฏธ๋””์–ด ๋ถ„์•ผ์—์„œ๋Š” ๊ฐ์ฒด์ง€ํ–ฅํ˜•(object-oriented)๋‚˜ ๊ฐ์ฒด๊ด€๊ณ„ํ˜•(object-relational) DBMS๊ฐ€ ํ™œ์šฉ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
  • MySQL์„ ๋น„๋กฏํ•ด Oracle, DB2, SQL Server, Access ๋“ฑ์€ ๋ชจ๋‘ ๊ด€๊ณ„ํ˜• DBMS์ž…๋‹ˆ๋‹ค.

๊ณ„์ธตํ˜• DBMS(Hierarchical DBMS)

  • 1960๋…„๋Œ€์— ์ฒ˜์Œ ๋“ฑ์žฅํ•œ DBMS ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.

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

๋งํ˜• DBMS(Network DBMS)

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

๊ด€๊ณ„ํ˜• DBMS

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

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

TIP: ํ…Œ์ด๋ธ”์€ ๋ฆด๋ ˆ์ด์…˜(Relation), ์—”ํ‹ฐํ‹ฐ(Entity) ๋“ฑ์œผ๋กœ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค.

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

3๏ธโƒฃ SQL์˜ ๊ฐœ์š”

  • SQL์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋กœ โ€˜์—์Šคํ์—˜โ€™ ๋˜๋Š” โ€˜์‹œํ€„โ€™์ด๋ผ๊ณ  ์ฝ์Šต๋‹ˆ๋‹ค.
  • ๊ด€๊ณ„ํ˜• DBMS(๊ทธ์ค‘์—์„œ๋„ MySQL)๋ฅผ ๋ฐฐ์šฐ๋ ค๋ฉด SQL์„ ์ตํžˆ๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.
  • SQL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•˜๋Š” โ€˜์–ธ์–ดโ€™๋กœ, ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(C, C++, Java, C# ๋“ฑ)์™€ ๋‹ค๋ฅธ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

SQL์˜ ํŠน์ง•.

  • DBMS ์ œ์ž‘ ํšŒ์‚ฌ์™€ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค.
    • ๋ชจ๋“  DBMS ์ œ์ž‘ ํšŒ์‚ฌ์— ํ‘œ์ค€ SQL์ด ๊ณต๊ฐœ๋˜์–ด ๊ฐ ํšŒ์‚ฌ๋Š” ์ด ํ‘œ์ค€ SQL์— ๋งž์ถฐ DBMS๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ SQL์€ ๋Œ€๋ถ€๋ถ„์˜ DBMS ์ œํ’ˆ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์œผ๋กœ์˜ ์ด์‹์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    • SQL์€ ์„œ๋ฒ„์šฉ, ๊ฐœ์ธ์šฉ, ํœด๋Œ€์šฉ ์žฅ๋น„ ๋“ฑ ์šด์˜๋˜๋Š” DBMS๋งˆ๋‹ค ์ƒํ˜ธ ํ˜ธํ™˜์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.
    • ํ•œ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๋˜ SQL์„ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์œผ๋กœ ์ด์‹ํ•˜๋Š” ๋ฐ ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ํ‘œ์ค€์ด ๊ณ„์† ๋ฐœ์ „ํ•ฉ๋‹ˆ๋‹ค.
    • SQL์€ SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011 ๋“ฑ์œผ๋กœ ๊ฐœ์„ ๋œ ํ‘œ์ค€์•ˆ์ด ๊ณ„์† ๋ฐœํ‘œ๋˜์—ˆ์œผ๋ฉฐ, ์ง€๊ธˆ๋„ ๊ฐœ์„ ๋œ ์•ˆ์ด ๊พธ์ค€ํžˆ ์—ฐ๊ตฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€ํ™”์‹ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.
    • ๊ธฐ์กด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ, ์ปดํŒŒ์ผ ๋ฐ ๋””๋ฒ„๊น…, ์‹คํ–‰ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ๋งŒ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ SQL์€ ๋ฐ”๋กœ ์งˆ์˜ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ๋Œ€ํ™”์‹ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • SQL์€ ๋ถ„์‚ฐํ˜• ๊ตฌ์กฐ์ธ ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ํด๋ผ์ด์–ธํŠธ์—์„œ ์งˆ์˜๋ฅผ ํ•˜๋ฉด ์„œ๋ฒ„์—์„œ ๊ทธ ์งˆ์˜๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

  • SQL์„ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•  ์ ์€, ๋ชจ๋“  DBMS ์ œํ’ˆ์˜ SQL ๋ฌธ์ด ์™„๋ฒฝํ•˜๊ฒŒ ๋™์ผํ•˜์ง€๋Š” ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๋งŽ์€ ํšŒ์‚ฌ๊ฐ€ ๋˜๋„๋ก ํ‘œ์ค€ SQL์„ ์ค€์ˆ˜ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์ง€๋งŒ ๊ฐ ํšŒ์‚ฌ์˜ DBMS๋งˆ๋‹ค ํŠน์ง•์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์‹ค์ ์œผ๋กœ ์™„์ „ํžˆ ํ†ต์ผ๋˜๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
  • ๊ฐ ํšŒ์‚ฌ๋Š” ๊ฐ€๊ธ‰์  ํ‘œ์ค€ SQL์„ ์ง€ํ‚ค๋ฉด์„œ๋„ ์ž์‹ ์˜ ์ œ์ถค์— ํŠนํ™”๋œ SQL์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ์˜ค๋ผํฐ์—์„œ๋Š” PL/SQL, SQL Server์—์„œ๋Š” T-SQL์ด๋ผ ๋ถ€๋ฅด๊ณ  MySQL์—์„œ๋Š” ๊ทธ๋ƒฅ SQL์ด๋ผ ์ผ์ปซ์Šต๋‹ˆ๋‹ค.

  • ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ฐ ํšŒ์‚ฌ์˜ ์ œํ’ˆ์€ ๋ชจ๋‘ ํ‘œ์ค€ SQL์„ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ž๊ธฐ ์ œํ’ˆ์˜ ํŠน์„ฑ์— ๋งž์ถ˜ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” SQL ๋ฌธ๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.