0627 ~ 0703


# 0627 ~ 0703

# 0627 - ๊ฐ์ฒด์ง€ํ–ฅ ์ƒํ™œ ์ฒด์กฐ ์›์น™ 9๊ฐ€์ง€

# 1. ํ•œ ๋ฉ”์„œ๋“œ์— ์˜ค์ง ํ•œ ๋‹จ๊ณ„์˜ ๋“ค์—ฌ์“ฐ๊ธฐ๋งŒ ํ•œ๋‹ค.

ํ•œ ๋ฉ”์„œ๋“œ์— ๋“ค์—ฌ์“ฐ๊ธฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•œ๋‹ค๋ฉด, ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ผ์„ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋ด๋„ ๋ฌด๊ด€ํ•˜๋‹ค.
๋ฉ”์„œ๋“œ๋Š” ๋งก์€ ์ผ์ด ์ ์„์ˆ˜๋ก ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’๊ณ  ๋””๋ฒ„๊น…๋„ ์šฉ์ดํ•˜๋‹ค.

# 2. else ํ‚ค์›Œ๋“œ๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

์กฐ๊ฑด๋ฌธ์€ ๋ณต์ œ์˜ ์›์ธ์ด ๋˜๊ธฐ๋„ ํ•˜๋ฉฐ ๊ฐ€๋…์„ฑ ๋˜ํ•œ ์ข‹์ง€ ์•Š๋‹ค.
๋””์ž์ธ ํŒจํ„ด์˜ Strategy ํŒจํ„ด - ์ƒํƒœ ์ธ๋ผ์ธ(status inline)์˜ ๋ถ„๊ธฐ๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•œ ๋‹คํ˜•์„ฑ(polymorphism) ์˜ˆ์ œ๊ฐ€ ์žˆ๋‹ค.
์ƒํƒœ์— ๋Œ€ํ•œ ๋ถ„๊ธฐ๊ฐ€ ๋ช‡ ๊ตฐ๋ฐ ๊ฑธ์ณ ์ค‘๋ณต๋ผ ์žˆ์„ ๋•Œ Strategy ํŒจํ„ด์€ ํŠนํžˆ ์œ ์šฉ
๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ์—” guard clause(๋ณดํ˜ธ ๊ตฌ๋ฌธ) ์‚ฌ์šฉ : if์— return์„ ์“ธ ๊ฒƒ(early return) - ๋‹จ, ๋งŽ์ด ์“ฐ๋ฉด ๊ฐ„๊ฒฐํ•จ์„ ํ•ด์น  ์ˆ˜ ์žˆ๋‹ค.

# 3. ๋ชจ๋“  ์›์‹œ๊ฐ’๊ณผ ๋ฌธ์ž์—ด์„ ํฌ์žฅ(wrap)ํ•œ๋‹ค.

์›์‹œํ˜• ๋ณ€์ˆ˜๋กœ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์˜๋ฏธ์ ์œผ๋กœ ๋งž๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์„ ์•ˆ๋‚ดํ•  ์ˆ˜ ์—†๋‹ค. (์˜ˆ - ๋…„๋„์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ)
ํฌ์žฅํ•œ ๊ฐ์ฒด๋กœ๋ผ๋ฉด ์•„์ฃผ ์‚ฌ์†Œํ•˜๋”๋ผ๋„ ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ•ด๋‹น ๊ฐ’์ด ์–ด๋–ค ๊ฐ’์ด๋ฉฐ ์™œ ์“ฐ๋Š”์ง€์— ๋Œ€ํ•ด ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋˜ํ•œ ์‹œ๊ฐ„์ด๋‚˜ ๋ˆ์ฒ˜๋Ÿผ ์ž‘์€ ๋‹จ์œ„๋ฅผ ํฌ์žฅํ•œ ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ์—”, ํ–‰์œ„(๋ฉ”์„œ๋“œ)๋ฅผ ๋†“์„ ๊ณณ์„ ๋งˆ๋ จํ•ด์ค€๋‹ค.

# 4. ํ•œ ์ค„์— ์ ์„ ํ•˜๋‚˜๋งŒ ์ฐ๋Š”๋‹ค.

