Programmation logique : TP1
Soit la base de données suivante :
table vin1
Numéro |
Cru |
Millésime |
Degré |
100 |
Chablis |
1974 |
12 |
110 |
Mercurey |
1978 |
13 |
120 |
Macon |
1977 |
12 |
|
|
table vin2
Numéro |
Cru |
Millésime |
Degré |
100 |
Chablis |
1974 |
12 |
200 |
Sancerre |
1979 |
11 |
210 |
Pouilly |
1980 |
12 |
230 |
Pouilly |
1981 |
12 |
|
|
table viticulteurs
Patronyme |
Ville |
Région |
Nicolas |
Pouilly |
Bourgogne |
Martin |
Bordeaux |
Bordelais |
- Définir les prédicats vin1, vin2 et viticulteurs correspondants aux
tables ci-dessus.
- Interrogez la base : quels sont les vins de la table vin2 du Cru
'Pouilly'?
Quels sont les vins de la table de vin2 de degré 12?
- L'union de deux relations R et S de même schéma est une relation T de même
schéma contenant l'ensemble des tuples appartenant à R ou S ou aux deux
relations.
Définir la table vin3 comme l'union de vin1 et vin2. Quels sont les crus de
degré 12 dans la table vin3?
table vin3 = vin1
vin2
Numéro |
Cru |
Millésime |
Degré |
100 |
Chablis |
1974 |
12 |
110 |
Mercurey |
1978 |
13 |
120 |
Macon |
1977 |
12 |
200 |
Sancerre |
1979 |
11 |
210 |
Pouilly |
1980 |
12 |
230 |
Pouilly |
1981 |
12 |
- Négation par l'échec :
- écrire une question qui renvoie vrai si la table vin2 ne contient rien
- écrire une question qui renvoie vrai si la table vin2 ne contient aucun
vin de 1978
- donnez les noms des crus présents dans la base mais non représentés dans la table vin2.
- La différence de deux relations R et S de même schéma est
une relation T de même schéma contenant les tuples appartenant à R et
n'appartenant pas à S.
Définir la table vin4 comme la différence entre vin1 et vin2.
table vin4 = vin1 vin2
Numéro |
Cru |
Millésime |
Degré |
110 |
Mercurey |
1978 |
13 |
120 |
Macon |
1977 |
12 |
- Le produit cartésien de deux relations R et S est une relation ayant pour
attributs la concaténation de ceux de R et S et dont les tuples sont toutes
les concaténations d'un tuple de R à un tuple de S.
Définir la table vignoble comme le produit cartésien de la table vin4 et des
viticulteurs.
table vignoble = vin4 x viticulteurs
Numéro |
Cru |
Millésime |
Degré |
Patronyme |
Ville |
Régions |
110 |
Mercurey |
1978 |
13 |
Nicolas |
Pouilly |
Bourgogne |
110 |
Mercurey |
1978 |
13 |
Martin |
Bordeaux |
Bordelais |
120 |
Macon |
1977 |
12 |
Nicolas |
Pouilly |
Bourgogne |
120 |
Macon |
1977 |
12 |
Martin |
Bordeaux |
Bordelais |
- La projection d'une relation R de schéma
R(A1,A2,..,An) sur les attributs
(avec ij ik et p<n) est une relation
R'=
de schéma
dont les tuples sont obtenus par élimination des valeurs des
attributs de R n'appartenant pas au schéma de R' et par suppression des tuples en double.
Définir la table vin5 comme la projection de la table vin4 sur les attributs
Cru et Millésime.
table vin5 =
Cru |
Millésime |
Mercurey |
1978 |
Macon |
1977 |
- La restriction de la relation R par une qualification Q est une relation R'=
de même schéma dont les tuples sont ceux de R satisfaisant la qualification
Q.
Définir la table vin6 comme la restriction de la table vin3 aux Millésimes
compris strictement entre 1975 et 1980.
table vin6 =
Numéro |
Cru |
Millésime |
Degré |
110 |
Mercurey |
1978 |
13 |
120 |
Macon |
1977 |
12 |
200 |
Sancerre |
1979 |
11 |
- La jointure de deux relations R et S selon une qualification multi-attributs Q
est l'ensemble des tuples du produit cartésien R fois S satisfaisant la
qualification Q.
Définir la table vin7 comme la jointure des tables vin3 et viticulteurs sur
égalité des attributs Ville et Cru.
table vin7 = vin3
viticulteurs
Numéro |
Cru |
Millésime |
Degré |
Patronyme |
Ville |
Région |
210 |
Pouilly |
1980 |
12 |
Nicolas |
Pouilly |
Bourgogne |
230 |
Pouilly |
1981 |
12 |
Nicolas |
Pouilly |
Bourgogne |
- L'intersection de deux relations R et S de même schéma est une relation T de
même schéma contenant les tuples appartenant à la fois à R et S.
Définir la table vin8 comme l'intersection des tables vin1 et vin2.
table vin8 = vin1
vin2
Numéro |
Cru |
Millésime |
Degré |
100 |
Chablis |
1974 |
12 |
- Le quotient de la relation R de schéma R(A1,A2,...,An) par la sous-relation S
de schéma S(Ap+1,...,An) est la relation Q de schéma Q(A1,...,Ap) formée de
tous les tuples qui concaténés à chacun des tuples S donne toujours un tuple
de R. (
)
Définir les tables vin9 et type comme suit. Puis définir la table cru comme la
division de la table vin9 par la table type (crus ayant des vins de tous les
types de la table type).
table vin9
Cru |
Millésime |
Degré |
Macon |
1977 |
12 |
Macon |
1979 |
14 |
Macon |
1980 |
12 |
Saumur |
1977 |
12 |
Saumur |
1979 |
14 |
Chablis |
1977 |
12 |
|
|
table type
Millésime |
Degré |
1977 |
12 |
1979 |
14 |
|
|
On considère la dynastie de François Ier :
- Définir les prédicats homme, femme et parent. Le prédicat homme (resp. femme) permet
de retrouver tous les hommes (resp. toutes les femmes) de la figure
ci-dessus. Le prédicat parent(X,Y) est vrai si X est parent de Y.
- À partir des prédicats ci-dessus, définir les prédicats pere(X,Y) vrai si X est père de Y et mere(X,Y) vrai si X est mère de Y. Qui est le père d'Henri II ?
- Définir le prédicat fille(X,Y) vrai si X est fille de Y.
- Définir le prédicat prédicat procreer(X,Y) vrai si X et Y ont procréé ensemble.
- Définir le prédicat gdparent(X,Y) vrai si X est un grand parent de Y.
- Définir les prédicats gdpere(X,Y) et gdmere(X,Y).
- Définir le prédicat ancetre(X,Y) vrai si X est un ancêtre de Y. Quels
sont les ancêtres de la reine Margot? Quels sont les ancêtres de Victor Amédée?
- Définir le prédicat frere(X,Y) vrai si X est un frère de Y, définir soeur(X,Y). Henri II est le frère de qui?
- Définir le prédicat oncle(X,Y) vrai si X est un oncle de Y, définir tante(X,Y). Quels sont les couples oncles neveux ?
- Définir le prédicat cousins(X,Y) vrai si X et Y sont cousins (ou
cousines).
- Définir le prédicat issusdegermains(X,Y) vrai si X et Y sont cousins issus-de-germains.
This document was generated using the
LaTeX2HTML translator Version 2K.1beta (1.61)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 sujtp1.tex
The translation was initiated by Florence Bannay on 2003-01-08
Florence Bannay
2003-01-08