• Home
  • About
    • PI photo

      PI

      Beginner's Blog

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

[DATABASE] DBS(DataBase System)๋ž€?

๐Ÿ“† Created: 2025.04.01 Tue

Reading time ~3 minutes

๋ชฉ์ฐจ

DBS(Database System)

1. DBS๋ž€?

DBS: ๊ธฐ์—… ํ˜น์€ ์กฐ์ง์ด DBMS๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ๋ฐœํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋‹ค.

2. DBS์˜ ๊ตฌ์„ฑ์š”์†Œ

๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ(Data Schema), ๋ฐ์ดํ„ฐ ์–ธ์–ด(Data Language), ์‚ฌ์šฉ์ž(User), ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ(DBMS), ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž(DBA)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

2.1. ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ(Data Schema)

์Šคํ‚ค๋งˆ(Schema): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ(ํ…Œ์ด๋ธ”์˜ ํฌ๋งท)์™€ ์ œ์•ฝ์กฐ๊ฑด์˜ ๋ช…์„ธ๋ฅผ ๊ธฐ์ˆ ํ•œ ๊ฒƒ์ด๋‹ค.
e.g. ์†์„ฑ(Attribute), ๊ฐœ์ฒด(Entity), ๊ด€๊ณ„(Relation), ์ œ์•ฝ์กฐ๊ฑด

์Šคํ‚ค๋งˆ ๋‹ค์ด์–ด๊ทธ๋žจ: ์Šคํ‚ค๋งˆ๋ฅผ ๊ทธ๋ž˜ํ”ฝ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. e.g. E-R Diagram

์Šคํ‚ค๋งˆ๋Š” ์ปดํŒŒ์ผ๋˜์–ด ๋ฐ์ดํ„ฐ ์‚ฌ์ „(์‹œ์Šคํ…œ ์นดํƒˆ๋กœ๊ทธ)์— ์ €์žฅ๋œ๋‹ค.

๋ฐ์ดํ„ฐ ์‚ฌ์ „(Data Dictionary): ์‹œ์Šคํ…œ ๋‚ด์˜ ๋ชจ๋“  ๊ฐ์ฒด๋“ค์— ๋Œ€ํ•œ ์ •์˜๋‚˜ ๋ช…์„ธ์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜๋กํ•œ๋‹ค.(์‹œ์Šคํ…œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)
์‹œ์Šคํ…œ ์นดํƒˆ๋กœ๊ทธ(System Catalog)๋ผ๊ณ ๋„ ํ•œ๋‹ค.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž(DBA)์˜ ๋„๊ตฌ์ด๋‹ค.

์Šคํ‚ค๋งˆ๋Š” ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์— ๋”ฐ๋ผ ๊ฐœ๋…(Conceptual), ์™ธ๋ถ€(External), ๋‚ด๋ถ€(Internal) ์Šคํ‚ค๋งˆ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.
-> ์ผ๋ฐ˜์ ์œผ๋กœ ์Šคํ‚ค๋งˆ๋Š” ๊ฐœ๋… ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์นญํ•œ๋‹ค.

2.1.1. ๊ฐœ๋… ์Šคํ‚ค๋งˆ

๊ธฐ๊ด€ ์ „์ฒด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •์˜ํ•œ๋‹ค.
๊ธฐ๊ด€์˜ ๋ชจ๋“  ์‘์šฉ์— ๋Œ€ํ•œ ํ†ตํ•ฉ๋œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
schema

2.1.2. ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ

๊ฐœ๊ฐœ ๋ถ€์„œ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •์˜ํ•œ๋‹ค.
๊ฐœ๋… ์Šคํ‚ค๋งˆ์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์ด๋‹ค.
์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์ ์ธ ๋ถ€๋ถ„์ด๋‹ค.
subschema

2.1.3. ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ

์ €์žฅ ์žฅ์น˜ ๊ด€์ ์—์„œ ํ‘œํ˜„ํ•œ๋‹ค.
๊ฐœ๋… ์Šคํ‚ค๋งˆ์˜ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.

