IPhone 4: Difference between revisions
en>Bencey this model has iOS5 aswell |
en>Hullaballoo Wolfowitz Reverted 1 pending edit by 115.112.128.234 to revision 591121759 by Ged UK |
||
Line 1: | Line 1: | ||
In [[dependency theory (database theory)|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 theory (database theory)|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 <math>R</math> in tables <math>R_1</math> to <math>R_n</math>, the decomposition will be a lossless-join decomposition if you restrict the legal relations on <math>R</math> to a join dependency on <math>R</math> called <math>*(R_1,R_2,...R_n)</math>. | |||
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 [[Soundness|sound]] and [[Completeness|complete]] axiomatization for join dependencies,<ref>S. V. Petrov. Finite axiomatization of languages for representation of system properties. ''Information Sciences'', 47:339-372, 1989.</ref> though axiomatization exist for more expressive dependency languages such as [[full typed dependencies]].<ref>Abiteboul, Hull, Vianu. Foundations of databases. Chapter 8, Bibliographic notes</ref> However, implication of join dependencies is decidable.<ref>ibid, Theorem 8.4.12</ref> | |||
== Formal definition == | |||
{{quote| | |||
Let <math>R</math> be a relation schema and let <math>R_1, R_2, ..., R_n</math> be a decomposition of <math>R</math>. <br /> | |||
The relation <math>r(R)</math> ''satisfies'' the join dependency <math>*(R_1,R_2,...R_n)</math> if <math>\bowtie_{i = 1}^n \Pi_{R_i}(r) = r</math>. <br /> | |||
A join dependency is trivial if one of the <math>R_i</math> is <math>R</math> itself. | |||
|Silberschatz, Korth. ''Database System Concepts'', 1st Edition<ref>Silberschatz, Korth. ''Database System Concepts'', 1st Edition</ref>}} | |||
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 <math>X \twoheadrightarrow Y</math> [[iff]] ''R'' satisfies <math>*(X\cup Y, X\cup(U-Y))</math> | |||
== 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, courier), (customer-name, courier), (order-number,pizza-name)), | |||
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. | |||
==See also== | |||
* [[Chase (algorithm)]] | |||
* [[Universal relation assumption]] | |||
== References == | |||
{{Ibid|date=December 2013}} | |||
{{Reflist}} | |||
{{Database normalization}} | |||
{{DEFAULTSORT:Join Dependency}} | |||
[[Category:Database normalization]] |
Revision as of 19:25, 28 January 2014
In 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 in tables to , the decomposition will be a lossless-join decomposition if you restrict the legal relations on to a join dependency on called .
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,[1] though axiomatization exist for more expressive dependency languages such as full typed dependencies.[2] However, implication of join dependencies is decidable.[3]
Formal definition
31 year-old Systems Analyst Bud from Deep River, spends time with pursuits for instance r/c cars, property developers new condo in singapore singapore and books. Last month just traveled to Orkhon Valley Cultural Landscape.
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 iff R satisfies
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, courier), (customer-name, courier), (order-number,pizza-name)), 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.
See also
References
Template:Ibid 43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.