1 / 36

Database Systems II Record Organization

Database Systems II Record Organization. Introduction. We have introduced secondary storage devices, in particular disks. Disks use blocks as basic units of transfer and storage. In a DBS, we have to manage entities, typically represented as records with attributes (relational model).

ganya
Download Presentation

Database Systems II Record Organization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Database Systems II Record Organization

  2. Introduction We have introduced secondary storage devices, in particular disks. Disks use blocks as basic units of transfer and storage. In a DBS, we have to manage entities, typically represented as records with attributes (relational model). Attribute values (data items) can be complex: texts, images, videos. How to organize records on disk?

  3. Introduction Data Items Records Blocks Files Memory

  4. Data Items Short Integer, unsigned (16 Bits) e.g., 35 is Short Integer, signed e.g., -35 is 00000000 00100011 25 + 21 + 20 10000000 00100011

  5. Data Items Floating point (32 Bits, single precision)1 bit for sign, m for exponent, n bits for mantissa = 0.15625 1.01 (binary) = 1.25 (decimal) 124 value = (-1)sign x 2exponent – bias x 1.fraction bias = 2m-1-1 = 127

  6. Data Items Characters various coding schemes suggested most popular is ASCII 1 Character = 1 Byte = 8 Bits examples A: 1000001 a: 1100001 5: 0110101 LF: 0001010

  7. c c m m o a a o t u t u 4 s s e e Data Items • String of characters • NULL-terminated • e.g., • length indicator • e.g., • fixed length • do not need terminating NULL or length indicator VARCHAR 3 CHAR

  8. Records Fixed format e.g., relational data model record is list of data items number and type of data items fixedvs. variable format e.g., XML number of data items variable Fixed lengthvs. variable length e.g., VARCHAR, blobs, repeating fields

  9. Records Record header keeps general information about the record. Header contains (some of) the following:- pointer to schema,- record types,- record length (to skip record without consulting schema),- timestamp of last access,- pointers (offsets) to record attributes.

  10. Fixed-Length Records Fixed length records are the simplest format. Header contains only pointer to schema, record length and timestamp. Example (1) id, 2 byte integer (2) name, 10 char. Schema (3) dept, 2 byte code 55 s m i t h 02 Records 83 j o n e s 01

  11. header birthdate name address fixed variable Variable-Length Records Variable length records first store fixed length fields, followed by variable-length fields. Header contains also pointers (offsets) to variable-length fields (except first one). NULL values can be efficently represented by null pointers in the header.

  12. Variable Format Records Variable format records are self-describing. Simplest representation as sequence of tagged fields. Record header contains number of fields. Tag contains- attribute name,- attribute type,- field length (if not apparent from attribute type).

  13. 2 5 I 46 4 S 4 F O R D Variable Format Records Example # Fields Code identifying field as E# Integer type Value Code for EName String type Length of str. Value

  14. Packing Records Into Blocks Introduction How to pack records into blocks? Need to address the following issues - separating records, - spanned vs. unspanned, - mixing record types, - ordering records, - addressing records, - BLOBs.

  15. Packing Records Into Blocks Separating records for fixed-length records, no need to separate for variable-length records use special marker or store record lengths (or offsets) - within each record - in block header

  16. Packing Records Into Blocks Spanned vs. unspanned Unspanned records on a single block block 1 block 2 Spanned records split into fragmentsthat are distributed over multiple blocks block 1 block 2 R1 R2 R3 R4 R5 R1 R2 R3 (a) R3 (b) R4 R5 R6 R7 (a)

  17. 2050 bytes wasted 2046 2050 bytes wasted 2046 R1 R2 Packing Records Into Blocks Spanned vs. unspanned Spanning necessary if records do not fit in a block, e.g. if they have very long fields (VARCHAR, blob). Spanning useful for better space utilization, even if records fit in a block.

  18. Packing Records Into Blocks Spanned vs. unspanned Spanned records requires extra header information in records and record fragments:- is it fragment? (bit)- if fragment, is it first or last? (bit)- if applicable, pointers to previous/next fragment.

  19. Packing Records Into Blocks Mixing record types • Can we mix records of different types (relations)in same block? • Why should we? • Records that are frequently accessed together should be in the same block (clustering). • Compromise: no mixing on same block, but keep related records in same cylinder. EMP e1 DEPT d1 DEPT d2

  20. Packing Records Into Blocks Ordering records Want to efficiently read records in order Ordering records in file and block by some key value (sequential file) Implementation options - next record physically contiguous - link to next record R1 Next (R1) R1 Next (R1)

  21. header R2.1 R1.3 R4.7 Packing Records Into Blocks Ordering records Overflow area R1 R2 records in sequence R3 R4 R5  links more flexible under modifications, but require random I/O

  22. Packing Records Into Blocks Addressing records In memory records have virtual memory address. How to address a record on disk? Trade-off between efficiency of dereferencing and flexibility in moving records over time Many options, from purely physical to fully indirect (logical)

  23. Packing Records Into Blocks Addressing records Purely physical direct address on disk Record address (record ID) consists of cylinder # track # block # offset in block efficient access, but cannot move record within block or across blocks

  24. Packing Records Into Blocks Addressing records • Fully indirect (logical) address (record ID) can be any bit string, needs to be mapped to physical address  inefficient access, but can move record anywhere map Rec ID Physical addr. Typically ≤ 8 Bytes Often 8-16 Bytes!

  25. Packing Records Into Blocks Addressing records • Indirection in block  compromise between physical and fully indirect Header Free space R3 offsets R4 R1 R2

  26. Packing Records Into Blocks BLOBs Sometimes, very large data items, e.g. images, videos,. . . Store them as Binary Large Objects (BLOBs) Stored as spanned sequence of blocks- preferably contiguous on disk,- possibly even striped over several disks.

  27. Record Modifications Insertions If record order does not matter, just append record to file, i.e. find a block of that file with empty space. If order does matter, may be more complicated. First locate corresponding block. If block has enough space left, insert record there and rearrange records in block.

  28. Record Modifications Insertions Ifblock does not have enough space left, use one of the two following strategies:- find space in nearby block predecessor or successor in sort order - create overflow block and link it into chain of blocks only if order implemented by links

  29. Record Modifications Insertions • Overflow blocks raise the following issues: • How much free space to leave in each block, track, cylinder? • How often to reorganize file and overflow area? Free space

  30. Record Modifications Deletions Try to reclaim space. Either move around records within a block or maintain available-space list. Must avoid dangling pointers to deleted records. Typical approach: place tombstone in place of deleted record.

  31. physical record IDs This space This space can never re-used be re-used Record Modifications Deletions

  32. Record Modifications Deletions logical record IDs map ID LOC Never reuse ID 7788 nor space in map... 7788

  33. DB Buffer Management Introduction The part of the DB relevant for the current transactions needs to reside in memory, i.e. in the DB buffer. BUFFER POOL disk block free frame MAIN MEMORY DISK choice of frame dictated by replacement policy

  34. Buffer Management Block request If requested block is not in buffer pool, choose a frame for replacement. If this frame is dirty, write it to disk. Read requested page into chosen frame. Pin the page and return its address.

  35. Buffer Management Block replacement Requestor of page must unpin it, as soon as block is no longer needed. Requestor must also indicate whether block has been modified: dirty bit is used for this. Block in pool may be requested many times, and a pin count is used. Block is candidate for replacement if and only if pin count = 0.

  36. Buffer Management Replacement policy Frame is chosen for replacement by a replacement policy:- Least-recently-used (LRU), - Clock, efficient approximation of LRU- Most-recently-used (MRU) etc. Policy can have big impact on number of I/O’s, depends on the access pattern. Will discuss more in the context of query optimization.

More Related