Functional Dependencies: Difference between revisions
Jump to navigation
Jump to search
| Line 114: | Line 114: | ||
* <math>F\to GH</math> | * <math>F\to GH</math> | ||
<math>R={{\{A,B,C,D,E,F,G,H,I,J\}},{A\to BCFIJ,C\to DE,F\to GH}}</math> | <math>R={{\{A,B,C,D,E,F,G,H,I,J\}},{A\to BCFIJ,C\to DE,F\to GH}}</math> | ||
<graphviz> | |||
#generated by /Users/wf/Documents/pyworkspace/dbis-functional-dependencies/functional_dependencies/BCNF.py on 2022-06-14T09:48:59.758052 | |||
digraph functionalDependencySet{ | |||
A [shape=box label="A≡single≡single"] | |||
B [shape=box label="B≡language"] | |||
C [shape=box label="C≡collectionIdd"] | |||
D [shape=box label="D≡collection"] | |||
E [shape=box label="E≡collectionType"] | |||
F [shape=box label="F≡performerId"] | |||
G [shape=box label="G≡performer"] | |||
H [shape=box label="H≡followerCount"] | |||
I [shape=box label="I≡youtubeVideoId"] | |||
J [shape=box label="J≡publicationYear"] | |||
A->B | |||
A->C | |||
A->F | |||
A->I | |||
A->J | |||
C->D | |||
C->E | |||
F->G | |||
F->H | |||
}</graphviz> | |||
= Attribute Closures = | = Attribute Closures = | ||
Revision as of 09:56, 14 June 2022
Notation
In Database theory: <math>\{A,B\}\to \{C,D\}</math> is abbreviated to: <math>AB\to CD</math>
Example
9 single entries for 2022 sorted by social media followers
query
# WF 2022-06-08
# Singles published in 2022
SELECT
?single ?language ?collectionId ?collection ?collectionType ?performerId ?performer ?followerCount ?youtubeVideoId (year(?publicationDate) as ?publicationYear)
WHERE
{
# instanceof
?singleId wdt:P31 wd:Q134556. # Must be of a single
?singleId rdfs:label ?single.
FILTER(LANG(?single)='en')
#https://www.wikidata.org/wiki/Property:P361 - part of / ist Teil von
?singleId wdt:P361 ?collectionId.
?collectionId rdfs:label ?collection.
FILTER(LANG(?collection)='en')
# https://www.wikidata.org/wiki/Property:P407 language/ Sprache des Werkes
?singleId wdt:P407 ?languageId.
?languageId rdfs:label ?language.
FILTER(LANG(?language)='en')
# https://www.wikidata.org/wiki/Property:P1651 YouTube-Video-Kennung
?singleId wdt:P1651 ?youtubeVideoId.
?collectionId wdt:P31 ?collectionTypeId.
?collectionTypeId rdfs:label ?collectionType.
FILTER(LANG(?collectionType)='en').
# https://www.wikidata.org/wiki/Property:P175 Performer /Interpret
?singleId wdt:P175 ?performerId.
?performerId rdfs:label ?performer
FILTER(LANG(?performer)='en')
# https://www.wikidata.org/wiki/Property:P8687 followers / Follower
#{
#SELECT (max(?followerCount) as ?follower)
#WHERE {
?performerId wdt:P8687 ?followerCount.
#}
#GROUP BY ?performerId
#}
#https://www.wikidata.org/wiki/Property:P577 Publication date / Veröffentlichungsdatum
?singleId wdt:P577 ?publicationDate.
FILTER(year(?publicationDate) = 2022).
} ORDER BY DESC(?followerCount)
LIMIT 9
result
| A | B | C | D | E | F | G | H | I | J |
|---|---|---|---|---|---|---|---|---|---|
| single | language | collectionId | collection | collectionType | performerId | performer | followerCount | youtubeVideoId | publicationYear |
| Let Somebody Go | English | http://www.wikidata.org/entity/Q107597380 | Music of the Spheres | album | http://www.wikidata.org/entity/Q83287 | Selena Gomez | 65629044 | EptPhiK_q0E | 2022 |
| As It Was | English | http://www.wikidata.org/entity/Q111343757 | Harry's House | album | http://www.wikidata.org/entity/Q3626966 | Harry Styles | 36156370 | H5v3kku4y6Q | 2022 |
| Let Somebody Go | English | http://www.wikidata.org/entity/Q107597380 | Music of the Spheres | album | http://www.wikidata.org/entity/Q45188 | Coldplay | 23541189 | EptPhiK_q0E | 2022 |
| Bam Bam | English | http://www.wikidata.org/entity/Q56071495 | Camila Cabello singles discography | singles discography | http://www.wikidata.org/entity/Q47447 | Ed Sheeran | 17661915 | -8VfKZCOo_I | 2022 |
| Bam Bam | English | http://www.wikidata.org/entity/Q111083420 | Familia | album | http://www.wikidata.org/entity/Q47447 | Ed Sheeran | 17661915 | -8VfKZCOo_I | 2022 |
| Sacrifice | English | http://www.wikidata.org/entity/Q110400486 | Dawn FM | album | http://www.wikidata.org/entity/Q2121062 | The Weeknd | 15549868 | VafTMsrnSTU | 2022 |
| Out of Time | English | http://www.wikidata.org/entity/Q110400486 | Dawn FM | album | http://www.wikidata.org/entity/Q2121062 | The Weeknd | 15549868 | 2fDzCWNS3ig | 2022 |
| Bam Bam | English | http://www.wikidata.org/entity/Q56071495 | Camila Cabello singles discography | singles discography | http://www.wikidata.org/entity/Q18810940 | Camila Cabello | 12717885 | -8VfKZCOo_I | 2022 |
| Bam Bam | English | http://www.wikidata.org/entity/Q111083420 | Familia | album | http://www.wikidata.org/entity/Q18810940 | Camila Cabello | 12717885 | -8VfKZCOo_I | 2022 |
Functional Dependencies
The functional dependencies in this example are derived from the structure of the SPARQL query
- A≡single
- B≡language
- C≡collectionId
- D≡collection
- E≡collectionType
- F≡performerId
- G≡performer
- H≡followerCount
- I≡youtubeVideoId
- J≡publicationYear
- <math>A\to BCFIJ</math>
- <math>C\to DE</math>
- <math>F\to GH</math>
<math>R={{\{A,B,C,D,E,F,G,H,I,J\}},{A\to BCFIJ,C\to DE,F\to GH}}</math>

Attribute Closures
The attribute closure is the set of all attributes that are "reachable/determinable" from a given attribute node. In this example the results are quite obvious since the functional dependencies form a tree and the reachable nodes are all nodes of the subtree of a given attribute.
| attribute | closure |
|---|---|
| A | ABCDEFGHIJ |
| B | B |
| C | CDE |
| D | D |
| E | E |
| F | FGH |
| G | G |
| H | H |
| I | I |
| J | J |
Synthesis
Links
- https://en.wikipedia.org/wiki/Category:Database_theory
- https://en.wikipedia.org/wiki/Functional_dependency
- https://en.wikipedia.org/wiki/Database_normalization
- https://en.wikipedia.org/wiki/First_normal_form
- https://en.wikipedia.org/wiki/Second_normal_form
- https://en.wikipedia.org/wiki/Third_normal_form
- https://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form
- https://en.wikipedia.org/wiki/Lossless_join_decomposition
- https://en.wikipedia.org/wiki/Candidate_key
- https://en.wikipedia.org/wiki/Surrogate_key
- https://stackoverflow.com/questions/tagged/functional-dependencies