SlideShare una empresa de Scribd logo
1 de 14
03/25/2009 23:59




                   Multivalued Dependencies

                       Fourth Normal Form
                   Reasoning About FD’s + MVD’s


                                                                 1




03/25/2009 23:59




                       Definition of MVD
         !   A multivalued dependency (MVD) on R,
             X!!Y , says that if two tuples of R agree on
             all the attributes of X, then their components in
             Y may be swapped, and the result will be two
             tuples that are also in the relation.
         !   i.e., for each value of X, the values of Y are
             independent of the values of R-X-Y.



                                                                 2
03/25/2009 23:59




                                  Example: MVD
         Drinkers(name, addr, phones, beers)
         ! A drinker’s phones are independent of the

           beers they like.
               name !! phones and name !! beers.
          !   Thus, each of a drinker’s phones appears
              with each of the beers they like in all
              combinations.
          !   This repetition is unlike FD redundancy.
               name ! addr is the only FD.

                                                              3




03/25/2009 23:59




           Tuples Implied by name !! phones

           If we have tuples:

                   name addr         phones      beers
                   sue a             p1          b1
                   sue a             p2          b2
                   sue a             p2          b1
                   sue a             p1          b2
            Then these tuples must also be in the relation.




                                                              4
03/25/2009 23:59




                        Picture of MVD X!!Y


                           X         Y       others

                         equal

                                  exchange




                                                                        5




03/25/2009 23:59




                                 MVD Rules

        !   Every FD is an MVD (promotion).
              –    If X!Y, then swapping Y ’s between two tuples that
                   agree on X doesn’t change the tuples.
              –    Therefore, the “new” tuples are surely in the relation,
                   and we know X!!Y.
      • Complementation : If X!!Y, and Z is all the
        other attributes, then X!!Z.


                                                                        6
03/25/2009 23:59




                    Splitting Doesn’t Hold
         !   Like FD’s, we cannot generally split the left
             side of an MVD.
         !   But unlike FD’s, we cannot split the right side
             either --- sometimes you have to leave several
             attributes on the right side.




                                                               7




03/25/2009 23:59




         Example: Multiattribute Right Sides
        Drinkers(name, areaCode, phone, beers, manf)
         !   A drinker can have several phones, with the
             number divided between areaCode and phone
             (last 7 digits).
         !   A drinker can like several beers, each with its
             own manufacturer.




                                                               8
03/25/2009 23:59




                      Example Continued
         !   Since the areaCode-phone combinations for a
             drinker are independent of the beers-manf
             combinations, we expect that the following
             MVD’s hold:
                name !! areaCode phone
                name !! beers manf




                                                                        9




03/25/2009 23:59




                           Example Data

          Here is possible data satisfying these MVD’s:

          name areaCode     phone              beers            manf
          Sue 650           555-1111     Bud           A.B.
          Sue 650           555-1111     WickedAle     Pete’s
          Sue 415           555-9999     Bud           A.B.
          Sue 415           555-9999     WickedAle     Pete’s

           But we cannot swap area codes or phones by themselves.
           That is, neither name !! areaCode nor name !! phone
           holds for this relation.
                                                                       10
03/25/2009 23:59




                            Fourth Normal Form
         !   The redundancy that comes from MVD’s is not
             removable by putting the database schema in
             BCNF.
         !   There is a stronger normal form, called 4NF,
             that (intuitively) treats MVD’s as FD’s when it
             comes to decomposition, but not when
             determining keys of the relation.



                                                                         11




03/25/2009 23:59




                                  4NF Definition
        •          A relation R is in 4NF if:
                   whenever X!!Y is a nontrivial MVD, then X
                   is a superkey.
              – Nontrivial MVD means that:
                    •   Y is not a subset of X, and
                    •   X and Y are not, together, all the attributes.
              – Note that the definition of “superkey” still depends
                on FD’s only.



                                                                         12
03/25/2009 23:59




                              BCNF Versus 4NF

            !      Remember that every FD X!Y is also an
                   MVD, X!!Y.
            !      Thus, if R is in 4NF, it is certainly in BCNF.
                    –   Because any BCNF violation is a 4NF violation
                        (after conversion to an MVD).
            !      But R could be in BCNF and not 4NF,
                   because MVD’s are “invisible” to BCNF.


                                                                        13




