Data Modeling & ERD Diagram
Last updated
Last updated
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ด๋ ์ ๋ณด์์คํ ๊ตฌ์ถ์ ๋์์ด ๋๋ ์ ๋ฌด ๋ด์ฉ์ ๋ถ์ํ์ฌ ์ดํดํ๊ณ ์ฝ์๋ ํ๊ธฐ๋ฒ์ ์ํด ํํ ํ๋๊ฑธ ์๋ฏธํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ๋ถ์๋ ๋ชจ๋ธ์ ๊ฐ์ง๊ณ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ์ฌ ๊ฐ๋ฐ ๋ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ฌ์ฉ๋๋ค.
ํนํ ๋ฐ์ดํฐ๋ฅผ ์ถ์ํํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ณจ๊ฒฉ์ ์ดํดํ๊ณ ๊ทธ ์ดํด๋ฅผ ๋ฐํ์ผ๋ก SQL ๋ฌธ์ฅ์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ์ ์ธ ์ธก๋ฉด์์ ํจ์จ์ ์ผ๋ก ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ํต์ฌ๊ณผ์ ์ด๋ผ๊ณ ํ ์ ์๋ค.
์ ๋ฌด ํ์ ์ ์ด๋ ํ ์ ๋ฌด๋ฅผ ์์ํ๊ธฐ ์ ์ ํด๋นํ๋ ์ ๋ฌด์ ๋ํด์ ํ์ ํ๋ ๋จ๊ณ.
๋ชจ๋ธ๋ง์ ์์ ๊ฐ์ ๋จผ์ ํด์ผํ ๊ฒ์ ์ด๋ ํ ์ ๋ฌด๋ฅผ ๋ฐ์ดํฐํํ์ฌ ๋ชจ๋ธ๋ง ํ ๊ฒ์ธ์ง์ ๋ํ ์๊ตฌ์ฌํญ ์์ง์ผ ๊ฒ์ด๋ค. ์ ๋ฌดํ์ ์ ํ๊ธฐ ์ข์ ๋ฐฉ๋ฒ์ UI๋ฅผ ์๋ขฐ์ธ๊ณผ ํจ๊ป ํ์ธํด ๋๊ฐ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ถ๊ทน์ ์ผ๋ก ๋ง๋ค์ด์ผ ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์์๋ณด์์ผ ํ๋ค.
์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ ๊ฒ์ํ (Okky) ์ ์๋ก ์ดํด๋ณด์
๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ด๊ฐ ํ๊ณ ์ ํ๋ ์ผ์ ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ตฌ์ํ๋ ๋จ๊ณ์ด๋ค. ๊ฐ ๊ฐ์ฒด๋ค๊ณผ ๊ทธ๋ค๊ฐ์ ๊ด๊ณ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ํํํ๊ธฐ ์ํด ERD ๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉํ๋ค.
์ ๋ฌดํ์ ๋จ๊ณ์์ ๊ฒฐ์ ํ๋ ๊ฒ์ํ ๋ฐ์ดํฐ ๊ตฌ์์ ๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ๊ตฌํํ ๊ฒ.
๊ฒ์ํ์๋ ๋ํ์ ์ผ๋ก ๊ฒ์ํ ์ด์ฉ์์ ํ์ ์ ๋ณด, ๋ก๊ทธ์ธ ์ ๋ณด, ๊ทธ๋ฆฌ๊ณ ๊ฒ์ํ์ ๊ฒ์๊ธ, ๋๊ธ์ด ์๋ค.
๊ฐ๋ ์ ์ธ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์์ฑ๋๋ฉด, ๊ตฌ์ฒดํ๋ ์ ๋ฌด ์ค์ฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ง๋๋๋ฐ, ์ด๊ฒ์ ๋ ผ๋ฆฌ์ ์ธ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ด๋ผ๊ณ ํ๋ค. ์ด ๋จ๊ณ์์ ์ ๋ฌด์ ๋ํ Key, ์์ฑ, ๊ด๊ณ๋ฑ์ ํ์ํ๋ฉฐ, ์ ๊ทํ๋ฅผ ์ํํ๋ค. ์ ๊ทํ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ผ๊ด์ฑ์ ํ๋ณดํ๊ณ ์ค๋ณต์ ์ ๊ฑฐํ์ฌ ์ ๋ขฐ์ฑ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ป๋๋ฐ ๋ชฉ์ ์ด ์๋ค.
์ด๋, ๋จ์ํ ์ถ์์ ์ธ ๋ฐ์ดํฐ์์ ๋ณด๋ค ๊ตฌ์ฒดํํ ๋ฐ์ดํฐ๋ก ์์ฑํ๋ค. ์๋ฅผ ๋ค์ด ํ์์ ๋ณด์ ์์ด๋, ๋น๋ฐ๋ฒํธ์ ๊ฐ ๋ฐ์ดํฐ ํ์ ์ ๋ช ์ํ๊ณ , ๊ฐ ๋ฐ์ดํฐ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ๋ฐํ๊ฒ ๋งบ์ด์ฃผ๋ฉฐ ํ ์ด๋ธ์ ํค(Key)๋ฅผ ์ง์ ํด์ค๋ค.
๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ต์ข ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ๊ณ , ์ ํํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ค์ ํ ์ด๋ธ์ ๋ง๋๋ ์์ ์ ๋งํ๋ค. ์๊ฐ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์์ผ๋ฉด ๊ทธ๊ฒ์ ์ค์ ๋ก SQL ๋ก ์์ฑํ๋ ๋จ๊ณ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
ERD (Entity Relationship Diagram)๋ ๋จ์ด์์ ์๋ฏธํ๋ ๊ทธ๋๋ก 'Entity ๊ฐ์ฒด'์ 'Relationship๊ด๊ณ'๋ฅผ ์ค์ ์ ์ผ๋ก ํ์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ํ ๋์ ์์๋ณด๊ธฐ ์ํด ๊ทธ๋ ค๋๋ ๋ค์ด์ด๊ทธ๋จ์ด๋ค. ๊ฐ์ฒด ๊ด๊ณ๋๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ ์๊ตฌ๋ถ์์ฌํญ์์ ์ป์ ์ํฐํฐ์ ์์ฑ๋ค์ ๊ด๊ณ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ํํํ ๊ฒ์ด๋ค.
์ํฐํฐ๋ ์ ์ ๊ฐ๋ฅํ ์ฌ๋ฌผ ๋๋ ๊ฐ๋ ์ ์๋ฏธํ๋ค.
์ฌ๋๋ ๋ ์ ์์ผ๋ฉฐ ํ๋กํ์ด๋ ๋์์ ๋ณด์ ๊ฐ์ ๋ฌดํ์ ์ ๋ณด๋ ๋ฐ์ดํฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ด ์ํฐํฐ๋ก ํํ๋๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
์๋ฅผ๋ค์ด ํ์ Entity๋ ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํํ๋๋ค.
์ํฐํฐ์๋ ๊ฐ์ฒด๊ฐ ๊ฐ๊ณ ์๋ ์์ฑ(Attribute)์ ํฌํจํ๋ค.
์๋ฅผ๋ค์ด ํ์ ์ํฐํฐ๋ผ๋ฉด, ํ๋ฒ, ์ด๋ฆ, ์ฃผ์, ์ ๊ณต ..๋ฑ ์์ฑ๋ค์ด ์๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ๊ฐ ํ๋(์ปฌ๋ผ)๋ค์ด ์ํฐํฐ ์์ฑ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
๋๋ฉ์ธ์ ์์ฑ์ ๊ฐ, ํ์ , ์ ์ฝ์ฌํญ ๋ฑ์ ๋ํ ๊ฐ์ ๋ฒ์๋ฅผ ํํํ๋ ๊ฒ์ด๋ค.
์ฌ์ฉ์ ๊ธฐํธ์ ๋ฐ๋ผ ์์ฑ ํ์ ๋ง ๊ทธ๋ฆด์๋ ์๊ณ , ๊ฐ๋ ์ฑ์ ์ํด์ ์๋ตํ ์๋ ์๋ค.
์ด๋ ๋ฐ์ดํฐ ํ์ ์ ๋ช ์ํ ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ง์ํ๋ ํ์ ์ ๋ง๊ฒ ํด์ผํ๋ค.
์ํฐํฐ๋ ์ ์ฅํ๋ ๋ฐ์ดํฐ ์ ๋ณด ์ฃผ์ ์ ๋ฐ๋ผ ์ข ๋ฅ๊ฐ ๋ค์ํ๋ค.
๊ณ ๊ฐ ์ ๋ณด๊ฐ์ ์ค์ ๋ก ๋ฌผ๋ฆฌ์ ์ธ ํํ๋ก ์๋ ์ ๋ณด์ ๊ตฌ๋งค ์ด๋ ฅ๊ฐ์ ๋ฌดํ์ ์ด๊ณ ๊ฐ๋ ์ ์ธ ์ ๋ณด๊ฐ ์๋ค.
์ด ์ํฐํฐ ๋ถ๋ฅ ๊ตฌ๋ถ์ ์ ํด์ฃผ์ด์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ์์ด ๊ฐ ๋ฐ์ดํฐ ์ฃผ์ ์ ๋ง๊ฒ ๋ชจ๋ธ๋ง์ ๊ตฌ์ถํ ์ ์๋ค.
๋ค์์ ์์์ ๋ง๋ ํ์ ์ํฐํฐ์ ํ์๋ณ ์ทจ๋ฏธ๋ฅผ ํํํ๋ ์ํฐํฐ๋ฅผ ์ถ๊ฐํ์๋ค. ํ์ ์ํฐํฐ๋ ์ ํ ์ํฐํฐ์ ์ํ์ฌ, ํ์๋ณ ์ทจ๋ฏธ๋ ๋ฌดํ ์ํฐํฐ์ ์ํ๊ฒ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ Primary Key๋ฅผ ํํ
์ค๋ณต์ด ์๊ณ NULL ๊ฐ์ด ์๋ ์ ์ผํ ๊ฐ์ ์ง์ ํ๋ ์๋ณ์
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด โ ๋ค์ด์๋ชฌ๋๋ก ํํํ๊ธฐ๋ ํ๊ณ ์๋๋ฉด ์ด์ ๋ก๋ ํํํ๊ธฐ๋ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฃผ ์๋ณ์๋ ์ ์ผํ ์์ฑ์ด๋ฏ๋ก ๋ค๋ฅธ ์์ฑ๊ณผ์ ๋ช ํํ ๊ตฌ๋ถ์ ์ํด ๊ตฌ๋ถ์ ์ ๋๊ธฐ๋ ํ๋ค.
ํด๋น ์์ฑ์ ๋ค์ด๊ฐ ๊ฐ์ Null ์ ๋นํ์ฉํ๋ค๋ฉด, N ํน์ NN์ ์ ๋๋ค.
๋ง์ผ Null ํ์ฉํ๋ค๋ฉด N์ ์ ์ง ์๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ Foreign Key๋ฅผ ํํ
์ธ๋ ์๋ณ์ ์ญ์ key์ ์ผ์ข ์ด๋ผ ERD ์ํฐํฐ์๋ ์ด์ ์์ด์ฝ์ผ๋ก ํ์ํ๋ค. (ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๋ค)
์ธ๋ ์๋ณ์๋ฅผ ํ์ํ ๋์๋ ์ ์ ์ด์ด์ฃผ๋๋ฐ ๊ฐ์ฒด์ ๊ด๊ณ๋ฅผ ๋ฐ์ ธ ํ์ํ๋ค.
๊ฐ ์ํฐํฐ ์ ํ๋ค์ ๋ง๋ค์์ผ๋ฉด, ์ํฐํฐ ๋ผ๋ฆฌ ๊ด๊ณ๊ฐ ์๋ ๊ฒฝ์ฐ ์ ์ ์ด์ด ๊ด๊ณ๋ฅผ ๋งบ์ด์ผ ํ๋ค. ์ํฐํฐ ๋ผ๋ฆฌ ๊ด๊ณ ์ ์ ๊ทธ์๋ ์ค์ ์ผ๋ก ๊ทธ์์ง ์ ์ ์ผ๋ก ๊ทธ์์ง ๋๋๋๋ฐ, ๋ ์ํฐํฐ ๊ด๊ณ์์ ๋ถ๋ชจ์ ํค๋ฅผ ์์์์ PK๋ก ์ฌ์ฉํ๋์ง ์ผ๋ฐ ์์ฑ์ผ๋ก ์ฌ์ฉํ์ง์ ๋ฐ๋ผ์ ํ๊ธฐ๊ฐ ๋ค๋ฅด๊ฒ ๋๋ค.
์ค์ ์ผ๋ก ๊ทธ์ผ๋ฉด ๊ฐํ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๋ฉฐ '์๋ณ์ ๊ด๊ณ'๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ฉฐ, ์ ์ ์ผ๋ก ๊ทธ์ผ๋ฉด ์ฝํ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๋ฉฐ '๋น์๋ณ์ ๊ด๊ณ'๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๊ฒ ๋๋ค.
์ค์ ์ผ๋ก ํํ
๋ถ๋ชจ ์์ ๊ด๊ณ์์ ์์์ด ๋ถ๋ชจ์ ์ฃผ ์๋ณ์๋ฅผ ์ธ๋ ์๋ณ์๋ก ์ฐธ์กฐํด์ ์์ ์ ์ฃผ ์๋ณ์๋ก ์ค์
์๋ ๊ทธ๋ฆผ์์ ์์ ์ํฐํฐ(ํ์๋ณ ์ทจ๋ฏธ)๊ฐ ๋ถ๋ชจ ์ํฐํฐ(ํ์)์ ํ๋ฒ์ ์์ ์ ์ฃผ ์๋ณ์๋ก ์ค์ ํ์๋ค.
๋น์๋ณ์ ๊ด๊ณ
์ ์ ์ผ๋ก ํํ
๋ถ๋ชจ ์์ ๊ด๊ณ์์ ์์์ด ๋ถ๋ชจ์ ์ฃผ ์๋ณ์๋ฅผ ์ธ๋ ์๋ณ์๋ก ์ฐธ์กฐํด์ ์ผ๋ฐ ์์ฑ์ผ๋ก ์ฌ์ฉ.
์๋ ๊ทธ๋ฆผ์์ ์์ ์ํฐํฐ(์ฌ์์ ๋ณด)๊ฐ ๋ถ๋ชจ ์ํฐํฐ(๋ถ์์ ๋ณด)์ ๋ถ์์ฝ๋๋ฅผ ์ผ๋ฐ ์์ฑ์ผ๋ก ๋์๋ค.
๊ด๊ณ๊ฐ ์กด์ฌํ๋ ๋ entity์ฌ์ด์ ํ entity์์ ๋ค๋ฅธ entity ๋ช๊ฐ์ ๊ฐ์ฒด์ ๋์๋๋์ง ์ ์ฝ์กฐ๊ฑด์ ํ๊ธฐํ๊ธฐ์ํด ์ ์ ๊ทธ์ด ํํํ๋ค. ๋ํ์ ์ผ๋ก Mapping Cardinality์ ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค.
ํ์ง๋ง ERD ๋ค์ด์ด๊ทธ๋จ์ ์์๊ฐ์ด ์ ๋ค์ ๋ง ๊ธ๋๋ค๋ฉด ๊ฐ๋ ์ฑ์ด ๋งค์ฐ ์์ข์์ง๊ณ ํ๊ฐ ๋๋ฌ์์ง๊ธฐ ๋๋ฌธ์, ์ด๋ฌํ ์ํฐํฐ๊ฐ์ 1 ๋ ๋ค์ ๊ด๊ณ๋ฅผ ํ๊ธฐ ํ๊ธฐ ์ํด ERD์์๋ ์ ์ ๋ ๋ชจ์์ ๋ค๋ฅด๊ฒ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
ํ์ ์ ์ฒด์ ๋ณด๋ 1:1๋ก ๋งค์นญ๋๋ค.
ํ๋ช ์ ํ์์ ํ๋์ ์ ์ฒด์ ๋ณด๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ๋ช ์ ํ์์ ์ฌ๋ฌ๊ฐ์ ์ทจ๋ฏธ๋ฅผ ๊ฐ์ง์๋ ์๋ค.
์ ํ ์ํฐํฐ ์ ์ฅ์์, TV ์ ํ์ ๋์ฐ ํฐ๋น, ์ผ์ฑ ํฐ๋น, ์ ํ ํฐ๋น ๊ฐ์ ์ฌ๋ฌ ์ ์กฐ์ ์ฒด ์ ํ์ด ์์ ์ ์๋ค.์ด๋ ๋์ฅ๊ณ ๋ ์ธํ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
์ฌ๋ฌ ๊ธฐ์ ์์ ์์ ๋ง์ ์ํ๋ฅผ ์์ฐํ๋ค. ์ ์กฐ์ ์ฒด ์ํฐํฐ ์ ์ฅ์์, ์ผ์ฑ ์ ์กฐ์ ์ฒด๋ ์ธํ๊ธฐ๋ง ์์ฐํ๋๊ฒ ์๋๋ผ MP3๋ ๊ฐ์ด ์์ฐํ๋ค.์ค์ ๋ก ์ผ์ฑ์ด๋ ์ ํ ํ์ฌ๋ ๊ฐ์ ์ ํ, ์ค๋งํธํฐ, ์ ์๊ธฐ๊ธฐ ๋ฑ ์ฌ๋ฌ ์ข ๋ฅ์ ์ ํ์ ์์ฐํ๋ค.
๋ฐ๋ผ์ ์ ํ๊ณผ ์ ์กฐ์ ์ฒด ๊ด๊ณ๋ ๋ค ๋ ๋ค ๊ด๊ณ ๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ ์ํฐํฐ๊ฐ ๋ค ๋ ๋ค ๊ด๊ณ์ ์๋ ๊ฒฝ์ฐ, ๋๊ฐ์ ์ํฐํฐ๋ง์ผ๋ก๋ ์๋ก๋ฅผ ํํํ๋๋ฐ ๋ถ์กฑํ๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์์๋ M:N ๊ด๊ณ๋ฅผ ์์ฑ๋์ง ์์ ๋ชจ๋ธ๋ก ๊ฐ์ฃผํ์ฌ, ๋ ์ํฐํฐ์ ๊ด๊ณ๋ฅผ 1:N, N:1 ๋ก ์กฐ์ ํ๋ ์์ ์ด ํ์ํ๋ค.
๋ฐ๋ผ์ ๋ ์ํฐํฐ์ ๊ด๋ จ์ฑ์ ํํํ๊ธฐ ์ํด์๋ ์ค๊ฐ์ ๋ ๋ค๋ฅธ ์ํฐํฐ๋ฅผ ํ์๋ก ํ๋ค. ์ด ์ค๊ฐ ์ํฐํฐ(์ ์ฒด๋ณ ์ ํ)๊ฐ ๋ ์ํฐํฐ์ ๊ณต์ ์์ฑ ์ญํ ์ ํ๊ฒ ๋๋ค.
์ด ๋ถ๋ถ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์์ ๊ณต์ ์ฒ๋ผ ์ ์ฉ๋๋ ๊ท์น์ด๋ฉฐ, ERD ํ๋ก๊ทธ๋จ์์ M:N์ ์ก๊ฒ ๋๋ค๋ฉด ์๋์ผ๋ก ์๋์ ๊ฐ์ด ์กฐ์ ์์ ์ด ํํด์ง๊ฒ ๋๋ค.
๊ด๊ณ์ ๊ฐ ์ธก์ ๋์๋ฝ์ ๊ธฐํธ๋ฅผ ํ์ํ๋ค.
'|' ํ์๊ฐ ์๋ ๊ณณ์ ๋ฐ๋์ ์์ด์ผ ํ๋ ๊ฐ์ฒด. (ํ์)
'O' ํ์๊ฐ ์๋ค๋ฉด ์์ด๋ ๋๋ ๊ฐ์ฒด. (์ ํ)