Examen de Base de Données A4–2594422 février 2003Le polycopié et les notes de cours sont autorisés.Le corrigé.1 (1 pt)Quelle est la différence entre le produit cartésien et la jointure entre deux tables.Solution : La jointure est un produit cartésien qui s’effectue sur deux tables qui ontau moins un attribut commun, on dit que la jointure se fait sur ces attributs. Lestuples du résultat sont ceux pour lesquels les attributs de jointure sont égaux.2 (6 pts)Relation des Employés (EMP)EMP(N°E, ENOM, PROF, DATEEMB, SAL, COMM, N°D)N°E :numéro d'employé, clé ENOM :nom de l'employé PROF :profession (directeur n'est pas une profession) DATEEMB :date d'embauche SAL :salaire COMM :commission (un employé peut ne pas avoir de commission) N°D :numéro de département auquel appartient l'employé Relation des Départements (DEPT)DEPT(N°D, DNOM, DIR, VILLE)N°D :numéro de département, clé DNOM :nom du département DIR :directeur du département VILLE :lieu du département (ville) 1Opérations AlgébriquesSoit l'exemple suivant :EMPN°E ENOM PROF DATEEMB SAL COMM N°D10 Joe Ingénieur 1.10.93 4000 3000 320 Jack Technicien 1.5.88 3000 2000 230 Jim Vendeur 1.3.80 5000 5000 140 Lucy Ingénieur 5000 5000 3DEPTN°D DNOM DIR VILLE1 Commercial 30 New York2 Production 20 Houston3 Développement 40 BostonExercice 2-A : (1,5 pts)Calculer, σ (EMP) :(donnez la table résultat)SAL<5000 Solution:N°E ENOM PROF DATEEMB SAL COMM N°D10 Joe ...
Examen de Base de Données A4–25944 22 février 2003 Le polycopié et les notes de cours sont autorisés.
Le corrigé. 1 (1 pt) Quelle est la différence entre le produit cartésien et la jointure entre deux tables. Solution : La jointure est un produit cartésien qui s’effectue sur deux tables qui ont au moins un attribut commun, on dit que la jointure se fait sur ces attributs. Les tuples du résultat sont ceux pour lesquels les attributs de jointure sont égaux.
2 (6 pts) Relation des Employés (EMP)
EMP(N°E, ENOM, PROF, DATEEMB, S
AL, COMM, N°D)
N°E :numéro d'employé, clé ENOM :nom de l'employé PROF :profession (directeur n'est pas une profession) DATEEMB :date d'embauche SAL :salaire COMM :commission (un employé peut ne pas avoir de commission) N°D :numérode département auquel appartient l'employé
Relation des Départements (DEPT)
DEPT(N°D, DNOM, DIR, VILLE)
N°D :numéro de département, clé DNOM :nom du département DIR :directeur du département VILLE :lieu du département (ville)
Quelle est l'expression de l'algèbre relationnelle qui permettrait d'obtenir le nom des employés qui travaillent à New York. Solution: π( EMP∞ (σVILLE='New York') (DEPT)) ENOM EMP.N°D=DEPT.N°D
3 (6 pts) Dans la ville de Taloche pour rendre la circulation fluide et libérer les trottoirs des piquets, aucune voiture ne peut stationner sur les axes de circulations automobiles ou piétonnes. Des places de parking existent en sous-sol ou à l’air libre dans des zones réservées, elles sont la propriété de certains habitants. Les propriétaires de véhicules louent une place de parking pour un certain nombre de mois, ils y conservent leurs véhicules. Lors des déplacements en ville, les habitants peuvent stationner sur des emplacements ad hoc (toujours propriétés d’habitants) pour un certain tarif horaire. L’association des propriétaires de parkings de la ville de Taloche dispose d’une base de données relationnelle pour la gestion des revenus de ces parkings, les relations suivantes sont établies.
Habitant ( idHab, nom, adr, dateArrivée )
Véhicule ( N°v, idHab, dateAchat, prix, km )
Parking ( idPark, localisation, n°, surface )
Propriétaire (idPark, idHab, dateAchat, prix )
Louer ( N°v, idHab, idPark, nbmois )
Stationner (N°v, idHab, idPark, nbheures)
Les clés sont soulignées, les clés étrangères ne sont pas précisées.
3
Question 3-ADonnez les requêtes CREATE des relations : Habitant (1 pt), Véhicule (1 pt), Louer (2 pts). Sans oublier de préciser les contraintes. Ni les clauses ON DELETE et ON UPDATE .
Solution:
CREATE TABLE Habitant ( idHab INTEGER(6), nom VARCHAR(25) NOT NULL , adr VARCHAR(35) NOT NULL , dateArrivée INTEGER(4) NOT NULL , PRIMARY KEY idHab)
CREATE TABLE Véhicule (N°v VARCHAR(9), idHab INTEGER(6), dateAchat INTEGER(4) NOT NULL, prix INTEGER(5), km INTEGER(6), PRIMARY KEY( N°v, idHab) , FOREIGN KEY (idHab) REFERENCES Habitant ON DELETE CASCADE)