What is Database
DB & DBMS & DB system
database(DB)
์๋ฏธ
์ ์์ ์ผ๋ก(electronically) ์ ์ฅ๋๊ณ ์ฌ์ฉ๋๋ ๊ด๋ จ์๋(related) ๋ฐ์ดํฐ๋ค์ ์กฐ์งํ๋ ์งํจ(organized collection)
๊ด๋ จ์๋ ๋ฐ์ดํฐ : ๊ฐ์ ์ถ์ฒ, ๊ฐ์ ๋ชฉ์ , ๊ฐ์ ์๋น์ค ์์์ ์์ฑ๋๋ ๋ฐ์ดํฐ
์กฐ์งํ๋ ์งํฉ : ์ ์ฐพ๊ณ ์ค๋ณต ์์ ๊ณ ๋ฐ์ดํฐ ๋ถ์ผ์น ์์ ๊ธฐ ์ํด์ ์ ์กฐ์งํ ํ๋๊ฒ
์ ์์ ์ฌ์ฉ : ๋ฐ์ดํฐ๊ฐ ์ปดํจํฐ์ ์ ์ฅ๋๊ณ ์ฌ์ฉ๋๋ ๊ฒ
DBMS
์๋ฏธ
databse management systems
์ฌ์ฉ์์๊ฒ DB๋ฅผ ์ ์ํ๊ณ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ํํธ์จ์ด ์์คํ
์ : mysql, PostgreSQL, ORACLE, ...
DB๋ฅผ ์ ์ํ๋ค๋ณด๋ฉด ๋ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํจ -> ์ด๋ฅผ metadata๋ผ๊ณ ํจ
metadata
data about data : ๋ฐ์ดํฐ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํ ๋ฐ์ดํฐ
database๋ฅผ ์ ์ํ๊ฑฐ๋ ๊ธฐ์ ํ๋(descriptive) ๋ฐ์ดํฐ
catalog๋ผ๊ณ ๋ ๋ถ๋ฅด๊ณ , metadata๊ฐ ์ ์ฅ๋๋ ๊ณณ์ catalog๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํจ
๋ฐ์ดํฐ ์ ํ, ๊ตฌ์กฐ, ์ ์ฝ์กฐ๊ฑด, ๋ณด์, ์ ์ฅ, ์ธ๋ฑ์ค, ์ฌ์ฉ์ ๊ทธ๋ฃน ๋ฑ์ ์ ์ฅํจ
์ด metadata๋ DBMS์ ์ ์ฅ๋์ด ๊ด๋ฆฌ๋จ
database system
์๋ฏธ
database + DBMS + ์ฐ๊ด๋ applications
์ค์ฌ์ ๊ทธ๋ฅ database๋ผ๊ณ ๋ ๋ถ๋ฆ
์ฒ๋ฆฌ ๊ณผ์
์ฌ์ฉ์(ํ๋ก๊ทธ๋๋จธ)๊ฐ application program์ผ๋ก query๋ฅผ ์
DBMS software์์ ๊ทธ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์์, ์ฟผ๋ฆฌ์ ์๋ฏธ๋ฅผ ๋ถ์ํจ
DBMS software์์ ์์ฒญ ์ฒ๋ฆฌ
์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ถ๊ฐ์ ์ธ ์ ๋ณด ํ์ธ(metadata ๋ฑ ํ์ธ)
์์ฒญ ๋ฐ์ ์ฟผ๋ฆฌ์ ๋ํด ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํจ
DBMS software์์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ application์๊ฒ ๋๋ ค์ค
Data model
์๋ฏธ
DB์ ๊ตฌ์กฐ(structure)๋ฅผ ๊ธฐ์ ํ๋๋ฐ ์ฌ์ฉ๋ ์ ์๋ ๊ฐ๋ ๋ค์ด ๋ชจ์ธ ์งํฉ
๊ฐ๋ ๋ค์ ๋ฐํ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ์ถ์ํํด์ ํํํ ์ ์๋ ์๋จ์ ์ ๊ณตํจ
์ฌ๋ฌ ์ข ๋ฅ์ ์ข ๋ฅ๊ฐ ์์ผ๋ฉฐ ์ถ์ํ ์์ค๊ณผ DB๊ตฌ์กฐํ ๋ฐฉ์์ด ์กฐ๊ธ์ฉ ๋ค๋ฆ
DB์์ ์ฝ๊ณ ์ฐ๊ธฐ ์ํ ๊ธฐ๋ณธ์ ์ธ ๋์๋ค(operations)๋ ํฌํจํจ
๋ถ๋ฅ
conceptual (high-level) data model
์ผ๋ฐ ์ฌ์ฉ์ฌ๋ค(๋น๊ฐ๋ฐ์๋) ์ฝ๊ฒ ์ดํดํ ์ ์๋ ๊ฐ๋ ๋ค๋ก ์ด๋ค์ง ๋ชจ๋ธ
์ถ์ํ ์์ค์ด ๊ฐ์ฅ ๋์
๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ์ถ์ํํ์ฌ ๊ธฐ์ ํ ๋ ์ฌ์ฉ
์) entity-relationship model

