๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ž๊ฒฉ์ฆ๐Ÿชช/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๐Ÿ“š

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ_SQL์‘์šฉ 1๐Ÿ“š

by @ENFJ 2022. 4. 3.

์ฑ•ํ„ฐ1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ณธ๐Ÿ“š

ํŠธ๋žœ์žญ์…˜: ์ธ๊ฐ€๋ฐ›์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด DBMS๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•˜๋Š” ํŠน์„ฑ์ด์ž, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๊ธฐ๋ณธ๋‹จ์œ„์ด๋‹ค.

 

ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ: ACID 

1) ์›์ž์„ฑ(Atomicity) : ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฐ์‚ฐ ์ „์ฒด๊ฐ€ ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ์ทจ์†Œ๋˜์–ด์•ผ ํ•˜๋Š” ์„ฑ์งˆ

2) ์ผ๊ด€์„ฑ(Consistency): ์‹œ์Šคํ…œ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณ ์ •์š”์†Œ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ „๊ณผ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰์™„๋ฃŒํ›„์˜ ์ƒํƒœ๊ฐ€ ๊ฐ™์•„์•ผํ•˜๋Š” ์„ฑ์งˆ

3) ๊ฒฉ๋ฆฌ์„ฑ=๊ณ ๋ฆฝ์„ฑ(Isolation): ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ํŠธ๋žœ์žญ์…˜๋“ค์ด ์„œ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ์„ฑ์งˆ

4) ์˜์†์„ฑ(Durability): ์„ฑ๊ณต์ด ์™„๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฐ๊ณผ๋Š” ์˜์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์–ด์•ผ ํ•˜๋Š” ์„ฑ์งˆ.

 

ํŠธ๋žœ์žญ์…˜์˜ ์ƒํƒœ

ํ™œ๋™-๋ถ€๋ถ„์™„๋ฃŒ-์™„๋ฃŒ-์‹คํŒจ-์ฒ ํšŒ์ƒํƒœ

 

TCL(transaction control language) : ํŠธ๋žœ์žญ์…˜ ์ œ์–ด ์–ธ์–ด

: ์ปค๋ฐ‹/๋กค๋ฐฑ/์ฒดํฌํฌ์ธํŠธ

 

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

 

๋ณ‘ํ–‰์ œ์–ด ๋ฏธ๋ณด์žฅ์‹œ ๋ฌธ์ œ์  

1) ๊ฐฑ์‹  ์†์‹ค : ๋จผ์ € ์‹คํ–‰๋œ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜์ค‘์— ์‹คํ–‰๋œ ํŠธ๋žœ์žญ์…˜์ด ๋ฎ์–ด์“ธ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜

2) ํ˜„ํ™ฉ ํŒŒ์•… ์˜ค๋ฅ˜: ํŠธ๋žœ์žญ์…˜์˜ ์ค‘๊ฐ„ ์ˆ˜ํ–‰๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ฐธ์กฐํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜

3) ๋ชจ์ˆœ์„ฑ: ๋‘ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์‹คํ–‰๋˜์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๊ด€์„ฑ์ด ๊ฒฐ์—ฌ๋˜๋Š” ์˜ค๋ฅ˜

4) ์—ฐ์‡„๋ณต๊ท€: ๋ณต์ˆ˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ ๊ณต์œ ์‹œ ํŠน์ • ํŠธ๋žœ์žญ์…˜์ด ์ฒ˜๋ฆฌ๋ฅผ ์ทจ์†Œํ•  ๊ฒฝ์šฐ ํŠธ๋žœ์žญ์…˜์ด ์ฒ˜๋ฆฌํ•œ๊ณณ์˜ ๋ถ€๋ถ„์„ ์ทจ์†Œํ•˜์ง€ ๋ชปํ•˜๋Š” ์˜ค๋ฅ˜.

 

๋ณ‘ํ–‰์ œ์–ด๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜: ๋กœํ‚น, ํƒ€์ž„ ์Šคํƒฌํ”„ ์ˆœ์„œ

 

ํšŒ๋ณต ๊ธฐ๋ฒ• ์ข…๋ฅ˜

1) ๋กœ๊ทธ ๊ธฐ๋ฐ˜ ํšŒ๋ณต ๊ธฐ๋ฒ•

2) ์ฒดํฌ ํฌ์ธํŠธ ํšŒ๋ณต ๊ธฐ๋ฒ•

3) ๊ทธ๋ฆผ์ž ํŽ˜์ด์ง• ํšŒ๋ณต ๊ธฐ๋ฒ•

 

DDL ๋Œ€์ƒ 

๋„๋ฉ”์ธ: ํ•˜๋‚˜์˜ ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์›์ž๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ/ ์†์„ฑ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ํฌ๊ธฐ, ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ์˜ ์ •๋ณด

์Šคํ‚ค๋งˆ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ, ์ œ์•ฝ์กฐ๊ฑด๋“ฑ์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ์ ์ธ๊ตฌ์กฐ (์™ธ๋ถ€/๊ฐœ๋…/๋‚ด๋ถ€)3๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ

ํ…Œ์ด๋ธ”: ๋ฐ์ดํ„ฐ ์ €์žฅ๊ณต๊ฐ„

๋ทฐ: ํ•˜๋‚˜ ์ด์ƒ์ด ๋ฌผ๋ฆฌ ํ…Œ์ด๋ธ”์—์„œ ์œ ๋„๋˜๋Š” ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”

