1๏ธโฃ ๋ชจ๋ธ๋ง์ ์ดํด
๐ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
RDBMS๊ฐ ์ง์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ, ํ์
- ๋ชจ๋ธ๋ง์ ๋ชฉ์
- ์ ๋ฌด์ ํ์ํ ์ ๋ณด๋ฅผ '์ ์'ํ๊ณ 'ํํ'ํ์ฌ ์ ๋ฌด๋ฅผ ๋ถ์ *๊ฐ๋ฐ๋ง์ ์ํ ๊ฒ์ด ์๋
- ๋ถ์ ๋ชจ๋ธ์ ํตํด ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑ, ๊ด๋ฆฌ
- ๋ชจ๋ธ๋ง์ด ์ค์ํ ์ด์
- ๋ชจ๋ธ ๊ตฌ์กฐ(์ ๋ณด)๋ง ๋ณด๊ณ ๋ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋์ง ์ ์ ์์
- ์ฑ๋ฅ์ ์ธก๋ฉด์ ๊ณ ๋ คํ์ฌ SQL๋ฌธ์ ์์ฑํ ์ ์์
- ๋ชจ๋ธ๋ง์ ํน์ง
- ์ถ์ํ : ํ์ค์ธ๊ณ๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ๋ ์ฝ์๋ ํ๊ธฐ๋ฒ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ
- ๋จ์ํ : ๋ณต์กํ ํ์ค์ธ๊ณ๋ฅผ ์ ํ๋ ํ๊ธฐ๋ฒ์ด๋ ์ธ์ด๋ก ํํํ๋ ๊ฒ
- ๋ช ํํ : ์ ๋งค๋ชจํธํจ์ ์ ๊ฑฐํ๊ณ ํ์์ ์ ํํ๊ฒ ๊ธฐ์ ํ๋ ๊ฒ
- ๋ชจ๋ธ๋ง์ ๋จ๊ณ
- ๊ฐ๋
์ ๋ชจ๋ธ๋ง
- ํ์ค์ธ๊ณ → ๊ฐ๋ ์ ๊ตฌ์กฐ
- ํ์ํ ๋ฐ์ดํฐ์ ์๊ตฌ์ฌํญ์ ์ฐพ๊ณ , ๋ถ์ํ๋ ๊ณผ์
- ์ถ์ํ ์์ค ๊ฐ์ฅ ↑, ์ ๋ฌด์ค์ฌ์
- ex. ์ ์ฌ์ ๊ด์ ๊ธฐ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
- ๋
ผ๋ฆฌ์ ๋ชจ๋ธ๋ง
- ๊ฐ๋ ์ ๊ตฌ์กฐ → ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ
- ์ ๋ณด์ ๋ ผ๋ฆฌ ๊ตฌ์กฐ์ ๊ท์น์ ๋ช ํํ๊ฒ ํํํ๋ ๊ณผ์
- ๋๊ฐ, ์ด๋ป๊ฒ(Process)
- ์ ๊ทํ ์ํ - ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ ๋ฆฝ์ฑ ํ๋ณด
- ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง
- ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ → ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ปดํจํฐ ํ๋์จ์ด์ ์ด๋ป๊ฒ ํํ๋ ๊ฒ์ธ์ง ๋ค๋ฃจ๋ ๊ณผ์
- DBMS์ ํ ์ด๋ธ, ์ธ๋ฑ์ค ๋ฑ์ ์์ฑํ๋ ๋จ๊ณ
- ๊ฐ๋
์ ๋ชจ๋ธ๋ง
- ๋ชจ๋ธ๋ง์ ๊ด์
- ๋ฐ์ดํฐ ๊ด์ : What - ์ ๋ฌด๊ฐ ๋ฌด์จ ๋ฐ์ดํฐ์ ๊ด๋ จ ์๋๊ฐ?
- ํ๋ก์ธ์ค ๊ด์ : How - ์ด ๋ฐ์ดํฐ๋ก ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ? ex. ์๋๋ฆฌ์ค ๋ถ์, ๋๋ฉ์ธ ๋ถ์
- ์๊ด ๊ด์ : Intersection(What+How) - ๋ฐ์ดํฐ์ ์ด๋ค ๋ณํ๊ฐ ์ผ์ด๋๋๊ฐ? ex. CRUD ๋ถ์
2๏ธโฃ ๋ชจ๋ธ๋ง์ ์ค์์ฑ/์ ์์
- ๋ชจ๋ธ๋ง์ ์ค์์ฑ/์ ์์
- ํ๊ธ ํจ๊ณผ (Leverage) : ๊ตฌ์ฒด์ ์ธ(์์) ๋ด์ฉ์ด ๋ณํด๋ ํฐ ๊ตฌ์กฐ๋ ๋ณํ์ง ์๋๋ก
- ๊ฐ๊ฒฐํ ํํ (Conciseness) : ์ ๋ณด ์๊ตฌ ์ฌํญ์ด ๊ฐ์ฅ ์ ํํ๊ณ ๊ฐ๊ฒฐํ๊ฒ ํํ๋์ด์ผ ํจ
- ๋ฐ์ดํฐ ํ์ง (Data Quality) : ์ข์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ ์ ์๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ค๊ณํด์ผ ํจ
- ์ค๋ณต, ๋น์ ์ฐ์ฑ, ๋น์ผ๊ด์ฑ → X
- ํ๋ก์ ํธ ๋ผ์ดํ ์ฌ์ดํด : ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฐฉ๋ฒ๋ก ์ ๋ฐ๋ฅธ ํ๋ก์ ํธ ์์~์๋ฃ ์ผ๋ จ์ ๋จ๊ณ ex. ์ํฐํด, ์ ์์ผ
- ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด๊ด๊ณ์
- ์ ๋ณด์์คํ (ํ๋ก๊ทธ๋จ, ์ํํธ์จ์ด, ๋น์ฆ๋์ค etc)๋ฅผ ๊ตฌ์ถํ๋ ๋ชจ๋ ์ฌ๋
- ex. DBA, ํ์ ์ ๋ฌธ๊ฐ, ํ๋ก์ ํธ ๊ฐ๋ฐ์, ์ ๋ฌธ ๋ชจ๋ธ๋ฌ etc
3๏ธโฃ 3์ธต ์คํค๋ง
๐ช 3์ธต ์คํค๋ง
3๋จ๊ณ ๊ณ์ธต(๊ฐ๋ฐ์, ์ค๊ณ์, ์ฌ์ฉ์) ๊ด์ ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ์ ํ๊ณ ๊ด๊ณ๋ฅผ ์ ์ํ ํ์ค
- ๊ตฌ์กฐ โ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ SQLD ์๊ฒฉ์ฆ ๋๋น๋ฐ ๊ฐ์์๋ฃ
- ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ
- ์ผ๊ด๋ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๊ฒ
- ์์ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ํ๋์ ๊ณ์ธต์์ ์คํค๋ง๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๋ฅ๋ ฅ
- ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ์ด ํ์ํ ์ด์
- ์ ์ง๋ณด์ ๋น์ฉ, ์ค๋ณต์ฑ ์ฆ๊ฐ๋ฅผ ๋ง๊ธฐ ์ํจ
- ๋ฐ์ดํฐ ๋ณต์ก๋ ์ฆ๊ฐ๋ฅผ ๋ง๊ธฐ ์ํจ
- ์๊ตฌ์ฌํญ ๋์ ์ ํ๋ฅผ ๋ง๊ธฐ ์ํจ
- 3์ธต ์คํค๋ง์ ๋ ๋ฆฝ์ฑ โ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ SQLD ์๊ฒฉ์ฆ ๋๋น๋ฐ ๊ฐ์์๋ฃ
4๏ธโฃ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์์์ ERD
๐ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ฃผ์ ๊ฐ๋ 3
- ์ํฐํฐ(Entity) - ์ ๋ฌด๊ฐ ๊ด์ฌํ๋ ๋ฌด์ธ๊ฐ(thing, ๊ฐ์ฒด)
- ์์ฑ(Attribute) - ๋ฌด์ธ๊ฐ๊ฐ ๊ฐ๋ ์ธ๋ถ์ ์ธ ์ฑ๊ฒฉ, ํน์ง
- ๊ด๊ณ(Relationship) - ์ ๋ฌด์ ๋ฌด์ธ๊ฐ ๊ฐ์ ๊ด๊ณ
๐ ERD (Entity Relationship Diagram)
๋ฐ์ดํฐ ๊ฐ ๊ด๊ณ๋ฅผ ๋ํ๋ธ ๋ํ
- ERD ์์ฑ๋ฒ
- ์ํฐํฐ๋ฅผ ์ ์ํ๊ณ ๊ทธ๋ฆฐ๋ค.
- ์ํฐํฐ๋ฅผ ์ ์ ํ๊ฒ ๋ฐฐ์นํ๋ค.
- ๊ฐ์ฅ ์ค์ํ ์ํฐํฐ๋ฅผ ์ข์ธก ์๋จ์ ๋ฐฐ์นํ๊ณ ์ด๊ฒ์ ์ค์ฌ์ผ๋ก ๋ค๋ฅธ ์ํฐํฐ๋ค์ ๋์ดํ๋ค.
(์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ, ์์ชฝ์์ ์๋์ชฝ์ผ๋ก) - ์ํฐํฐ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ๋ค.
- ๊ด๊ณ๋ช ์ ์์ ํ๋ค.
- ๊ด๊ณ์ ์ฐธ์ฌ๋(์ํฐํฐ ๊ฐ ๊ด๊ณ์)๋ฅผ ๊ธฐ์ ํ๋ค.
- ๊ด๊ณ์ ํ์ ์ฌ๋ถ๋ฅผ ๊ธฐ์ ํ๋ค.
- ERD ํ๊ธฐ๋ฒ โ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ SQLD ์๊ฒฉ์ฆ ๋๋น๋ฐ ๊ฐ์์๋ฃ
'๐งฑ SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JOIN์ ์ ํ - INNER, (LEFT/RIGHT/FULL) OUTER, CROSS, SELF (0) | 2023.12.28 |
---|---|
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ 4 ์์ - ์ํฐํฐ, ์์ฑ, ๊ด๊ณ, ์๋ณ์ (1) | 2023.12.28 |
JOIN ์ ๋ฐ์ดํฐ ์งํฉ ๋ ๋ฒจ (์งํฉ ์์ค) + ์ถ๊ฐ 231228 (0) | 2023.12.27 |
๋ฐ์ดํฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, DBMS (1) | 2023.12.26 |
231223 SAT GROUP BY, HAVING (vs WHERE) (1) | 2023.12.23 |