Presentation is loading. Please wait.

Presentation is loading. Please wait.

HW3: Heap-File Page Instructors: Winston Hsu, Hao-Hua Chu Fall 2010 This document is supplementary document that was created by referring Minibase Project.

Similar presentations


Presentation on theme: "HW3: Heap-File Page Instructors: Winston Hsu, Hao-Hua Chu Fall 2010 This document is supplementary document that was created by referring Minibase Project."— Presentation transcript:

1 HW3: Heap-File Page Instructors: Winston Hsu, Hao-Hua Chu Fall 2010 This document is supplementary document that was created by referring Minibase Project of Univ. of Wisconsin The slide refers to http://dblab.kaist.ac.kr/Course/minibase/

2 Architecture of a DBMS Query Query Optimization and Execution DB Relation Operators File and Access Methods Buffer Management Disk Space Management

3 Minibase Relational Database Management System (RDBMS) – made by Wisconsin University for educational purpose Independent implementation of each component is possible – No pain to implementing whole DBMS – Suitable to understand the internal architecture of DBMS Components – Parser / Optimizer / Query Processor/ Heap file / B+-tree index / Buffer pool manager / Disk space management system

4 Heap-File Page Simple Heap-File Page Structure – Heap-File Page consists of page information, data area and slot array. – Data area in a Heap-File Page is always compacted. – We assume that the supported record data type is only character. Operations – Insert / Delete a record in a heap-file page – Get a first / next record id – Get the data / pointer of a record – Get some information

5 HFPage Structure Page Information short slotCnt; short freePtr; short freeSpace; short type; PageId prevPage; PageId nextPage; PageId curPage; Data Area slot[0] …… record……… ……… ……… …… // -1 if EMPTY SLOT short length; // offset from data[0] short offset; freePtr

6 insertRecord(case 1) Page Information Data Area slot[0] … empty record…… …… … Page Information Data Area slot[0] … Inserted slot record…… …… … Inserted record …………

7 insertRecord(case 2) Page Information Data Area slot[0] … record…… ……… Page Information Data Area slot[0] … Inserted slot record…… ……… Inserted record …………

8 deleteRecord Page Information Data Area slot[0] … record… … Removed slot …… … Page Information Data Area slot[0] … record… … empty … … … Removed record

9 exchangeRecord Page Information Data Area slot[0] … ABC… … slot[2] …ABCDE … Page Information Data Area … …… … slot[2] slot[0] ABC … … ABCDE … …

10 Return Values of APIs Status insertRecord(char *recPtr, int recLen, RID& rid); – If there is not enough space for new record, return DONE Status firstRecord(RID& firstRid); – If there is no record in Page, return DONE Status nextRecord (RID curRid, RID& nextRid); – If there is no next record in Page, return DONE Others – if slotNo or pageNo of a record Id and input parameters are not appropriate, return FAIL

11 Other int HFPage::available_space(void) – sizeof(slot_t) bytes must be reserved for a new slot and cannot be used by a new record. freePtr specifies the offset of the first free bytes in data[] – Insert from it – Modify it when deleting Check the output with sample_output – “dumpPage, this: 0x7fffbcf7fa20” is a pointer value. Ignore it. – diff your_output sample_output If there are any questions, you can post them on ptt.cc / CSIE_DBMS.

12 All You have to do hfpage.C

13 Try and Test wget http://mll.csie.ntu.edu.tw/course/database_f 10/assignment/hfpage09.tar.gz tar -xvvzf hfpage09.tar.gz make hfpage test_driver.C – Test code file


Download ppt "HW3: Heap-File Page Instructors: Winston Hsu, Hao-Hua Chu Fall 2010 This document is supplementary document that was created by referring Minibase Project."

Similar presentations


Ads by Google