iseunghan 2021. 3. 20. 00:12
๋ฐ˜์‘ํ˜•
 

IT CookBook, ์˜ค๋ผํด๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ก ๊ณผ ์‹ค์Šต(2ํŒ)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•ต์‹ฌ ์ด๋ก ์„ ์˜ค๋ผํด๋กœ ์‹ค์Šตํ•˜๋ฉฐ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ…์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ด๋ก ์„ 4๊ฐœ์˜ ๋ถ€๋กœ ๋‚˜๋ˆ„์–ด ์‹ค์Šต๊ณผ ํ•จ๊ป˜ ์ตํžŒ ๋‹ค์Œ, ๋งˆ์ง€๋ง‰์—๋Š” ์›Œํฌ๋ถ์œผ๋กœ ๋ฐฐ

www.hanbit.co.kr

์˜ค๋ผํด๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ก ๊ณผ ์‹ค์Šต(2ํŒ) ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ, ์ •๋ฆฌํ•œ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.


 

๊ด€๊ณ„๋Œ€์ˆ˜ (relational algebra)

๋ฆด๋ ˆ์ด์…˜์—์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ˆ˜ํ•™์˜ ๋Œ€์ˆ˜์™€ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ด์šฉํ•˜์—ฌ ์งˆ์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๋Š” ์–ธ์–ด

 

๊ด€๊ณ„๋Œ€์ˆ˜์™€ ๊ด€๊ณ„ํ•ด์„

  • ๊ด€๊ณ„๋Œ€์ˆ˜ : ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ๋Š”์ง€์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์ ˆ์ฐจ๋ฅผ ๋ช…์‹œํ•˜๋Š” ์ ˆ์ฐจ์ ์ธ ์–ธ์–ด์ด๋ฉฐ, DBMS ๋‚ด๋ถ€์˜ ์ฒ˜๋ฆฌ ์–ธ์–ด๋กœ ์‚ฌ์šฉ๋จ
  • ๊ด€๊ณ„ํ•ด์„: ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š”์ง€ ๋ช…์‹œํ•˜๋Š” ์„ ์–ธ์ ์ธ ์–ธ์–ด๋กœ ๊ด€๊ณ„๋Œ€์ˆ˜์™€ ํ•จ๊ป˜ ๊ด€๊ณ„ DBMS์˜ ํ‘œ์ค€ ์–ธ์–ด์ธ SQL์˜ ์ด๋ก ์ ์ธ ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•จ

๊ด€๊ณ„๋Œ€์ˆ˜์™€ ๊ด€๊ณ„ํ•ด์„์€ ๋ชจ๋‘ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ค‘์š”ํ•œ ์–ธ์–ด์ด๋ฉฐ ์‹ค์ œ ๋™์ผํ•œ ํ‘œํ˜„ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.


์…€๋ ‰์…˜(selection)

  • ๋ฆด๋ ˆ์ด์…˜์˜ ํŠœํ”Œ์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์ž„. 
  • ๋‹จํ•ญ ์—ฐ์‚ฐ์ž
  • ํ˜•์‹ : ์‹œ๊ทธ๋งˆ<์กฐ๊ฑด> (R)
  • ๋ณตํ•ฉ์กฐ๊ฑด : ์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ^(and), v(or), ใ„ฑ(not) ๊ธฐํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณตํ•ฉ์กฐ๊ฑด์„ ํ‘œ์‹œ.

ํ”„๋กœ์ ์…˜(projection)

  • ๋ฆด๋ ˆ์ด์…˜์˜ ์†์„ฑ์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ
  • ๋‹จํ•ญ ์—ฐ์‚ฐ์ž
  • ํ˜•์‹ : ํŒŒ์ด<๋ฝ‘์•„๋‚ผ ์†์„ฑ๋“ค> (R) 

ํ•ฉ์ง‘ํ•ฉ

  • ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์„ ํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์„ ๋ฐ˜ํ™˜ (์ค‘๋ณต๋œ ๋ถ€๋ถ„ ์ œ๊ฑฐ)
  • ์กฐ๊ฑด : ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์€ ์„œ๋กœ ๊ฐ™์€ ์†์„ฑ ์ˆœ์„œ์™€ ๋„๋ฉ”์ธ์„ ๊ฐ€์ ธ์•ผ ํ•จ.

