Storage and Indexing, Part I

Size: px
Start display at page:

Download "Storage and Indexing, Part I"

Transcription

1 Storage and Indexing, Part I Computer Science E-66 Harvard University David G. Sullivan, Ph.D. Accessing the Disk Data is arranged on disk in units called blocks. typically fairly large (e.g., 4K or 8K) Relatively speaking, disk I/O is very expensive. in the time it takes to read a single disk block, the processor could be executing millions of instructions! The DBMS tries to minimize the number of disk accesses.

2 Review: DBMS Architecture A DBMS can be viewed as a composition of two layers. At the bottom is the storage layer or storage engine, which takes care of storing and retrieving the data. logical layer storage engine Above that is the logical layer, which provides an abstract representation of the data. OS disks FS Logical-to-Physical Mapping The logical layer implements a mapping between: the logical schema of a database its physical representation logical layer storage engine OS FS In the relational model, the schema includes: attributes/columns, including their types tuples/rows relations/tables disks To be model-neutral, we'll use these terms instead: field for an individual data value record for a group of fields collection for a group of records

3 Logical-to-Physical Mapping (cont.) A DBMS may use the filesystem, or it may bypass it and use its own disk manager. logical layer storage engine OS FS In either case, a DBMS may use units called pages that have a different size than the block size. can be helpful in performance tuning disks Logical-to-Physical Mapping (cont.) Need to consider several different issues: how to map logical records to their physical representation how to organize records on a page how to organize collections of pages called files, which may or may not correspond to OS files including the use of index structures what metadata is needed and where should it be stored? example: the types and lengths of the fields may need both per-record and per-collection metadata

4 Fixed- or Variable-Length Records? This choice depends on: the types of fields that the records contain the number of fields per record, and whether it can vary Simple case: use fixed-length records when all fields are fixed-length (e.g., CHAR or INTEGER), there is a fixed number of fields per record Fixed- or Variable-Length Records? (cont.) The choice is less straightforward when you have either: variable-length fields (e.g., VARCHAR) a variable number of fields per record (e.g., in XML) Two options: 1. fixed-length records: always allocate comp sci the maximum possible length math plusses and minuses: + less metadata is needed, because: every record has the same length a given field is in a consistent position within all records + changing a field's value doesn't change the record's length thus, changes never necessitate moving the record we waste space when a record has fields shorter than their max length, or is missing fields

5 Fixed- or Variable-Length Records? (cont.) 2. variable-length records: only allocate the space that each record actually needs plusses and minuses: comp sci math more metadata is needed in order to: determine the boundaries between records determine the locations of the fields in a given record changing a field's value can change the record's length thus, we may need to move the record + we don't waste space when a record has fields shorter than their max length, or is missing fields Format of Fixed-Length Records With fixed-length records, the fields can be stored consecutively. If a fixed-length record contains a variable-length field, we allocate the max. length and store the actual length. field 1 field 2 field comp sci# math# comp sci math 125 O 2 O 3 OR To find the position of a field, use per-collection metadata. typically store the offset of each field how many bytes the field is from the start of the record (see O 2 and O 3 above)

6 Format of Variable-Length Records With variable-length records, we need per-record metadata to determine the locations of the fields. For simplicity, we ll assume all records in a given collection have the same # of fields. We'll look at how the following record would be stored: CHAR(7) VARCHAR(20) INT (' ', 'comp sci', 200) assumptions: each character in a string takes up 1 byte each integer takes up 4 bytes, including both: the integers in the data (e.g., the 200 above) any integer metadata offsets, field lengths, etc. Format of Variable-Length Records (cont.) We'll consider three types of operations: 1. finding/extracting the value of a single field SELECT dob FROM Person WHERE name = 'Julianne Moore'; 2. updating the value of a single field its length may become smaller or larger 3. adding a new field to end of each record (e.g., adding a new column to a table)

7 Format of Variable-Length Records (cont.) Option 1: Terminate field values with a special delimiter character. CHAR(7) VARCHAR(20) INT # comp sci # 200 # 1. finding/extracting the value of a single field this is very inefficient; need to scan byte-by-byte to: find the start of the field we re looking for determine the length of its value (if it is variable-length) 2. updating the value of a single field if it changes in size, we need to shift the values after it, but we don't need to change their metadata 3. adding a new field to the end of each record no need to change the existing field values or metadata Format of Variable-Length Records (cont.) Option 2: Precede each field by its length. CHAR(7) VARCHAR(20) INT comp sci finding/extracting the value of a single field this is more efficient can jump over fields, rather than scanning byte-by-byte (but may need to perform multiple jumps) never need to scan to determine the length of a value 2. updating the value of a single field same as option 1 3. adding a new field to the end of each record same as option 1

8 Format of Variable-Length Records (cont.) Option 3: Put offsets and other metadata in a record header. # of bytes from the start of the record comp sci 200 record header computing the offsets 3 fields in record 4 offsets, each of which is a 4-byte int thus, the offsets take up 4*4 = 16 bytes offset[0] = 16, because field[0] comes right after the header offset[1] = 16 + len(' ') = = 23 offset[2] = 23 + len('comp sci') = = 31 offset[3] = offset of the end of the record = (since 200 an int) = 35 We store this offset because it may be needed to compute the length of a field's value! Format of Variable-Length Records (cont.) Option 3 (cont.) comp sci finding/extracting the value of a single field this representation is the most efficient. it allows us to: jump directly to the field we're interested in compute its length without scanning through its value 2. updating the value of a single field less efficient than options 1 and 2 if the field's length changes. need to shift subsequent values and recompute their offsets. 3. adding a new field to the end of each record need to recompute all offsets in all records. why?

