Database Systems - BIT - University of Colombo - Year 3 (Lecture Note 4)
Database Systems - BIT - University of Colombo - Year 3 (Lecture Note 4)
Systems II
BIT – 3rd Year
Semester 6
IT6405: Database Systems II – Topic 2
Learning Outcome
After successful completion of this
course students will be able to:
– create stored procedures and triggers
– describe data storage & access and
manipulate query processing techniques
– demonstrate transaction processing
techniques of database systems
– determine designs for distributed databases
© UCSC - 2016 2
IT6405: Database Systems II – Topic 2
Outline of Syllabus
1. Stored Procedures and Triggers
2. Data Storage and Querying
3. Transaction Management
4. Distributed Databases
© UCSC - 2016 3
IT6405: Database Systems II – Topic 2
References
1. Elmasri, Navathe, Somayajulu, and Gupta,
“Fundamentals of Database Systems”, 5th Edition,
Pearson Education (2008)
Note: 6th Edition released in 2011
2. Silberschatz A., Korth H.F. and Sudarshan S., “Database
System Concepts”, 5th Edition, McGraw Hill (2006).
Note: 6th Edition released in 2010
3. Ramakrishnan, Gehrke, “Database Management
Systems”, 3rd edition, McGraw Hill
© UCSC - 2016 4
IT6405: Database Systems II – Topic 2
Duration: 15 hours
© UCSC - 2016 5
IT6405: Database Systems II – Topic 2
Learning Objectives
• Identify commonly asked queries, and
typical update operations, and adjust
the design to improve performance for
the operations identified.
© UCSC - 2016 6
IT6405: Database Systems II – Topic 2
© UCSC - 2016 7
IT6405: Database Systems II – Topic 2
Decisions to Make
• What indexes should we create?
– Which relations should have indexes?
– What field(s) should be the search key?
– Should we build several indexes?
• For each index, what kind of an index should it
be?
– Primary?
– Clustered?
– Hash/tree? Dynamic/static?
– Dense/sparse?
© UCSC - 2016 8
IT6405: Database Systems II – Topic 2
Decisions to Make
• Should we make changes to the conceptual
schema?
– Consider alternative normalized schemas?
(Remember, there are many choices in
decomposing into BCNF, etc.)
– Should we ``undo’’ some decomposition steps and
settle for a lower normal form? (Denormalization.)
– Horizontal partitioning, replication, views ...
© UCSC - 2016 9
IT6405: Database Systems II – Topic 2
Choice of Indexes
• One approach: consider the most important queries.Consider the
best plan using the current indexes, and see if a better plan is
possible with an additional index. If so, create it.
© UCSC - 2016 10
IT6405: Database Systems II – Topic 2
© UCSC - 2016 11
IT6405: Database Systems II – Topic 2
© UCSC - 2016 12
IT6405: Database Systems II – Topic 2
• Iindex only plans are much faster than regular plans since it
does not require reading of the data records.
© UCSC - 2016 13
IT6405: Database Systems II – Topic 2
Index-Only Plans
SELECT D.mgr, E.eid
<E.dno,E.eid>
FROM Dept D, Emp E
• A number of queries Tree index!
WHERE D.dno=E.dno
can be answered SELECT E.dno, COUNT(*)
without retrieving <E.dno> FROM Emp E
any tuples from one GROUP BY E.dno
or more of the SELECT E.dno, MIN(E.sal)
relations involved if <E.dno,E.sal> FROM Emp E
Tree index!
a suitable index is GROUP BY E.dno
available. <E. age,E.sal> SELECT AVG(E.sal)
or FROM Emp E
<E.sal, E.age> WHERE E.age=25 AND
Tree! E.sal BETWEEN 3000 AND 5000
© UCSC - 2016 14
IT6405: Database Systems II – Topic 2
© UCSC - 2016 15
IT6405: Database Systems II – Topic 2
Example1
SELECT E.ename, D.mgr
FROM Emp E, Dept D
WHERE D.dname=‘Toy’ AND E.dno=D.dno
© UCSC - 2016 16
IT6405: Database Systems II – Topic 2
Example1
• What if WHERE included: `` ... AND E.age=25’’ ?
– Could retrieve Emp tuples using index on E.age,
then join with Dept tuples satisfying dname
selection.
– If E.age index is already created, this query
provides much less motivation for adding an E.dno
index.
© UCSC - 2016 17
IT6405: Database Systems II – Topic 2
Example2
© UCSC - 2016 18
IT6405: Database Systems II – Topic 2
Example2
• What index should we build on Emp?
– B+ tree on E.sal could be used, OR an index on E.hobby
could be used. Only one of these is needed, and which is
better depends upon the selectivity of the conditions.
• As a rule of thumb, equality selections more
selective than range selections.
© UCSC - 2016 19
IT6405: Database Systems II – Topic 2
© UCSC - 2016 20
IT6405: Database Systems II – Topic 2
© UCSC - 2016 21
IT6405: Database Systems II – Topic 2
Summary
• Database design consists of several tasks: requirements analysis,
conceptual design, schema refinement, physical design and
tuning.
– In general, have to go back and forth between these tasks to
refine a database design, and decisions in one task can influence
the choices in another task.
© UCSC - 2016 22
IT6405: Database Systems II – Topic 2
Summary (Contd.)
• Indexes must be chosen to speed up important queries (and
perhaps some updates!).
– Index maintenance overhead on updates to key fields.
– Choose indexes that can help many queries, if possible.
– Build indexes to support index-only strategies.
– Clustering is an important decision; only one index on a
given relation can be clustered!
– Order of fields in composite index key can be important.
© UCSC - 2016 23
IT6405: Database Systems II – Topic 2
Database Tuning
• The process of continuing to revise/adjust the
physical database design by monitoring resource
utilization as well as internal DBMS processing to
reveal bottlenecks such as contention for the
same data or devices.
• Goal:
– To make application run faster
– To lower the response time of queries/transactions
– To improve the overall throughput of transactions
© UCSC - 2016 24
IT6405: Database Systems II – Topic 2
Tuning Indexes
• Reasons to tuning indexes
– Certain queries may take too long to run for lack
of an index;
– Certain indexes may not get utilized at all;
– Certain indexes may be causing excessive
overhead because the index is on an attribute that
undergoes frequent changes
• Options to tuning indexes
– Drop or/and build new indexes
– Change a non-clustered index to a clustered
index (and vice versa)
– Rebuilding the index
© UCSC - 2016 25
IT6405: Database Systems II – Topic 2
Tuning Queries
• In some situations involving using of correlated
queries, temporaries are useful.
• The order of tables in the FROM clause may
affect the join processing.
• Some query optimizers perform worse on
nested queries compared to their equivalent
un-nested counterparts.
© UCSC - 2016 26
IT6405: Database Systems II – Topic 2
Tuning Queries
• A query with multiple selection conditions that are
connected via OR may not be prompting the query
optimizer to use any index. Such a query may be
split up and expressed as a union of queries, each
with a condition on an attribute that causes an index
to be used.
© UCSC - 2016 27
IT6405: Database Systems II – Topic 2
© UCSC - 2016 28
IT6405: Database Systems II – Topic 2
© UCSC - 2016 29