(์ŠคํŠธ๋ฆผ ๋“ฑ ์ฒด์ด๋‹ํ•˜๋Š” ์ผ๋ถ€๋ฅผ ์ œ์™ธ)
์–ด๋Š ์ฝ”๋“œ ํ•œ ๊ณณ์—์„œ ์ ์ด ๋‘˜ ์ด์ƒ ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋‹ค์‹œ ๋ฆฌํŒฉํ† ๋ง ํ•ด์•ผ ํ•œ๋‹ค.

  • ์–ด์ฉŒ๋ฉด ๋‹ค๋ฅธ ๋‘ ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ๋™์‹œ ์กฐ์ž‘ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

๋””๋ฏธํ„ฐ(Demeter)์˜ ๋ฒ•์น™ : "์นœ๊ตฌํ•˜๊ณ ๋งŒ ๋Œ€ํ™”ํ•˜๋ผ"
์ž์‹  ์†Œ์œ ์˜ ๊ฐ์ฒด, ์ž์‹ ์ด ์ƒ์„ฑํ•œ ๊ฐ์ฒด, ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ตฐ๊ฐ€ ์ค€(ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ) ๊ฐ์ฒด์—๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ๊ฒƒ

  • ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ๊ฐ์ฒด์— ๋„ˆ๋ฌด ๊นŠ์ˆ™์ด ๊ด€์—ฌํ•˜๊ฒŒ ๋œ๋‹ค : ์บก์Šํ™”๋ฅผ ์–ด๊ธฐ๋Š” ๊ฒƒ

๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ๊ฐ์ฒด๋Š” ์ž์‹ ์˜ ์†์„ ์˜คํ”ˆํ•˜๊ธฐ๋ณด๋‹ค๋Š”, ์ž‘์—…์„ ํ•ด์ฃผ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

# 5. ์ค„์—ฌ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

๊ณผ๋„ํ•œ ์ถ•์•ฝ์€ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ์ €ํ•ดํ•œ๋‹ค. ๋ฌด์กฐ๊ฑด ์งง๋‹ค๊ณ  ์ข‹์€ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์ด ๊ธด ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š”, ์ฑ…์ž„์„ ๋„ˆ๋ฌด ๋งŽ์ด ๊ฐ–๊ณ  ์žˆ๊ฑฐ๋‚˜, ์ ์ ˆํ•œ ํด๋ž˜์Šค์˜ ์•„๋ž˜์— ์œ„์น˜ํ•˜์ง€ ์•Š์•„์„œ ์ผ ์ˆ˜ ์žˆ๋‹ค.

# 6. entity๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•œ๋‹ค.

50์ค„ ์ด์ƒ ๋˜๋Š” ํด๋ž˜์Šค ๋˜๋Š” 10๊ฐœ ํŒŒ์ผ ์ด์ƒ์˜ ํŒจํ‚ค์ง€๋Š” ์—†์–ด์•ผ ํ•œ๋‹ค.
[ ํด๋ž˜์Šค ]

  • 50์ค„ ์ด์ƒ์ธ ๊ฒฝ์šฐ ๋ณดํ†ต ํด๋ž˜์Šค๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • 50์ค„ ์ •๋„๋ฉด ์Šคํฌ๋กค์„ ๋‚ด๋ฆฌ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

[ ํŒจํ‚ค์ง€ ]

  • ํ•˜๋‚˜์˜ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ๊ด€๋œ ํด๋ž˜์Šค๋“ค์˜ ๋ชจ์ž„.
  • ์ž‘๊ฒŒ ์œ ์ง€ํ•˜๋ฉด ํŒจํ‚ค์ง€๊ฐ€ ์ง„์ •ํ•œ ์ •์ฒด์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