9 Format of Variable-Length Records (cont.) Option 3 (cont.) comp sci finding/extracting the value of a single field this representation is the most efficient. it allows us to: jump directly to the field we're interested in compute its length without scanning through its value 2. updating the value of a single field less efficient than options 1 and 2 if the field's length changes. need to shift subsequent values and recompute their offsets. 3. adding a new field to the end of each record need to recompute all offsets in all records. why? adding a new field makes the header longer and thus moves all fields! we can avoid this by: putting the field offsets at the end of the record putting an offset to the field offsets at the start comp sci Representing Null Values Option 1: add an "out-of-band" value for every data type con: need to increase the size of most data types, or reduce the range of possible values Option 2: use per-record metadata 2a: for some fields, a length of 0 could indicate NULL when wouldn't this work? ( 2b: add additional metadata to the record to track nulls con: waste spaces in collections with few null values 2c: if using an array of offsets, use a special offset (e.g., 0 or -1) comp sci

10 Representing Null Values Option 1: add an "out-of-band" value for every data type con: need to increase the size of most data types, or reduce the range of possible values Option 2: use per-record metadata 2a: for some fields, a length of 0 could indicate NULL when wouldn't this work? ( strings (need to allow for empty strings); fixed-length fields for which we don't store the length 2b: add additional metadata to the record to track nulls con: waste spaces in collections with few null values 2c: if using an array of offsets, use a special offset (e.g., 0 or -1) comp sci Practice: Which is the correct record header? We're inserting the following row into a simplified Movie table: CHAR(7) VARCHAR(64) INT VARCHAR(5) INT (' ', 'Moonlight', 111, 'R', NULL) and we're using: -1 for NULL the same assumptions about data types as before A. B. C. D E. none of these

11 Which is the correct record header? We're inserting the following row into a simplified Movie table: CHAR(7) VARCHAR(64) INT VARCHAR(5) INT (' ', 'Moonlight', 111, 'R', NULL) and we're using: -1 for NULL the same assumptions about data types as before A. B columns in table 6 offsets the offsets take up 6*4 = 24 bytes C. D E. none of these Which is the correct record header? We're inserting the following row into a simplified Movie table: CHAR(7) VARCHAR(64) INT VARCHAR(5) INT (' ', 'Moonlight', 111, 'R', NULL) and we're using: -1 for NULL the same assumptions about data types as before A. B. C columns in table 6 offsets the offsets take up 6*4 = 24 bytes thus, offset[0] = 24 D E. none of these

12 Which is the correct record header? We're inserting the following row into a simplified Movie table: CHAR(7) VARCHAR(64) INT VARCHAR(5) INT (' ', 'Moonlight', 111, 'R', NULL) and we're using: -1 for NULL the same assumptions about data types as before A. B. C Moonlight columns in table 6 offsets the offsets take up 6*4 = 24 bytes thus, offset[0] = 24 offset[1] = 24 + len(' ') = 31 D E. none of these Which is the correct record header? We're inserting the following row into a simplified Movie table: CHAR(7) VARCHAR(64) INT VARCHAR(5) INT (' ', 'Moonlight', 111, 'R', NULL) and we're using: -1 for NULL the same assumptions about data types as before A. B. C. D Moonlight E. none of these 5 columns in table 6 offsets the offsets take up 6*4 = 24 bytes thus, offset[0] = 24 offset[1] = 24 + len(' ') = 31 offset[2] = 31 + len('moonlight') = 40

13 Which is the correct record header? We're inserting the following row into a simplified Movie table: CHAR(7) VARCHAR(64) INT VARCHAR(5) INT (' ', 'Moonlight', 111, 'R', NULL) and we're using: -1 for NULL the same assumptions about data types as before A. B. C. D Moonlight 111 R E. none of these 5 columns in table 6 offsets the offsets take up 6*4 = 24 bytes thus, offset[0] = 24 offset[1] = 24 + len(' ') = 31 offset[2] = 31 + len('moonlight') = 40 offset[3] = (for an int) = 44 Which is the correct record header? We're inserting the following row into a simplified Movie table: CHAR(7) VARCHAR(64) INT VARCHAR(5) INT (' ', 'Moonlight', 111, 'R', NULL) and we're using: -1 for NULL the same assumptions about data types as before A. B. C. D Moonlight 111 R E. none of these 5 columns in table 6 offsets the offsets take up 6*4 = 24 bytes thus, offset[0] = 24 offset[1] = 24 + len(' ') = 31 offset[2] = 31 + len('moonlight') = 40 offset[3] = (for an int) = 44 offset[4] = -1 for NULL

14 Which is the correct record header? We're inserting the following row into a simplified Movie table: CHAR(7) VARCHAR(64) INT VARCHAR(5) INT (' ', 'Moonlight', 111, 'R', NULL) and we're using: -1 for NULL the same assumptions about data types as before A. B. C. D Moonlight 111 R E. none of these 5 columns in table 6 offsets the offsets take up 6*4 = 24 bytes thus, offset[0] = 24 offset[1] = 24 + len(' ') = 31 offset[2] = 31 + len('moonlight') = 40 offset[3] = (for an int) = 44 offset[4] = -1 for NULL offset[5] = end of record = 44 + len('r') = 45 Page Format: How to Group Records Together Recall that records are grouped together on pages. Each record must have a record ID or rid that allows us to: find the page that the record is on find the location of the record on that page We will again consider different schemes for fixed-length and variable-length records.

15 Page Format with Fixed-Length Records Can use a fairly simple scheme: let b = the length of each record in bytes the maximum # of records per page is known as the fill factor, f = page_size / b ex: 4K pages, b = 512 bytes f = 4096/512 = 8 page 0 0: page 1 0: Use simple math to find any record. ex: find rid 13 page # = rid / f = 13 / 8 = 1 index on page, i = rid % f = 13 % 8 = 5 offset from start of page = i * b = 5 * 512 = 2560 bytes Can we move a record to a different location on the same page? 1: 2: 3: 4: 5: 6: 7: 1: 2: 3: 4: 5: rid 13 6: 7:

16 Page Format with Fixed-Length Records Can use a fairly simple scheme: let b = the length of each record in bytes the maximum # of records per page is known as the fill factor, f = page_size / b ex: 4K pages, b = 512 bytes f = 4096/512 = 8 page 0 0: page 1 0: Use simple math to find any record. ex: find rid 13 page # = rid / f = 13 / 8 = 1 index on page, i = rid % f = 13 % 8 = 5 offset from start of page = i * b = 5 * 512 = 2560 bytes Can we move a record to a different location on the same page? no. that changes the rid, which may be stored elsewhere 1: 2: 3: 4: 5: 6: 7: 1: 2: 3: 4: 5: rid 13 6: 7: Page Format with Fixed-Length Records (cont.) To deal with deletions and insertions: add a bit to each record indicating whether it's been deleted so that it won't be visited during scans of all records when inserting, use a free list: store the location of the first "empty" record (either never used or deleted) in a special header page each empty record points to the next one

