SlideShare a Scribd company logo
METU Department of Computer Eng Ceng 302 Introduction to DBMS Relational Database Design Algorithms by  Pinar Senkul resources: mostly froom Elmasri, Navathe and other books
Outline Designing a Set of Relations   Properties of Relational Decompositions Algorithms for Relational Database Schema
DESIGNING A SET OF RELATIONS  Goals :  Lossless join property (a must) . Dependency preservation property .
Properties of Relational Decompositions Universal Relation Schema : a relation schema R={A 1 , A 2,  …, A n } that includes all the attributes of the database. Universal relation assumption : every attribute name is unique. Decomposition : The process of decomposing the universal relation schema R into a set of relation schemas D = {R 1 ,R 2 , …, R m } that will become the relational database schema by using the functional dependencies.
Properties of Relational Decompositions  Attribute preservation condition : Each attribute in R will appear in at least one relation schema R i  in the decomposition so that no attributes are “lost”. Another goal of decomposition is to have each individual relation R i  in the decomposition D be in BCNF or 3NF.  Additional properties of decomposition  are needed to prevent from generating spurious tuples
Properties of Relational Decompositions  Dependency Preservation Property of a Decomposition  :  Definition:   Given a set of dependencies  F  on  R , the  projection  of  F  on  R i , denoted by   Ri ( F )  where  R i  is a subset of  R , is the set of dependencies  X  Y  in  F +  such that the attributes in  X     Y  are all contained in  R i .  Hence, the projection of F on each relation schema R i  in the decomposition D is the set of functional dependencies in F + , the closure of F, such that all their left- and right-hand-side attributes are in R i .
Properties of Relational Decompositions  Dependency Preservation Property of a Decomposition (cont.) : Dependency Preservation Property :  a decomposition  D  = { R 1 , R 2 , ...,  R m } of  R  is  dependency-preserving  with respect to  F  if the union of the projections of  F  on each  R i  in  D  is equivalent to  F ; that is,  ((  R1 ( F ))     (  Rm ( F ))) +  =  F +   Claim 1:  It is always possible to find a dependency-preserving decomposition  D  with respect to  F  such that each relation  R i  in  D  is in 3NF.
Properties of Relational Decompositions  Lossless (Non-additive) Join Property of a Decomposition :  Definition:   Lossless join property :  a decomposition  D  = { R 1 ,  R 2 , ...,  R m } of  R  has the  lossless (nonadditive) join property  with respect to the set of dependencies  F  on  R  if, for  every  relation state  r  of  R  that satisfies  F , the following holds, where * is the natural join of all the relations in  D :  * (  R1 ( r ), ...,   Rm ( r )) =  r Note : The word loss in  lossless  refers to  loss of information,  not to loss of tuples. In fact, for “loss of information” a  better term is “ addition of spurious information ”
Properties of Relational Decompositions Testing Binary Decompositions for Lossless Join Property :  Binary Decomposition : decomposition of a relation  R  into two relations.  PROPERTY  (lossless join test for binary decompositions):  A decomposition  D  = { R 1 ,  R 2 } of  R  has the lossless join property with respect to a set of functional dependencies  F  on  R if and only if  either The f.d. (( R 1   ∩  R 2 )    ( R 1 -  R 2 )) is in  F + , or The f.d. (( R 1   ∩  R 2 )    ( R 2  -  R 1 )) is in  F + .
Properties of Relational Decompositions  Lossless (Non-additive) Join Property of a Decomposition (cont.) :  Algorithm: Testing for Lossless Join Property   Input:  A universal relation  R , a decomposition  D  = { R 1 ,  R 2 , ...,  R m } of  R , and a set  F  of functional dependencies.  1.  Create an initial matrix  S  with one row  i  for each relation  R i  in  D , and one column  j  for each attribute  A j  in  R. 2.  Set  S ( i , j ):= b ij  for all matrix entries. (* each b ij  is a distinct symbol associated with indices (i,j) *). 3.  For each row  i  representing relation schema  R i {for each column j representing attribute  A j   {if (relation  R i  includes attribute  A j ) then set  S ( i , j ):=  a j ;};}; (* each  a j  is a distinct symbol associated with index ( j ) *)
Properties of Relational Decompositions Lossless (Non-additive) Join Property of a Decomposition (cont.) :  Algorithm : Testing for Lossless Join Property   (cont.) 4.  Repeat the following loop until a  complete loop execution  results in no changes to  S         {for each functional dependency  X      Y  in  F   {for all rows in  S which have the same symbols  in the columns  corresponding to attributes in  X   {make the symbols in each column that correspond to an attribute in  Y  be the same in all  these rows as follows: if any of the rows has an “ a ” symbol for the column, set the other rows to that  same  “ a ” symbol in the column. If no “ a ” symbol exists for the attribute in any of the rows, choose one of the “ b ” symbols that appear in one of the rows for the attribute and set the other rows to that same “ b ” symbol in the column ;};};}; 5.  If a row is made up entirely of “ a ” symbols, then the decomposition has the lossless join property; otherwise it does not.
Properties of Relational Decompositions    Lossless (nonadditive) join test for  n -ary decompositions.  (a) Case 1: Decomposition of EMP_PROJ into EMP_PROJ1 and EMP_LOCS  fails test.  (b) A decomposition of EMP_PROJ that has the lossless join property.
Properties of Relational Decompositions  Lossless (nonadditive) join test for  n -ary decompositions.   (c) Case 2: Decomposition of EMP_PROJ into EMP, PROJECT, and WORKS_ON satisfies test.
Properties of Relational Decompositions  Successive Lossless Join Decomposition :  Claim 2 (Preservation of non-additivity in successive decompositions):   If a decomposition  D  = { R 1 ,  R 2 , ...,  R m } of  R   has the lossless (non-additive) join property with respect to a  set of functional dependencies  F  on  R , and  if a decomposition  D i  = { Q 1 ,  Q 2 , ...,  Q k } of  R i   has the lossless (non-additive) join property with respect to  the projection of  F  on  R i ,  then the decomposition  D 2  = { R 1 ,  R 2 , ...,  R i-1 ,  Q 1 ,  Q 2 , ...,  Q k ,  R i+1 , ...,  R m } of  R has the   non-additive join property  with respect to  F .
Algorithms for Relational Database Schema Design  Algorithm  :  Relational Synthesis into 3NF with Dependency Preservation  ( Relational Synthesis Algorithm)   Input:  A universal relation  R  and a set of functional dependencies  F  on the attributes of  R . 1.  Find a minimal cover  G  for  F ; 2.  For each left-hand-side  X  of a functional dependency that appears in  G , create a relation schema in  D  with attributes { X    { A 1 }   { A 2 } ...    { A k }}, where  X      A 1 ,  X    A 2 , ...,  X    A k  are the only dependencies in  G  with  X  as left-hand-side  ( X  is the  key  of this relation) ; 3.  Place any remaining attributes (that have not been placed in any relation) in a single relation schema to ensure the attribute preservation property.  Claim 3:   Every relation schema created by this algorithm is in 3NF.
Algorithms for Relational Database Schema Design  Algorithm :  Relational Synthesis into 3NF with Dependency Preservation and Lossless (Non-Additive) Join Property Input:  A universal relation  R  and a set of functional dependencies  F  on the attributes of  R . 1.  Find a minimal cover  G  for  F. 2. For each left-hand-side  X  of a functional dependency that appears in  G,  create a relation schema in  D  with attributes  { X     { A 1 }    { A 2 } ...     { A k }}, where  X      A 1 ,  X      A 2 , ...,  X      A k  are the only dependencies in  G  with  X  as left-hand-side ( X  is the  key  of this relation). 3.  If none of the relation schemas in  D  contains a key of  R , then create one more relation schema in  D  that contains attributes that form a key of  R .
Algorithms for Relational Database Schema Design  Example: R={ssn,ename,bdate,address,dno,dname,dmgrssn} {ssn}   {ename,bdate,address,dno} {dno }   {dname,dmgrssn} R1 = {ssn,ename,bdate,address,dno} R2 = {dno,dname,dmgrssn}
Algorithms for Relational Database Schema Design  Algorithm:  Relational Decomposition into BCNF with Lossless (non-additive) join property Input:  A universal relation  R  and a set of functional dependencies  F  on the attributes of  R . 1.  Set D := {R}; 2.  While there is a relation schema  Q  in  D  that is not in BCNF  do {   choose a relation schema  Q  in  D  that is not in BCNF;       find a functional dependency  X     Y  in  Q  that violates BCNF;       replace  Q  in  D  by two relation schemas ( Q  -  Y ) and ( X      Y ); };  Assumption :  No null values are allowed for the join attributes.
Algorithms for Relational Database Schema Design  Example: R={student, course, instructor} {student, course}   {instructor} {instructor }   {course} R1 = {student, instructor} R2 = {instructor, course}
Algorithms for Relational Database Schema Design   Issues with null-value joins.  (a) Some EMPLOYEE tuples have null for the join attribute DNUM.
Algorithms for Relational Database Schema Design   Issues with null-value joins.  (b) Result of applying NATURAL JOIN to the EMPLOYEE and DEPARTMENT relations. (c) Result of applying LEFT OUTER JOIN to EMPLOYEE and DEPARTMENT.
Algorithms for Relational Database Schema Design    The “dangling tuple” problem.
Algorithms for Relational Database Schema Design   The “dangling tuple” problem.  (b) The relation EMPLOYEE_2 (includes DNUM attribute with null values).  (c) The relation EMPLOYEE_3 (includes DNUM attribute but does not include tuples for which DNUM has null values).
Algorithms for Relational Database Schema Design Discussion of Normalization Algorithms: Problems: The database designer must first specify  all  the relevant functional dependencies among the database attributes.  It is not always possible to find a decomposition into relation schemas that preserves dependencies and allows each relation schema in the decomposition to be in BCNF (instead of 3NF as in Algorithm 11.4).

