
๋ด๊ฐ ๋ณด๋ ค๊ณ ์ ๋ฆฌํ ๊ฒ
โ ์คํค๋ง
์ธ๋ถ ์คํค๋ง (์๋ธ์คํค๋ง) |
์ฌ์ฉ์ ๊ด์ ์ ์คํค๋ง โ ํ๋์ DB์ ์ฌ๋ฌ ๊ฐ์ ์ธ๋ถ ์คํค๋ง๊ฐ ์กด์ฌ ์ฌ์ฉ์, ํ๋ก๊ทธ๋จ๋ง๋ค ๋ค์ํ ํํ์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ก ์กด์ฌ |
๊ฐ๋ ์คํค๋ง | ์ฌ์ฉ์์ DB ๊ด๋ฆฌ์ ๊ด์ ์ ์คํค๋ง / DB์ ์ ์ฒด์ ์ธ ๋
ผ๋ฆฌ์ ๊ตฌ์กฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋์ DB์๋ ํ๋์ ๊ฐ๋ ์คํค๋ง ์กด์ฌ โ ๋ฐ์ดํฐ ๊ฐ์ฒด/๊ด๊ณ/์ ์ฝ์กฐ๊ฑด/์ ๊ทผ๊ถํ/๋ฌด๊ฒฐ์ฑ ๊ท์น ๋ช ์ธ |
๋ด๋ถ ์คํค๋ง | DB ์ค๊ณ์/๊ฐ๋ฐ์ ๊ด์ ์ ์คํค๋ง ๊ฐ๋ ์คํค๋ง๋ฅผ ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ ์ โ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ / ๋ด๋ถ ๋ ์ฝ๋์ ๋ฌผ๋ฆฌ์ ์์ |
โ ๋ฐ์ดํฐ ์ธ์ด
DDL (Data Definition Language) |
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ/์ ์ฝ ์กฐ๊ฑด ์ ์ |
DML (Data Manipulation ~) |
๋ฐ์ดํฐ ์ฒ๋ฆฌ/์กฐ์์ ์ฌ์ฉ๋๋ ์ธ์ด |
DCL (Data Control ~) |
๋ฐ์ดํฐ์ ๋ณด์, ๊ถํ, ๋ฌด๊ฒฐ์ฑ, ๊ถํ๊ฒ์ฌ, ๋ณํ ์ ์ด๋ฅผ ์ํ ์ธ์ด |
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ์์
๊ฐ๋ ์ ๋ชจ๋ธ | ํ์ค ์ธ๊ณ์ ์ธ์์ ์ถ์์ ๊ฐ๋
์ธ๊ณ๋ก ํํ ๋ ๋ฆฝ์ ์ธ ๊ฐ๋ ์คํค๋ง ๋ชจ๋ธ๋ง / ํธ๋์ญ์ ๋ชจ๋ธ๋ง / E-R ๋ชจ๋ธ |
๋ ผ๋ฆฌ์ ๋ชจ๋ธ | ๊ฐ๋
์ ๋ชจ๋ธ์ ์ปดํจํฐ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ๊ตฌ์กฐ๋ก ํํ(๊ด๊ณ๋ชจ๋ธ) ์ข ์์ ์ธ ๋ ผ๋ฆฌ ์คํค๋ง ์ค๊ณ / ํธ๋์ญ์ ์ธํฐํ์ด์ค ์ค๊ณ / ์ ๊ทํ ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ก Mapping / ์คํค๋ง์ ํ๊ฐ ๋ฐ ์ ์ |
๋ฌผ๋ฆฌ์ ๋ชจ๋ธ | ๋ฐ์ดํฐ์ ์ค์ ์ ์ฅ ๋ฐฉ๋ฒ ๋ฐ ์ ๊ทผ ๊ฒฝ๋ก ํํ (๋ ์ฝ๋ ํ์ / ์์) ๋ชฉํ DBMS ์ข ์์ ์ธ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ ๋ฐ์ดํฐ๋ก ๋ณํ / ๋ฐ์ ๊ทํ ์ค๋ธ์ ํธ, ์ ๊ทผ๋ฐฉ๋ฒ, ์ธ๋ฑ์ค, ๋ทฐ ์ฉ๋ ์ค๊ณ / ํธ๋์ญ์ ์์ฑ โ ์ ์ฅ ๋ ์ฝ๋์ ํ์ / ์์ / ์ ๊ทผ ๊ฒฝ๋ก ์ค๊ณ |
โ ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ตฌ์ฑ ์์
- ๊ตฌ์กฐ (Structure): ๋ ผ๋ฆฌ์ ๊ฐ์ฒด ๊ฐ ๊ด๊ณ, ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์ ์ ์ฑ์ง ํํ
- ์ฐ์ฐ (Operation): ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์์ ๋ช ์ธ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ ๋๊ตฌ
- ์ ์ฝ ์กฐ๊ฑด (Constraint): DB์ ์ ์ฅ๋ ์ ์๋ ์ค์ ๋ฐ์ดํฐ์ ๋ ผ๋ฆฌ์ ์ ์ฝ ์กฐ๊ฑด
โ ๊ฐ์ฒด-๊ด๊ณ ๋ชจ๋ธ (E-R Model / Entity-Relation Model)
๊ฐ์ฒด (Entity) | ๋
๋ฆฝ์ ์ด๊ณ ๊ตฌ๋ณ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒ - ๊ฐ์ฒด ํ์ : ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ๋ค์ ์งํฉ - ๊ฐ์ฒด ์ธ์คํด์ค: ์ค์ ๊ฐ์ ๊ฐ์ง๋ฉด์ ์ค์ฒดํ ๋ ๊ฐ์ฒด - ๊ฐ์ฒด ์ธํธ : ๊ฐ์ฒด ์ธ์คํด์ค๋ค์ ์งํฉ |
์์ฑ (Attribute) | ๊ฐ์ฒด๊ฐ ๊ฐ์ง ๊ณ ์ ์ ํน์ฑ / ๊ฐ์ฅ ์์ ๋ ผ๋ฆฌ์ ๋จ์ (์) |
๊ด๊ณ (Relationship) | ๋ ๊ฐ์ฒด ๊ฐ์ ์๋ฏธ ์๋ ์ฐ๊ด์ฑ ๋ฐ ์ฐ๊ฒฐ ๊ตฌ์กฐ (๋ง๋ฆ๋ชจ) โ ์ผ๋์ผ(1:1) / ์ผ๋๋ค(1:N) / ๋ค๋๋ค(N:M) |
โ E-R ๋ค์ด์ด๊ทธ๋จ ํ๊ธฐ๋ฒ