03/25/2009 23:59




                          Decomposition and 4NF
        •          If X!!Y is a 4NF violation for relation R, we
                   can decompose R using the same technique
                   as for BCNF.
              !         XY is one of the decomposed relations.
              !         All but Y – X is the other.




                                                                        14
03/25/2009 23:59




                   Example: 4NF Decomposition
        Drinkers(name, addr, phones, beers)
        FD:       name ! addr
        MVD’s: name !! phones
                  name !! beers
        ! Key is {name, phones, beers}.


        ! All dependencies violate 4NF.




                                                             15




03/25/2009 23:59




                       Example Continued

        • Decompose using name ! addr:
        " Drinkers1(name, addr)
              " In 4NF; only dependency is name ! addr.
        " Drinkers2(name, phones, beers)
              " Not in 4NF. MVD’s name !! phones and
                name !! beers apply. No FD’s, so all three
                attributes form the key.



                                                             16
03/25/2009 23:59




             Example: Decompose Drinkers2
         !   Either MVD name !! phones
             or name !! beers

             tells us to decompose to:
              – Drinkers3(name, phones)
              – Drinkers4(name, beers)




                                                         17




03/25/2009 23:59




              Reasoning About MVD’s + FD’s
        • Problem: given a set of MVD’s and/or FD’s that
          hold for a relation R, does a certain FD or MVD
          also hold in R ?
        • Solution: Use a tableau to explore all
          inferences from the given set, to see if you can
          prove the target dependency.




                                                         18
03/25/2009 23:59




                       Why Do We Care?
        1. 4NF technically requires an MVD violation.
              – Need to infer MVD’s from given FD’s and MVD’s
                that may not be violations themselves.
        2. When we decompose, we need to project
           FD’s + MVD’s.




                                                                19




03/25/2009 23:59




                   Example: Chasing a Tableau
                      With MVD’s and FD’s
         !   To apply a FD, equate symbols, as before.
         !   To apply an MVD, generate one or both of the
             tuples we know must also be in the relation
             represented by the tableau.
         !   We’ll prove:
             if A!!BC and D!C,
             then A!C.



                                                                20
03/25/2009 23:59




                           The Tableau for A->C

         Goal: prove that c1 = c2.
             A         B           C                      D
             a         b1          c1                     d1
                   a             b2        c2        c2 d2

                       a              b2        c2             d1

                                                     Use D!C (first and
     Use A!!BC (first row’s                          third row agree on D,
     D with second row’s BC ).                       therefore agree on C ).
                                                                               21




03/25/2009 23:59




         Example: Transitive Law for MVD’s
         !   If A!!B and B!!C, then A!!C.
               –   Obvious from the complementation rule if the
                   Schema is ABC.
               –   But it holds no matter what the schema; we’ll
                   assume ABCD.




                                                                               22
03/25/2009 23:59




                       The Tableau for A!!C

         Goal: derive tuple (a,b1,c2,d1).
             A          B          C                        D
             a          b1         c1                       d1
                   a                 b2    c2               d2

                       a              b1        c2              d2
                       a              b1        c2              d1

    Use A!!B to swap B from                 Use B!!C to swap C from
    the first row into the second.          the third row into the first.
                                                                            23




03/25/2009 23:59




             Rules for Inferring MVD’s + FD’s
         !   Start with a tableau of two rows.
               –   These rows agree on the attributes of the left side
                   of the dependency to be inferred.
               –   And they disagree on all other attributes.
               –   Use unsubscripted variables where they agree,
                   subscripts where they disagree.




                                                                            24
03/25/2009 23:59




                      Inference: Applying a FD
         !   Apply a FD X!Y by finding rows that agree on
             all attributes of X. Force the rows to agree on
             all attributes of Y.
               –   Replace one variable by the other.
               –   If the replaced variable is part of the goal tuple,
                   replace it there too.




                                                                         25




