Files Indexing

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Files Indexing as PDF for free.

More details

  • Words: 2,613
  • Pages: 9
Review: Memory, Disks

File Organizations and Indexing

• Storage Hierarchy: cache, RAM, disk, tape, … – Can’t fit everything in RAM (usually).

• “Page” or “Frame” - unit of buffer management in RAM.

15-415 R&G Chapter 8

• “Page” or “Block” unit of interaction with disk. • Importance of “locality” and sequential access for good disk performance. • Buffer pool management – Slots in RAM to hold Pages – Policy to move Pages between RAM & disk Faloutsos, Olston

CMU SCS 15-415

Files

Review: File Storage • Page or block is OK when doing I/O, but higher levels of DBMS operate on records, and files of records.

• FILE: A collection of pages, each containing a collection of records. • Must support:

• We saw:

– insert/delete/modify record

– How to organize records within pages.

– read a particular record (specified using record id)

– How to keep pages of records on disk

– scan all records (possibly with some conditions on the records to be retrieved)

• Today we’ll see: – How to support operations on files of records efficiently. Faloutsos, Olston

2

CMU SCS 15-415

3

Alternative File Organizations

Faloutsos, Olston

CMU SCS 15-415

4

How to find records quickly?

Many alternatives exist, each good for some

• E.g., student.gpa = ‘3’

situations, and not so good in others: – Heap files: Suitable when typical access is a file scan retrieving all records.

Q: On a heap organization, with B blocks,

– Sorted Files: Best for retrieval in some order, or for retrieving a `range’ of records.

how many disk accesses?

– Index File Organizations: (will cover shortly..)

Faloutsos, Olston

CMU SCS 15-415

5

Faloutsos, Olston

CMU SCS 15-415

6

1

Heap File Implemented Using Lists

How to find records quickly? • E.g., student.gpa = ‘3’

Data Page

Data Page

Data Page

Full Pages

Q: On a heap organization, with B blocks,

Header Page Data Page

Data Page

Data Page

how many disk accesses? Pages with Free Space

A: B

• The header page id and Heap file name must be stored someplace. • Each page contains 2 `pointers’ plus data. Faloutsos, Olston

CMU SCS 15-415

7

How to accelerate searches?

Faloutsos, Olston

8

CMU SCS 15-415

Example: Simple Index on GPA

• A: Indices, like:

Directory 2

2.5

3

3.5

Data entries: 1.2* 1.7* 1.8* 1.9*

2.7* 2.7* 2.9*

2.2* 2.4*

3.2* 3.3* 3.3*

3.6* 3.8* 3.9* 4.0* (Index File) (Data file)

Data Records

Faloutsos, Olston

CMU SCS 15-415

9

Indexes

An index contains a collection of data entries, and supports efficient retrieval of records matching a given search condition Faloutsos, Olston

CMU SCS 15-415

10

Index Search Conditions

• Sometimes, we want to retrieve records by specifying the values in one or more fields, e.g., – Find all students in the “CS” department – Find all students with a gpa > 3 • An index on a file speeds up selections on the search key fields for the index. – Any subset of the fields of a relation can be the search key for an index on the relation. – Search key is not the same as key (e.g., doesn’t have to be unique).

• Search condition =

<search key, comparison operator> Examples… (1) Condition: Department = “CS” – Search key: “CS” – Comparison operator: equality (=)

(2) Condition: GPA > 3 – Search key: 3 – Comparison operator: greater-than (>)

Faloutsos, Olston

CMU SCS 15-415

11

Faloutsos, Olston

CMU SCS 15-415

12

2

Index Classification - high level

Index Classification - high level

• Primary vs. Secondary

• Primary vs. Secondary

– depending whether the index key is primary or not (= duplicates or not)

• Clustered vs. Unclustered (~ sparse vs dense)

– depending whether the index key is primary or not (= duplicates or not)

• Clustered vs. Unclustered (~ sparse vs dense) • (B-tree-like index vs hash index)

Faloutsos, Olston

13

CMU SCS 15-415

Indexing - clustering index example

Faloutsos, Olston

Indexing - non-clustering

Clustering/sparse index on ssn 123 456

