29
06/20/22 Lecture 3 1 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Embed Size (px)

Citation preview

Page 1: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

04/18/23 Lecture 3 1

CS 222 Database Management

SystemSpring 2010-11

Lecture 3

Korra Sathya BabuDepartment of Computer Science

NIT Rourkela

Page 2: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Commercial Query Languages

• RA and RC are formal and abstract Languages developed for the Relational model in the database technology

• Many languages were commercialized taking the foundations from the abstract query languages– QBE– QUEL– SQL

04/18/23 Lecture 3 2

Page 3: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Query-by-Example (QBE)

Page 4: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Query-by-Example (QBE)• Developed by Moshe M. Zoolf at IBM

Research during mid 1970s (in parallel to the development of SQL)

• A graphical query language which is based on the notion of DRC– QBE queries can be translated to DRC directly but queries

containing aggregate operators, sorting etc cannot be converted

• Two dimensional syntax – system creates templates of relations that are requested by users

• Queries are expressed “by example”

Page 5: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Query-by-Example (QBE)

• A “GUI” for expressing queries.– Actually invented before GUIs.– Very convenient for simple queries.– Awkward for complex queries.

• QBE an IBM trademark.– But has influenced many projects– Especially PC Databases: Paradox,

Access, etc.

Page 6: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Syntax• QBE Queries are posed by placing constants and

variables (example elements) into individual columns and thereby creating an example tuple of the query result

• Variables used are domain variables• Variable symbols are prefixed by underscore• Commands are followed by a dot • The field that should appear in the answer are specified

by the command P. (stands for Print (also called retrieval command))

• Equal operator is by default . Other comparison operators can also be used

• Link establishment between relations is done by example elements

Page 7: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Syntax• Aggregate functions and Groupings used by

adding prefixes are– CNT.ALL.– SUM.ALL.– CNT.UNQ.ALL.– MAX.ALL.– MIN.ALL– AVG.ALL– MOD.ALL– G. (Groupings)

• Sorting commands used are– .DO (Descending Order)– .AO ( Ascending Order)

• General Commands used are– P. (Print), I. (Insert), U. (Update), D. (Delete)

Page 8: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Example

04/18/23 Lecture 3 8

Sno

Sname Rating

Age

22 Dustine

7 45.0

29 Brutus 1 33.0

31 Lubber

8 55.5

32 Andy 8 25.5

58 Rusty 10 35.0

64 Horatio

7 35.0

71 Zorba 10 16.0

74 Horatio

9 35.0

85 Art 3 25.5

95 Bob 3 63.5

Sid bid day

22 101 10/10/08

22 102 10/10/08

22 103 10/08/08

22 104 10/07/08

31 102 10/10/08

31 103 11/06/08

31 104 11/12/08

64 101 09/05/08

64 102 09/08/08

74 103 09/08/08

bid bname color

101 Interlake Blue

102 Interlake Red

103 Clipper Green

104 Marine red

Instance of Sailors

Instance of Reserves

Instance of Boats

Page 9: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

`Example Tables’ in QBE

Boats bid bname color

Sailors sid sname rating age

Reserves sid bid day• QBE has its own screen editor

• Users specify a query by filling in example tables, or skeletons; we will use these skeletons in our examples.

Relation name

attributes

Page 10: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

`Creating Tables’ in QBE

Reserves sid bid day

Dictionary entry for Relation Reserves

Represent the dictionary entry of file columns of table Reserves

I.P.I.

Page 11: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Basics

Sailors sid sname rating ageP._N P._A

• To print names and ages of all sailors:

Print all fields for sailors with rating > 8, in ascending order by (rating, age):

Sailors sid sname rating ageP. AO(1). >8 AO(2).

QBE puts unique new variables in blank columns. Above query in DRC (no ordering): I N T A I N T A Sailors T, , , | , , , 8

Page 12: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

And/Or Queries

Sailors sid sname rating ageP. < 30P. > 20

• Names of sailors younger than 30 or older than 20:

Names of sailors younger than 30 and older than 20:Sailors sid sname rating age

_Id P. < 30_Id P. > 20

Names of sailors younger than 30 and rating > 4:Sailors sid sname rating age

_Id P. > 4 < 30

Page 13: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Duplicates

Sailors sid sname rating ageUNQ. P. < 30

• Single row with P: Duplicates not eliminated by default; can force elimination by using UNQ.

Sailors sid sname rating ageALL. _Id P. < 30

_Id P. > 20

Multiple rows with P: Duplicates eliminated by default! Can avoid elimination by using ALL.

Page 14: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Join Queries

Sailors sid sname rating age_Id P._S > 25

Reserves sid bid day_Id ‘8/24/96’