More Related Content

PDF
7 relational database design algorithms and further dependencies
PPT
DBMS Canonical cover
PPTX
Decomposition using Functional Dependency
PPT
7. Relational Database Design in DBMS
PPTX
Decomposition methods in DBMS
PPTX
Theory of dependencies in relational database
PPT
Unit05 dbms
7 relational database design algorithms and further dependencies
DBMS Canonical cover
Decomposition using Functional Dependency
7. Relational Database Design in DBMS
Decomposition methods in DBMS
Theory of dependencies in relational database
Unit05 dbms

What's hot (20)

PPT
Database normalization
PPT
Multivalued dependency
PDF
Cs501 fd nf
PPTX
Functional dependancy
PPT
Normalization
PPT
PPT
6. Integrity and Security in DBMS
PPT
Relational algebra-and-relational-calculus
PPTX
Relational database
PDF
Functional dependency and normalization
PDF
Dbms unit-3
PDF
5 the relational algebra and calculus
PPTX
Relational Algebra Introduction
PPTX
Functional dependencies and normalization
PPTX
Join dependency
PPTX
Chapter 7 relation database language
PPT
Chapter10
PPTX
Dbms relational model
PDF
Relational Algebra & Calculus
PPTX
Functional dependencies and normalization for relational databases
Database normalization
Multivalued dependency
Cs501 fd nf
Functional dependancy
Normalization
6. Integrity and Security in DBMS
Relational algebra-and-relational-calculus
Relational database
Functional dependency and normalization
Dbms unit-3
5 the relational algebra and calculus
Relational Algebra Introduction
Functional dependencies and normalization
Join dependency
Chapter 7 relation database language
Chapter10
Dbms relational model
Relational Algebra & Calculus
Functional dependencies and normalization for relational databases
Ad

