๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐Ÿ“œ ์ž๊ฒฉ์ฆ/SQLD

[SQLD] 39ํšŒ ๊ธฐ์ถœ ๋ฌธ์ œ ํ’€์ด

by ๋ฐ”์ฟ„๋ฆฌ 2024. 3. 3.

 

2. ์ •๊ทœํ™”

- ์ œ 1 ์ •๊ทœํ™” : ํ…Œ์ด๋ธ”์˜ ์†์„ฑ ํ•˜๋‚˜๋Š” ํ•˜๋‚˜์˜ ์†์„ฑ๊ฐ’๋งŒ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

- ์ œ 2 ์ •๊ทœํ™” : ๊ธฐ๋ณธํ‚ค ์ค‘์— ํŠน์ • ์ปฌ๋Ÿผ์—๋งŒ ์ข…์†๋œ ์ปฌ๋Ÿผ์ด ์กด์žฌํ•  ๊ฒฝ์šฐ ํ…Œ์ด๋ธ”์„ ๋ถ„ํ•ดํ•œ๋‹ค.

- ์ œ 3 ์ •๊ทœํ™” : ์ œ 2 ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๋Š” ์ƒํƒœ์—์„œ ์ดํ–‰ ํ•จ์ˆ˜ ์ข…์†์„ ์ œ๊ฑฐํ•˜๋Š” ์ •๊ทœํ™” ๊ณผ์ •

 

6. ์—”ํ„ฐํ‹ฐ ์ข…๋ฅ˜

์ข…๋ฅ˜ ์„ค๋ช…
๋…๋ฆฝ ์—”ํ„ฐํ‹ฐ
Kernel Entity, Master Entity
์‚ฌ๋žŒ, ๋ฌผ๊ฑด, ์žฅ์†Œ ๋“ฑ๊ณผ ๊ฐ™์ด ํ˜„์‹ค์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ์—”ํ„ฐํ‹ฐ
์—…๋ฌด์ค‘์‹ฌ ์—”ํ„ฐํ‹ฐ
Transaction Entity
Transaction์ด ์‹คํ–‰๋˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์—”ํ„ฐํ‹ฐ
์ข…์† ์—”ํ„ฐํ‹ฐ
Dependent Entity
์ฃผ๋กœ 1์ฐจ ์ •๊ทœํ™”๋กœ ์ธํ•ด ๊ด€๋ จ ์ค‘์‹ฌ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ๋œ ์—”ํ„ฐํ‹ฐ
๊ต์ฐจ ์—”ํ„ฐํ‹ฐ
Intersaction Entity
N:M์˜ ๊ด€๊ณ„๋ฅผ ํ•ด์†Œํ•˜๋ ค๋Š” ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์—”ํ„ฐํ‹ฐ
[ex) N:M -> 1:M]

 

8. ERD (Entity Relationship Diagram) ์ž‘์„ฑ ์ ˆ์ฐจ

- ์—”ํ„ฐํ‹ฐ๋ฅผ ๊ทธ๋ฆฐ๋‹ค.

- ์—”ํ„ฐํ‹ฐ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋ฐฐ์น˜ํ•œ๋‹ค.

- ์—”ํ„ฐํ‹ฐ ๊ฐ„์— ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•œ๋‹ค.

- ๊ด€๊ณ„๋ช…์„ ๊ธฐ์ˆ ํ•œ๋‹ค.

- ๊ด€๊ณ„์˜ ์ฐธ์—ฌ๋„๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค.

- ๊ด€๊ณ„์˜ ํ•„์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค.

 

10. ๋Œ€์ฒด ์—ฌ๋ถ€์— ๋”ธ๋ผ์„œ ๋ณธ์งˆ ์‹๋ณ„์ž์™€ ์ธ์กฐ ์‹๋ณ„์ž๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

- ๋ณธ์งˆ ์‹๋ณ„์ž : ์—…๋ฌด(๋น„์ง€๋‹ˆ์Šค)์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง€๋Š” ์‹๋ณ„์ž (ex: ๊ณ ๊ฐ๋ฒˆํ˜ธ)

- ์ธ์กฐ ์‹๋ณ„์ž : ์—…๋ฌด์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€์ง€๋Š” ์•Š์ง€๋งŒ ์›์กฐ ์‹๋ณ„์ž๊ฐ€ ๋ณต์žกํ•œ ๊ตฌ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ์œ„์ ์œผ๋กœ ๋งŒ๋“  ์‹๋ณ„์ž (ex: ์ฃผ๋ฌธ ์—”ํ„ฐํ‹ฐ์˜ ์ฃผ๋ฌธ ๋ฒˆํ˜ธ(๊ณ ๊ฐ๋ฒˆํ˜ธ + ์ฃผ๋ฌธ๋ฒˆํ˜ธ + ์ˆœ๋ฒˆ))

 

12. COALESCE(A, B, C)

- A๊ฐ€ NULL์ด ์•„๋‹ˆ๋ฉด A ์ถœ๋ ฅ

- A๊ฐ€ NULL์ด๋ฉด → B ํ™•์ธ → B๊ฐ€ NULL์ด ์•„๋‹ˆ๋ฉด B ์ถœ๋ ฅ / B๊ฐ€ NULL์ด๋ฉด C ํ™•์ธ → ...

* COALESCE ํ•จ์ˆ˜๋Š” NULL ๊ฐ’์ด ์•„๋‹Œ ์ฒซ๋ฒˆ์งธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

15. ์กฐ์ธ๋˜๋Š” N๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ๋ชจ๋‘ ์ •๋ ฌํ•œ ํ›„์— ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

SORT MERGE JOIN

 

