1.3 KiB
1.3 KiB
up::BDD language de requête #s/informatique
Une requête conjonctive sur un shéma de base données D est une expression de la forme :
ans(u) \leftarrow R_1(u_1),\ldots,R_n(u_n)
et se lit ans est vrai si R_1, R_2, \ldots, R_n sont vraies
-
ans(u)est appelé la tête de la règle -
R_1(u_1), \ldots, R_n(u_n)est appelé le corps de la règle -
R_iest un nom de relation deD -
ans \notin Dest un nom de relation -
u_iest une expression de la formee_1, e_2, \ldots, e_{m_i} -
condition de champs restreint
- chaque variable apparaissant dans la tête doit nécessairement apparaître aussi dans le corps
Pour calculer le résultat de la requête, on doit tester toutes le valuation possibles qui respectent R_1, R,2, \ldots, R_n, et appliquer ces valuation sur la relation ans pour obtenir l'instance de ans.
Exemples
- qui est le réalisateur de dune ?
ans(r) \leftarrow films("dune", r, a)- le résultat est
"Lynch"- Car seule une valuation respecte
films("dune", r, a)(c'est-à-dire un film nommé "dune" avec le réalisateur et l'année correspondante dans la relation), et que cette valuation doner="Lynch"
- Car seule une valuation respecte
- en quelle année est sorti nikita ?
ans(a) \leftarrow films("nikita", r, a)