17 Page Format with Variable-Length Records The fixed-length scheme breaks down because: we don t know how many records will fit on a page the offsets of records on a page will vary from page to page One possible approach: let rid = (page #, offset within page) problem: can t move a record without changing its rid when would we need to move it? when an update changes its size 0: 70 bytes 1: 80 bytes to make room for other records 0: 50 bytes 20 bytes 1: 60 bytes 20 bytes example: what if record 0 is updated and is now 100 bytes? example: record 0: bytes record 1: bytes we have 40 free bytes, but can t use them for records larger than 20 unless we move rec 1 Page Format with Variable-Length Records (cont.) A better approach: add a header an array of offsets to each page rid = (page #, index into offset array) when we move a record on the page, we change its offset but we don t change its rid! page 10: (10, 0) (10, 2) (10, 1) record (10, 1) grows in size (10, 0) (10, 1) (10, 2)

18 Page Format with Variable-Length Records (cont.) Problem: how large an offset array should we preallocate? Solution: don t preallocate! start adding records at the end of the page and work backwards toward the beginning doing so allows us to grow the offset array as needed page 10: 0 page 10: 0 1 (10, 0) (10, 0) (10, 1) page 10: (10, 0) (10, 2) (10, 1) Other Issues If a record becomes too large to fit on a page: move it to another page put its new location in the offset-array entry given by its rid (10, 0) (10, 1) (10, 2) (10, 2) grows page 10: page 35: , 0 (10, 0) (10, 1) (10, 2) If a record is too large to fit on any page, we can put it in one or more special pages called overflow pages. If a record is deleted, we put a special value in its offset-array entry so that scans through the collection will not try to access it. The page header needs to include info. that can be used to determine where the free space is on the page.

19 Database Files A logical collection of database pages is referred to as a file. may or may not correspond to an OS file The DBMS needs to manage the pages within a given file: keeping track of all used pages, to support scans through all records in the collection keeping track of unused pages and/or used pages with some free space, to support efficient insertions Index Structures An index structure stores (key, data) pairs. also known as a dictionary or map we will sometimes refer to the (key, data) pairs as items The index allows us to more efficiently access a given record. quickly find it based on a particular field instead of scanning through the entire collection to find it A given collection of records may have multiple index structures: one clustered or primary index some number of unclustered or secondary indices

20 Clustered/Primary Index The clustered index is the one that stores the full records. also known as a primary index, because it is typically based on the primary key If the records are stored outside of an index structure, the resulting file is sometimes called a heap file. managed somewhat like the heap memory region Unclustered/Secondary Indices In addition to the clustered/primary index, there can be one or more unclustered indices based on other fields. also known as secondary indices Example: Customer(id, name, street, city, state, zip) primary index: (key, data) = (id, all of the remaining fields) a secondary index to enable quick searches by name (key, data) = (name, id) does not include the other fields! We need two lookups when we start with the secondary index. example: looking for Ted Codd's zip code search for 'Ted Codd' in the secondary index '123456' (his id) search for '123456' in the primary index his full record, including his zip code

Unit 3 Disk Scheduling, Records, Files, Metadata

Unit 3 Disk Scheduling, Records, Files, Metadata Unit 3 Disk Scheduling, Records, Files, Metadata Based on Ramakrishnan & Gehrke (text) : Sections 9.3-9.3.2 & 9.5-9.7.2 (pages 316-318 and 324-333); Sections 8.2-8.2.2 (pages 274-278); Section 12.1 (pages

More information

Lecture Data layout on disk. How to store relations (tables) in disk blocks. By Marina Barsky Winter 2016, University of Toronto

Lecture Data layout on disk. How to store relations (tables) in disk blocks. By Marina Barsky Winter 2016, University of Toronto Lecture 01.04 Data layout on disk How to store relations (tables) in disk blocks By Marina Barsky Winter 2016, University of Toronto How do we map tables to disk blocks Relation, or table: schema + collection

More information

Implementing a Logical-to-Physical Mapping, Part II

Implementing a Logical-to-Physical Mapping, Part II Implementing a Logical-to-Physical Mapping, Part II Computer Science E-66 Harvard University David G. Sullivan, Ph.D. Recall: Marshalling the Data When inserting a row, we need to turn a collection of

More information

CS220 Database Systems. File Organization

CS220 Database Systems. File Organization CS220 Database Systems File Organization Slides from G. Kollios Boston University and UC Berkeley 1.1 Context Database app Query Optimization and Execution Relational Operators Access Methods Buffer Management

More information

CS 222/122C Fall 2016, Midterm Exam

CS 222/122C Fall 2016, Midterm Exam STUDENT NAME: STUDENT ID: Instructions: CS 222/122C Fall 2016, Midterm Exam Principles of Data Management Department of Computer Science, UC Irvine Prof. Chen Li (Max. Points: 100) This exam has six (6)

More information

CS 405G: Introduction to Database Systems. Storage

CS 405G: Introduction to Database Systems. Storage CS 405G: Introduction to Database Systems Storage It s all about disks! Outline That s why we always draw databases as And why the single most important metric in database processing is the number of disk

More information

QUIZ: Is either set of attributes a superkey? A candidate key? Source:

QUIZ: Is either set of attributes a superkey? A candidate key? Source: QUIZ: Is either set of attributes a superkey? A candidate key? Source: http://courses.cs.washington.edu/courses/cse444/06wi/lectures/lecture09.pdf 10.1 QUIZ: MVD What MVDs can you spot in this table? Source:

More information

RAID in Practice, Overview of Indexing

RAID in Practice, Overview of Indexing RAID in Practice, Overview of Indexing CS634 Lecture 4, Feb 04 2014 Slides based on Database Management Systems 3 rd ed, Ramakrishnan and Gehrke 1 Disks and Files: RAID in practice For a big enterprise

More information

FILE SYSTEM IMPLEMENTATION. Sunu Wibirama

FILE SYSTEM IMPLEMENTATION. Sunu Wibirama FILE SYSTEM IMPLEMENTATION Sunu Wibirama File-System Structure Outline File-System Implementation Directory Implementation Allocation Methods Free-Space Management Discussion File-System Structure Outline

More information

COMP 530: Operating Systems File Systems: Fundamentals

COMP 530: Operating Systems File Systems: Fundamentals File Systems: Fundamentals Don Porter Portions courtesy Emmett Witchel 1 Files What is a file? A named collection of related information recorded on secondary storage (e.g., disks) File attributes Name,

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals: Part II Lecture 10, February 17, 2014 Mohammad Hammoud Last Session: DBMS Internals- Part I Today Today s Session: DBMS Internals- Part II Brief summaries

More information

STORING DATA: DISK AND FILES

STORING DATA: DISK AND FILES STORING DATA: DISK AND FILES CS 564- Fall 2016 ACKs: Dan Suciu, Jignesh Patel, AnHai Doan MANAGING DISK SPACE The disk space is organized into files Files are made up of pages s contain records 2 FILE

More information

Disks & Files. Yanlei Diao UMass Amherst. Slides Courtesy of R. Ramakrishnan and J. Gehrke

Disks & Files. Yanlei Diao UMass Amherst. Slides Courtesy of R. Ramakrishnan and J. Gehrke Disks & Files Yanlei Diao UMass Amherst Slides Courtesy of R. Ramakrishnan and J. Gehrke DBMS Architecture Query Parser Query Rewriter Query Optimizer Query Executor Lock Manager for Concurrency Access

More information

CAS CS 460/660 Introduction to Database Systems. File Organization and Indexing

CAS CS 460/660 Introduction to Database Systems. File Organization and Indexing CAS CS 460/660 Introduction to Database Systems File Organization and Indexing Slides from UC Berkeley 1.1 Review: Files, Pages, Records Abstraction of stored data is files of records. Records live on

More information

Announcements. Reading Material. Recap. Today 9/17/17. Storage (contd. from Lecture 6)

Announcements. Reading Material. Recap. Today 9/17/17. Storage (contd. from Lecture 6) CompSci 16 Intensive Computing Systems Lecture 7 Storage and Index Instructor: Sudeepa Roy Announcements HW1 deadline this week: Due on 09/21 (Thurs), 11: pm, no late days Project proposal deadline: Preliminary

More information

Managing Storage: Above the Hardware

Managing Storage: Above the Hardware Managing Storage: Above the Hardware 1 Where we are Last time: hardware HDDs and SSDs Today: how the DBMS uses the hardware to provide fast access to data 2 How DBMS manages storage "Bottom" two layers

More information

Semistructured Data and XML

Semistructured Data and XML Semistructured Data and XML Computer Science E-66 Harvard University David G. Sullivan, Ph.D. Structured Data The logical models we've covered thus far all use some type of schema to define the structure

More information

Storage hierarchy. Textbook: chapters 11, 12, and 13

Storage hierarchy. Textbook: chapters 11, 12, and 13 Storage hierarchy Cache Main memory Disk Tape Very fast Fast Slower Slow Very small Small Bigger Very big (KB) (MB) (GB) (TB) Built-in Expensive Cheap Dirt cheap Disks: data is stored on concentric circular

More information

L9: Storage Manager Physical Data Organization

L9: Storage Manager Physical Data Organization L9: Storage Manager Physical Data Organization Disks and files Record and file organization Indexing Tree-based index: B+-tree Hash-based index c.f. Fig 1.3 in [RG] and Fig 2.3 in [EN] Functional Components

More information

Indexing. Jan Chomicki University at Buffalo. Jan Chomicki () Indexing 1 / 25

Indexing. Jan Chomicki University at Buffalo. Jan Chomicki () Indexing 1 / 25 Indexing Jan Chomicki University at Buffalo Jan Chomicki () Indexing 1 / 25 Storage hierarchy Cache Main memory Disk Tape Very fast Fast Slower Slow (nanosec) (10 nanosec) (millisec) (sec) Very small Small

More information

File Systems: Fundamentals

File Systems: Fundamentals File Systems: Fundamentals 1 Files! What is a file? Ø A named collection of related information recorded on secondary storage (e.g., disks)! File attributes Ø Name, type, location, size, protection, creator,

More information

Review 1-- Storing Data: Disks and Files

Review 1-- Storing Data: Disks and Files Review 1-- Storing Data: Disks and Files Chapter 9 [Sections 9.1-9.7: Ramakrishnan & Gehrke (Text)] AND (Chapter 11 [Sections 11.1, 11.3, 11.6, 11.7: Garcia-Molina et al. (R2)] OR Chapter 2 [Sections 2.1,

More information

Disks, Memories & Buffer Management

Disks, Memories & Buffer Management Disks, Memories & Buffer Management The two offices of memory are collection and distribution. - Samuel Johnson CS3223 - Storage 1 What does a DBMS Store? Relations Actual data Indexes Data structures

More information

Search Trees. Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Binary Search Trees

Search Trees. Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Binary Search Trees Unit 9, Part 2 Search Trees Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Binary Search Trees Search-tree property: for each node k: all nodes in k s left subtree are < k all nodes

More information

Context. File Organizations and Indexing. Cost Model for Analysis. Alternative File Organizations. Some Assumptions in the Analysis.

Context. File Organizations and Indexing. Cost Model for Analysis. Alternative File Organizations. Some Assumptions in the Analysis. File Organizations and Indexing Context R&G Chapter 8 "If you don't find it in the index, look very carefully through the entire catalogue." -- Sears, Roebuck, and Co., Consumer's Guide, 1897 Query Optimization

More information

Review: Memory, Disks, & Files. File Organizations and Indexing. Today: File Storage. Alternative File Organizations. Cost Model for Analysis

Review: Memory, Disks, & Files. File Organizations and Indexing. Today: File Storage. Alternative File Organizations. Cost Model for Analysis File Organizations and Indexing Review: Memory, Disks, & Files Lecture 4 R&G Chapter 8 "If you don't find it in the index, look very carefully through the entire catalogue." -- Sears, Roebuck, and Co.,

More information

Classifying Physical Storage Media. Chapter 11: Storage and File Structure. Storage Hierarchy (Cont.) Storage Hierarchy. Magnetic Hard Disk Mechanism

Classifying Physical Storage Media. Chapter 11: Storage and File Structure. Storage Hierarchy (Cont.) Storage Hierarchy. Magnetic Hard Disk Mechanism Chapter 11: Storage and File Structure Overview of Storage Media Magnetic Disks Characteristics RAID Database Buffers Structure of Records Organizing Records within Files Data-Dictionary Storage Classifying

More information

Classifying Physical Storage Media. Chapter 11: Storage and File Structure. Storage Hierarchy. Storage Hierarchy (Cont.) Speed

Classifying Physical Storage Media. Chapter 11: Storage and File Structure. Storage Hierarchy. Storage Hierarchy (Cont.) Speed Chapter 11: Storage and File Structure Overview of Storage Media Magnetic Disks Characteristics RAID Database Buffers Structure of Records Organizing Records within Files Data-Dictionary Storage Classifying

More information

Chapter 3: Database Components

Chapter 3: Database Components 3. Database Components 3-1 DBA Certification Course (Summer 2008) Chapter 3: Database Components Tablespaces Buffer Pools Schemas Catalog 3. Database Components 3-2 Objectives After completing this chapter,

More information

Database Systems II. Record Organization

Database Systems II. Record Organization Database Systems II Record Organization CMPT 454, Simon Fraser University, Fall 2009, Martin Ester 75 Introduction We have introduced secondary storage devices, in particular disks. Disks use blocks as

More information

Data Storage and Query Answering. Data Storage and Disk Structure (4)

Data Storage and Query Answering. Data Storage and Disk Structure (4) Data Storage and Query Answering Data Storage and Disk Structure (4) Introduction We have introduced secondary storage devices, in particular disks. Disks use blocks as basic units of transfer and storage.

More information

File System Implementation. Sunu Wibirama

File System Implementation. Sunu Wibirama File System Implementation Sunu Wibirama File-System Structure Outline File-System Implementation Directory Implementation Allocation Methods Free-Space Management Discussion File System Structure File

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals: Part II Lecture 11, February 17, 2015 Mohammad Hammoud Last Session: DBMS Internals- Part I Today Today s Session: DBMS Internals- Part II A Brief Summary

More information

Implementing a Logical-to-Physical Mapping

Implementing a Logical-to-Physical Mapping Implementing a Logical-to-Physical Mapping Computer Science E-66 Harvard University David G. Sullivan, Ph.D. Logical-to-Physical Mapping Recall our earlier diagram of a DBMS, which divides it into two

More information

Storing Data: Disks and Files

Storing Data: Disks and Files Storing Data: Disks and Files Chapter 9 CSE 4411: Database Management Systems 1 Disks and Files DBMS stores information on ( 'hard ') disks. This has major implications for DBMS design! READ: transfer

More information

Binary Trees and Huffman Encoding Binary Search Trees

Binary Trees and Huffman Encoding Binary Search Trees Binary Trees and Huffman Encoding Binary Search Trees Computer Science E-22 Harvard Extension School David G. Sullivan, Ph.D. Motivation: Maintaining a Sorted Collection of Data A data dictionary is a

More information

Principles of Data Management. Lecture #3 (Managing Files of Records)

Principles of Data Management. Lecture #3 (Managing Files of Records) Principles of Management Lecture #3 (Managing Files of Records) Instructor: Mike Carey mjcarey@ics.uci.edu base Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Today s Topics v Today should fill

More information

Data on External Storage

Data on External Storage Advanced Topics in DBMS Ch-1: Overview of Storage and Indexing By Syed khutubddin Ahmed Assistant Professor Dept. of MCA Reva Institute of Technology & mgmt. Data on External Storage Prg1 Prg2 Prg3 DBMS

More information

DATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11

DATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11 DATABASE PERFORMANCE AND INDEXES CS121: Relational Databases Fall 2017 Lecture 11 Database Performance 2 Many situations where query performance needs to be improved e.g. as data size grows, query performance

More information

Storing Data: Disks and Files

Storing Data: Disks and Files Storing Data: Disks and Files Module 2, Lecture 1 Yea, from the table of my memory I ll wipe away all trivial fond records. -- Shakespeare, Hamlet Database Management Systems, R. Ramakrishnan 1 Disks and

More information

Requirements, Partitioning, paging, and segmentation

Requirements, Partitioning, paging, and segmentation Requirements, Partitioning, paging, and segmentation Main Memory: The Big Picture kernel memory proc struct kernel stack/u area Stack kernel stack/u area Stack kernel stack/u area Stack Data Text (shared)

More information

Database Technology. Topic 7: Data Structures for Databases. Olaf Hartig.

Database Technology. Topic 7: Data Structures for Databases. Olaf Hartig. Topic 7: Data Structures for Databases Olaf Hartig olaf.hartig@liu.se Database System 2 Storage Hierarchy Traditional Storage Hierarchy CPU Cache memory Main memory Primary storage Disk Tape Secondary

More information

Kathleen Durant PhD Northeastern University CS Indexes

Kathleen Durant PhD Northeastern University CS Indexes Kathleen Durant PhD Northeastern University CS 3200 Indexes Outline for the day Index definition Types of indexes B+ trees ISAM Hash index Choosing indexed fields Indexes in InnoDB 2 Indexes A typical

More information

Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory.

Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory. Memory Management Page 1 Memory Management Wednesday, October 27, 2004 4:54 AM Memory Management: The process by which memory is shared, allocated, and released. Not applicable to cache memory. Two kinds

More information

File Systems: Fundamentals

File Systems: Fundamentals 1 Files Fundamental Ontology of File Systems File Systems: Fundamentals What is a file? Ø A named collection of related information recorded on secondary storage (e.g., disks) File attributes Ø Name, type,

More information

CSE 544 Principles of Database Management Systems

CSE 544 Principles of Database Management Systems CSE 544 Principles of Database Management Systems Alvin Cheung Fall 2015 Lecture 5 - DBMS Architecture and Indexing 1 Announcements HW1 is due next Thursday How is it going? Projects: Proposals are due

More information

Chapter 11: Indexing and Hashing" Chapter 11: Indexing and Hashing"

Chapter 11: Indexing and Hashing Chapter 11: Indexing and Hashing Chapter 11: Indexing and Hashing" Database System Concepts, 6 th Ed.! Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use " Chapter 11: Indexing and Hashing" Basic Concepts!

More information

Database design and implementation CMPSCI 645. Lecture 08: Storage and Indexing

Database design and implementation CMPSCI 645. Lecture 08: Storage and Indexing Database design and implementation CMPSCI 645 Lecture 08: Storage and Indexing 1 Where is the data and how to get to it? DB 2 DBMS architecture Query Parser Query Rewriter Query Op=mizer Query Executor

More information

Computer Science E-66 Introduction Database Design and ER Models The Relational Model

Computer Science E-66 Introduction Database Design and ER Models The Relational Model Computer Science E-66 Introduction Database Design and ER Models The Relational Model Harvard Extension School David G. Sullivan, Ph.D. Welcome to CSCI E-66! This is a course on databases, but it s also

More information

Chapter 11: Indexing and Hashing

Chapter 11: Indexing and Hashing Chapter 11: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

Chapter 11: Implementing File Systems. Operating System Concepts 8 th Edition,

Chapter 11: Implementing File Systems. Operating System Concepts 8 th Edition, Chapter 11: Implementing File Systems, Silberschatz, Galvin and Gagne 2009 Chapter 11: Implementing File Systems File-System Structure File-System Implementation Directory Implementation Allocation Methods

More information

InnoDB Compression Present and Future. Nizameddin Ordulu Justin Tolmer Database

InnoDB Compression Present and Future. Nizameddin Ordulu Justin Tolmer Database InnoDB Compression Present and Future Nizameddin Ordulu nizam.ordulu@fb.com, Justin Tolmer jtolmer@fb.com Database Engineering @Facebook Agenda InnoDB Compression Overview Adaptive Padding Compression

More information

Modern Database Systems Lecture 1

Modern Database Systems Lecture 1 Modern Database Systems Lecture 1 Aristides Gionis Michael Mathioudakis T.A.: Orestis Kostakis Spring 2016 logistics assignment will be up by Monday (you will receive email) due Feb 12 th if you re not

More information

Chapter 12: Indexing and Hashing. Basic Concepts

Chapter 12: Indexing and Hashing. Basic Concepts Chapter 12: Indexing and Hashing! Basic Concepts! Ordered Indices! B+-Tree Index Files! B-Tree Index Files! Static Hashing! Dynamic Hashing! Comparison of Ordered Indexing and Hashing! Index Definition

More information

Chapter 5: Physical Database Design. Designing Physical Files

Chapter 5: Physical Database Design. Designing Physical Files Chapter 5: Physical Database Design Designing Physical Files Technique for physically arranging records of a file on secondary storage File Organizations Sequential (Fig. 5-7a): the most efficient with

More information

Organization of Records in Blocks

Organization of Records in Blocks Organization of Records in Blocks Read Sec. 4.2 Riguzzi et al. Sistemi Informativi Slides derived from those by Hector Garcia-Molina 1 Topic How to lay out records on blocks 2 What are the data items we

More information

CPSC 421 Database Management Systems. Lecture 11: Storage and File Organization

CPSC 421 Database Management Systems. Lecture 11: Storage and File Organization CPSC 421 Database Management Systems Lecture 11: Storage and File Organization * Some material adapted from R. Ramakrishnan, L. Delcambre, and B. Ludaescher Today s Agenda Start on Database Internals:

More information

NOTE: sorting using B-trees to be assigned for reading after we cover B-trees.

NOTE: sorting using B-trees to be assigned for reading after we cover B-trees. External Sorting Chapter 13 (Sec. 13-1-13.5): Ramakrishnan & Gehrke and Chapter 11 (Sec. 11.4-11.5): G-M et al. (R2) OR Chapter 2 (Sec. 2.4-2.5): Garcia-et Molina al. (R1) NOTE: sorting using B-trees to

More information

CSE 444 Homework 1 Relational Algebra, Heap Files, and Buffer Manager. Name: Question Points Score Total: 50

CSE 444 Homework 1 Relational Algebra, Heap Files, and Buffer Manager. Name: Question Points Score Total: 50 CSE 444 Homework 1 Relational Algebra, Heap Files, and Buffer Manager Name: Question Points Score 1 10 2 15 3 25 Total: 50 1 1 Simple SQL and Relational Algebra Review 1. (10 points) When a user (or application)

More information

switch case Logic Syntax Basics Functionality Rules Nested switch switch case Comp Sci 1570 Introduction to C++

switch case Logic Syntax Basics Functionality Rules Nested switch switch case Comp Sci 1570 Introduction to C++ Comp Sci 1570 Introduction to C++ Outline 1 Outline 1 Outline 1 switch ( e x p r e s s i o n ) { case c o n s t a n t 1 : group of statements 1; break ; case c o n s t a n t 2 : group of statements 2;

More information

Representing Data Elements

Representing Data Elements Representing Data Elements Week 10 and 14, Spring 2005 Edited by M. Naci Akkøk, 5.3.2004, 3.3.2005 Contains slides from 18.3.2002 by Hector Garcia-Molina, Vera Goebel INF3100/INF4100 Database Systems Page

More information

Chapter 12: Indexing and Hashing

Chapter 12: Indexing and Hashing Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B+-Tree Index Files B-Tree Index Files Static Hashing Dynamic Hashing Comparison of Ordered Indexing and Hashing Index Definition in SQL

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2017 Lecture 25 File Systems Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 FAQ Q 2 Data and Metadata

More information

Parser. Select R.text from Report R, Weather W where W.image.rain() and W.city = R.city and W.date = R.date and R.text.

Parser. Select R.text from Report R, Weather W where W.image.rain() and W.city = R.city and W.date = R.date and R.text. Select R.text from Report R, Weather W where W.image.rain() and W.city = R.city and W.date = R.date and R.text. Lifecycle of an SQL Query CSE 190D base System Implementation Arun Kumar Query Query Result

More information

CSE 190D Database System Implementation

CSE 190D Database System Implementation CSE 190D Database System Implementation Arun Kumar Topic 1: Data Storage, Buffer Management, and File Organization Chapters 8 and 9 (except 8.5.4 and 9.2) of Cow Book Slide ACKs: Jignesh Patel, Paris Koutris

More information

Indexing. Chapter 8, 10, 11. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Indexing. Chapter 8, 10, 11. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Indexing Chapter 8, 10, 11 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Tree-Based Indexing The data entries are arranged in sorted order by search key value. A hierarchical search

More information

Relational Algebra and SQL

Relational Algebra and SQL Relational Algebra and SQL Computer Science E-66 Harvard University David G. Sullivan, Ph.D. Example Domain: a University We ll use relations from a university database. four relations that store info.

More information

Storing Data: Disks and Files. Storing and Retrieving Data. Why Not Store Everything in Main Memory? Chapter 7

Storing Data: Disks and Files. Storing and Retrieving Data. Why Not Store Everything in Main Memory? Chapter 7 Storing : Disks and Files Chapter 7 base Management Systems, R. Ramakrishnan and J. Gehrke 1 Storing and Retrieving base Management Systems need to: Store large volumes of data Store data reliably (so

More information

Recovery and Logging

Recovery and Logging Recovery and Logging Computer Science E-66 Harvard University David G. Sullivan, Ph.D. Review: ACID Properties A transaction has the following ACID properties: Atomicity: either all of its changes take

More information

Storing Data: Disks and Files

Storing Data: Disks and Files Storing Data: Disks and Files Chapter 9 Yea, from the table of my memory I ll wipe away all trivial fond records. -- Shakespeare, Hamlet Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Disks

More information

Current Topics in OS Research. So, what s hot?

Current Topics in OS Research. So, what s hot? Current Topics in OS Research COMP7840 OSDI Current OS Research 0 So, what s hot? Operating systems have been around for a long time in many forms for different types of devices It is normally general

More information

Storing and Retrieving Data. Storing Data: Disks and Files. Solution 1: Techniques for making disks faster. Disks. Why Not Store Everything in Tapes?

Storing and Retrieving Data. Storing Data: Disks and Files. Solution 1: Techniques for making disks faster. Disks. Why Not Store Everything in Tapes? Storing and Retrieving Storing : Disks and Files Chapter 9 base Management Systems need to: Store large volumes of data Store data reliably (so that data is not lost!) Retrieve data efficiently Alternatives

More information

Run-time Environments. Lecture 13. Prof. Alex Aiken Original Slides (Modified by Prof. Vijay Ganesh) Lecture 13

Run-time Environments. Lecture 13. Prof. Alex Aiken Original Slides (Modified by Prof. Vijay Ganesh) Lecture 13 Run-time Environments Lecture 13 by Prof. Vijay Ganesh) Lecture 13 1 What have we covered so far? We have covered the front-end phases Lexical analysis (Lexer, regular expressions,...) Parsing (CFG, Top-down,

More information

Why Is This Important? Overview of Storage and Indexing. Components of a Disk. Data on External Storage. Accessing a Disk Page. Records on a Disk Page

Why Is This Important? Overview of Storage and Indexing. Components of a Disk. Data on External Storage. Accessing a Disk Page. Records on a Disk Page Why Is This Important? Overview of Storage and Indexing Chapter 8 DB performance depends on time it takes to get the data from storage system and time to process Choosing the right index for faster access

More information

Storage and File Structure

Storage and File Structure C H A P T E R 10 Storage and File Structure Practice Exercises 10.1 Answer: This arrangement has the problem that P i and B 4i 3 are on the same disk. So if that disk fails, reconstruction of B 4i 3 is

More information

Midterm 1: CS186, Spring I. Storage: Disk, Files, Buffers [11 points] SOLUTION. cs186-

Midterm 1: CS186, Spring I. Storage: Disk, Files, Buffers [11 points] SOLUTION. cs186- Midterm 1: CS186, Spring 2016 Name: Class Login: SOLUTION cs186- You should receive 1 double-sided answer sheet and an 10-page exam. Mark your name and login on both sides of the answer sheet, and in the

More information

Disks and Files. Storage Structures Introduction Chapter 8 (3 rd edition) Why Not Store Everything in Main Memory?

Disks and Files. Storage Structures Introduction Chapter 8 (3 rd edition) Why Not Store Everything in Main Memory? Why Not Store Everything in Main Memory? Storage Structures Introduction Chapter 8 (3 rd edition) Sharma Chakravarthy UT Arlington sharma@cse.uta.edu base Management Systems: Sharma Chakravarthy Costs

More information

Outlines. Chapter 2 Storage Structure. Structure of a DBMS (with some simplification) Structure of a DBMS (with some simplification)

Outlines. Chapter 2 Storage Structure. Structure of a DBMS (with some simplification) Structure of a DBMS (with some simplification) Outlines Chapter 2 Storage Structure Instructor: Churee Techawut 1) Structure of a DBMS 2) The memory hierarchy 3) Magnetic tapes 4) Magnetic disks 5) RAID 6) Disk space management 7) Buffer management

