[DB] ๐Ÿ•ต๏ธ ํ…Œ์ด๋ธ” ์ œ์•ฝ ์กฐ๊ฑด

ํ•ด๋กฑ๊ทธยท2023๋…„ 4์›” 25์ผ
0

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ชฉ๋ก ๋ณด๊ธฐ
7/9

ํ…Œ์ด๋ธ” ์ œ์•ฝ ์กฐ๊ฑด

ํ…Œ์ด๋ธ”์— ์ฃผ์ ์ ˆํ•œ ์ž๋ฃŒ๊ฐ€ ์ž…๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ทœ์น™์„ ์ ์šฉํ•ด ๋†“๋Š” ๊ฒƒ

  1. NOT NULL
    ์ปฌ๋Ÿผ์„ ํ•„์ˆ˜ ํ•„๋“œํ™” ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, NOT NULL ์ œ์•ฝ์กฐ๊ฑด ์„ค์ • ์‹œ ํ•ด๋‹น ์ปฌ๋Ÿผ์—๋Š” ๊ผญ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•จ

  2. UNIQUE
    ๋ฐ์ดํ„ฐ์˜ ์œ ์ผ์„ฑ์„ ๋ณด์žฅ(์ค‘๋ณต X) ํ•˜๊ณ , ์ž๋™์œผ๋กœ ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ

  • UNIQUE๋Š” NULL์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ, Primary Key๋Š” NULL์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ
  • UNIQUE๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์˜ ์—ฌ๋Ÿฌ ์†์„ฑ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Primary Key๋Š” ํ•œ ํ…Œ์ด๋ธ” ๋‹น ํ•˜๋‚˜๋งŒ ์กด์žฌ!
  1. CHECK
    ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ์–ด๋–ค ํŠน์ • ๋ฒ”์œ„๋กœ ์ œํ•œ
ALTER TABLE STUDENT
ADD CONSTRAINT EMP2_CK_COMM CHECK (comm >= 1 AND comm <= 100);
  1. DEFAULT
    ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ์ง€์ •๋œ ๊ฐ’์ด ๊ธฐ๋ณธ์œผ๋กœ ์ž…๋ ฅ
  • default๋ผ๊ณ  ๊ฐ’์„ ๋ช…์‹œํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ๋“ค์–ด๊ฐ
  • ์—ด์ด๋ฆ„์ด ๋ช…์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ์ž๋™ ๊ธฐ๋ณธ๊ฐ’
  • ๊ฐ’์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ ๋ฌด์‹œ๋จ
  1. PRIMARY KEY
    ๊ธฐ๋ณธํ‚ค : UNIQUE + NOT NULL
  • ๊ธฐ๋ณธํ‚ค๋Š” ๊ทธ ๋ฐ์ดํ„ฐ ํ–‰์„ ๋Œ€ํ‘œํ•˜๋Š” ์ปฌ๋Ÿผ์œผ๋กœ์„œ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ์™ธ๋ž˜ํ‚ค๋“ค์ด ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋กœ์„œ์˜ ์ž๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. => ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ
  • ์œ ๋‹ˆํฌ ์ œ์•ฝ์กฐ๊ฑด๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ •์˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑ, ๊ทธ ์ด๋ฆ„์€ ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ์กฐ๊ฑด์˜ ์ด๋ฆ„๊ณผ ๊ฐ™๋‹ค.

๐Ÿ’ก Tip
INDEX
๊ฒ€์ƒ‰ํ‚ค๋กœ์„œ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. (UNIQUE, PRIMARY KEY ์ƒ์„ฑ์‹œ ์ž๋™ ์ƒ์„ฑ)

  1. FOREIGN KEY
    ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์นผ๋Ÿผ or ์ปฌ๋Ÿผ๋“ค์˜ ์ง‘ํ•ฉ
    (์™ธ๋ž˜ํ‚ค๋Š” ๊ธฐ๋ณธํ‚ค๋‚˜ ์œ ๋‹ˆํฌ๊ฐ€ ์•„๋‹ˆ๋ฉด ์ƒ์„ฑ ์ œ์•ฝ!)
  • ์™ธ๋ž˜ํ‚ค๋ฅผ ๊ฐ€์ง€๋Š” ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํ˜• = ์™ธ๋ž˜ํ‚ค๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ธฐ๋ณธํ‚ค์˜ ์ปฌ๋Ÿผ๊ณผ ๋ฐ์ดํ„ฐ ํ˜•(์ด๋ฅผ ์–ด๊ธฐ๋ฉด ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์— ์˜ํ•ด ํ…Œ์ด๋ธ” ์ƒ์„ฑ X)
  • ์™ธ๋ž˜ํ‚ค์— ์˜ํ•ด ์ฐธ์กฐ๋˜๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธํ‚ค : ์‚ญ์ œ ๋ถˆ๊ฐ€!

    + CASCADE
    - ON UPDATE CASCADE : ๊ธฐ๋ณธํ‚ค๊ฐ€ ์ˆ˜์ •๋  ๊ฒฝ์šฐ ์™ธ๋ž˜ํ‚ค๋„ ๊ฐ™์ด ์ˆ˜์ •
    - ON DELETE CASCADE : ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์ •์˜๋œ ์™ธ๋ž˜ํ‚ค์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ทธ ๊ธฐ๋ณธํ‚ค๊ฐ€ ์‚ญ์ œ๋  ๋•Œ ๊ฐ™์ด ์‚ญ์ œ

์ œ์•ฝ์กฐ๊ฑด ํ™•์ธ

์ œ์•ฝ์กฐ๊ฑด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ”์€ USER_CONS_COLUMNS, USER_CONSTRAINTS

  1. USER_CONS_COLUMNS : ์ปฌ๋Ÿผ์— ํ• ๋‹น๋œ ์ œ์•ฝ์กฐ๊ฑด ์กฐํšŒ

  2. USER_CONSTRAINTS : ์œ ์ €๊ฐ€ ์†Œ์œ ํ•œ ๋ชจ๋“  ์ œ์•ฝ์กฐ๊ฑด ์กฐํšŒ


Reference
์ถœ์ฒ˜

profile
์‚ฌ๋ž‘์•„ ์ปดํ“จํ„ฐํ•ด ~

0๊ฐœ์˜ ๋Œ“๊ธ€