• Names of sailors who’ve reserved a boat for 11/06/2008 and are older than 25 (note that dates and strings with blanks/special chars are quoted):

Joins accomplished by repeating variables.

Page 15: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Join Queries (Contd.)

• Colors of boats reserved by sailors who’ve reserved a boat for 8/24/96 and are older than 25 :

Sailors sid sname rating age_Id _S > 25

Reserves sid bid day_Id _B ‘8/24/96’

Boats bid bname color_B ‘Interlake’ P.

Page 16: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Join Queries (Contd.)

Sailors sid sname rating age_Id P. P.

Reserves sid bid day22 _B_Id _B

• Names and ages of sailors who’ve reserved some boat that is also reserved by the sailor with sid = 22:

Page 17: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Unnamed Columns

Sailors sid sname rating age_Id P. _R _A P._D P.(_R/_A)

Reserves sid bid day_Id _D

• Useful if we want to print the result of an expression, or print fields from 2 or more relations.– QBE allows P. to appear in at most one table!

Page 18: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

“Negative Tables”• Can place a negation marker in the

relation column:

Sailors sid sname rating age_Id P._S

Reserves sid bid day_Id _B

Variables appearing in a negated table must also appear in a positive table!

Page 19: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Aggregates

Sailors sid sname rating age_Id G. G.P.AO _A P.AVG._A

• QBE supports AVG, COUNT, MIN, MAX, SUM

– None of these eliminate duplicates, except COUNT

– Also have AVG.UNQ. etc. to force duplicate elimination

The columns with G. are the group-by fields; all tuples in a group have the same values in these fields.— The (optional) use of .AO orders the answers.— Every column with P. must include G. or an

aggregate operator to get the aggregates.

Page 20: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Conditions Box

Sailors sid sname rating ageG.P. _A

CONDITIONSAVG._A > 30

• Used to express conditions involving 2 or more columns, e.g., _R/_A > 0.2.

• Can express a condition that involves a group, similar to the HAVING clause in SQL:

Express conditions involving AND and OR:

Sailors sid sname rating ageP. _A

CONDITIONS20 < _A AND _A < 30

Page 21: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Find sailors who’ve reserved all boats

Sailors sid sname rating ageP.G._Id

CONDITIONSCOUNT._B1= COUNT._B2

• A division query; need aggregates (or update operations) to do this in QBE.

Reserves sid bid day_Id _B1

Boats bid bname color_B2

Page 22: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Inserting Tuples

• Tuple insertion:

Sailors sid sname rating ageI. 74 Janice 7 14

Page 23: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Delete and Update

Sailors sid sname rating age_Id < 4

• Delete all reservations for sailors with rating < 4

Reserves sid bid dayD. _Id

Increment the age of the sailor with sid = 74

Sailors sid sname rating age74 U._A+1

Page 24: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Restrictions on Update Commands

• Cannot mix I., D. and U. in a single example table, or combine them with P. or G.

• Cannot insert, update or modify tuples using values from fields of other tuples in the same table. Example of an update that violates this rule:

Sailors sid sname rating agejohn _Ajoe U._A+1

Should we update every Joe’s age?Which John’s age should we use?

Page 25: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Find sailors who’ve reserved all boats (Again!)

Sailors sid sname rating age_Id P._S

Reserves sid bid day_Id _B

• We want to find sailors _Id such that there is no boat _B that is not reserved by _Id:

Boats bid bname color_B

Illegal query! Variable _B does not appear in a positive row. In what order should the two negative rows be considered? (Meaning changes!)

Page 26: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

A Solution Using Views

Sailors sid sname rating age_Id P._S

Reserves sid bid day_Id _B

• Find sailors who’ve not reserved some boat _B:

Boats bid bname color_B

BadSids sidI. _Id

Next, find sailors not in this `bad’ set:

Sailors sid sname rating age_Id P._S

BadSids sid_Id

Page 27: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Advantages of QBE• User-friendly• Order of the row is immaterial• Highly non procedural query language• Several ways to represent a query• QBE is interpreter based so debugging is

easy

Page 28: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Disadvantages of QBE• QBE doesn’t support complete views• QBE doesn’t have a preprocessor for

optimization• Implementation of QBE is not complete but

theoretically its complete

Page 29: 5/15/2015Lecture 31 CS 222 Database Management System Spring 2010-11 Lecture 3 Korra Sathya Babu Department of Computer Science NIT Rourkela

Summary• QBE is an elegant, user-friendly query

language based on DRC.• Simple queries are especially easy to write

in QBE, and there is a minimum of syntax to learn.

• Has influenced the graphical query facilities offered in many products, including Borland’s Paradox and Microsoft’s Access.