์ํฐํฐ
- ์ ๋ฌด์์ ๊ด๋ฆฌํด์ผ ํ๋ ๋ฐ์ดํฐ์ ์งํฉ, ์ธ์คํด์ค์ ์งํฉ
- ํน์ง
- ์ ๋ฌด์์ ํ์๋ก ํ๋ ์ ๋ณด์ฌ์ผ ํ๋ค.
- ์ ์ผํ ์๋ณ์
- 2๊ฐ ์ด์์ ์ธ์คํด์ค์ ์งํฉ
- ์ ๋ฌด ํ๋ก์ธ์ค์ ์ํด ์ด์ฉ๋์ด์ผ ํจ
- 2๊ฐ ์ด์์ ์์ฑ์ ๊ฐ์ง (๋ฐ๋์ ์์ฑ์ด ์์ด์ผ ํจ)
- ์ต์ 1๊ฐ ์ด์์ ๊ด๊ณ๋ฅผ ๊ฐ์ง
- ERD / ์
- ๋ถ๋ฅ
<์ ๋ฌดํ์ ๋ฐ๋ฅธ ๋ถ๋ฅ>
- ์ ํ ์ํฐํฐ : ๋ฌผ๋ฆฌ์ ์ธ ํํO, ์ง์์ ์ผ๋ก ํ์ฉ ex) ์ฌ์, ๋ฌผํ
- ๊ฐ๋ ์ํฐํฐ : ๋ฌผ๋ฆฌ์ ์ธ ํํX ex) ์กฐ์ง, ์ฅ์
- ์ฌ๊ฑด ์ํฐํฐ : ์ ๋ฌด๋ฅผ ์ํํจ์ ๋ฐ๋ผ ๋ฐ์ ex)์ฃผ๋ฌธ, ์ฐฝ๊ตฌ
<๋ฐ์ ์์ ์ ๋ฐ๋ฅธ ๋ถ๋ฅ>
- ๊ธฐ๋ณธ ์ํฐํฐ : ์ ๋ฌด์ ์๋ ์กด์ฌํ๋ ์ ๋ณด, ๋ ๋ฆฝ์ ์ผ๋ก ์์ฑ ๊ฐ๋ฅ ex)์ฌ์, ๋ถ์, ์ํ
- ์ค์ฌ ์ํฐํฐ : ๊ธฐ๋ณธ์ํฐํฐ๋ก๋ถํฐ ๋ฐ์, ํ์ ์ํฐํฐ๋ฅผ ์์ฑ ex) ๊ณ์ฝ, ์ฃผ๋ฌธ
- ํ์ ํ ํฐํฐ : ๋๊ฐ ์ด์์ ๋ถ๋ชจ ์ํฐํฐ๋ก๋ถํฐ ๋ฐ์, ์์ฃผ ๋ณํ ex) ์ฃผ๋ฌธ๋ชฉ๋ก
- ๋ช ๋ช ๊ท์น
- ํ์ ์ ๋ฌด์์ ์ฌ์ฉํ๋ ์ฉ์ด
- ์ฝ์ด ์ง์
- ๋จ์๋ช ์ฌ ์ฌ์ฉ
- ์ค๋ณตX
- ์์ฑ ์๋ฏธ๋๋ก์ ์ด๋ฆ ๋ถ์ฌ
์์ฑ
- ์ ๋ฌด์์ ํ์๋ก ํ๋ ์ธ์คํด์ค์์ ๊ด๋ฆฌํ๊ณ ์ ํ๋ ์ต์ํ์ ๋ฐ์ดํฐ ๋จ์
- ํ๊ธฐ๋ฒ
- ํน์ง
- ์ ๋ฌด์์ ํ์๋ก ํ๋ ์ ๋ณด์ฌ์ผ ํ๋ค.
- ์ฃผ์๋ณ์์ ํจ์์ ์ข ์๋จ
- ํ๋์ ์์ฑ์๋ ํ ๊ฐ์ ๊ฐ => ๋ค์ค๊ฐ์ผ ๊ฒฝ์ฐ ๋ณ๋์ ์ํฐํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ถ๋ฆฌ
- ๋ถ๋ฅ
<ํน์ฑ์ ๋ฐ๋ฅธ ๋ถ๋ฅ>
- ๊ธฐ๋ณธ ์์ฑ : ์ ๋ฌด ๊ณผ์ ์์ ๋์ถ๋๋ ์์ฑ ex) ์ ํ์ด๋ฆ, ์ ์กฐ์ผ
- ์ค๊ณ ์์ฑ : ์ ๋ฌด์ ๊ท์นํ๋ฅผ ์ํด ์๋ก ์ ์ํ๋ ์์ฑ ex) ์ผ๋ จ๋ฒํธ
- ํ์ ์์ฑ : ๋ค๋ฅธ ์์ฑ์ ์ํด ๋ง๋ค์ด์ง๋ ์์ฑ ex) ํ๊ท , ์ด์
<๊ตฌ์ฑ๋ฐฉ์์ ๋ฐ๋ฅธ ๋ถ๋ฅ>
- PK ์์ฑ : ์ํฐํฐ ์๋ณํ๋ ์์ฑ
- FK ์์ฑ : ๋ค๋ฅธ ์ํฐํฐ์์ ๊ด๊ณ์์ ํฌํจ๋ ์์ฑ
- ์ผ๋ฐ ์์ฑ : PK, FK์์ ์์ฑ
<๋ถํด๊ฐ๋ฅ ์ฌ๋ถ์ ๋ฐ๋ฅธ ๋ถ๋ฅ>
- ๋ณตํฉ ์์ฑ : ์ฌ๋ฌ ์ธ๋ถ ์์ฑ์ผ๋ก ๊ตฌ์ฑ ex) ์ฃผ์(์, ๊ตฌ, ๋)
- ๋จ์ผ ์์ฑ : ๋ค๋ฅธ ์์ฑ์ผ๋ก ๊ตฌ์ฑX ex) ๋์ด, ์ฑ๋ณ
- ๋จ์ผ๊ฐ ์์ฑ : ์์ฑ ํ๋์ ํ ๊ฐ์ ๊ฐ ex) ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ
- ๋ค์ค๊ฐ ์์ฑ : ์์ฑ ํ๋์ ์ฌ๋ฌ ๊ฐ์ ๊ฐ ex) ์ ํ๋ฒํธ(์ง์ ํ, ํฐ์ ํ, ์ง์ฅ์ ํ)
- ๋๋ฉ์ธ : ๊ฐ ์์ฑ์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ ๋ฒ์ (๋ฐ์ดํฐํ์ ใํฌ๊ธฐใ์ ์ฝ์ฌํญ ์ง์ ํ๋ ๊ฒ)
- ๋ช ๋ช ๊ท์น
- ํด๋น์ ๋ฌด์์ ์ฌ์ฉํ๋ ์ด๋ฆ ๋ถ์ฌ
- ์์ ์ใ์ฝ์ด ์ง์
- ์ ์ฒด ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ์ ์ผ์ฑ ํ๋ณด
๊ด๊ณ
- ์ํฐํฐ์ ์ธ์คํด์ค๊ฐ์ ๋ ผ๋ฆฌ์ ์ธ ์ฐ๊ด์ฑ => ์กด์ฌ or ํ์๋ก์ ์๋ก์๊ฒ ์ฐ๊ด์ฑ์ด ๋ถ์ฌ๋ ์ํ
-์ํฐํฐ ์ฌ์ด์์ ์ ์ํ ๊ด๊ณ๋ฅผ ์ฒดํฌํ๋ ์ฌํญ
- ๋ ๊ฐ์ ์ํฐํฐ ์ฌ์ด์ ๊ด์ฌ ์๋ ์ฐ๊ด๊ท์น์ด ์กด์ฌํ๋๊ฐ?
- ๋ ๊ฐ์ ์ํฐํฐ ์ฌ์ด์ ์ ๋ณด์ ์กฐํฉ์ด ๋ฐ์๋๋๊ฐ?
- ์ ๋ฌด๊ธฐ์ ์, ์ฅํ์ ๊ด๊ณ์ฐ๊ฒฐ์ ๋ํ ๊ท์น์ด ์์ ๋์ด ์๋๊ฐ?
- ์ ๋ฌด๊ธฐ์ ์, ์ฅํ์ ๊ด๊ณ์ฐ๊ฒฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋์ฌ๊ฐ ์๋๊ฐ?
- ๊ด๊ณ์ ํ์ด๋ง : ์ํฐํฐ์ ์ธ์คํด์ค๋ค์ด ์์ ์ด ๊ด๋ จ๋ ์ธ์คํด์ค๋ค๊ณผ ๊ด๊ณ์ ์ด์ปค๋ฐ์ค๋ก ์ฐธ์ฌํ๋ ํํ
ex) ๋ฐ๊ฐ์ฌ๋ ๊นํ์์๊ฒ ๊ฐ์๋ฅผ ํ๋ค. => ๊ฐ์ฌ ์ํฐํฐ์ ๋ฐ๊ฐ์ฌ์ ํ์ ์ํฐํฐ์ ๊นํ์์ '๊ฐ์ํ๋ค'๋ก ๊ด๊ณ
- ๋ถ๋ฅ
<ERD>
- ์กด์ฌ ๊ด๊ณ : ์กด์ฌ์ ํํ์ ์ํด ํ์ฑ ex) ๋ถ์ --- ์ฌ์ (์์)
- ํ์ ๊ด๊ณ : ํ์์ ์ํด ๋ฐ์ ex) ๊ณ ๊ฐ --- ์ฃผ๋ฌธ (์ฃผ๋ฌธํ๋ค)
- => ๊ด๊ณ๋ฅผ ์ฐ๊ฒฐํ ๋, ์กด์ฌ/ํ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ๋จ์ผํ๋ ํ๊ธฐ๋ฒ ์ฌ์ฉ
<UML>
- ์ฐ๊ด ๊ด๊ณ : ํญ์ ์ด์ฉํ๋ ๊ด๊ณ (์กด์ฌ์ ๊ด๊ณ) => ์ค์
- ์์กด ๊ด๊ณ : ์๋๋ฐฉ ํด๋์ค์ ํ์์ ์ํด ํ์ฑ => ์ ์
- ๊ด๊ณ์ ํ๊ธฐ๋ฒ : ๊ด๊ณ๋ช , ๊ด๊ณ์ฐจ์(1:1, 1:M, M:N), ๊ด๊ณ ์ ํ์ฌ์(ํ์, ์ ํ)
- ์ฝ๊ธฐ
๊ฐ | ๊ธฐ์ค์ํฐํฐ | ๊ด๊ณ์ฐจ์ | ๊ด๋ จ์ํฐํฐ | ์ ํ์ฌ์ | ๊ด๊ณ๋ช |
๊ฐ๊ฐ์ | ์ฌ์์ | ํ | ๋ถ์์ | ๋๋๋ก | ์ํ๋ค |
๊ฐ | ๋ถ์์๋ | ์ฌ๋ฌ | ์ฌ์์ด | ํญ์ | ์์๋๋ค |
์๋ณ์
- ํ๋์ ์ํฐํฐ์ ๊ตฌ์ฑ๋์ด ์๋ ์ฌ๋ฌ ๊ฐ์ ์์ฑ ์ค์ ์ํฐํฐ๋ฅผ ๋ํํ ์ ์๋ ์์ฑ => key(๋ฌผ๋ฆฌ) / ์๋ณ์(๋ ผ๋ฆฌ)
ex) ํ์ ์ํฐํฐ์ ์์ฑ์ธ ์๋ณ๋ฒํธ, ์ด๋ฆ, ์ ํ๋ฒํธ, ์ฃผ์ ์ค ์๋ณ์๋ '์๋ณ๋ฒํธ'
- ํน์ง : ์ ์ผ์ฑ, ์ต์์ฑ, ๋ถ๋ณ์ฑ, ์กด์ฌ์ฑ(NOT NULL)
- ๋ถ๋ฅ
- ์ฃผ์๋ณ์ / ๋ณด์กฐ์๋ณ์ : ์ํฐํฐ ๋ด์์ ๋ํ์ฑ์ ๊ฐ์ง๋๊ฐ
- ๋ด๋ถ์๋ณ์ / ์ธ๋ถ์๋ณ์ : ์ํฐํฐ ๋ด์์ ์ค์ค๋ก ์์ฑ๋์๋๊ฐ ex) ์ฌ์์ด ์ ์ฌํ๋ฉด ์๊ธฐ๋ '์ฌ์๋ฒํธ' (๋ด๋ถ์๋ณ์) / ํ ์ํฐํฐ์์ ๊ด๊ณ๋ก ๋ฐ์์ค๋ ์๋ณ์ (์ธ๋ถ์๋ณ์-Foreign key)
- ๋จ์ผ์๋ณ์ / ๋ณตํฉ์๋ณ์ : ๋จ์ผ ์์ฑ์ผ๋ก ์๋ณ์ด ๋๋๊ฐ
- ๋ณธ์ง์๋ณ์ / ์ธ์กฐ์๋ณ์ : ์ ๋ฌด์ ์ผ๋ก ์๋ฏธ๊ฐ ์๋ ์์ฑ์ ๋์ฒดํ์ฌ ๋ง๋ค์๋๊ฐ ex) ์ผ๋ จ๋ฒํธ (์ธ์กฐ์๋ณ์)
- ๋ฌธ์ ์
- ์๋ณ์ ๊ด๊ณ๋ก๋ง ์ค์ ํ ๊ฒฝ์ฐ์ ๋ฌธ์ ์ : ํ ์ํฐํฐ์ PK์์ฑ์ ๊ฐฏ์๊ฐ ์์ฒญ ๋ง์์ง ์ ์๋ค
- ๋น์๋ณ์ ๊ด๊ณ๋ก๋ง ์ค์ ํ ๊ฒฝ์ฐ์ ๋ฌธ์ ์ : ๋ฌด์ธ๊ฐ๋ฅผ ์กฐํํ ๋ ๋ถ๋ชจ ์ํฐํฐ๊น์ง ์ฐพ์๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์กฐ์ธ์ด ๊ฑธ๋ฆฌ๊ฒ ๋์ด SQL๊ตฌ๋ฌธ์ด ๊ธธ์ด์ง๊ณ ์ฑ๋ฅ์ด ์ ํ๋๊ฒ ๋๋ค.
=> ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ณ์ ๊ด๊ณ๋ก ๋ชจ๋ ๊ด๊ณ๋ฅผ ์ฐ๊ฒฐํ๋ ํน์ ์กฐ๊ฑด์ ํด๋น ๋๋ ๊ฒ๋ง ๋น์๋ณ์๊ด๊ณ๋ก ์กฐ์ ํ๋ฉด ๋๋ค.
- ๊ด๊ณ๊ฐ ์ฝํ ๋
- ์์ ์ํฐํฐ์ ๋ ๋ฆฝ์ ์ธ PK๊ฐ ํ์ํ ๋
- SQL ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ ๋ (๋จ์ํ ํ์)
'๐์๊ฒฉ์ฆ ๊ณต๋ถ > ๐ SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] SQL ๊ธฐ๋ณธ - ์กฐ์ธ JOIN (0) | 2022.11.05 |
---|---|
[SQLD] SQL ๊ธฐ๋ณธ - ํจ์, GROUP BY, HAVING, ORDER BY (0) | 2022.11.05 |
[SQLD] SQL ๊ธฐ๋ณธ (0) | 2022.11.04 |
[SQLD] ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ์ฑ๋ฅ (0) | 2022.11.04 |
[SQLD] ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด (0) | 2022.10.13 |