๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/ORACLE

[ORACLE] 6์ผ์ฐจ : ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ์™€ ์ œ์•ฝ์กฐ๊ฑด

by ๋”ฐ๊ถˆ 2024. 3. 18.

 

 

๋ฐ์ดํ„ฐ ์‚ฌ์ „์ด๋ž€?
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์‹œ์Šคํ…œ ๋ ˆ์ด๋ธ”์ด๋‹ค.
์˜ค๋ผํด์€ ๋ฐ์ดํ„ฐ ์‚ฌ์ „์„ ์ง€์†์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ,๊ฐ์‚ฌ,์‚ฌ์šฉ์ž ๊ถŒํ•œ,๋ฐ์ดํ„ฐ ๋“ฑ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•œ๋‹ค.
์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ ์‚ฌ์ „์˜ ๋‚ด์šฉ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค.
๋ฐ์ดํ„ฐ ์‚ฌ์ „์„ ์กฐํšŒํ•ด ๋ณด๋ฉด ์‹œ์Šคํ…œ์ด ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ํ…Œ์ด๋ธ”์ด๊ธฐ ๋•Œ๋ฌธ์— ์•”ํ˜ธ ๊ฐ™์€ ๊ธฐํ˜ธ๋งŒ ๋ณด์—ฌ์งˆ ๋ฟ ๋‚ด์šฉ์„ ์•Œ์ˆ˜ ์—†๋‹ค. 

 

 

์ œ์•ฝ์กฐ๊ฑด

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ’์„ ์ œํ•œํ•˜๋Š” ๊ทœ์น™์ธ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ •์˜ํ•œ๋‹ค. 

๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ทœ์น™๋“ค์„ ๋ฌต์‹œ์  ๋˜๋Š” ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ

๋ฌด๊ฒฐ์„ฑ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ(์œ ํšจ์„ฑ)์œ ์ง€

์ œ์•ฝ์กฐ๊ฑด : ๋ฐ”๋žŒ์งํ•˜์ง€ ใ…‡๋‚ณ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ ํ•˜๋Š” ๊ฒƒ 

 

 

๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด

  • NOT NULL constraint : ์ปฌ๋Ÿผ์— null ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • PRIMARY KEY constraint :๊ธฐ๋ณธํ‚ค ์ œ์•ฝ ์กฐ๊ฑด์€ ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ ๋˜๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ปฌ๋Ÿผ์„ ์กฐํ•ฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ–‰์ด ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. ๊ธฐ๋ณธํ‚ค๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ํ•˜๋‚˜๋งŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, null๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • UNIQUE constraint : ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ ๋˜๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ปฌ๋Ÿผ์„ ์กฐํ•ฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ–‰์ด ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. UNIQUE ์ œ์•ฝ ์กฐ๊ฑด์€ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ๋‘ ๊ฐœ ์ด์ƒ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ, null ๊ฐ’์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • FOREIGN KEY constraint : ์™ธ๋ž˜ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด์€ ํ•œ ํ…Œ์ด๋ธ”์˜ ๊ฐ’์ด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ฐ’๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค.
  • CHECK constraint : ์ง€์ •๋œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 

 

์ œ์•ฝ ์กฐ๊ฑด ์„ค์ • 

  1. ์ปฌ๋Ÿผ ๋ ˆ๋ฒจ ๋ฐฉ์‹ : ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์ปฌ๋Ÿผ๋ช…๊ณผ ์ž๋ฃŒํ˜• ๋’ค์— ์ œ์•ฝ์กฐ๊ฑด์„ ๋ช…์‹œํ•œ๋‹ค.
  2. ํ…Œ์ด๋ธ” ๋ ˆ๋ฒจ ๋ฐฉ์‹ : ์ปฌ๋Ÿผ์„ ๋ชจ๋‘ ์ •์˜ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์— ์ •์˜๋œ ์ปฌ๋Ÿผ๋“ค์˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ํ•œ๋ฒˆ์— ์ง€์ •ํ•œ๋‹ค. 

์ œ์•ฝ ์กฐ๊ฑด์€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ALTER TABLE๋ฅผ ์ด์šฉํ•˜์—ฌ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด ์ด๋ฆ„์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด ๋ช…๋ช… ๊ทœ์น™์œผ๋กœ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋ฆ„์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ผํด์€ SYS_Cnnnnํ˜•์‹์œผ๋กœ ์ œ์•ฝ ์กฐ๊ฑด ์ด๋ฆ„์„ ๋ถ€์—ฌํ•œ๋‹ค. ๋ชจ๋“  ์ œ์•ฝ ์กฐ๊ฑด์€ ๋ฐ์ดํ„ฐ ์‚ฌ์ „์— ์ €์žฅ๋œ๋‹ค. 

 

 