More information

Abstract Data Types and Data Structures

Abstract Data Types and Data Structures Unit 6, Part 1 Abstract Data Types and Data Structures Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Congrats on completing the first half! In the second half, we will study fundamental

More information

CSE544: Principles of Database Systems. Lectures 5-6 Database Architecture Storage and Indexes

CSE544: Principles of Database Systems. Lectures 5-6 Database Architecture Storage and Indexes CSE544: Principles of Database Systems Lectures 5-6 Database Architecture Storage and Indexes 1 Announcements Project Choose a topic. Set limited goals! Sign up (doodle) to meet with me this week Homework

More information

File. File System Implementation. File Metadata. File System Implementation. Direct Memory Access Cont. Hardware background: Direct Memory Access

File. File System Implementation. File Metadata. File System Implementation. Direct Memory Access Cont. Hardware background: Direct Memory Access File File System Implementation Operating Systems Hebrew University Spring 2009 Sequence of bytes, with no structure as far as the operating system is concerned. The only operations are to read and write

More information

Oracle on RAID. RAID in Practice, Overview of Indexing. High-end RAID Example, continued. Disks and Files: RAID in practice. Gluing RAIDs together

Oracle on RAID. RAID in Practice, Overview of Indexing. High-end RAID Example, continued. Disks and Files: RAID in practice. Gluing RAIDs together RAID in Practice, Overview of Indexing CS634 Lecture 4, Feb 04 2014 Oracle on RAID As most Oracle DBAs know, rules of thumb can be misleading but here goes: If you can afford it, use RAID 1+0 for all your

