SlideShare a Scribd company logo
1 of 18
Relational Calculus
    CS 186, Spring 2006, Lecture 9
                   R&G, Chapter 4




We will occasionally use this
arrow notation unless there
is danger of no confusion.
          Ronald Graham
            Elements of Ramsey Theory
Relational Calculus
• Comes in two flavors: Tuple relational calculus (TRC)
  and Domain relational calculus (DRC).
• Calculus has variables, constants, comparison ops,
  logical connectives and quantifiers.
   – TRC: Variables range over (i.e., get bound to) tuples.
      • Like SQL.
   – DRC: Variables range over domain elements (= field
     values).
      • Like Query-By-Example (QBE)
   – Both TRC and DRC are simple subsets of first-order logic.
• Expressions in the calculus are called formulas.
• Answer tuple is an assignment of constants to
  variables that make the formula evaluate to true.
Tuple Relational Calculus
• Query has the form: {T | p(T)}
   – p(T) denotes a formula in which tuple
     variable T appears.
• Answer is the set of all tuples T for
  which the formula p(T) evaluates to true.
• Formula is recursively defined:
   start with simple atomic formulas (get
     tuples from relations or make comparisons of
     values)
   build bigger and better formulas using the
     logical connectives.
TRC Formulas
• An Atomic formula is one of the following:
  R Rel
  R.a op S.b
  R.a op constant
     op is one of      , , , , ,
• A formula can be:
  – an atomic formula
  –     p, p    q, p q where p and q are formulas
  –    R ( p ( R )) where variable R is a tuple variable
  –    R ( p ( R )) where variable R is a tuple variable
Free and Bound Variables

• The use of quantifiers       X and X in a formula is
  said to bind X in the formula.
   – A variable that is not bound is free.
• Let us revisit the definition of a query:
    – {T | p(T)}

•   There is an important restriction
    — the variable T that appears to the left of `|’ must be
      the only free variable in the formula p(T).
    — in other words, all other tuple variables must be
      bound using a quantifier.
Selection and Projection
• Find all sailors with rating above 7
              {S |S Sailors          S.rating > 7}
   – Modify this query to answer: Find sailors who are older
     than 18 or have a rating under 9, and are called ‘Bob’.
• Find names and ages of sailors with rating above 7.
      {S | S1 Sailors(S1.rating > 7
                       S.sname = S1.sname
                       S.age = S1.age)}
Note, here S is a tuple variable of 2 fields (i.e. {S} is a
projection of sailors), since only 2 fields are ever mentioned
and S is never used to range over any relations in the query.
Joins
Find sailors rated > 7 who’ve reserved boat
  #103

  {S | S Sailors S.rating > 7
        R(R Reserves R.sid = S.sid
            R.bid = 103)}
  Note the use of to find a tuple in Reserves
   that `joins with’ the Sailors tuple under
   consideration.
Joins (continued)
Find sailors rated > 7 who’ve reserved boat #103
     {S | S Sailors S.rating > 7
           R(R Reserves R.sid = S.sid
               R.bid = 103)}
Find sailors rated > 7 who’ve reserved a red boat
   {S | S Sailors S.rating > 7
         R(R Reserves R.sid = S.sid
              B(B Boats B.bid = R.bid
                  B.color = „red‟))}
• Observe how the parentheses control the scope of
  each quantifier’s binding. (Similar to SQL!)
Division (makes more sense here???)
  Find sailors who’ve reserved all boats
     (hint, use )
   {S | S Sailors
         B Boats ( R Reserves
                    (S.sid = R.sid
                       B.bid = R.bid))}
• Find all sailors S such that for each tuple B in Boats
  there is a tuple in Reserves showing that sailor S has
  reserved it.
Division – a trickier example…
Find sailors who‟ve reserved all Red boats
       {S | S Sailors
              B Boats ( B.color = ‘red’
             R(R Reserves S.sid = R.sid
                 B.bid = R.bid))}