Viewers also liked (6)

PPTX
Who Says B2B Research is Boring and Emotionless?
PPTX
Epi & Epc
PDF
Close quarters battle (cqb ).ppt
PDF
Database design & Normalization (1NF, 2NF, 3NF)
PDF
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Who Says B2B Research is Boring and Emotionless?
Epi & Epc
Close quarters battle (cqb ).ppt
Database design & Normalization (1NF, 2NF, 3NF)
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Ad

Similar to Normalization (20)

PPT
For mapping a category whose defining superclass Additional02.ppt
PDF
L8 design1
PPT
Function Dependencies and Normalization
PPT
Mapping EER Model Constructs to Relations ADB_05_BRvs.ppt
PPT
Normalization
PPT
Module 4- Database Management System by Navathe
PDF
RDBMS ER2 Relational
PPT
AXSARFERHBYUJKIOPOOIU7URTGERFEWRFDSFVDGREYGTH
PPTX
ERD_to_Rel2.PPThhhhhhhhhhhhhhhhhhhh.pptx
PPTX
Normalization.pptx Functional dependence
PPT
Normalization_dsa_project_easy_with_graph.ppt
PPTX
Fd & Normalization - Database Management System
PDF
PVP19 DBMS UNIT-4 Material.pdfvh kk ghkd DL of child gf
PDF
Introduction to database-Normalisation
PDF
Class XI CH 2 (relations and functions)
PPT
Module 2 - part i
PPT
Cross-reference or relationship relation optionAdditional01.ppt
PDF
L9 design2
For mapping a category whose defining superclass Additional02.ppt
L8 design1
Function Dependencies and Normalization
Mapping EER Model Constructs to Relations ADB_05_BRvs.ppt
Normalization
Module 4- Database Management System by Navathe
RDBMS ER2 Relational
AXSARFERHBYUJKIOPOOIU7URTGERFEWRFDSFVDGREYGTH
ERD_to_Rel2.PPThhhhhhhhhhhhhhhhhhhh.pptx
Normalization.pptx Functional dependence
Normalization_dsa_project_easy_with_graph.ppt
Fd & Normalization - Database Management System
PVP19 DBMS UNIT-4 Material.pdfvh kk ghkd DL of child gf
Introduction to database-Normalisation
Class XI CH 2 (relations and functions)
Module 2 - part i
Cross-reference or relationship relation optionAdditional01.ppt
L9 design2