# 7. 2๊ฐœ ์ด์ƒ์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ํด๋ž˜์Šค๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ํด๋ž˜์Šค๋Š” ์‘์ง‘๋„๊ฐ€ ๋–จ์–ด์ง„๋‹ค. ๋งŽ์€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ํด๋ž˜์Šค๋กœ ์‘์ง‘๋ ฅ์žˆ๋Š” ๋‹จ์ผ ์ž‘์—…์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค.
์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๋ถ„ํ•ด๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ด€๋ จ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๊ณตํ†ต์„ฑ์„ ์ดํ•ดํ•˜๊ฒŒ ํ•˜์—ฌ ์ž๋ฃŒ๊ตฌ์กฐํ˜•์œผ๋กœ ๋ฌถ์–ด ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์—์„œ, ํ˜‘๋ ฅ ๊ฐ์ฒด(์ผ๊ธ‰ ์ปฌ๋ ‰์…˜/Wrapper ๊ฐ์ฒด)์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋ถ„ํ•ดํ•˜๋ฉด ๋” ํšจ์œจ์ ์ธ ๊ฐ์ฒด ๋ชจ๋ธ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ณต์žกํ•˜๊ณ  ๋ฉ์น˜ ํฐ ๊ฐ์ฒด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€๋งŒ, ๋ถ„ํ•ดํ•˜๋ฉด ๊ฐ„๋‹จํ•ด์ง„๋‹ค.
๋ถ„ํ•ดํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต๊ฑฐ๋‚˜ ๋ง‰๋ง‰ํ•˜๋‹ค๋ฉด, ๊ฐ์ฒด๋ฅผ ์ƒ๊ด€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๋ฐ˜(half)์”ฉ ๋‚˜๋ˆ„๊ฑฐ๋‚˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๋‘˜ ๊ณจ๋ผ์„œ ๊ทธ๋กœ๋ถ€ํ„ฐ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋“ฑ์„ ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.

# 8. ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์„ ์“ด๋‹ค.

์ฝœ๋ ‰์…˜(Collection)์„ ๊ฐ€์ง„ ํด๋ž˜์Šค๋Š” ์ฝœ๋ ‰์…˜ ์™ธ์—๋Š” ๋‹ค๋ฅธ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๋ฉด ์•ˆ๋œ๋‹ค๋Š” ์›์น™์ด๋‹ค. ์–ด๋–ค ๋ฐ์ดํ„ฐ ์„ธํŠธ(Set)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ ์กฐ์ž‘์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ทธ ๋ฐ์ดํ„ฐ์—๋งŒ ์ง‘์ค‘๋œ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

# 9. getter/setter/property๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

์ด ๊ทœ์น™์€ "๋ง์€ ํ•˜๋˜, ๋ฌป์ง€๋Š” ๋ง๋ผ.(Tell, don't ask)"๋กœ ๋Œ€๋ณ€๋œ๋‹ค. ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ ‘๊ทผ์ž(accessor)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ์ง€๋งŒ, ๊ฐ์ฒด ๋ฐ”๊นฅ์—์„œ ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์‚ฌ์šฉํ•ด ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ์€ ์•ˆ๋œ๋‹ค. ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ์— ๋Œ€ํ•œ ๊ฒฐ์ •์€ ์–ด๋–ค ๊ฒƒ์ด๋“  ๊ทธ ๊ฐ์ฒด ์•ˆ์—์„œ๋งŒ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค.


# 0701 - ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”(DRIVING TABLE)

# ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”์ด๋ž€?

JOIN์‹œ ๋จผ์ € ์•ก์„ธ์Šค ๋ผ์„œ ACCESS PATH๋ฅผ ์ฃผ๋„ํ•˜๋Š” ํ…Œ์ด๋ธ”์„ ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ฆ‰, ์กฐ์ธ์‹œ ๋จผ์ € ์•ก์„ธ์Šค๋˜๋Š” ์ชฝ์€ ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”(DRIVING TABLE, OUTER TABLE)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ๋‚˜์ค‘์— ์•ก์„ธ์Šค ๋˜๋Š” ํ…Œ์ด๋ธ”์„ ๋“œ๋ฆฌ๋ธ ํ…Œ์ด๋ธ”(DRIVEN TABLE, INNER TABLE)์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ธ๋ฑ์Šค์˜ ์กด์žฌ ๋ฐ ์šฐ์„ ์ˆœ์œ„ ํ˜น์€ FROM์ ˆ์—์„œ์˜ TABLE ์ง€์ • ์ˆœ์„œ์— ์˜ํ–ฅ์„ ๋ฐ›์œผ๋ฉฐ ์–ด๋Š ํ…Œ์ด๋ธ”์ด ๋จผ์ € ์—‘์„ธ์Šค๋˜๋Š๋ƒ์— ๋”ฐ๋ผ ์†๋„์˜ ์ฐจ์ด๊ฐ€ ํฌ๊ฒŒ ๋‚  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ, ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”์€ ๋งค์šฐ ์ฆ์š”ํ•˜๋‹ค

