:ft:P ersonnejE mprunt(t)^[8u(E mprunt(u)) =)(9v E mprunt(v)^(v:P ersonne=t:P ersonne)^(u:Livre=v:Livre) )]gLe résultat de la requête contient les valeurs de l’attributP ersonnedes nupletstde la relationE mprunttels que quel que soit un nuplet s’il s’agit d’un livre emprunté (donc d’un nupletudansE mprunt) alors on trouve un nupletvdansE mpruntassociant cette personne à celivre (c’est-à-direv:P ersonne=t:P ersonneetu:Livre=v:Livre).On peut également l’écrire de la manière suivante :ft:P ersonnejE mprunt(t)^[8u:(E mprunt(u))_(9v E mprunt(v)^(v:P ersonne=t:P ersonne)^(u:Livre=v:Livre) )]gCe qui signie que le résultat de la requête contient les valeurs de l’attributP ersonnedesnupletstde la relationE mprunttels que quel que soit un nupletusoit c’est n’est pas unnuplet deE mpruntsoit (implicitement c’est un nuplet deE mpruntet) on trouve un nupletvdansE mpruntassociant cette personne à ce livre (c’est-à-direv:P ersonne=t:P ersonneetu:Livre=v:Livre).D’où dit de manière négative :ft:P ersonnejE mprunt(t)^ :[9u E mprunt(u):(9v E mprunt(v)^(v:P ersonne=t:P ersonne)^(u:Livre=v:Livre) )]gEn SQL, simple traduction de la requête en calcul relationnel :SELECT t.PersonneFROM Emprunt tWHERE NOT EXISTS ( SELECT *FROM Emprunt u WHERE NOT EXISTS ( SELECT *FROM Emprunt vWHERE v.Personne=t.PersonneAND v.Livre=u.Livre))4.Quels sont les livres ayant été empruntés par tout le monde (i.e. tous les em-prunteurs) ?En algèbre relationnelle:¦P ersonne;Livre(E mprunt)¥¦P ersonne(E mprunt)Le résultat de cette requête est calculé en utilisant également l’opérateur de division.La sous-requête¦P ersonne(E mprunt)correspond à la liste des emprunteurs. Le résultat de lasous-requête¦P ersonne;Livre(E mprunt)contient tous les couples(Personne ayant empruntéau moins une fois, Livre emprunté au moins une fois par cette personne). Le résultat de ladivision sera donc la liste des livres associés, dans le résultat de¦P ersonne;Livre(E mprunt), àchacun des emprunteurs apparaissant dans le résultat de la requête¦P ersonne(E mprunt).En calcul relationnel:ft:LivrejE mprunt(t)^[8u(E mprunt(u)) =)(9v E mprunt(v)^(u:Livre=t:Livre)^(v:P ersonne=u:P ersonne) )]gLe résultat de la requête contient les valeurs de l’attributLivredes nupletstde la rela-tionE mprunttels que quel que soit un nuplet s’il s’agit d’un emprunteur (donc d’un nupletudansE mprunt) alors on trouve un nupletvdansE mpruntassociant ce livre à cet emprunteur10
Bases de Données relationnelle : exercices corrigés
Télécharger gratuitement une série d’exercices sur Bases de Données relationnelle : exercices , Document au format PDF de 21 pages.
Catégorie: , type de fichier: PDF, Nombre de page: 21, auteur: , license: , taille de fichier: 284.84 Kb, niveau: , date: , téléchargement: .
Extrait du cours :