๐Ÿ“š CS [ComputerScience]/๐Ÿชช ์ž๊ฒฉ์ฆ

๐Ÿชช [์ž๊ฒฉ์ฆ] [์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ] ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ

Dbswnstjd 2024. 4. 20. 21:15

๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ตฌ์ถ•

๋ฆด๋ ˆ์ด์…˜ (ํ…Œ์ด๋ธ”)

์†์„ฑ = ํ…Œ์ด๋ธ”์˜ ์—ด (Column)

์ฐจ์ˆ˜ = ์†์„ฑ์˜ ์ˆ˜

ํŠœํ”Œ = ํ…Œ์ด๋ธ”์˜ ํ–‰ (Row)

์นด๋””๋„๋ฆฌํ‹ฐ = ํŠœํ”Œ์˜ ์ˆ˜

 

DDL(Data Definition Language)

Create, Alter, Drop

 

DML(Data Manipulation Language)

SELECT, INSERT, UPDATE, DELETE

 

DCL(Data Control Language)

GRANT, REVOKE, COMMIT, ROLLBACK

 

DISTINCT : ์ค‘๋ณต ์ œ๊ฑฐCASCADE : ๋ถ€๋ชจ ๊ฐ’ ์‚ญ์ œ ์‹œ ์ž์‹๋„ ์‚ญ์ œALTER : ์†์„ฑ ์ถ”๊ฐ€, ์‚ญ์ œ

 

ํ›„๋ณดํ‚ค - ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ ๋งŒ์กฑ

๊ธฐ๋ณธํ‚ค - null ๊ฐ’ ๋ถˆ๊ฐ€, ์ค‘๋ณต x, ์‹๋ณ„์ž

์Šˆํผํ‚ค - ์œ ์ผ์„ฑ ๋งŒ์กฑ, ์ตœ์†Œ์„ฑ x

์™ธ๋ž˜ํ‚ค - ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ‚ค

 

DB ๋ฝ(Locking) - ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•˜๋Š” ๋™์•ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ž ๊ถˆ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ

 

๊ณต์œ  ๋ฝ(Shared Lock)

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

 

๋ฒ ํƒ€ ๋ฝ(Exclusive Lock)

๋ฒ ํƒ€ ๋ฝ์€ ๋ฐ์ดํ„ฐ์— ๋ณ€๊ฒฝ์„ ๊ฐ€ํ•˜๋Š” ์“ฐ๊ธฐ ๋ช…๋ น๋“ค์— ๋Œ€ํ•ด ์ฃผ์–ด์ง€๋Š” ๋ฝ์œผ๋กœ Write Lock ์œผ๋กœ๋„ ๋ถˆ๋ฆฐ๋‹ค. ๋ฒ ํƒ€ ๋ฝ์€ ์ด๋ฆ„๊ณผ ๊ฐ™์ด ๋‹ค๋ฅธ ์„ธ์…˜์ด ํ•ด๋‹น ์ž์›์— ์ ‘๊ทผ(SELECT, INSERT..) ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ์ ์—์„œ ๋ฒ ํƒ€ ๋ฝ์€ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋”ฉ ํ™˜๊ฒฝ์—์„œ, ์ž„๊ณ„ ์˜์—ญ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ™œ์šฉ๋˜๋Š” ๋ฎคํ…์Šค์™€ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

์—…๋ฐ์ดํŠธ ๋ฝ(Update Lock)

์—…๋ฐ์ดํŠธ ๋ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ ํƒ€ ๋ฝ์„ ๊ฑธ๊ธฐ ์ „, ๋ฐ๋“œ ๋ฝ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฝ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋ฝ์€ UPDATE ์ฟผ๋ฆฌ์˜ ํ•„ํ„ฐ(WHERE)๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณผ์ •์— ์ ์šฉ

 

์„œ๋กœ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋™์ผํ•œ ์ž์›์— ๋Œ€ํ•ด ์ฝ๊ธฐ ์ฟผ๋ฆฌ ์ดํ›„, ์—…๋ฐ์ดํŠธ ์ฟผ๋ฆฌ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ปจ๋ฒ„์ ผ ๋ฐ๋“œ๋ฝ์ด ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ SELECT ์ฟผ๋ฆฌ์—์„œ๋„ ์—…๋ฐ์ดํŠธ ๋ฝ์„ ์ ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

 

๋‚ด์žฌ ๋ฝ(Intent Lock)

๋‚ด์žฌ ๋ฝ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ๋ฒ”์œ„์— ๋Œ€ํ•œ ๋ฝ์„ ๊ฑธ ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฝ์ด๋‹ค.

 

ํŠธ๋žœ์žญ์…˜ ํŠน์ง• - ACID

Atomicity ์›์ž์„ฑ  - All or nothing, ์ฆ‰ ๋ชจ๋‘ ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜ ์•„๋ฌด๊ฒƒ๋„ ๋ฐ˜์˜๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ํŠน์ง•

Consistency ์ผ๊ด€์„ฑ - ํŠธ๋žœ์žญ์…˜์˜ ์ž‘์—… ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ์ผ๊ด€์„ฑ ์žˆ์–ด์•ผ ํ•จ

Isolation ๋…๋ฆฝ์„ฑ - ๋‘˜ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๋ณ‘ํ–‰ ์‹คํ–‰๋˜๊ณ  ์žˆ์„ ๋•Œ , ์–ด๋–ค ํŠธ๋žœ์žญ์…˜๋„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜ ์—ฐ์‚ฐ์— ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค. 

Durability ์ง€์†์„ฑ - ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด , ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•œ๋‹ค. 

 

Commitํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋๋‚˜๊ฒŒ ๋˜๋ฉด DB๊ฐ€ ์ผ๊ด€์„ฑ์žˆ๋Š” ์ƒํƒœ์ผ ๋•Œ ์ด๋ฅผ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ

 

Rollback

ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด ํŠธ๋žœ์žญ์…˜ ์›์ž์„ฑ์ด ๊นจ์ง„ ๊ฒฝ์šฐ