โ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฉ์ด
- ๋ฆด๋ ์ด์ (Relation)์ด๋ผ๋ ํ(Table)๋ก ํํ
- ์์ฑ(Attribute) = ์ด = ํ๋
- ํํ(Tuple) = ํ = ๋ ์ฝ๋
- ์ฐจ์(Degree) : ์์ฑ์ ๊ฐ์
- ๊ธฐ์(Cardinality) : ํํ์ ๊ฐ์
- ๋๋ฉ์ธ(Domain) : ํ๋์ ์์ฑ์์ ์ทจํ ์ ์๋ ์์ ๊ฐ(Atomic Value)๋ค์ ์งํฉ(ex. ์ฑ๋ณ: ๋จ/๋ )
- ๋ฆด๋ ์ด์ ์ธ์คํด์ค : ๋ฆด๋ ์ด์ ์ ์ค์ ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ ์งํฉ
โ ๋ฆด๋ ์ด์ ์ ํน์ง
- ํํ๊ณผ ์์ฑ์ ์ ์ผํ๋ฉฐ ์์๋ ๋ฌด์๋ฏธํจ
- ํํ์ ์ฝ์ /์ญ์ ๋ฑ์ ์ํด ๊ณ์ ๋ณํจ / ํํ์ ์๋ก ์์ดํ ๊ฐ์ ๊ฐ์ง
- ์์ฑ์ ๊ฐ์ ๋ถํด ๋ถ๊ฐ(์์์ฑ) / ๋์ผํ ์ ์์
- ํํ์ ์๋ณํ๊ธฐ ์ํด ์์ฑ(ํ๋)์ ์ผ๋ถ๋ฅผ Key๋ก ์ค์
- ์์ฑ์ Null ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋, ๊ธฐ๋ณธํค์ ํด๋น๋๋ ์์ฑ์ Null ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
โ ํค (Key)
ํ๋ณดํค (Candidate Key) |
๊ธฐ๋ณธํค๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์์ฑ / ๋ชจ๋ ๋ฆด๋ ์ด์
์๋ ํ๋ณดํค ์กด์ฌ ๋ชจ๋ ํํ์ ๋ํด ์ ์ผ์ฑ/์ต์์ฑ ๋ง์กฑ์์ผ์ผ ํจ * ์ ์ผ์ฑ : ํ๋์ ํค ๊ฐ์ผ๋ก ํ๋์ ํํ์ ์ ์ผํ๊ฒ ์๋ณ * ์ต์์ฑ : ๋ชจ๋ ๋ ์ฝ๋ ์๋ณํ๋๋ฐ ์ต์ํ์ ์์ฑ์ผ๋ก๋ง ๊ตฌ์ฑ |
๊ธฐ๋ณธํค (Primary Key) |
ํ๋ณดํค ์ค์์ ์ ํ๋์ด, ์ค๋ณต๋ ๊ฐ๊ณผ NULL ๊ฐ์ง ์ ์์ ์ ์ผ์ฑ/์ต์์ฑ ๋ง์กฑํ๋ฉฐ ํํ ์๋ณํ๊ธฐ ์ํด ๋ฐ๋์ ํ์ํ ํค |
๋์ฒดํค (Alternate Key) |
ํ๋ณดํค๊ฐ ๋ ์ด์์ผ ๋ ๊ธฐ๋ณธํค๋ฅผ ์ ์ธํ ๋๋จธ์ง ํ๋ณดํค |
์ํผํค (Super Key) |
ํ ๋ฆด๋ ์ด์
๋ด ์์ฑ๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ํค ๋ชจ๋ ํํ์ ๋ํด ์ ์ผ์ฑ์ ๋ง์กฑํ์ง๋ง, ์ต์์ฑ์ ๋ง์กฑ ๋ถ๊ฐ |
์ธ๋ํค (Foreign Key) |
๋ค๋ฅธ ๋ฆด๋ ์ด์
์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ or ์์ฑ๋ค์ ์งํฉ ์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ๊ธฐ๋ณธํค์ ๋์๋์ด ๋ฆด๋ ์ด์ ๊ฐ ์ฐธ์กฐ ๊ด๊ณ |
โ ๋ฌด๊ฒฐ์ฑ (Integrity)
๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ | ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์ด๋ค ์์ฑ๋ NULL / ์ค๋ณต ๊ฐ ๊ฐ์ง ์ ์์ ๊ธฐ๋ณธํค์ ์์ฑ ๊ฐ์ด NULL ๊ฐ์ด ์๋ ์์ ๊ฐ์ ๊ฐ๋ ์ฑ์ง |
๋๋ฉ์ธ/์์ฑ ๋ฌด๊ฒฐ์ฑ | ๋ฆด๋ ์ด์ ๋ด ํํ๋ค์ด ๊ฐ ์์ฑ์ ๋๋ฉ์ธ์ ์ง์ ๋ ๊ฐ๋ง ๊ฐ์ง |
์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ | ์ธ๋ํค๋ NULL ๋๋ ์ฐธ์กฐ ๋ฆด๋ ์ด์
์ ๊ธฐ๋ณธํค ๊ฐ๊ณผ ๋์ผ ๋ฆด๋ ์ด์ ์ ์ฐธ์กฐํ ์ ์๋ ์ธ๋ํค ๊ฐ์ ๊ฐ์ง ์ ์์ |
์ฌ์ฉ์ ์ ์ ๋ฌด๊ฒฐ์ฑ | ์์ฑ ๊ฐ๋ค์ ์ฌ์ฉ์๊ฐ ์ ์ํ ์ ์ฝ ์กฐ๊ฑด์ ๋ง์กฑ |
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ฐํ | ๋ฐ์ดํฐ ํน์ฑ์ ๋ง๋ ์ ์ ํ ๋ฌด๊ฒฐ์ฑ์ ์ ์ํ๊ณ ๊ฐํ ๊ฐํ ๋ฐฉ๋ฒ: ์ ์ฝ์กฐ๊ฑด, ์ดํ๋ฆฌ์ผ์ด์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋ฆฌ๊ฑฐ |
โ ์ ๊ทผ ํต์ ๊ธฐ์ (AC, Access Control)
์์ ์ ๊ทผ ํต์ (DAC) Discretionary AC |
- ์ฌ์ฉ์์ ์ ์/์ ๋ถ์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ ๋ถ์ฌ - ๋ฐ์ดํฐ ์์ ์๊ฐ ์ ๊ทผ ํต์ ๊ถํ ์ง์ /์ ์ด - ๊ฐ์ฒด ์์ฑ์๊ฐ ๋ชจ๋ ๊ถํ ๊ฐ๊ณ , ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ํ๊ฐ - SQL ๋ช ๋ ์ด: GRANT / REVOKE |
๊ฐ์ ์ ๊ทผ ํต์ (MAC) Mandatory AC |
- ์ฃผ์ฒด์ ๊ฐ์ฒด์ ๋ฑ๊ธ์ ๋น๊ต ํ ์์คํ
์ด ์ ๊ทผ ๊ถํ ๋ถ์ฌ - DB ๊ฐ์ฒด๋ณ๋ก ๋ณด์ ๋ฑ๊ธ ๋ถ์ฌ ๋ฐ ์ฌ์ฉ์๋ณ๋ก ์ธ๊ฐ ๋ฑ๊ธ ๋ถ์ฌ - ์์ ๋ณด๋ค ๋ณด์ ๋์ ๊ฐ์ฒด์ ์ฝ๊ธฐ/์์ /๋ฑ๋ก ๋ถ๊ฐํ๋ ๋ฑ๊ธ ๊ฐ์ ๊ฐ์ฒด์๋ ๋ชจ๋ ๊ฐ๋ฅ, ์์ ๋ณด๋ค ๋ฎ์ ๊ฐ์ฒด์๋ ์ฝ๊ธฐ ๊ฐ๋ฅ |
์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ํต์ (RBAC) Role-based AC |
- ์ฌ์ฉ์์ ์ญํ ์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ ๋ถ์ฌ (์ค์๊ด๋ฆฌ์๊ฐ ์ง์ ) - ๋ค์ค ํ๋ก๊ทธ๋๋ฐ์ ์ต์ ํ |
โ ๋ทฐ (View)
- ๊ธฐ๋ณธ ํ ์ด๋ธ์ ๊ธฐ๋ฐ์ ๋ ์ด๋ฆ์ ๊ฐ์ง๋ ๊ฐ์ ํ ์ด๋ธ (๊ธฐ๋ณธ ํ ์ด๋ธ๊ณผ ๋์ผ ํํ)
- ์ ์ฅ์ฅ์น ๋ด ๊ฐ์์ผ๋ก, ๋ ผ๋ฆฌ์ ์ผ๋ก ์กด์ฌ (์ค์กดํ๋ ๋ฌผ๋ฆฌ์ ์กด์ฌX)
- ๊ธฐ๋ณธ ํ ์ด๋ธ ๋ฐ ๋ทฐ ์ญ์ ์ ํด๋น ํ ์ด๋ธ/๋ทฐ๋ฅผ ๊ธฐ์ด๋ก ์ ์๋ ๋ค๋ฅธ ๋ทฐ๋ ์๋ ์ญ์
- ์ฅ์ : ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ ์ ๊ณต / ๋ฐ์ดํฐ ์๋ ๋ณด์ ์ ๊ณต / ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ฉ์ด
- ๋จ์ : ๋ ๋ฆฝ๋ ์ธ๋ฑ์ค ๋ณด์ ๋ถ๊ฐ / ALTER ๋ณ๊ฒฝ ๋ถ๊ฐ / ์ฝ์ , ์ญ์ , ๊ฐฑ์ , ์ฐ์ฐ ์ ์ฝ
'ETC > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ

๋ด๊ฐ ๋ณด๋ ค๊ณ ์ ๋ฆฌํ ๊ฒ
โ ์คํค๋ง
์ธ๋ถ ์คํค๋ง (์๋ธ์คํค๋ง) |
์ฌ์ฉ์ ๊ด์ ์ ์คํค๋ง โ ํ๋์ DB์ ์ฌ๋ฌ ๊ฐ์ ์ธ๋ถ ์คํค๋ง๊ฐ ์กด์ฌ ์ฌ์ฉ์, ํ๋ก๊ทธ๋จ๋ง๋ค ๋ค์ํ ํํ์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ก ์กด์ฌ |
๊ฐ๋ ์คํค๋ง | ์ฌ์ฉ์์ DB ๊ด๋ฆฌ์ ๊ด์ ์ ์คํค๋ง / DB์ ์ ์ฒด์ ์ธ ๋
ผ๋ฆฌ์ ๊ตฌ์กฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋์ DB์๋ ํ๋์ ๊ฐ๋ ์คํค๋ง ์กด์ฌ โ ๋ฐ์ดํฐ ๊ฐ์ฒด/๊ด๊ณ/์ ์ฝ์กฐ๊ฑด/์ ๊ทผ๊ถํ/๋ฌด๊ฒฐ์ฑ ๊ท์น ๋ช ์ธ |
๋ด๋ถ ์คํค๋ง | DB ์ค๊ณ์/๊ฐ๋ฐ์ ๊ด์ ์ ์คํค๋ง ๊ฐ๋ ์คํค๋ง๋ฅผ ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ ์ โ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ / ๋ด๋ถ ๋ ์ฝ๋์ ๋ฌผ๋ฆฌ์ ์์ |
โ ๋ฐ์ดํฐ ์ธ์ด
DDL (Data Definition Language) |
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ/์ ์ฝ ์กฐ๊ฑด ์ ์ |
DML (Data Manipulation ~) |
๋ฐ์ดํฐ ์ฒ๋ฆฌ/์กฐ์์ ์ฌ์ฉ๋๋ ์ธ์ด |
DCL (Data Control ~) |
๋ฐ์ดํฐ์ ๋ณด์, ๊ถํ, ๋ฌด๊ฒฐ์ฑ, ๊ถํ๊ฒ์ฌ, ๋ณํ ์ ์ด๋ฅผ ์ํ ์ธ์ด |
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ์์
๊ฐ๋ ์ ๋ชจ๋ธ | ํ์ค ์ธ๊ณ์ ์ธ์์ ์ถ์์ ๊ฐ๋
์ธ๊ณ๋ก ํํ ๋ ๋ฆฝ์ ์ธ ๊ฐ๋ ์คํค๋ง ๋ชจ๋ธ๋ง / ํธ๋์ญ์ ๋ชจ๋ธ๋ง / E-R ๋ชจ๋ธ |
๋ ผ๋ฆฌ์ ๋ชจ๋ธ | ๊ฐ๋
์ ๋ชจ๋ธ์ ์ปดํจํฐ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ๊ตฌ์กฐ๋ก ํํ(๊ด๊ณ๋ชจ๋ธ) ์ข ์์ ์ธ ๋ ผ๋ฆฌ ์คํค๋ง ์ค๊ณ / ํธ๋์ญ์ ์ธํฐํ์ด์ค ์ค๊ณ / ์ ๊ทํ ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ก Mapping / ์คํค๋ง์ ํ๊ฐ ๋ฐ ์ ์ |
๋ฌผ๋ฆฌ์ ๋ชจ๋ธ | ๋ฐ์ดํฐ์ ์ค์ ์ ์ฅ ๋ฐฉ๋ฒ ๋ฐ ์ ๊ทผ ๊ฒฝ๋ก ํํ (๋ ์ฝ๋ ํ์ / ์์) ๋ชฉํ DBMS ์ข ์์ ์ธ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ ๋ฐ์ดํฐ๋ก ๋ณํ / ๋ฐ์ ๊ทํ ์ค๋ธ์ ํธ, ์ ๊ทผ๋ฐฉ๋ฒ, ์ธ๋ฑ์ค, ๋ทฐ ์ฉ๋ ์ค๊ณ / ํธ๋์ญ์ ์์ฑ โ ์ ์ฅ ๋ ์ฝ๋์ ํ์ / ์์ / ์ ๊ทผ ๊ฒฝ๋ก ์ค๊ณ |
โ ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ตฌ์ฑ ์์
- ๊ตฌ์กฐ (Structure): ๋ ผ๋ฆฌ์ ๊ฐ์ฒด ๊ฐ ๊ด๊ณ, ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์ ์ ์ฑ์ง ํํ
- ์ฐ์ฐ (Operation): ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์์ ๋ช ์ธ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ ๋๊ตฌ
- ์ ์ฝ ์กฐ๊ฑด (Constraint): DB์ ์ ์ฅ๋ ์ ์๋ ์ค์ ๋ฐ์ดํฐ์ ๋ ผ๋ฆฌ์ ์ ์ฝ ์กฐ๊ฑด
โ ๊ฐ์ฒด-๊ด๊ณ ๋ชจ๋ธ (E-R Model / Entity-Relation Model)
๊ฐ์ฒด (Entity) | ๋
๋ฆฝ์ ์ด๊ณ ๊ตฌ๋ณ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒ - ๊ฐ์ฒด ํ์ : ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ๋ค์ ์งํฉ - ๊ฐ์ฒด ์ธ์คํด์ค: ์ค์ ๊ฐ์ ๊ฐ์ง๋ฉด์ ์ค์ฒดํ ๋ ๊ฐ์ฒด - ๊ฐ์ฒด ์ธํธ : ๊ฐ์ฒด ์ธ์คํด์ค๋ค์ ์งํฉ |
์์ฑ (Attribute) | ๊ฐ์ฒด๊ฐ ๊ฐ์ง ๊ณ ์ ์ ํน์ฑ / ๊ฐ์ฅ ์์ ๋ ผ๋ฆฌ์ ๋จ์ (์) |
๊ด๊ณ (Relationship) | ๋ ๊ฐ์ฒด ๊ฐ์ ์๋ฏธ ์๋ ์ฐ๊ด์ฑ ๋ฐ ์ฐ๊ฒฐ ๊ตฌ์กฐ (๋ง๋ฆ๋ชจ) โ ์ผ๋์ผ(1:1) / ์ผ๋๋ค(1:N) / ๋ค๋๋ค(N:M) |
โ E-R ๋ค์ด์ด๊ทธ๋จ ํ๊ธฐ๋ฒ



