SQLP

SQLP ๐Ÿค– [์˜ˆ์‹œ๋ฌธ์ œ] (2026-08-15)

1. [์˜ˆ์‹œ๋ฌธ์ œ] ๋‹ค์Œ ์ค‘ BCNF(๋ณด์ด์Šค-์ฝ”๋“œ ์ •๊ทœํ˜•)์™€ 3NF(์ œ3 ์ •๊ทœํ˜•)๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๊ธฐ์ค€์œผ๋กœ ์˜ณ์€ ๊ฒƒ์€?

  1. ๋ชจ๋“  ๋น„์ฃผ์š” ์†์„ฑ์ด ๊ธฐ๋ณธ ํ‚ค์— ์™„์ „ ํ•จ์ˆ˜ ์ข…์†ํ•˜๋Š”์ง€ ์—ฌ๋ถ€
  2. ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธ ํ‚ค์— ์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์†์ด ์—†๋Š”์ง€ ์—ฌ๋ถ€
  3. ๋ชจ๋“  ๊ฒฐ์ •์ž๊ฐ€ ํ›„๋ณด ํ‚ค์ธ์ง€ ์—ฌ๋ถ€
  4. ๋ถ€๋ถ„ ํ•จ์ˆ˜ ์ข…์†์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€

2. [์˜ˆ์‹œ๋ฌธ์ œ] EMPLOYEES ํ…Œ์ด๋ธ”๊ณผ DEPARTMENTS ํ…Œ์ด๋ธ”์ด ๊ฐ๊ฐ EMPLOYEE_ID์™€ DEPARTMENT_ID๋ฅผ ๊ธฐ๋ณธ ํ‚ค๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ง์›์˜ ์ด๋ฆ„๊ณผ ๊ทธ ์ง์›์ด ์†ํ•œ ๋ถ€์„œ์˜ ์ด๋ฆ„์„ ์กฐโ€ฆ

  1. INNER JOIN
  2. LEFT OUTER JOIN
  3. RIGHT OUTER JOIN
  4. FULL OUTER JOIN

4. [์˜ˆ์‹œ๋ฌธ์ œ] OLTP(์˜จ๋ผ์ธ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ) ํ™˜๊ฒฝ์—์„œ ํŠน์ • ํ…Œ์ด๋ธ”์˜ ๋Œ€๋Ÿ‰ UPDATE ์ž‘์—… ์‹œ, Deadlock ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ณ  ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์ ์ ˆํ•œ ์กฐ์น˜๋กœ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€?

  1. UPDATE ๋ฒ”์œ„๋ฅผ ์ž‘๊ฒŒ ๋‚˜๋ˆ„์–ด ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ๋ถ„๋ฆฌ ์‹คํ–‰ํ•œ๋‹ค.
  2. INDEX๋ฅผ ์ ์ ˆํžˆ ํ™œ์šฉํ•˜์—ฌ UPDATE ๋Œ€์ƒ ๋ ˆ์ฝ”๋“œ ํƒ์ƒ‰ ์‹œ๊ฐ„์„ ์ค„์ธ๋‹ค.
  3. ํŠธ๋žœ์žญ์…˜ ๋‚ด๋ถ€์—์„œ UPDATE ๊ตฌ๋ฌธ ์•ž์— LOCK TABLE ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ์ž ๊ทผ๋‹ค.
  4. ๋ถˆํ•„์š”ํ•œ ํŠธ๋ฆฌ๊ฑฐ๋‚˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ธ๋‹ค.