17. ์ˆœ์œ„ ํ•จ์ˆ˜์—  ORDER BY๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ˆœ์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ํ˜น์€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

24. CHAR vs VARCHAR

- CHAR : ๊ธธ์ด๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋ฉด ์งง์€ ์ชฝ์— ์ŠคํŽ˜์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.

- VARCHAR : ๊ฐ™์€ ๊ฐ’์—์„œ ๊ธธ์ด๋งŒ ์„œ๋กœ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค. → ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์žํ˜• : ์ž…๋ ฅํ•œ ํฌ๊ธฐ๋งŒํผ ํ• ๋‹น

 

27. ๋ทฐ View : ๋…ผ๋ฆฌ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฐ€์ƒ ํ…Œ์ด๋ธ”๋กœ์„œ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

28. SELECT ๊ตฌ์—๋Š” GROUP BY์ ˆ์— ์žˆ๋Š” ์นผ๋Ÿผ์ด ๋‚˜์™€์•ผ ํ•œ๋‹ค.

 

33. ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ์„ ๋ณ€๊ฒฝํ•˜๋Š” DDL

ALTER TABLE ~ MODIFY ๋ฌธ
# ์ถ”๊ฐ€ : ADD
# ์‚ญ์ œ : DROP

 

34. NULL ๊ฐ’์€ ์•„์ง ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๋ฏธ์ง€์˜ ๊ฐ’์ด๋‹ค. ๊ฐ’์ด ์ •ํ•ด์ง€์ง€ ์•Š์Œ!!

 

37. ๋ฉ”์ธ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ์žˆ๋Š” ์นผ๋Ÿผ์„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค.

 

42. HASH JOIN

- ์กฐ์ธ ์ปฌ๋Ÿผ์˜ ์ธ๋ฑ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

- ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— '='๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์กฐ์ธ์œผ๋กœ ๋™๋“ฑ ์กฐ๊ฑด์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ์ ์šฉ๋  ๋•Œ ๋™์ผํ•œ ๊ฐ’์„ ํ•ญ์ƒ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ํ•ด์‹ฑ๋จ์„ ๋ณด์žฅํ•œ๋‹ค.

- HASH JOIN ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

- ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ปค์ง€๋ฉด ์ž„์‹œ ์˜์—ญ (๋””์Šคํฌ) ์— ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•œ๋‹ค.

- HASH JOIN์„ ํ•  ๋•Œ๋Š” ๊ฒฐ๊ณผ ํ–‰์˜ ์ˆ˜๊ฐ€ ์ ์€ ํ…Œ์ด๋ธ”์„ ์„ ํ–‰ ํ…Œ์ด๋ธ”๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

- ์„ ํ–‰ ํ…Œ์ด๋ธ”์„ Build input์ด๋ผ ํ•˜๋ฉฐ, ํ›„ํ–‰ ํ…Œ์ด๋ธ”์„ Prove input์ด๋ผ ํ•œ๋‹ค.

 

45. ์ƒˆ๋กœ์šด USER์ธ A์—๊ฒŒ GRANT ๊ถŒํ•œ์„ ํ• ๋‹นํ•˜๋ ค ํ•  ๋•Œ, GRANT๋ฌธ์— ์‚ฌ์šฉ๋œ A๋Š” ๊ถŒํ•œ๋“ค์„ ๋ฌถ์–ด์„œ ํ•œ๋ฒˆ์— ๋ถ€์—ฌํ•˜๋Š” ROLE์ด๋ผ๊ณ  ํ•œ๋‹ค. 

 

50. EXISTS

EXISTS ์—ฐ์‚ฐ์ž๋Š” ํ•˜์œ„ ์ฟผ๋ฆฌ์— ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

ํ•˜์œ„ ์ฟผ๋ฆฌ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ TRUE, ๊ทธ๋ ‡์ง€ ์•Š๋Š” ๊ฒฝ์šฐ FALSE

* EXISTS ๋Š” ์˜ค๋กœ์ง€ ์กด์žฌ์˜ ์—ฌ๋ถ€๋งŒ ๋ณธ๋‹ค. ๋‹จ ํ•˜๋‚˜๋ผ๋„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์ฆ‰์‹œ ๋ฆฌํ„ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ๋น„์Šทํ•œ IN ์—ฐ์‚ฐ์ž๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ „๋ถ€ ๊ตฌํ•˜๊ณ  ๋น„๊ต๋ฅผ ์‹œํ–‰ํ•œ๋‹ค. 

 

 


 

์ด ๋ธ”๋กœ๊ทธ์— ์ž‘์„ฑ๋œ ๋ฌธ์ œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ’€์—ˆ์œผ๋ฉฐ

ํ’€์–ด๋ณด๊ณ  ํ‹€๋ฆฐ ๋ฌธ์ œ, ์•”๊ธฐํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„๋“ค์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

[SQLD] 39ํšŒ ๊ธฐ์ถœ ๋ฌธ์ œ ( 50๋ฌธ์ œ / ์ •๋‹ต,ํ•ด์„คํฌํ•จ )

โณ๋‚จ์€์‹œ๊ฐ„ : 61๋ถ„2์ดˆ ๐Ÿ“–SQLD. ์ œ 39 ํšŒ ๊ธฐ์ถœ ๋ฌธ์ œ ๋ฌธ์ œ 1. ํŠน์ • ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›์นผ๋Ÿผ, ๋ถ€์„œ์นผ๋Ÿผ๋งŒ ์ถ”์ถœํ•˜๋Š” ๊ฒฝ์šฐ์— DISK I/O๋ฅผ ๊ฒฝ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜์ •๊ทœํ™” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ 1) ์ˆ˜ํ‰ ๋ถ„ํ•  2)

yunamom.tistory.com