๋ชฉ์ฐจ
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)์ ๋ํ ๋ชจ๋ ์ ๊ทผ์ ์ฒ๋ฆฌํ๋ ์ํํธ์จ์ด์ด๋ค.
- ์ฌ์ฉ์์ ์ ๊ทผ ์๊ตฌ๋ฅผ ์ ์ํ๋ค.
- ์์คํ ์ด ์ํํ ์ ์๋ ํํ๋ก ๋ณํํ๋ค.
- ์ธ๋ถ/๊ฐ๋ /๋ด๋ถ ์คํค๋ง์ ์ ์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ์ฌ์
- ์ ์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฐ์ฐ์ ์คํํ๋ค.
2.5. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์(DBA)
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์(DBA): ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ (DBS)์ ์ ์ฒด์ ์ธ ๊ด๋ฆฌ ์ด์์ ๋ํ ๋ชจ๋ ์ฑ ์์ ์ง๋ ์ฌ๋์ ์ง๋จ์ด๋ค.
DBA์ ์ ๋ฌด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ์ด์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์ฑ์์๋ฅผ ๊ฒฐ์
์คํค๋ง ์ ์
์ ์ฅ๊ตฌ์กฐ์ ์ ๊ทผ ๋ฐฉ๋ฒ ์ค์
๋ณด์ ์ ์ฑ ์๋ฆฝ, ๊ถํ๋ถ์ฌ, ์ ํจ์ฑ ๊ฒ์ฌ
์๋น(Backup), ํ๋ณต(Recovery) ์ ์ฐจ์ ์๋ฆฝ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌด๊ฒฐ์ฑ ์ ์ง
์ฑ๋ฅ ํฅ์๊ณผ ์๋ก์ด ์๊ตฌ์ ๋์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ๊ตฌ์ฑ
๋ฐ์ดํฐ ์ฌ์ ์ ์ ์ง ๊ด๋ฆฌ - ์์คํ
๊ฐ์, ์ฑ๋ฅ ๋ถ์ ๋ฐ ํ๋
์์์ ์ด์ฉ๋, ๋ณ๋ชฉํ์, ์ฅ๋น ๋ฐ ์์คํ ์ฑ๋ฅ ๊ฐ์(monitoring)
์ฌ์ฉ์ ์๊ตฌ์ ๋ณํ, ๋ฐ์ดํฐ ์ด์ฉ ์ถ์ธ, ๊ฐ์ข ํต๊ณ์ ์ข ํฉ ๋ถ์
DBMS ์ฑ๋ฅ ๊ฐ์ (tuning) - ํ์ ๋ฐ ๋ถํ ํด๊ฒฐ
๋ฐ์ดํฐ์ ํํ๊ณผ ์์คํ ์ ๋ฌธ์ํ์ ์์ด์ ํ์ค ์ค์
์ฌ์ฉ์์ ์๊ตฌ ๋ฐ ๋ถํ ํด๊ฒฐ