-
[Database] ERD๋ฅผ ์ค๊ณํด๋ณด์!(2. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง-๋ ผ๋ฆฌ์ ์ค๊ณ)๐ปProgramming/Database 2023. 10. 9. 17:53
๐ ์ด์ ๊ธ
https://suucong.tistory.com/33
๐ ๋ ผ๋ฆฌ์ ์ค๊ณ
- ๋ ผ๋ฆฌ์ ์ค๊ณ ๋จ๊ฒ์์๋ ER์คํค๋ง๋ฅผ ๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฆด๋ ์ด์ ๋ค๋ก ์ฌ์(mapping)ํ๋ค.
- ๋ ผ๋ฆฌ์ ์ค๊ณ๋ฅผ ํด์ผํ๋ ์ด์ : ER ์คํค๋ง์๋ ๊ฐ์ฒด ํ์ ๊ณผ ๊ด๊ณ ํ์ ์ด ์กด์ฌํ์ง๋ง ๊ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๊ฐ์ฒด ํ์ ๊ณผ ๊ด๊ณ ํ์ ์ ๊ตฌ๋ถํ์ง ์๊ณ ๋ฆด๋ ์ด์ ๋ค๋ง ์๋ค. → ๊ฐ์ฒด์ด๊ฑด ๊ด๊ณ์ด๊ฑด ๋ชจ๋ ๋ฆด๋ ์ด์ ํ ์ด๋ธ๋ก ๋งคํํด์ฃผ์ด์ผ ํจ.
- ๋ฆด๋ ์ด์ ์ผ๋ก ์ฌ์ํ ๋์์ด ER ์คํค๋ง์์ ๊ฐ์ฒด ํ์ ์ธ์ง ๋๋ ๊ด๊ณ ํ์ ์ธ์ง, ๊ฐ์ฒด ํ์ ์ด๋ผ๋ฉด ์ ๊ท ๊ฐ์ฒด ํ์ ์ธ์ง ๋๋ ์ฝํ ๊ฐ์ฒด ํ์ ์ธ์ง, ๊ด๊ณ ํ์ ์ด๋ผ๋ฉด 2์ง ๊ด๊ณ ํ์ ์ธ์ง 3์ง ์ด์์ ๊ด๊ณ ํ์ ์ธ์ง, ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ๋จ์ผ ๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ์ธ์ง ๋ค์ค๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ์ธ์ง ๋ฑ์ ๋ฐ๋ผ์ ์ฌ์ํ๋ ๋ฐฉ๋ฒ์ด ๋ฌ๋ผ์ง๋ค.
- 7๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๊ฐ๋ ์ ์ผ๋ก ์ค๊ณํ ER ์คํค๋ง๋ฅผ ๋ฆด๋ ์ด์ ํ ์ด๋ธ๋ก ์ฌ์ํด๋ณธ๋ค.
๐ 1. ์ ๊ท ๊ฐ์ฒด ํ์ ์ ์ฌ์
- ์ ๊ท ๊ฐ์ฒด ํ์ ๊ณผ ๋จ์ผ ๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ฌ์ํ๋ค.
- ER ์คํค๋ง์ ๊ฐ์ฒด ํ์ ์ ๋ฆด๋ ์ด์ ํ ์ด๋ธ๋ก ์ฌ์ํด์ค๋ค.
- ์ ๊ท ๊ฐ์ฒด ํ์ ์ ์๋ ๋จ์ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ๋ฆด๋ ์ด์ R์ ๋ชจ๋ ํฌํจ์ํจ๋ค. ๋ํ ๋ณตํฉ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์์๋ค๋ฉด, ๊ทธ๊ฒ์ ๊ตฌ์ฑํ๋ ๋จ์ ์ ํธ๋ฆฌ๋ทฐํธ๋ค๋ง ๋ฆด๋ ์ด์ R์ ํฌํจ์ํจ๋ค. ์ ๊ท ๊ฐ์ฒด ํ์ ์์ ๊ท์ ํด๋์ ๊ธฐ๋ณธํค๊ฐ ๋ฆด๋ ์ด์ R์ ๊ธฐ๋ณธํค๊ฐ ๋๋ค.
๐ 2. ์ฝํ ๊ฐ์ฒด ํ์ ์ ์ฌ์
- ์ฝํ ๊ฐ์ฒด ํ์ ๊ณผ ๋จ์ผ ๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ
- ์ฃผ ๊ฐ์ฒด ํ์ E๋ฅผ ๊ฐ๋ ๊ฐ ์ฝํ ๊ฐ์ฒด ํ์ W์ ๋ํ์ฌ ๋ฆด๋ ์ด์ R์ ์์ฑํ๋ค. W์ ๋ชจ๋ ๋จ์ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ๋ฆด๋ ์ด์ R์ ํฌํจ์ํจ๋ค.
- E์ ๊ธฐ๋ณธ ํค๋ฅผ R์ ์ธ๋ํค๋ก ํฌํจ์ํจ๋ค.
- R์ ๊ธฐ๋ณธํค๋ ์ฝํ ๊ฐ์ฒด ํ์ ์ ๋ถ๋ถํค์ E์์ ์ฐธ์กฐํ ์ธ๋ํค์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
๐ 3. 2์ง 1:1 ๊ด๊ณ์ ์ฌ์
- ์ด ๊ด๊ณ์ ํฌํจ๋ ๋ ๊ฐ์ ๋ฆด๋ ์ด์ ์ค ์ํ๋ ๋ฆด๋ ์ด์ ํ๋R ๋ฅผ ์ ํํ์ฌ ์ ํํ์ง ์์ ๋ฆด๋ ์ด์ T ์ ๊ธฐ๋ณธ ํค๋ฅผ ์ ํํ ๋ฆด๋ ์ด์ R์ ์ธ๋ ํค(FK)๋ก ํฌํจ์ํจ๋ค.
- ๋ง์ฝ ๊ตณ์ด ํ๋์ ๋ฆด๋ ์ด์ ์ ์ ํํ์๋ฉด, R๊ณผ T์ค์์ ๊ด๊ณ์ ์ ์ฒด ์ฐธ์ฌํ๊ณ ์๋ ๋ฆด๋ ์ด์ ์ ์ ํํ๋ฉด ์ข๋ค.
- ๊ด๊ณ ํ์ ์ด ๋ง์ฝ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์ ํํ ๊ฐ์ฒด ํ์ ์ ๋์๋๋ ๋ฆด๋ ์ด์ ์ ํฌํจ์ํจ๋ค.
- ๋ ๊ฐ์ฒด ํ์ ๋ชจ๋ ๊ด๊ณ ํ์ ์ ์์ ํ ์ฐธ์ฌํ ๊ฒฝ์ฐ ๋ ๊ฐ์ฒด ํ์ ๊ณผ ๊ด๊ณ ํ์ ์ ํ๋์ ๋ฆด๋ ์ด์ ์ผ๋ก ํฉ์น๋ ๋ฐฉ๋ฒ๋ ๊ฐ๋ฅ.
- ๋๋๋ก์ด๋ฉด ๋ฐฉ๋ฒ 1, 2๋ฅผ ์ด์ฉํ๋๋ก ๊ถ๊ณ ํ๋ค.
- ๋ ์ ํธ๋ฆฌ๋ทฐํธ์ ์๊ฐ ์ ์ ๋ฆด๋ ์ด์ ์ ์ธ๋ํค๋ฅผ ๋ฃ์ด์ค ๋ฆด๋ ์ด์ ์ผ๋ก ์ ํ๋ฉด ์ข๋ค.
๐ 4. ์ ๊ท 2์ง 1:N ๊ด๊ณ ํ์
- ๊ด๊ณ ํ์ R์ ๋ํ์ฌ N์ธก์ ํด๋นํ๋ ๋ฆด๋ ์ด์ S์ 1์ธก์ ํด๋นํ๋ ๋ฆด๋ ์ด์ T์ ๊ธฐ๋ณธํค๋ฅผ N์ธก์ ๋ฆด๋ ์ด์ ์ ์ธ๋ ํค๋ก ํฌํจ์ํจ๋ค.
- ๋ง์ฝ์ N์ธก์ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ 1์ธก์ ๋ฆด๋ ์ด์ ์ ์ธ๋ํค๋ก ๋ฃ์ด์ฃผ๋ฉด ์ ๋ณด์ ์ค๋ณต์ด ๋ง์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผํ๋ค.
- ์์ ๊ฐ์ด ๋ง์ฝ ๊ด๊ณ ํ์ ์ด ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ๋ชจ๋ S์ ๋ฆด๋ ์ด์ ์ ํฌํจ์ํจ๋ค.
๐ 5. 2์ง M:N๊ด๊ณ์ ์ฌ์
- ์ด ๊ด๊ณํ์ ์ ๋ํด์๋ ์๋ก์ด ๋ฆด๋ ์ด์ R์ ํ๋ ์์ฑํ๋ค.
- ์ด ๊ด๊ณํ์ ์ ์ฐธ์ฌํ๊ณ ์๋ ๋ ๋ฆด๋ ์ด์ ๋ค์ ๊ธฐ๋ณธํค๋ฅผ R์ ์ธ๋ํค๋ก ํฌํจ์ํค๊ณ , ์ด๋ค์ ์กฐํฉ์ด ๋ฆด๋ ์ด์ R์ ๊ธฐ๋ณธํค๊ฐ ๋๋ค.
- ๊ด๊ณ ํ์ R์ด ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ๋จ์ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ R์ ๋ชจ๋ ํฌํจ์ํจ๋ค.
๐ 6. 3์ง ์ด์์ ๊ด๊ณ ํ์ ์ ์ฌ์
- ๊ด๊ณ ํ์ ์ ๋ํ์ฌ ๋ฆด๋ ์ด์ R์ ์์ฑํ๋ค.
- ๊ด๊ณ ํ์ R์ ์ฐธ์ฌํ๋ ๋ชจ๋ ๊ฐ์ฒด ํ์ ์ ๋์๋๋ ๋ฆด๋ ์ด์ ๋ค์ ๊ธฐ๋ณธ ํค๋ฅผ ๋ฆด๋ ์ด์ R์ ์ธ๋ํค๋ก ํฌํจ์ํจ๋ค.
- R์ด ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ๋ฆด๋ ์ด์ R์ ํฌํจ์ํจ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ด ์ธ๋ํค๋ค์ด ์งํฉ์ด ๋ฆด๋ ์ด์ R์ ๊ธฐ๋ณธํค๊ฐ ๋๋ค.
- ๊ด๊ณ ํ์ R์ ์ฐธ์ฌํ๋ ๊ฐ์ฒด ํ์ ๋ค์ ์นด๋๋๋ฆฌํฐ๊ฐ 1:N:N์ด๋ฉด 1์ธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธ ํค๋ฅผ ์ฐธ์กฐํ๋ ์ธ๋ ํค๊ฐ ๋ฆด๋ ์ด์ R์ ๊ธฐ๋ณธํค๊ฐ ๋๋ค.(? ์ ์ดํด๊ฐ์๋จ...)
๐ 7. ๋ค์ค ๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ์ ์ฌ์
- ๊ฐ ๋ค์ค๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ์ ๋ํ์ฌ ๋ฆด๋ ์ด์ R์ ์์ฑํ๋ค.
- ๋ค์ค๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ์ ํด๋นํ๋ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋ฆด๋ ์ด์ R์ ํฌํจ์ํค๊ณ ๋ค์ค๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ ํธ๋ฆฌ๋ทฐํธ๋ก ๊ฐ๋ ๊ฐ์ฒดํ์ ์ด๋ ๊ด๊ฒ ํ์ ์ ํด๋นํ๋ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธ ํค๋ฅผ ๋ฆด๋ ์ด์ R์ ์ธ๋ ํค๋ก ํฌํจ์ํจ๋ค.
- ๋ฆด๋ ์ด์ R์ ๊ธฐ๋ณธํค๋ ๋ค์ค๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ์ ์ธ๋ ํค์ ์กฐํฉ์ด๋ค.
'๐ปProgramming > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