๐ง What is ERD?
์ฐ์ , ERD๊ฐ ๋ฌด์์ธ์ง ๋ถํฐ ์ง๊ณ ๋์ด๊ฐ์.
- ERD๋ Entity Relationship Diagram์ ์ฝ์ด๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ํ๋์ ์์๋ณด๊ธฐ ์ํด์ ์ฐ์ธ๋ค.
- DB๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ ์ ๋ณด๋ค ๋ง์ ์์ด๋์ด๋ฅผ ๋์ถํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ์ดํด๋ฅผ ๋์ด๊ธฐ ์ํด ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ค์ํ๋ค.
- ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํ ๋ ํ ์ด๋ธ๋ค์ด ๊ตฌ์กฐํ๋ ๋ค์ด์ด๊ทธ๋จ์ ๋ณด๋ฉด์ ๋์์ ๋ฐ์ ์ ์๋ค.
- ๋ฐ์ดํฐ์ ๋ค์ํ ํน์ง์ ํ์ธํ ์ ์์ด ์๊ตฌ์ฌํญ์ ๊ทธ์ ๋ง๊ฒ ๊ฐ๋ฐํ ์ ์๋ค.
ERD์ ํต์ฌ์ ์ธ ๊ฐ์ง ์ด๋ค. "Entity" ์ "Relationship", ๊ทธ๋ฆฌ๊ณ "Attribute"์ด๋ค. ๊ฐ ์ฉ์ด๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง ์ดํด๋ณด์.
#Entity(๊ฐ์ฒด)
- Entity๋ ๊ด๋ฆฌํ๊ณ ์ ํ๋ ์ ๋ณด์ ์ค์ฒด์ด๋ฉฐ, ์ฌ๋, ๊ฐ์ฒด ํน์ ๊ฐ๋ ์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ ๋, ์ฝ๊ฒ๋ ํ ์ด๋ธ์ด Entity๋ก ์ ์๋ ์ ์๋ค.
- ๋ชจ๋ Entity๋ ํ๋ ์ด์์ ์๋ณ์ (UID)๋ฅผ ์ง๋ ์ผ ํ๋ฉฐ, UID๊ฐ ์๋ค๋ฉด Entity๋ผ๊ณ ํ ์ ์๋ค.
- Weak Entity
- ๊ฐ์ฒด๊ฐ ๊ฐ์ง ์์ฑ๋ค๋ก๋ ๊ฐ์ฒด๋ฅผ ๊ณ ์ ํ๊ฒ ์ ์ํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ ๊ต์ก๊ณผ์ ์ ๋ถ๋ฐ์ด ์๋ค๊ณ ํ์๋, ๋ถ๋ฐ์ด๋ผ๋ ๊ฐ์ฒด๋ ์์ ์ ์ ์ํ๋ key๊ฐ ์๊ณ , ๊ฐ ๊ต์ก๊ณผ์ ์ ์์กดํ๊ฒ ๋๋ค.
- 1203 ์ด๋ผ๋ ๊ฐ์๊ฐ ์กด์ฌํ๊ณ , 001, 002, 003..๋ถ๋ฐ์ด ์๋ค๊ณ ํ์๋, ์ด ๋ถ๋ฐ ์ด๋ฆ์ ๋ฐ๋ก ํน์ง์ด ์๊ณ ๋ค๋ฅธ ๊ฐ์์๋ ๊ฒน์น ์ ์๋ค. ์ด๋ฅผ ๋จ๋ ์ผ๋ก ์กด์ฌํ ์ ์๊ณ , ๋ค๋ฅธ ๊ฐ์ฒด์ ์์กดํด์ผ ํ๋ Weak Entity๋ผ๊ณ ํ๋ค.
#Attribute (์์ฑ)
- Attribute๋ Entity๋ฅผ ๊ตฌ์ฑํ๊ณ ์๋ ๊ตฌ์ฑ ์์์ด๋ค.
- ๋ฐ์ดํฐ ํ์ ์ ๋ฐ๋์ ๊ฐ์ด ๋ช ์ํด์ค์ผ ํ๋ค.
- Key Attribute
- ๋ค๋ฅธ ๊ฐ์ฒด๋ค๊ณผ ์ค๋ณต๋์ง ์๋ ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง Attribute๋ก, ๊ฐ์ฒด๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
- Composite Attribute
- ๋ ๋ฆฝ์ ์ธ Attribute๋ค์ด ๋ชจ์ฌ์ ์์ฑ๋ Attribute๋ฅผ ์๋ฏธํ๋ค.
- ์๋ฅผ ๋ค์ด OO์,OO๋,OO์ํํธ ๋ฑ์ ๋ ๋ฆฝ์ ์ธ Attribute ๋ค๊ฐ๊ฐ ๋ชจ์ฌ์ ์์ฑ๋ ์ฃผ์ Attribute๋ ๋ณตํฉ attribute๋ผ๊ณ ํ ์ ์๋ค.
- Multi-Valued Attribute
- ํ๋์ Attribute๊ฐ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ Attribute๋ฅผ ์๋ฏธํ๋ค.
- ์๋ฅผ ๋ค์ด ํ๋์ ์์๋ฌผ์ ๋ก๋งจ์ค, SF, ํธ๋ฌ ๋ฑ์ ์ฌ๋ฌ๊ฐ์ง ์ฅ๋ฅด๊ฐ ๊ณตํต์ ์ผ๋ก ์กด์ฌํ ์ ์๋ค.
- Derived Attribute
- ์ด๋ ๋ค๋ฅธ Attribute๊ฐ ๊ฐ๊ณ ์๋ ๊ฐ์ผ๋ก๋ถํฐ ์ ๋๋ ์์ฑ์ ์๋ฏธํ๋ค.
- ์๋ฅผ ๋ค์ด ๋ชจ๋ ์ํ์ ์ด ๊ฐ๊ฒฉ์ ๋ํ๋ด๋ total์ด๋ผ๋ ์์ฑ์ ์ํ์ ๊ฐ๊ฒฉ attribute, ์ํ์ ๊ฐ์ attribute๋ฅผ ๊ณฑํด์ ๊ณ์ฐ๋ ๊ฐ์ด๋ค. ์ด๋ Derived Attribute์ด ๋๋ค.
#Relationship
- Entity๊ฐ์ ๊ด๊ณ๋ฅผ ์๋ฏธํ๋ค.
- ๋ Entity๊ฐ์ ์ ์ ๊ธ๊ณ , ๊ด๊ณ ๋ช ์นญ์ ๊ธฐ๋กํ๊ฒ ๋๋ค.
- ์ ํ ์ฌํญ์ ํ์ํ๋ค.
- ์ ์ ์ ์ ํ์ ์ธ ์ฌํญ์ ์๋ฏธํ๋ค.
- ์๋ฅผ ๋ค์ด, ์ฌ์๊ณผ ๋ถ์ Entity๊ฐ ์์๋ ๋ถ์ ์ ์ฅ์์๋ ์ฌ์์ ๋ฐฐ์น ๋ฐ์์๋, ๋ฐ์ง ์์ ์๋ ์๋ค.
- ์ค์ ์ ํ์์ ์ธ ์ฌํญ์ ์๋ฏธํ๋ค.
- ์ฌ์ ์ ์ฅ์์๋ ๋ถ์๊ฐ ํ์์ ์ผ๋ก ๋ฐฐ์ ๋ฐ์์ผ ํ๋ค.
- ์ ์ ์ ์ ํ์ ์ธ ์ฌํญ์ ์๋ฏธํ๋ค.
- ๊ด๊ณ ํํ๋ฅผ ํ์ํ๋ค.
- ์ผ์ง์ฐฝ ๋ชจ์์ ํ๋ ์ด์์ ์๋ฏธํ๋ค.
- ๋จ์ ์ ํ๋๋ฅผ ์๋ฏธํ๋ค.
- ๋ถ์๋ ์ฌ๋ฌ๋ช ์ ์ฌ์์ ๊ฐ์ง ์ ์์ผ๋, ์ฌ์์ ํ๋์ ๋ถ์์๋ง ๋ฐฐ์น๋๋ค.
#๊ด๊ณ ํํ(Cardinality)
๋น์ฐํ๊ฒ๋, ๊ฐ Entity๋ค์ด ๊ฐ์ง๊ณ ์๋ ๊ด๊ณ์๋ ์ฌ๋ฌ๊ฐ์ง ํํ๊ฐ ์กด์ฌํ๋ค.
1) 1:1 ๊ด๊ณ
: ์์ชฝ ๋ชจ๋ ๋จ ํ๋์ฉ ์กด์ฌํ๋ ๊ฒฝ์ฐ์ด๋ค. ์๋ฅผ ๋ค๋ฉด, ์ด๋ค ์์ ์๋ ํ๋์ ์ฃผ์๋ง์ด ์กด์ฌํ๋ค.
2) 1:N ๊ด๊ณ
: ์ผ๋๋ค/๋ค๋์ผ ๊ด๊ณ๋ ํ๋์ ์์๊ฐ ๋๊ฐ ์ด์์ ์์์ ๊ด๊ณ๋ฅผ ๋งบ๋ ๊ฒ์ ์๋ฏธํ๋ค. ํ ๋ถ์์๋ ์ฌ๋ฌ๋ช ์ ์ฌ์์ด ์์๋์ด ์๋ค.
-> ์ด๋ฅผ ๊ด๊ณ ๋ชจ๋ธ๋ก ๋ฐ๊ฟ ๋ ๋ฐ๋ก relationship์ table์ ๋ง๋ค์ง ์๊ณ , "Many"์ชฝ์ ์๋ entity์ "one"์ชฝ์ primary key๋ฅผ Attribute๋ก ์ถ๊ฐํ๊ฒ ๋๋ค. ์ฝ๊ฒ๋ ์ฌ์์ ์ ๋ณด์ ๋ถ์ ๋ฒํธ๋ฅผ ์ถ๊ฐํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
3) N:M ๊ด๊ณ
: ๋ค๋๋ค ๊ด๊ณ๋ผ๊ณ ํ๋ฉฐ, ์์ชฝ ๋ชจ๋ ํ๋ ์ด์๊ณผ ์ฐ๊ด๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด ํ๋์ ์์ ์๋ ์ฌ๋ฌ๋ช ์ ํ์์ด ์์ ์ ์๊ณ , ํ ๋ช ์ ํ์์ด ์ฌ๋ฌ ๊ฐ์ ์์ ์ ๋ค์ ์ ์๋ค.
-> ์ด๋ฌํ ๊ฒฝ์ฐ์๋, M:N ๊ด๊ณ๋ฅผ M:1 ๊ด๊ณ๋ก ๋ถํ ํ๋ค. ๊ด๊ณ๋ฅผ ๋งบ๋ ๋ entity์ primary key๋ฅผ ๊ฐ์ ธ์ ํ๋์ relation์ ์์ฑํ๋ค. ์ฆ, ์๊ฐ์ ์ฒญ์ด๋ผ๋ ํ ์ด๋ธ์ ํ๋ ๋ ๋ง๋ค์ด ํ์์ ์์ ์ด ์๊ฐ์ ์ฒญํ๋ ์์ ์๋ง ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์์ผ๋ฉด ๋๋ค.
#ERD ์ค๊ณ ๊ณผ์
- Entity์ Attribute ์ถ์ถ
- ๋ทํ๋ฆญ์ค๋ฅผ ์์๋ก ๋ค์ด๋ณด๋๋ก ํ๊ฒ ๋ค.
- Entity์ ์์๋ก๋ ์์๋ฌผ, ์ ์ , ํ์ฐจ์ ๋ณด, ๋ฐฐ์ฐ, ๊ตญ๊ฐ, ํน์ง, ์ฅ๋ฅด, ์ธ์ด.. ์ด ์๊ฒ ๋ค.
- ๊ฐ Entity๋ฅผ ์ถ์ถํ ๋ค์์๋ Entity์ ๋ง๋ Attribute๋ฅผ ์ถ์ถํ๋ค. ํ์๊ฐ์ ๊ฒฝ์ฐ์๋ ์์ ํ์ผ์ ์ด์ฉํด ํ์ํด๋ณด์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ญ ์ ์ด๋ด๋ ค๊ฐ๋ค.
- ๊ฐ์ฒด๋ค๊ฐ์ ๊ด๊ณ ์ถ์ถ
- 1: N ๊ด๊ณ๋ฅผ ๊ฐ๊ณ ์๋ ๊ด๊ณ (๋๋ฌด ๋ง์์ ์์๋ง ๊ฐ๋จํ๊ฒ ๋ค๊ฒ ๋ค.)
- video-epsiode, video-actor, video-genre, video-characteristic, video-ratinglist,video-wishlist, video-watchedlist, video-DownloadedList..
- ์ด ๊ฒฝ์ฐ์๋ Many ์ชฝ์ ํ ์ด๋ธ์ one์ Primary key๋ฅผ FK๋ก ์ถ๊ฐํด์ฃผ์๋ค.
- N: M ๊ด๊ณ๋ฅผ ๊ฐ๊ณ ์๋ ๊ด๊ณ : ์ด ๊ฒฝ์ฐ์๋ relation์ ๋ฐ๋ก ๋ง๋ค์ด ์ฃผ์๋ค. ์ด ๊ด๊ณ๋ ์ถํ ๊ด๊ณ ๋ชจ๋ธ๋ง์์ ๋ฐ๋ก ํ
์ด๋ธ์ด ๋๋ค.
- ์์๋ฌผ-์ถ์ฐ์ : ํ ์์์ ์ฌ๋ฌ๋ช ์ ์ถ์ฐ์๊ฐ ์ถ์ฐํ ์ ์๊ณ , ํ ์ถ์ฐ์๊ฐ ์ฌ๋ฌ๊ฐ์ง ์์๋ฌผ์ ์ถ์ฐ ํ ์ ์๋ค. → Casting
- ์์๋ฌผ- ์ฅ๋ฅด → Video_Genre
- ์์๋ฌผ - ์์๋ฌผ์ ํน์ฑ → Video_Characteristic
- ์์๋ฌผ - ์ ์ : Watched , Wish, Downloaded (์ด๋ฏธ ์์ฒญํ ์์, ์ฐํ ์์, ๋ค์ด๋ก๋๋ฐ์ ์์)
- 1: N ๊ด๊ณ๋ฅผ ๊ฐ๊ณ ์๋ ๊ด๊ณ (๋๋ฌด ๋ง์์ ์์๋ง ๊ฐ๋จํ๊ฒ ๋ค๊ฒ ๋ค.)
- ๊ฐ ๊ฐ์ฒด์ ์์ฑ๋ค์ ๋ฐ์ดํฐ ํ์ (int, varchar...)์ด ์ด๋ป๊ฒ ๋ ์ง ํ๋จํ๊ณ , ERD๋ฅผ ์์ฑํ๋ค.
- Key ์ ์ฝ ์กฐ๊ฑด๊ณผ, ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด ๋ฑ์ ์ถ๊ฐํด์ค๋ค.โ
๐ก๋ณดํต ๊ฐ๋ ์ ๋ชจ๋ธ๋ง- ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง์ ๋ค๋ฅธ ๊ฐ๋ ์ด๋ค. ๊ทธ๋ ์ง๋ง ๋ณดํต์ ERD๋ฅผ ์ค๊ณํ ๋๋ ํ ์ด๋ธ์ ์ธ์ธํ๊ฒ ์ค๊ณํ๋ฉด์ ํ๊ธฐ ๋๋ฌธ์ ER ๋ค์ด์ด๊ทธ๋จ๋ถํฐ ๊ทธ๋ ค๊ฐ๋ฉด์ ํ๊ธฐ๋ณด๋ค๋ ํ๊บผ๋ฒ์ ํ ์ด๋ธ๋ก ์ค๊ณํ๊ณ , ๊ด๊ณ๋ฅผ ํ์ ํด๊ฐ๋ฉด์ ํ ์ด๋ธ์ ์ถ๊ฐํ๊ฑฐ๋ ํค/๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๋ฑ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง๊ณผ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง์ ํ๋ฒ์ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค.
'Web > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ๋ง (0) | 2022.02.23 |
---|---|
Amazon RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ(MySQL) (0) | 2022.02.22 |
Python์ผ๋ก SQLite, MongoDB ์ ๊ทผํด๋ณด๊ธฐ (0) | 2020.05.25 |
MySQL ์ ๋ฆฌ (0) | 2020.01.19 |