๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ SQL
โข
โข
โข
์ ๊ทํ
์ด์ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ถํดํ๋ ๊ณผ์
โข
๋ฐ์ดํฐ ์ค๋ณต ์ต์ํ
โข
๋ฐ์ดํฐ ์ ์ฐ์ฑ ์ต๋ํ
์ ๊ทํ ๊ฐ ์ ์ฐจ์์ ์ํํ๋ ์์
์ธ์ฐ๊ธฐ
1์ ๊ทํ | 2์ ๊ทํ | 3์ ๊ทํ | BCNF | 4์ ๊ทํ | 5์ ๊ทํ |
๋ | ๋ถ | ์ด | ๊ฒฐ | ๋ค | ์กฐ |
์ด์ํ์
๋ฐ์ดํฐ์ ์ค๋ณต์ฑ๊ณผ ์ข
์์ฑ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ํ์
โข
์ข
๋ฅ
์ด์ ํ์ | ์ค๋ช
|
์ฝ์
์ด์
(Insertion Anomaly) | ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด ํ์ํ ์ ๋ณด๊ฐ ๋ถ์กฑํ์ฌ ๋ฐ์ํ๋ ํ์ |
๊ฐฑ์ ์ด์
(Update Anomaly) | ๋ฐ์ดํฐ ์ผ๋ถ๋ฅผ ์
๋ฐ์ดํธํ ๋ ์ผ๊ด์ฑ์ด ์๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ ํ์ |
์ญ์ ์ด์
(Deletion Anomaly) | ํน์ ํ์ ์ญ์ ํ ๋ ์์น ์๋ ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ๋ ํ์ |
์ ๊ทํ ์ ์ฐจ
โข
์ 1์ ๊ทํ
โข
์ 2์ ๊ทํ
โข
์ 3์ ๊ทํ
โข
BCNF (Boyce-Codd Normal Form)
โข
์ 4์ ๊ทํ
โข
์ 5์ ๊ทํ
์ 1์ ๊ทํ
๊ฐ ์ด์ด ์์์ (Atomic)์ธ ๊ฐ์ ๊ฐ์ง๋๋ก ํ
์ด๋ธ์ ๋ถํดํ๋ ๊ณผ์
๊ฐ ์ด์๋ ํ๋์ ๊ฐ๋ง ํฌํจ๋์ด์ผ ํฉ๋๋ค. ๋ง์ฝ ์ฌ๋ฌ ๊ฐ์ ํฌํจํ๊ณ ์๋ค๋ฉด ์ด๋ฅผ ๋ณ๋์ ํ์ผ๋ก ๋ถ๋ฆฌํฉ๋๋ค.
์ 2์ ๊ทํ
๋ถ๋ถ ํจ์ ์ข
์์ด ์๋ ์ํ๋ก ํ
์ด๋ธ์ ๋ถํดํ๋ ๊ณผ์
์ 3์ ๊ทํ
์ดํ ํจ์ ์ข
์์ด ์๋ ์ํ๋ก ํ
์ด๋ธ์ ๋ถํดํ๋ ๊ณผ์
BCNF (Boyce-Codd Normal Form)
๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณด ํค(candidate key)์ธ ์ํ๋ก ํ
์ด๋ธ์ ์ฌ๊ตฌ์ฑํ๋ ๊ณผ์
์ 4์ ๊ทํ
๋ค์น ์ข
์์ฑ์ด ์ ๊ฑฐํ๊ธฐ ์ํด ํ
์ด๋ธ์ ๋ถํดํ๋ ๊ณผ์
์ 5์ ๊ทํ
์กฐ์ธ ์ข
์์ฑ์ด ์ ๊ฑฐํ๊ธฐ ์ํด ํ
์ด๋ธ์ ๋ถํดํ๋ ๊ณผ์
ํจ์์ ์ข ์์ฑ
โข
๋ถ๋ถ ํจ์ ์ข
์์ฑ
โข
์์ ํจ์ ์ข
์์ฑ
โข
์ดํ(์ ์ด) ํจ์ ์ข
์์ฑ
โข
๋ค์น ํจ์ ์ข
์์ฑ
๋ถ๋ถ ํจ์ ์ข ์์ฑ
ํ ์์ฑ์ด ๋ค๋ฅธ ์์ฑ์ ์ผ๋ถ์ ๋ํด๋ง ํจ์์ ์ผ๋ก ์ข
์
: (A,B) C + B D
์์ ํจ์ ์ข ์์ฑ
ํ ์์ฑ์ด ๋ค๋ฅธ ์์ฑ์ ๋ชจ๋ ๋ถ๋ถ์ ๋ํด ํจ์์ ์ผ๋ก ์ข
์
: (A,B) C
์ดํ(์ ์ด) ํจ์ ์ข ์์ฑ
ํ ์์ฑ์ด ๋ค๋ฅธ ์์ฑ์ ํตํด ๊ฐ์ ์ ์ผ๋ก ํจ์์ ์ผ๋ก ์ข
์
: ABC
๋ค์น ํจ์ ์ข ์์ฑ
ํ ์์ฑ์ด 2๊ฐ ์ด์์ ์์ฑ์ ํจ์์ ์ผ๋ก ์ข
์
์ ๊ทํ์ ํ๊ณ(๋ฌธ์ ์ )
์ํฐํฐ๋ฅผ ๋๋ฌด ๋ง์ด ๋ถํดํ๋ฉด, ์กฐํ ์ ์ฆ์ ์กฐ์ธ์ ์ ๋ฐํ๋ค.
์กฐํ ์ฑ๋ฅ ์ ํ ์ ๋ฐ(์๋ ๋๋ ค์ง)
์ ๊ทํ์ ํ๊ณ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ฐ์ ๊ทํ๋ฅผ ํ ์ ์๋ค.
๋ฐ์ ๊ทํ
์ ๊ทํ๋ ์ํฐํฐ๋ฅผ ํฉ์น๊ฑฐ๋ ์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๋ ๊ณผ์
์กฐ์ธ ์ต์ํ ์กฐํ ์ฑ๋ฅ(์๋) ํฅ์
๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ์ฐ์ฑ ์ ํ
๋ฐ์ ๊ทํ๊ฐ ํ์ํ ๊ฒฝ์ฐ
โข
์์ฝ/์ง๊ณ ์ ๋ณด๊ฐ ์๊ตฌ๋๋ ๊ฒฝ์ฐ
โข
ํน์ ๋ฒ์์ ๋ฐ์ดํฐ๋ง ์์ฃผ ์กฐํํ๋ ๊ฒฝ์ฐ
โข
๋ค๋์ ๋ฒ์๋ฅผ ์์ฃผ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ
โข
์ ๊ทํ๋ก ์ธํด ์ํ ์๋๊ฐ ๋๋ ค์ง๋ ๊ฒฝ์ฐ
๋ฐ์ ๊ทํ ๊ธฐ๋ฒ
1.
๊ณ์ฐ๋ ์ปฌ๋ผ ์ถ๊ฐ
2.
ํ
์ด๋ธ ์์ง ๋ถํ
3.
ํ
์ด๋ธ ์ํ ๋ถํ
4.
ํ
์ด๋ธ ๋ณํฉ
๋ฐ์ ๊ทํ ๊ธฐ๋ฒ | ์ค๋ช
|
๊ณ์ฐ๋ ์ปฌ๋ผ ์ถ๊ฐ | โํฉ๊ณ, ํ๊ท ๋ฑ ์์ฃผ ์ฌ์ฉ๋๋ ๊ณ์ฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋งค๋ฒ ์กฐ์ธ ๋ฐ ํจ์ ์ฌ์ฉ์ ํ์ง ์๊ณ ๋ฐฐ์น๋ฅผ ๋๋ ค ๋ฏธ๋ฆฌ ๊ณ์ฐํ ๊ฐ์ ์ปฌ๋ผ์ ์ถ๊ฐํด๋๋ ๊ธฐ๋ฒโ ์กฐํ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ , ๋ณต์กํ ์ฐ์ฐ์ ์ค์ฌ์ค. |
ํ
์ด๋ธ ์์ง ๋ถํ | โ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋ถํ โ. ํ ํ
์ด๋ธ์ ์ปฌ๋ผ์ ๋ ๊ฐ ์ด์์ ํ
์ด๋ธ๋ก ๋๋๋ ๊ธฐ๋ฒ. ์์ฃผ ์ฌ์ฉํ๋ ์ปฌ๋ผ๊ณผ ๊ทธ๋ ์ง ์์ ์ปฌ๋ผ์ ๋ณ๋์ ํ
์ด๋ธ๋ก ๋ถ๋ฆฌํ์ฌ ์กฐํ ์ฑ๋ฅ์ ํฅ์์ํด. |
ํ
์ด๋ธ ์ํ ๋ถํ | โ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ถํ โ. ํ ํ
์ด๋ธ์ ๋ก์ฐ๋ฅผ ๋ ๊ฐ ์ด์์ ํ
์ด๋ธ๋ก ๋๋๋ ๊ธฐ๋ฒ. ์์ฃผ ์ฌ์ฉ๋๋ ๋ก์ฐ์ ๊ทธ๋ ์ง ์์ ๋ก์ฐ๋ฅผ ๋ณ๋์ ํ
์ด๋ธ๋ก ๋ถ๋ฆฌํ์ฌ ์กฐํ ์ฑ๋ฅ์ ํฅ์์ํด. |
ํ
์ด๋ธ ๋ณํฉ | ๋ ๊ฐ ์ด์์ ํ
์ด๋ธ์ ํ๋์ ํ
์ด๋ธ๋ก ํฉ์น๋ ๊ธฐ๋ฒ. ์ฌ๋ฌ ํ
์ด๋ธ ๊ฐ์ ์กฐ์ธ์ ์ค์ฌ์ ์กฐํ ์ฑ๋ฅ์ ํฅ์์ํด. ๋จ, ๋ฐ์ดํฐ ์ค๋ณต์ด ๋ฐ์ํ ์ ์์. |
ํํฐ์ (Partition) ๊ธฐ๋ฒ
๋์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ ์์ ๋
ผ๋ฆฌ์ ๋จ์๋ก ๋ถํ ํ์ฌ ๋ฐ์ดํฐ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ธฐ๋ฒ
ํํฐ์
๊ธฐ๋ฒ | ์ค๋ช
|
Range Partition | ์ฐ์๋ ๋ฒ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ์ฌ ํํฐ์
์ ์์ฑํจ. |
List Partition | ๋ชฉ๋ก์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ์ฌ ํํฐ์
์ ์์ฑํจ. |
Hash Partition | ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ์ฌ ํํฐ์
์ ์์ฑํจ. |
Composite Partition | ๋ ๊ฐ ์ด์์ ํํฐ์
ํค๋ฅผ ์กฐํฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํจ. |
Super Type & Sub Type
๋ถ๋ชจ์ ์์ ๊ฐ์ ๊ด๊ณ๋ก, ์์ ์ํฐํฐ์ ํ์ ์ํฐํฐ๋ฅผ ๋ํ๋ด๋ ๊ฐ๋
ex) ๊ณ ๊ฐ ์ํฐํฐ
โข
Super Type : ๊ณ ๊ฐ ์ํฐํฐ
โฆ
Sub Type : ๊ฐ์ธ ๊ณ ๊ฐ ์ํฐํฐ
โฆ
Sub Type : ๋ฒ์ธ ๊ณ ๊ฐ ์ํฐํฐ
Super Type & Sub Type ๋ณํ ๋ฐฉ๋ฒ
๋ณํ ๋ฐฉ๋ฒ | ์ค๋ช
|
OneToOne Type | - ํ์ ์ ํ๋ค์ด ์์ ์ ํ๊ณผ ์ผ๋์ผ ๊ด๊ณ๋ฅผ ๊ฐ์ง.
- ํ
์ด๋ธ ์ : ๊ฐ๋ณ ํ
์ด๋ธ [ ์ํผ(1), ์๋ธ(1) ]
- ์กฐ์ธ ์ฑ๋ฅ : ๋์จ ์กฐ์ธ ๋ง์ด ๋ฐ์ |
Plus Type | - ํ์ ์ ํ๋ค์ด ์๋ก ์ค๋ณต๋์ง ์๊ณ , ์์ ์ ํ๊ณผ ์ผ๋๋ค ๊ด๊ณ๋ฅผ ๊ฐ์ง.
- ํ
์ด๋ธ ์ : ๊ฐ๋ณ ํ
์ด๋ธ [ ์ํผ(1), ์๋ธ(1) ]
- ์กฐ์ธ ์ฑ๋ฅ : ๋์จ ์กฐ์ธ ๋ง์ด ๋ฐ์ |
Single Type | - ํ์ ์ ํ๋ค์ด ์๋ก ์ค๋ณต๋ ์ ์๊ณ , ์์ ์ ํ๊ณผ ๋ค๋๋ค ๊ด๊ณ๋ฅผ ๊ฐ์ง.
- ํ
์ด๋ธ ์ : ๋จ์ผ ํ
์ด๋ธ [ ์ํผ+์๋ธ(1) ]
- ์กฐ์ธ ์ฑ๋ฅ : ์ข์
* ์
์ถ๋ ฅ ์ฑ๋ฅ ๋์จ |
๊ด๊ณ์ ์กฐ์ธ
๊ด๊ณ(Relationship)
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ์ํฐํฐ๊ฐ์ ์ฐ๊ฒฐ์ ๊ด๊ณ๋ก ์ ์ํ๋ค.
์ํฐํฐ๊ฐ์ ๊ด๊ณ๋ ์๋์ ๊ธฐ์ค์ผ๋ก ๋ณํํ๋ค.
โข
M:N (๋ค๋๋ค)์ ๊ด๊ณ๋ ์ํฐํฐ๋ก ๋ณํํ๋ค.
โข
1:N (์ผ๋๋ค)์ ๊ด๊ณ๋ ์ธ๋ํค๋ก ๋ณํํ๋ค.
โข
1:1 (์ผ๋์ผ)์ ๊ด๊ณ๋ ์ธ๋ํค๋ก ๋ณํํ๋ค.
ex) โํ์์ด ์ํ์ ์ฃผ๋ฌธํ ์ ์๋ค.โ
โ์ฃผ๋ฌธโ ์ด ๊ด๊ณ๊ฐ ๋๊ณ , โ์ฃผ๋ฌธโ ์ํฐํฐ๋ก ์์ฑํ๋ค.
์กฐ์ธ
2๊ฐ ์ด์์ ํ
์ด๋ธ๋ค์ ๊ฒฐํฉํ์ฌ ํ๋์ ๊ฒฐ๊ณผ ์งํฉ์ผ๋ก ๊ฐ์ ธ์ค๋ ์ฐ์ฐ
์ ๊ทํ&๋ฐ์ ๊ทํ์ ์กฐ์ธ
์ ๊ทํ๋ฅผ ํ๋ฉด ํ
์ด๋ธ๋ค์ด ์ฌ๋ฌ ๊ฐ๋ก ์ชผ๊ฐ์ง๊ธฐ ๋๋ฌธ์, ๊ฒฐํจ๋ ์๋ฏธ๋ฅผ ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด์ ์ฌ๋ฌ ํ
์ด๋ธ์ ์กฐ์ธํด์ผํ๊ธฐ ๋๋ฌธ์, ์กฐ์ธ์ ๋ฐ๋ฅธ ์กฐํ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ์ ์ ํ๊ฒ ๋ฐ์ ๊ทํ๋ฅผ ํ์ฌ ํ
์ด๋ธ์ ๋ณํฉํ๊ฒ ๋๋ฉด ์กฐ์ธ์์ด๋ ์กฐํ๊ฐ ๊ฐ๋ฅํ์ฌ ์กฐํ ์ฑ๋ฅ์ ํฅ์ ์ํฌ ์ ์๋ค.
โข
์ ๊ทํ
โฆ
๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ
โฆ
์กฐํ ์ฑ๋ฅ
โข
๋ฐ์ ๊ทํ
โฆ
๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ
โฆ
์กฐํ ์ฑ๋ฅ
โฆ
ํธ๋์ญ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํ๋๋ ์์
์ ๋
ผ๋ฆฌ์ ๋จ์
โข
ํ๋ ์ด์์ SQL ๋ช
๋ น๋ฌธ์ ํฌํจ
โข
ACID ์์ฑ์ ์ค์ํ์ฌ ์คํ๋์ด์ผํจ.
ํธ๋์ญ์ ํน์ง
ํน์ง | ์ค๋ช
|
์์์ฑ (Atomicity) | ํธ๋์ญ์
์ ๋ชจ๋ ์์
์ด ์๋ฃ๋๊ฑฐ๋ ์ ํ ์ํ๋์ง ์์์ผ ํฉ๋๋ค. ์ฆ, ํธ๋์ญ์
๋ด์ ๋ชจ๋ ์์
์ ์์์ ์ผ๋ก ์คํ๋์ด์ผ ํฉ๋๋ค. |
์ผ๊ด์ฑ (Consistency) | ํธ๋์ญ์
์ ์ํ ์ ๊ณผ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ผ๊ด๋ ์ํ๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค. ์ฆ, ํธ๋์ญ์
์ด ์คํ๋๋ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ๊ด์ฑ์ด ์ ์ง๋์ด์ผ ํฉ๋๋ค. |
๊ฒฉ๋ฆฌ์ฑ (Isolation) | ๋์์ ์คํ๋๋ ์ฌ๋ฌ ํธ๋์ญ์
์ ์๋ก ์ํฅ์ ๋ฏธ์น์ง ์๊ณ ๋
๋ฆฝ์ ์ผ๋ก ์คํ๋์ด์ผ ํฉ๋๋ค. ์ฆ, ํ ํธ๋์ญ์
์ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ํธ๋์ญ์
์ ์ํฅ์ ์ฃผ์ง ์์์ผ ํฉ๋๋ค. |
์ง์์ฑ (Durability) | ํธ๋์ญ์
์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ๊ฒฝ์ฐ, ํด๋น ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ์ผ๋ก ์ ์ง๋์ด์ผ ํฉ๋๋ค. ์ฆ, ํธ๋์ญ์
์ด ์ปค๋ฐ๋ ํ์๋ ๊ทธ ๊ฒฐ๊ณผ๊ฐ ์ง์๋์ด์ผ ํฉ๋๋ค. |
์๋ณ๊ด๊ณ vs ๋น์๋ณ๊ด๊ณ
์๋ณ ๊ด๊ณ : ์ค์ ์ผ๋ก ๋ํ๋ธ๋ค.
๋น์๋ณ ๊ด๊ณ : ์ ์ ์ผ๋ก ๋ํ๋ธ๋ค.
์๋ณ์ ๊ด๊ณ
๋ถ๋ชจ ์ํฐํฐ์ ๊ธฐ๋ณธ ํค๊ฐ ์์ ์ํฐํฐ์ ๊ณ ์ ํค(์ฃผ ์๋ณ์)๋ก ์ฌ์ฉ๋๋ ๊ด๊ณ
๋น์๋ณ์ ๊ด๊ณ
๋ถ๋ชจ ์ํฐํฐ์ ๊ธฐ๋ณธ ํค๊ฐ ์์ ์ํฐํฐ์ ๊ณ ์ ํค(์ฃผ ์๋ณ์)๋ก ์ฌ์ฉ๋์ง ์๋ ๊ด๊ณ
๊ฐํ ๊ฐ์ฒด VS ์ฝํ ๊ฐ์ฒด
ํน์ง | ๊ฐํ ๊ฐ์ฒด (Strong Entity) | ์ฝํ ๊ฐ์ฒด (Weak Entity) |
์๋ณ์ | ์์ฒด์ ์ธ ์๋ณ์๊ฐ ์์ | ๋ถ๋ชจ ์ํฐํฐ์ ์์กด์ ์ด๋ฉฐ, ์์ฒด์ ์ธ ์๋ณ์๊ฐ ์์ |
๋
๋ฆฝ์ฑ | ๋
๋ฆฝ์ ์ผ๋ก ์กด์ฌํ ์ ์์ | ๋ถ๋ชจ ์ํฐํฐ์ ๊ด๋ จ์ด ์์ผ๋ฉฐ, ๋ถ๋ชจ ์ํฐํฐ ์์ด ์กด์ฌํ ์ ์์ |
์์ฑ ๊ท์น | ์์ ์ ์๋ณ์๋ฅผ ์์ฑํ ์ ์์ | ๋ถ๋ชจ ์ํฐํฐ์ ์๋ณ์์ ์ฐ๊ฒฐ๋๋ค. ์๋ณ์ ์์ฑ ๊ท์น์ด ํ์ํจ |
์๋ช
์ฃผ๊ธฐ | ๋
๋ฆฝ์ ์ธ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง ์ ์์ | ๋ถ๋ชจ ์ํฐํฐ์ ์ฐ๊ด๋ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง |
์์ | ์๋์ฐจ (์ฐจ๋๋ฒํธ, ๋ชจ๋ธ, ์ ์กฐ์ฌ) | ์ฃผ๋ฌธ ์์ธ (์ฃผ๋ฌธ๋ฒํธ, ์ํ๋ฒํธ, ์๋) |
ํ์ (ํ๋ฒ, ์ด๋ฆ, ์ ๊ณต) | ์ํ ํ์ (์ํID, ์ฌ์ฉ์ID, ํ์ ) | |
์ฃผ๋ฌธ (์ฃผ๋ฌธ๋ฒํธ, ๋ ์ง, ๊ฐ๊ฒฉ) | ๊ฒ์๊ธ ๋๊ธ (๊ฒ์๊ธID, ์ฌ์ฉ์ID, ๋ด์ฉ) |
NULL
๊ฐ์ด ์กด์ฌํ์ง ์์์ ๋ํ๋ด๋ ๊ฒ.
NULL ๊ด๋ จ ์ฌํญ
โข
NULL ๊ณผ์ ์ฐ์ฐ
โข
NULL ์ฒ๋ฆฌ ํจ์
โข
COUNT() ํจ์์ NULL ๊ด๊ณ
NULL ๊ณผ์ ์ฐ์ฐ
NULL + ? = NULL
NULL ๊ณผ ๋ค๋ฅธ ๊ฐ์ ์ด๋ค ์ฐ์ฐ์ ํ์ฌ๋ ๊ฒฐ๊ณผ๋ NULL ์ด๋ค.
์ค์ ๋ก๋ NULL ๊ณผ ์ฐ์ฐ์ด ๋ฐ์ํ์ง ์๋๋ก NULL ์ฒ๋ฆฌ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
NULL ์ฒ๋ฆฌ ํจ์
๊ฐ์ด NULL ์ผ ๋, ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋์ฒดํ๋ ํจ์
DBMS | ํจ์ | ์ค๋ช
|
Oracle | NVL(expr1, expr2) | expr1์ด NULL์ด๋ฉด expr2๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด expr1์ ๋ฐํํฉ๋๋ค. |
NVL2(expr1, expr2, expr3) | expr1์ด NULL์ด ์๋๋ฉด expr2๋ฅผ, ๊ทธ๋ ์ง ์์ผ๋ฉด expr3๋ฅผ ๋ฐํํฉ๋๋ค. | |
COALESCE(expr1, expr2, ...) | NULL์ด ์๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ๋ฐํํฉ๋๋ค. | |
MySQL | IFNULL(expr1, expr2) | expr1์ด NULL์ด๋ฉด expr2๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด expr1์ ๋ฐํํฉ๋๋ค. |
COALESCE(expr1, expr2, ...) | NULL์ด ์๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ๋ฐํํฉ๋๋ค. | |
MS SQL Server | ISNULL(expr1, expr2) | expr1์ด NULL์ด๋ฉด expr2๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด expr1์ ๋ฐํํฉ๋๋ค. |
COALESCE(expr1, expr2, ...) | NULL์ด ์๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ๋ฐํํฉ๋๋ค. |
์ด๋ฌํ ํจ์๋ค์ ์ฌ์ฉํ์ฌ ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์์ NULL ๊ฐ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
COUNT() ํจ์์ NULL ๊ด๊ณ
โข
COUNT() ํจ์
ํ
์ด๋ธ์ ํ์ ์(๊ฐ์)๋ฅผ ๋ฐํํ๋ ํจ์
ํจ์ | ์ค๋ช
|
COUNT(*) | ํ
์ด๋ธ์ ์๋ ๋ชจ๋ ๋ ์ฝ๋์ ์๋ฅผ ๋ฐํํฉ๋๋ค. |
COUNT(column) | ์ง์ ๋ ์ด์ ๊ฐ์ด NULL์ด ์๋ ๋ ์ฝ๋์ ์๋ฅผ ๋ฐํํฉ๋๋ค. |
COUNT(DISTINCT column) | ์ง์ ๋ ์ด์ ์ค๋ณต๋์ง ์๋ ๊ฐ๋ค์ ์๋ฅผ ๋ฐํํฉ๋๋ค. |
์ด๋ฌํ ํจ์๋ค์ ์ฌ์ฉํ์ฌ ํน์ ์ด์ด๋ ๋ ์ฝ๋์ ์๋ฅผ ๊ณ์ฐํ๊ณ , ์ค๋ณต์ ์ ๊ฑฐํ ๊ฐ์ ์ธ๋ ๋ฑ ๋ค์ํ ์ง๊ณ ์์
์ ์ํํ ์ ์์ต๋๋ค.