โ๏ธ ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๊ฐ์
์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง : DB ์ฑ๋ฅ ํฅ์์ ์ํ ์ฌํญ์ด ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ฐ์๋๋๋ก ํ๋ ๊ฒ
์ํ ์์ : ๋ถ์/์ค๊ณ ๋จ๊ณ, ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์์ ์ด ๋ฆ์ด์ง์๋ก ์ฌ์
๋ฌด ๋น์ฉ์ด ์ฆ๊ฐํจ
๊ณ ๋ ค ์ฌํญ : ์ ๊ทํ ์ํ, DB ์ฉ๋ ์ฐ์ ๊ณผ ํธ๋์ญ์
์ ํ ํ์
์ ์ํ ๋ฐ์ ๊ทํ ์ํ, ์ ๊ทํ๋ ๋ฌด์กฐ๊ฑด ํด์ผ๋๋ค
โ๏ธ ์ ๊ทํ
์ ๊ทํ(Normalization) : ๋ฐ์ดํฐ ๋ถํด ๊ณผ์ , ์ด์ํ์(anomaly) ์ ๊ฑฐ
- ์ ๊ทํ : ์ ๊ทํ๋ก ๋์ถ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ๊ฐ์ถฐ์ผ ํ ํน์ฑ
ํจ์์ ์ข
์์ฑ(Functional Dependency) : ๊ฒฐ์ ์์ ์ข
์์์ ๊ด๊ณ, ๊ฒฐ์ ์์ ๊ฐ์ผ๋ก ์ข
์์์ ๊ฐ์ ์ ์ ์์
- ๋ค์น ์ข
์ : ์ฌ๋ฌ ์ปฌ๋ผ์ด ๋์ผํ ๊ฒฐ์ ์์ ์ข
์์์ผ ๋
์ ๊ทํ ์ด๋ก :
-
1์ฐจ, 2์ฐจ, 3์ฐจ, ๋ณด์ด์ค์ฝ๋ ์ ๊ทํ๋ ํจ์์ ์ข
์์ฑ์ ๊ทผ๊ฑฐ
-
4์ฐจ ์ ๊ทํ๋ ๋ค์น ์ข
์์ ์ ๊ฑฐ
-
5์ฐจ ์ ๊ทํ๋ ์กฐ์ธ์ ์ํ ์ด์ํ์์ ์ ๊ฑฐํ์ฌ ์ ๊ทํ๋ฅผ ์ํํจ
ใ
คโ 1์ฐจ ์ ๊ทํ : ์์ฑ์ ์์์ฑ ํ๋ณด, ๋ค์ค๊ฐ ์์ฑ์ ๋ถ๋ฆฌํจ
ใ
คโ 2์ฐจ ์ ๊ทํ : ๋ถ๋ถ ํจ์ ์ข
์์ฑ ์ ๊ฑฐ, ์ผ๋ถ ๊ธฐ๋ณธํค์๋ง ์ข
์๋ ์์ฑ์ ๋ถ๋ฆฌํจ, ๊ธฐ๋ณธํค๊ฐ ํ๋์ ์นผ๋ผ์ผ ๋ ์๋ต ๊ฐ๋ฅ
![](https://velog.velcdn.com/images/gelo_/post/f2244047-46b2-44c6-94da-f09c10dd3d4b/image.png)
ใ
คโ 3์ฐจ ์ ๊ทํ : ์ดํ ์ผ์ ์ข
์์ฑ ์ ๊ฑฐ, ์๋ก ์ข
์๊ด๊ณ๊ฐ ์๋ ์ผ๋ฐ์์ฑ์ ๋ถ๋ฆฌํจ, ์ฃผ์๋ณ์์ ๊ด๋ จ์ฑ์ด ๊ฐ์ฅ ๋ฎ์
![](https://velog.velcdn.com/images/gelo_/post/3944d1d1-f069-4924-a814-0bb45e509573/image.png)
ใ
คโ ๋ณด์ด์ค์ฝ๋ ์ ๊ทํ : ํ๋ณดํค๊ฐ ๊ธฐ๋ณธํค ์์ฑ ์ค ์ผ๋ถ์ ํจ์์ ์ข
์์ผ ๋ ๋ค์์ ์ฃผ์๋ณ์๋ฅผ ๋ถ๋ฆฌํจ
ใ
คโ 4์ฐจ ์ ๊ทํ, 5์ฐจ์ ๊ทํ : ๋ค์น ์ข
์ ๋ถ๋ฆฌ, ๊ฒฐํฉ ์ข
์ ๋ถ๋ฆฌ
โ๏ธ ์ ๊ทํ์ ์ฑ๋ฅ
์ ๊ทํ๋ ์
์ถ๋ ฅ ๋ฐ์ดํฐ์ ์์ ์ค์ฌ ์ฑ๋ฅ์ ํฅ์์ํด
์ ๊ทํ๋ก ์ธํ ์ฑ๋ฅ ํฅ์ :
- ์
๋ ฅ, ์์ , ์ญ์ ์ ์ฑ๋ฅ์ ํญ์ ํฅ์๋จ
- ์ ์ฐ์ฑ ์ฆ๊ฐ : High Cohesion & Loose Coupling ์์น์ ์ถฉ์คํด์ง
- ์ฌํ์ฉ ๊ฐ๋ฅ์ฑ ์ฆ๊ฐ : ๊ฐ๋
์ด ์ธ๋ถํ ๋จ
- ๋ฐ์ดํฐ ์ค๋ณต ์ต์ํ
์ ๊ทํ๋ก ์ธํ ์ฑ๋ฅ ์ ํ :
- ์กฐํ ์ ์ฒ๋ฆฌ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์๋ ์์
- ๋ฐ์ ๊ทํ๋ก ํด๊ฒฐ ๊ฐ๋ฅํ๋ค
- ์กฐ์ธ์ด ๋ฐ์ํ๋๋ผ๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ์ธ ์ฐ์ฐ์ ์ํํ๋ฉด ์ฑ๋ฅ์ ๋จ์ ์ด ๊ฑฐ์ ์๊ณ , ์ ๊ทํ๋ฅผ ํตํด ํ์ํ ์ธ๋ฑ์ค์ ์๋ฅผ ์ค์ผ ์ ์๋ค
- ์ ๊ทํ๋ฅผ ํตํด ์๋์ ํ
์ด๋ธ์ด ์์ฑ๋๋ค๋ฉด ์ฑ๋ฅ์ ์ ๋ฆฌํ ์ ์๋ค
โ๏ธ ๋ฐ์ ๊ทํ์ ์ฑ๋ฅ
๋ฐ์ดํฐ ์ค๋ณต์ ํ์ฉํ์ฌ ์กฐ์ธ์ ์ค์ด๋ DB ์ฑ๋ฅ ํฅ์ ๋ฐฉ๋ฒ, ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ํฌ์ํ๊ณ ์กฐํ ์ฑ๋ฅ ํฅ์
์ ์ฐจ :
ใ
ค1. ๋ฐ์ ๊ทํ ๋์ ์กฐ์ฌ : ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฒ์ ๋ฐ ํต๊ณ์ฑ ๋ฑ ์กฐ์ฌ
ใ
ค2. ๋ค๋ฅธ ๋ฐฉ๋ฒ ๊ฒํ : ๋ทฐ, ํด๋ฌ์คํฐ๋ง, ์ธ๋ฑ์ค, ์ ํ๋ฆฌ์ผ์ด์
ใ
ค3. ๋ฐ์ ๊ทํ ์ ์ฉ : ์ ๊ทํ ์ํ ํ ๋ฐ์ ๊ทํ ์ํ
๊ธฐ๋ฒ :
โ๏ธ ๋์ฉ๋ ๋ฐ์ดํฐ์ ๋ฐ๋ฅธ ์ฑ๋ฅ
ํ
์ด๋ธ ๋ฐ์ ๊ทํ ์ค ํ
์ด๋ธ ๋ถํ ๊ด๋ จ
- ๋ธ๋ก: ํ
์ด๋ธ์ ๋ฐ์ดํฐ ์ ์ฅ ๋จ์
- ๋๋ ๋ฐ์ดํฐ ๋ฐ์์ผ๋ก ์ธํ ํ์ : ๋ธ๋ก I/O ํ์ ์ฆ๊ฐ -> ๋์คํฌ I/O ๊ฐ๋ฅ์ฑ ์์น(๋์คํฌ I/O ์ ์ฑ๋ฅ ์ ํ)
- ๋ก์ฐ ์ฒด์ด๋ : ํ ๊ธธ์ด๊ฐ ๋๋ฌด ๊ธธ์ด ์ฌ๋ฌ ๋ธ๋ก์ ๊ฑธ์ณ ์ ์ฅ๋๋ ํ์
- ๋ก์ฐ ๋ง์ด๊ทธ๋ ์ด์
: ์์ ๋ ๋ฐ์ดํฐ๊ฐ ํด๋น ๋ธ๋ก์ด ์๋ ๋ค๋ฅธ ๋ธ๋ก์ ๋น ๊ณต๊ฐ์ ์ ์ฅ๋๋ ํ์
- ํ
์ด๋ธ ๋ถํ : ๋ฐ์ ๊ทํ ๊ธฐ๋ฒ
- ์์ง๋ถํ : ์ปฌ๋ผ ๋จ์๋ก ํ
์ด๋ธ์ ๋ถํ ํ์ฌ I/O๋ฅผ ๊ฐ์์ํด, ๋๋ฌด ๋ง์ ์์ ์ปฌ๋ผ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ
- ์ํ๋ถํ : ํ ๋จ์๋ก ํ
์ด๋ธ์ ๋ถํ ํ์ฌ I/O๋ฅผ ๊ฐ์์ํด
- ํํฐ์
๋ : ํ
์ด๋ธ ์ํ๋ถํ ๊ธฐ๋ฒ, ๋
ผ๋ฆฌ์ ์ผ๋ก๋ ํ๋์ ํ
์ด๋ธ์ด์ง๋ง ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฌ๋ฌ ๋ฐ์ดํฐ ํ์ผ์ ๋ถ์ฐ ์ ์ฅ, ๋ฐ์ดํฐ ์กฐํ ๋ฒ์๋ฅผ ์ค์ฌ ์ฑ๋ฅ ํฅ์
- Range Partition : ๋ฐ์ดํฐ ๊ฐ์ ๋ฒ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถํ
- List Partition : ํน์ ํ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ถํ
- Hash Partition : ํด์ ํจ์๋ฅผ ์ ์ฉํ์ฌ ๋ถํ , DBMS๊ฐ ์์์ ๋ถํ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์์น๋ฅผ ์ ์ ์์
- Composite Partition : ์ฌ๋ฌ ํํฐ์
๊ธฐ๋ฒ์ ๋ณตํฉ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ๋ถํ
โป ํํฐ์
์ธ๋ฑ์ค
- Global Index, Local Index : ์ฌ๋ฌ ํํฐ์
์์ ๋จ์ผ ์ธ๋ฑ์ค ์ฌ์ฉ, ํํฐ์
๋ณ๋ก ๊ฐ์ ์ธ๋ฑ์ค ์ฌ์ฉ
- Prefixed Index, Non-Prefixed Index : ํํฐ์
ํค์ ์ธ๋ฑ์คํค ๋์ผ, ํํฐ์
ํค์ ์ธ๋ฑ์คํค ๊ตฌ๋ถ
โ๏ธ DB ๊ตฌ์กฐ์ ์ฑ๋ฅ
-
์ํผํ์
/์๋ธํ์
๋ฐ์ดํฐ ๋ชจ๋ธ ๋ณํ์ ํตํ ์ฑ๋ฅ ํฅ์
-
์ํผํ์
/์๋ธํ์
๋ฐ์ดํฐ ๋ชจ๋ธ : ์์ฑ์ ํ ๋นํ์ฌ ๋ฐฐ์นํ๋ ์ํ ๋ถํ ๋ ํํ์ ๋ชจ๋ธ
(๊ณตํต ์์ฑ์ ์ํผํ์
์ผ๋ก ๋ชจ๋ธ๋งํ๊ณ ์ฐจ์ด๊ฐ ์๋ ์์ฑ์ ์๋ธํ์
์ผ๋ก ๊ตฌ๋ถ๋จ, ๋ณํ์ ํตํ์ฌ ์ ํํ๊ฒ ์
๋ฌด๋ฅผ ํํํ ์ ์๊ณ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง ์ ์ ํ์ ํญ์ ๋ํ ์ ์์)
-
๋ณํ ๊ธฐ์ค : ๋ฐ์ดํฐ์, ํธ๋์ญ์
์ ํ
-
๋ณํ ๊ธฐ์ :
- 1:1 ํ์
: ๊ฐ๋ณ๋ก ์ฒ๋ฆฌํ๋ ํธ๋์ญ์
์ ๋ํด ๊ฐ๋ณ ํ
์ด๋ธ ๊ตฌ์ฑ, ์ํผํ์
๊ณผ ์๋ธํ์
๊ฐ๊ฐ ํ์ํ ์์ฑ๊ณผ ์ ํ์ ์ ํฉํ ๋ฐ์ดํฐ๋ง ๊ฐ์ง๋๋ก ๋ถ๋ฆฌํ์ฌ 1:1 ๊ด๊ณ๋ฅผ ๊ฐ๋๋ก ํจ
- ์ํผ/์๋ธํ์
: ์ํผํ์
๊ณผ ์๋ธํ์
์ ๊ณตํต์ผ๋ก ์ฒ๋ฆฌํ๋ ํธ๋์ญ์
์ ๋ํด ์ํผํ์
๊ณผ ์๋ธํ์
๊ฐ๊ฐ์ ํ
์ด๋ธ ๊ตฌ์ฑ
-
All in One ํ์
: ์ผ๊ด ์ฒ๋ฆฌํ๋ ํธ๋์ญ์
์ ๋ํด ๋จ์ผ ํ
์ด๋ธ ๊ตฌ์ฑ
![](https://velog.velcdn.com/images/gelo_/post/195b454c-4de1-4ee2-9686-db7863d6e70c/image.png)
-
PK/FK ์ปฌ๋ผ ์์ ์กฐ์ ์ ํตํ ์ฑ๋ฅ ํฅ์
๋ฑํธ ์กฐ๊ฑด์ด๋ BETWEEN ์กฐ๊ฑด์ด ๊ฑธ๋ฆฌ๋ ์ปฌ๋ผ์ ์์ผ๋ก ์ด๋(์ฌ๋ฌ ์กฐ๊ฑด์ด ์์ ๊ฒฝ์ฐ ๋ฑํธ ์กฐ๊ฑด์ด ๊ฑธ๋ฆฌ๋ ์ปฌ๋ผ์ ์ ๋๋ก ์ด๋)
-
์ธ๋ฑ์ค ํน์ฑ์ ๊ณ ๋ คํ PK/FK DB ์ฑ๋ฅ ํฅ์
๋ฌผ๋ฆฌ์ ์ธ ํ
์ด๋ธ์ FK ์ ์ฝ์ ๊ฑธ์ด ์ธ๋ฑ์ค๋ฅผ ์์ฑ
โ๏ธ ๋ถ์ฐ DB ๋ฐ์ดํฐ์ ๋ฐ๋ฅธ ์ฑ๋ฅ
-
๋ถ์ฐ DB
๋ถ์ฐ๋ DB๋ฅผ ํ๋์ ๊ฐ์ ์์คํ
์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ DB, ๋ฌผ๋ฆฌ์ ์ฌ์ดํธ๋ ๋ถ์ฐ๋์ด ์์ผ๋ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋์ผํ ์์คํ
, ๊ณผ๊ฑฐ์๋ ์์น ์ค์ฌ์ด์์ผ๋ ํ์ฌ๋ ์
๋ฌด ํ์์ ๋ฐ๋ผ ๋ถ์ฐ ์ค๊ณ
- ์ค๊ณ ๋ฐฉ์
- ์ํฅ์ : ์ง์ญ ์คํค๋ง ์์ฑ ํ ์ ์ญ ์คํค๋ง ์์ฑ
- ํํฅ์ : ์ ์ญ ์คํค๋ง ์์ฑ ํ ์ง์ญ์ฌ์ ์คํค๋ง ์์ฑ
- ์ฅ๋จ์
- ์ ๋ขฐ์ฑ๊ณผ ๊ฐ์ฉ์ฑ ์ฆ๊ฐ, ๋น ๋ฅธ ์๋ต ์๋์ ํต์ ๋น์ฉ ์ฆ๊ฐ, ์ฉ๋ ํ์ฅ ์ฉ์ด
- ๊ด๋ฆฌ ๋ฐ ํต์ ์ด๋ ค์, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ด๋ฆฌ ์ด๋ ค์, S/W ๊ฐ๋ฐ ๋น์ฉ ๋ฐ ์ฒ๋ฆฌ ๋น์ฉ ์ฆ๊ฐ, ๋ถ๊ท์นํ ์๋ต ์๋
- ๋ถ์ฐ DB์ ํฌ๋ช
์ฑ
- ๋ถํ ํฌ๋ช
์ฑ : ํ๋์ ๋
ผ๋ฆฌ์ ๊ด๊ณ๊ฐ ๋ถํ ๋์ด ๊ฐ ๋จํธ์ ์ฌ๋ณธ์ด ์ฌ๋ฌ ์ฌ์ดํธ์ ์ ์ฅ๋จ
- ์์น ํฌ๋ช
์ฑ : ์ฌ์ฉํ๋ ค๋ ๋ฐ์ดํฐ ์ ์ฅ ์ฅ์๊ฐ ๋ช
์๋์ง ์์๋ ๋จ
- ์ง์ญ ์ฌ์ ํฌ๋ช
์ฑ : ์ง์ญ DBMS์ ๋ฌผ๋ฆฌ์ DB์ฌ์ด์ ์ฌ์์ด ๋ณด์ฅ๋จ
- ์ค๋ณต ํฌ๋ช
์ฑ : DB ๊ฐ์ฒด ์ค๋ณต ์ฌ๋ถ๋ฅผ ๋ชฐ๋ผ๋ ๋จ
- ์ฅ์ ํฌ๋ช
์ฑ : ๊ตฌ์ฑ์์(DBMS)์ ์ฅ์ ์ ๋ฌด๊ดํ๊ฒ ํธ๋์ญ์
์ ์์์ฑ์ด ์ ์ง๋จ
- ๋ณํ ํฌ๋ช
์ฑ : ๋ค์์ ํธ๋์ญ์
์ ๋์ ์ํํ์ ๋ ๊ฒฐ๊ณผ์ ์ผ๊ด์ฑ์ด ์ ์ง๋จ
- ๋ถ์ฐ DB ์ ์ฉ ๊ธฐ๋ฒ
- ํ
์ด๋ธ ์์น ๋ถ์ฐ : ์ค๊ณ๋ ํ
์ด๋ธ์ ์์น๋ฅผ ๋ถ์ฐํจ
- ํ
์ด๋ธ ๋ถํ ๋ถ์ฐ : ํ
์ด๋ธ์ ์ชผ๊ฐ์ ๋ถ์ฐํจ (์ํ๋ถํ , ์์ง๋ถํ )
- ํ
์ด๋ธ ๋ณต์ ๋ถ์ฐ : ๋์ผํ ํ
์ด๋ธ์ ๋ค๋ฅธ ์ง์ญ์ด๋ ์๋ฒ์์ ๋์ ์์ฑํจ, ์๊ฒฉ์ง ์กฐ์ธ์ ๋ด๋ถ ์กฐ์ธ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ์ฑ๋ฅ ํฅ์(๋ถ๋ถ๋ณต์ , ๊ด์ญ๋ณต์ )
- ํ
์ด๋ธ ์์ฝ ๋ถ์ฐ : ๋ถ์์์ฝ(์ฌ์ดํธ ๋ณ ์์ฝ์ ๋ณด๋ฅผ ๋ณธ์ฌ์์ ํตํฉํ์ฌ ์ ์ฒด ์์ฝ์ ๋ณด ์ฐ์ถ), ํตํฉ์์ฝ(์ฌ์ดํธ ๋ณ ์ ๋ณด๋ฅผ ๋ณธ์ฌ์์ ํตํฉํ์ฌ ์ ์ฒด ์์ฝ์ ๋ณด ์ฐ์ถ)