์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- TIL
- ๋ฐ์ดํฐ ๋ถ์
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
- ์บ๊ธ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ฝ๋ฉ
- ํ์ด์ฌ
- ๋จธ์ ๋ฌ๋
- ์๋์ฐ ํจ์
- sql
- sqld
- ๋ง์ผํ
- ๋ ํ
- ๋ฐ์ดํฐ๋ถ์
- ์ฝ๋์นดํ
- Today
- Total
SQL & Python Study
[D+18] SQLD ์๊ฒฉ์ฆ(3) - ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, ์ ๊ทํ ์ด๋ก , ๋ฐ์ ๊ทํ ๋ณธ๋ฌธ
[D+18] SQLD ์๊ฒฉ์ฆ(3) - ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, ์ ๊ทํ ์ด๋ก , ๋ฐ์ ๊ทํ
๊น์ฎ์ 2024. 5. 16. 23:08
โ๏ธ STUDY INDEX
1. ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
2. ์ ๊ทํ ์ด๋ก
3. ๋ฐ์ ๊ทํ ๊ฐ๋
1. ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
(1) ์ฑ๋ฅ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง : DB ์ฑ๋ฅ ํฅ์์ ๋ชฉ์ ์ผ๋ก ํ๋ ์์
- ๋น ๋ฅธ ํ ํฌ๋ก ์์ฃผ ๋ฐ์ํ๋ ์ฟผ๋ฆฌ๊ฐ ๋นํจ์จ์ ์ผ ๊ฒฝ์ฐ, ์ ์ฒด DB ์ฑ๋ฅ์ ์ํฅ์ ๋ผ์นจ.
- ์ ๊ทํ, ๋ฐ์ ๊ทํ, ํ
์ด๋ธ ํตํฉ, ๋ฐ์ดํฐ ๋ถํ , ์กฐ์ธ๊ตฌ์กฐ, PK, FK ๋ฑ
์ฑ๋ฅ ๊ด๋ จ ์ฌํญ์ด ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ฐ์๋ ์ ์๋๋ก ํจ. - ์ฌ์ ์ค๊ณ ์งํฅ : ๋ถ์ ์ค๊ณ ๋จ๊ณ์์ ์ฌ์ ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ํํ๋ฉด ์ฌ์ ๋ฌด ๋น์ฉ ์ต์ํ ๊ฐ๋ฅ
(2) ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๊ณ ๋ ค์ฌํญ
- ์ ๊ทํ ์ํ : ์ค๋ณต ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์ง
- DB ์ฉ๋ ์ฐ์ ์ํ : ์ด๋ค ์ํฐํฐ์ ๋ฐ์ดํฐ๊ฐ ์ง์ค๋๋์ง ํ์ ํ์ฌ, ํ์์ ํ ์ด๋ธ ๋ถ๋ฆฌ/์กฐ์ธ
- DB์์ ๋ฐ์๋๋ ํธ๋์ญ์ ์ ํ ํ์ : CRUD ๋งคํธ๋ฆญ์ค, ์ํ์ค ๋ค์ด์ด๊ทธ๋จ ํ์ฉ, ์กฐ์ธ ๊ด๊ณ ํ์ ์ฉ์ด
- DB ์ฉ๋ & ํธ๋์ญ์ ์ ํ์ ๋ฐ๋ฅธ ๋ฐ์ ๊ทํ ์ํ
- ์ด๋ ฅ ๋ชจ๋ธ, PK/FK, ์ํผํ์ /์๋ธํ์ ์กฐ์ : ์ฑ๋ฅ์ด ์ฐ์ํ ์์๋๋ก ์นผ๋ผ ์์ ์กฐ์
- ์ฑ๋ฅ ๊ด์ ์์ ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ฒ์ฆ
(3) ์ ๊ทํ๋ฅผ ํตํ ์ฑ๋ฅ ํฅ์ ์ ๋ต
- ์ ๊ทํ ์ํ์ด๋ ๋ฐ์ดํฐ ์ค๋ณต์ฑ์ ์ ๊ฑฐํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ฒ.
- ๋ฐ์ดํฐ ์ ๋ ฅ, ์์ , ์ญ์ ๋ฑ์ ์์ ์ ์ฑ๋ฅ์ ํฅ์๋จ.
- ๋ค๋ง, ์กฐํ ์ฑ๋ฅ์ ํฅ์๋ ์๋ ์๋ ์๋ ์์.
๋ถํ์ํ ์กฐํ ์กฐ๊ฑด์ด ๋ง์์ ธ ์กฐ์ธ(JOIN)์ด ๋น๋ฒํ๊ฒ ๋ํ๋๋ค๋ฉด ๋นํจ์จ์ .
(4) ์ ๊ทํ์ ์ด์
- ๋ฐ์ดํฐ์ ์ ์ฐ์ฑ : ์ข
์์ฑ์ด ๊ฐํ ๋ฐ์ดํฐ ๋ถ๋ฆฌ → ๋์ ์์ง๋ ๋ฎ์ ๊ฒฐํฉ๋ ์์น ์ถฉ์ค
* ์์ง๋ : ๊ด๋ จ๋์ด ์๋ ์ ๋ (๋์์๋ก ํ์ง ํฅ์)
* ๊ฒฐํฉ๋ : ์ํธ ์์กด ์ ๋ (๋์์๋ก ์์คํ ๊ตฌํ, ์ ์ง๋ณด์ ์ด๋ ค์) - ๋ฐ์ดํฐ ์ฌํ์ฉ์ฑ : ๊ฐ๋ ์ด ์ธ๋ถํ๋์ด ์ฌํ์ฉ ๊ฐ๋ฅ์ฑ์ด ์ฆ๊ฐ
- ๋ฐ์ดํฐ ์ค๋ณต ์ต์ํ : ์๋ณ์๊ฐ ์๋ ์์ฑ์ 1๋ฒ๋ง ํฌํจ๋๊ธฐ ๋๋ฌธ์ ์ค๋ณต ์ต์ํ๋จ.
2. ์ ๊ทํ ์ด๋ก
(1) ์ ๊ทํ ๊ฐ๋
- ํจ์์ ์ข ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก, ์ฑ๋ฅ ํฅ์์ ๋ชฉ์ ์ผ๋ก ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๋ ๊ณผ์
- ํจ์์ ์ข
์์ฑ: ๋ฐ์ดํฐ๋ค์ด ์ด๋ค ๊ธฐ์ค ๊ฐ์ ์ํด ์ข
์๋๋ ํ์
e.g. ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ(๊ฒฐ์ ์) → ์ด๋ฆ, ์ถ์์ง, ์ฃผ์(์ข ์์) ํจ์์ ์ข ์ ๊ด๊ณ
(2) ์ ๊ทํ ์ ํ
์ ๊ทํ ์ ํ | ์ค๋ช |
์ 1์ ๊ทํ | "ํ๋์ ์์ฑ์ ์ฌ๋ฌ๊ฐ ๋ฃ์ง๋ง!๐ง" ์์ฑ์ ์์์ฑ ํ๋ณด - ๋ชจ๋ ์์ฑ์ ๋ฐ๋์ ํ๋์ ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ค. - ํ ์์ฑ์ ์ฌ๋ฌ ์์ฑ๊ฐ์ ๋ถ์ฌํ๊ฑฐ๋, ๊ฐ์ ์ ํ์ ์์ฑ์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ ์์ฑ ๋ถ๋ฆฌ e.g. ๋ง์ฝ ์ถ์์ง์ ์ง์ญ๊ณผ ์ถ์์ฐ๋๊ฐ ๊ฐ์ด ์๋ค๋ฉด ๋ถ๋ฆฌํด์ผ ํจ. |
์ 2์ ๊ทํ | "PK์ ์ข
์๋์ง ์์ ๊ฐ์ ์์ฑ์ ๋ถ๋ฆฌ์ํค๊ณ , ์๋ฆฌ ๋ค์ง๊ธฐ!" ๋ถ๋ถ ์ข
์ ์์ฑ ๋ถ๋ฆฌ ์ 1์ ๊ทํ๋ฅผ ๋ง์กฑ์ํค๊ณ , PK๊ฐ ์๋ ๋ชจ๋ ์นผ๋ผ์ PK ์ ์ฒด์ ์ข ์์ํค๋ ๊ฒ! - PK๋ ์ํฐํฐ๋ด ๋ชจ๋ ์์ฑ๊ณผ ์ข ์์ฑ์ ๊ฐ์. ์ผ๋ถ๋ง PK์ ์ข ์๋๋ ์นผ๋ผ์ ๋ถ๋ฆฌํด์ผ ํจ - ๊ฐฑ์ ์ด์ ๋ฌธ์ ๋ฐฉ์ง - ๋ณตํฉ ์๋ณ์์ ์ผ๋ถ ์นผ๋ผ์๋ง ์ข ์๋๋ ๋ฌธ์ ํด๊ฒฐ |
์ 3์ ๊ทํ | "๋ค๋ฅธ ์์ฑ์ด ์ฐ๋๋จธ๋ฆฌ๊ฐ ๋ ์ ์๊ฒ, ์์ฑ๊ฐ ์ข
์์ฑ ์์ ๊ธฐ!" ์ด์ ์ข ์ ์์ฑ ๋ถ๋ฆฌ, ์ดํ์ ํจ์ ์ข ์ ์ ๊ฑฐ ์ 2์ ๊ทํ๋ฅผ ๋ง์กฑ์ํค๊ณ , ์ผ๋ฐ ์์ฑ ๊ฐ์๋ ํจ์ ์ข ์ ๊ด๊ณ๊ฐ ์กด์ฌํ์ง ์์์ผ ํจ. |
๋ณด์ด์ค - ์ฝ๋ ์ ๊ทํ (BCNF) |
๊ฒฐ์ ์ ์์ ํจ์ ์ข ์์ ๊ฐ์ง ์ฃผ์๋ณ์ ์์ฑ ๋ถ๋ฆฌ |
์ 4์ ๊ทํ | ๋ค์น ์ข ์์ฑ ์ ๊ฑฐ |
์ 5์ ๊ทํ | ์กฐ์ธ ์์ฑ ์ ๊ฑฐ |
3. ๋ฐ์ ๊ทํ ๊ฐ๋
(1) ๋ฐ์ ๊ทํ(ํน์ ์ญ์ ๊ทํ)
- ์ ๊ทํ์ ๋ฐ๋ ๊ฐ๋
- ์ฑ๋ฅ ํฅ์์ ๋ชฉ์ ์ผ๋ก ๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉ
- ํ ์ด๋ธ, ์นผ๋ผ, ๊ด๊ณ ์ค๋ณต → ์กฐํ ์ฑ๋ฅ ํฅ์
(2) ๋ฐ์ ๊ทํ๋ฅผ ์ ์ฉํ๋ ์ํฉ
- ๋ฐ์ดํฐ ์กฐํ ์ I/O ๋์ด ๋ง์ด ์ฑ๋ฅ์ด ์ ํ๋๋ ๊ฒฝ์ฐ
- ํ ์ด๋ธ ๊ฐ ๊ฒฝ๋ก๊ฐ ๋ฉ์ด ์กฐ์ธ์ผ๋ก ์ธํ ์ฑ๋ฅ ์ ํ
- ์นผ๋ผ ๊ณ์ฐ ์ ์ฑ๋ฅ์ด ์ ํ๋ ๊ฒ์ผ๋ก ์์ํ๋ ๊ฒฝ์ฐ
(3) ๋ฐ์ ๊ทํ ์ ์ฐจ
1. ๋ฐ์ ๊ทํ ๋์ ์กฐ์ฌ | 2. ๋ค๋ฅธ ๋ฐฉ๋ฒ ์ ๋ ๊ฒํ | 3. ๋ฐ์ ๊ทํ ์ ์ฉ |
๋ฒ์ ์ฒ๋ฆฌ ๋น๋์ | ๋ทฐ(view) ํ ์ด๋ธ | ํ ์ด๋ธ์ ๋ฐ์ ๊ทํ |
๋๋์ ๋ฒ์ ์ฒ๋ฆฌ | ํด๋ฌ์คํฐ๋ง ์ ์ฉ | ์์ฑ์ ๋ฐ์ ๊ทํ |
ํต๊ณ์ฑ ํ๋ก์ธ์ค | ์ธ๋ฑ์ค ์กฐ์ | ๊ด๊ณ์ ๋ฐ์ ๊ทํ |
ํ ์ด๋ธ ์กฐ์ธ ๊ฐ์ | ์์ฉ ์ดํ๋ฆฌ์ผ์ด์ |
(4) ํ ์ด๋ธ ๋ฐ์ ๊ทํ
์ ํ | ์ธ๋ถ ๊ธฐ๋ฒ |
ํ ์ด๋ธ ๋ณํฉ | ์ฌ๋ฌ ๊ฐ์ ํ
์ด๋ธ์ ํ๋๋ก ํฉ์น๊ธฐ (์ค๋ณต ์ ์ฅ, ์กฐํ ์ฑ๋ฅ ํฅ์)
|
ํ ์ด๋ธ ๋ถํ | ํน์ ํ
์ด๋ธ์ ์ฌ๋ฌ๊ฐ์ ํ
์ด๋ธ๋ก ๋๋๋ ๊ฒ
|
ํ ์ด๋ธ ์ถ๊ฐ | ํน์ ํ
์ด๋ธ ์ถ๊ฐ (์ค๋ณต ์ ์ฅ, ์กฐํ ์ฑ๋ฅ ํฅ์)
|
(5) ์นผ๋ผ ๋ฐ์ ๊ทํ
- ์ค๋ณต ์นผ๋ผ ์ถ๊ฐ : ์กฐ์ธ ์ฐ์ฐ์ผ๋ก ์ธํ ์ฑ๋ฅ ์ ํ ๋ฐฉ์ง๋ฅผ ์ํด
- ํ์ ์นผ๋ผ ์ถ๊ฐ : ํธ๋์ญ์ ์ด ์ฒ๋ฆฌ๋๋ ์์ ์ ๊ณ์ฐํ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ๊ณ์ฐํ ์นผ๋ผ์ ๋ฐ๋ก ๊ตฌ์ฑํ๋ ๊ฒ e.g. ์ด๋งค์ถ
- ์ด๋ ฅ ํ ์ด๋ธ ์นผ๋ผ ์ถ๊ฐ : ๋ถํน์ ๋ , ์ต๊ทผ ๊ฐ ์กฐํ ์ฑ๋ฅ์ ํ ๋ฐฉ์ง๋ฅผ ์ํด ์์์ผ, ์ข ๋ฃ์ผ ์นผ๋ผ ์ง์
- PK์ ์ํ ์นผ๋ผ ์ถ๊ฐ : ๋ณตํฉํค ๋ด์ ์ํ ๊ฐ์ ์ผ๋ฐ ์์ฑ์ผ๋ก ์์ฑํ์ฌ ์ฑ๋ฅ ์ ํ ๋ฐฉ์ง
- ์์ฉ ์์คํ ์ ์ค์๋์ ์ํ ์นผ๋ผ ์ถ๊ฐ : ์๋ชป๋ ๊ฒฝ์ฐ ๋ณต๊ตฌ๋ฅผ ์ํด ์ด์ ํ ์ดํฐ๋ฅผ ์์์ ์ผ๋ก ์ค๋ณต ๋ณด๊ดํ๋ ๊ฒ
2024. 5. 16
์ ์ ์์ด ํ์ด์ฌ์ ๋ฐฐ์ฐ๊ณ ํ๋ค์ค, ๋งฅํ๋กฏ๋ฆฝ์ ๋ฐฐ์ฐ๋ ๋์ SQLD ์ํ์ด ์ผ์ฃผ์ผ ๋ฐ์ ๋จ์ง ์์์ด์๐ฃ
์ ํํ๋ ๋ฑ 9์ผ ๋จ์๋ค์. ๋ด์ผ๋ถํฐ ํ ํ๋ก์ ํธ ๊ธฐ๊ฐ์ด์ง๋ง, ์ง๋๋ฌ ์ ์ ํจ๊ธฐ๋ฅผ ๊ธฐ์ตํ๋ฉฐ ๋น ๋ฅด๊ฒ ๋ฒผ๋ฝ์น๊ธฐ๋ฅผ ์ํ ์ค๋น๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค! ์๋ ๋ถํธ์บ ํ์์ ๋ฐฐ์ด ์์๋๋ก TIL์ ์์ฑํ๋ ค๊ณ ํ๋๋ฐ, ์ฐ์ ์์๊ฐ ์๋ ๊ธํ๊ธฐ๋ ํ๊ณ , ์๋กญ๊ฒ ๋ฐฐ์ฐ๋ ๋ด์ฉ๋ค์ด ๋ฐฉ๋ํด ์ ๋ฆฌ๊ฐ ๋ง์ด ํ์ํ๋ค ๋ณด๋ ์ ์๋์์ ํฌ์คํ
์ ๋ค์ฃฝ๋ฐ์ฃฝ ์ฌ๋ฆฌ์ง ์์๊น ์ถ๋ค์! 5์ SQLD ์ํ ์ค๋นํ์๋ ๋ถ๋ค ํ์ดํ
ํ์๊ธธ ๋ฐ๋๋๋ค! ๊ฐ์ด ํ๋ฐฉ์ ํต๊ณผํด์๐
Today I Learned check list
โ Pandas ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ์๊ฐํ ๊ณผ์ ํ์ด ๋ฐ ์ ์ถ
โ ๊ณผ์ ํ์ด ํํฐ๋ง ์ธ์ ์ฐธ์ฌ
โ Matplotlib ๋ฐ์ดํฐ ์๊ฐํ ๋ณต์ต
โ SQL ์ฝ๋์นดํ 3๋ฌธ์ ํ์ด (69~71๋ฌธ์ )
โ SQLD 4์ผ ์ฐจ, 10~13์ผ ์ฐจ ๋ณต์ต
โ 5/16 TIL ์์ฑ