More information

Deep Dive: Pronto Transformations Reference

Deep Dive: Pronto Transformations Reference Deep Dive: Pronto Transformations Reference Available Transformations and Their Icons Transform Description Menu Icon Add Column on page 2 Important: Not available in Trial. Upgrade to Pro Edition! Add

More information

Chapter 11: Storage and File Structure. Silberschatz, Korth and Sudarshan Updated by Bird and Tanin

Chapter 11: Storage and File Structure. Silberschatz, Korth and Sudarshan Updated by Bird and Tanin Chapter 11: Storage and File Structure Storage Hierarchy 11.2 Storage Hierarchy (Cont.) primary storage: Fastest media but volatile (cache, main memory). secondary storage: next level in hierarchy, non-volatile,

More information

CMSC 424 Database design Lecture 13 Storage: Files. Mihai Pop

CMSC 424 Database design Lecture 13 Storage: Files. Mihai Pop CMSC 424 Database design Lecture 13 Storage: Files Mihai Pop Recap Databases are stored on disk cheaper than memory non-volatile (survive power loss) large capacity Operating systems are designed for general

More information

Types II. Hwansoo Han

Types II. Hwansoo Han Types II Hwansoo Han Arrays Most common and important composite data types Homogeneous elements, unlike records Fortran77 requires element type be scalar Elements can be any type (Fortran90, etc.) A mapping

