ERD (Entity Relationship Diagram)
๊ฐ์ฒด๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ณด๊ธฐ ์ํ ์ง๋
๐ ๊ตฌ์ฑ์์
- Entity
- Attribute
- Relationship
Entity
Attribute
- entity๊ฐ ๊ฐ์ง๊ณ ์๋ ํน์ง
- ๊ตฌ์กฐ์ ์ผ๋ก๋ ๊ฐ ํ
์ด๋ธ์ ์นผ๋ผ
- ๊ตฌ์ฑ
1) attribute ํน์ฑ์ ๋ํ๋ด๋ ์ด๋ฆ, ์ฆ ์ปฌ๋ผ ์ด๋ฆ (OrderID, CustomerID ..)
2) ๋ฐ์ดํฐ ํ์
(varchar, int ..)
-
์ซ์
- ์ ์ : tinyint(), smallint(), mediumint(), int(), bigint()
- ์ค์ : decimal(), double(), float()
-
๋ฌธ์
- varchar() : various character์ ์ฝ์
- char()
-
๋ ์ง, ์๊ฐ
- date() : 1000-01-01 ~ 9999-12-31
- datetime() : 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999
- timestamp() = datetime() + timezone
๐ OrderDate ๊ณผ ๊ฐ์ ์นผ๋ผ์ ๋ฐ์ดํฐ ํ์
์ด VARCHAR ๋ก ๋์ด์๋ ๊ฒฝ์ฐ
datetime ์ด๋ timestamp ๊ฐ ๋ค์ด๊ฐ ์์ด์ผ ํ๋๋ฐ, ์ varchar ๋ก ๋์ด ์์๊น?
- ๋ฐ์ดํฐ๊ฐ
12/8/1968 ์ด๋ฐ์์ผ๋ก ๋ค์ด๊ฐ ์๊ธฐ ๋๋ฌธ
- ์ฆ, ๋ ์งํ์ด ์๋ ํ
์คํธํ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ์๋ ๊ฒ
๐ ๋ ์ง ์ฐ์ฐ์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
date_add() ์ ๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ ์ง ์ฐ์ฐ์ ํ ๊ฒฝ์ฐ์, ๋ฐ์ดํฐ๋ ๋ฐ๋์ datetime ์ด๋ timestamp ์ ๊ฐ์ด ๋ ์ง์ ๊ด๋ จ๋ ํํ์ฌ์ผ๋ง ํ๋ค.
์ด๋ด ๋๋ string ๋ฐ์ดํฐ๋ฅผ datetime ๋ฐ์ดํฐํ์ผ๋ก ๋ณํํด ์ฃผ๋ ํจ์๋ฅผ ์ ์ ํ ์ฌ์ฉํ๋ฉด ๋๋ค.
( MySQL์์๋ str_to_date() )
Relationship
- PK (Primary Key)
- ์ฃผ ์๋ณ์
- ํ
์ด๋ธ์ ๋ํํ๋ ํค
- ํ entity ์์ PK๋ 2๊ฐ ์ด์ ์กด์ฌํ ์ ์๋ค
- PK์๋ ์ค๋ณต์ด ์๋ค
- ์ฆ, ๊ฐ ๋ ์ฝ๋๋ง๋ค uniqueํ๊ฒ ๊ฐ๋ ํค
- FK (Foreign Key)
- ์ธ๋ถ ์๋ณ์
- ๋ค๋ฅธ entity์ PK์์ ์ฐธ์กฐ๋๋ค
- PK์ FK์ ๊ด๊ณ๋ฅผ ํตํด์ ๋ ๊ฐ์ง ์ด์ entity ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ ์ํ ์ ์๋ค
- Customers (entity) ใ
ก Orders (entity)
- one ใ
ก many
- ๊ณ ๊ฐ ํ ๋ช
๋น ์ฃผ๋ฌธ์ด ์ฌ๋ฌ ๊ฑด์ด ์์ ์ ์๋ค
- ERD ํ๊ธฐ๋ฒ(notation)์ ํฌ๊ฒ 5๊ฐ์ง ์ ๋ ์กด์ฌํ๋ฏ๋ก, ์ฌ๋ฌ๊ฐ์ง ํ๊ธฐ๋ฒ์ด ์๋ค๋ ๊ฒ์ ์ธ์งํ๊ณ ์๋ก์ด ๋ฐฉ์์ ERD๋ฅผ ๋ง๋ฌ์ ๋ ํด๋น ํ๊ธฐ๋ฒ์ ํ์ต
์ฐธ๊ณ