๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‡ฉ๐Ÿ‡ฆ๐Ÿ‡น๐Ÿ‡ฆ๐Ÿ‡ง๐Ÿ‡ฆ๐Ÿ‡ธ๐Ÿ‡ช

SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB) ํ•จ์ˆ˜์  ์ข…์†

 

ํ•จ์ˆ˜์  ์ข…์†

→ ๋…ผ๋ฆฌ์  ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋ฌธ์ œ๋ฅผ ํ…Œ์ด๋ธ”์„ ๋ถ„ํ•ดํ•จ์œผ๋กœ์จ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ

ex

name์€ stu_id์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†

resident_id๋Š” stu_id์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†

stu_id๋Š” resident_id์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†

dept_name์€ stu_id์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†

dept_name์€ resident_id์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†

office๋Š” dept_name์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†


โœ” ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์˜ ํ•œ ์ข…๋ฅ˜

โœ” ํ…Œ์ด๋ธ” ๋‚ด ํ•„๋“œ ๊ฐ’๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„์„ฑ์„ ํ‘œํ˜„

โœ” ๋ฐ์ดํ„ฐ ์ค‘๋ณต์˜ ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ ํŒŒ์•…ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

โœ” ํ…Œ์ด๋ธ” R์—์„œ ํ•„๋“œ X์˜ ๊ฐ’์ด ๋™์ผํ•œ ์ž„์˜์˜ ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•ด ํ•„๋“œ Y์˜ ๊ฐ’๋„ ๋™์ผํ•˜๋‹ค๋ฉด "Y๋Š” X์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†๋œ๋‹ค" ๋ผ๊ณ  ํ•˜๋ฉฐ, XY ๋ผ๊ณ  ํ‘œํ˜„

 

ํ•จ์ˆ˜์  ์ข…์†์˜ ํŠน์„ฑ

 

1. ํฌํ•จ ๊ทœ์น™

- ํ…Œ์ด๋ธ” R์˜ ํ•„๋“œ ์ง‘ํ•ฉ X, Y์— ๋Œ€ํ•ด X ⊃ Y์ด๋ฉด X → Y๊ฐ€ ํ•ญ์ƒ ์„ฑ๋ฆฝ

 

2. ๋ถ„ํ•ด ๊ทœ์น™

- ํ…Œ์ด๋ธ” R์˜ ํ•„๋“œ ์ง‘ํ•ฉ X, Y, Z์— ๋Œ€ํ•ด X → (Y, Z)์ด๋ฉด X → Y์™€ X → Z๊ฐ€ ํ•ญ์ƒ ์„ฑ๋ฆฝ

- ๋ฐ˜๋Œ€๋Š” ์„ฑ๋ฆฝํ•˜์ง€ ์•Š์Œ (A, B) → C๊ฐ€ ์„ฑ๋ฆฝํ•œ๋‹ค๊ณ  A → C ๋˜๋Š” B → C๊ฐ€ ๋งŒ์กฑ๋˜์ง€๋Š” ์•Š์Œ

 

3. ํ•ฉ์„ฑ ๊ทœ์น™

- ํ…Œ์ด๋ธ” R์˜ ํ•„๋“œ ์ง‘ํ•ฉ X, Y, Z์— ๋Œ€ํ•ด X → Y, X → Z๊ฐ€ ์„ฑ๋ฆฝํ•˜๋ฉด X → (Y, Z)๋„ ์„ฑ๋ฆฝ

 

4. ์ดํ–‰ ๊ทœ์น™

- ํ…Œ์ด๋ธ” R์˜ ํ•„๋“œ ์ง‘ํ•ฉ X, Y, Z์— ๋Œ€ํ•ด X → Y, Y → Z๊ฐ€ ์„ฑ๋ฆฝํ•˜๋ฉด X → Z๋„ ์„ฑ๋ฆฝ

 

ํ‚ค์™€ ํ•จ์ˆ˜์  ์ข…์†์˜ ๊ด€๊ณ„

โœ” ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ•„๋“œ๋Š” ํ‚ค์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†๋œ๋‹ค

โœ” ํ…Œ์ด๋ธ”์˜ ํ•„๋“œ X๊ฐ€ ๋‚˜๋จธ์ง€ ํ•„๋“œ๋“ค์„ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด ํ•„๋“œ X๋Š” ์ˆ˜ํผํ‚ค์ด๋‹ค

 

ํ•จ์ˆ˜์  ์ข…์†์€ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์˜ ์ผ์ข…

- ์‹ค์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ์— ์กด์žฌํ•˜๋Š” ์ œ์•ฝ ์กฐ๊ฑด

- ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ํ•จ์ˆ˜์  ์ข…์†์ด ๊ณ„์† ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค

 

RDBMS์—์„œ์˜ ํ•จ์ˆ˜์  ์ข…์† ์œ ์ง€ ๋ฐฉ๋ฒ•

– ๊ธฐ๋ณธ ํ‚ค์˜ ๊ฒฝ์šฐ ํ•จ์ˆ˜์  ์ข…์†์ด ๊ณ„์† ์œ ์ง€๋  ์ˆ˜ ์žˆ์Œ (PK ์ œ์•ฝ)

โ–ช ๊ฒฐ์ •์ž๊ฐ€ ๊ธฐ๋ณธ ํ‚ค์ธ ํ•จ์ˆ˜์  ์ข…์†๋“ค์€ ์ž๋™์ ์œผ๋กœ ๋งŒ์กฑ๋จ

 

– ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์•„๋‹Œ ํ•„๋“œ์— ๋Œ€ํ•ด์„œ๋Š” ํ•จ์ˆ˜์  ์ข…์† ์œ ์ง€๊ฐ€ ์–ด๋ ค์›€

โœ“ ํŠธ๋ฆฌ๊ฑฐ(trigger)๋‚˜ ์ฃผ์žฅ(assertion)์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋‚˜ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐœ์ƒ

 

๋ฐ์ดํ„ฐ ์ค‘๋ณต

 

โ—ฝ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ์„ค๊ณ„ ๊ฒฐ๊ณผ์—์„œ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ์ค‘๋ณต ํ˜„์ƒ ๋ฐœ์ƒ ๊ฐ€๋Šฅ

โ—ฝ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต ์ €์žฅ๋˜๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์— ์˜ํ•ด ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค (์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ • ์ด์ƒ)

 

์‚ฝ์ž… ์ด์ƒ

- ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์›์น˜ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…

 

์‚ญ์ œ ์ด์ƒ

- ์‚ญ์ œ๋˜์ง€ ๋ง์•„์•ผ ํ•  ์ •๋ณด๊นŒ์ง€ ํ•จ๊ป˜ ์‚ญ์ œ๋˜๋Š” ํ˜„์ƒ

 

์ˆ˜์ • ์ด์ƒ

- ์ค‘๋ณต๋œ ์ •๋ณด์˜ ์ผ๋ถ€๋งŒ ์ˆ˜์ •ํ•˜์—ฌ ์ •๋ณด์˜ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