More information

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2009 Lecture 6 - Storage and Indexing

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2009 Lecture 6 - Storage and Indexing CSE 544 Principles of Database Management Systems Magdalena Balazinska Winter 2009 Lecture 6 - Storage and Indexing References Generalized Search Trees for Database Systems. J. M. Hellerstein, J. F. Naughton

More information

Balanced Search Trees

Balanced Search Trees Balanced Search Trees Computer Science E-22 Harvard Extension School David G. Sullivan, Ph.D. Review: Balanced Trees A tree is balanced if, for each node, the node s subtrees have the same height or have

More information

Inputs. Decisions. Leads to

Inputs. Decisions. Leads to Chapter 6: Physical Database Design and Performance Modern Database Management 9 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Heikki Topi 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Objectives

More information

Chapter Five Physical Database Design

Chapter Five Physical Database Design Chapter Five Physical Database Design 1 Objectives Understand Purpose of physical database design Describe the physical database design process Choose storage formats for attributes Describe indexes and

More information

Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See for conditions on re-use

Database System Concepts, 6 th Ed. Silberschatz, Korth and Sudarshan See  for conditions on re-use Chapter 11: Indexing and Hashing Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 12: Indexing and Hashing Basic Concepts Ordered Indices B + -Tree Index Files Static

More information

