SlideShare uma empresa Scribd logo
1 de 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))}

Mais conteúdo relacionado

Mais procurados

Automate data warehouse etl testing and migration testing the agile way
Automate data warehouse etl testing and migration testing the agile wayAutomate data warehouse etl testing and migration testing the agile way
Automate data warehouse etl testing and migration testing the agile wayTorana, Inc.
 
10 Regular VS Non Regular Language.pptx
10 Regular VS Non Regular Language.pptx10 Regular VS Non Regular Language.pptx
10 Regular VS Non Regular Language.pptxMuhammadFaizanHameed1
 
React js入門教學
React js入門教學React js入門教學
React js入門教學TaiShunHuang
 
LLAP: Building Cloud First BI
LLAP: Building Cloud First BILLAP: Building Cloud First BI
LLAP: Building Cloud First BIDataWorks Summit
 
ELT vs. ETL - How they’re different and why it matters
ELT vs. ETL - How they’re different and why it mattersELT vs. ETL - How they’re different and why it matters
ELT vs. ETL - How they’re different and why it mattersMatillion
 
Difference between fact tables and dimension tables
Difference between fact tables and dimension tablesDifference between fact tables and dimension tables
Difference between fact tables and dimension tablesKamran Haider
 
ETL Testing Interview Questions and Answers
ETL Testing Interview Questions and AnswersETL Testing Interview Questions and Answers
ETL Testing Interview Questions and AnswersH2Kinfosys
 
Dw & etl concepts
Dw & etl conceptsDw & etl concepts
Dw & etl conceptsjeshocarme
 
MySQL Cluster: El ‘qué’ y el ‘cómo’.
MySQL Cluster: El ‘qué’ y el ‘cómo’.MySQL Cluster: El ‘qué’ y el ‘cómo’.
MySQL Cluster: El ‘qué’ y el ‘cómo’.Keith Hollman
 
Adbms 43 multiversion concurrency control
Adbms 43 multiversion concurrency controlAdbms 43 multiversion concurrency control
Adbms 43 multiversion concurrency controlVaibhav Khanna
 
Query processing and optimization (updated)
Query processing and optimization (updated)Query processing and optimization (updated)
Query processing and optimization (updated)Ravinder Kamboj
 
Zipline - A Declarative Feature Engineering Framework
Zipline - A Declarative Feature Engineering FrameworkZipline - A Declarative Feature Engineering Framework
Zipline - A Declarative Feature Engineering FrameworkDatabricks
 
Simplifying Disaster Recovery with Delta Lake
Simplifying Disaster Recovery with Delta LakeSimplifying Disaster Recovery with Delta Lake
Simplifying Disaster Recovery with Delta LakeDatabricks
 
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...HostedbyConfluent
 
Intro to MySQL Master Slave Replication
Intro to MySQL Master Slave ReplicationIntro to MySQL Master Slave Replication
Intro to MySQL Master Slave Replicationsatejsahu
 
Advanced SQL
Advanced SQLAdvanced SQL
Advanced SQLSabiha M
 

Mais procurados (20)

Automate data warehouse etl testing and migration testing the agile way
Automate data warehouse etl testing and migration testing the agile wayAutomate data warehouse etl testing and migration testing the agile way
Automate data warehouse etl testing and migration testing the agile way
 
10 Regular VS Non Regular Language.pptx
10 Regular VS Non Regular Language.pptx10 Regular VS Non Regular Language.pptx
10 Regular VS Non Regular Language.pptx
 
React js入門教學
React js入門教學React js入門教學
React js入門教學
 
LLAP: Building Cloud First BI
LLAP: Building Cloud First BILLAP: Building Cloud First BI
LLAP: Building Cloud First BI
 
ELT vs. ETL - How they’re different and why it matters
ELT vs. ETL - How they’re different and why it mattersELT vs. ETL - How they’re different and why it matters
ELT vs. ETL - How they’re different and why it matters
 
Difference between fact tables and dimension tables
Difference between fact tables and dimension tablesDifference between fact tables and dimension tables
Difference between fact tables and dimension tables
 