03/25/2009 23:59




                    Inference: Applying a MVD
         !   Apply a MVD X!!Y by finding two rows that
             agree in X.
               –   Add to the tableau one or both rows that are
                   formed by swapping the Y-components of these
                   two rows.




                                                                         26
03/25/2009 23:59




                                Inference: Goals

           !       To test whether U!V holds, we succeed by
                   inferring that the two variables in each
                   column of V are actually the same.
           !       If we are testing U!!V, we succeed if we
                   infer in the tableau a row that is the original
                   two rows with the components of V
                   swapped.



                                                                       27




03/25/2009 23:59




                             Inference: Endgame

            !      Apply all the given FD’s and MVD’s until we
                   cannot change the tableau.
            !      If we meet the goal, then the dependency is
                   inferred.
            !      If not, then the final tableau is a
                   counterexample relation.
                    –   Satisfies all given dependencies.
                    –   Original two rows violate target dependency.

                                                                       28

Más contenido relacionado

La actualidad más candente

Functional dependencies and normalization
Functional dependencies and normalizationFunctional dependencies and normalization
Functional dependencies and normalization
daxesh chauhan
 
4. SQL in DBMS
4. SQL in DBMS4. SQL in DBMS
4. SQL in DBMS
koolkampus
 
Data Replication In Cloud Computing
Data Replication In Cloud ComputingData Replication In Cloud Computing
Data Replication In Cloud Computing
Rahul Garg
 

La actualidad más candente (20)

trigger dbms
trigger dbmstrigger dbms
trigger dbms
 
Functional dependencies and normalization
Functional dependencies and normalizationFunctional dependencies and normalization
Functional dependencies and normalization
 
DBMS: Types of keys
DBMS:  Types of keysDBMS:  Types of keys
DBMS: Types of keys
 
database language ppt.pptx
database language ppt.pptxdatabase language ppt.pptx
database language ppt.pptx
 
4. SQL in DBMS
4. SQL in DBMS4. SQL in DBMS
4. SQL in DBMS
 
Normalization in DBMS
Normalization in DBMSNormalization in DBMS
Normalization in DBMS
 
Subroutines
SubroutinesSubroutines
Subroutines
 
Unit 4 plsql
Unit 4  plsqlUnit 4  plsql
Unit 4 plsql
 
Data Replication In Cloud Computing
Data Replication In Cloud ComputingData Replication In Cloud Computing
Data Replication In Cloud Computing
 
Instruction Set of 8086 Microprocessor
Instruction Set of 8086 MicroprocessorInstruction Set of 8086 Microprocessor
Instruction Set of 8086 Microprocessor
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
 
Dynamic memory allocation in c
Dynamic memory allocation in cDynamic memory allocation in c
Dynamic memory allocation in c
 
DISTRIBUTED DATABASE WITH RECOVERY TECHNIQUES
DISTRIBUTED DATABASE WITH RECOVERY TECHNIQUESDISTRIBUTED DATABASE WITH RECOVERY TECHNIQUES
DISTRIBUTED DATABASE WITH RECOVERY TECHNIQUES
 
PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts
 
File organization and indexing
File organization and indexingFile organization and indexing
File organization and indexing
 
Single linked list
Single linked listSingle linked list
Single linked list
 
1 - Introduction to PL/SQL
1 - Introduction to PL/SQL1 - Introduction to PL/SQL
1 - Introduction to PL/SQL
 
Packages - PL/SQL
Packages - PL/SQLPackages - PL/SQL
Packages - PL/SQL
 
Functional dependency
Functional dependencyFunctional dependency
Functional dependency
 
FUNCTION DEPENDENCY AND TYPES & EXAMPLE
FUNCTION DEPENDENCY  AND TYPES & EXAMPLEFUNCTION DEPENDENCY  AND TYPES & EXAMPLE
FUNCTION DEPENDENCY AND TYPES & EXAMPLE
 

Destacado (8)

Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NFDatabase Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
Database Normalization 1NF, 2NF, 3NF, BCNF, 4NF, 5NF
 
Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)
 
Normalization
NormalizationNormalization
Normalization
 
DBMS - Normalization
DBMS - NormalizationDBMS - Normalization
DBMS - Normalization
 