Physical Database Design

Physical Database Design Physical Database Design These slides are mostly taken verbatim, or with minor changes, from those prepared by Stephen Hegner (http://www.cs.umu.se/ hegner/) of Umeå University Physical Database Design

More information

File Management. Marc s s first try, Please don t t sue me.

File Management. Marc s s first try, Please don t t sue me. File Management Marc s s first try, Please don t t sue me. Introduction Files Long-term existence Can be temporally decoupled from applications Sharable between processes Can be structured to the task

More information

ECE 598 Advanced Operating Systems Lecture 10

ECE 598 Advanced Operating Systems Lecture 10 ECE 598 Advanced Operating Systems Lecture 10 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 17 February 2015 Announcements Homework #1 and #2 grades, HW#3 Coming soon 1 Various

More information

Physical Database Design: Outline

Physical Database Design: Outline Physical Database Design: Outline File Organization Fixed size records Variable size records Mapping Records to Files Heap Sequentially Hashing Clustered Buffer Management Indexes (Trees and Hashing) Single-level

More information

Run-time Environments

Run-time Environments Run-time Environments Status We have so far covered the front-end phases Lexical analysis Parsing Semantic analysis Next come the back-end phases Code generation Optimization Register allocation Instruction

More information

Midterm 1: CS186, Spring I. Storage: Disk, Files, Buffers [11 points] cs186-

Midterm 1: CS186, Spring I. Storage: Disk, Files, Buffers [11 points] cs186- Midterm 1: CS186, Spring 2016 Name: Class Login: cs186- You should receive 1 double-sided answer sheet and an 11-page exam. Mark your name and login on both sides of the answer sheet, and in the blanks

More information

Run-time Environments

Run-time Environments Run-time Environments Status We have so far covered the front-end phases Lexical analysis Parsing Semantic analysis Next come the back-end phases Code generation Optimization Register allocation Instruction

More information

Storing Data: Disks and Files. Storing and Retrieving Data. Why Not Store Everything in Main Memory? Database Management Systems need to:

Storing Data: Disks and Files. Storing and Retrieving Data. Why Not Store Everything in Main Memory? Database Management Systems need to: Storing : Disks and Files base Management System, R. Ramakrishnan and J. Gehrke 1 Storing and Retrieving base Management Systems need to: Store large volumes of data Store data reliably (so that data is

More information

Information Systems (Informationssysteme)

Information Systems (Informationssysteme) Information Systems (Informationssysteme) Jens Teubner, TU Dortmund jens.teubner@cs.tu-dortmund.de Summer 2018 c Jens Teubner Information Systems Summer 2018 1 Part IX B-Trees c Jens Teubner Information

More information