ETL Testing Interview Questions and Answers
ETL Testing Interview Questions and AnswersETL Testing Interview Questions and Answers
ETL Testing Interview Questions and Answers
 
COMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time EnvironmentsCOMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time Environments
 
High Performance PL/SQL
High Performance PL/SQLHigh Performance PL/SQL
High Performance PL/SQL
 
Dw & etl concepts
Dw & etl conceptsDw & etl concepts
Dw & etl concepts
 
MySQL Cluster: El ‘qué’ y el ‘cómo’.
MySQL Cluster: El ‘qué’ y el ‘cómo’.MySQL Cluster: El ‘qué’ y el ‘cómo’.
MySQL Cluster: El ‘qué’ y el ‘cómo’.
 
Adbms 43 multiversion concurrency control
Adbms 43 multiversion concurrency controlAdbms 43 multiversion concurrency control
Adbms 43 multiversion concurrency control
 
Query processing and optimization (updated)
Query processing and optimization (updated)Query processing and optimization (updated)
Query processing and optimization (updated)
 
Zipline - A Declarative Feature Engineering Framework
Zipline - A Declarative Feature Engineering FrameworkZipline - A Declarative Feature Engineering Framework
Zipline - A Declarative Feature Engineering Framework
 
Simplifying Disaster Recovery with Delta Lake
Simplifying Disaster Recovery with Delta LakeSimplifying Disaster Recovery with Delta Lake
Simplifying Disaster Recovery with Delta Lake
 
Informatica slides
Informatica slidesInformatica slides
Informatica slides
 
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
 
Intro to MySQL Master Slave Replication
Intro to MySQL Master Slave ReplicationIntro to MySQL Master Slave Replication
Intro to MySQL Master Slave Replication
 
Advanced SQL
Advanced SQLAdvanced SQL
Advanced SQL
 
Redis vs Memcached
Redis vs MemcachedRedis vs Memcached
Redis vs Memcached
 

Destaque

Nested quantifiers
Nested quantifiersNested quantifiers
Nested quantifiersAli Saleem
 
Nested quantifiers
Nested quantifiersNested quantifiers
Nested quantifiersAli Saleem
 
Predicate calculus
Predicate calculusPredicate calculus
Predicate calculusRajendran
 
Relational algebra in dbms
Relational algebra in dbmsRelational algebra in dbms
Relational algebra in dbmsshekhar1991
 
Predicate Logic
Predicate LogicPredicate Logic
Predicate Logicgiki67
 
Presentation on dbms(relational calculus)
Presentation on dbms(relational calculus)Presentation on dbms(relational calculus)
Presentation on dbms(relational calculus)yourbookworldanil
 
Lecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculusLecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculusemailharmeet
 

Destaque (7)

Nested quantifiers
Nested quantifiersNested quantifiers
Nested quantifiers
 
Nested quantifiers
Nested quantifiersNested quantifiers
Nested quantifiers
 
Predicate calculus
Predicate calculusPredicate calculus
Predicate calculus
 
Relational algebra in dbms
Relational algebra in dbmsRelational algebra in dbms
Relational algebra in dbms
 
Predicate Logic
Predicate LogicPredicate Logic
Predicate Logic
 
Presentation on dbms(relational calculus)
Presentation on dbms(relational calculus)Presentation on dbms(relational calculus)
Presentation on dbms(relational calculus)
 
Lecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculusLecture 06 relational algebra and calculus
Lecture 06 relational algebra and calculus
 

Semelhante a 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
 
Chapter-7 Relational Calculus
Chapter-7 Relational CalculusChapter-7 Relational Calculus
Chapter-7 Relational CalculusKunal Anand
 
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
Relational AlgebraRelational Algebra
Relational AlgebraAmin Omi
 
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
 

Semelhante a 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
 
Chapter-7 Relational Calculus
Chapter-7 Relational CalculusChapter-7 Relational Calculus
Chapter-7 Relational Calculus
 
lecture8Alg.ppt
lecture8Alg.pptlecture8Alg.ppt
lecture8Alg.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...
 
Relational Algebra
Relational AlgebraRelational Algebra
Relational Algebra
 
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
 

Último

Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 

Último (20)

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🔝
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 

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))}