Non-clustering / dense index 123 234 345 456 567

>=123

… STUDENT Ssn Name 123 smith 234 jones 345 tomson 456 stevens 567 smith

>=456

Faloutsos, Olston

14

CMU SCS 15-415

Address main str forbes ave main str forbes ave forbes ave

CMU SCS 15-415

15

Index Classification - detailed

Faloutsos, Olston

Ssn 345 234 567 456 123

Name tomson jones smith stevens smith

Address main str forbes ave forbes ave forbes ave main str

CMU SCS 15-415

16

Details

• Representation of data entries in index – i.e., what is at the bottom of the index?

• ‘data entries’ == what we store at the bottom of the index pages

– 3 alternatives here

• what would you use as data entries?

• Clustered vs. Unclustered • Primary vs. Secondary • Dense vs. Sparse • Single Key vs. Composite • Indexing technique – Tree-based, hash-based, other Faloutsos, Olston

CMU SCS 15-415

17

Faloutsos, Olston

CMU SCS 15-415

18

3

Alternatives for Data Entry k* in Index

Example: Simple Index on GPA

1. Actual data record (with key value k) Directory 2

2.5

3

2. 3.

3.5

Data entries: 1.2* 1.7* 1.8* 1.9*

2.2* 2.4*

2.7* 2.7* 2.9*

3.2* 3.3* 3.3*

3.6* 3.8* 3.9* 4.0* (Index File) (Data file)

Data Records

An index contains a collection of data entries, and supports efficient retrieval of records matching a given search condition Faloutsos, Olston

CMU SCS 15-415

19

Alternatives for Data Entry k* in Index

20

Alternative 1:

Actual data record (with key value k)

3. • Choice is orthogonal to the indexing technique. – Examples of indexing techniques: B+ trees, hash-based structures, R trees, … – Typically, index contains auxiliary info that directs searches to the desired data entries

– If this is used, index structure is a file organization for data records (like Heap files or sorted files). – At most one index on a given collection of data records can use Alternative 1. – This alternative saves pointer lookups but can be expensive to maintain with insertions and deletions.

• Can have multiple (different) indexes per file. – E.g. file sorted on age, with a hash index on name and a B+tree index on salary. CMU SCS 15-415

CMU SCS 15-415

Alternatives for Data Entries (Contd.)

1. Actual data record (with key value k) 2.

Faloutsos, Olston

Faloutsos, Olston

21

Alternatives for Data Entries (Contd.)

Faloutsos, Olston

CMU SCS 15-415

22

BREAK: World’s Largest Databases

Alternative 2

and Alternative 3

– Easier to maintain than Alternative 1. – If more than one index is required on a given file, at most one index can use Alternative 1; rest must use Alternatives 2 or 3. – Alternative 3 more compact than Alternative 2, but leads to variable sized data entries even if search keys are of fixed length. – Even worse, for large rid lists the data entry would have to span multiple pages! Faloutsos, Olston

CMU SCS 15-415

23

Faloutsos, Olston

CMU SCS 15-415

24

4

Where were we?: Index Classification

Indexing - clustering index example

• Representation of data entries in index

Clustering/sparse index on ssn

– i.e., what is at the bottom of the index?

123 456

– 3 alternatives here

>=123



• Clustered vs. Unclustered

STUDENT Name Ssn 123 smith 234 jones 345 tomson 456 stevens 567 smith

• Primary vs. Secondary >=456

• Dense vs. Sparse • Single Key vs. Composite • Indexing technique

Address main str forbes ave main str forbes ave forbes ave

– Tree-based, hash-based, other Faloutsos, Olston

25

CMU SCS 15-415

Indexing - non-clustering

Ssn 345 234 567 456 123

Name tomson jones smith stevens smith

26

CMU SCS 15-415

