Download presentation
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.