Databases: Normalisation
Databases: NormalisationDatabases: Normalisation
Databases: Normalisation
 
CSP IP Networks
CSP IP NetworksCSP IP Networks
CSP IP Networks
 
Entity relationship diagram - Concept on normalization
Entity relationship diagram - Concept on normalizationEntity relationship diagram - Concept on normalization
Entity relationship diagram - Concept on normalization
 
Normalization
NormalizationNormalization
Normalization
 

Último

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Último (20)

Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 

Multi Valued Dependency

  • 1. 03/25/2009 23:59 Multivalued Dependencies Fourth Normal Form Reasoning About FD’s + MVD’s 1 03/25/2009 23:59 Definition of MVD ! A multivalued dependency (MVD) on R, X!!Y , says that if two tuples of R agree on all the attributes of X, then their components in Y may be swapped, and the result will be two tuples that are also in the relation. ! i.e., for each value of X, the values of Y are independent of the values of R-X-Y. 2
  • 2. 03/25/2009 23:59 Example: MVD Drinkers(name, addr, phones, beers) ! A drinker’s phones are independent of the beers they like. name !! phones and name !! beers. ! Thus, each of a drinker’s phones appears with each of the beers they like in all combinations. ! This repetition is unlike FD redundancy. name ! addr is the only FD. 3 03/25/2009 23:59 Tuples Implied by name !! phones If we have tuples: name addr phones beers sue a p1 b1 sue a p2 b2 sue a p2 b1 sue a p1 b2 Then these tuples must also be in the relation. 4
  • 3. 03/25/2009 23:59 Picture of MVD X!!Y X Y others equal exchange 5 03/25/2009 23:59 MVD Rules ! Every FD is an MVD (promotion). – If X!Y, then swapping Y ’s between two tuples that agree on X doesn’t change the tuples. – Therefore, the “new” tuples are surely in the relation, and we know X!!Y. • Complementation : If X!!Y, and Z is all the other attributes, then X!!Z. 6
  • 4. 03/25/2009 23:59 Splitting Doesn’t Hold ! Like FD’s, we cannot generally split the left side of an MVD. ! But unlike FD’s, we cannot split the right side either --- sometimes you have to leave several attributes on the right side. 7 03/25/2009 23:59 Example: Multiattribute Right Sides Drinkers(name, areaCode, phone, beers, manf) ! A drinker can have several phones, with the number divided between areaCode and phone (last 7 digits). ! A drinker can like several beers, each with its own manufacturer. 8
  • 5. 03/25/2009 23:59 Example Continued ! Since the areaCode-phone combinations for a drinker are independent of the beers-manf combinations, we expect that the following MVD’s hold: name !! areaCode phone name !! beers manf 9 03/25/2009 23:59 Example Data Here is possible data satisfying these MVD’s: name areaCode phone beers manf Sue 650 555-1111 Bud A.B. Sue 650 555-1111 WickedAle Pete’s Sue 415 555-9999 Bud A.B. Sue 415 555-9999 WickedAle Pete’s But we cannot swap area codes or phones by themselves. That is, neither name !! areaCode nor name !! phone holds for this relation. 10
  • 6. 03/25/2009 23:59 Fourth Normal Form ! The redundancy that comes from MVD’s is not removable by putting the database schema in BCNF. ! There is a stronger normal form, called 4NF, that (intuitively) treats MVD’s as FD’s when it comes to decomposition, but not when determining keys of the relation. 11 03/25/2009 23:59 4NF Definition • A relation R is in 4NF if: whenever X!!Y is a nontrivial MVD, then X is a superkey. – Nontrivial MVD means that: • Y is not a subset of X, and • X and Y are not, together, all the attributes. – Note that the definition of “superkey” still depends on FD’s only. 12
  • 7. 03/25/2009 23:59 BCNF Versus 4NF ! Remember that every FD X!Y is also an MVD, X!!Y. ! Thus, if R is in 4NF, it is certainly in BCNF. – Because any BCNF violation is a 4NF violation (after conversion to an MVD). ! But R could be in BCNF and not 4NF, because MVD’s are “invisible” to BCNF. 13 03/25/2009 23:59 Decomposition and 4NF • If X!!Y is a 4NF violation for relation R, we can decompose R using the same technique as for BCNF. ! XY is one of the decomposed relations. ! All but Y – X is the other. 14
  • 8. 03/25/2009 23:59 Example: 4NF Decomposition Drinkers(name, addr, phones, beers) FD: name ! addr MVD’s: name !! phones name !! beers ! Key is {name, phones, beers}. ! All dependencies violate 4NF. 15 03/25/2009 23:59 Example Continued • Decompose using name ! addr: " Drinkers1(name, addr) " In 4NF; only dependency is name ! addr. " Drinkers2(name, phones, beers) " Not in 4NF. MVD’s name !! phones and name !! beers apply. No FD’s, so all three attributes form the key. 16
  • 9. 03/25/2009 23:59 Example: Decompose Drinkers2 ! Either MVD name !! phones or name !! beers tells us to decompose to: – Drinkers3(name, phones) – Drinkers4(name, beers) 17 03/25/2009 23:59 Reasoning About MVD’s + FD’s • Problem: given a set of MVD’s and/or FD’s that hold for a relation R, does a certain FD or MVD also hold in R ? • Solution: Use a tableau to explore all inferences from the given set, to see if you can prove the target dependency. 18
  • 10. 03/25/2009 23:59 Why Do We Care? 1. 4NF technically requires an MVD violation. – Need to infer MVD’s from given FD’s and MVD’s that may not be violations themselves. 2. When we decompose, we need to project FD’s + MVD’s. 19 03/25/2009 23:59 Example: Chasing a Tableau With MVD’s and FD’s ! To apply a FD, equate symbols, as before. ! To apply an MVD, generate one or both of the tuples we know must also be in the relation represented by the tableau. ! We’ll prove: if A!!BC and D!C, then A!C. 20
  • 11. 03/25/2009 23:59 The Tableau for A->C Goal: prove that c1 = c2. A B C D a b1 c1 d1 a b2 c2 c2 d2 a b2 c2 d1 Use D!C (first and Use A!!BC (first row’s third row agree on D, D with second row’s BC ). therefore agree on C ). 21 03/25/2009 23:59 Example: Transitive Law for MVD’s ! If A!!B and B!!C, then A!!C. – Obvious from the complementation rule if the Schema is ABC. – But it holds no matter what the schema; we’ll assume ABCD. 22
  • 12. 03/25/2009 23:59 The Tableau for A!!C Goal: derive tuple (a,b1,c2,d1). A B C D a b1 c1 d1 a b2 c2 d2 a b1 c2 d2 a b1 c2 d1 Use A!!B to swap B from Use B!!C to swap C from the first row into the second. the third row into the first. 23 03/25/2009 23:59 Rules for Inferring MVD’s + FD’s ! Start with a tableau of two rows. – These rows agree on the attributes of the left side of the dependency to be inferred. – And they disagree on all other attributes. – Use unsubscripted variables where they agree, subscripts where they disagree. 24
  • 13. 03/25/2009 23:59 Inference: Applying a FD ! Apply a FD X!Y by finding rows that agree on all attributes of X. Force the rows to agree on all attributes of Y. – Replace one variable by the other. – If the replaced variable is part of the goal tuple, replace it there too. 25 03/25/2009 23:59 Inference: Applying a MVD ! Apply a MVD X!!Y by finding two rows that agree in X. – Add to the tableau one or both rows that are formed by swapping the Y-components of these two rows. 26
  • 14. 03/25/2009 23:59 Inference: Goals ! To test whether U!V holds, we succeed by inferring that the two variables in each column of V are actually the same. ! If we are testing U!!V, we succeed if we infer in the tableau a row that is the original two rows with the components of V swapped. 27 03/25/2009 23:59 Inference: Endgame ! Apply all the given FD’s and MVD’s until we cannot change the tableau. ! If we meet the goal, then the dependency is inferred. ! If not, then the final tableau is a counterexample relation. – Satisfies all given dependencies. – Original two rows violate target dependency. 28