Sponsored Links

Selasa, 05 Juni 2018

Sponsored Links

Dependency Preserving Decomposition in DBMS | Database Management ...
src: i.ytimg.com

In the area of computer science known as dependency theory, a join dependency is a constraint on the set of legal relations over a database scheme. A table T is subject to a join dependency if T can always be recreated by joining multiple tables each having a subset of the attributes of T. If one of the tables in the join has all the attributes of the table T, the join dependency is called trivial.

The join dependency plays an important role in the Fifth normal form, also known as project-join normal form, because it can be proven that if you decompose a scheme R {\displaystyle R} in tables R 1 {\displaystyle R_{1}} to R n {\displaystyle R_{n}} , the decomposition will be a lossless-join decomposition if you restrict the legal relations on R {\displaystyle R} to a join dependency on R {\displaystyle R} called * ( R 1 , R 2 , ... , R n ) {\displaystyle *(R_{1},R_{2},\ldots ,R_{n})} .

Another way to describe a join dependency is to say that the set of relationships in the join dependency is independent of each other.

Unlike in the case of functional dependencies, there is no sound and complete axiomatization for join dependencies, though axiomatization exist for more expressive dependency languages such as full typed dependencies. However, implication of join dependencies is decidable.


Video Join dependency



Formal definition

Let R {\displaystyle R} be a relation schema and let R 1 , R 2 , ... , R n {\displaystyle R_{1},R_{2},\ldots ,R_{n}} be a decomposition of R {\displaystyle R} .

The relation r ( R ) {\displaystyle r(R)} satisfies the join dependency

* ( R 1 , R 2 , ... , R n ) {\displaystyle *(R_{1},R_{2},\ldots ,R_{n})} if ? i = 1 n ? R i ( r ) = r . {\displaystyle \bowtie _{i=1}^{n}\Pi _{R_{i}}(r)=r.}

A join dependency is trivial if one of the R i {\displaystyle R_{i}} is R {\displaystyle R} itself.

2-ary join dependencies are called multivalued dependency as a historical artifact of the fact that they were studied before the general case. More specifically if U is a set of attributes and R a relation over it, then R satisfies X ? Y {\displaystyle X\twoheadrightarrow Y} if and only if R satisfies * ( X ? Y , X ? ( U - Y ) ) . {\displaystyle *(X\cup Y,X\cup (U-Y)).}


Maps Join dependency



Example

Given a pizza-chain that models purchases in table Customer = { order-number, customer-name, pizza-name, courier}. It is obvious that you can derive the following relations:

  • customer-name depends on order-number
  • pizza-name depends on order-number
  • courier depends on order-number

Since the relationships are independent you can say there is a join dependency as follows: *((order-number, customer-name), (order-number, pizza-name), (order-number,courier)).

If each customer has his own courier however, you could have a join-dependency like this: *((order-number, customer-name), (order-number, pizza-name), (order-number, courier), (customer-name, courier)), but *((order-number, customer-name, courier), (order-number, pizza-name)) would be valid as well. This makes it obvious that just having a join dependency is not enough to normalize a database scheme.


Vertical and Horizontal Agorism | The Conscious Resistance Network
src: steemitimages.com


See also

  • Chase (algorithm)
  • Universal relation assumption

Lossless Join Decomposition DBMS Databases Video Lecture for GATE ...
src: i.ytimg.com


References

Source of the article : Wikipedia

Comments
0 Comments