logical (representational) data model
์ดํดํ๊ธฐ ์ด๋ ต์ง ์์ผ๋ฉด์๋ ๋ํ ์ผํ๊ฒ DB๋ฅผ ๊ตฌ์กฐํํ ์ ์๋ ๊ฐ๋ ๋ค์ ์ ๊ณตํจ
๋ฐ์ดํฐ๊ฐ ์ปดํจํฐ์ ์ ์ฅ๋ ๋์ ๊ตฌ์กฐ์ ํฌ๊ฒ ๋ค๋ฅด์ง ์๊ฒ DB ๊ตฌ์กฐํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํจ
ํน์ DBMS๋ ํน์ storage์ ์ข ์๋์ง ์๋ ์์ค์์ DB๋ฅผ ๊ตฌ์กฐํํ ์ ์๋ ๋ชจ๋ธ
์ด๋์ ๋ ์ถ์ํ๋ ๋์ด์์ผ๋ฉฐ, ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ ๋ง์ด ์ฐ๋ ์์ญ
์1) relational data model

relation : ์ ๊ทธ๋ฆผ์์ table ์์ฒด๋ฅผ relation์ด๋ผ๊ณ ๋ถ๋ฆ
row : ๋ฐ์ดํฐ ๊ฐ๊ฐ์ ์๋ฏธ
column : ๋ฐ์ดํฐ์ ์์ฑ (attribute)๋ฅผ ์๋ฏธํจ
์ด๊ฒ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋จ (ORACLE, MySQL, MS SQL server)
์2) object data model
์3) object-relational data model (PostgreSQL)
physical (low-level) data model
์ปดํจํฐ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ํ์ผ ํํ๋ก ์ ์ฅ๋๋์ง๋ฅผ ๊ธฐ์ ํ ์ ์๋ ์๋จ์ ์ ๊ณต
์ปดํจํฐ์ ์ ์ฅ๋๋ ํํ์ ๊ฐ์ฅ ๊ทผ์ ํ ํํ๋ก ํํํ ์ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ
data format, data orderings, access path(index) ๋ฑ์ ์ฌ์ฉํ์ฌ ์ค์ ์ปดํจํฐ์ ์ ์ฅ๋๋ ๊ฒ๊ณผ ๋ฐ์ ํ๊ฒ ์ฌ์ฉํ ์ ์์
access path : ๋ฐ์ดํฐ ๊ฒ์์ ๋น ๋ฅด๊ฒํ๊ธฐ ์ํ ๊ตฌ์กฐ์ฒด (์. index)
schema & state
database schema
data model์ ๋ฐํ์ผ๋ก database์ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ ํ ๊ฒ
data model์ด db๊ตฌ์กฐ๋ฅผ ๋ชจ๋ธ๋งํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ๊ฒ์ด๋ผ๋ฉด, ๊ทธ ๋ชจ๋ธ์ ๋ฐํ์ผ๋ก ๊ทธ data base์ ๊ตฌ์กฐ๋ฅผ ํํํ๊ณ ๊ธฐ์ ํ๋ ๊ฒ
database๋ฅผ ์ค๊ณํ ๋ ์ ํด์ง๋ฉฐ, ํ ๋ฒ ์ ํด์ง ํ์๋ ์์ฃผ ๋ฐ๋์ง ์์
database๋ ์ด๋ค ํ ์ด๋ธ์ ๊ฐ์ก๊ณ , ๊ฐ ํ ์ด๋ธ์ ์ด๋ค ์์ฑ์ ๊ฐ๊ณ ์๋์ง๋ฅผ ํํํจ
database state
database์ ์๋ ์ค์ ๋ฐ์ดํฐ๋ ๊ฝค ์์ฃผ ๋ฐ๋ ์ ์์
ํน์ ์์ ์ database์ ์๋ ๋ฐ์ดํฐ๋ฅผ database state ํน์ snapshot์ด๋ผ๊ณ ํจ (๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์๋ ๋ฐ์ดํฐ๋ ๊ณ์ ๋ฐ๋๋๋ฐ, ํน์ ์์ ์์์ ๋ฐ์ดํฐ๋ค์ ์๋ฏธํจ)
ํน์ databse์ ์๋ ํ์ฌ instances์ ์งํฉ์ด๋ผ๊ณ ๋ ํจ
three-schema architecture
database system์ ๊ตฌ์ถํ๋ architecture ์ค์ ํ๋ (๋ง์ ๋ชจ๋ธ๋ค์ด ์ด ์ํคํ ์ฒ๋ฅผ ๋ฐ๋ผ๊ฐ)
๋ชฉ์ : user application์ผ๋ก ๋ถํฐ ๋ฌผ๋ฆฌ์ ์ธ database๋ฅผ ๋ถ๋ฆฌ์ํด. ๋ฐ์ดํฐ๋ฅผ CRUDํ๋ค๋ณด๋ฉด, ๋ฌผ๋ฆฌ ์ ์ฅ ๊ณต๊ฐ์๋ ๊ตฌ์กฐ๋ ์ ์ฅ ์์น๊ฐ ๋ฐ๋ ์ ์์. ํ์ง๋ง user๊ฐ ๋ณด๋ application์๋ ์ํฅ์ ๋ผ์น์ง ์๊ฒ ํ๊ธฐ ์ํด์ ์ด ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํจ
์ธ๊ฐ์ง level์ด ์ ์๋์ด์๊ณ , ๊ฐ level์ schema๊ฐ ์ ์๋์ด ์์