3๋‹จ๊ณ„ ์Šคํ‚ค๋งˆ์˜ ๋„์ž… ์ด์œ 

DBMS์—์„œ ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ(Data Independency)์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.
3๋‹จ๊ณ„ ์Šคํ‚ค๋งˆ ์‚ฌ์ด์˜ ์‚ฌ์ƒ(Mapping)์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

  • ์™ธ๋ถ€ <-> ๊ฐœ๋… ๋‹จ๊ณ„ ๊ฐ„์˜ ์‚ฌ์ƒ
    ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ์™€ ๊ฐœ๋… ์Šคํ‚ค๋งˆ ๊ฐ„์˜ ๋Œ€์‘ ๊ด€๊ณ„ ์ •์˜ํ•œ๋‹ค.
    ์‘์šฉ ์ธํ„ฐํŽ˜์ด์Šค(Application Interface)
    ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ ์ œ๊ณตํ•œ๋‹ค. * ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋งŒ
    ์Šคํ‚ค๋งˆ๋ฅผ ๋ฐ”๊ฟ”๋„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐ”๊พธ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

  • ๊ฐœ๋… <-> ๋‚ด๋ถ€ ๋‹จ๊ณ„ ๊ฐ„์˜ ์‚ฌ์ƒ
    ๊ฐœ๋… ์Šคํ‚ค๋งˆ์™€ ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ ๊ฐ„์˜ ๋Œ€์‘ ๊ด€๊ณ„ ์ •์˜ํ•œ๋‹ค.
    ์ €์žฅ ์ธํ„ฐํŽ˜์ด์Šค(Storage Interface)
    ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ ์ œ๊ณตํ•œ๋‹ค.
    ์ €์žฅ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊ฟ”๋„ ๊ฐœ๋…์Šคํ‚ค๋งˆ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

2.2. ๋ฐ์ดํ„ฐ ์–ธ์–ด(Data Language)

DBMS์˜ ํ•„์ˆ˜ ๊ธฐ๋Šฅ: ๋ฐ์ดํ„ฐ ์ •์˜(Definition), ๋ฐ์ดํ„ฐ ์กฐ์ž‘(Manipulation), ๋ฐ์ดํ„ฐ ์ œ์–ด(Control)

๋ฐ์ดํ„ฐ ์–ธ์–ด(Data Language): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •์˜, ์กฐ์ž‘, ์ œ์–ด๋ฅผ ์œ„ํ•œ ์–ธ์–ด์ด๋‹ค.

๋ฐ์ดํ„ฐ ์–ธ์–ด์˜ ์ข…๋ฅ˜: ๋ฐ์ดํ„ฐ ์ •์˜์–ด(DDL, Data Definition Language), ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด(DML, Data Manipulation Language), ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด(DCL, Data Control Language)

2.2.1. ๋ฐ์ดํ„ฐ ์ •์˜์–ด(DDL, Data Definition Language)

๋ฐ์ดํ„ฐ ์ •์˜์–ด(DDL): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(ํ…Œ์ด๋ธ”)์˜ ์ •์˜ ๋ฐ ์ˆ˜์ •

์š”์†Œ

  • ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์ •์˜
    ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ, ๊ฐœ๋… ์Šคํ‚ค๋งˆ์˜ ๊ธฐ์ˆ 
    Subschema DDL, Schema DDL
  • ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์ •์˜
    ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ์˜ ๊ธฐ์ˆ 
    ๋ฐ์ดํ„ฐ ์ €์žฅ ์ •์˜์–ด(DSDL, Data Storage Definition Language)

2.2.2. ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด(DML, Data Manipulation Language)

๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด(DML): ์‚ฌ์šฉ์ž(์‘์šฉ ํ”„๋กœ๊ทธ๋žจ)์™€ DBMS ์‚ฌ์ด์˜ ํ†ต์‹  ์ˆ˜๋‹จ, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์—ฐ์‚ฐ(๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰๊ณผ ๊ฐฑ์‹ (์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ •) ์—ฐ์‚ฐ) ์ˆ˜ํ–‰