์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” 5000๋งŒ ๊ฑด์ธ Aํ…Œ์ด๋ธ”๊ณผ
์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” 1000๊ฑด์ธ Bํ…Œ์ด๋ธ”๊ณผ
์กฐ์ธ ์‹œ ๋“œ๋ผ์ด๋น™ ์ˆœ์„œ์— ๋”ฐ๋ผ ์†๋„์˜ ํ™•์—ฐํ•œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.
ย 
5000๋งŒ ๊ฑด์„ ๋จผ์ € ๋“œ๋ผ์ด๋น™ํ•˜๋ฉด
5000๋งŒ ๋ฒˆ์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ Bํ…Œ์ด๋ธ” ํƒ์ƒ‰ํ•˜๋ฉฐ,
ย 
1000๊ฑด์ธ B๊ฐ€ ๋จผ์ € ๋“œ๋ผ์ด๋น™๋˜๋ฉด
์ตœ๋Œ€ 1000๋ฒˆ Aํ…Œ์ด๋ธ” ํƒ์ƒ‰์ด ๋ฐ˜๋ณต์ด ๋œ๋‹ค.

์ฆ‰, ์ž‘์—… ๋Œ€์ƒ์ด ๋˜๋Š” ํ–‰(rows)์˜ ์ˆ˜๊ฐ€ ์ ์€ ํ…Œ์ด๋ธ”๋ถ€ํ„ฐ ์•ก์„ธ์Šค ๋˜์–ด์•ผ ์ „์ฒด ํƒ์ƒ‰์ด ์ค„์–ด๋“ ๋‹ค.

# ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ” ๊ฒฐ์ •๊ทœ์น™

  1. ๊ทœ์น™ ๊ธฐ๋ฐ˜ ์˜ตํ‹ฐ๋งˆ์ด์ €(Rule-Based Optimizer, RBO)์—์„œ๋Š” ์—ฐ์‚ฐ์ž, ์ธ๋ฑ์Šค์˜ ์œ ๋ฌด, ์กฐ๊ฑด์ ˆ์˜ ํ˜•ํƒœ ๋“ฑ ์ •ํ•ด์ง„ ๊ทœ์น™์˜ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์‹คํ–‰๊ณ„ํš์„ ์ƒ์„ฑํ•œ๋‹ค.
  • ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•œ ์•ก์„ธ์Šค ๋ฐฉ์‹์ด ์ „์ฒด ํ…Œ์ด๋ธ” ์•ก์„ธ์Šค ๋ฐฉ์‹๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ
  • ์กฐ์ธ ์นผ๋Ÿผ์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๊ฐ€ ์–‘์ชฝ ํ…Œ์ด๋ธ”์— ๋ชจ๋‘ ์กด์žฌํ•  ๋•Œ, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ํ…Œ์ด๋ธ”์„ ์„ ใ…Œํƒ
  • ์กฐ์ธ ์นผ๋Ÿผ์—๋งŒ ์ธ๋ฑ์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ธ๋ฑ์Šค๊ฐ€ ์—†๋Š” ํ…Œ์ด๋ธ”์„ ๋จผ์ € ์„ ํƒํ•˜์—ฌ ์กฐ์ธ ์ˆ˜ํ–‰
  • ๋งŒ์•ฝ ์กฐ์ธ ํ…Œ์ด๋ธ”์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š๋‹ค๋ฉด, FROM ์ ˆ์— ๋‚˜์—ด๋œ ํ…Œ์ด๋ธ”์˜ ์—ญ์ˆœ์œผ๋กœ ์ˆ˜ํ–‰
  1. ๋น„์šฉ๊ธฐ๋ฐ˜ ์˜ตํ‹ฐ๋งˆ์ด์ €(Cost-Based Optimizer, CBO)๋Š” ๊ทœ์น™์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹Œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์†Œ์š”๋˜๋Š” ์˜ˆ์ƒ ๋น„์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹คํ–‰๊ณ„ํš์„ ์ƒ์„ฑํ•œ๋‹ค. ํ†ต๊ณ„์ •๋ณด, DBMS ์„ค์ •์ •๋ณด, DBMS ๋ฒ„์ „ ๋“ฑ์˜ ์ฐจ์ด๋กœ ์ธํ•ด ๋˜‘๊ฐ™์€ SQL๋ฌธ์ด๋ผ๋„ ์„œ๋กœ ๋‹ค๋ฅธ ์‹คํ–‰๊ณ„ํš์ธ ์ƒ์„ฑ ๋  ์ˆ˜ ์žˆ๋‹ค
SELECT * 
FROM employees e, dept_emp de
WHERE e.emp_no=de.emp_no;