์์ ์ ์ผ๋ก database system์ ์ด์ํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ ์ํคํ ์ฒ
๊ฐ ๋ ๋ฒจ์ ๋ ๋ฆฝ์์ผ์ ์ด๋ ํ ๋ ๋ฒจ์์์ ๋ณํ๊ฐ ์์ ๋ ๋ฒจ์ ์ํฅ์ ์ฃผ์ง ์๊ธฐ ์ํด์ ์ฌ์ฉํจ. ํ ๋ ๋ฒจ์์ ์ด๋ค ๋ณํ๊ฐ ์์ผ๋ฉด, ๋ค๋ฅธ ๋ ์ด์ด์์ ๋ฐ์ดํฐ ๋งคํ์ ๋๋ง ๋ฐ๊ถ์ฃผ๋ฉด ๋จ
๋๋ถ๋ถ์ DBMS๊ฐ three level์ ์๋ฒฝํ๊ฒ ํน์ ๋ช ์์ ์ผ๋ก ๋๋์ง๋ ์์(external๊ณผ conceptual์ ์๋ฒฝํ ๋๋๋ ๊ฒ์ด ์ฝ์ง ์์)
๊ฐ๊ฐ์ ์คํค๋ง๋ ๊ฒฐ๊ตญ data base ๊ตฌ์กฐ๋ฅผ ํํํ๋ ๊ฒ์ด์ง, ์ค์ ๋ก ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ ๊ณณ์ internal level
internal schemas at internal level
๋ฌผ๋ฆฌ์ ์ธ ์ ์ฅ์ฅ์น์ ๊ฐ์ฅ ๊ฐ๊น๊ฒ ์์
๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ ์ฅ๋๋์ง physical data model์ ํตํด ํํ
data stroage, data structure, access path ๋ฑ ์ค์ ๋ก ๋ฌผ๋ฆฌ ์ ์ฅ ์ฅ์น์ ์ ์ฅ๋๋ ๋ด์ฉ์ ๊ธฐ์ ํจ
external schemas (or user views) at external (or view) level
์ค์ ์ฌ์ฉ์๊ฐ ๋ฐ๋ผ๋ณด๋ ์คํค๋ง -> external views, user views๋ผ๊ณ ๋ ๋ถ๋ฆผ
ํน์ ์ ์ ๋ค์ด ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ง ํํ(์ ์ ๋ง๋ค ํ์๋กํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅธ๋ฐ, ๊ฐ๊ฐ ํ์๋กํ๋ ๊ฒ๋ง ๋ณด์ฌ์ค)
๊ทธ ์ธ์ ์๋ ค์ค ํ์ ์๋ ๋ฐ์ดํฐ๋ ์จ๊น
logical data model์ ํตํด ํํ๋จ
conceptual schemas at conceptual level
external schema๋ฅผ ํตํด ๊ฐ๊ฐ์ ์ ์ ๋ค์๊ฒ ๊ฐ๊ฐ์ ํ์๋กํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ ค๊ณ ํ๋ค๋ณด๋, internal schema์์ ์ค๋ณต๋ฐ์ดํฐ ๋ฐ์ ๋ฐ ๋๊ธฐํ์๋ฌ ๋ฐ์ -> ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์๊ฒจ๋จ
์ ์ฒด database์ ๋ํ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ -> intenal schema๋ฅผ ํ๋ฒ ์ถ์ํ์์ผ์ ํํํ schema
๋ฌผ๋ฆฌ์ ์ธ ์ ์ฅ ๊ตฌ์กฐ์ ๋ํ ๋ด์ฉ์ ์จ๊ธฐ๋ฉฐ, ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ํํํจ
entity, data types, relationships, user operations, constraint์ ์ง์คํด์ data base ๊ตฌ์กฐ๋ฅผ ํํํจ ๊ฒ
์ด๊ฒ๋ logical data model์ ํตํด์ ํํ๋จ
database language
data definition language (DDL)
conceptual shcema๋ฅผ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ์ด
๋๋ก internal schema๊น์ง ์ ์ํ๊ธฐ๋ ํจ
storage definition language (SDL)
internal schema๋ฅผ ์ ์ํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ์ธ์ด
์์ฆ, ํนํ RDBMS์์๋ SDL์ด ๊ฑฐ์ ์๊ณ ํ๋ผ๋ฏธ๋ฌ๋ฅผ ํตํด์ internal schema๋ฅผ ์ค์ ํจ
view definition language(VDL)
external schemas๋ฅผ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ์ด
๋๋ถ๋ถ์ DBMS์์๋ DDL์ด VDL ์ญํ ๊น์ง ์ํํจ(DDL์ด VDL์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์ปค๋ฒํ๊ณ ์์
data manipulation language(DML)
database์ ์๋ data๋ฅผ ํ์ฉํ๊ธฐ ์ํ ์ธ์ด
data ์ถ๊ฐ, ์ญ์ , ์์ , ๊ฒ์ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ธ์ด
ํตํฉ๋ ์ธ์ด
์ค๋๋ ์ DBMS๋ DML, VDL, DDL์ด ํตํฉ๋ ์ธ์ด๋ก ์กด์ฌํจ
์ : SQL(relational database language์์)
์ฐธ๊ณ
Last updated