๊ต์ง‘ํ•ฉ

  • ํ•ฉ๋ณ‘๊ฐ€๋Šฅํ•œ ๋‘ ๋ฆด๋ ˆ์ด์…˜์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋ฉฐ
  • ๋‘ ๋ฆด๋ ˆ์ด์…˜์ด ๊ณตํ†ต์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŠœํ”Œ์„ ๋ฐ˜ํ™˜

์ฐจ์ง‘ํ•ฉ

  • ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์†ํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์†ํ•˜์ง€ ์•Š๋Š” ํŠœํ”Œ์„ ๋ฐ˜ํ™˜

 


์นด๋””์…˜ ํ”„๋กœ๋•ํŠธ(cartesian product)

  • ๋‘ ๋ฆด๋ ˆ์ด์…˜์„ ์—ฐ๊ฒฐ์‹œ์ผœ ํ•˜๋‚˜๋กœ ํ•ฉ์น  ๋•Œ ์‚ฌ์šฉ
  • ๊ฒฐ๊ณผ ๋ฆด๋ ˆ์ด์…˜ : ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ ˆ์ด์…˜์˜ ์˜ค๋ฅธ์ชฝ์— ๋‘ ๋ฒˆ์งธ ๋ฆด๋ ˆ์ด์…˜์˜ ๋ชจ๋“  ํŠœํ”Œ์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ดํ•˜์—ฌ ๋ฐ˜ํ™˜.
  • ๊ฒฐ๊ณผ ๋ฆด๋ ˆ์ด์…˜ ์ฐจ์ˆ˜: ๋‘ ๋ฆด๋ ˆ์ด์…˜์˜ ์ฐจ์ˆ˜์˜ ํ•ฉ
  • ๊ฒฐ๊ณผ ๋ฆด๋ ˆ์ด์…˜ ์นด๋””๋„๋ฆฌํ‹ฐ: ๋‘ ๋ฆด๋ ˆ์ด์…˜์˜ ์นด๋””๋„๋ฆฌํ‹ฐ์˜ ๊ณฑ

 


์กฐ์ธ(join)

  • ๋‘ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ณตํ†ต ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์†์„ฑ ๊ฐ’์ด ๊ฐ™์€ ํŠœํ”Œ์„ ์ˆ˜ํ‰์œผ๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ์—ฐ์‚ฐ
  • ๋‘ ๋ฆด๋ ˆ์ด์…˜์„ ์นด๋””์…˜ํ”„๋กœ๋•ํŠธ ์—ฐ์‚ฐ์„ ํ•œ ํ›„ ์…€๋ ‰์…˜ ์—ฐ์‚ฐ์„ ํ•œ ๊ฒƒ๊ณผ ๋™์ผ
  • ์กฐ์ธ ์—ฐ์‚ฐ ์ข…๋ฅ˜
    • ๊ธฐ๋ณธ์—ฐ์‚ฐ
      • ์„ธํƒ€์กฐ์ธ : ์กฐ๊ฑด(=, > , < .. ๋“ฑ)์— ๋งž๋Š” ํŠœํ”Œ ๋ฐ˜ํ™˜
      • ๋™๋“ฑ์กฐ์ธ : ์†์„ฑ๊ฐ’์ด ๊ฐ™์€ ํŠœํ”Œ๋งŒ ๋ฐ˜ํ™˜
      • ์ž์—ฐ์กฐ์ธ : ๋™๋“ฑ์กฐ์ธ์—์„œ ์ค‘๋ณต ์ œ๊ฑฐ
    • ํ™•์žฅ๋œ ์กฐ์ธ ์—ฐ์‚ฐ
      • ์„ธ๋ฏธ์กฐ์ธ:๋‹ซํ˜€ ์žˆ๋Š” ๋ฆด๋ ˆ์ด์…˜์˜ ํŠœํ”Œ๋งŒ ๋ฐ˜ํ™˜(์ค‘๋ณต ์ œ๊ฑฐ)
        • left semi join
        • right semi join
      • ์™ธ๋ถ€์กฐ์ธ : ์ž์—ฐ์กฐ์ธ ์‹œ ์‹œ๋žฒํ•œ ํŠœํ”Œ๋“ค์„ ๋ชจ๋‘ ๋ณด์—ฌ์ฃผ๋ฉฐ ๊ฐ’์ด ์—†๋Š” ์†์„ฑ์—๋Š” NULL์„ ์ฑ„์›Œ์„œ ๋ณด์—ฌ์ค€๋‹ค.
        • left outer join
        • full outer join
        • right outer join

1) ์„ธํƒ€ ์กฐ์ธ

