๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ„ฐ๋””/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

[CS186] Introduction to Database Systems - Week 2

by moon101 2023. 5. 6.

โ›… Disk, Buffer, Files โ›…

1. Memory and Disk

 

https://cs186berkeley.net/resources/static/notes/n03-DisksFiles.pdf

 

Disk Space Management

  • DBMS์˜ ๊ฐ€์žฅ ๋ฐ‘์— ์žˆ๋Š” ๊ณ„์ธต์ด๋ฉฐ, ๋””์Šคํฌ์˜ ๊ณต๊ฐ„์„ ๊ด€๋ฆฌํ•œ๋‹ค

Disk Space Management๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์œ„์— ์œ„์น˜ํ•˜๊ณ  ์žˆ๋‹ค

 

2. Files, Pages, Records

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„๋Š” record(row)์ด๋‹ค
  • ๋ฆด๋ ˆ์ด์…˜(ํ…Œ์ด๋ธ”)๋“ค์€ ์ด๋Ÿฐ records๋“ค๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ์— ์ˆ˜์ •, ์‚ญ์ œ, ๊ฒ€์ƒ‰ ๋˜๋Š” ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

 

  • ๋””์Šคํฌ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„๋Š” page์ด๋ฉฐ, ๋””์Šคํฌ์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ์ตœ์†Œ ์ „์†ก ๋‹จ์œ„์ด๋‹ค
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋””์Šคํฌ์™€ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด, ๊ฐ ๋ฆด๋ ˆ์ด์…˜์€ ๋ณ„๋„์˜ ํŒŒ์ผ์— ์ €์žฅ๋˜๋ฉฐ, records๋Š” ํŒŒ์ผ์•ˆ์˜ pages๋กœ ๊ตฌ์„ฑ๋œ๋‹ค
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฆด๋ ˆ์ด์…˜์˜ ์Šคํ‚ค๋งˆ์™€ ์ ‘๊ทผ ํŒจํ„ด์— ๋”ฐ๋ผ ์•„๋ž˜ 4๊ฐ€์ง€ ๋‚ด์šฉ์„ ๊ฒฐ์ •ํ•œ๋‹ค
    • 1. ์–ด๋–ค ํ˜•์‹์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ๊ฑด์ง€
    • 2. ์–ด๋–ป๊ฒŒ pages๋ฅผ ํŒŒ์ผ ๋‚ด์— ๊ตฌ์„ฑํ•  ๊ฑด์ง€
    • 3. ์–ด๋–ป๊ฒŒ records๋ฅผ ๊ฐ page์— ๊ตฌ์„ฑํ•  ๊ฑด์ง€
    • 4. ์–ด๋–ป๊ฒŒ ๊ฐ record๊ฐ€ ๊ตฌ์„ฑ๋  ๊ฑด์ง€

์™ผ์ชฝ์˜ ๋ฆด๋ ˆ์ด์…˜์€ ์˜ค๋ฅธ์ชฝ์˜ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค

 

3. Choosing File Types

  • 2๊ฐ€์ง€์˜ ์ฃผ์š” ํŒŒ์ผ ํƒ€์ž…์ด ์žˆ๋‹ค: Heap Files๊ณผ Sorted Files
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ฐ๊ฐ์˜ ํ…Œ์ด๋ธ”์— ์–ด๋–ค ํŒŒ์ผ ํƒ€์ž…์„ ์‚ฌ์šฉํ•  ๊ฑด์ง€ ๋ฆด๋ ˆ์ด์…˜์˜ ์ ‘๊ทผ ํŒจํ„ด์˜ I/O ๋น„์šฉ์— ๊ทผ๊ฑฐํ•˜์—ฌ ์„ ํƒํ•œ๋‹ค
  • 1 I/O = 1 page read from disk || 1 page write to disk

 

4. Heap File

  • heap file์€ pages์˜ ์ •ํ•ด์ง„ ์ˆœ์„œ๊ฐ€ ์—†๋Š” ๋˜๋Š” records on pages์˜ ํŠน๋ณ„ํ•œ ์ˆœ์„œ๊ฐ€ ์—†๋Š” ํŒŒ์ผ ํƒ€์ž…์ด๋‹ค 
  • sorted file๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ์‚ฝ์ž… ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค
  • ๋‹จ, ์ˆœ์„œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์—๋Š” ๋งค๋ฒˆ full scan์ด ํ•„์š”ํ•˜๋‹ค. ์ฆ‰, ๊ฒ€์ƒ‰์˜ ๊ฒฝ์šฐ N I/Os์˜ linear ๋น„์šฉ์ด ๋“ ๋‹ค