Alternatively…
        {S | S Sailors
              B Boats ( B.color ‘red’
              R(R Reserves S.sid = R.sid
                 B.bid = R.bid))}
a       b is the same as a              b

             b       • If a is true, b must be
                       true for the implication
        T        F     to be true. If a is true
                       and b is false, the
    T   T        F     implication evaluates to
                       false.
a                    • If a is not true, we don’t
                       care about b, the
    F   T        T     expression is always
                       true.
Unsafe Queries, Expressive Power
•      syntactically correct calculus queries that have
    an infinite number of answers! Unsafe queries.
     – e.g., S |   S Sailors

   – Solution???? Don’t do that!
• Expressive Power (Theorem due to Codd):
   – every query that can be expressed in relational algebra
     can be expressed as a safe query in DRC / TRC; the
     converse is also true.
• Relational Completeness: Query language (e.g.,
  SQL) can express every query that is expressible in
  relational algebra/calculus. (actually, SQL is more
  powerful, as we will see…)
Summary
• The relational model has rigorously defined query
  languages — simple and powerful.
• Relational algebra is more operational
   – useful as internal representation for query evaluation plans.
• Relational calculus is non-operational
   – users define queries in terms of what they want, not in
     terms of how to compute it. (Declarative)
• Several ways of expressing a given query
   – a query optimizer should choose the most efficient version.
• Algebra and safe calculus have same expressive power
   – leads to the notion of relational completeness.
Midterm I - Info
•   Remember - Lectures, Sections, Book & HW1
•   1 Cheat Sheet (2 sided, 8.5x11) - No electronics.
•   Tues 2/21 in class
•   Topics: next
Midterm I - Topics
• Ch 1 - Introduction - all sections
• Ch 3 - Relational Model - 3.1 thru 3.4

•   Ch 9 - Disks and Files - all except 9.2 (RAID)
•   Ch 8 - Storage & Indexing - all
•   Ch 10 - Tree-based IXs - all
•   Ch 11 - Hash-based IXs - all

• Ch 4 - Rel Alg & Calc - all (except DRC 4.3.2)
Addendum: Use of

• x (P(x)) - is only true if P(x) is true for
  every x in the universe
