๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB)

[์ƒˆ๋กœ์“ด ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์†”๋ฃจ์…˜] ์ œ 1๋ถ€ ์—‘์„ธ์Šค ์˜ํ–ฅ ์š”์†Œ์˜ ์ดํ•ด1

rabo93 2025. 5. 12. 11:12

์ œ 1์žฅ ๋ฐ์ดํ„ฐ ์ €์žฅ๊ตฌ์กฐ์™€ ํŠน์ง•

1.1 table, index ๋ถ„๋ฆฌํ˜•

* ๊ด€๊ณ„ํ˜• DB ์ด์ „์—๋Š” Key์˜ ์—ญํ• ์ด ์ค‘์š” (ํ‚ค๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๊ณง ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ)

key๋ฅผ ์—‘์„ธ์Šค ํ•  ๋•Œ, data์˜ ์œ„์น˜๋ฅผ ๋ฐ”๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด? ๊ตณ์ด ํ‚ค ์˜†์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ฌ์•„ ๋‘˜ ํ•„์š” X

key์—์„œ ๋‹ค์‹œ data๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๋ฒˆ๊ฑฐ๋Ÿฌ์›€ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•˜์ง€๋งŒ,

์ผ๋‹จ ์ €์žฅ๋งŒ ํ•œ๋‹ค๋ฉด ์ €์žฅ์‹œ ๋ถ€๋‹ด์€ ๋งค์šฐ ๊ฐ์†Œ, ์ €์žฅ ์‹œ ์ธ๋ฑ์Šค์™€ ๋…๋ฆฝ์ ์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ธ ์žฅ์ ์ด ๋จ!

(์˜ˆ, ์•ผ๊ตฌ์žฅ์— ์•„๋ฌด ์ž๋ฆฌ์—๋ผ๋„ ์•‰์„ ์ˆ˜ ์žˆ์œผ๋ฉด ๋‹ค์ˆ˜ ์‚ฌ๋žŒ๋“ค์ด ์ž…์žฅํ•˜๋”๋ผ๋„ ๊ธฐ๋‹ค๋ ค์•ผํ•˜๋Š” ๋ถ€๋‹ด์€ ์—†์Œ)

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ์ธ๋ฑ์Šค๊ฐ€ ๋ณ„๊ฐœ์˜ ๊ฐ์ฒด๋กœ ์กด์žฌํ•˜๋Š” ์ €์žฅ ํ˜•ํƒœ
  • ๋Œ€์šฉ๋Ÿ‰ ๊ด€๊ณ„ํ˜• DB์˜ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ตฌ์กฐ

 

1.1.1 ๋ถ„๋ฆฌํ˜• ํ…Œ์ด๋ธ” ๊ตฌ์กฐ

์ €์žฅ๋  data๊ฐ€ ๋“ค์–ด ์™”์„ ๋•Œ,

๋ธ”๋ก(block)๋“ค ์ค‘ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๋ธ”๋ก ๋ฐ ์žฌํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋ธ”๋ก์ด ๊ธฐ๋ก๋œ ์‚ฌ์šฉ๋ชฉ๋ก(Free List)์—์„œ

ํ•˜๋‚˜์˜ ๋ธ”๋ก์ด ์„ ํƒ๋˜์–ด data๊ฐ’๊ณผ๋Š” ๋ฌด๊ด€ํ•˜๊ฒŒ ์ €์žฅ๋จ. (์ €์žฅ ์‹œ ๋ถ€ํ•˜๊ฐ€ ๋‚ฎ์ง€๋งŒ, ์—‘์„ธ์Šค ์‹œ ๋ถ€๋‹ด์ด ์ฆ๊ฐ€)

 

block ํ•˜๋‹จ์— 'Free Space'๋Š” ์ƒˆ๋กœ์šด ๋กœ์šฐ๊ฐ€ ๋“ค์–ด์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„์ด ์•„๋‹ˆ๋ผ,

๋กœ์šฐ๋“ค์˜ ๊ธธ์ด์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„

(Table ์ •์˜ ์‹œ ํŒŒ๋ผ๋ฉ”ํƒ€(PCTFREE)๋กœ ์ €์žฅ ๊ฐ€๋Šฅ)

 

 

 

 

DBMS์—์„œ ๋‹ค๋ฃจ๋Š” ๋ฐ์ดํ„ฐ ๋‹จ์œ„ ๋ฐ ๊ฐœ๋…

ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค(Table Space)

- ๋…ผ๋ฆฌ์ ์ธ ์ €์žฅ ๊ณต๊ฐ„

- ex. ์ข…ํ•ฉ์‹œ์„ค์„ ์‹ ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ๋งˆ๋ จํ•œ '๋ถ€์ง€'

- ๋ฌผ๋ฆฌ์ ์ธ ํŒŒ์ผ+ ํŒŒ์ผ (+@)๋กœ ๊ตฌ์„ฑ

 

์„ธ๊ทธ๋จผํŠธ(Segment)

- ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค๋ฅผ ์šฉ๋„๋ณ„๋กœ ๋‚˜๋ˆˆ ๋‹จ์œ„

- ex. '๊ฑด๋ฌผ ๋ถ€์ง€', '์šด๋™์žฅ ๋ถ€์ง€' ๋“ฑ

- ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค

 

์˜ค๋ธŒ์ ํŠธ(Obect)

- ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, ํŒŒํ‹ฐ์…˜์ด ๋ฐœ์ƒํ•œ ํ…Œ์ด๋ธ” ๋“ฑ์ด ๊ฐ๊ฐ์˜ ์˜ค๋ธŒ์ ํŠธ

- ๊ฐœ๋ณ„ ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์ด๋‚˜ ํŒŒํ‹ฐ์…˜๋˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”๋“ค์€ ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ” ์ŠคํŽ˜์ด์Šค์—๋งŒ ์กด์žฌํ•ด์•ผํ•œ๋‹ค

- ex. ๊ฑด๋ฌผ ํ•˜๋‚˜๊ฐ€ ์ „์ฒด์ธ '๋…๋ฆฝ์ฃผํƒ', ๋ถ„ํ• (ํŒŒํ‹ฐ์…˜) ๋œ '์•„ํŒŒํŠธ ํ•œ ๋™' ๋“ฑ

 

ROWID

- '์˜ค๋ธŒ์ ํŠธ ๋ฒˆํ˜ธ' + '๋ฐ์ดํ„ฐํŒŒ์ผ๋ฒˆํ˜ธ(ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค๋‹น ์ผ๋ จ๋ฒˆํ˜ธ)' + '๋ธ”๋ก๋ฒˆํ˜ธ' + '์Šฌ๋กฏ๋ฒˆํ˜ธ' ๋กœ ๊ตฌ์„ฑ

  • ์˜ค๋ธŒ์ ํŠธ ๋ฒˆํ˜ธ(Object number) : DB Segment ์‹๋ณ„ ์ •๋ณด (ํ•ด๋‹น ๋กœ์šฐ๊ฐ€ ์†ํ•ด์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ ๋ฒˆํ˜ธ)
  • ๋ฐ์ดํ„ฐํŒŒ์ผ ๋ฒˆํ˜ธ(Datafile number) : Tablespace์˜ ์ƒ๋Œ€์  Datafile ๋ฒˆํ˜ธ (ํ•ด๋‹น ๋กœ์šฐ๊ฐ€ ์†ํ•ด์žˆ๋Š” ๋ฐ์ดํ„ฐํŒŒ์ผ ๋ฒˆํ˜ธ)
  • ๋ธ”๋ก ๋ฒˆํ˜ธ(Block number) : Row๋ฅผ ํฌํ•จํ•˜๋Š” DataBlock ๋ฒˆํ˜ธ (ํ•ด๋‹น ๋กœ์šฐ๊ฐ€ ์†ํ•ด์žˆ๋Š” ๋ฐ์ดํ„ฐํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก ์ฃผ์†Œ๊ฐ’)
  • ์Šฌ๋กฏ ๋ฒˆํ˜ธ(Slot number) : ๋ฐ์ดํ„ฐ ๋ธ”๋ก ๋‚ด์—์„œ ํ•ด๋‹น ๋กœ์šฐ๊ฐ€ ์œ„์น˜ํ•ด์žˆ๋Š” ์Šฌ๋กฏ ๋ฒˆํ˜ธ(ex. ์ฃผ์†Œ ์šฐํŽธ๋ฒˆํ˜ธ)

