In database design, a lossless join decomposition is a decomposition of a relation into relations such that a natural join of the two smaller relations yields back the original relation. This is central in removing redundancy safely from databases while preserving the original data.[1] Lossless join can also be called non-additive.[2]

Definition

edit

A relation on schema decomposes losslessly onto schemas and if , that is is the natural join of its projections onto the smaller schemas. A pair is a lossless-join decomposition of or said to have a lossless join with respect to a set of functional dependencies if any relation that satisfies decomposes losslessly onto and .[3]

Decompositions into more than two schemas can be defined in the same way.[4]

Criteria

edit

A decomposition has a lossless join with respect to if and only if the closure of includes or . In other words, one of the following must hold:[4]

Criteria for multiple sub-schemas

edit

Multiple sub-schemas have a lossless join if there is some way in which we can repeatedly perform lossless joins until all the schemas have been joined into a single schema. Once we have a new sub-schema made from a lossless join, we are not allowed to use any of its isolated sub-schema to join with any of the other schemas. For example, if we can do a lossless join on a pair of schemas to form a new schema , we use this new schema (rather than or ) to form a lossless join with another schema (which may already be joined (e.g., )).[vague]

Example

edit
  • Let be the relation schema, with attributes A, B, C and D.
  • Let be the set of functional dependencies.
  • Decomposition into and is lossless under F because and we have a functional dependency . In other words, we have proven that .[5][6]

See also

edit

References

edit
  1. ^ Pohler, K (2015). "Lossless-Join Decomposition: applications in quantitative computing metrics". International Journal of Applied Computer Science. 21 (4): 190–212.
  2. ^ Elmasri, Ramez (2016). Fundamentals of database systems (Seventh ed.). Hoboken, NJ: Pearson. p. 461. ISBN 978-0133970777.
  3. ^ Maier, David (1983). The theory of relational databases (PDF). Computer Science Press. p. 101. ISBN 0-914894-42-0. Retrieved 16 August 2024.
  4. ^ a b Ullman, Jeffrey D. (1988). Principles of Database and Knowledge-base Systems (PDF) (1 ed.). Computer Science Press. p. 397. ISBN 0-88175188-X. Retrieved 16 August 2024.
  5. ^ "Lossless-Join Decomposition". Cs.sfu.ca. Retrieved 2016-02-07.
  6. ^ "www.data-e-education.com - Lossless Join Decomposition". Archived from the original on 2014-02-21. Retrieved 2014-02-12.

📚 Artikel Terkait di Wikipedia

Join dependency

{\displaystyle R} is decomposed in tables R 1 {\displaystyle R_{1}} to R n {\displaystyle R_{n}} , the decomposition will be a lossless-join decomposition if the legal

View (SQL)

become much more difficult. Views can make it easier to create lossless join decomposition. Just as rows in a base table lack any defined ordering, rows

Functional dependency

dependency X → Y can be safely split in two relations having the lossless-join decomposition property, namely into Π X Y ( R ) ⋈ Π X Z ( R ) = R {\displaystyle

Unit of work

management system Equi-join, a type of join where only equal signs are used in the join predicate Lossless join decomposition, decomposition of a relation such

Database normalization

for a particular table. Denormalization Database refactoring Lossless join decomposition "The adoption of a relational model of data ... permits the development

Multivalued dependency

above rules are sound and complete. A decomposition of R into (X, Y) and (X, R − Y) is a lossless-join decomposition if and only if X  ↠ {\displaystyle \twoheadrightarrow

Fifth normal form

in fifth normal form (5NF) or projection-join normal form (PJ/NF) if it cannot have a lossless decomposition into any number of smaller tables. The case

List of algorithms

symmetric sparse matrix before applying the Cholesky decomposition Symbolic Cholesky decomposition: Efficient way of storing sparse matrix Gibbs sampling: