IX.EXERCICES : REQUETES SQL 6.1) Exercice 1: Base Cinéma
Soit la base Cinéma ayant le schéma Cinéma (Film, Lieu, Pgme_hebdo). Les schémas de relation sont les suivants Films(Titre, Réalisateur, Acteur), Lieu(Salle, Adresse, Tel) et Pgme_hebdo(Salle, Titre, jour, horaire). Exprimer les requêtes suivantes en SQL 1. Qui est le réalisateur de "The big Lebowsky" ?
2. Dans quelles salles passe le film "Cris et chuchotements" (On veut le nom de la salle ainsi que son adresse) ?
3. Quels sont les réalisateurs qui jouent dans leurs propres films
4. Donner les paires de personnes (Pi, P2) telles que Pi a dirigé P2 dans un film et P2 a dirigé Pi dans un autre.
5. Quelles sont les salles où je pourrais voir un film de où joue "J.P Bacri"'?
6. Quelles sont les salles qui programment tous les films de où joue "J.P Bacri"?
7. On veut pour chaque réalisateur, le nombre de ses films qui sont programmés, à condition que ce nombre soit supérieur à 3.
8. Quels sont les réalisateurs qui ont dirigé le plus d'acteurs.
9. Quels sont les réalisateurs qui ont dirigé plus d'acteurs que Bergman et Hitchcok
6.2) Exercice 2: Base Enseignement
Soit la base Enseignement(Etudiant, Cours, Inscrit, Enseignant) où les schémas des relations sont respectivement
Etudiant(NumE, NomE, AgeE)
Cours(NomC, HoraireC, SalleC, EnsC)
Inscrit(NumE, NomC)
Enseignant(NumEn, NomEn, NumDept) Exprimer les requêtes suivantes en SQL 1. Quels sont les cours ayant lieu en salle 123?
2. Quels sont les cours pour lesquels il y a plus de 5 inscrits ?
3. Quels sont les noms des étudiants inscrits à au moins deux cours prévus aux mêmes horaires ?
4. Quels sont les enseignants qui ont moins de 20 étudiants (en considérant tous les cours qu'ils assurent) ?
5. Quels sont les noms des étudiants ayant le plus d'inscriptions ?
6. Quels sont les étudiants qui ne sont inscrits à aucun cours ?
Fichiers et disques
Structure fonctionnelle d'un SGBD Requêtes Gestion de disque
Opérateurs relationnel
Méthodes d'accès
Gestion de tampon
Optimisateur de requêtes
BD
Fichiers et Disques
Lecture : Transfert des données du disque vers la mémoire centrale.
Ecriture : Transfert de la RAM vers le disque.
Ces 2 opérations sont relativement coûteuses par rapport a d'autres opérations qui sont effectuées en RAM. Mais alors, pourquoi ne pas tout garder en RAM ? Il faut savoir qu’avec 1200 Frs, on a 128Mb de RAM ou 7.5Go de disque. Il faut aussi prendre en compte la volatilité de la RAM, la hiérarchie de stockage RAM pour les données en cours d'utilisation. On en déduit qu’il vaut donc mieux utiliser des disques durs pour stocker toute la BD, et des bandes magnétiques ou des CD ROM pour les archives. LES DISQUES Le principal avantage des disques est l’accès direct aux données contre un accès séquentiel pour les bandes. Les données sont stockées et donc accédées par blocs ou pages entières. Contrairement aux RAM, le temps d'accès aux données sur les disques dépend de l'emplacement. Il faut donc bien placer les données pour optimiser les transferts.

|
Les disques ont une vitesse de rotation (ex: 90 tr/s). Les pistes de même diamètre forment un cylindre. Une seule tête peut lire ou écrire. La taille d'un bloc est un multiple de la taille d'un secteur.
|
2.1) Paramètres d'un disque Temps d'accès a un bloc (TAB):
Temps de positionnement (TP): temps nécessaire pour positionner la tête de L/E sur la bonne piste. Il varie entre 1 et 10 ms.
Latence de rotation (LR): temps nécessaire pour positionner la tête de L/E au bon endroit sur la piste. C’est ½ tour de disque en moyenne. Il dépend donc de la vitesse de rotation du disque (exemple pour 90 tr/s : LR= 1/90 /2= 0.0056). Varie entre 0 et 10 ms.
Temps de transfert (TT): temps du transfert du disque à la RAM (ou inversement). Le débit du transfert est de l’ordre de 5 Mo/ms.
Pour optimiser les transferts, il faut optimiser TP et LR en placant correctement les données sur le disque. Exemple de caractéristiques de disques durs : Seagate Hawk 2XL : 2,l5Go. TR = 5.55 ms. TP = 9 ms. Passer d'une piste a une piste voisine = l ms. Le temps de positionnement maximum = 22 ms. 512 octets par secteur. 4559 cylindres. 4 disques double face. Le débit du transfert TT = 5 Mo/s. High performance Barracuda : 9 Go. TR = 4.l ms. TP = 8.5 ms. TT = lO Mo/s.
2.2) Placement des pages sur disque
Le concept du bloc "suivant" :
Mettre les blocs (successifs) sur la même piste,
blocs sur le même cylindre, ensuite
blocs sur le cylindre adjacent
Les blocs d'un fichier doivent être stockés séquentiellement sur le disque ("suivant") pour minimiser TP et LR. Lorsque l'on veut faire un balayage séquentiel d'un fichier, le fait de pouvoir préparer (pré-fetch) plusieurs pages a la fois représente un gain considérable. L'arrangement des fichiers sur les disques est une tache supportée par une couche basse du SGBD (en collaboration avec le système d'exploitation). Elle communique avec la couche juste au dessus par des appels de pages.
Zone Id (identificateur de la zone du tampon)
< 3, 1 > : Page Id (adresse de la page sur le disque)
Page ou bloc : généralement, cela correspond à un secteur (ou alors à un multiple de secteurs). Au niveau du disque : Page Id < n° plateau, face, n° piste, n° secteur >
|