๐ Data Models, Schemas, Instances์ ๋ํด ์์๋ณด์
๋ค์ด๊ฐ๊ธฐ์ ์์
Data Model์ ํ์ค ์ธ๊ณ์ ๊ฐ์ฒด๋ฅผ ์ปดํจํฐ๋ก ํํํ๊ธฐ ์ํด์ ๋ฐ์ดํฐ๋ฅผ ๋จ์ํ, ์ถ์ํํ์ฌ ์ฒด๊ณ์ ์ผ๋ก ํํํ ๊ฐ๋ ์ ๋ชจ๋ธ์ด๋ค.
์ ์ฒด ๋ฉ์ปค๋์ฆ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ํ ์คํค๋ง๋ฅผ ์์ฑํ๊ณ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ฒฐ๊ณผ๊ฐ ์ธ์คํด์ค์ด๋ค.
DB์ ๊ตฌ์กฐ(๋ฐ์ดํฐ ํ์ ,๊ด๊ณ, ์ ์ฝ์กฐ๊ฑด), ์ฐ์ฐ, ์ ์ฝ์กฐ๊ฑด์ ๋ฌ์ฌํ๊ธฐ๋ ๊ฐ๋ ๋ค์ ์งํฉ์ ๋ํ๋ธ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ๋ณด๊ฐ ์ถ๊ฐ๋๊ณ ์ญ์ ๋จ์ ๋ฐ๋ผ ์์๊ฐ๊ฐ ๋ณํ๋ค. ์ด๋ ํน์ ํ ์๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด ์๋ ์ ๋ณด์ ๋ชจ์(์ ์ฅ๋ ๊ฒฐ๊ณผ)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ์คํด์ค๋ผ๊ณ ํ๋ค. ๋ฐ๋ฉด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฒด์ ์ธ ์ค๊ณ๋ฅผ ์ด์ผ๊ธฐํ ๋์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ผ๊ณ ํ๋ค.
Database Schema vs Database State (Instances)
Database schema
: ์ํ๋ฅผ ๋ง๋ค๊ธฐ์ํ ์ ์ฒด์ ์ธ ๋์Database state ( instances )
: ์ด๋ ํ ํ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ DB๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง์ ๋ํ ์ค๋ช ์ด๋ค.
'intension ํน์ meta-data'๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
๊ทธ๋ ์ง๋ง meta-data ๊ฐ ์คํค๋ง๋ฅผ ํฌ๊ดํ๋ ๋๋ !
์คํค๋ง ์ ๋ณด๋ฟ๋ง ์๋๋ผ ์ธ๋ฑ์ค, ๋ทฐ, ์ฌ์ฉ์ ๊ถํ, ํ ์ด๋ธ ์คํ์ด์ค ๋ฑ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด์ ๊ด๋ จ๋ ์ ๋ณด๋ ๋ฉํ๋ฐ์ดํฐ๋ก ํฌํจ๋๋ค.
DB๋ฅผ ์ค๋ช ํ ์ ์๋ค.
DBMS์ catalog์ ์ ์ฅ๋์ด์๋ค.
Schema construct: ์คํค๋ง์ ๊ตฌ์ฑ ์์
relational database schema vs relation R์ schema
์ด๋ค relation R์ ์คํค๋ง๋ผ๊ณ ํ๋ค๋ฉด (SQL์์ create table๋ฌธ์ ๋ ์ฌ๋ฆฌ๋ฉด ์ฝ์ต๋๋ค) attribute ๋ฆฌ์คํธ์ ๊ฐ attribute์ domain ๋ฐ ๊ทธ attribute์ constraint์ ํฌํจํฉ๋๋ค. database schema๋ ๊ฐ์ database ๋ด์ relation๋ค์ ๋ํ ์คํค๋ง์ ๋ชจ์์ด๋ผ๊ณ ํ ์ ์์ง์. ํนํ ์๋ก ๋ค๋ฅธ relation ๊ฐ์ constraint, ์ฆ referential integrity constraint (์ฆ FK-PK) ๋ฑ๋ ํฌํจํฉ๋๋ค. ๋ค์ ๋งํด, ๋ด๊ฐ ๋ง๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ์ ์ค๋ช ํ๋ ์ด์ฒด์ ์ธ ๋ฉํ ์ ๋ณด์ด์ง์.
relational database schema ๋ด๊ฐ ๋ง๋ ํ ํ ์ด๋ธ์ ๋ํ ํ ์ด๋ธ ์์ ์ ๋ณด
relation R์ schema ๋ด๊ฐ ๋ง๋ ํ ์ด๋ธ๋ค์ ๋ํ ๊ด๊ณ
๐ก Goal ๐ก To seperate the user applications frome the physical database
- ์ฝ๊ฒ ๋งํด์ ์ ์ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๋ฌผ๋ฆฌ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
- ๊ณ์ธต๊ฐ ์ํต์ ์ ํ๊ธฐ ์ํด์๋ mapping์ ์ํด์ค์ผํจ
์ถ๊ฐ ์ค๋ช
์คํค๋ง ๋ ๋ฒจ๊ฐ ๋งคํ์ ํตํด '์์ฒญ'๊ณผ '๋ฐ์ดํฐ'๋ฅผ ๋ณํํ๋ค. ์ ์ ๊ฐ external view๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด, ๊ทธ ์์ฒญ์ conceptual schema๋ฅผ ๊ฑฐ์น๊ณ internal schema๋ฅผ ๊ฑฐ์ณ์ ์ค์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ฒ ๋๋ค.
์ด๋ ๊ฒ ํ๋ ์ด์ ๋ ๋ฌผ๋ฆฌ์ db๋ก๋ถํฐ ์ ์ ๋ฅผ ๋ถ๋ฆฌ์ํค๊ธฐ์ํจ์ ๋๋ค.
์คํค๋ง ๋ ๋ฒจ์ ๋๋๋ฉด ์คํค๋ง๊ฐ 'tightly couped' ๋๋ ๊ฒ์ ๋ฐฉ์ง ํ ์ ์์ด ํ์ฅ์ฑ์ ๋์ผ ์ ์๋ค.
Conceputual/Internal ์คํค๋ง๋ฅผ ๋ช ์ํ๊ฑฐ๋ ์ด๋ค ๋ ์คํค๋ง ์ฌ์ด์ ๋งคํ์ ๋ช ์ํ ๋ DDL ๋ฅผ ์ฌ์ฉํ๋ค.
DBMS๊ฐ data independence๋ฅผ ์ง์ํ๋ฉด, ํ์ ๋ ๋ฒจ์ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์ ๋ ์์ ๋ ๋ฒจ์ ์คํค๋ง์ ๊ฐ์ ๋งคํ๋ง ๋ณ๊ฒฝ๋๋ฉด ๋๋ค. ์์ ์คํค๋ง ์์ฒด๋ ๋ณ๊ฒฝ๋๋ ๊ฒ์ด ์๋ค.
์ด๋ ํ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ, ์ฆ ์ ์ฅ๋์ด ์๋ ์ค์ ์ ๋ณด๋ฅผ ๋ปํจ
'database state ' ํน์ 'snapshot'์ด๋ผ๊ณ ๋ ๋ถ๋ฆ
structured query language (DDL + DML )
declarative
set - oriented
set-oriented ์ ๊ทผ ๋ฐฉ์์์๋ SQL ์ฟผ๋ฆฌ๋ฅผ ํตํด ์ ์ฒด ๋ฐ์ดํฐ ์งํฉ์ ๋ํ ์์ ์ ์ํํ๋ค. ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ์๋ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๋์์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ ๋ ์ฝ๋๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋์ , ํ ๋ฒ์ ์ฟผ๋ฆฌ ์คํ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
Set-oriented ๋ฐฉ์์ ์ผ๊ด ์ฒ๋ฆฌ(batch processing) ์์ ์ด๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์ ํนํ ์ ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, "๋ชจ๋ ๊ณ ๊ฐ์ ์ด๋ฆ์ ๋๋ฌธ์๋ก ๋ณ๊ฒฝํ๋ผ"๋ผ๋ ์๊ตฌ์ฌํญ์ด ์๋ค๋ฉด, SQL ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ ๋ฒ์ ๋ชจ๋ ๋ ์ฝ๋์ ๋ํด ์ ๋ฐ์ดํธํ ์ ์๋ค.
๋ฐ๋๋ก, "record-at-a-time" ์ ๊ทผ ๋ฐฉ์์ ๊ฐ ๋ ์ฝ๋๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์๋ฏธํ๋ค. ์ด ๊ฒฝ์ฐ์๋ ํ๋์ ๋ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋์ ๋ค๋ฅธ ๋ ์ฝ๋์ ์ํธ์์ฉํ ์ ์๋ค.
declarative
DB ๋์์ธ ๊ณผ์ ์ ๊ฐ๋จํ ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ฐธ์กฐ ๋ฌธ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ / Abraham Silberschatz, Henry F. Korth, S. Sudarshan ์ง์ ; ์ ์ฐ๋ [์ธ]์ฎ๊น