You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
2.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

MEMBRE
matricule
nom
espece
metier #affectation #planeteNaiss
Planete
code
denomination coordonnees allegeance population systeme
-- ? Q1). Lister par ordre alphabétique les différentes espèces composant les équipages de vaisseaux dont la base se situe dans le système Corellien.
SELECT espece FROM Mene
-- ? Q2). Trouver le numéro et le modèle du vaisseau transportant le plus de vaisseaux.
-- ? Q3). La requête ci-dessous nest pas optimale. Trouver une autre requête équivalente qui soit plus
-- ? optimisée.
-- SELECT m.matricule , m.nom
-- FROM Membre m, Planete p1, Vaisseau v, Planete p2 WHERE m.planeteNaiss = p1.code AND v.base = p2.code
-- AND m.affectation = v.numero AND p1.code = p2.code AND m.metier = pilote;
-- ? Q4). Quel index permettrait daméliorer également les performances de la requête précédente? Donner la requête permettant de créer cet index.
-- ? Q5). Écrire une fonction PL/pgSQL capaciteEvacuation qui prend en paramètre le code dune planète et retourne le nombre maximal de personnes pouvant être évacuées rapidement.
-- Cela correspond au nombre maximum de passagers pouvant être accueillis par des vaisseaux en état de fonctionnement et basés sur cette planète.
-- Il est possible de répondre à la question suivante même si vous navez pas réussi à répondre à la question 5.
-- ? Q6). Utiliser la fonction capaciteEvacuation pour calculer combien dhabitants ne pourront pas être évacués rapidement de la planète dénommée Coruscent en cas dévacuation de sa population au complet.
-- ? Q7). Écrire une fonction PL/pgSQL maintenance qui prend en paramètre le matricule dun membre déquipage et le code dune planète. Cette fonction répare si nécessaire (autrement dit passe létat dun vaisseau de R à F) tous les vaisseaux basés sur cette la planète. Des exceptions doivent être levées dans plusieurs cas :
-- ? — Une exception no_data_found est levée si aucun membre déquipage ne possède le matricule passé en paramètre.
-- ? — Une exception avec le message Réparation impossible est levée si le membre déquipage associé au matricule nest pas un mécanicien.
-- ? Cette fonction devra utiliser un curseur pour trouver les vaisseaux à réparer.
-- ? Q8). Mettre en place un trigger qui, lorsquune planète change dallégeance, de lempire vers la
-- ? rébellion, détruit tous les vaisseaux stationnés sur cette planète.
-- ? Q9). Supposons que deux sessions S1 et S2 accèdent à la base de données et exécutent la séquence dinstructions ci-dessous. Pour chaque étape, expliquer ce quil se passe en indiquant le résultat des requêtes et en détaillant les mécanismes de verrous mis en jeu.
-- ? Nous supposerons que lautocommit est désactivé dans les deux sessions.