๐ก ํต์ฌ ์ธ์ฌ์ดํธ
NULL ๋ฌด๊ฒฐ์ฑ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ค๊ณํ ๋, "ํน์ ์ปฌ๋ผ(์์ฑ)์๋ ์ ๋๋ก ๊ฐ์ด ๋น์ด์์ด์๋ ์ ๋๋ค(NOT NULL)"๋ ๋ฃฐ์ ๊ฐ์ ํ์ฌ ๋ฐ์ดํฐ์ ํ์์ ์ธ ๋น์นธ(๊ตฌ๋ฉ)์ ๋ง๋ ์ ์ฝ ์กฐ๊ฑด์ ๋๋ค.
๊ธฐ๋ณธ ํค(PK)๋ฟ๋ง ์๋๋ผ, ๋น์ฆ๋์ค์ ๊ผญ ํ์ํ ์ผ๋ฐ ์ปฌ๋ผ๋ค(์: ์์ด๋, ๋น๋ฐ๋ฒํธ)์ ํ์ง์ ์ง์ผ๋ด๋ ํต์ฌ ๋ฐฉํจ์ ๋๋ค.
โ . NULL ๋ฌด๊ฒฐ์ฑ์ ๊ฐ๋ ๊ณผ ํ์์ฑ
์์ ๋ฐฐ์ด '๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ'์ ์ค์ง ํ ์ด๋ธ์ ์งฑ์ธ **'๊ธฐ๋ณธ ํค(PK)'**์๋ง ์ ์ฉ๋์ด, PK๊ฐ NULL์ด ๋๋ ๊ฒ์ ๋ง์ต๋๋ค. ํ์ง๋ง ํ์ค ์ธ๊ณ์์๋ PK๊ฐ ์๋๋๋ผ๋ ์ ๋๋ก ๋น์๋๋ฉด ์ ๋๋ ์ค์ํ ์ ๋ณด๋ค์ด ๋๋ ค์์ต๋๋ค.
๋ฌธ์ ์ํฉ:
์ผํ๋ชฐ ํ์๊ฐ์
ํ
์ด๋ธ์์ ๊ธฐ๋ณธ ํค๋ ํ์๋ฒํธ(PK)์
๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ์ฉ์๊ฐ ๋น๋ฐ๋ฒํธ์ ๋ฐฐ์ก์ง ์ฃผ์ ์นธ์ ์ ์ ๊ณ ๋น์นธ(NULL)์ผ๋ก ๋ ์ฑ๋ก ํ์๊ฐ์
(INSERT)์ ์์ฒญํฉ๋๋ค.
๊ธฐ๋ณธ ํค(ํ์๋ฒํธ)๋ ์ฑ์์ ธ ์์ผ๋ '๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ'์ ๋ฌด์ฌํ ํต๊ณผํฉ๋๋ค. ํ์ง๋ง ๋น๋ฐ๋ฒํธ๊ฐ ์๋ ์ ๋ น ํ์์ด ์๊ธฐ๊ณ , ํ๋ฐฐ๋ฅผ ๋ณด๋ผ ์ ์๋ ๋น ๊ป๋ฐ๊ธฐ ๋ฐ์ดํฐ๊ฐ DB๋ฅผ ์ค์ผ์ํต๋๋ค.
์ด๋ฅผ ๋ง๊ธฐ ์ํด ์ผ๋ฐ ์ปฌ๋ผ์ **"์ด ์นธ์ ๋ฌด์กฐ๊ฑด ์ฑ์์ผ ํด!"**๋ผ๊ณ ๋ชป์ ๋ฐ๋ ๊ฒ์ด NULL ๋ฌด๊ฒฐ์ฑ(NOT NULL ์ ์ฝ์กฐ๊ฑด)์ ๋๋ค.
โ ก. ๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ๊ณผ์ ๊ด๊ณ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ต๊ณผ์(์: Date ๊ต์, Codd ๋ฐ์ฌ์ ๋ถ๋ฅ)์ ๋ฐ๋ผ, ์ด NULL ๋ฌด๊ฒฐ์ฑ์ ๋์ ์๋ฏธ์ '๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ(Domain Integrity)'์ ์ผ๋ถ๋ก ํฌํจ์์ผ ์ค๋ช ํ๊ธฐ๋ ํฉ๋๋ค.
- ์ด์ : ๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ์ด "ํด๋น ์นธ์ ๋ค์ด์ฌ ์ ์๋ ํฉ๋ฒ์ ์ธ ๊ฐ๋ค์ ์งํฉ"์ ์๋ฏธํ๋๋ฐ, ํ
์ด๋ธ ์ค๊ณ์๊ฐ "์ด ์ปฌ๋ผ์ ํ์ฉ ๊ฐ๋ฅํ ์งํฉ์๋ NULL์ด๋ผ๋ ๊ณตํํ ์ํ๋ฅผ ํฌํจ์ํค์ง ์๊ฒ ๋ค"๋ผ๊ณ ์ ์ธ(
NOT NULL)ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
โ ข. ์ค๋ฌด์์์ NOT NULL ์ค์ ์ ๋ต
DBA๋ ํ
์ด๋ธ ์คํค๋ง๋ฅผ ์งค ๋(CREATE TABLE), ์์ฑ๋ง๋ค NULL์ ํ์ฉํ ์ง NOT NULL๋ก ๋ง์์ง ์น์ดํ๊ฒ ๊ณ ๋ฏผํด์ผ ํฉ๋๋ค.
- ๋ฌด์กฐ๊ฑด NOT NULL๋ก ๋ฌถ์ด์ผ ํ๋ ๊ฒ๋ค (ํ์ ๋ฐ์ดํฐ)
- ๋น๋ฐ๋ฒํธ, ์ด๋ฆ, ์์ฑ ์ผ์(Created_at), ๊ฒฐ์ ๊ธ์ก ๋ฑ ๋น์ฆ๋์ค ๋ก์ง์ด ๋์๊ฐ๋ ๋ฐ ํ์์ ์ธ ํต์ฌ ๋ผ๋ ๋ฐ์ดํฐ.
- ์ซ์ ์ปฌ๋ผ์ ๊ณ์ฐ ์ NULL์ด ๋ผ์ด๋ค๋ฉด ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ๋ชจ์กฐ๋ฆฌ NULL๋ก ๋ฐ์ด ๋๋ ์ ์ผ์ฑ(3์น ๋
ผ๋ฆฌ)์ ๋ง๊ธฐ ์ํด ๊ธ์ก ์ปฌ๋ผ ๋ฑ์ ๊ธฐ๋ณธ๊ฐ์ 0์ผ๋ก ์ฃผ๊ณ
NOT NULL์ ๊ฒ๋๋ค.
- NULL์ ๊ด๋ํ๊ฒ ํ์ฉํด ์ฃผ๋ ๊ฒ๋ค (์ ํ ๋ฐ์ดํฐ)
- ํ์๊ฐ์ ์ '์ ํ ์ ๋ ฅ ์ฌํญ'์ธ ์ทจ๋ฏธ, ์ง์ฅ๋ช , ์์ธ ์ฃผ์ ๋ฑ.
- ์์ง ๊ฐ์ด ์ ํด์ง์ง ์์ ๋ฐ์ดํฐ (์: ์ฃผ๋ฌธ ํ ์ด๋ธ์ '๋ฐฐ์ก์๋ฃ์๊ฐ'์ ๋ฌผ๊ฑด์ด ๋์ฐฉํ๊ธฐ ์ ๊น์ง๋ ๋ฐ๋์ NULL ์ํ๋ก ์กด์ฌํด์ผ ์ ์์ ๋๋ค.)
๐ข ์น์ ์์ฝ ๋น์ : NULL ๋ฌด๊ฒฐ์ฑ์ ์ธํฐ๋ท ์ฌ์ดํธ ๊ฐ์ ํ๋ฉด์์ ํญ๋ชฉ ์์ ๋ถ์ด์๋ **๋นจ๊ฐ์ ๋ณํ(โ , ํ์ ์ ๋ ฅ ํญ๋ชฉ)**์ ๊ฐ์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋นจ๊ฐ ๋ณํ๊ฐ ์๋ ์นธ(๋น๋ฐ๋ฒํธ)์ ๋น์๋๊ณ 'ํ์ธ'์ ๋๋ฅด๋ฉด(INSERT ์๋), ํผ์ด ๋์ด๊ฐ์ง ์๊ณ "ํ์ ํญ๋ชฉ์ ์ ๋ ฅํด์ฃผ์ธ์"๋ผ๋ฉฐ ํ๊ฒจ๋ด์ด(๋ฌด๊ฒฐ์ฑ ์๋ฌ) ๋น ๊ป๋ฐ๊ธฐ ์๋ฅ๊ฐ ์ฐฝ๊ณ (DB)์ ์์ด๋ ๊ฒ์ ๋ง์์ค๋๋ค.