SQL ๋ฉด์ ‘๋Œ€๋น„

2021. 5. 17. 23:16ใ†๐–จ๐—‡๐—๐–พ๐—‹๐—๐—‚๐–พ๐—

1. RDBMS๋ž€? 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์œผ๋กœ, ํ…Œ์ด๋ธ”๊ธฐ๋ฐ˜์˜ DBMS๋ฅผ ๋งํ•œ๋‹ค. 

๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ๊ฐ„์˜ ๊ด€๊ณ„์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ์—‘์„ธ์Šคํ•˜๋Š” DBMS.

์ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋“ค๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ…Œ์ด๋ธ”๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ.

 

2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค '์ •๊ทœํ™”'(Normalization)๋ž€?

๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ฑ์„ ์ค„์ด๊ณ , ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ •๊ทœํ˜•์‹์— ๋”ฐ๋ผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•œ๋‹ค. 

 

3. ER๋ชจ๋ธ์ด๋ž€?

๊ฐœ์ฒด-๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ชจ๋ธ. 

์—”ํ‹ฐํ‹ฐ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ฒด, ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋งํ•˜๊ณ , ๊ด€๊ณ„๋Š” ๊ทธ๋“ค๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. 

4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์ด๋ž€?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค. 

ํŠธ๋žœ์žญ์…˜์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ์„ ๋‚˜ํƒ€๋ƒ„.

์˜ˆ๋ฅผ๋“ค์–ด ํŠธ๋žœ์žญ์…˜์ด 100๊ฐœํ–‰์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค๊ณ  ์‹œ์ž‘ํ–ˆ์ง€๋งŒ, 20๊ฐœ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹คํŒจํ–ˆ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒ˜์Œ์ด ์•„๋‹Œ, 20๊ฐœ ํ–‰์œผ๋กœ ๋กค๋ฐฑ์‹œํ‚จ๋‹ค. 

 

5. ์ธ๋ฑ์Šค๋ž€?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์Šค๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์ž‘์—…์˜ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค. 

ํ…Œ์ด๋ธ”์— ์•ก์„ธ์Šคํ•  ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  ํ–‰์„ ๊ฒ€์ƒ‰ํ•  ํ•„์š”์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ๋Š”๋ฐ ํšจ์œจ์ ์ด๋‹ค. 

ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์ฒด์˜ 10%์ •๋„ ๊ณต๊ฐ„์ด ์š”๊ตฌ๋˜๋ฉฐ, DB์˜ ๋ณ€๊ฒฝ์ž‘์—…์ด ์žฆ๋‹ค๋ฉด ์„ฑ๋Šฅ์ €ํ•˜์— ์›์ธ์ด ๋  ์ˆ˜์žˆ๋‹ค. 

 

6. ๊ธฐ๋ณธํ‚ค๋ž€?

๊ธฐ๋ณธํ‚ค๋Š” ํ…Œ์ด๋ธ”์˜ ํ–‰์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ์—ด ์ง‘ํ•ฉ์„ ๋งํ•œ๋‹ค. 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์—๋Š” ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋ฐ˜๋“œ์‹œ ํฌํ•จ๋˜๋ฉฐ, ๋™์ผํ•œ ๊ธฐ๋ณธํ‚ค๊ฐ€ ์žˆ์„ ์ˆ˜ ์—†๋‹ค. 

๊ธฐ๋ณธํ‚ค์˜ ์กฐ๊ฑด์€ null์ด๊ฑฐ๋‚˜ ์ค‘๋ณต์ด๋˜๋ฉด ์•ˆ๋œ๋‹ค. 

 

7. SQL๋ช…๋ น๋ฌธ DROP๊ณผ TRUNCATE ์ฐจ์ด์ ์€?

DROP์€ ํ…Œ์ด๋ธ” ์ •์˜์™€ ๊ทธ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋Š” ๋ช…๋ น์–ด์ธ ๋ฐ˜๋ฉด, TRUNCATE๋Š” ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ๋‘˜๋‹ค ๋กค๋ฐฑ ๋ถˆ๊ฐ€ํ•˜๊ณ , ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œํ•˜๋Š” TRUNCATE์™€ ๋‹ฌ๋ฆฌ DROP์€ ๋ฐ์ดํ„ฐ๋Š” ๋ฌผ๋ก  ์ „์ฒด ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ๊นŒ์ง€ ์ œ๊ฑฐํ•œ๋‹ค. 

 