4.1 Linked List Implementation

  • ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„์—์„œ๋Š” ๊ฐ๊ฐ์˜ data page๋Š” 1. records์™€ 2. free space tracker, 3. ๋‹ค์Œ๊ณผ ์ด์ „ page์— ๋Œ€ํ•œ pointers(byte offsets)๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค
  • ํ•˜๋‚˜์˜ header page๋Š” ํŒŒ์ผ์˜ ์‹œ์ž‘์  ์—ญํ• ์„ ํ•˜๋ฉฐ, data pages๋ฅผ full pages์™€ free pages๋กœ ๋ถ€ํ„ฐ ๋ถ„๋ฆฌํ•œ๋‹ค

 

4.2 Page Directory Implementation

  • page directory ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์€ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ header pages์—๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์—์„œ linked list implementation๊ณผ ๋‹ค๋ฅด๋‹ค
  • ๊ฐ๊ฐ์˜ header page๋Š” ํŒŒ์ผ์˜ data page์— ์–ผ๋งˆ ๋งŒํผ์˜ ๊ณต๊ฐ„์ด ๋‚จ์•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ records๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ linked lists๋ณด๋‹ค page directories๊ฐ€ ๋” ๋น ๋ฅด๋‹ค

 

5. Sorted File

  • pages๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ๊ณ  ๊ฐ ํŽ˜์ด์ง€์˜ records๋Š” ํ‚ค๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ํŒŒ์ผ ํƒ€์ž…์ด๋‹ค
  • ๊ฒ€์ƒ‰์—๋Š” logN I/Os ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค(binary search๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ). ์—ฌ๊ธฐ์„œ N์€ ํŽ˜์ด์ง€์˜ ๊ฐœ์ˆ˜์ด๋‹ค
  • ์‚ฝ์ž…์€ ํ‰๊ท ์ ์œผ๋กœ logN + N I/Os๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค

 

7. Record Types

  • record ํƒ€์ž…์˜ ๊ฒฝ์šฐ ๋ฆด๋ ˆ์ด์…˜์˜ ์Šคํ‚ค๋งˆ์— ์˜ํ•ด ๊ฒฐ์ •๋˜๋ฉฐ, 2๊ฐ€์ง€์˜ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค
  • 1. Fixed Length Records(FLR) 
    • ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๋ฐ”์ดํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค (์˜ˆ: integers, boolean, date, etc)
    • FLR์˜ ๋™์ผํ•œ ์Šคํ‚ค๋งˆ๋Š” ๋™์ผํ•œ ์ˆ˜์˜ ๋ฐ”์ดํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
  • 2. Variable Length Records(VLR)
    • ๊ณ ์ •๋œ ๊ธธ์ด ํ•„๋“œ์™€ ๊ฐ€๋ณ€ ๊ธธ์ด ํ•„๋“œ (์˜ˆ: varchar) ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ์Šคํ‚ค๋งˆ์˜ VLR์ด๋ผ๋„ ๋‹ค๋ฅธ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 
    • VLR์€ ๊ฐ€๋ณ€ ๊ธธ์ด ํ•„๋“œ์˜ ๋์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” record header๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ณ ์ • ๊ธธ์ด ํ•„๋“œ๋Š” ๊ฐ€๋ณ€ ๊ธธ์ด ํ•„๋“œ๊ฐ€ ์ €์žฅ๋˜๊ธฐ ์ „์— ์ €์žฅ๋œ๋‹ค

 

8. Page Formats

8.2 Page with Variable Length Records

  • ๊ฐ ํŽ˜์ด์ง€๋Š” page footer๋ฅผ ์‚ฌ์šฉํ•ด slot directory๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค
  • slot directory๋Š” slot count, free space pointer, ๊ทธ๋ฆฌ๊ณ  entries๋ฅผ ์ถ”์ ํ•œ๋‹ค
  • slot directory์˜ ๊ฐ entry๋Š” [record pointer, record length] ํŽ˜์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค

 

 

 

 

CS186 ์‚ฌ์ดํŠธ

https://cs186berkeley.net/

๋Œ“๊ธ€