ํ˜•์‹

  • ์กฐ๊ฑด(=, <=, >=, < , > , =/=)์— ๋งž๋Š” ํŠœํ”Œ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

2) ๋™๋“ฑ ์กฐ์ธ

ํ˜•์‹

  • ์„ธํƒ€ ์กฐ์ธ์—์„œ = ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ ์กฐ์ธ.
  • ๋ณดํ†ต ์กฐ์ธ ์—ฐ์‚ฐ์ด๋ผ๊ณ  ํ•˜๋ฉด ๋™๋“ฑ์กฐ์ธ์„ ์ง€์นญํ•œ๋‹ค.

๋ฌธ์ œ ํŒ) ๊ณ ๊ฐ๊ณผ ๊ณ ๊ฐ์˜ ์ฃผ๋ฌธ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๋ณด์ด์‹œ์˜ค.

  • (๋ชจ๋‘ ๋ณด์ด์‹œ์˜ค -> ๋™๋“ฑ์กฐ์ธ, ์ž์—ฐ์กฐ์ธ๊ณผ ๊ตฌ๋ณ„๋ฒ•์€ ์•„๋ž˜ ์ž์—ฐ์กฐ์ธ ์ฐธ๊ณ )

์„ธํƒ€ ์กฐ์ธ๊ณผ ๋™๋“ฑ ์กฐ์ธ์€ ์ค‘๋ณต๋œ ์†์„ฑ ์ด ๋ฐœ์ƒ!!

 

3) ์ž์—ฐ ์กฐ์ธ(natural join)

ํ˜•์‹

  • ๋™๋“ฑ์กฐ์ธ์—์„œ ๋‘ ๋ฒˆ์งธ ๋ฆด๋ ˆ์ด์…˜์˜ ์†์„ฑ(์—ฌ๊ธฐ์„  ์ฃผ๋ฌธ.๊ณ ๊ฐ๋ฒˆํ˜ธ๊ฐ€ ๋˜๊ฒ ๋‹ค )์ด ์ค‘๋ณต๋˜์„œ ๋‚˜์˜ค์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

๋ฌธ์ œ ํŒ) ๊ณ ๊ฐ๊ณผ ๊ณ ๊ฐ์˜ ์ฃผ๋ฌธ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๋ณด์—ฌ์ฃผ๋˜ ๊ฐ™์€ ์†์„ฑ์€ ํ•œ๋ฒˆ๋งŒ ํ‘œ์‹œํ•˜์‹œ์˜ค.

  • (๋ชจ๋‘ ๋ณด์—ฌ์ฃผ๋˜ -> ๋™๋“ฑ์กฐ์ธ, ๊ฐ™์€ ์†์„ฑ์€ ํ•œ๋ฒˆ๋งŒ ํ‘œ์‹œ -> ์ž์—ฐ ์กฐ์ธ)

 

4) ์™ธ๋ถ€ ์กฐ์ธ(outer join)

  • left outer join 
  • full outer join
  • right outer join

ํ˜•์‹

์ž์—ฐ์กฐ์ธ ์‹œ ์กฐ์ธ์— ์‹คํŒจํ•œ ํŠœํ”Œ๋“ค์„ ์—†๋Š” ์†์„ฑ์— null๊ฐ’์„ ์ฑ„์›Œ์„œ ๋ชจ๋‘ ๋ณด์—ฌ์ค€๋‹ค.

์™ธ๋ถ€์กฐ์ธ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์ชฝ(์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ, ์ „์ฒด)์— ๋”ฐ๋ผ ํ•ด๋‹น ๋ฆด๋ ˆ์ด์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์˜จ๋‹ค.

 

์™ธ๋ถ€์กฐ์ธ ์˜ˆ์‹œ ๋ฌธ์ œ ๋ฆด๋ ˆ์ด์…˜

๋ฌธ์ œ 1) ๊ณ ๊ฐ ๊ธฐ์ค€์œผ๋กœ ์ฃผ๋ฌธ ๋‚ด์—ญ์ด ์—†๋Š” ๊ณ ๊ฐ๋„ ๋ชจ๋‘ ๋ณด์ด์‹œ์˜ค.

  • ๊ณ ๊ฐ ๊ธฐ์ค€ -> Left Outer Join ,  ์—†๋Š” ๊ณ ๊ฐ๋„ ๋ชจ๋‘ -> Outer join์„ ์˜๋ฏธ!
  • (์ค‘๋ณต๋œ ์†์„ฑ ์ œ๊ฑฐ) ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ๋งŒ ์œ ์ง€! ์ฃผ๋ฌธ ๋ฆด๋ ˆ์ด์…˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ ์ œ๊ฑฐ!

