Database๋ž€

์ด์ˆ˜ํ˜„ยท2022๋…„ 6์›” 5์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
21/23

๐Ÿ“šDatabase

Database๋ž€?

: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ๊ณต์œ ํ•˜๊ณ  ์‚ฌ์šฉํ•  ๋ชฉ์ ์œผ๋กœ ํ†ตํ•ฉ ๊ด€๋ฆฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.
๋“ฑ์‚ฐํ•  ๋•Œ ๊ธฐ๋ฐ˜์ด ๋ ๋Š” ์žฅ์†Œ๋ฅผ ๋ฒ ์ด์Šค์บ ํ”„๋ผ ํ•˜๋“ฏ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ๋Š” ์šฉ์–ด๋„ 1950๋…„๋Œ€ ๋ฏธ๊ตฌ๊ฒก์„œ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ฐ˜ ์žฅ์†Œ๋ผ๋Š” ๋œป์—์„œ ์ฒ˜์Œ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

DBMS(Database Management System)

DBMS๋ž€ ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๋“ค์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋“ค์„ ์˜๋ฏธํ•œ๋‹ค.

  • DBMS๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ด์ „์—๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€๋‹ค.
  • ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‡ผํ•‘๋ชฐ์˜ ๊ฒฝ์šฐ ๊ณ ๊ฐ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ฃผ๋ฌธ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์ด ์กด์žฌํ•˜์—ฌ ๊ฐ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•ด ๊ด€๋ฆฌํ•œ๋‹ค.
  • ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐ์ดํ„ฐ ์ค‘๋ณต, ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋“ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  • ์ด๋Ÿฌํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํƒ„์ƒํ–ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ณง DBMS๋ผ ํ• ๋งŒํผ DBMS๋Š” ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • DBMS๋ฅผ ์ „๋ฌธ์ ์œผ๋กœ ์šด์˜ํ•˜๋Š” ์ธ๋ ฅ์„ DBA(Database Administrator)๋ผ๊ณ  ํ•œ๋‹ค.

    ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ž€?

    ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ–ˆ์„ ๋•Œ, ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ๋„์ค‘์— ํ•ด๋‹น ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถˆ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

DBMS ํŠน์ง•

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


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


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


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


5. ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์ตœ์†Œํ™”
: DB๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•ด์„œ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

RDBMS๋ž€

RDBMS๋ž€ Relational Database Management System์˜ ์•ฝ์ž๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๋งํ•œ๋‹ค. RDB๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•œ ์ข…๋ฅ˜๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ Column๊ณผ Row์˜ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๊ณ , ํ…Œ์ด๋ธ” ํ˜•ํƒœ์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์ผœ์•ผํ•œ๋‹ค.

  • ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ RDBMS๋Š” Oracle, Mssql, MySql, DB2, PostgreSQL ๋“ฑ์ด ์žˆ๋‹ค

RDBMS ์žฅ์ 

  • ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ(๋ฒ”์šฉ์„ฑ)
  • ๋ฐ์ดํ„ฐ์˜ ๋ถ„๋ฅ˜, ์ •๋ ฌ, ํƒ์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฆ„
  • ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์ฆํ•จ
  • ์ •๊ทœํ™”์— ๋”ฐ๋ฅธ ๊ฐฑ์‹  ๋น„์šฉ ์ตœ์†Œํ™”

RDBMS ๋‹จ์ 

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

์šฉ์–ด ์ •๋ฆฌ

  • Schema(์Šคํ‚ค๋งˆ) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ๋ฐ ํ˜•์‹, ๊ด€๊ณ„ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํ˜•์‹ ์–ธ์–ด๋กœ ๊ธฐ์ˆ ํ•œ ๊ฒƒ. collection of metadata. RDB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ, ๋ฐ์ดํ„ฐ์˜ ๊ณตํ†ต ์†์„ฑ์„ ์‹๋ณ„ํ•˜์—ฌ Column์œผ๋กœ ์ •์˜ํ•˜๊ณ  ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ์ด ๋•Œ, ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ๊ฐ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ, ํ˜•์‹, ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ ์ด๋ฅผ ์Šคํ‚ค๋งˆ๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๋„๋กœ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ์•„๋ž˜๋Š” RDB ํ…Œ์ด๋ธ”์˜ ERD์ด๋‹ค.
  • SQL(Structured Query Language) : SQL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ์ƒ์„ฑ ๋ฐ ์ˆ˜์ •, ํ…Œ์ด๋ธ” ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ, ์กฐํšŒ ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ๋œ ๊ฑฐ์˜ ๋ชจ๋“  ์ž‘์—…์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งˆ๋‹ค ๋ฌธ๋ฒ•์˜ ์ฐจ์ด๋Š” ์กด์žฌํ•˜์ง€๋งŒ, ํ‘œ์ค€ SQL์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— SQL์€ ํ•„์ˆ˜์ ์œผ๋กœ ์ตํ˜€์•ผ ํ•œ๋‹ค.
    - DDL(Data Definition Language) : ๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด
    • DML(Data Manipulation Language) : ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์–ธ์–ด
    • DCL(Data Control Language) : ๋ฐ์ดํ„ฐ ์ œ์–ด ์–ธ์–ด

์ฐธ๊ณ ์ž๋ฃŒ

https://noahlogs.tistory.com/36

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