Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 5 Other Relational Languages By Cui, Can B.

Similar presentations


Presentation on theme: "Chapter 5 Other Relational Languages By Cui, Can B."— Presentation transcript:

1 Chapter 5 Other Relational Languages By Cui, Can B.

2 The Languages Query By Example (QBE) – Base on domain relational calculus. Quel – Base on tuple relational calculus. Datalog – modeled after the Prolog Language.

3 I. QBE: Introduction For Data Manipulation
1. It has two dimensional syntax, so it requires two dimensions for its expressions. 2. QBE queries are expressed “by example.”

4 QBE tables Users specify a query by filling in tables. Reserves sid
bid day Books bid btitle type Student sid sname class age

5 Basics Print names and ages of all students:
Sid Sname Class age P._N P._A Print all fields of students who are at least sophomores in ascending order by (class, age): Student Sid Sname Class age P. AO(1). > sophomore AO(2).

6 Continue Print unique student names older than 25.
Names of student younger than 20 or older than 25: Student Sid Sname Class age P. >25 <20 Duplicates not eliminated by default: Student Sid Sname Class age UNQ P. <25 Print unique student names older than 25.

7 Join Queries Print students who borrowed a book on 11/30/01.
Joins are accomplished by repeating variables Student Sid Sname Class Age _Id P.S Reserves Sid Bid day _Id `11/30/01’ sid is the common attribute that join the two tables. Print students who borrowed a book on 11/30/01.

8 Join Queries Types of books reserved by students who have reserved a book for 11/30/01 and are older than 25. Student Sid Sname Class age _Id _S >25 Reserves Sid Bid day _Id _B `11/30/01’ Books Bid Bname type _B P.

9 Aggregates QBE supports: AVG, COUNT, MIN, MAX, SUM
Student Sid Sname Class age _Id G. G.P.AO _A P.AVG._A G. are the group by fields – All tuples have the same values. Unnamed columns – Print result of an expression.

10 Conditions Box Used to express conditions involving 2 or more columns.
Conditions can be expressed involving a group. Student Sid Sname Class age P. _A CONDITIONS 20 < _A AND _A <25 Print student names that are between the ages of 20 and 25.

11 Inserting & Deleting Tuples
Tuple insertion: Student Sid Sname Class age I. 1369 Lisa Senior 23 Tuple deletion: Delete all reservations for students with age<23 Student Sid Sname Class age _Id < 23 Reserves Sid Bid day D. _Id

12 II. Quel – Basic Structure
Range of t is r - Declares t to be a tuple variable restricted to take on values of tuples in relation r. Retrieve (t.attribute) - The retrieve clause is similar in function to the select clause of SQL.

13 Continue… Where P - The where clause contains the selection predicate.

14 Quel Query Structure Range of t is r Retrieve (t.A) Where P
Each t is a tuple variable. Each r is a relation. Each A is an attribute. The notation t.A denotes the value of tuple variable t on attribute A.

15 Example Range of t is borrower Retrieve (t.CustomerName)
Find the names of all customers having a loan at the bank. Range of t is borrower Retrieve (t.CustomerName)

16 Example: Tuple Variables
Certain queries need 2 variables over the same relation. Example: Find all customers who live in the same city as Smith. Range of s is customer Range of t is customer Retrieve ( s.CustName ) Where t.CustName = “Smith and s.CustCity = t.CustCity

17 Aggregate Function Aggregate functions in Quel compute functions on groups of tuples. An aggregate expression appear anywhere a constant may appear.

18 For Example In a where clause.
Find the average balance for all San Jose accounts. Range of t is account Retrieve avg (t.balance Where t.Branch = “San Jose”)

19 Modification of Database Deletion:
The form of a Quel deletion is: range of t is r delete t where p t can be implicitly defined. Predicate P can be any valid Quel predicate. If the where clause is omitted, all tuples in the relation are deleted.

20 Example: Delete all of Lee’s account record: range of t is depositor
delete t where t.CustName = “Lee”

21 Insertion append to account (branch = “San Jose” account = “123456”
Insertions are expressed in Quel using the append to. Insert the account at the San Jose branch with a balance of $ : append to account (branch = “San Jose” account = “123456” balance = “5000”)

22 Updates Updates are expressed in Quel using the replace command
Increase all account balances by 5 percent: range of t is account replace t (balance = 1.05 * t.balance)

23 III. Datalog – Basic Structure
Logic based language that allows recursive queries. A Datalog program consists of a set of rules that defines views.

24 Example: Define a view relation vt containing account numbers and balances for accounts at the San Jose branch with a balance of over $100. vt (A B) :- account ( “San Jose”, A B) B > 100 for all A,B if (“San Jose”, A,B) E account A and B > 100 then (A,B) E vt

25 Datalog Rules A positive literal has the form: p(t1,t2,…,tn)
A negative literal has the form: not p(t1,t2,…,tn) p is the name of the relation with n attributes. Each t is a constant or variable.

26 Continue… Rules are built out of literals and have the form:
p(t1,t2,…,tn) :- L1,L2…Ln Each L is a literal Head – the literal p(t1,t2,…,tn) Body – the rest of the literals.

27 Semantics of a Rule An instantiation rule is the result of replacing each variable in the rule by some constant. Rule defining v1: v1 (A,B):- account(“SanJose”, A,B), B>100 An instantiation Rule: v1 (123456, 300) :- account (“San Jose”, “123456”,300) 300 > 100

28 Semantics of Recursion in Datalog
The view relations of a recursive program containing a set of rules K are defied to contain exactly the set of facts /.  facts / are derived from rules K. Facts / is compute by a recursive procedure called Datalog-Fixpoint: Procedure Datalog- Fixpoint / = set of facts in the database repeat Old./ = / / = / U infer (K,/) until / = Old./ At the end of the procedure, infer ( K, / )= / Datalog-Fixpoint will computes all the facts / until the rules in the program has all negative literal or no more true record according to the rules K.

29 QBE QUEL Datalog THE END


Download ppt "Chapter 5 Other Relational Languages By Cui, Can B."

Similar presentations


Ads by Google