More from avniS (8)

PPT
Transaction unit 1 topic 4
PPT
Transaction unit1 topic 2
PPT
Sequences
PPT
Locks with updt nowait
PPT
Locking unit 1 topic 3
PPT
3 phases in transactions 3 units
PPT
Overview of query evaluation
PPT
Changing trends in sw development
Transaction unit 1 topic 4
Transaction unit1 topic 2
Sequences
Locks with updt nowait
Locking unit 1 topic 3
3 phases in transactions 3 units
Overview of query evaluation
Changing trends in sw development

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPT
Teaching material agriculture food technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
MYSQL Presentation for SQL database connectivity
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Spectral efficient network and resource selection model in 5G networks
Encapsulation theory and applications.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Spectroscopy.pptx food analysis technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Mobile App Security Testing_ A Comprehensive Guide.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Teaching material agriculture food technology
Network Security Unit 5.pdf for BCA BBA.
sap open course for s4hana steps from ECC to s4
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MYSQL Presentation for SQL database connectivity
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation_ Review paper, used for researhc scholars
Programs and apps: productivity, graphics, security and other tools
Spectral efficient network and resource selection model in 5G networks

Normalization

  • 1. METU Department of Computer Eng Ceng 302 Introduction to DBMS Relational Database Design Algorithms by Pinar Senkul resources: mostly froom Elmasri, Navathe and other books
  • 2. Outline Designing a Set of Relations Properties of Relational Decompositions Algorithms for Relational Database Schema
  • 3. DESIGNING A SET OF RELATIONS Goals : Lossless join property (a must) . Dependency preservation property .
  • 4. Properties of Relational Decompositions Universal Relation Schema : a relation schema R={A 1 , A 2, …, A n } that includes all the attributes of the database. Universal relation assumption : every attribute name is unique. Decomposition : The process of decomposing the universal relation schema R into a set of relation schemas D = {R 1 ,R 2 , …, R m } that will become the relational database schema by using the functional dependencies.
  • 5. Properties of Relational Decompositions Attribute preservation condition : Each attribute in R will appear in at least one relation schema R i in the decomposition so that no attributes are “lost”. Another goal of decomposition is to have each individual relation R i in the decomposition D be in BCNF or 3NF. Additional properties of decomposition are needed to prevent from generating spurious tuples
  • 6. Properties of Relational Decompositions Dependency Preservation Property of a Decomposition : Definition: Given a set of dependencies F on R , the projection of F on R i , denoted by  Ri ( F ) where R i is a subset of R , is the set of dependencies X  Y in F + such that the attributes in X  Y are all contained in R i . Hence, the projection of F on each relation schema R i in the decomposition D is the set of functional dependencies in F + , the closure of F, such that all their left- and right-hand-side attributes are in R i .
  • 7. Properties of Relational Decompositions Dependency Preservation Property of a Decomposition (cont.) : Dependency Preservation Property : a decomposition D = { R 1 , R 2 , ..., R m } of R is dependency-preserving with respect to F if the union of the projections of F on each R i in D is equivalent to F ; that is, ((  R1 ( F ))  (  Rm ( F ))) + = F + Claim 1: It is always possible to find a dependency-preserving decomposition D with respect to F such that each relation R i in D is in 3NF.
  • 8. Properties of Relational Decompositions Lossless (Non-additive) Join Property of a Decomposition : Definition: Lossless join property : a decomposition D = { R 1 , R 2 , ..., R m } of R has the lossless (nonadditive) join property with respect to the set of dependencies F on R if, for every relation state r of R that satisfies F , the following holds, where * is the natural join of all the relations in D : * (  R1 ( r ), ...,  Rm ( r )) = r Note : The word loss in lossless refers to loss of information, not to loss of tuples. In fact, for “loss of information” a better term is “ addition of spurious information ”
  • 9. Properties of Relational Decompositions Testing Binary Decompositions for Lossless Join Property : Binary Decomposition : decomposition of a relation R into two relations. PROPERTY (lossless join test for binary decompositions): A decomposition D = { R 1 , R 2 } of R has the lossless join property with respect to a set of functional dependencies F on R if and only if either The f.d. (( R 1 ∩ R 2 )  ( R 1 - R 2 )) is in F + , or The f.d. (( R 1 ∩ R 2 )  ( R 2 - R 1 )) is in F + .
  • 10. Properties of Relational Decompositions Lossless (Non-additive) Join Property of a Decomposition (cont.) : Algorithm: Testing for Lossless Join Property Input: A universal relation R , a decomposition D = { R 1 , R 2 , ..., R m } of R , and a set F of functional dependencies. 1. Create an initial matrix S with one row i for each relation R i in D , and one column j for each attribute A j in R. 2. Set S ( i , j ):= b ij for all matrix entries. (* each b ij is a distinct symbol associated with indices (i,j) *). 3. For each row i representing relation schema R i {for each column j representing attribute A j {if (relation R i includes attribute A j ) then set S ( i , j ):= a j ;};}; (* each a j is a distinct symbol associated with index ( j ) *)
  • 11. Properties of Relational Decompositions Lossless (Non-additive) Join Property of a Decomposition (cont.) : Algorithm : Testing for Lossless Join Property (cont.) 4. Repeat the following loop until a complete loop execution results in no changes to S       {for each functional dependency X  Y in F {for all rows in S which have the same symbols in the columns corresponding to attributes in X {make the symbols in each column that correspond to an attribute in Y be the same in all these rows as follows: if any of the rows has an “ a ” symbol for the column, set the other rows to that same “ a ” symbol in the column. If no “ a ” symbol exists for the attribute in any of the rows, choose one of the “ b ” symbols that appear in one of the rows for the attribute and set the other rows to that same “ b ” symbol in the column ;};};}; 5. If a row is made up entirely of “ a ” symbols, then the decomposition has the lossless join property; otherwise it does not.
  • 12. Properties of Relational Decompositions Lossless (nonadditive) join test for n -ary decompositions. (a) Case 1: Decomposition of EMP_PROJ into EMP_PROJ1 and EMP_LOCS fails test. (b) A decomposition of EMP_PROJ that has the lossless join property.
  • 13. Properties of Relational Decompositions Lossless (nonadditive) join test for n -ary decompositions. (c) Case 2: Decomposition of EMP_PROJ into EMP, PROJECT, and WORKS_ON satisfies test.
  • 14. Properties of Relational Decompositions Successive Lossless Join Decomposition : Claim 2 (Preservation of non-additivity in successive decompositions): If a decomposition D = { R 1 , R 2 , ..., R m } of R has the lossless (non-additive) join property with respect to a set of functional dependencies F on R , and if a decomposition D i = { Q 1 , Q 2 , ..., Q k } of R i has the lossless (non-additive) join property with respect to the projection of F on R i , then the decomposition D 2 = { R 1 , R 2 , ..., R i-1 , Q 1 , Q 2 , ..., Q k , R i+1 , ..., R m } of R has the non-additive join property with respect to F .
  • 15. Algorithms for Relational Database Schema Design Algorithm : Relational Synthesis into 3NF with Dependency Preservation ( Relational Synthesis Algorithm) Input: A universal relation R and a set of functional dependencies F on the attributes of R . 1. Find a minimal cover G for F ; 2. For each left-hand-side X of a functional dependency that appears in G , create a relation schema in D with attributes { X  { A 1 }  { A 2 } ...  { A k }}, where X  A 1 , X  A 2 , ..., X  A k are the only dependencies in G with X as left-hand-side ( X is the key of this relation) ; 3. Place any remaining attributes (that have not been placed in any relation) in a single relation schema to ensure the attribute preservation property. Claim 3: Every relation schema created by this algorithm is in 3NF.
  • 16. Algorithms for Relational Database Schema Design Algorithm : Relational Synthesis into 3NF with Dependency Preservation and Lossless (Non-Additive) Join Property Input: A universal relation R and a set of functional dependencies F on the attributes of R . 1. Find a minimal cover G for F. 2. For each left-hand-side X of a functional dependency that appears in G, create a relation schema in D with attributes { X  { A 1 }  { A 2 } ...  { A k }}, where X  A 1 , X  A 2 , ..., X  A k are the only dependencies in G with X as left-hand-side ( X is the key of this relation). 3. If none of the relation schemas in D contains a key of R , then create one more relation schema in D that contains attributes that form a key of R .
  • 17. Algorithms for Relational Database Schema Design Example: R={ssn,ename,bdate,address,dno,dname,dmgrssn} {ssn}  {ename,bdate,address,dno} {dno }  {dname,dmgrssn} R1 = {ssn,ename,bdate,address,dno} R2 = {dno,dname,dmgrssn}
  • 18. Algorithms for Relational Database Schema Design Algorithm: Relational Decomposition into BCNF with Lossless (non-additive) join property Input: A universal relation R and a set of functional dependencies F on the attributes of R . 1. Set D := {R}; 2. While there is a relation schema Q in D that is not in BCNF do { choose a relation schema Q in D that is not in BCNF;       find a functional dependency X  Y in Q that violates BCNF;       replace Q in D by two relation schemas ( Q - Y ) and ( X  Y ); }; Assumption : No null values are allowed for the join attributes.
  • 19. Algorithms for Relational Database Schema Design Example: R={student, course, instructor} {student, course}  {instructor} {instructor }  {course} R1 = {student, instructor} R2 = {instructor, course}
  • 20. Algorithms for Relational Database Schema Design Issues with null-value joins. (a) Some EMPLOYEE tuples have null for the join attribute DNUM.
  • 21. Algorithms for Relational Database Schema Design Issues with null-value joins. (b) Result of applying NATURAL JOIN to the EMPLOYEE and DEPARTMENT relations. (c) Result of applying LEFT OUTER JOIN to EMPLOYEE and DEPARTMENT.
  • 22. Algorithms for Relational Database Schema Design The “dangling tuple” problem.
  • 23. Algorithms for Relational Database Schema Design The “dangling tuple” problem. (b) The relation EMPLOYEE_2 (includes DNUM attribute with null values). (c) The relation EMPLOYEE_3 (includes DNUM attribute but does not include tuples for which DNUM has null values).
  • 24. Algorithms for Relational Database Schema Design Discussion of Normalization Algorithms: Problems: The database designer must first specify all the relevant functional dependencies among the database attributes. It is not always possible to find a decomposition into relation schemas that preserves dependencies and allows each relation schema in the decomposition to be in BCNF (instead of 3NF as in Algorithm 11.4).