๐ŸŒฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB)์˜ DBMS!

sh_awtylol4ยท2022๋…„ 6์›” 17์ผ
0

๐ŸŒฑ Today I Learn

๋ชฉ๋ก ๋ณด๊ธฐ
3/16
post-thumbnail

๐Ÿ’พ DBMS๋ž€?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ '๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ'์ด๋ผ๊ณ  ์ •์˜ํ•œ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ DBMS(Dataase Management System)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—ฌ๋Ÿฌ ๋ช…์˜ ์‚ฌ์šฉ์ž๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ณต์œ ํ•˜๊ณ  ๋™์‹œ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ DBMS์˜ ์ข…๋ฅ˜!

DBMS์™€ ๊ฐ™์€ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํŠน์ • ๋ชฉ์ ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋„ ์†Œํ”„ํŠธ์šฐใ…์–ด, ์ฆ‰ DBMS๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋Œ€ํ‘œ์ ์œผ๋กœ MySQL, ์˜ค๋ผํด(Oracle), SQL ์„œ๋ฒ„, MariaDB ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ๊ฐ์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ํŠน์ง•์ด ๋‹ค๋ฅด์ง€๋งŒ ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ DBMS์˜ ๋ถ„๋ฅ˜!

DBMS์˜ ์œ ํ˜•์€ ๊ณ„์ธตํ˜•(Hierarchical), ๋งํ˜•(Network), ๊ด€๊ณ„ํ˜•(Relational), ๊ฐ์ฒด์ง€ํ–ฅํ˜•(Object-Oriented), ๊ฐ์ฒด๊ด€๊ณ„ํ˜•(Object-Relational) ๋“ฑ์œผ๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์‚ฌ์šฉ๋˜๋Š” DBMS ์ค‘์—๋Š” ๊ด€๊ณ„ํ˜• DBMS๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•˜๋ฉฐ, MySQL๋„ ๊ด€๊ณ„ํ˜• DBMS์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๐Ÿค– ๊ณ„์ธตํ˜• DBMS

๊ณ„์ธตํ˜• DBMS(Hierarchical DBMS)๋Š” ์ฒ˜์Œ์œผ๋กœ ๋“ฑ์žฅํ•œ DBMS ๊ฐœ๋…์œผ๋กœ 1960๋…„๋Œ€์— ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ฐ ๊ณ„์ธต์€ ํŠธ๋ฆฌtree ํ˜•ํƒœ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์‚ฌ์žฅ 1๋ช…์— ์ด์‚ฌ 3๋ช…์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๊ณ„์ธตํ˜• DBMS์˜ ๋ฌธ์ œ๋Š” ์ฒ˜์Œ ๊ตฌ์„ฑ์„ ์™„๋ฃŒํ•œ ํ›„์— ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ๊นŒ๋‹ค๋กญ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์›์„ ์ฐพ์•„๊ฐ€๋Š” ๊ฒƒ์ด ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฌ๋ฌด2ํŒ€์—์„œ ํšŒ๊ณ„ํŒ€์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์žฌ๋ฌด์ด์‚ฌ โ†’ ์‚ฌ์žฅ โ†’ ํšŒ๊ณ„์ด์‚ฌ โ†’ ํšŒ๊ณ„ํŒ€๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

๐Ÿ‘พ ๋งํ˜• DBMS

๋งํ˜• DBMS(Network DBMS)๋Š” ๊ณ„์ธตํ˜• DBMS์˜ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด 1970๋…„๋Œ€์— ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ํ•˜์œ„์— ์žˆ๋Š” ๊ตฌ์„ฑ์›๋ผ๋ฆฌ๋„ ์—ฐ๊ฒฐ๋œ ์œ ์—ฐํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฌ๋ฌด2ํŒ€์—์„œ ๋ฐ”๋กœ ํšŒ๊ณ„ํŒ€์œผ๋กœ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งํ˜• DBMS๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋ ค๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ชจ๋“  ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด์•ผ๋งŒ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์—ญ์‹œ ์ง€๊ธˆ์€ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

๐Ÿ‘ฝ ๊ด€๊ณ„ํ˜• DBMS

๊ด€๊ณ„ํ˜• DBMS(Relational DBMS)๋Š” ์ค„์—ฌ์„œ RDBMS๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. MySQL๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋Œ€๋ถ€๋ถ„์˜ DBMS๊ฐ€ RDBMS ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. RDBMS์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ…Œ์ด๋ธ”(table)์ด๋ผ๋Š” ์ตœ์†Œ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ด ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์—ด(column)๊ณผ ํ–‰(row)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

๐Ÿ’พ SQL: DBMS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด!

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

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

๋‹ค์Œ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด 3๊ฐ€์ง€ DBMS ์ œํ’ˆ(์˜ค๋ผํด, SQL ์„œ๋ฒ„, MySQL)์ด ๋ชจ๋‘ ํ‘œ์ค€ SQL์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ‘œ์ค€ SQL์„ ์ตํžˆ๋ฉด ๋Œ€๋ถ€๋ถ„์˜ DBMS์— ๊ณตํ†ต์ ์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ DBMS๋Š” ์ถ”๊ฐ€๋กœ ์ž์‹ ๋งŒ์˜ ๊ธฐ๋Šฅ๋„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝ๋œ SQL์„ ์˜ค๋ผํด์€ PL/SQL, SQL์„œ๋ฒ„๋Š” T-SQL, MySQL์€ SQL๋กœ ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

profile
ํฌ๊ธฐํ•˜๋Š” ๊ทธ ์ˆœ๊ฐ„์ด ๋ฐ”๋กœ ์‹œํ•ฉ์ข…๋ฃŒ์˜ˆ์š”...

0๊ฐœ์˜ ๋Œ“๊ธ€