1.3 KiB
1.3 KiB
up::BDD language de requête #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_i
est un nom de relation deD
-
ans \notin D
est un nom de relation -
u_i
est 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)