๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด - 1์ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด - 1์ ๋ฐ์ดํฐ๋ชจ๋ธ์ ์ดํด
1. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
- ํ์ค์ธ๊ณ๋ฅผ ์ผ์ ํ ํ์์ ๋ง์ถ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ํํํ๊ธฐ ์ํด ์ถ์ํ
- ๋ณต์กํ ํ์ค์ ์ ํ๋ ์ธ์ด๋ ํ๊ธฐ๋ฒ์ ํตํด ์ดํดํ๊ธฐ ์ฝ๋๋ก ๋จ์ํ, ๊ณ ๊ฐ์ด ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ๋ณต์กํ์ง ์๊ฒ ๋ชจ๋ธ๋ง
- ์ ๋งค๋ชจํธํจ์ ๋ฐฐ์ ํ๊ณ ๋๊ตฌ๋ ์ดํด๊ฐ ๊ฐ๋ฅํ๋๋ก ์ ํํ๊ฒ ํ์์ ๊ธฐ์ ํ๋ ์ ํํ
- ๊ณ ๊ฐ๊ณผ์ ์์ฌ์ํต์ ํตํด ๊ณ ๊ฐ์ ์ ๋ฌด ํ๋ก์ธ์ค๋ฅผ ์ดํดํ ํ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ๋ง
- ๊ณ ๊ฐ์ ์ ๋ฌด ํ๋ก์ธ์ค๋ฅผ ์ถ์ํํ๊ณ , ์ํํธ์จ์ด๋ฅผ ๋ถ์ / ์ค๊ณํ๋ฉด์ ์ ์ ๋ ์์ธํด์ง
- ๊ณ ๊ฐ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๊ณ ๋น์ฆ๋์ค ํ๋ก์ธ์ค์ ๊ท์น์ ์ ์ํ ํ ์ ์๋ ๋น์ฆ๋์ค ๊ท์น์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ํํ
2. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ชฉ์
- ์ ๋ฌด์ ๋ณด๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ์ด๊ฐ ๋๋ ์ ๋ณด๋ค์ ๋ํด ์ผ์ ํ ํ๊ธฐ๋ฒ์ ์ํด ํํํจ์ผ๋ก์จ ์ ๋ณด์์คํ ๊ตฌ์ถ์ ๋์์ด ๋๋ ์ ๋ฌด ๋ด์ฉ์ ์ ํํ๊ฒ ๋ถ์ํ๋ ๊ฒ
- ๋ถ์๋ ๋ชจ๋ธ์ ๊ฐ์ง๊ณ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ์ฌ ๊ฐ๋ฐ ๋ฐ ๋ฐ์ดํฐ๊ด๋ฆฌ์ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ
- ๋จ์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฐ์ด๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํฐ๋ชจ๋ธ๋ง ์์ฒด๋ก์ ์ ๋ฌด๋ฅผ ์ค๋ช ํ๊ณ ๋ถ์ํ๋ ๋ถ๋ถ์์๋ ๋งค์ฐ ์ค์ํ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์
3. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํน์ง
- ์ถ์ํ Abstraction : ๊ณตํต์ ์ธ ํน์ง์ ์ฐพ๊ณ ๊ฐ๋ตํ๊ฒ ํ์ค์ธ๊ณ๋ฅผ ํํ
- ๋จ์ํ Simplication : ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํผํ๊ณ ๋๊ตฌ๋ ์ฝ๊ฒ ์ดํดํ ์ ์๊ฒ ํํ
- ๋ช ํ์ฑ Clarity : ์๋ฏธ์ ํด์์ด ๋ชจํธํ์ง ์๊ณ ํ๊ฐ์ง ์๋ฏธ๋ก ๋ช ํํ๊ฒ ํด์ ๊ฐ๋ฅํ๊ฒ ํํ
4. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋จ๊ณ
(1) ๊ฐ๋ ์ ๋ชจ๋ธ๋ง Conceptual Data Modeling
- ๊ณ ๊ฐ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ๋ถ์ํ๊ณ ์ ๋ฌด ์ ์ฒด์ ๋ํด์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ํ ( ์ ๋ฌด ์ค์ฌ์ ์ด๊ณ ํฌ๊ด์ ์ธ ์์ค์ ๋ชจ๋ธ๋ง )
- ์ ์ฌ์ ๊ด์ ์์ ๊ธฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ๋ง, ์ถ์ํ ์์ค์ด ๊ฐ์ฅ ๋์ ์์ค
- ๋ณต์กํ๊ฒ ํํํ์ง ์๊ณ ์ค์ํ ๋ถ๋ถ์ ์์ฃผ๋ก ๋ชจ๋ธ๋งํ๋ ๋จ๊ณ
- ๊ณ์ธตํ ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋คํธ์ํฌ ๋ชจ๋ธ, ๊ด๊ณํ ๋ชจ๋ธ์ ์๊ด์์ด ์ ๋ฌด ์ธก๋ฉด์์ ๋ชจ๋ธ๋ง
- ์ ๋ฌด์ ๊ด์ ์์ ๋ชจ๋ธ๋งํ๋ฉฐ ๊ธฐ์ ์ ์ธ ์ฉ์ด๋ ๊ฐ๊ธ์ ์ฌ์ฉํ์ง ์์
- ์ํฐํฐEntity์ ์์ฑAttribute๋ฅผ ๋์ถํ๊ณ ๊ฐ๋ ์ ERD(: Entity Relationship Diagram)๋ฅผ ์์ฑ
(2) ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง Logical Data Modeling
- ๊ฐ๋ ์ ๋ชจ๋ธ์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ก ๋ณํํ๋ ์์
- ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ์ ์ข ์
- ์๋ณ์๋ฅผ ๋์ถํ๊ณ ํ์ํ ๋ชจ๋ ๋ฆด๋ ์ด์ ์ ์ (๊ด๊ณ, ์์ฑ ๋ฑ์ ๋ชจ๋ ํํ)
- ์ ๊ทํ๋ฅผ ์ํํด์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ ๋ฆฝ์ฑ์ ํ๋ณด, ์ฌ์ฌ์ฉ์ฑ์ ๋์
(3) ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง Physical Data Modeling
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ ๊ตฌ์ถ (ํ ์ด๋ธ, ์ธ๋ฑ์ค, ํจ์ ๋ฑ์ ์์ฑ)
- ์ฑ๋ฅ, ๋ณด์, ๊ฐ์ฉ์ฑ์ ๊ณ ๋ คํ์ฌ ๊ตฌ์ถ
5. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ด์
- ๋ฐ์ดํฐ : ๋น์ฆ๋์ค ํ๋ก์ธ์ค์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ. ๊ตฌ์กฐ ๋ถ์, ์ ์ ๋ถ์
- ํ๋ก์ธ์ค : ๋น์ฆ๋์ค ํ๋ก์ธ์ค์์ ์ํํ๋ ์์ ์ ์๋ฏธ. ์๋๋ฆฌ์ค ๋ถ์, ๋๋ฉ์ธ ๋ถ์, ๋์ ๋ถ์
- ๋ฐ์ดํฐ์ ํ๋ก์ธ์ค : ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์๋ฏธ. CRUD(Create, Read, Update, Delete) ๋ถ์
6. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ํ ERD : Entity Relationship Diagram
- 1976๋ ํผํฐ์ฒธ์ด Entity Relationship Model ํ๊ธฐ๋ฒ์ ๋ง๋ค์์ผ๋ฉฐ, ์ฌ์ค์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํ์ค์ผ๋ก ์ฌ์ฉ๋จ
- ์ํฐํฐ์ ์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ๋ ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ
- ERD๋ ์ดํด๊ฐ ์ฌ์์ผ ํ๊ณ ๋๋ฌด ๋ณต์กํ์ง ์์์ผ ํจ
- ERD ์์ฑ ์ ์ฐจ
1) ์ํฐํฐ๋ฅผ ๋์ถํ๊ณ ๊ทธ๋ฆฐ๋ค : ์ ๋ฌด์์ ๊ด๋ฆฌํด์ผ ํ๋ ์งํฉ์ ๋์ถ
2) ์ํฐํฐ๋ฅผ ๋ฐฐ์นํ๋ค : ์ค์ํ ์ํฐํฐ๋ฅผ ์ผ์ชฝ ์๋จ(์์ ์กฐ๊ธ ์๋์ชฝ ์ค์)์ ๋ฐฐ์น
3) ์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ๋ค
4) ๊ด๊ณ๋ช ์ ์์ ํ๋ค : ์ํฐํฐ ๊ฐ์ ์ด๋ค ํ์๋ ์กด์ฌ๊ฐ ์๋์ง ํํ
5) ๊ด๊ณ ์ฐธ์ฌ๋๋ฅผ ํํํ๋ค : ๊ด๊ณ ์ฐธ์ฌ๋๋ ํ ๊ฐ์ ์ํฐํฐ์ ๋ค๋ฅธ ์ํฐํฐ ๊ฐ์ ์ฐธ์ฌํ๋ ๊ด๊ณ ์๋ฅผ ์๋ฏธ
( ๊ณ ๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ ๊ณ์ข๋ฅผ ๊ฐ์ค ํ ์ ์๋ค )
6) ๊ด๊ณ์ ํ์ ์ฌ๋ถ๋ฅผ ํํํ๋ค : ํ์๋ ๋ฐ๋์ ์กด์ฌํด์ผ ํ๋ ๊ฒ
( ๋ชจ๋ ๊ณ ๊ฐ์ ๋ฐ๋์ ํ๋์ ๊ณ์ข๋ฅผ ๊ฐ์คํด์ผ ํ๋ค )
7. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๊ณ ๋ ค์ฌํญ
(1) ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ ๋ฆฝ์ฑ
- ๋ ๋ฆฝ์ฑ์ด ํ๋ณด๋ ๋ชจ๋ธ์ ๊ณ ๊ฐ์ ์ ๋ฌด ๋ณํ์ ๋ฅ๋์ ์ผ๋ก ๋์ํ ์ ์๋ค
- ๋ ๋ฆฝ์ฑ์ ํ๋ณดํ๊ธฐ ์ํด์๋ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํด์ผ ํ๋ค
- ์ ๊ทํ : ๋ฐ์ดํฐ ์ค๋ณต์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ
(2) ๊ณ ๊ฐ ์๊ตฌ์ฌํญ์ ํํ
- ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ผ๋ก ๊ณ ๊ฐ๊ณผ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ฌ ๊ฐ์ ์์ฌ์ํต์ ํ ์ ์์ด์ผ ํ๋ฏ๋ก, ๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๊ฐ๊ฒฐํ๊ณ ๋ช ํํ๊ฒ ํํํด์ผ ํ๋ค
(3) ๋ฐ์ดํฐ ํ์ง ํ๋ณด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ ์ ๋ฐ์ดํฐ ํ์ค์ ์ ์ํ๊ณ ํ์ค ์ค์์จ์ ๊ด๋ฆฌํด์ผ ํ๋ค
- ๋ฐ์ดํฐ ํ์ค์ ํ๋ณดํด์ผ ๋ฐ์ดํฐ ํ์ง์ ํฅ์์ํฌ ์ ์๋ค
8. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์ ์์ฌํญ
(1) ์ค๋ณต Duplication : ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋, ์๊ฐ, ๊ทธ๋ฆฌ๊ณ ์ฅ์๋ฅผ ํ์ ํ๋๋ฐ ๋์์ ์ค์ผ๋ก์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฌ๋ฌ ์ฅ์์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์๋ชป์ ํ์ง ์๋๋ก ํ๋ค
(2) ๋น์ ์ฐ์ฑ Inflexibility : ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ด๋ป๊ฒ ์ค๊ณํ๋๋์ ๋ฐ๋ผ ์ฌ์ํ ์ ๋ฌด๋ณํ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์์๋ก ๋ณ๊ฒฝ๋จ์ผ๋ก์จ ์ ์ง๋ณด์์ ์ด๋ ค์์ ๊ฐ์ค์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์ ์๋ฅผ ๋ฐ์ดํฐ์ ์ฌ์ฉ ํ๋ก์ธ์ค์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ฐ์ดํฐ ํน์ ํ๋ก์ธ์ค์ ์์ ๋ณํ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๋ํ ๋ณํ๋ฅผ ์ผ์ผํฌ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ์ค์ธ๋ค
(3) ๋น์ผ๊ด์ฑ Inconsistency : ๋ฐ์ดํฐ์ ์ค๋ณต์ด ์๋๋ผ๋ ๋น์ผ๊ด์ฑ์ ๋ฐ์ํ ์ ์๋ค. ๊ฐ๋ฐ์๊ฐ ์๋ก ์ฐ๊ด๋ ๋ค๋ฅธ ๋ฐ์ดํฐ์ ๋ชจ์๋๋ค๋ ๊ณ ๋ ค ์์ด ์ผ๋ จ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํ ๋ ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ ๊ฐ์ ์ํธ ์ฐ๊ด ๊ด๊ณ์ ๋ํด ๋ช ํํ๊ฒ ์ ์ํ๋ค๋ฉด ์ด๋ฌํ ์ํ์ ์ฌ์ ์ ์๋ฐฉ ๊ฐ๋ฅํ๋ค. ์ฌ์ฉ์๊ฐ ์ฒ๋ฆฌํ๋ ํ๋ก์ธ์ค ํน์ ์ด์ ๊ด๋ จ๋ ํ๋ก๊ทธ๋จ๊ณผ ํ ์ด๋ธ์ ์ฐ๊ณ์ฑ์ ๋์ด๋ ๊ฒ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์ ๋ฌด ๋ณ๊ฒฝ์ ๋ํด ์ทจ์ฝํ๊ฒ ๋ง๋๋ ๋จ์ ์ ํด๋นํ๋ค.
9. 3์ธต ์คํค๋ง 3-Level Schema
- ์ฌ์ฉ์, ์ค๊ณ์, ๊ฐ๋ฐ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณด๋ ๊ด์ ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ์ ํ๊ณ ์ด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ ANSI ํ์ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ๋ฆฝ์ฑ์ ํ๋ณดํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
- ๋ฐ์ดํฐ์ ๋ ๋ฆฝ์ฑ์ ํ๋ณดํ๋ฉด ๋ฐ์ดํฐ ๋ณต์ก๋ ์ฆ๊ฐ, ๋ฐ์ดํฐ ์ค๋ณต ์ ๊ฑฐ, ์ฌ์ฉ์ ์๊ตฌ์ฌํญ ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ๋์๋ ฅ ํฅ์, ๊ด๋ฆฌ ๋ฐ ์ ์ง๋ณด์ ๋น์ฉ ์ ๊ฐ ๋ฑ์ ์ฅ์ ์ ๊ฐ์
- 3๋จ๊ณ ๊ณ์ธต์ผ๋ก ๋ถ๋ฆฌํด์ ๋ ๋ฆฝ์ฑ์ ํ๋ณดํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ ๊ณ์ธต์ ๋ทฐView ๋ผ๊ณ ๋ ํ๋ค
- 3์ธต ์คํค๋ง์ ๋ ๋ฆฝ์ฑ
- ๋ ผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ : ๊ฐ๋ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ์ธ๋ถ ์คํค๋ง๊ฐ ์ํฅ์ ๋ฐ์ง ์๋ ๊ฒ
- ๋ฌผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ : ๋ด๋ถ ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ๊ฐ๋ ์คํค๋ง๊ฐ ์ํฅ์ ๋ฐ์ง ์๋ ๊ฒ
- ๊ตฌ์กฐ
1) ์ธ๋ถ ์คํค๋ง External Schema
- ์ฌ์ฉ์ ๊ด์ , ์ ๋ฌด์ ๊ด๋ จ์ด ์๋ ๋ฐ์ดํฐ ์ ๊ทผ
- ๊ด๋ จ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ทฐView๋ฅผ ํ์
- ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ ๊ทผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์
2) ๊ฐ๋ ์คํค๋ง Conceptual Schema
- ์ค๊ณ์ ๊ด์ , ์ฌ์ฉ์ ์ ์ฒด ์ง๋จ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ. ๋ชจ๋ ์ฌ์ฉ์ ๊ด์ ์ ํตํฉํ ์กฐ์ง ์ ์ฒด ๊ด์ ์ ํตํฉ์ ํํ
- ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๊ท์น๊ณผ ๊ตฌ์กฐ๋ฅผ ํํ. ํตํฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
- ๋ชจ๋ ์์ฉ์์คํ ๋ค์ด๋ ์ฌ์ฉ์๋ค์ด ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ ์กฐ์ง ์ ์ฒด์ DB๋ฅผ ๊ธฐ์ ํ ๊ฒ
- DB์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๊ทธ๋ค๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ๋ ์คํค๋ง
3) ๋ด๋ถ ์คํค๋ง Internal Schema
- ๊ฐ๋ฐ์ ๊ด์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌผ๋ฆฌ์ ์ ์ฅ ๊ตฌ์กฐ
- ๋ฐ์ดํฐ ์ ์ฅ ๊ตฌ์กฐ, ๋ ์ฝ๋ ๊ตฌ์กฐ, ํ๋ ์ ์, ์ธ๋ฑ์ค ๋ฑ์ ์๋ฏธ