โ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฉ์ด
- ๋ฆด๋ ์ด์ (Relation)์ด๋ผ๋ ํ(Table)๋ก ํํ
- ์์ฑ(Attribute) = ์ด = ํ๋
- ํํ(Tuple) = ํ = ๋ ์ฝ๋
- ์ฐจ์(Degree) : ์์ฑ์ ๊ฐ์
- ๊ธฐ์(Cardinality) : ํํ์ ๊ฐ์
- ๋๋ฉ์ธ(Domain) : ํ๋์ ์์ฑ์์ ์ทจํ ์ ์๋ ์์ ๊ฐ(Atomic Value)๋ค์ ์งํฉ(ex. ์ฑ๋ณ: ๋จ/๋ )
- ๋ฆด๋ ์ด์ ์ธ์คํด์ค : ๋ฆด๋ ์ด์ ์ ์ค์ ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ ์งํฉ
โ ๋ฆด๋ ์ด์ ์ ํน์ง
- ํํ๊ณผ ์์ฑ์ ์ ์ผํ๋ฉฐ ์์๋ ๋ฌด์๋ฏธํจ
- ํํ์ ์ฝ์ /์ญ์ ๋ฑ์ ์ํด ๊ณ์ ๋ณํจ / ํํ์ ์๋ก ์์ดํ ๊ฐ์ ๊ฐ์ง
- ์์ฑ์ ๊ฐ์ ๋ถํด ๋ถ๊ฐ(์์์ฑ) / ๋์ผํ ์ ์์
- ํํ์ ์๋ณํ๊ธฐ ์ํด ์์ฑ(ํ๋)์ ์ผ๋ถ๋ฅผ Key๋ก ์ค์
- ์์ฑ์ Null ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋, ๊ธฐ๋ณธํค์ ํด๋น๋๋ ์์ฑ์ Null ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
โ ํค (Key)
ํ๋ณดํค (Candidate Key) |
๊ธฐ๋ณธํค๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์์ฑ / ๋ชจ๋ ๋ฆด๋ ์ด์
์๋ ํ๋ณดํค ์กด์ฌ ๋ชจ๋ ํํ์ ๋ํด ์ ์ผ์ฑ/์ต์์ฑ ๋ง์กฑ์์ผ์ผ ํจ * ์ ์ผ์ฑ : ํ๋์ ํค ๊ฐ์ผ๋ก ํ๋์ ํํ์ ์ ์ผํ๊ฒ ์๋ณ * ์ต์์ฑ : ๋ชจ๋ ๋ ์ฝ๋ ์๋ณํ๋๋ฐ ์ต์ํ์ ์์ฑ์ผ๋ก๋ง ๊ตฌ์ฑ |
๊ธฐ๋ณธํค (Primary Key) |
ํ๋ณดํค ์ค์์ ์ ํ๋์ด, ์ค๋ณต๋ ๊ฐ๊ณผ NULL ๊ฐ์ง ์ ์์ ์ ์ผ์ฑ/์ต์์ฑ ๋ง์กฑํ๋ฉฐ ํํ ์๋ณํ๊ธฐ ์ํด ๋ฐ๋์ ํ์ํ ํค |
๋์ฒดํค (Alternate Key) |
ํ๋ณดํค๊ฐ ๋ ์ด์์ผ ๋ ๊ธฐ๋ณธํค๋ฅผ ์ ์ธํ ๋๋จธ์ง ํ๋ณดํค |
์ํผํค (Super Key) |
ํ ๋ฆด๋ ์ด์
๋ด ์์ฑ๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ํค ๋ชจ๋ ํํ์ ๋ํด ์ ์ผ์ฑ์ ๋ง์กฑํ์ง๋ง, ์ต์์ฑ์ ๋ง์กฑ ๋ถ๊ฐ |
์ธ๋ํค (Foreign Key) |
๋ค๋ฅธ ๋ฆด๋ ์ด์
์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ or ์์ฑ๋ค์ ์งํฉ ์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ๊ธฐ๋ณธํค์ ๋์๋์ด ๋ฆด๋ ์ด์ ๊ฐ ์ฐธ์กฐ ๊ด๊ณ |
โ ๋ฌด๊ฒฐ์ฑ (Integrity)
๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ | ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์ด๋ค ์์ฑ๋ NULL / ์ค๋ณต ๊ฐ ๊ฐ์ง ์ ์์ ๊ธฐ๋ณธํค์ ์์ฑ ๊ฐ์ด NULL ๊ฐ์ด ์๋ ์์ ๊ฐ์ ๊ฐ๋ ์ฑ์ง |
๋๋ฉ์ธ/์์ฑ ๋ฌด๊ฒฐ์ฑ | ๋ฆด๋ ์ด์ ๋ด ํํ๋ค์ด ๊ฐ ์์ฑ์ ๋๋ฉ์ธ์ ์ง์ ๋ ๊ฐ๋ง ๊ฐ์ง |
์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ | ์ธ๋ํค๋ NULL ๋๋ ์ฐธ์กฐ ๋ฆด๋ ์ด์
์ ๊ธฐ๋ณธํค ๊ฐ๊ณผ ๋์ผ ๋ฆด๋ ์ด์ ์ ์ฐธ์กฐํ ์ ์๋ ์ธ๋ํค ๊ฐ์ ๊ฐ์ง ์ ์์ |
์ฌ์ฉ์ ์ ์ ๋ฌด๊ฒฐ์ฑ | ์์ฑ ๊ฐ๋ค์ ์ฌ์ฉ์๊ฐ ์ ์ํ ์ ์ฝ ์กฐ๊ฑด์ ๋ง์กฑ |
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ฐํ | ๋ฐ์ดํฐ ํน์ฑ์ ๋ง๋ ์ ์ ํ ๋ฌด๊ฒฐ์ฑ์ ์ ์ํ๊ณ ๊ฐํ ๊ฐํ ๋ฐฉ๋ฒ: ์ ์ฝ์กฐ๊ฑด, ์ดํ๋ฆฌ์ผ์ด์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋ฆฌ๊ฑฐ |
โ ์ ๊ทผ ํต์ ๊ธฐ์ (AC, Access Control)
์์ ์ ๊ทผ ํต์ (DAC) Discretionary AC |
- ์ฌ์ฉ์์ ์ ์/์ ๋ถ์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ ๋ถ์ฌ - ๋ฐ์ดํฐ ์์ ์๊ฐ ์ ๊ทผ ํต์ ๊ถํ ์ง์ /์ ์ด - ๊ฐ์ฒด ์์ฑ์๊ฐ ๋ชจ๋ ๊ถํ ๊ฐ๊ณ , ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ํ๊ฐ - SQL ๋ช ๋ ์ด: GRANT / REVOKE |
๊ฐ์ ์ ๊ทผ ํต์ (MAC) Mandatory AC |
- ์ฃผ์ฒด์ ๊ฐ์ฒด์ ๋ฑ๊ธ์ ๋น๊ต ํ ์์คํ
์ด ์ ๊ทผ ๊ถํ ๋ถ์ฌ - DB ๊ฐ์ฒด๋ณ๋ก ๋ณด์ ๋ฑ๊ธ ๋ถ์ฌ ๋ฐ ์ฌ์ฉ์๋ณ๋ก ์ธ๊ฐ ๋ฑ๊ธ ๋ถ์ฌ - ์์ ๋ณด๋ค ๋ณด์ ๋์ ๊ฐ์ฒด์ ์ฝ๊ธฐ/์์ /๋ฑ๋ก ๋ถ๊ฐํ๋ ๋ฑ๊ธ ๊ฐ์ ๊ฐ์ฒด์๋ ๋ชจ๋ ๊ฐ๋ฅ, ์์ ๋ณด๋ค ๋ฎ์ ๊ฐ์ฒด์๋ ์ฝ๊ธฐ ๊ฐ๋ฅ |
์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ํต์ (RBAC) Role-based AC |
- ์ฌ์ฉ์์ ์ญํ ์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ ๋ถ์ฌ (์ค์๊ด๋ฆฌ์๊ฐ ์ง์ ) - ๋ค์ค ํ๋ก๊ทธ๋๋ฐ์ ์ต์ ํ |
โ ๋ทฐ (View)
- ๊ธฐ๋ณธ ํ ์ด๋ธ์ ๊ธฐ๋ฐ์ ๋ ์ด๋ฆ์ ๊ฐ์ง๋ ๊ฐ์ ํ ์ด๋ธ (๊ธฐ๋ณธ ํ ์ด๋ธ๊ณผ ๋์ผ ํํ)
- ์ ์ฅ์ฅ์น ๋ด ๊ฐ์์ผ๋ก, ๋ ผ๋ฆฌ์ ์ผ๋ก ์กด์ฌ (์ค์กดํ๋ ๋ฌผ๋ฆฌ์ ์กด์ฌX)
- ๊ธฐ๋ณธ ํ ์ด๋ธ ๋ฐ ๋ทฐ ์ญ์ ์ ํด๋น ํ ์ด๋ธ/๋ทฐ๋ฅผ ๊ธฐ์ด๋ก ์ ์๋ ๋ค๋ฅธ ๋ทฐ๋ ์๋ ์ญ์
- ์ฅ์ : ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ ์ ๊ณต / ๋ฐ์ดํฐ ์๋ ๋ณด์ ์ ๊ณต / ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ฉ์ด
- ๋จ์ : ๋ ๋ฆฝ๋ ์ธ๋ฑ์ค ๋ณด์ ๋ถ๊ฐ / ALTER ๋ณ๊ฒฝ ๋ถ๊ฐ / ์ฝ์ , ์ญ์ , ๊ฐฑ์ , ์ฐ์ฐ ์ ์ฝ