• Usually:
     x ((x Boats) (x.color = “Red”)
• logical implication,
   a b means that if a is true, b must be
    true
   a b is the same as a b
Find sailors who’ve reserved all boats
       {S | S Sailors
             B( (B Boats)
             R(R Reserves S.sid = R.sid
                 B.bid = R.bid))}
• Find all sailors S such that for each tuple B
  either it is not a tuple in Boats or there is a tuple in
  Reserves showing that sailor S has reserved it.
       {S | S Sailors
             B( (B Boats)
             R(R Reserves S.sid = R.sid
                B.bid = R.bid))}
... reserved all red boats
       {S | S Sailors
             B( (B Boats B.color = “red”)
             R(R Reserves S.sid = R.sid
                 B.bid = R.bid))}
• Find all sailors S such that for each tuple B
  either it is not a tuple in Boats or there is a tuple in
  Reserves showing that sailor S has reserved it.
       {S | S Sailors
             B( (B Boats) (B.color “red”)
             R(R Reserves S.sid = R.sid
                B.bid = R.bid))}

More Related Content

What's hot

Presentation on dbms(relational calculus)
Presentation on dbms(relational calculus)Presentation on dbms(relational calculus)
Presentation on dbms(relational calculus)yourbookworldanil
 
LINEAR BOUNDED AUTOMATA (LBA).pptx
LINEAR BOUNDED AUTOMATA (LBA).pptxLINEAR BOUNDED AUTOMATA (LBA).pptx
LINEAR BOUNDED AUTOMATA (LBA).pptxAkhilJoseph63
 
Predicates and Quantifiers
Predicates and QuantifiersPredicates and Quantifiers
Predicates and Quantifiersblaircomp2003
 
Lecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculusLecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculusemailharmeet
 
Relational Algebra
Relational AlgebraRelational Algebra
Relational AlgebraAmin Omi
 
Python If Else | If Else Statement In Python | Edureka
Python If Else | If Else Statement In Python | EdurekaPython If Else | If Else Statement In Python | Edureka
Python If Else | If Else Statement In Python | EdurekaEdureka!
 
Relationship Among Token, Lexeme & Pattern
Relationship Among Token, Lexeme & PatternRelationship Among Token, Lexeme & Pattern
Relationship Among Token, Lexeme & PatternBharat Rathore
 
Hashing in datastructure
Hashing in datastructureHashing in datastructure
Hashing in datastructurerajshreemuthiah
 
DBMS 3 | ER Diagram to Relational Schema
DBMS 3 | ER Diagram to Relational SchemaDBMS 3 | ER Diagram to Relational Schema
DBMS 3 | ER Diagram to Relational SchemaMohammad Imam Hossain
 
Relation matrix & graphs in relations
Relation matrix &  graphs in relationsRelation matrix &  graphs in relations
Relation matrix & graphs in relationsRachana Pathak
 
Chapter-7 Relational Calculus
Chapter-7 Relational CalculusChapter-7 Relational Calculus
Chapter-7 Relational CalculusKunal Anand
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentationDijkstra's algorithm presentation
Dijkstra's algorithm presentationSubid Biswas
 
Lattices AND Hasse Diagrams
Lattices AND Hasse DiagramsLattices AND Hasse Diagrams
Lattices AND Hasse DiagramsDebarati Das
 

What's hot (20)

Presentation on dbms(relational calculus)
Presentation on dbms(relational calculus)Presentation on dbms(relational calculus)
Presentation on dbms(relational calculus)
 
LINEAR BOUNDED AUTOMATA (LBA).pptx
LINEAR BOUNDED AUTOMATA (LBA).pptxLINEAR BOUNDED AUTOMATA (LBA).pptx
LINEAR BOUNDED AUTOMATA (LBA).pptx
 
Predicates and Quantifiers
Predicates and QuantifiersPredicates and Quantifiers
Predicates and Quantifiers
 
Lecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculusLecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculus
 
Relational Algebra
Relational AlgebraRelational Algebra
Relational Algebra
 
Python If Else | If Else Statement In Python | Edureka
Python If Else | If Else Statement In Python | EdurekaPython If Else | If Else Statement In Python | Edureka
Python If Else | If Else Statement In Python | Edureka
 
Lecture6 syntax analysis_2
Lecture6 syntax analysis_2Lecture6 syntax analysis_2
Lecture6 syntax analysis_2
 
Python functions
Python functionsPython functions
Python functions
 
Relationship Among Token, Lexeme & Pattern
Relationship Among Token, Lexeme & PatternRelationship Among Token, Lexeme & Pattern
Relationship Among Token, Lexeme & Pattern
 
Hashing in datastructure
Hashing in datastructureHashing in datastructure
Hashing in datastructure
 
SINGLE-SOURCE SHORTEST PATHS
SINGLE-SOURCE SHORTEST PATHS SINGLE-SOURCE SHORTEST PATHS
SINGLE-SOURCE SHORTEST PATHS
 
DBMS 3 | ER Diagram to Relational Schema
DBMS 3 | ER Diagram to Relational SchemaDBMS 3 | ER Diagram to Relational Schema
DBMS 3 | ER Diagram to Relational Schema
 
LECTURE 2: PROPOSITIONAL EQUIVALENCES
LECTURE 2: PROPOSITIONAL EQUIVALENCESLECTURE 2: PROPOSITIONAL EQUIVALENCES
LECTURE 2: PROPOSITIONAL EQUIVALENCES
 
Propositional logic
Propositional logicPropositional logic
Propositional logic
 
The Floyd–Warshall algorithm
The Floyd–Warshall algorithmThe Floyd–Warshall algorithm
The Floyd–Warshall algorithm
 
Relation matrix & graphs in relations
Relation matrix &  graphs in relationsRelation matrix &  graphs in relations
Relation matrix & graphs in relations
 
Chapter-7 Relational Calculus
Chapter-7 Relational CalculusChapter-7 Relational Calculus
Chapter-7 Relational Calculus
 
Flat unit 1
Flat unit 1Flat unit 1
Flat unit 1
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentationDijkstra's algorithm presentation
Dijkstra's algorithm presentation
 
Lattices AND Hasse Diagrams
Lattices AND Hasse DiagramsLattices AND Hasse Diagrams
Lattices AND Hasse Diagrams
 

Similar to Relational calculas

lecture9Calc.ppt
lecture9Calc.pptlecture9Calc.ppt
lecture9Calc.pptrituah
 
Admission in india 2015
Admission in india 2015Admission in india 2015
Admission in india 2015Edhole.com
 
lefg sdfg ssdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg d...
lefg sdfg ssdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg d...lefg sdfg ssdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg d...
lefg sdfg ssdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg d...RajuNestham1
 
Relational Algebra and Calculus.ppt
Relational Algebra and Calculus.pptRelational Algebra and Calculus.ppt
Relational Algebra and Calculus.pptAnkush138
 
6 - Relational Calculus.pdf
6 - Relational Calculus.pdf6 - Relational Calculus.pdf
6 - Relational Calculus.pdfgaurav70287
 
leanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL ReasonerleanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL ReasonerAdriano Melo
 
Design of databases
Design of databasesDesign of databases
Design of databasesHava91
 
Geometry Section 6-5
Geometry Section 6-5Geometry Section 6-5
Geometry Section 6-5Jimbo Lamb
 
Relations and functions
Relations and functions Relations and functions
Relations and functions Seyid Kadher
 
Mesh Shape Editing
Mesh Shape EditingMesh Shape Editing
Mesh Shape Editingssuser24ddad
 
Regular Languages
Regular LanguagesRegular Languages
Regular Languagesparmeet834
 
Theory of Computation Regular Expressions, Minimisation & Pumping Lemma
Theory of Computation Regular Expressions, Minimisation & Pumping LemmaTheory of Computation Regular Expressions, Minimisation & Pumping Lemma
Theory of Computation Regular Expressions, Minimisation & Pumping LemmaRushabh2428
 
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATEL
CHAPTER 2 DBMS IN EASY WAY BY  MILAN PATELCHAPTER 2 DBMS IN EASY WAY BY  MILAN PATEL
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATELShashi Patel
 

Similar to Relational calculas (20)

lecture9Calc.ppt
lecture9Calc.pptlecture9Calc.ppt
lecture9Calc.ppt
 
Admission in india 2015
Admission in india 2015Admission in india 2015
Admission in india 2015
 
lecture05-14f.ppt
lecture05-14f.pptlecture05-14f.ppt
lecture05-14f.ppt
 
lefg sdfg ssdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg d...
lefg sdfg ssdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg d...lefg sdfg ssdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg d...
lefg sdfg ssdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg sdfg d...
 
lecture8Alg.ppt
lecture8Alg.pptlecture8Alg.ppt
lecture8Alg.ppt
 
Relational Algebra and Calculus.ppt
Relational Algebra and Calculus.pptRelational Algebra and Calculus.ppt
Relational Algebra and Calculus.ppt
 
6 - Relational Calculus.pdf
6 - Relational Calculus.pdf6 - Relational Calculus.pdf
6 - Relational Calculus.pdf
 
Transformations
TransformationsTransformations
Transformations
 
asal12 sqliii
asal12 sqliiiasal12 sqliii
asal12 sqliii
 
leanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL ReasonerleanCoR: lean Connection-based DL Reasoner
leanCoR: lean Connection-based DL Reasoner
 
Design of databases
Design of databasesDesign of databases
Design of databases
 
Geometry Section 6-5
Geometry Section 6-5Geometry Section 6-5
Geometry Section 6-5
 
Relations and functions
Relations and functions Relations and functions
Relations and functions
 
8.4 notes
8.4 notes8.4 notes
8.4 notes
 
Mesh Shape Editing
Mesh Shape EditingMesh Shape Editing
Mesh Shape Editing
 
Elhabian_curves10.pdf
Elhabian_curves10.pdfElhabian_curves10.pdf
Elhabian_curves10.pdf
 
Triangles ix
Triangles ixTriangles ix
Triangles ix
 
Regular Languages
Regular LanguagesRegular Languages
Regular Languages
 
Theory of Computation Regular Expressions, Minimisation & Pumping Lemma
Theory of Computation Regular Expressions, Minimisation & Pumping LemmaTheory of Computation Regular Expressions, Minimisation & Pumping Lemma
Theory of Computation Regular Expressions, Minimisation & Pumping Lemma
 
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATEL
CHAPTER 2 DBMS IN EASY WAY BY  MILAN PATELCHAPTER 2 DBMS IN EASY WAY BY  MILAN PATEL
CHAPTER 2 DBMS IN EASY WAY BY MILAN PATEL
 

Recently uploaded

mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersChitralekhaTherkar
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptxPoojaSen20
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 

Recently uploaded (20)

mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of Powders
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 

Relational calculas

  • 1. Relational Calculus CS 186, Spring 2006, Lecture 9 R&G, Chapter 4 We will occasionally use this arrow notation unless there is danger of no confusion. Ronald Graham Elements of Ramsey Theory
  • 2. Relational Calculus • Comes in two flavors: Tuple relational calculus (TRC) and Domain relational calculus (DRC). • Calculus has variables, constants, comparison ops, logical connectives and quantifiers. – TRC: Variables range over (i.e., get bound to) tuples. • Like SQL. – DRC: Variables range over domain elements (= field values). • Like Query-By-Example (QBE) – Both TRC and DRC are simple subsets of first-order logic. • Expressions in the calculus are called formulas. • Answer tuple is an assignment of constants to variables that make the formula evaluate to true.
  • 3. Tuple Relational Calculus • Query has the form: {T | p(T)} – p(T) denotes a formula in which tuple variable T appears. • Answer is the set of all tuples T for which the formula p(T) evaluates to true. • Formula is recursively defined: start with simple atomic formulas (get tuples from relations or make comparisons of values) build bigger and better formulas using the logical connectives.
  • 4. TRC Formulas • An Atomic formula is one of the following: R Rel R.a op S.b R.a op constant op is one of , , , , , • A formula can be: – an atomic formula – p, p q, p q where p and q are formulas – R ( p ( R )) where variable R is a tuple variable – R ( p ( R )) where variable R is a tuple variable
  • 5. Free and Bound Variables • The use of quantifiers X and X in a formula is said to bind X in the formula. – A variable that is not bound is free. • Let us revisit the definition of a query: – {T | p(T)} • There is an important restriction — the variable T that appears to the left of `|’ must be the only free variable in the formula p(T). — in other words, all other tuple variables must be bound using a quantifier.
  • 6. Selection and Projection • Find all sailors with rating above 7 {S |S Sailors S.rating > 7} – Modify this query to answer: Find sailors who are older than 18 or have a rating under 9, and are called ‘Bob’. • Find names and ages of sailors with rating above 7. {S | S1 Sailors(S1.rating > 7 S.sname = S1.sname S.age = S1.age)} Note, here S is a tuple variable of 2 fields (i.e. {S} is a projection of sailors), since only 2 fields are ever mentioned and S is never used to range over any relations in the query.
  • 7. Joins Find sailors rated > 7 who’ve reserved boat #103 {S | S Sailors S.rating > 7 R(R Reserves R.sid = S.sid R.bid = 103)} Note the use of to find a tuple in Reserves that `joins with’ the Sailors tuple under consideration.
  • 8. Joins (continued) Find sailors rated > 7 who’ve reserved boat #103 {S | S Sailors S.rating > 7 R(R Reserves R.sid = S.sid R.bid = 103)} Find sailors rated > 7 who’ve reserved a red boat {S | S Sailors S.rating > 7 R(R Reserves R.sid = S.sid B(B Boats B.bid = R.bid B.color = „red‟))} • Observe how the parentheses control the scope of each quantifier’s binding. (Similar to SQL!)
  • 9. Division (makes more sense here???) Find sailors who’ve reserved all boats (hint, use ) {S | S Sailors B Boats ( R Reserves (S.sid = R.sid B.bid = R.bid))} • Find all sailors S such that for each tuple B in Boats there is a tuple in Reserves showing that sailor S has reserved it.
  • 10. Division – a trickier example… Find sailors who‟ve reserved all Red boats {S | S Sailors B Boats ( B.color = ‘red’ R(R Reserves S.sid = R.sid B.bid = R.bid))} Alternatively… {S | S Sailors B Boats ( B.color ‘red’ R(R Reserves S.sid = R.sid B.bid = R.bid))}
  • 11. a b is the same as a b b • If a is true, b must be true for the implication T F to be true. If a is true and b is false, the T T F implication evaluates to false. a • If a is not true, we don’t care about b, the F T T expression is always true.
  • 12. Unsafe Queries, Expressive Power • syntactically correct calculus queries that have an infinite number of answers! Unsafe queries. – e.g., S | S Sailors – Solution???? Don’t do that! • Expressive Power (Theorem due to Codd): – every query that can be expressed in relational algebra can be expressed as a safe query in DRC / TRC; the converse is also true. • Relational Completeness: Query language (e.g., SQL) can express every query that is expressible in relational algebra/calculus. (actually, SQL is more powerful, as we will see…)
  • 13. Summary • The relational model has rigorously defined query languages — simple and powerful. • Relational algebra is more operational – useful as internal representation for query evaluation plans. • Relational calculus is non-operational – users define queries in terms of what they want, not in terms of how to compute it. (Declarative) • Several ways of expressing a given query – a query optimizer should choose the most efficient version. • Algebra and safe calculus have same expressive power – leads to the notion of relational completeness.
  • 14. Midterm I - Info • Remember - Lectures, Sections, Book & HW1 • 1 Cheat Sheet (2 sided, 8.5x11) - No electronics. • Tues 2/21 in class • Topics: next
  • 15. Midterm I - Topics • Ch 1 - Introduction - all sections • Ch 3 - Relational Model - 3.1 thru 3.4 • Ch 9 - Disks and Files - all except 9.2 (RAID) • Ch 8 - Storage & Indexing - all • Ch 10 - Tree-based IXs - all • Ch 11 - Hash-based IXs - all • Ch 4 - Rel Alg & Calc - all (except DRC 4.3.2)
  • 16. Addendum: Use of • x (P(x)) - is only true if P(x) is true for every x in the universe • Usually: x ((x Boats) (x.color = “Red”) • logical implication, a b means that if a is true, b must be true a b is the same as a b
  • 17. Find sailors who’ve reserved all boats {S | S Sailors B( (B Boats) R(R Reserves S.sid = R.sid B.bid = R.bid))} • Find all sailors S such that for each tuple B either it is not a tuple in Boats or there is a tuple in Reserves showing that sailor S has reserved it. {S | S Sailors B( (B Boats) R(R Reserves S.sid = R.sid B.bid = R.bid))}
  • 18. ... reserved all red boats {S | S Sailors B( (B Boats B.color = “red”) R(R Reserves S.sid = R.sid B.bid = R.bid))} • Find all sailors S such that for each tuple B either it is not a tuple in Boats or there is a tuple in Reserves showing that sailor S has reserved it. {S | S Sailors B( (B Boats) (B.color “red”) R(R Reserves S.sid = R.sid B.bid = R.bid))}