5. [์˜ˆ์‹œ๋ฌธ์ œ] ๋‹ค์Œ ์ค‘ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๋ฐ˜์ •๊ทœํ™”(Denormalization)์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ๊ฐ€์žฅ ๋ถ€์ ์ ˆํ•œ ๊ฒƒ์€?

  1. ์กฐ์ธ ํšŸ์ˆ˜๋ฅผ ์ค„์—ฌ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  2. ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€๊ฐ€ ๋” ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค.
  3. ํ…Œ์ด๋ธ” ๊ฐ„์˜ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ฃผ๋œ ๋ชฉ์ ์ด๋‹ค.
  4. ์กฐํšŒ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ์ €์žฅ ๊ณต๊ฐ„์˜ ์ฆ๊ฐ€๋ฅผ ์ƒํšŒํ•  ๋•Œ ๊ณ ๋ ค๋  ์ˆ˜ ์žˆ๋‹ค.

6. [์˜ˆ์‹œ๋ฌธ์ œ] ๋‹ค์Œ ์ค‘ ์œˆ๋„์šฐ ํ•จ์ˆ˜(Window Function)์˜ ์‚ฌ์šฉ์ด ์ ํ•ฉํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€?

  1. ๊ฐ ๋ถ€์„œ ๋‚ด์—์„œ ๊ธ‰์—ฌ ์ˆœ์œ„๋ณ„๋กœ ์ง์›์„ ์กฐํšŒํ•  ๋•Œ
  2. ์ „์ฒด ์ง์› ์ค‘ ํŠน์ • ์ง์›์˜ ๊ธ‰์—ฌ๊ฐ€ ์ƒ์œ„ ๋ช‡ ํผ์„ผํŠธ์— ํ•ด๋‹นํ•˜๋Š”์ง€ ๊ณ„์‚ฐํ•  ๋•Œ
  3. ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„ ์™„์ „ํžˆ ์‚ญ์ œํ•  ๋•Œ
  4. ์ด์ „ ๋‹ฌ๊ณผ ํ˜„์žฌ ๋‹ฌ์˜ ๋งค์ถœ์•ก์„ ๋น„๊ตํ•˜์—ฌ ์ฆ๊ฐ๋ฅ ์„ ๊ณ„์‚ฐํ•  ๋•Œ

7. [์˜ˆ์‹œ๋ฌธ์ œ] ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ SQL ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•  ๋•Œ, ์กฐ์ธ ์ˆœ์„œ์™€ ์กฐ์ธ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๋Š” ์ฃผ์š” ์š”์ธ์œผ๋กœ ๊ฐ€์žฅ ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ ๊ฒƒ์€?

  1. ํ…Œ์ด๋ธ” ๋ฐ ์ธ๋ฑ์Šค์˜ ํ†ต๊ณ„ ์ •๋ณด
  2. WHERE ์ ˆ์˜ ์กฐ๊ฑด๊ณผ ๊ฒฐํ•ฉ ์ธ๋ฑ์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„ฑ
  3. ์„œ๋ฒ„์˜ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ(RAM) ํฌ๊ธฐ
  4. ์˜ตํ‹ฐ๋งˆ์ด์ € ํžŒํŠธ ์‚ฌ์šฉ ์—ฌ๋ถ€

8. [์˜ˆ์‹œ๋ฌธ์ œ] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠœ๋‹ ์‹œ, '์ธ๋ฑ์Šค ์žฌ๊ตฌ์„ฑ(Rebuild)' ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์ฃผ๋œ ๋ชฉ์ ์€ ๋ฌด์—‡์ธ๊ฐ€?

  1. ํ…Œ์ด๋ธ”์˜ ๋‹จํŽธํ™”๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•œ๋‹ค.
  2. ์ธ๋ฑ์Šค ํŠธ๋ฆฌ์˜ ๋†’์ด๋ฅผ ์ตœ์ ํ™”ํ•˜๊ณ  ๋‹จํŽธํ™”๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ์ธ๋ฑ์Šค ์Šค์บ” ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.
  3. ๋ฐ์ดํ„ฐ ํŒŒ์ผ์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ I/O ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•œ๋‹ค.
  4. ์ •๊ทœํ™”๋œ ํ…Œ์ด๋ธ”์„ ๋ฐ˜์ •๊ทœํ™”ํ•˜์—ฌ ์กฐ์ธ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.