Title | Algèbre Relationnel |
---|---|
Course | Système d'information et gestion en réseau |
Institution | Université Paris II Panthéon-Assas |
Pages | 12 |
File Size | 244.3 KB |
File Type | |
Total Downloads | 40 |
Total Views | 130 |
Cours d'amphi d'algèbre relationnel ...
ALGEBRE RELATIONNEL Une relation - Formellement : sous ensemble de produits cartésiens de N champs d’application (ou rubriques) D1xD2x…xDN - Pratiquement : une relation est représentée par un tableau : N°Etudiant Nom 430 Dupont 651 Durant 961 Martin
Age 20 23 20
Profession du père Maçon Dentiste Maçon
N° étudiant attribut « Maçon » « Dentiste »... Occurrences de la relation (nuplets) Schéma de la relation : R(attribut 1,…, attributn) R(N°Etudiant, Nom, Age, Prof père) • Sur ces relations, existent des opérateurs • Ces opérateurs définissent l’Algèbre relationnelle • Ces opérateurs opèrent sur des relations et produisent de nouvelles relations : construction de nouvelles informations à partir des relations de départ et d’une composition séquentielle d’opérateurs 3 catégories d’opérateurs relationnels : - Opérateurs unaires : affectation, sélection et projection - Opérateurs binaires travaillant sur 2 relations : union, intersection, différence - Opérateurs binaires travaillant sur 2 relations de schémas diférents : jointure, produits cartésiens, division
1. Opérateurs unaires - Afectation Sauvegarder le résultat d’une expression de recherche - Renommer la relation et ses attributs Syntaxe : R(A1…AN) 120) Dans Q2 : attributs de films + réalisateurs
Rés=PROJECTION(Q2,titre) Dans Rés : attributs titre
En SQL SELECT f.titre FROM film as f, réalisateurs as r WHERE f.réalisateur=r.code AND f.durée>120 AND r.nationalité=’USA’; PROJECTION JOINTURE SELECTION
o Nom des acteurs qui n’ont jamais joué dans un film policier 10
Rechercher les acteurs qui ont déjà joué dans un film policier et faire la différence avec les acteurs = acteurs qui n’ont jamais joué dans un film policier.
Q1=SELECTION(catégories,intitulé=’Policier’) Dans Q1 : attributs de catégories
Q2=JOINTURE(Q1,films,catégorie=code) Dans Q2 : attributs de film + attributs de catégories
Q3=JOINTURE(Q2,joue,Q2.référence=joue.référence) Dans Q3 : attributs de films + attributs de joue + attributs de catégories
Q4=JOINTURE(Q3,acteurs,acteurs.code=code_acteur) Dans Q4 : attributs de films + attributs de joue + attributs de catégorie + attributs de acteurs
Q5=PROJECTION(Q4,acteurs.code,nom,prénom) Dans Q5 : attributs code, nom et prénom des acteurs
Q6=acteurs-Q5
OU
Q6=DIFFERENCE(acteurs,Q5) Rés=PROJECTION(Q6,nom)
o Nom et prénoms des réalisateurs qui ont réalisé des films policiers et horreurs Rechercher les acteurs qui réalisé des films policiers et ceux qui ont fais des films d’horreur puis on va faire une intersection entre les deux.
Q1=SELECTION(catégories,intitulé=’Policier’) Q2=JOINTURE(Q1,films,catégorie=code) Q3=JOINTURE(Q2,réalisateurs,réalisateur=réalisateurs.code) Q4=JOINTURE(Q3,réalisateurs.code,nom,prénom) Dans Q4 : attributs de code, nom et prénom des réalisateurs
Q5=SELECTION(catégories,intitulé=’Horreur’) Q6=JOINTURE(Q5,films,catégories=code) Q7=JOINTURE(Q6,réalisateurs,réalisateurs=réalisateurs.code) Q8=PROJECTION(Q7,réalisateurs.code,nom,prénom) Dans Q8 : attributs code, nom et prénom des réalisateurs
Q9=INTERSECTION(Q4,Q8) Dans Q9 : code, nom et prénom
Rés=PROJECTION(Q9,nom,prénom)
o Dans quelles catégories Spielberg n’a-t-il pas réalisé de films ? Q1=SELECTION(réalisateurs,nom=’Spielberg’) Dans Q1 : attributs de réalisateurs
Q2=JOINTURE(Q1,films,code=réalisateur) Dans Q2 : attributs de réalisateurs + attributs de films
Q3=JOINTURE(Q2,catégories,catégories=catégories.code) Dans Q3 : attributs de réalisateurs + attributs de films + attributs de catégories
Q4=PROJECTION(Q3,catégories.code,intitulé) Dans Q4 : attributs de code (catégories) + intitulé
Q5=catégories-Q4
OU
Q5=DIFFERENCE(catégories,Q4) Rés=PROJECTION(Q5,intitulé)
o Acteurs qui jouent dans tous les films de Spielberg On recherche la référence des films de Spielberg puis on divise la table joue par la relation contenant le seul attribut référence des films de S ce qui donnera le résultat
11
code_acteur des acteurs ayant joué dans tous les films de S. Il faudra ensuite faire une jointure avec la table acteurs pour avoir le nom de ces acteurs. Référence / Code_acteur Code_acteur / Référence
Q1=SELECTION(réalisateurs,nom=’Spielberg’) Dans Q1 : attributs de réalisateurs
Q2=JOINTURE(Q1,films,code=réalisateur) Dans Q2 : attributs de réalisateurs + attributs de films
Q3=PROJECTION(Q2,référence) Q4=DIVISION(joue,Q3) Q5=JOINTURE(acteurs,Q4,code=code_acteur) Rés=PROJECTION(Q5,nom,prénom)
o Réalisateurs ayant réalisé des films dans toutes les catégories On recherche pour chaque réalisateur les codes et intitulés des catégories dans lesquelles il a réalisé des films. Il faudra ensuite diviser « réalisateur, code, intitulé » par « code, intitulé » et donnera le résultat « réalisateur ». Il faudra ensuite faire une jointure avec la table réalisateurs pour avoir le nom de ces réalisateurs. Réalisateur Réalisateur Code / Code Intitulé Intitulé
Q1=JOINTURE(film,catégories,catégories=code) Q2=PROJECTION(Q1,code,intitulé,réalisateur) Q3=DIVISION(Q2,catégories) Q4=JOINTURE(Q3,réalisateurs,réalisateurs=code) Dans Q4 : attributs de réalisateurs + réalisateurs
Rés=PROJECTION(Q4,nom,prénom)
12...