์ œ์•ฝ ์กฐ๊ฑด ์„ค์ • ๋ฐ ์ œ๊ฑฐ 

1.์ปฌ๋Ÿผ ๋ ˆ๋ฒจ ๋ฐฉ์‹์˜ ์ œ์•ฝ ์กฐ๊ฑด ์„ค์ • 

ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์ปฌ๋Ÿผ๋ช…๊ณผ ์ž๋ฃŒํ˜• ๋’ค์— ์ œ์•ฝ์กฐ๊ฑด์„ ๋ช…์‹œํ•œ๋‹ค. 

 

 

2.ํ…Œ์ด๋ธ” ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์ œ์•ฝ ์กฐ๊ฑด ์„ค์ • 

์ปฌ๋Ÿผ์„ ๋ชจ๋‘ ์ •์˜ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์— ์ •์˜๋œ ์ปฌ๋Ÿผ๋“ค์˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ํ•œ ๋ฒˆ์— ์ง€์ •ํ•œ๋‹ค. 

 

3. ์ œ์•ฝ ์กฐ๊ฑด ์ถ”๊ฐ€

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ํ›„ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์žˆ์„๋•Œ๋Š” ALTER ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ์ถ”๊ฐ€ํ•œ๋‹ค. (NOT NULL์ œ์™ธ)

 

4.์ œ์•ฝ ์กฐ๊ฑด ์ œ๊ฑฐ 

์ œ์•ฝ ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•  ํ•„์š”๊ฐ€ ์žˆ์„๋•Œ๋Š” ALTER ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ์ œ๊ฑฐํ•œ๋‹ค.

 

5. ์ œ์•ฝ ์กฐ๊ฑด ์ด๋ฆ„ ๋ณ€๊ฒฝ

 

์ œ์•ฝ ์กฐ๊ฑด์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์žˆ์„๋•Œ๋Š” ALTER ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€๊ฒฝํ•œ๋‹ค.  

 

๊ธฐ๋ณธ ํ‚ค(PRIMARY KEY)

1. ์ปฌ๋Ÿผ ๋ ˆ๋ฒจ ๋ฐฉ์‹์˜ PRIMARY KEY ์„ค์ •

 

2. ํ…Œ์ด๋ธ” ๋ ˆ๋ฒจ ๋ฐฉ์‹์˜ PRIMARY KEY ์„ค์ •

 

3. ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ”์— ๊ธฐ๋ณธํ‚ค ์„ค์ •

 

4. ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ ์กฐ๊ฑด ์‚ญ์ œ

 

 

UNIQUE ์ œ์•ฝ์กฐ๊ฑด

๋ฆด๋ ˆ์ด์…˜ ์ €์žฅ๋˜๋Š” ํŠœํ”Œ์˜ ์œ ์ผ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ œ์•ฝ์กฐ๊ฑด์ด๋‹ค. ์ปฌ๋Ÿผ์ด ์ค‘๋ณต์ ์ธ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. ์ปฌ๋Ÿผ์ด null์„ ํ—ˆ์šฉํ•œ ๊ฒฝ์šฐ์—๋Š” null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 

 

1. ์ปฌ๋Ÿผ ๋ ˆ๋ฒจ ๋ฐฉ์‹์˜ UNIQUE ์ œ์•ฝ ์„ค์ •

 

2. ํ…Œ์ด๋ธ” ๋ ˆ๋ฒจ ๋ฐฉ์‹์˜ UNIQUE ์ œ์•ฝ ์„ค์ •

 

3. ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ”์— UNIQUE ์ œ์•ฝ ์กฐ๊ฑด ์„ค์ • 

 

4. UNIQUE  ์ œ์•ฝ ์กฐ๊ฑด ์‚ญ์ œ 

 

 

NOT NULL 

 

1. ํ…Œ์ด๋ธ” ์ƒ์„ฑ์‹œ NOT NULL์ œ์•ฝ ์กฐ๊ฑด ์„ค์ • 

2. ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ”์— NOT NULL ์ œ์•ฝ ์กฐ๊ฑด ์„ค์ • 

3. NOT NULL ์ œ์•ฝ ์กฐ๊ฑด ์‚ญ์ œ

 

 

DEFAULT

1. ํ…Œ์ด๋ธ” ์ƒ์„ฑ์‹œ DEFAULT ์„ค์ •

 

2. DEFAULT  ์ œ๊ฑฐ

 

3. DEFAULT ํ™•์ธ