Download Index Example

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Entity–attribute–value model wikipedia , lookup

Concurrency control wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Relational algebra wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Clusterpoint wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Transcript
Index Example
From Garcia-Molina, Ullman, and Widom:
Database Systems, the Complete Book
pp. 298 - 300
What is an Index?
• Let’s say relation R has an attribute A
• An index on A is a data structure that allows quick
access to tuples of R if you know the value of A
• Implementation: hash table or similar data structure.
Indices and database design
• Important fact: disk accesses are typically
the highest cost operation for a DBMS
• Having an index on A speeds up database
lookups involving A
• However, it slows down insertions and
deletions involving A, because the index
must also be updated
Example from textbook
StarsIn(movieTitle, movieYear, StarName)
• Query 1 (Q1): SELECT movieTitle, movieYear
FROM StarsIn
WHERE starName= s
• Query 2 (Q2): SELECT starName
FROM StarsIn
WHERE movieTitle= t AND movieYear= y
• Insertion (I): INSERT INTO StarsIn
SET
StarName= s, movieTitle= t, movieYear= y
Assumptions: on average, each star has appeared in 3 movies, and each
movie has 3 stars; table takes up 10 disk blocks
Cost of Queries
Action
No index Star
index
Movie
Index
Both
indices
Q1
10
4
10
4
Q2
10
10
4
4
I
2
4
4
6
Conclusions:
• If lookups on an attribute A are much more
common than insertions and deletions, it
makes sense to add an index on A
• But if lookups are not common, the index
may slow down database performance
Implementation
• An index can be defined on multiple
attributes A, B. In this case the domain is
the set of ordered pairs (a, b) ε A x B
• Some DBMS implementers automatically
add an index to each primary key attribute.
• This is useful because any insertion to a
table with a key requires a lookup to
ensure that the key remains unique.