reference: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ก 2ํ
01. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์ ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ (DBS; DataBase System)
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์ด๋ฅผ ๊ด๋ฆฌํ์ฌ ์กฐ์ง์ ํ์ํ ์ ๋ณด๋ฅผ ์์ฑํด์ฃผ๋ ์์คํ
์คํค๋ง(schema)
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ ์ฝ์กฐ๊ฑด์ ์ ์ํ ๊ฒ
์ธ์คํด์ค(instance)
์คํค๋ง์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์ ๋ก ์ ์ฅ๋ ๊ฐ
02. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ
3๋จ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
- ๋ฏธ๊ตญ ํ์คํ ๊ธฐ๊ด์ธ ANSI/SPARC์์ ์ ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ฒ ์ดํดํ๊ณ ์ด์ฉํ ์ ์๋๋ก ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด์ ์ ๋ฐ๋ผ ์ธ ๋จ๊ณ๋ก ๋๋ ๊ฒ
- ์ธ๋ถ ๋จ๊ณ(external level) : ๊ฐ๋ณ ์ฌ์ฉ์ ๊ด์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ๋ณ ์ฌ์ฉ์ ๊ด์ ์์ ์ดํดํ๊ณ ํํํ๋ ๋จ๊ณ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์ ์ธ๋ถ ์คํค๋ง๊ฐ ์ฌ๋ฌ ๊ฐ ์กด์ฌํ ์ ์์
- ex) ์ง์ฃผ์ธ ๊ด์
- ์ธ๋ถ ์คํค๋ง(external schema)๋?
- ์ธ๋ถ ๋จ๊ณ์์ ์ฌ์ฉ์์๊ฒ ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ํ ๊ฒ
- ๊ฐ ์ฌ์ฉ์๊ฐ ์๊ฐํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ์ต, ์ฆ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ก ์ฌ์ฉ์๋ง๋ค ๋ค๋ฆ
- ์๋ธ ์คํค๋ง(sub schema)๋ผ๊ณ ๋ ํจ
- ๊ฐ๋
๋จ๊ณ(conceptual level) : ์กฐ์ง ์ ์ฒด์ ๊ด์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐ์ง ์ ์ฒด์ ๊ด์ ์์ ์ดํดํ๊ณ ํํํ๋ ๋จ๊ณ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์ ๊ฐ๋ ์คํค๋ง๊ฐ ํ๋๋ง ์กด์ฌํจ
- ex) ๊ด๋ฆฌ์ธ ๊ด์
- ๊ฐ๋
์คํค๋ง(conceptual schema)๋?
- ๊ฐ๋ ๋จ๊ณ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ ๊ฒ
- ์กฐ์ง ์ ์ฒด์ ๊ด์ ์์ ์๊ฐํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ์ต
- ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋์ง, ๋ฐ์ดํฐ๋ค ๊ฐ์๋ ์ด๋ค ๊ด๊ณ๊ฐ ์กด์ฌํ๊ณ ์ด๋ค ์ ์ฝ์กฐ๊ฑด์ด ์๋์ง์ ๋ํ ์ ์๋ฟ๋ง ์๋๋ผ, ๋ฐ์ดํฐ์ ๋ํ ๋ณด์ ์ ์ฑ ์ด๋ ์ ๊ทผ ๊ถํ์ ๋ํ ์ ์๋ ํฌํจ
- ๋ด๋ถ ๋จ๊ณ(internal level) : ๋ฌผ๋ฆฌ์ ์ธ ์ ์ฅ ์ฅ์น์ ๊ด์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ฅ ์ฅ์น์ ๊ด์ ์์ ์ดํดํ๊ณ ํํํ๋ ๋จ๊ณ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋์ ๋ด๋ถ ์คํค๋ง๊ฐ ํ๋๋ง ์กด์ฌํจ
- ex) ๊ฑด์ค ์ ์ฒด ๊ด์
- ๋ด๋ถ ์คํค๋ง(internal schema)๋?
- ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ์ฅ ์ฅ์น์ ์ค์ ๋ก ์ ์ฅ๋๋ ๋ฐฉ๋ฒ์ ์ ์ํ ๊ฒ
- ๋ ์ฝ๋ ๊ตฌ์กฐ, ํ๋ ํฌ๊ธฐ, ๋ ์ฝ๋ ์ ๊ทผ ๊ฒฝ๋ก ๋ฑ ๋ฌผ๋ฆฌ์ ์ ์ฅ ๊ตฌ์กฐ๋ฅผ ์ ์
- ์ธ๋ถ ๋จ๊ณ(external level) : ๊ฐ๋ณ ์ฌ์ฉ์ ๊ด์
- ๊ฐ ๋จ๊ณ๋ณ๋ก ๋ค๋ฅธ ์ถ์ํ(abstraction) ์ ๊ณต
- ๋ด๋ถ ๋จ๊ณ์์ ์ธ๋ถ ๋จ๊ณ๋ก ๊ฐ์๋ก ์ถ์ํ ๋ ๋ฒจ(์บก์ํ)์ด ๋์์ง
3๋จ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ์ ์ฌ์ ๋๋ ๋งคํ
- ์คํค๋ง ์ฌ์ด์ ๋์ ๊ด๊ณ
- ์ธ๋ถ/๊ฐ๋ ์ฌ์ : ์ธ๋ถ ์คํค๋ง์ ๊ฐ๋ ์คํค๋ง์ ๋์ ๊ด๊ณ, ์์ฉ ์ธํฐํ์ด์ค(application interface)๋ผ๊ณ ๋ ํจ
- ๊ฐ๋ /๋ด๋ถ ์ฌ์ : ๊ฐ๋ ์คํค๋ง์ ๋ด๋ถ ์คํค๋ง์ ๋์ ๊ด๊ณ, ์ ์ฅ ์ธํฐํ์ด์ค(storage interface)๋ผ๊ณ ๋ ํจ
- ๋ฏธ๋ฆฌ ์ ์๋ ์ฌ์ ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ฐ์ดํฐ์ ์ ๊ทผ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ 3๋จ๊ณ ๊ตฌ์กฐ๋ก ๋๋๊ณ ๋จ๊ณ๋ณ๋ก ์คํค๋ง๋ฅผ ์ ์งํ๋ฉฐ ์คํค๋ง ์ฌ์ด์ ๋์ ๊ด๊ณ๋ฅผ ์ ์ํ๋ ๊ถ๊ทน์ ์ธ ๋ชฉ์ : ๐ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ์ ์คํ ๐
- ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ(data independency)์ด๋?
- ํ์ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๋๋ผ๋ ์์ ์คํค๋ง๊ฐ ์ํฅ์ ๋ฐ์ง ์๋ ํน์ฑ
- ๋
ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ
- ๊ฐ๋ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ธ๋ถ ์คํค๋ง๋ ์ํฅ์ ๋ฐ์ง ์์
- ๊ฐ๋ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๊ด๋ จ๋ ์ธ๋ถ/๊ฐ๋ ์ฌ์๋ง ์ ํํ๊ฒ ์์ ํด์ฃผ๋ฉด ๋จ
- ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ
- ๋ด๋ถ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๊ฐ๋ ์คํค๋ง๋ ์ํฅ์ ๋ฐ์ง ์์
- ๋ด๋ถ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๊ด๋ จ๋ ๊ฐ๋ /๋ด๋ถ ์ฌ์๋ง ์ ํํ๊ฒ ์์ ํด์ฃผ๋ฉด ๋จ
- ๋
ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ
- ํ์ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ๋๋ผ๋ ์์ ์คํค๋ง๊ฐ ์ํฅ์ ๋ฐ์ง ์๋ ํน์ฑ
๋ฐ์ดํฐ ์ฌ์ (data dictionary)
- ์์คํ ์นดํ๋ก๊ทธ(system catalog)๋ผ๊ณ ๋ ํจ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๊ดํ ์ ๋ณด, ์ฆ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ์ง ํ๋ ์์คํ
๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฉํ ๋ฐ์ดํฐ(meta data) : ๋ฐ์ดํฐ์ ๋ํ ๋ฐ์ดํฐ
- ์คํค๋ง, ์ฌ์ ์ ๋ณด, ๋ค์ํ ์ ์ฝ์กฐ๊ฑด ๋ฑ์ ์ ์ฅ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ด ์ค์ค๋ก ์์ฑํ๊ณ ์ ์งํจ
- ์ผ๋ฐ ์ฌ์ฉ์๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง ์ ์ฅ ๋ด์ฉ์ ๊ฒ์๋ง ํ ์ ์์
๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ(data directory)
- ๋ฐ์ดํฐ ์ฌ์ ์ ์๋ ๋ฐ์ดํฐ์ ์ค์ ๋ก ์ ๊ทผํ๋ ๋ฐ ํ์ํ ์์น ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์์คํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ผ๋ฐ ์ฌ์ฉ์์ ์ ๊ทผ์ ํ์ฉ๋์ง ์์
์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(user database)
์ฌ์ฉ์๊ฐ ์ค์ ๋ก ์ด์ฉํ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ์ผ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
03. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํด ์ ๊ทผํ๋ ๋ชจ๋ ์ฌ๋
04. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์(DBA; DataBase Administrator)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์ด์ ๋ฐ ๊ด๋ฆฌํ๋ ์ฌ๋
- ์ฃผ๋ก ๋ฐ์ดํฐ ์ ์์ด์ ๋ฐ์ดํฐ ์ ์ด์ด๋ฅผ ์ด์ฉ
- ์ฃผ์ ์
๋ฌด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ ์์ ์ ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ์ ์
- ๋ฌผ๋ฆฌ์ ์ ์ฅ ๊ตฌ์กฐ์ ์ ๊ทผ ๋ฐฉ๋ฒ ๊ฒฐ์
- ๋ฌด๊ฒฐ์ฑ(์ ํํ๊ณ ์ ํจํ ๋ฐ์ดํฐ๋ง ์ ์ง) ์ ์ง๋ฅผ ์ํ ์ ์ฝ์กฐ๊ฑด ์ ์
- ๋ณด์ ๋ฐ ์ ๊ทผ ๊ถํ ์ ์ฑ ๊ฒฐ์
- ๋ฐฑ์ ๋ฐ ํ๋ณต ๊ธฐ๋ฒ ์ ์
- ์์คํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ
- ์์คํ ์ฑ๋ฅ ๊ฐ์ ๋ฐ ์ฑ๋ฅ ๋ถ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ๊ตฌ์ฑ
์์ฉ ํ๋ก๊ทธ๋๋จธ(application programmer)
- ๋ฐ์ดํฐ ์ธ์ด๋ฅผ ์ฝ์ ํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ์ฌ๋
- ์ฃผ๋ก ๋ฐ์ดํฐ ์กฐ์์ด๋ฅผ ์ฌ์ฉ
์ต์ข ์ฌ์ฉ์(end user)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐ์(์ฝ์ ·์ญ์ ·์์ ·๊ฒ์)ํ๋ ์ฌ๋
- ์ฃผ๋ก ๋ฐ์ดํฐ ์กฐ์์ด๋ฅผ ์ฌ์ฉ
- ์บ์ฃผ์ผ ์ฌ์ฉ์์ ์ด๋ณด ์ฌ์ฉ์๋ก ๊ตฌ๋ถ
05. ๋ฐ์ดํฐ ์ธ์ด
์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ๊ฐ์ ํต์ ์๋จ
์ฌ์ฉ ๋ชฉ์ ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ์ ์์ด, ๋ฐ์ดํฐ ์กฐ์์ด, ๋ฐ์ดํฐ ์ ์ด์ด๋ก ๊ตฌ๋ถ
๋ฐ์ดํฐ ์ ์์ด(DDL; Data Definition Language)
- ์คํค๋ง๋ฅผ ์ ์ํ๊ฑฐ๋, ์์ ๋๋ ์ญ์ ํ๊ธฐ ์ํด ์ฌ์ฉ
- ex) create, drop, alter
๋ฐ์ดํฐ ์กฐ์์ด(DML; Data Manipulation Language)
- ๋ฐ์ดํฐ์ ์ฝ์ ·์ญ์ ·์์ ·๊ฒ์ ๋ฑ์ ์ฒ๋ฆฌ๋ฅผ ์๊ตฌํ๊ธฐ ์ํด ์ฌ์ฉ
- ๋ฐ์ดํฐ ์กฐ์์ด๋ ์ ์ฐจ์ ๋ฐ์ดํฐ ์กฐ์์ด์ ๋น์ ์ฐจ์ ๋ฐ์ดํฐ ์กฐ์์ด๋ก ๊ตฌ๋ถํ ์ ์๋ค.
- ์ ์ฐจ์ ๋ฐ์ดํฐ ์กฐ์์ด (procedural DML)
- ์ฌ์ฉ์๊ฐ ์ด๋ค(what) ๋ฐ์ดํฐ๋ฅผ ์ํ๊ณ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ ์ํด ์ด๋ป๊ฒ(how) ์ฒ๋ฆฌํด์ผ ํ๋์ง๋ ์ค๋ช
- ๋น์ ์ฐจ์ ๋ฐ์ดํฐ ์กฐ์์ด (nonprocedural DML)
- ์ฌ์ฉ์๊ฐ ์ด๋ค(what) ๋ฐ์ดํฐ๋ฅผ ์ํ๋์ง๋ง ์ค๋ช
- ์ ์ธ์ ์ธ์ด(declarative language)๋ผ๊ณ ๋ ํจ
- ์ ์ฐจ์ ๋ฐ์ดํฐ ์กฐ์์ด (procedural DML)
๋ฐ์ดํฐ ์ ์ด์ด(DCL; Data Control Language)
- ๋ด๋ถ์ ์ผ๋ก ํ์ํ ๊ท์น์ด๋ ๊ธฐ๋ฒ์ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉ
- ์ฌ์ฉ ๋ชฉ์
- ๋ฌด๊ฒฐ์ฑ : ์ ํํ๊ณ ์ ํจํ ๋ฐ์ดํฐ๋ง ์ ์ง
- ๋ณด์ : ํ๊ฐ๋ฐ์ง ์์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ ์ ๊ทผ ์ฐจ๋จ, ํ๊ฐ๋ ์ฌ์ฉ์์ ๊ถํ ๋ถ์ฌ
- ํ๋ณต : ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ์ ์ง
- ๋์์ฑ ์ ์ด : ๋์ ๊ณต์ ์ง์
06. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ๊ตฌ์ฑ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๊ตฌ ์ํ
์ฃผ์ ๊ตฌ์ฑ ์์
- ์ง์ ์ฒ๋ฆฌ๊ธฐ(query processor)
- ์ฌ์ฉ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๊ตฌ๋ฅผ ํด์ํ์ฌ ์ฒ๋ฆฌ
- DDL ์ปดํ์ผ๋ฌ, DML ํ๋ฆฌ ์ปดํ์ผ๋ฌ, DML ์ปดํ์ผ๋ฌ, ๋ฐํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฒ๋ฆฌ๊ธฐ, ํธ๋์ญ์ ๊ด๋ฆฌ์ ๋ฑ์ ํฌํจ
- ์ ์ฅ ๋ฐ์ดํฐ ๊ด๋ฆฌ์(stored data manager)
- ๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ ์ฌ์ ์ ๊ด๋ฆฌํ๊ณ ์ ๊ทผํจ
'DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
7์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด SQL (0) | 2021.04.17 |
---|---|
6์ฅ ๊ด๊ณ ๋ฐ์ดํฐ ์ฐ์ฐ (0) | 2021.04.17 |
5์ฅ ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ (0) | 2021.03.17 |
4์ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2021.03.17 |
2์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ - DBMS (0) | 2021.03.11 |
1์ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธ ๊ฐ๋ (0) | 2021.03.11 |