์ด ๋‘ ํ…Œ์ด๋ธ”์˜ ์กฐ์ธ ์ฟผ๋ฆฌ์—์„œ emp_no ์นผ๋Ÿผ๊ณผ dept_emp ํ…Œ์ด๋ธ”์˜ emp_no์นผ๋Ÿผ์— ๊ฐ๊ฐ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ์„ ๋•Œ์™€ ์—†์„ ๋•Œ์˜ ์กฐ์ธ์ˆœ์„œ๋ฅผ ๋น„๊ตํ•ด ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ๋‘ ์นผ๋Ÿผ ๋ชจ๋‘ ๊ฐ๊ฐ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
    ์˜ตํ‹ฐ๋งˆ์ด์ €์˜ ํŒ๋‹จ์œผ๋กœ ๊ฐ ํ…Œ์ด๋ธ”์˜ ํ†ต๊ณ„ ์ •๋ณด์— ์žˆ๋Š” ๋ ˆ์ฝ”๋“œ ๊ฑด์ˆ˜์— ๋”ฐ๋ผ employees๊ฐ€ ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ , dept_emp ํ…Œ์ด๋ธ”์ด ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

  2. dept_emp.emp_no ์—๋งŒ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
    employees ํ…Œ์ด๋ธ”์˜ ๋ฐ˜๋ณต๋œ ํ’€ ์Šค์บ”์„ ๋ง‰๊ธฐ ์œ„ํ•ด employees ํ…Œ์ด๋ธ”์„ ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”๋กœ ์„ ํƒํ•˜๊ณ  ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” dept_emp ํ…Œ์ด๋ธ”์„ ๋“œ๋ฆฌ๋ธ ํ…Œ์ด๋ธ”๋กœ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•œ๋‹ค.

  3. employees.emp_no์—๋งŒ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
    dept_emp ํ…Œ์ด๋ธ”์ด ๋“œ๋ฆฌ๋ธ ํ…Œ์ด๋ธ”๋กœ ์„ ํƒ๋œ๋‹ค๋ฉด employees ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ ๊ฑด์ˆ˜๋งŒํผ dept_emp ํ…Œ์ด๋ธ”์„ ํ’€ ์Šค์บ”ํ•ด์•ผ๋งŒ "e.emp_no=de.emp_no" ์กฐ๊ฑด์— ์ผ์น˜ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ํ•ญ์ƒ dept_emp ํ…Œ์ด๋ธ”์„ ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”๋กœ, employees ํ…Œ์ด๋ธ”์„ ๋“œ๋ฆฌ๋ธ ํ…Œ์ด๋ธ”๋กœ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค.

  4. ๋‘ ์นผ๋Ÿผ ๋ชจ๋‘ ์ธ๋ฑ์Šค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ
    ์–ด๋Š ํ…Œ์ด๋ธ”์„ ๋“œ๋ผ์ด๋น™์œผ๋กœ ์„ ํƒํ•˜๋”๋ผ๋„ ๋“œ๋ฆฌ๋ธ ํ…Œ์ด๋ธ”์˜ ํ’€ ์Šค์บ” ๋ฐœ์ƒํ•˜๊ธฐ ๋–„๋ฌธ์— ์Šค์บ”๋˜๋Š” ๋ ˆ์ฝ”๋“œ ์ˆ˜์— ๋”ฐ๋ผ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ ์ ˆํžˆ ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”์„ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค. ์กฐ์ธ์ด ์ˆ˜ํ–‰๋ ๋•Œ ์–‘์ชฝ ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ์— ๋ชจ๋‘ ์ธ๋ฑ์Šค๊ฐ€ ์—†์„ ๋•Œ๋งŒ ๋“œ๋ฆฌ๋ธ ํ…Œ์ด๋ธ”์„ ํ’€์Šค์บ”ํ•œ๋‹ค. ๋‚˜๋จธ์ง€ ๊ฒฝ์šฐ์—๋Š” ๋“œ๋ผ์ด๋น™ ํ…Œ์ด๋ธ”์„ ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ”์„ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์žˆ์–ด๋„ ๋“œ๋ฆฌ๋ธ ํ…Œ์ด๋ธ”์„ ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ”์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ์‹คํ–‰ ๊ณ„ํš์€ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ๊ฑฐ์˜ ๋งŒ๋“ค์–ด๋‚ด์ง€ ์•Š๋Š”๋‹ค.

Last update: September 13, 2022 21:44
Contributors: ahnjs