๋ฌธ์ œ 2) ์ฃผ๋ฌธ ๋‚ด์—ญ์ด ์—†๋Š” ๊ณ ๊ฐ๊ณผ ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์— ๊ณ ๊ฐ๋ฒˆํ˜ธ๊ฐ€ ์—†๋Š” ์ฃผ๋ฌธ์„ ๋ชจ๋‘ ๋ณด์ด์‹œ์˜ค.

  • ๊ธฐ์ค€์„ ๋ช…์‹œํ•˜์ง€ ์•Š์•˜๊ณ , ๋‘ ๋ฆด๋ ˆ์ด์…˜์—์„œ ์—†๋Š” ํŠœํ”Œ์„ ๋ชจ๋‘ ๋ณด์ด๋ผ๊ณ  ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— -> Full Outer join
  • Full Outer Join ์ธ ๊ฒฝ์šฐ์—๋Š” ์™ธ๋ž˜ํ‚ค๋งŒ ์ œ๊ฑฐ! (์—ฌ๊ธฐ์„œ๋Š”, ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ๋งŒ ์œ ์ง€, ์ฃผ๋ฌธ ๋ฆด๋ ˆ์ด์…˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ ์ œ๊ฑฐ)

๋ฌธ์ œ 3) ์ฃผ๋ฌธ ๋‚ด์—ญ ๊ธฐ์ค€์œผ๋กœ ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์— ๊ณ ๊ฐ๋ฒˆํ˜ธ๊ฐ€ ์—†๋Š” ์ฃผ๋ฌธ๋„ ๋ชจ๋‘ ๋ณด์ด์‹œ์˜ค

  • ์ฃผ๋ฌธ ๋‚ด์—ญ ๊ธฐ์ค€ -> ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ๋Š” ์ œ๊ฑฐ! ์ฃผ๋ฌธ ๋ฆด๋ ˆ์ด์…˜ ์ชฝ์— ์œ ์ง€! (์ค‘๋ณต๋œ ์†์„ฑ ์ œ๊ฑฐ)
  • ๊ณ ๊ฐ๋ฒˆํ˜ธ๊ฐ€ ์—†๋Š” ์ฃผ๋ฌธ๋„ ๋ชจ๋‘ ๋ณด์ด๋ผ๊ณ  ํ•˜์˜€์œผ๋ฏ€๋กœ -> Right Outer join!

 

5) ์„ธ๋ฏธ ์กฐ์ธ(semi join)

์ž์—ฐ ์กฐ์ธ์„ ํ•œ ํ›„ ๋‘ ๋ฆด๋ ˆ์ด์…˜ ์ค‘ ํ•œ ์ชฝ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๊ธฐํ˜ธ์—์„œ ๋‹ซํžŒ ์ชฝ ๋ฆด๋ ˆ์ด์…˜์˜ ํŠœํ”Œ๋งŒ ๋ฐ˜ํ™˜

ํ˜•์‹

๋ฌธ์ œ ) ๋งˆ๋‹น์„œ์ ์˜ ๊ณ ๊ฐ ์ค‘ ์ฃผ๋ฌธ๋‚ด์—ญ์ด ์žˆ๋Š” ๊ณ ๊ฐ์˜ ๊ณ ๊ฐ์ •๋ณด๋ฅผ ๋ณด์ด์‹œ์˜ค.

  • ์ฃผ๋ฌธ๋‚ด์—ญ์ด ์žˆ๋Š” -> ์„ธ๋ฏธ ์กฐ์ธ
  • ๊ณ ๊ฐ์˜ ๊ณ ๊ฐ์ •๋ณด๋ฅผ ๋ณด์—ฌ๋ผ -> ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜ ์ชฝ์€ ๋‹ซํžˆ๊ณ , ์ฃผ๋ฌธ ๋ฆด๋ ˆ์ด์…˜ ์ชฝ์€ ์—ด๋ ค์žˆ๋Š” ์„ธ๋ฏธ์กฐ์ธ

 

6) ๋””๋น„์ „(division)

  • ๋ฆด๋ ˆ์ด์…˜์˜ ์†์„ฑ ๊ฐ’์˜ ์ง‘ํ•ฉ์œผ๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰

ํ˜•์‹

๋ฐ˜์‘ํ˜•