[๋ชฉ์ฐจ]
๐๋ชจ๋ธ๋ง
๐์ํฐํฐ Entity
๐์์ฑ Attribute
๐๊ด๊ณ Relationship
๐์๋ณ์ Identifiers
๐ERD IE ํ๊ธฐ๋ฒ vs Barker ํ๊ธฐ๋ฒ
๐๋ชจ๋ธ๋ง
๋ฐ์ดํฐ๋ชจ๋ธ๋ง
๋ฐ์ดํฐ๋ชจ๋ธ๋ง์ ๊ณ ๋ ค์ฌํญ
๋ฐ์ดํฐ๋ชจ๋ธ๋ง์ ์ ์์
๋ฐ์ดํฐ๋ชจ๋ธ๋ง์ 3๋จ๊ณ์งํ
๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ
Mapping ์ฌ์, ์ฐ๊ฒฐ
๋ฐ์ดํฐ๋ชจ๋ธํ๊ธฐ๋ฒ ERD Entity Relationship Model
์ข์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์
๐์ํฐํฐ Entity
์ํฐํฐ์ ์ธ์คํด์ค
์ํฐํฐ์ ํน์ง
์ํฐํฐ์ ๋ถ๋ฅ
์ํฐํฐ์ ๋ช
๋ช
๐์์ฑ Attribute
์์ฑ์ ํน์ง
์์ฑ์๋ถ๋ฅ
๋๋ฉ์ธ
์์ฑ์ ๋ช
๋ช
๐๊ด๊ณ Relationship
๊ด๊ณ ํ์ด๋ง
๊ด๊ณ์ ๋ถ๋ฅ
๊ด๊ณ์ ํ๊ธฐ๋ฒ
๊ด๊ณ ์ ์ ์ ์ฒดํฌ์ฌํญ
๐์๋ณ์ Identifiers
์ฃผ์๋ณ์์ ํน์ง
์๋ณ์ ๋ถ๋ฅ
์ฃผ์๋ณ์ ๋์ถ๊ธฐ์ค
์๋ณ์/๋น์๋ณ์ ๊ด๊ณ
๐ERD IE ํ๊ธฐ๋ฒ vs Barker ํ๊ธฐ๋ฒ
๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ดํด
๐๋ชจ๋ธ๋ง
ํ์ค์ธ๊ณ๋ฅผ ์ถ์ํ, ๋จ์ํ( ๋ชฉ์ ์ ๋ง๊ฒ ๊ด์ฌ์๋ ํน์ฑ๋ง ์ถ์ถ )ํ์ฌ ํํํ๋ ๊ธฐ๋ฒ์ด๋ค.
EX. ๊ฐ์ ์ฌ๋์ ๋ํ ๋ด์ฉ์ด์ฌ๋, ๋ณ์์ ์๋ ์ฌ๋(ํ์)์ ๋ํ ๋ด์ฉ๊ณผ
์ํ์ ์๋ ์ฌ๋(๊ณ ๊ฐ)์ ๋ํ ๋ด์ฉ์ ์์ ํ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผํด์ผํ๋ค.
๋ฐ์ดํฐ๋ชจ๋ธ๋ง
๋ฐ์ดํฐ๋ชจ๋ธ๋ง์ ์ ๋ฌด์ ๋ณด๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ์ด์ ๋ณด๋ฅผ ์ฝ์๋ ํ๊ธฐ๋ฒ์ ์ํด ํํํจ์ผ๋ก์จ ์ ๋ฌด๋ด์ฉ์ ์ ํํ๊ฒ ๋ถ์ํ๊ณ ,
๋ถ์๋ ๋ชจ๋ธ๋ก ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ์ฌ ์์คํ ๊ฐ๋ฐ ๋ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ฌ์ฉํ๊ธฐ ์ํด ์ํํ๋ค.
์ ๋งค๋ชจํธํจ์ ๋ฐฐ์ ํ๊ณ ๋๊ตฌ๋ ์ดํด๊ฐ ๊ฐ๋ฅํ๋๋ก ์ ํํ๊ฒ ํ์์ ๊ธฐ์ ํ๋ ์ ํํ์ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค. (O)
์์คํ ๊ตฌํ๋ง์ ์ํด ์งํํ๋ ์ฌ์ ๋จ๊ณ์ ์์ ์ผ๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ์ ์ํ ์ฌ์ ์์ ์ ์๋ฏธ๊ฐ ์์ (X)
-> ์์คํ ๊ตฌํ์ ํฌํจํ ์ ๋ฌด๋ถ์ ๋ฐ ์ ๋ฌดํ์ํ ๋ชฉ์ ๋ ์์
๋ฐ์ดํฐ๋ชจ๋ธ๋ง์ ๊ณ ๋ ค์ฌํญ
- ์๋ชป๋ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์์คํ ์์ฑ ํ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ฉด ํ๊ธํจ๊ณผ๊ฐ ํฌ๋ค. ๋ ๋ฆฝ์ฑ์ด ํ๋ณด๋์ด์ผ ๋ฅ๋ ๋์์ด ๊ฐ๋ฅํ๋ค.
- ๋ณต์กํ ์ ๋ณด๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ํํํด์ผํ๋ค.
- ๋ฐ์ดํฐ ํ์ค์ ์ ์ํ์ฌ ๋ฐ์ดํฐ์ ํ์ง์ ๋์ฌ์ผํ๋ค.
๋ฐ์ดํฐ๋ชจ๋ธ๋ง์ ์ ์์
์ค๋ณต | ์ฌ๋ฌ ์ฅ์์ ๊ฐ์ ์ ๋ณด๊ฐ ์ ์ฅ๋์ง ์๋๋ก ํด์ผํ๋ค. |
๋น์ ์ฐ์ฑ | ์ฌ์ํ ์
๋ฌด๋ณํ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์์๋ก ๋ณ๊ฒฝ๋๋ฉด ์๋๋ค. => ๋ฐ์ดํฐ ์ ์๋ฅผ ๋ฐ์ดํฐ ์ฌ์ฉ ํ๋ก์ธ์ค์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋ฐฉ์งํ ์ ์๋ค. |
๋น์ผ๊ด์ฑ | ๋ฐ์ดํฐ๋ ๋ชจ์๋์ง์๊ณ ์ผ๊ด์ฑ์์ด์ผํ๋ค. |
๋ฐ์ดํฐ๋ชจ๋ธ๋ง์ 3๋จ๊ณ์งํ
๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง(Conceptual Data Modeling) ์ถ์ํ์ ๋ ๋์ / ๊ตฌ์ฒดํ์ ๋ ๋ฎ์
์ฌ์ฉ์์ ์์คํ
๊ฐ๋ฐ์์ ์๊ตฌ์ฌํญ์ ์ฌ๋์ด ์ดํดํ ์ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ๋ณํํ๋ ๊ณผ์ ์ด๋ค.
๊ฐ์ฒด, ๊ด๊ณ๋ฅผ ์ ์ํ์ฌ ERD๋ก ์ ์ํ๋ค.
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง(Logical Data Modeling) ์ถ์ํ์ ๋ ์ค๊ฐ / ๊ตฌ์ฒดํ์ ๋ ์ค๊ฐ
์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ๋
ผ๋ฆฌ์ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ๊ณผ์ ์ด๋ค.
ERD๋ฅผ ํน์ DBMS์ ๋ง๊ฒ ์ฌ์ํ๋ค.
๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง(Physical Data Modeling) ์ถ์ํ์ ๋ ๋ฎ์ / ๊ตฌ์ฒดํ์ ๋ ๋์
๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ์ฅ์ฅ์น๊ฐ ํํํ ์ ์๋ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ๊ณผ์ ์ด๋ค.
create table Order(
orderID number(2) primary key,
customerID number(2) references Customer(customerID),
productID number(2) references Product(productID),
orderdate DATE
);
๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ
์ ์ง๋ณด์ ๋น์ฉ ์ฆ๊ฐ, ๋ฐ์ดํฐ ์ค๋ณต์ฑ ์ฆ๊ฐ, ๋ฐ์ดํฐ ๋ณต์ก๋ ์ฆ๊ฐ, ์๊ตฌ์ฌํญ ๋์ ์ ํ
์ด๋ฌํ ์ด์ ๋ค๋ก ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ์ด ํ์ํ๊ฒ๋์๋ค.
๋ฐ์ดํฐ๋ ๋ฆฝ์ฑ์ ANSI/SPARC์ 3๋จ๊ณ ๊ตฌ์กฐ๋ก ์ ์ํ ์ ์๋ค.
์ธ๋ถ์คํค๋ง | ๊ฐ์ธ์ด ๋ณด๋ DB์คํค๋ง. ์ถ์ํ์ ๋ ๋์ |
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ | ๊ฐ๋
์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ธ๋ถ์คํค๋ง์ ์ํฅ ์๋ ๊ฒ. (์ ์นผ๋ผ์ด ์ถ๊ฐ๋์ด๋ ํ๋ก๊ทธ๋จ์ ์ํฅ ์์) |
๊ฐ๋ ์คํค๋ง | ๋ชจ๋ ์ฌ์ฉ์. ์ ์ฒด๊ฐ ๋ณด๋ DB์คํค๋ง. |
๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ | ๋ด๋ถ์คํค๋ง๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๊ฐ๋
/์ธ๋ถ ์คํค๋ง์ ์ํฅ ์๋ ๊ฒ. (์ ์ฅ์ฅ์น๊ฐ ๋ณ๊ฒฝ๋์ด๋ ํ๋ก๊ทธ๋จ์ ์ํฅ ์์) |
๋ด๋ถ์คํค๋ง | ๋ฌผ๋ฆฌ์ฅ์น๊ฐ ๋ฐ์ดํฐ ์ ์ฅ๋ฐฉ๋ฒ์ ํํํ๋ ์คํค๋ง. ์ถ์ํ์ ๋ ๋ฎ์ |
Mapping ์ฌ์, ์ฐ๊ฒฐ
๋ ผ๋ฆฌ์ ์ฌ์ (์ธ๋ถ - ๊ฐ๋ ์คํค๋ง) | ์ธ๋ถํ๋ฉด์ ๋ณด์ฌ์ง๋ ์ธ๋ถ์คํค๋ง์ ์ ์ฒด์ ๋ณด์ฌ์ง๋ ๊ฐ๋ ์คํค๋ง๊ฐ ์ฐ๊ฒฐ๋๋ค. |
๋ฌผ๋ฆฌ์ ์ฌ์ (๊ฐ๋ - ๋ด๋ถ์คํค๋ง) | ์ ์ฒด์ ๋ณด์ฌ์ง๋ ๊ฐ๋ ์คํค๋ง์ ์ ์ฅ์ฅ์น ๊ด์ ์ ๋ด๋ถ์คํค๋ง๊ฐ ์ฐ๊ฒฐ๋๋ค. |
๋ฐ์ดํฐ๋ชจ๋ธํ๊ธฐ๋ฒ ERD Entity Relationship Model
ERD๋ ์ํฐํฐ์ ์ํฐํฐ๊ฐ์ ๊ด๊ณ๋ฅผ ์ฝ๊ฒ ๋์ํ๋ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ํ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ERD ์์ ์์
1. ์ํฐํฐ ๊ทธ๋ฆฌ๊ธฐ
2. ์ํฐํฐ ์ ์ ํ ๋ฐฐ์น
์ค์ํ ์์๋๋ก ์ผ์ชฝ์๋จ - ์ค๋ฅธ์ชฝ์๋จ - ์ผ์ชฝํ๋จ - ์ค๋ฅธ์ชฝํ๋จ ์์๋ก ๋ฐฐ์นํ๋ค.
์
๋ฌดํ๋ฆ์ ํ ์ํฐํฐ์ ๋ง์ ๊ด๊ณ๋ฅผ ๊ฐ์ง ์ค์ฌ์ํฐํฐ๋ฅผ ์ค์์ ๋ฐฐ์นํ๋ค.
3. ์ํฐํฐ๊ฐ ๊ด๊ณ ์ค์
4. ๊ด๊ณ๋ช ๊ธฐ์
๊ด๊ณ๋ช ์ ํ์ฌํ์ ์ฌ์ฉํ๊ณ ์ง๋์น๊ฒ ํฌ๊ด์ ์ธ ์ฉ์ด๋ ์ฌ์ฉํ์ง ์๋๋ก ํ๋ค.
5. ๊ด๊ณ์ ๊ด๊ณ์ฐจ์(์ฐธ์ฌ๋) ๊ธฐ์
6. ๊ด๊ณ์ ํ์์ฌ๋ถ ๊ธฐ์
์ข์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์
์์ ์ฑ | ์ ๋ฌด์์ ํ์๋กํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ ์๋์ด์์ด์ผ ํ๋ค. |
์ค๋ณต๋ฐฐ์ | ๋์ผํ ์ฌ์ค์ ๋ฐ๋์ ํ๋ฒ๋ง ์ ์ฅ๋์ด์ผํ๋ค. |
์ ๋ฌด๊ท์น | ์ ๋ฌด๊ท์น์ด ๋ฐ์ดํฐ๋ชจ๋ธ์ ํํ๋์ด์์ด์ผ ํ๋ค. |
๋ฐ์ดํฐ์ฌ์ฌ์ฉ | ๋ฐ์ดํฐ๊ฐ ์ฌ์ฌ์ฉ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์ด์ผ ํ๋ค. |
์์ฌ์ํต | ์ํฐํฐ, ๊ด๊ณ, ์ ๋ฌด๊ท์น ๋ฑ์ด ์ ๋ณด์์คํ ์ ํํ๋จ์ผ๋ก์จ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ์์ฌ์ํต์ ๋๊ตฌ๋ก์ ์ฌ์ฉ๋๋ค. |
ํตํฉ์ฑ | ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์ ๋ฌด์์ญ์์ ๊ณต๋์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ ์๋์ด์ผ ํ๋ค. |
๐์ํฐํฐ Entity
์ํฐํฐ๋ ์ฌ๋, ๊ฐ๋ ๋ฑ ๋ช ์ฌ์ ํด๋นํ๋ฉฐ, ์ ๋ฌด์ ๊ด๋ฆฌ๊ฐ ํ์ํ ๊ด์ฌ์ฌ์ ํด๋นํ๋ค. ์ ์ฅ์ด ๋๊ธฐ ์ํ ์ด๋ค ๊ฒ(Thing) ์ด๋ค.
์ํฐํฐ์ ์ธ์คํด์ค
์ธ์คํด์ค๋ ์ค์ ๊ฐ์ฒด(ํ๊ธธ๋, ์ด์์ )์ด๊ณ , ์ํฐํฐ๋ ๋ฒ์ฃผ(์ฌ๋)์ ํด๋น๋๋ ๊ฒ์ด๋ค.
์ํฐํฐ๋ ์ธ์คํด์ค์ ์งํฉ์ด๋ผ๊ณ ๋งํ ์ ์๋ค.
์ํฐํฐ์ ํน์ง
- ๋ฐ๋์ ํด๋น ์ ๋ฌด์์ ํ์ํ๊ณ ๊ด๋ฆฌํ๊ณ ์ ํ๋ ์ ๋ณด์ด์ด์ผ ํ๋ค.
- ์ ์ผํ ์๋ณ์(PK)์ ์ํด ์๋ณ์ด ๊ฐ๋ฅํด์ผํ๋ค.
- ๋ ๊ฐ ์ด์์ ์ธ์คํด์ค ์งํฉ์ด์ด์ผ ํ๋ค. = ๋ ๊ฐ ์ด์์ ์์ฑ์ ๊ฐ๋๋ค.
- ์ ๋ฌด ํ๋ก์ธ์ค์ ์ํด ์ด์ฉ๋์ด์ผ ํ๋ค.
- ๋ฐ๋์ ์์ฑ์ด ์์ด์ผ ํ๋ค.
- ๋ค๋ฅธ ์ํฐํฐ์ ์ต์ ํ ๊ฐ ์ด์์ ๊ด๊ณ๊ฐ ์์ด์ผ ํ๋ค. ๋จ, ํต๊ณ์ฑ/์ฝ๋์ฑ ์ํฐํฐ๋ ๊ด๊ณ๋ฅผ ์๋ตํ ์ ์๋ค.
- ๊ฐ์ฒด์งํฅ์ ์ฑ๊ธํดํจํด์ฒ๋ผ, ์ํฐํฐ๋ ํ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๊ฐ์ง๋ ๊ฒ๋ง์ผ๋ก ์ถฉ๋ถํ ์๋ฏธ๋ฅผ ๋ถ์ฌํ ์ ์๋ค. (X)
์ํฐํฐ์ ๋ถ๋ฅ
์ /๋ฌดํ์ ๋ฐ๋ฅธ ๋ถ๋ฅ |
์ ํ์ํฐํฐ | ๋ฌผ๋ฆฌ์ ์ธ ํํ๊ฐ ์๋ ์ํฐํฐ | ์ฌ์, ๋ฌผํ, ๊ฐ์ฌ |
๊ฐ๋ ์ํฐํฐ | ๊ฐ๋ ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ํฐํฐ | ์กฐ์ง, ๋ณดํ์ํ | |
์ฌ๊ฑด์ํฐํฐ | ์ ๋ฌด๋ฅผ ์ํํจ์ ๋ฐ๋ผ ๋ฐ์๋๋ ์ํฐํฐ | ์ฃผ๋ฌธ, ์ฒญ๊ตฌ, ๋ฏธ๋ฉ |
๋ฐ์์์ ์ ๋ฐ๋ฅธ ๋ถ๋ฅ |
๊ธฐ๋ณธ์ํฐํฐ | ์ ๋ฌด์ ์๋ ์กด์ฌํ๋ ์ ๋ณด๋ก ๋ ๋ฆฝ ๊ฐ๋ฅํ ์ํฐํฐ | ์ฌ์, ๋ถ์, ๊ณ ๊ฐ |
์ค์ฌ์ํฐํฐ | ์ ๋ฌด๋ก๋ถํฐ ๋ฐ์๋๊ณ ๋ค๋ฅธ์ํฐํฐ์ ๊ด๊ณ๋ฅผ ํตํด ํ์ ์ํฐํฐ๋ฅผ ์์ฑํ๋ค. | ๊ณ์ฝ, ์ฒญ๊ตฌ, ์ฃผ๋ฌธ | |
ํ์์ํฐํฐ | ๋ ๊ฐ ์ด์์ ๋ถ๋ชจ๋ก๋ถํฐ ๋ฐ์๋๊ณ ์์ฃผ ๋ด์ฉ์ด ๋ฐ๋๋ ์ํฐํฐ | ์ฃผ๋ฌธ๋ชฉ๋ก, ์ฌ์๋ณ๊ฒฝ์ด๋ ฅ |
์ํฐํฐ์ ๋ช ๋ช
- ํ์ ์ ๋ฌด์์ ์ฌ์ฉํ๋ ์ฉ์ด๋ก ์ฌ์ฉ
- ์ฝ์ด ์ฌ์ฉ X
- ๋จ์๋ช ์ฌ ์ฌ์ฉ
- ๋ชจ๋ ์ํฐํฐ์์ ์ ์ผํ๊ฒ ์ด๋ฆ ๋ถ์ฌ
- ์ํฐํฐ ์์ฑ์๋ฏธ๋๋ก ์ด๋ฆ ๋ถ์ฌ
๐์์ฑ Attribute
์ ๋ฌด์์ ํ์๋ก ํ๋ ์ธ์คํด์ค์์ ๊ด๋ฆฌํ๊ณ ์ ํ๋ ์๋ฏธ์ ๋ ์ด์ ๋ถ๋ฆฌ๋์ง ์๋ ์ต์์ ๋ฐ์ดํฐ ๋จ์
์ํฐํฐ๋ฅผ ์ค๋ช ํ๊ณ ์ธ์คํด์ค์ ๊ตฌ์ฑ์์๊ฐ ๋๋ค. ( ๊ฐ์ฌ ์ํฐํฐ์ ์์ฑ : ์ด๋ฆ, ์ฃผ์, ๊ณ์ฝ์ผ์... )
ํ ๊ฐ์ ์์ฑ์ ํ ๊ฐ์ ์์ฑ๊ฐ์ ๊ฐ๋๋ค.
์์ฑ์ ํน์ง
- ์ํฐํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ๋์ ํด๋น ์ ๋ฌด์์ ํ์ํ ์ ๋ณด์ด์ด์ผ ํ๋ค.
- ์ ํด์ง ์ฃผ์๋ณ์์ ํจ์์ ์ข ์์ฑ์ ๊ฐ์ ธ์ผ ํ๋ค.
- ํ ์์ฑ์ ํ ๊ฐ์ ๊ฐ๋ง ๊ฐ์ง๋ค.
์์ฑ์ ๋ถ๋ฅ
ํน์ฑ์ ๋ฐ๋ฅธ ๋ถ๋ฅ |
๊ธฐ๋ณธ ์์ฑ | ์ ๋ฌด์์ ์ถ์ถํ ๋ชจ๋ ์์ฑ. ์ธ์คํด์ค์ ๋ณธ๋ ์์ฑ | ์ด๋ฆ, ๊ณ์ข๋ฒํธ, ์ด์์จ |
์ค๊ณ ์์ฑ | ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ํด ๋ง๋ ์์ฑ (์ผ๋ จ๋ฒํธ) | ์ํ์ฝ๋, ์ง์ ์ฝ๋ | |
ํ์ ์์ฑ | ๊ณ์ฐ๋๋ ๊ฐ ์์ฑ | ํฉ๊ณ, ํ๊ท , ์ด์ |
์ํฐํฐ ๊ตฌ์ฑ๋ฐฉ์์ ๋ฐ๋ฅธ ๋ถ๋ฅ |
PK ์์ฑ | ์ํฐํฐ๋ฅผ ์๋ณํ ์ ์๋ ์์ฑ | |
FK ์์ฑ | ๋ค๋ฅธ ์ํฐํฐ์์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ์์ฑ | ||
์ผ๋ฐ ์์ฑ | PK, FK๊ฐ ์๋ ์์ฑ |
์ธ๋ถ์๋ฏธ์ ๋ฐ๋ฅธ ๋ถ๋ฅ |
๋จ์ ์์ฑ | ์ธ๋ถ ์๋ฏธ๋ก ์ชผ๊ฐค ์ ์๋ ์์ฑ | ์, ๊ตฌ, ๋, ๋ฒ์ง |
๋ณตํฉ ์์ฑ | ์ธ๋ถ ์๋ฏธ๋ก ์ชผ๊ฐค ์ ์๋ ์์ฑ | ์ฃผ์ |
๊ฐ์์ ๋ฐ๋ฅธ ๋ถ๋ฅ |
๋จ์ผ๊ฐ ์์ฑ | ์์ฑ ํ๋์ ํ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ ์์ฑ | |
๋ค์ค๊ฐ ์์ฑ | ์์ฑ ํ๋์ ๋ค์ค ๊ฐ์ ๊ฐ์ง๋ ์์ฑ → 1์ฐจ ์ ๊ทํ๋ฅผ ํ๊ฑฐ๋, ๋ณ๋์ ์ํฐํฐ๋ฅผ ๋ง๋ค์ด ๊ด๊ณ๋ก ์ฐ๊ฒฐํ์. |
ํด๋์ ํ๋ฒํธ๊ฐ 2๊ฐ์ธ ์ฌ๋ |
๋๋ฉ์ธ Domain
์์ฑ์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ ๋ฒ์
์์ฑ์ ๋ช ๋ช
- ํด๋น ์ ๋ฌด์์ ์ฌ์ฉํ๋ ์ด๋ฆ์ ๋ถ์ฌํ๋ค.
- ์์ ์ ์์ฑ๋ช ์ ์ฌ์ฉํ์ง ์๋๋ค. ๋ช ์ฌํ ์์ฑ๋ช ์ ์ฌ์ฉํ๋ค.
- ์ฝ์ด์ฌ์ฉ์ ๊ฐ๊ธ์ ์ ํํ๋ค.
- ์ ์ฒด ๋ฐ์ดํฐ๋ชจ๋ธ์์ ์ ์ผ์ฑ ํ๋ณดํ๋ ๊ฒ์ด ์ข๋ค.
- ์ง์ ์ํฐํฐ์ ์ด๋ฆ, ๊ณ ๊ฐ ์ํฐํฐ์ ์ด๋ฆ๊ณผ ๊ฐ์ด ๊ฐ ์ํฐํฐ๋ณ๋ก ๋์ผํ ์์ฑ๋ช ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ผ๊ด์ฑ์ ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ด ์ข๋ค. (X)
๐๊ด๊ณ Relationship
์ธ์คํด์ค ์ฌ์ด์ ๋ ผ๋ฆฌ์ ์ธ ์ฐ๊ด์ฑ์ผ๋ก์ ์กด์ฌ์ ํํ๋ก์๋ ํ์๋ก์ ์๋ก์๊ฒ ์ฐ๊ด์ฑ์ด ๋ถ์ฌ๋ ์ํ
์ํฐํฐ๊ฐ ์ธ์คํด์ค์ ์งํฉ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ํํํ๊ฒ๊ณผ ๋์ผํ๊ฒ ๊ด๊ณ๋ ๊ด๊ณ ํ์ด๋ง์ ์งํฉ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ํํํ ๊ฒ์ด๋ค.
๊ด๊ณ ํ์ด๋ง
์ํฐํฐ ์์ ์ธ์คํด์ค๊ฐ ๊ฐ๋ณ์ ์ผ๋ก ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ๊ฒ
๊ด๊ณ์ ๋ถ๋ฅ
์กด์ฌ์ ๋ฐ๋ฅธ ๋ถ๋ฅ | ์ํฐํฐ ๊ฐ์ ์ํ๋ฅผ ์๋ฏธํ๋ค. ERD์์๋ ์กด์ฌ/ํ์์ ๋ฐ๋ฅธ ํ๊ธฐ ๊ตฌ๋ถ ์๋ค. UML์์๋ ์ฐ๊ฐ๊ด๊ณ์ ํด๋น๋๋ฉฐ ์ค์ ์ผ๋ก ํํํ๋ค. |
์์ํ๋ค |
ํ์์ ๋ฐ๋ฅธ ๋ถ๋ฅ | ์ํฐํฐ ๊ฐ์ ํ์๋ฅผ ์๋ฏธํ๋ค. ERD์์๋ ์กด์ฌ/ํ์์ ๋ฐ๋ฅธ ํ๊ธฐ ๊ตฌ๋ถ ์๋ค. UML์์๋ ์์กด๊ด๊ณ์ ํด๋น๋๋ฉฐ ์ ์ ์ผ๋ก ํํํ๋ค. |
์ฃผ๋ฌธํ๋ค |
๊ด๊ณ์ ํ๊ธฐ๋ฒ
๊ด๊ณ๋ช
Membership |
๊ด๊ณ์ ์ด๋ฆ. ๊ฐ๊ฐ์ ๊ด๊ณ๋ ๋ ๊ฐ์ ๊ด๊ณ๋ช ์ ๊ฐ์ง๊ณ ์๋ค. [ ๋ถ์(ํฌํจํ๋ค) - ์ฌ์(์์๋๋ค) ] ๊ด๊ณ๋ช ์ ๋ฅ๋์ ์ด๊ฑฐ๋ ์๋์ ์ผ๋ก ๋ช ๋ช ๋๋ค. ๊ณผ๊ฑฐ/๋ฏธ๋ํ์ด ์๋ ํ์ฌํ์ผ๋ก ํํํ๋ค. (์๊ฐ์ ์ฒญํ๋ค(X), ์๊ฐ์ ์ฒญํ๋ค(O) ) |
๊ด๊ณ์ฐจ์ Deegree Cardinality |
๊ด๊ณ์ ์ฐธ์ฌ์ ์. 1:1, 1:M, M:N๋ก ํํ๋ค. |
๊ด๊ณ์ ํ์ฌ์ Optionality |
๊ด๊ณ์ ํ์/์ ํ๊ด๊ณ๋ฅผ ํํํ๋ค. ํ์์ฐธ์ฌ๊ด๊ณ๋ ์ํฐํฐ๋ผ๋ฆฌ ํ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์ผ ํ๋ ๊ด๊ณ์ด๋ค. ์ ํ์ฐธ์ฌ๊ด๊ณ๋ ์ํฐํฐ๋ผ๋ฆฌ ์ ํ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์ผ ํ๋ ๊ด๊ณ์ด๋ค. |
๊ด๊ณ ์ ์ ์ ์ฒดํฌ์ฌํญ
- ๋ ์ํฐํฐ ์ฌ์ด์ ๊ด์ฌ์๋ ์ฐ๊ด๊ท์น์ด ์กด์ฌํ๋๊ฐ?
- ๋ ์ํฐํฐ ์ฌ์ด์ ์ ๋ณด์ ์กฐํฉ์ด ๋ฐ์๋๋๊ฐ?
- ์ ๋ฌด๊ธฐ์ ์, ์ฅํ์ ๊ด๊ณ ์ฐ๊ฒฐ์ ๋ํ ๊ท์น์ด ์์ ๋์ด ์๋๊ฐ?
- ์ ๋ฌด๊ธฐ์ ์, ์ฅํ์ ๊ด๊ณ ์ฐ๊ฒฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋์ฌ(Verb)๊ฐ ์๋๊ฐ? ๋ช ์ฌ(Noun) (X)
๐์๋ณ์ Identifiers
์ํฐํฐ๋ฅผ ๋ํํ ์ ์๋ ์์ฑ์ ์๋ฏธํ๋ค.
ํ๋์ ์ํฐํฐ๋ ๋ฐ๋์ ํ๋์ ์ ์ผํ ์๋ณ์๊ฐ ์กด์ฌํด์ผํ๋ค.
์ฃผ์๋ณ์์ ํน์ง
์ ์ผ์ฑ | ๋ชจ๋ ์ธ์คํด์ค๋ค์ด ์ฃผ์๋ณ์๋ก ์ ์ผํ๊ฒ ๊ตฌ๋ถ๋์ด์ผ ํ๋ค. | ์ด๋ฆ์ ๋๋ช ์ด์ธ์ด ์์ ์ ์๋ค. ์ฌ์๋ฒํธ ๋ถ์ฌ |
์ต์์ฑ | ์ฃผ์๋ณ์๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ์ ์ต์์ ์๊ฐ ๋์ด์ผ ํ๋ค. | ์ฌ์๋ฒํธ๋ก๋ ๊ตฌ๋ถ๊ฐ๋ฅํ๋ฐ ์ฌ์๋ฒํธ+์ด๋ฆ์ผ๋ก ๊ตฌ์ฑ๋ ํ์ ์์ |
๋ถ๋ณ์ฑ | ์ฃผ์๋ณ์์ ๊ฐ์ ์์ฃผ ๋ณํ์ง ์๋ ๊ฒ์ด์ด์ผ ํ๋ค. | ์ฌ์๋ฒํธ๋ ๋ณ๊ฒฝ๋๋ฉด ์๋๋ค. |
์กด์ฌ์ฑ | ์ฃผ์๋ณ์๊ฐ ์ง์ ๋๋ฉด ๋ฐ๋์ ๊ฐ์ด ๋ค์ด์์ผ ํ๋ค. | ์ฌ์๋ฒํธ๊ฐ ์๋ ์ง์์ ์์ ์ ์๋ค. |
์๋ณ์ ๋ถ๋ฅ
๋ํ์ฑ ์ฌ๋ถ | ์ฃผ์๋ณ์ | ์ ์ผ์ฑO, ์ต์์ฑO, ๋ํ์ฑO : ๋ชจ๋ ๋ง์กฑํ๋ ์๋ณ์ | ์ฌ์๋ฒํธ |
๋ณด์กฐ์๋ณ์ | ์ ์ผ์ฑO, ์ต์์ฑO, ๋ํ์ฑX : ๋ํ์ฑ๋ง ๋ง์กฑํ์ง ์๋ ์๋ณ์ | ์ฃผ๋ฏผ๋ฒํธ | |
์ค์ค๋ก ์์ฑ ์ฌ๋ถ |
๋ด๋ถ์๋ณ์ | ์ํฐํฐ ๋ด๋ถ์์ ์ค์ค๋ก ๋ง๋ค์ด์ง๋ ์๋ณ์ | |
์ธ๋ถ์๋ณ์ | ํ ์ํฐํฐ์์ ๊ด๊ณ๋ก ๋ฐ์์ค๋ ์๋ณ์ | ||
์์ฑ์ ์ | ๋จ์ผ์๋ณ์ | ํ๋์ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋ ์๋ณ์ | ์ฌ์๋ฒํธ |
๋ณตํฉ์๋ณ์ | ๋ ์ด์ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋ ์๋ณ์ | ์ด๋ฆ+์ฃผ๋ฏผ๋ฒํธ | |
๋์ฒด ์ฌ๋ถ | ๋ณธ์ง์๋ณ์ | ์ ๋ฌด์ ์ํด ๋ง๋ค์ด์ง๋ ์๋ณ์ | |
์ธ์กฐ์๋ณ์ | ์์กฐ์๋ณ์๊ฐ ๋ณต์กํ์ฌ ์ธ์์ ์ผ๋ก ๋ง๋ ์๋ณ์ | ์ฌ์๋ฒํธ |
์ฃผ์๋ณ์ ๋์ถ๊ธฐ์ค
- ํด๋น ์ ๋ฌด์์ ์์ฃผ ์ด์ฉ๋๋ ์์ฑ์ผ๋ก ์ง์ ํ๋ค.
- ๋ช ์นญ, ๋ด์ญ๊ณผ ๊ฐ์ด ์ด๋ฆ์ผ๋ก ๊ธฐ์ ๋๋ ๊ฒ์ ๊ฐ๋ฅํ๋ฉด ์ง์ ํ์ง ์๋๋ค. (๋ช ์นญ์ด ๊ธธ์ด์ง ๊ฒฝ์ฐ ์ฒ๋ฆฌ๊ฐ ๋๋ ค์ง๋ค)
- ๋ณตํฉ ์์ฑ์ธ ๊ฒฝ์ฐ, ๋๋ฌด ๋ง์ ์์ฑ์ด ํฌํจ๋์ง ์๋๋ก ํ๋ค.
์๋ณ์/๋น์๋ณ์ ๊ด๊ณ
์๋ณ์๊ด๊ณ | ๋น์๋ณ์๊ด๊ณ | |
๋ชฉ์ | ๊ฐํ ์ฐ๊ฒฐ๊ด๊ณ๋ฅผ ํํํ๋ค. | ์ฝํ ์ฐ๊ฒฐ๊ด๊ณ๋ฅผ ํํํ๋ค. |
๋ถ๋ชจ์๊ฒ ๋ฌผ๋ ค๋ฐ์ ์๋ณ์ |
๋ถ๋ชจ๋ก๋ถํฐ ๋ฐ์ ์๋ณ์๋ฅผ ์์์ํฐํฐ์์ ์ฃผ์๋ณ์๋ก ์ด์ฉํ๋ ๊ฒฝ์ฐ = ๋ถ๋ชจ์ํฐํฐ๊ฐ ์์ฑ๋์ด์ผ ์์์ํฐํฐ๊ฐ ์์ฑ๋๋ค. (๋ฐ๋ น ์ํฐํฐ๋ ๋ฐ๋์ ์ฌ์ ์ํฐํฐ๊ฐ ์์ด์ผ ์์ฑ๋ ์ ์๋ค) |
๋ถ๋ชจ๋ก๋ถํฐ ๋ฐ์ ์๋ณ์๋ฅผ ์์์ํฐํฐ์์ ์ฃผ์๋ณ์๋ก ์ด์ฉํ์ง ์๊ณ ์ผ๋ฐ์์ฑ์ผ๋ก ์ด์ฉํ๋ ๊ฒฝ์ฐ = ๋ถ๋ชจ์ํฐํฐ๊ฐ ์์ด๋ ๋๋ค. |
์๋ณ์/๋น์๋ณ์๋ก๋ง ๊ตฌ์ฑํ ๊ฒฝ์ฐ |
์ฌ๋ฌ ๋ถ๋ชจ์ ์๋ณ์๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ, ์ฃผ์๋ณ์์ ๊ฐ์๊ฐ ๋ง์์ง๊ฒ๋๋ค. = ๊ฐ๋ฐ ์ ๋ณต์กํด์ง๊ณ ์ค๋ฅ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค. EX. ์ํฐํฐ๋ช (PK) ParentA(AA) → ParentB(AA, BB) → ParentC(AA, BB, CC) → ME(AA, BB, CC, MM, MM) |
์์ฃผ ์กฐํํ๋ ์ฃผ์๋ณ์๋ฅผ ์ผ๋ฐ์์ฑ์ผ๋ก ๋๋ฉด ์์์ํฐํฐ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋, ์ธ๋ฐ์์ด ๋ถ๋ชจ์ํฐํฐ๊น์ง ์ฐพ์๊ฐ์ผํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. EX. ์ํฐํฐ๋ช (PK) / C์์ ์ ๊ฒ๋ฒํธ='301' ๋ฐ์ดํฐ ์กฐํ where A.๋ถ์ผ๋ฒํธ = B.๋ถ์ผ๋ฒํธ AND B.์ ๊ฒ๋ฒํธ = C.์ ๊ฒ๋ฒํธ AND C.์ ๊ฒ๋ฒํธ = '105' |
ํ๊ธฐ๋ฒ | ์ค์ | ์ ์ |
์๋ณ์/๋น์๋ณ์ ๊ด๊ณ๋ฅผ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ |
- ๊ฐํ ๊ด๊ณ์ธ ๊ฒฝ์ฐ - ์์ํ ์ด๋ธ์์ ์ข ์์ ์ธ ์ฃผ์๋ณ์๋ฅผ ์ํ ๊ฒฝ์ฐ - ๋ถ๋ชจํ ์ด๋ธ์ ์๋ณ์๋ฅผ ๊ณ์ ์์ํ ๊ฒฝ์ฐ - ์ํฐํฐ๋ณ๋ก ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋์ผํ๊ฒ ๊ด๋ฆฌํ ๊ฒฝ์ฐ |
- ์ฝํ ๊ด๊ณ์ธ ๊ฒฝ์ฐ - ์์ํ ์ด๋ธ์์ ๋ ๋ฆฝ์ ์ธ ์ฃผ์๋ณ์๋ฅผ ์ํ ๊ฒฝ์ฐ - ๋ถ๋ชจํ ์ด๋ธ์ ์๋ณ์๋ฅผ ์์๋ฐ์ง ์์ ๊ฒฝ์ฐ - ์ํฐํฐ๋ณ๋ก ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ค๋ฅด๊ฒ ๊ด๋ฆฌํ ๊ฒฝ์ฐ - SQL๋ฌธ์ฅ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ๋ ๊ฒฝ์ฐ |
๐ERD IE ํ๊ธฐ๋ฒ vs Barker ํ๊ธฐ๋ฒ
ERD(Entity Relationship Diagram)์ ์๋ก ๋ค๋ฅธ ์ํฐํฐ๋ค๊ณผ์ ๊ด๊ณ๋ฅผ ์ง๊ด์ ์ผ๋ก ํํํ๋ ์๋จ์ด๋ค.
ERD์ ๊ตฌ์ฑ์์๋ ์ํฐํฐ, ๊ด๊ณ, ์์ฑ 3๊ฐ์ง ์ด๋ค.
ํ๊ธฐ ์ฝ๋ ๋ฐฉ๋ฒ
IE ํ๊ธฐ๋ฒ | ๋ถ์๋ 0๋ช or 1๋ช or n๋ช ์ด์์ ์ฌ์๋ค๋ก ๊ตฌ์ฑ๋์ด์๋ค. | (ํ๊ธฐ๋ฅผ ์ํด์ ์ ์ , ์ค์ ํผํฉํ์ง๋ง ์์ ์ ์๋ค. ์ ์ ๋ง์ฐ๊ฑฐ๋ ์ค์ ๋ง ์ฌ์ฉํด์ผํ๋ค.) |
์ฌ์์ 1๊ฐ์ ๋ถ์๋ฅผ ๊ฐ๋๋ค. |
||
Barker ํ๊ธฐ๋ฒ |
๋ถ์๋ 1๋ช
์ด์์ ์ฌ์๋ค๋ก ๊ตฌ์ฑ๋์ด์๋ค. |
(์๋ณ๊ด๊ณ์ด๋ฏ๋ก #์ฌ์๋ฒํธ๊ฐ ๋ถ์ํ ์ด๋ธ์ PK๋ก ์์ด์ผํ๋ค) |
์ฌ์์ ๋ถ์๊ฐ ์์ ์ ์๋ค. |
(์์ง๋ง์. ์๋ณ/๋น์๋ณ๊ด๊ณ๋ ์ํฐํฐ์ ๊ธฐ๋ณธํค๋ฅผ ํ์ธํด์ผ ์ ์ ์๋ค!!)
(ํ๊ธฐ๋ฒ ํ์์ ์ง์คํ์ผ๋ ์๋ฏธ์ ์ณ๊ณ ๊ทธ๋ฆ์ ์ ์ ์ ์ด๋์)