![Page 1: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/1.jpg)
Transac'ons, Views, Indexes
CONTROLL ING CONCURRENT BEHAV IOR
V I RTUAL AND MATER IAL I ZED V I EWS
S PEED ING ACCESSES TO DATA
1 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 2: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/2.jpg)
Why Transac'ons? Database systems are normally being accessed by many users or processes at the same 5me. ◦ Both queries and modifica5ons.
The same as opera5ng systems, which support interac5on of processes, a DMBS needs to keep processes from troublesome interac5ons.
2 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 3: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/3.jpg)
Example: Bad Interac'on You and your partner each take $100 from different ATM’s at roughly the same 5me. ◦ The DBMS beIer make sure one account deduc5on doesn’t get lost…(At least the bank hopes!)
Compare: An OS allows two people to edit a document at the same 5me. If both write, one’s changes get lost.
3 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 4: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/4.jpg)
Transac'ons Transac,on: process involving database queries and/or modifica5on.
Normally with some strong proper5es regarding concurrency.
Formed in SQL from single statements or explicit programmer control.
4 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 5: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/5.jpg)
ACID Transac'ons ACID transac,ons are: ◦ Atomic : Whole transac5on or none is done. (all-‐or-‐nothing) ◦ Consistent : Database constraints are preserved. ◦ Isolated : It appears to the user as if only one process executes at a 5me. ◦ Durable : Effects of a process survive a crash.
Op5onal: weaker forms of transac5ons are o[en supported as well.
5 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 6: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/6.jpg)
COMMIT The SQL statement COMMIT causes a transac5on to complete. ◦ It’s database modifica5ons are now permanent in the database.
6 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 7: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/7.jpg)
ROLLBACK The SQL statement ROLLBACK also causes the transac5on to end, but by abor,ng. ◦ No effects on the database.
Failures like division by 0 or a constraint viola5on can also cause rollback, even if the programmer does not request it.
7 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 8: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/8.jpg)
Example: Interac'ng Processes Assume the usual Sells(bar,beer,price) rela5on, and suppose that Joe’s Bar sells only Bud for $2.50 and Miller for $3.00.
Sally is querying Sells for the highest (Query 1) and lowest (Query2) price Joe charges.
Joe decides to stop selling Bud and Miller (Query 3), but to sell only Heineken at $3.50 (Query 4).
8 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 9: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/9.jpg)
Sally’s Program Sally executes the following two SQL statements called (min) and (max) to help us remember what they do.
(max) SELECT MAX(price) FROM Sells
WHERE bar = ’Joe’’s Bar’;
(min) SELECT MIN(price) FROM Sells
WHERE bar = ’Joe’’s Bar’;
9 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 10: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/10.jpg)
Joe’s Program At about the same 5me, Joe executes the following steps: (del) and (ins).
(del) DELETE FROM Sells
WHERE bar = ’Joe’’s Bar’;
(ins) INSERT INTO Sells
VALUES(’Joe’’s Bar’, ’Heineken’, 3.50);
10 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 11: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/11.jpg)
Interleaving of Statements Although (max) must come before (min), and (del) must come before (ins), there are no other constraints on the order of these statements, unless we group Sally’s and/or Joe’s statements into transac5ons!
11 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 12: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/12.jpg)
Example: Strange Interleaving Suppose the steps execute in the order (max)(del)(ins)(min).
What is the result of Query 1 and Query 2?
12 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 13: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/13.jpg)
Example: Strange Interleaving Suppose the steps execute in the order (max)(del)(ins)(min).
Joe’s Prices:
Statement:
Result:
Sally sees MAX < MIN!
13
{2.50,3.00}
(del) (ins)
{3.50}
(min)
3.50
{2.50,3.00}
(max)
3.00
INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 14: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/14.jpg)
Fixing the Problem by Using Transac'ons If we group Sally’s statements (max)(min) into one transac5on, then she cannot see this inconsistency.
She sees Joe’s prices at some fixed 5me. ◦ Either before or a[er he changes prices, or in the middle, but the MAX and MIN are computed from the same prices.
14 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 15: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/15.jpg)
Another Problem: Rollback Suppose Joe executes (del)(ins), not as a transac5on, but a[er execu5ng these statements, thinks beIer of it and issues a ROLLBACK statement.
If Sally executes her statements a[er (ins) but before the rollback, she sees a value, 3.50, that never existed in the database.
15 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 16: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/16.jpg)
Solu'on If Joe executes (del)(ins) as a transac5on, its effect cannot be seen by others un5l the transac5on executes COMMIT. ◦ If the transac5on executes ROLLBACK instead, then its effects can never be seen.
16 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 17: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/17.jpg)
Isola'on Levels SQL defines four isola,on levels = choices about what interac5ons are allowed by transac5ons that execute at about the same 5me.
Only one level (“serializable”) = ACID transac5ons. Each DBMS implements transac5ons in its own way.
17 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 18: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/18.jpg)
Choosing the Isola'on Level Within a transac5on, we can say:
SET TRANSACTION ISOLATION LEVEL X
where X = 1. SERIALIZABLE 2. REPEATABLE READ 3. READ COMMITTED 4. READ UNCOMMITTED
18 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 19: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/19.jpg)
Serializable Transac'ons If Sally = (max)(min) and Joe = (del)(ins) are each transac5ons, and Sally runs with isola5on level SERIALIZABLE, then she will see the database either before or a[er Joe runs, but not in the middle.
19 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 20: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/20.jpg)
Isola'on Level Is an X-‐act Choice Your choice (e.g., run serializable) affects only how you see the database, not how others see it.
Example: If Joe runs serializable, but Sally doesn’t, then Sally might see no prices for Joe’s Bar. ◦ i.e., it looks to Sally as if she ran in the middle of Joe’s transac5on.
20 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 21: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/21.jpg)
Read-‐Commited Transac'ons If Sally runs with isola5on level READ COMMITTED, then she can see only commiIed data, but not necessarily the same data each 5me.
Example: Under READ COMMITTED, the interleaving (max)(del)(ins)(min) is allowed, as long as Joe commits. ◦ Sally sees MAX < MIN.
21 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 22: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/22.jpg)
Repeatable-‐Read Transac'ons Requirement is like read-‐commiIed, plus: if data is read again, then everything seen the first 5me will be seen the second 5me. ◦ But the second and subsequent reads may see more tuples as well.
22 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 23: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/23.jpg)
Example: Repeatable Read Suppose Sally runs under REPEATABLE READ, and the order of execu5on is (max)(del)(ins)(min). ◦ (max) sees prices 2.50 and 3.00. ◦ (min) can see 3.50, but must also see 2.50 and 3.00, because they were seen on the earlier read by (max).
23 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 24: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/24.jpg)
Read UncommiYed A transac5on running under READ UNCOMMITTED can see data in the database, even if it was wriIen by a transac5on that has not commiIed (and may never).
Example: If Sally runs under READ UNCOMMITTED, she could see a price 3.50 even if Joe later aborts.
24 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 25: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/25.jpg)
Views A view is a rela5on defined in terms of stored tables (called base
tables ) and other views.
Two kinds: 1. Virtual = not stored in the database; just a query for construc5ng the
rela5on. 2. Materialized = actually constructed and stored.
25 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 26: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/26.jpg)
Declaring Views Declare by: CREATE [MATERIALIZED] VIEW <name> AS <query>;
Default is virtual.
26 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 27: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/27.jpg)
Example: View Defini'on CanDrink(drinker, beer) is a view “containing” the drinker-‐beer pairs such that the drinker frequents at least one bar that serves the beer: CREATE VIEW CanDrink AS
SELECT drinker, beer
FROM Frequents, Sells
WHERE Frequents.bar = Sells.bar;
27 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 28: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/28.jpg)
Example: Accessing a View Query a view as if it were a base table. ◦ Also: a limited ability to modify views if it makes sense as a modifica5on of one underlying base table.
Example query:
SELECT beer FROM CanDrink
WHERE drinker = ’Sally’;
28 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 29: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/29.jpg)
Triggers on Views Generally, it is impossible to modify a virtual view, because it doesn’t exist.
But an INSTEAD OF trigger lets us interpret view modifica5ons in a way that makes sense.
Example: View Synergy has (drinker, beer, bar) triples such that the bar serves the beer, the drinker frequents the bar and likes the beer.
29 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 30: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/30.jpg)
Example: The View CREATE VIEW Synergy AS
SELECT Likes.drinker, Likes.beer, Sells.bar
FROM Likes, Sells, Frequents
WHERE Likes.drinker = Frequents.drinker
AND Likes.beer = Sells.beer
AND Sells.bar = Frequents.bar;
30
Natural join of Likes, Sells, and Frequents
Pick one copy of each attribute
INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 31: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/31.jpg)
Interpre'ng a View Inser'on We cannot insert into Synergy -‐-‐-‐ it is a virtual view.
But we can use an INSTEAD OF trigger to turn a (drinker, beer, bar) triple into three inser5ons of projected pairs, one for each of Likes, Sells, and Frequents. ◦ Sells.price will have to be NULL (as price is not an element of the view).
31 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 32: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/32.jpg)
The Trigger CREATE TRIGGER ViewTrig
INSTEAD OF INSERT ON Synergy
REFERENCING NEW ROW AS n
FOR EACH ROW
BEGIN
INSERT INTO LIKES VALUES(n.drinker, n.beer);
INSERT INTO SELLS(bar, beer) VALUES(n.bar, n.beer);
INSERT INTO FREQUENTS VALUES(n.drinker, n.bar);
END;
32 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 33: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/33.jpg)
Materialized Views Problem: each 5me a base table changes, the materialized view may change. ◦ Cannot afford to recompute the view with each change.
Solu5on: Periodic reconstruc5on of the materialized view, which is otherwise “out of date.”
33 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 34: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/34.jpg)
Example: Class Mailing List Eg., the class mailing list cs-‐students can be a materialized view of the class enrollment.
Actually updated four 5mes/day. ◦ You can enroll and miss an email sent out a[er you enroll.
34 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 35: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/35.jpg)
Example: A Data Warehouse Wal-‐Mart stores every sale at every store in a database.
Overnight, the sales for the day are used to update a data warehouse = materialized views of the sales.
The warehouse is used by analysts to predict trends and move goods to where they are selling best.
35 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 36: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/36.jpg)
Indexes Index = data structure used to speed access to tuples of a rela5on, given values of one or more aIributes.
Could be a hash table, but in a DBMS it is usually a balanced search tree with giant nodes (a full disk page) called a B+ tree.
36 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 37: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/37.jpg)
Declaring Indexes Note: not fully specified in the standards…
Typical syntax:
CREATE INDEX BeerInd ON Beers(manf);
CREATE INDEX SellInd ON Sells(bar, beer);
37 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 38: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/38.jpg)
Using Indexes Given a value v, the index takes us to only those tuples that have v in the aIribute(s) of the index.
Example: use BeerInd and SellInd to find the prices of beers manufactured by Pete’s and sold by Joe. (next slide)
38 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 39: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/39.jpg)
Using Indexes —(2) SELECT price FROM Beers, Sells
WHERE manf = ’Pete’’s’ AND
Beers.name = Sells.beer AND
bar = ’Joe’’s Bar’;
1. Use BeerInd to get all the beers made by Pete’s.
2. Then use SellInd to get prices of those beers, with bar = ’Joe’’s Bar’
39 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 40: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/40.jpg)
Database Tuning A major problem in making a database run fast is deciding which indexes to create.
Pro: An index speeds up queries that can use it. Con: An index slows down all modifica5ons on its rela5on because the index must be modified too.
40 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 41: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/41.jpg)
Example: Tuning Suppose the only things we did with our beers database was:
1. Insert new facts into a rela5on (10%). 2. Find the price at a given bar of a given beer (90%).
Then SellInd on Sells(bar, beer) would be wonderful, but BeerInd on Beers(manf) would be harmful.
41 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 42: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/42.jpg)
Tuning Advisors A major research thrust.
◦ Because hand tuning is so hard.
An advisor gets a query load, e.g.: 1. Choose random queries from the history of queries run on the
database, or 2. Designer provides a sample workload.
42 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016
![Page 43: Transac’ons,*Views,*Indexes - York University · transac’ons,*views,*indexes controlling*concurrent*behavior virtualandmaterializedviews speedingaccessestodata introduction to](https://reader031.vdocument.in/reader031/viewer/2022022701/5bbdd30609d3f24a538d0ca8/html5/thumbnails/43.jpg)
Tuning Advisors —(2) The advisor generates candidate indexes and evaluates each on the workload. ◦ Feed each sample query to the query op5mizer, which assumes only this one index is available.
◦ Measure the improvement/degrada5on in the average running 5me of the queries.
43 INTRODUCTION TO DATABASE SYSTEMS, EECS-3421 PARKE GODFREY November 2016