์ธ๋ฑ์Šค: ๊ฒ€์ƒ‰์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ.

 

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

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ ๊ตฌ์กฐ

1) ์ˆœ์ฐจ ๋ฐฉ๋ฒ•: ๋ ˆ์ฝ”๋“ค์˜ ๋ฌผ๋ฆฌ์  ์ˆœ์„œ๊ฐ€ ๋ ˆ์ฝ”๋“œ๋“ค์˜ ๋…ผ๋ฆฌ์  ์ˆœ์„œ์™€ ๊ฐ™๊ฒŒ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

2) ์ธ๋ฑ์Šค ๋ฐฉ๋ฒ•: ์ธ๋ฑ์Šค๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋ฅผ ๋”ฐ๋ผ ์›ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•

3) ํ•ด์‹ฑ ๋ฐฉ๋ฒ•: ํ‚ค ๊ฐ’์„ ํ•ด์‹œ ํ•จ์ˆ˜์— ๋Œ€์ž…์‹œ์ผœ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ฃผ์†Œ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ ˆ์ฝ”๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ๋ฐฉ๋ฒ•


๋ณต์Šต๐Ÿ“š

1. c++, ์ž๋ฐ”์—์„œ๋Š” ์ฐธ์ผ ๊ฒฝ์šฐ (true)๋กœ, ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ (false)๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

2. c++์—์„œ ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ์ €์žฅํ•˜๊ณ ์ž ํ•  ๋•Œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์„ ์–ธ์€ (char)๋ผ๊ณ  ํ•œ๋‹ค.

3. (๋ฐ์ดํ„ฐํƒ€์ž…)๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‹ค์ˆ˜์น˜, ์ •์ˆ˜ ์ž๋ฃŒํ˜•๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ํƒ€์ž…์ด๋‹ค.

4. c์–ธ์–ด์—์„œ double์€ (์‹ค์ˆ˜)๊ฐ’์„ ์ €์žฅํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋‹ค.

5. (๋ณ€์ˆ˜)๋Š” ์ €์žฅํ•˜๊ณ ์ž ํ•˜๋Š” ์–ด๋– ํ•œ ๊ฐ’์ด ์žˆ์„๋•Œ ๊ทธ ๊ฐ’์„ ์ฃผ๊ธฐ์–ต ์žฅ์น˜์— ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์ด๋‹ค.


๊ธฐ์ถœ๋ฌธ์ œ๐Ÿ“š

1. ํŠธ๋žœ์žญ์…˜์ด ํŠน์„ฑ ์ค‘ ์ผ๊ด€์„ฑ, ์ง€์†์„ฑ ์™ธ 2๊ฐœ์˜ ํŠน์„ฑ์„ ์“ฐ์‹œ์˜ค.

1) ์›์ž์„ฑ : ํ•˜๋‚˜๋ผ๋„ ์‹คํŒจํ•  ๊ฒฝ์šฐ ์ „์ฒด๊ฐ€ ์ทจ์†Œ๋˜์–ด์•ผ ํ•˜๋Š” ํŠน์„ฑ 2) ๊ณ ๋ฆฝ์„ฑ : ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ค‘ ์ƒ์„ฑํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผ ๋ถˆ๊ฐ€ํ•œ ํŠน์„ฑ์ด๋‹ค.

 

2. ํŠธ๋žœ์žญ์…˜ ์›์ž์„ฑ์— ๋Œ€ํ•˜์—ฌ ์„ค๋ช…ํ•˜์‹œ์˜ค.- ํŠธ๋žœ์žญ์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ์—ฐ์‚ฐ ์ „์ฒด๊ฐ€ ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ์ทจ์†Œ๋˜์–ด์•ผ ํ•˜๋Š” ์„ฑ์งˆ์ด๋‹ค.- ์›์ž์„ฑ์€ ํŠธ๋žœ์žญ์…˜์ด ์—ฐ์‚ฐ ์ „์ฒด๊ฐ€ ์„ฑ๊ณต ๋˜๋Š” ์‹คํŒจ๋˜์–ด์•ผ ํ•˜๋Š” ์„ฑ์งˆ์ด๋‹ค.

 

3. ํŠธ๋žœ์žญ์…˜ Rollback์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค.-ํŠธ๋žœ ์žญ์…˜ ์ฒ˜๋ฆฌ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ ์˜ค๋ฅ˜ ์ด์ „์˜ ํŠน์ • ์‹œ์  (SAVEPOINT , CHECKPOINT) ์ƒํƒœ๋กœ ๋˜๋กค๋ ค์ฃผ๋Š” ์ œ์–ด์–ด(๋ช…๋ น์–ด) ์ด๋‹ค

 

4. ์‚ฌ์› ํ…Œ์ด๋ธ”์ด '์‚ฌ๋ฒˆ' ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด '์‚ฌ๋ฒˆ์ธ๋ฑ์Šค'๋ผ๋Š” ์ธ๋ฑ์Šค ๋ช…์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•œ๋‹ค.

์•Œ๋งž์€ ์ฟผ๋ฆฌ๋ฅผ ์“ฐ์‹œ์˜ค.

CREATE INDEX ์‚ฌ๋ฒˆ์ธ๋ฑ์Šค ON ์‚ฌ์›(์‚ฌ๋ฒˆ);