1. ACID๋ž€?
  2. ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์ด๋ž€?
  3. ์ •๊ทœํ™”๋ž€?
  4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ˜•
  5. JOIN ์ด๋ž€?

1. ACID๋ž€?

Question

ACID์—๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

ACID๋ž€ ํŠธ๋žœ์žญ์…˜์„ ์ •์˜ํ•˜๋Š” 4๊ฐ€์ง€ ์†์„ฑ์œผ๋กœ ์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ๊ฒฉ๋ฆฌ์„ฑ, ์˜์†์„ฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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

Question

ACID ํŠธ๋žœ์žญ์…˜์ด ์žˆ์œผ๋ฉด ์ข‹์€ ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

๋ฐ์ดํ„ฐ์˜ ์•ˆ์ •์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ด์ค๋‹ˆ๋‹ค.

Question

๊ฐ ์†์„ฑ์„ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

commit๊ณผ rollback์„ ์‚ฌ์šฉํ•ด ์›์ž์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์„ ํ†ตํ•ด ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์™ธ๋ž˜ํ‚ค๋‚˜ ๊ณ ์œ ํ‚ค ๋“ฑ์„ ์„ค์ •ํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์ด๋ž€?

Question

ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์—๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์ด๋ž€ ํŠธ๋žœ์žญ์…˜๋ผ๋ฆฌ ์–ผ๋งˆ๋‚˜ ๊ณ ๋ฆฝ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹์„ ์„ค์ •ํ•˜์—ฌ ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

Question

ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ๋ ˆ๋ฒจ์—๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋‚˜์š”?

ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ๋ ˆ๋ฒจ์—๋Š” 4๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Read Uncommitted๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆ˜์ค€์œผ๋กœ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ๋ฏธํ™•์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Read Committed๋Š” ํ™•์ •๋œ ๋ฐ์ดํ„ฐ๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ˜๋ณต ์ฝ๊ธฐ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Repeatable Read๋Š” ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ฝ์„ ๋•Œ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์žฅํ•˜๋ฉฐ, Serializable์€ ๊ฐ€์žฅ ๋†’์€ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์œผ๋กœ ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ œํ•œ์ ์ด๋งŒ ๊ฐ€์žฅ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

3. ์ •๊ทœํ™”๋ž€?

Question

์ •๊ทœํ™”๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ™”๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ , ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ , ์‚ฝ์ž…/์ˆ˜์ •/์‚ญ์ œ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ƒ ํ˜„์ƒ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Question

์ •๊ทœํ™”์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ๋†’์ด๊ณ  ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€๋‚˜์น˜๊ฒŒ ์„ธ๋ถ„ํ™”๋œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Question

๋น„์ •๊ทœํ™”๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์€ ์–ธ์ œ์ธ๊ฐ€์š”?

๋น„์ •๊ทœํ™”๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์— ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์กฐํšŒ ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•œ ์‹ค์‹œ๊ฐ„ ํŠธ๋žœ์žญ์…˜ ์‹œ์Šคํ…œ์—์„œ๋Š” ์กฐ์ธ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต์‹œ์ผœ ๋น„์ •๊ทœํ™”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ˜•

Question

๋ฐ์ด๋ฒ„ํ…Œ์ด์Šค์˜ ๊ฐ ์ •๊ทœํ˜• ๋ ˆ๋ฒจ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

์ œ 1 ์ •๊ทœํ˜•์€ ๋ชจ๋“  ์ปฌ๋Ÿผ์ด ๋‹จ์ผ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•˜๋ฉฐ ์ค‘์ฒฉ๋˜๊ฑฐ๋‚˜ ์ค‘๋ณต๋˜๋Š” ์—ด์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ „ํ™”๋ฒˆํ˜ธ ์ปฌ๋Ÿผ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ๋‹ค๋ฉด ์ œ 1 ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ 2 ์ •๊ทœํ˜•์€ ๊ธฐ๋ณธํ‚ค์˜ ๋ถ€๋ถ„ ํ•จ์ˆ˜ ์ข…์†์„ฑ์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ์ปฌ๋ฆผ์ด ๊ธฐ๋ณธํ‚ค ์ „์ฒด์— ์˜์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ 3 ์ •๊ทœํ˜•์€ ์ดํ–‰์  ์ข…์†์„ฑ์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ์ปค๋Ÿถ์ด ๋‹ค๋ฅธ ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ์ปฌ๋Ÿผ์— ์ข…์†๋˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค. BCNF๋Š” ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ฒฐ์ •์ž๊ฐ€ ํ›„๋ณดํ‚ค๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ 4 ์ •๊ทœํ˜•์€ ๋‹ค์น˜ ์ข…์†์„ฑ์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ 5 ์ •๊ทœํ˜•์€ ์กฐ์ธ ์ข…์†์„ฑ์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ •๊ทœํ˜•์˜ ๋ชฉ์ ์€ ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์ด์ƒํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ๋†’์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

5. JOIN ์ด๋ž€?

Question

JOIN์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

JOIN์€ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์ณ์„œ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” SQL ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ๊ฐ ํ…Œ์ด๋ธ”์˜ ๊ณตํ†ต๋œ ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ๋‘ ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Question

JOIN์˜ ์ข…๋ฅ˜์™€ ๊ฐ๊ฐ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

JOIN์—๋Š” inner, left, right, full, cross, self join์ด ์žˆ์Šต๋‹ˆ๋‹ค. inner join์€ ์–‘์ชฝ ํ…Œ์ด๋ธ”์˜ ์ผ์น˜ํ•˜๋Š” ํ–‰๋งŒ ๋ฐ˜ํ™˜ํ•˜๊ณ , left join์€ ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•˜๋Š” ๋ฐ˜๋ฉด, right join์€ ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. full join์€ ์–‘์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. cross join์€ ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰ ์กฐํ•ฉ์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ self join์€ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ์Šค์Šค๋กœ ์กฐ์ธํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

inner join์€ ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„ ์ผ์น˜ํ•˜๋Š” ํ–‰๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ outer join์€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋„ ํฌํ•จํ•˜์—ฌ Null ๊ฐ’์„ ์ฑ„์›Œ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Question

JOIN์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

JOIN์„ ์‚ฌ์šฉํ•  ๋•Œ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋‚˜ ๋ณต์žกํ•œ ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด ์กฐ์ธ ์—ฐ์‚ฐ์ด ๋งŽ์•„์ง€๋ฉด ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์กฐ์ธ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒํ•˜๋„๋ก where ์ ˆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.