- Rowid๋Š” ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ธ๋ฑ์Šค์— ์กด์žฌ

- Rowid๋Š” ๊ตฌ์ฒด์ ์ธ ์œ„์น˜์ •๋ณด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์œ„์น˜๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๋ฐฉ(์Šฌ๋กฏ)์˜ ๋ฒˆํ˜ธ๋งŒ ์กด์žฌ

- ๋”ฐ๋ผ์„œ, ๋ธ”๋ก ๋‚ด์—์„œ ๋กœ์šฐ์˜ ์œ„์น˜๊ฐ€ ์•„๋ฌด๋ฆฌ ์ด๋™ํ•˜๋”๋ผ๋„ Rowid๋Š” ๊ฒฐ์ฝ” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค!

 

 

 

๋ธ”๋Ÿญ ๋‚ด์— ์ €์žฅ๋  ๋กœ์šฐ๊ฐ€ ํ•œ์กฐ๊ฐ(one piece)์ด ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์€ ์žˆ์ง€๋งŒ, ์ด์–ด์ง„ ์กฐ๊ฐ์ด ์—†์–ด ์ €์žฅ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋  ๋•Œ 

์ž๋™์œผ๋กœ ๋ธ”๋ก์˜ ๋กœ์šฐ๋“ค์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ์ž‘์—…์ด ์ผ์–ด๋‚จ

์ด๋ฅผ, ์‘์ถ•(Condensing) ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

๊ธธ์ด๊ฐ€ ์ฆ๊ฐ€ํ•  ํ™•๋ฅ ์€ ๊ทธ๋ฆฌ ๋†’์ง€ ์•Š๋”๋ผ๋„ ์ˆ˜์ •์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋ฉด

๋‹ค์†Œ ์ถฉ๋ถ„ํ•˜๊ฒŒ ์—ฌ์œ ๊ณต๊ฐ„(PCTFREE)์„ ์ง€์ •ํ•ด์ฃผ์ž.

 

์—ฌ์œ ๊ณต๊ฐ„์„ ์ถฉ๋ถ„ํžˆ ๋ถ€์—ฌํ–ˆ๋”๋ผ๋„, ๋ฐœ์ƒํ•œ ๋กœ์šฐ๋“ค์˜ ๊ธธ์ด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ์ปค์ ธ ์‘์ถ•์„ ํ•˜๋”๋ผ๋„ ๋กœ์šฐ์˜ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚  ๋•Œ ๊ฒฐ๊ตญ ๋‹ค๋ฅธ ๋ธ”๋ก์„ ์‚ฌ์šฉํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ๋กœ์šฐ๊ฐ€ ๋‹ค๋ฅธ ๋ธ”๋ก์œผ๋กœ ์ด๋™ = ROWID์˜ ๋ณ€๊ฒฝ

์ด๋ฅผ, ๋กœ์šฐ์˜ ์ด์ฃผ(Migration) ์ด๋ผ๊ณ  ํ•œ๋‹ค.

(= ๋น„์Šทํ•˜๋‚˜ ๋‹ค๋ฅธ ๊ฐœ๋…)

์—ฌ๋Ÿฌ ๋ธ”๋ก์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ ์—์„œ ์ด์ฃผ์™€ ์œ ์‚ฌํ•˜๋‚˜, ์–ด๋–ค ๋กœ์šฐ์˜ ๊ธธ์ด๊ฐ€ ํ•œ๋ธ”๋ก์„ ๋„˜๋Š”๋‹ค๋ฉด ๋‹ค๋ฅธ ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ํ•˜๋‚˜์˜ ๋ธ”๋ก ๋‚ด์—๋Š” ์กด์žฌํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ, 

ํ•„์š”ํ•œ ๊ณต๊ฐ„๋งŒํผ ๋ธ”๋ก์„ ์—ฐ๊ฒฐํ•ด์„œ ์ €์žฅํ•ด์•ผํ•˜๋Š”๋ฐ ์ด๋ฅผ, ์ฒด์ธ(Chain)์ด ๋ฐœ์ƒํ–ˆ๋‹ค๋ผ๊ณ  ํ•œ๋‹ค.