Index Classification - clustering • Clustered vs. unclustered: If order of data records is the same as, or `close to’, order of index data entries, then called clustered index.

Non-clustering / dense index 123 234 345 456 567

Faloutsos, Olston

Address main str forbes ave forbes ave forbes ave main str

CLUSTERED

Index entries direct search for data entries

UNCLUSTERED

Data entries

Data entries

(Index File) (Data file)

Data Records

Faloutsos, Olston

CMU SCS 15-415

27

Index Classification - clustering

Faloutsos, Olston

Data Records

CMU SCS 15-415

28

Clustered vs. Unclustered Index • Cost of retrieving records found in range scan:

– A file can have a clustered index on at most one search key.

– Clustered: cost =

– Cost of retrieving data records through index varies greatly based on whether index is clustered!

– Unclustered: cost ˜

• What are the tradeoffs????

– Note: Alternative 1 implies clustered, but not vice-versa.

Faloutsos, Olston

CMU SCS 15-415

29

Faloutsos, Olston

CMU SCS 15-415

30

5

Clustered vs. Unclustered Index

Clustered vs. Unclustered Index

• Cost of retrieving records found in range scan:

• Cost of retrieving records found in range scan:

– Clustered: cost = # pages in file w/matching records

– Clustered: cost = # pages in file w/matching records

– Unclustered: cost ˜ # of matching index data entries

– Unclustered: cost ˜ # of matching index data entries

• What are the tradeoffs????

• What are the tradeoffs???? – Clustered Pros: • Efficient for range searches • May be able to do some types of compression – Clustered Cons: • Expensive to maintain (on the fly or sloppy with reorganization)

Faloutsos, Olston

31

CMU SCS 15-415

Primary vs. Secondary Index

Faloutsos, Olston

32

CMU SCS 15-415

Index Classification - detailed • Representation of data entries in index

• Primary: index key includes the file’s primary key

– i.e., what is at the bottom of the index? – 3 alternatives here

• Secondary: any other index

• Clustered vs. Unclustered – Sometimes confused with Alt. 1 vs. Alt. 2/3

• Primary vs. Secondary

– Primary index never contains duplicates

• Dense vs. Sparse

– Secondary index may contain duplicates

• Single Key vs. Composite

• If index key contains a candidate key, no duplicates => unique index Faloutsos, Olston

• Indexing technique – Tree-based, hash-based, other 33

CMU SCS 15-415

Dense vs. Sparse Index • Dense: at least one data entry per key value • Sparse: an entry per data page in file – Every sparse index is clustered! – Sparse indexes are smaller; however, some useful optimizations are based on dense indexes. – Alternative 1 always leads to dense index. Faloutsos, Olston

Ashby, 25, 3000 22 Basu, 33, 4003 25 30

Ashby

33 Cass

Cass, 50, 5004

Smith

Daniels, 22, 6003 Jones, 40, 6003

40 44

Smith, 44, 3000 Tracy, 44, 5004

CMU SCS 15-415

34

CMU SCS 15-415

Composite Search Keys

Bristow, 30, 2007

Sparse Index on Name

Faloutsos, Olston

Data File

44 50

Dense Index on Age

35

• Search on combination of fields. – Equality query: Every field is equal to a constant value. E.g. wrt <sal,age> index: • age=12 and sal =75 – Range query: Some field value is not a constant. E.g.: • age =12; or age=12 and sal > 20 • Data entries in index sorted by search key for range queries. – “Lexicographic” order. Faloutsos, Olston

CMU SCS 15-415

Examples of composite key indexes using lexicographic order. 11,80

11 12

12,10 12,20 13,75 10,12 20,12 75,13

name age sal bob 12

10

cal 11

80

joe 12

20

sue 13

75

12 13 10 20

Data records sorted by name

75

80,11 <sal, age>

80 <sal>

36

6

Index Classification - detailed

Tree vs. Hash-based index • Hash-based index

• Representation of data entries in index

– Good for equality selections.

– i.e., what is at the bottom of the index?

• File = a collection of buckets. Bucket = primary page plus 0 or more overflow pages.

– 3 alternatives here

• Clustered vs. Unclustered

• Hash function h: h(r.search_key) = bucket in which record r belongs.

• Primary vs. Secondary

• Tree-based index

• Dense vs. Sparse

– Good for range selections.

• Single Key vs. Composite

• Hierarchical structure (Tree) directs searches

• Indexing technique

• Leaves contain data entries sorted by search key value

– Tree-based, hash-based, other Faloutsos, Olston

• B+ tree: all root->leaf paths have equal length (height) 37

CMU SCS 15-415

Cost estimation

Faloutsos, Olston

38

CMU SCS 15-415

Cost estimation

• Heap file

• Heap file

• scan

• Sorted

• Sorted

• equality search

• Clustered

• Clustered

• range search

• Unclustured tree index

• Unclustured tree index

• insertion

• Unclustered hash index

• Unclustered hash index

• deletion

Methods

Methods

Operations(?)

Operations

• Consider only I/O cost; • suppose file spans B pages Faloutsos, Olston

39

CMU SCS 15-415

Cost estimation scan eq

Faloutsos, Olston

40

CMU SCS 15-415

Cost estimation range ins

del

scan eq

Heap

Heap

sorted

sorted B

Clust.

Clust.

1.5B

u-tree

u-tree

~B

u-hash

u-hash ~B

range ins

del

B

Assume that: • Clustered index spans 1.5B pages (due to empty space) • Data entry= 1/10 of data record Faloutsos, Olston

CMU SCS 15-415

41

Faloutsos, Olston

CMU SCS 15-415

42

7

Cost estimation

Cost estimation index – cost? In general – levels of index +

– heap: seq. scan

– blocks w/ qual. tuples

– sorted: binary search

#1

#1

– index search

..

#2

#2

for primary key – cost: … #B

Faloutsos, Olston

43

CMU SCS 15-415

Cost estimation scan eq Heap

B

range ins

del

1.5B h

u-tree

~B

u-hash ~B

for non-clustering

Faloutsos, Olston

… h’

– levels of index + – blocks w/ qual. tuples

#1 #2

1+h’

sec. key – clustering index

~2

h + #qual-pages

… #B h

45

CMU SCS 15-415

Cost estimation

Faloutsos, Olston

Cost estimation

– levels of index +

Heap

– blocks w/ qual. tuples

...

#2

sec. key – non-clust. index #B

(actually, a bit less...)

range ins

B

B/2

B

log2B

<- +m

Clust.

1.5B h

<- +m

u-tree

~B

1+h’

<- +m’

~2

B

u-hash ~B



h’ + #qual-records

scan eq

sorted B

#1

del

m: # of qualifying pages m’: # of qualifying records

h’ CMU SCS 15-415

46

CMU SCS 15-415

index – cost?

Faloutsos, Olston

44

CMU SCS 15-415

h= height of btree ~ logF (1.5B) h’= height of unclustered index btree ~ logF (0.15B) Faloutsos, Olston

#B

index – cost?

log2B

Clust.

for clustering index

h’+1

Cost estimation

B/2

sorted B

h

47

Faloutsos, Olston

CMU SCS 15-415

48

8

Cost estimation scan eq Heap

B

sorted B

log2B

range ins

del

B

2

Search+1

<- +m

Search+B Search+B

sorted B

Search+1 Search+1

Heap

scan eq

range ins

del

B

B

B

2

B

log2B

log2B

B

B

Clust.

1.5B h

<- +m

Clust.

B

logFB

logFB

logFB

logFB

u-tree

~B

1+h’

<- +m’

Search+2 Search+2

u-tree

B

logFB

logFB

logFB

logFB

~2

B

Search+2 Search+2

u-hash B

1

B

1

1

u-hash ~B

Faloutsos, Olston

B/2

Cost estimation - big-O notation:

CMU SCS 15-415

49

Index specification in SQL:1999

Faloutsos, Olston

CMU SCS 15-415

50

Summary • To speed up selection queries: index. • Terminology:

CREATE INDEX IndAgeRating ON Students WITH STRUCTURE=BTREE,

– Clustered / non-clustered index – primary / secondary index

KEY = (age, gpa)

• Typically, B-tree index (see later) – hashing is only good for equality search

• At most one clustered index per table – many non-clustered ones are possible – composite indexes are possible

Faloutsos, Olston

CMU SCS 15-415

51

Faloutsos, Olston

CMU SCS 15-415

52

9

Related Documents

Files Indexing
May 2020 12
Indexing
July 2020 27
Files
November 2019 41
Files
May 2020 27
Files
June 2020 27