ํŠน์ง•

  • ๋น„์ ˆ์ฐจ์ (Non-Procedural) ์–ธ์–ด
  • ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ
    ๋…์ž์ , ๋Œ€ํ™”์‹ ์‚ฌ์šฉ ๊ฐ€๋Šฅ(์ปค๋งจ๋“œ ํƒ€์ž…)
    ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์†์— ์‚ฝ์ž…(embedded)๋˜์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
์ ˆ์ฐจ์ (Procedural) ์–ธ์–ด: How to Do๋ฅผ ๋ช…์„ธ, ์ €๊ธ‰์–ด
๋น„์ ˆ์ฐจ์ (Non-Procedural) ์–ธ์–ด: What to Do๋งŒ ๋ช…์„ธ, ๊ณ ๊ธ‰์–ด

๋ฐ์ดํ„ฐ ๋ถ€์†์–ด(DSL, Data SubLanguage): Jaba, C++, Python ๋“ฑ๊ณผ ๊ฐ™์€ ํ˜ธ์ŠคํŠธ ์–ธ์–ด(Host Language)๋กœ ์ž‘์„ฑ๋œ ํ˜ธ์ŠคํŠธ ํ”„๋กœ๊ทธ๋žจ(Host Program) ์†์— ์‚ฝ์ž…(embedded)๋˜์–ด ์‚ฌ์šฉ๋˜๋Š” DML

2.2.3. ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด(DCL, Data Control Language)

๋ฐ์ดํ„ฐ ์ œ์–ด์–ด(DCL): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด, ๋ฐ์ดํ„ฐ ์ œ์–ด ์š”๊ตฌ๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ธฐ์ˆ ํ•˜๋Š” ์–ธ์–ด์ด๋‹ค.

๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋„๊ตฌ
๋ฐ์ดํ„ฐ ๋ณด์•ˆ(Security)
๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ(Integrity)
๋ฐ์ดํ„ฐ ํšŒ๋ณต(Recovery)
๋ณ‘ํ–‰ ์ˆ˜ํ–‰(Concurrency)

2.3. ์‚ฌ์šฉ์ž(User)

  • ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž(End User): DML์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ ‘๊ทผํ•œ๋‹ค. ์‹ค์ œ๋กœ๋Š” menu, form, graphics ๋“ฑ์„ ํ†ตํ•ด DML์„ ๊ฐ„์ ‘์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ(Application Programmer): ํ˜ธ์ŠคํŠธ ์–ธ์–ด(Java/Python ๋“ฑ) + DML์„ ์‚ฌ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค. -> DSL์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์ž: DDL์„ ํ†ตํ•ด DB ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•˜๋Š” ์‚ฌ๋žŒ์ด๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž(DBA): DCL์„ ํ†ตํ•ด DBMS๋ฅผ ์šด์˜ํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” ์‚ฌ๋žŒ์ด๋‹ค.

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB)์— ๋Œ€ํ•œ ๋ชจ๋“  ์ ‘๊ทผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.

  1. ์‚ฌ์šฉ์ž์˜ ์ ‘๊ทผ ์š”๊ตฌ๋ฅผ ์ ‘์ˆ˜ํ•œ๋‹ค.
  2. ์‹œ์Šคํ…œ์ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  3. ์™ธ๋ถ€/๊ฐœ๋…/๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ์™€ ์ €์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ์‚ฌ์ƒ
  4. ์ €์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•œ๋‹ค.

2.5. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž(DBA)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž(DBA): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ(DBS)์˜ ์ „์ฒด์ ์ธ ๊ด€๋ฆฌ ์šด์˜์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฑ…์ž„์„ ์ง€๋Š” ์‚ฌ๋žŒ์˜ ์ง‘๋‹จ์ด๋‹ค.

DBA์˜ ์—…๋ฌด

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

์ฐธ๊ณ 

  • ์Šคํ‚ค๋งˆ๋ž€? (๊ฐœ๋…์Šคํ‚ค๋งˆ, ๋‚ด๋ถ€์Šคํ‚ค๋งˆ, ์™ธ๋ถ€์Šคํ‚ค๋งˆ)


DATABASETIL Share Tweet +1
/#disqus_thread