8. ํŠธ๋ฆฌ๊ฑฐ๋ž€?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋ฆฌ๊ฑฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํŠน์ • ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ, ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ ˆ์ฐจ ์ฝ”๋“œ๋ฅผ ๋งํ•œ๋‹ค. 

๋ฐ˜๋ณต๋˜๋Š” ๋ช…๋ น์–ด์ฒ˜๋ฆฌ๋กœ, ์—…๋ฌด ์ฒ˜๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๊ณ  ์‹ถ์„๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. 

 

9. Join์˜ ๊ฐœ๋…๊ณผ ์ข…๋ฅ˜ ์ฐจ์ด์  

์กฐ์ธ์ด๋ž€, ๋‘๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค. 

  • Inner Join์€ 2๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์—์„œ ๊ต์ง‘ํ•ฉ์„ ์ถ”์ถœ
  • Outer Join์€ 2๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์—์„œ ํ•ฉ์ง‘ํ•ฉ์„ ์ถ”์ถœ 
  • Left Join์€ A์™€ B์˜ ํ…Œ์ด๋ธ”์—์„œ A์˜ ๋ชจ๋“  ์—ด ๋”ํ•˜๊ธฐ B์— ์žˆ๋Š” ๊ณตํ†ต๋ถ€๋ถ„ ์ถ”์ถœ 
  • Right Join์€ B์˜ ๋ชจ๋“  ์—ด ๋”ํ•˜๊ธฐ A์˜ ๊ณตํ†ต๋ถ€๋ถ„ ์ถ”์ถœ 

10. ๊ต์ฐฉ์ƒํƒœ๋ž€?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ต์ฐฉ์ƒํƒœ๋ž€, ๋‘˜ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ์„œ๋กœ ์ž ๊ธˆ์„ ํฌ๊ธฐํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํ™ฉ์„ ๋งํ•œ๋‹ค. 

๊ต์ฐฉ์ƒํƒœ๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด?

  • ์ •์˜๋œ ํŠธ๋žœ์žญ์…˜ ์ˆœ์„œ๋กœ ๊ฐœ์ฒด์— ์•ก์„ธ์Šคํ•œ๋‹ค 
  • ๋ฐ์ดํ„ฐํ•ญ๋ชฉ์ด ๊ฐ€์žฅ ์ ์€ ํŠธ๋žœ์žญ์…˜์„ ์„ ํƒํ•œ๋‹ค 
  • ์ตœ์†Œํ•œ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์„ ์„ ํƒํ•œ๋‹ค 

11. NoSQL์€ ์–ธ์ œ ์‚ฌ์šฉ? ํŠน์ง•์€?

  • ๊ตฌ์กฐ์—†์ด ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ• ๋•Œ 
  • ์Šคํ‚ค๋งˆ์™€ ๊ด€๊ณ„๊ฐ€ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ๋‘˜๋‹ค ๊ฐ€์ง€๊ณ ์žˆ๋Š” SQL๋ณด๋‹ค ์œ ์—ฐํ•˜๋‹ค 
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ์ปฌ๋ ‰์…˜์— ์ค‘๋ณต๋˜์–ด ์žˆ์–ด์„œ updateํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ, ๋ชจ๋“  ์ปฌ๋ ‰์…˜์—์„œ ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค 

12. SQL๊ณผ NoSQL์€ ๊ฐ๊ฐ ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ

  • ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ update๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ, SQL์ด ์ข‹์Œ. ๋ณ€๊ฒฝ๋  ์—ฌ์ง€๊ฐ€ ์—†๊ณ  ๋ช…ํ™•ํ•œ ์Šคํ‚ค๋งˆ๊ฐ€ ์‚ฌ์šฉ์ž์™€ ๋ฐ์ดํ„ฐ ๋ชจ๋‘์—๊ฒŒ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ!
  • read๋Š” ์ž์ฃผํ•˜์ง€๋งŒ update๋Š” ์ž์ฃผ ํ•˜์ง€ ์•Š๋Š”๊ฒฝ์šฐ, NoSQL์ด ์œ ์šฉํ•˜๋‹ค. ๋ง‰๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝ์—†์ด ๋งŽ์ด ์ €์žฅํ•˜๊ณ ์žํ• ๋•Œ๋Š” NoSQL์ด ์ ํ•ฉํ• ๋“ฏ.