Examen bases de données avancées master il sii 2009 2010 -Ba
Télécharger PDFBases de Données Avancées : Concepts et Applications
Ce document explore les concepts fondamentaux et les applications des bases de données avancées, se concentrant sur les Systèmes de Gestion de Bases de Données (SGBD) orientés objet et les SGBD distribués. Il aborde la modélisation, l'interrogation et l'optimisation des bases de données dans des contextes variés.
Modélisation et Interrogation avec les SGBD Orientés Objet
Principes de la Modélisation Objet
La modélisation d'une base de données objet pour la gestion pédagogique implique la définition d'entités clés et de leurs relations. Considérons le cas suivant :
- Un étudiant est caractérisé par son matricule, nom, prénom, l'année d'obtention du baccalauréat, sa date de naissance et son adresse (composée de la rue, du numéro et de la ville). Il est également caractérisé par la liste des cours qu'il suit.
- Un cours est caractérisé par son code, nom et coefficient. Un cours peut être prérequis à plusieurs autres cours.
- Un enseignant peut enseigner plusieurs cours, tandis qu'un cours est enseigné par un seul enseignant. Ce dernier est caractérisé par son numéro, nom et date de recrutement.
Ce modèle permettrait de déterminer l'âge de chaque étudiant et le nombre d'années d'expérience de chaque enseignant. Un étudiant est identifié par son matricule, l'enseignant par son numéro et un cours par son code.
Définition et Interrogation en SGBD Orientés Objet
La définition du schéma d'une base de données objet s'effectue en ODL (Object Definition Language), qui permet de décrire les classes, leurs attributs et leurs relations. Une fois le schéma défini, l'interrogation des données se réalise via OQL (Object Query Language), un langage puissant pour manipuler des objets complexes.
Voici des exemples de requêtes OQL pour extraire des informations :
- Nom des cours suivis par l'étudiant Karim Salim.
- Les cours enseignés par M. Bouchama et suivis par Karim Salim.
- Nom des étudiants inscrits au module BDA (Bases de Données Avancées).
- La moyenne d'âge des étudiants inscrits dans le cours Compilation.
- Les cours prérequis du cours BDA.
- Les cours où ne sont inscrits que des étudiants âgés de plus de 20 ans.
Optimisation et Gestion des SGBD Distribués
Introduction aux SGBD Distribués
Les Systèmes de Gestion de Bases de Données Distribués (SGBDD) permettent de stocker des données sur plusieurs sites géographiquement dispersés, tout en offrant une vue unifiée aux utilisateurs. Considérons une société algérienne de transport (SAT) gérant des données client et voyage. Le schéma logique des deux tables est le suivant :
- Client(NumC, NomC, Age, Ville)
- Voyage(NumC, Date, Montant)
Dans cet exemple, la table Client se trouve physiquement à Oran, tandis que la table Voyage est à Alger. Pour des besoins de décision à Alger, on souhaite connaître pour chaque ville la moyenne du montant déboursé par les clients âgés entre 18 et 26 ans.
Les requêtes dans un environnement distribué nécessitent une attention particulière :
- a. Il est nécessaire d'écrire la requête SQL appropriée pour exprimer ce besoin.
- b. L'identification des différentes stratégies d'exécution de cette requête est cruciale pour optimiser les performances dans un SGBDD.
Fragmentation Horizontale des Données Client
La société SAT propose des promotions basées sur l'âge et la ville de ses clients. Pour encourager les déplacements des personnes habitant le sud, des réductions préférentielles sont appliquées. Cette complexité justifie une fragmentation horizontale de la table Client, permettant de séparer les clients bénéficiaires de chaque type de réduction dans des fragments distincts.
Les règles de réduction sont les suivantes :
- Clients âgés de moins de 18 ans : bénéficient d'une réduction de 20%.
- Clients âgés entre 18 et 26 ans : bénéficient d'une réduction de 50%. Pour les clients de Tamanrasset ou Tindouf, la réduction est de 80%. Pour Ouargla ou Ghardaïa, elle est de 70%.
- Clients âgés de plus de 60 ans : bénéficient d'une réduction de 40%. Pour les clients de Tamanrasset ou Tindouf, elle est de 50%. Pour Ouargla ou Ghardaïa, aucune réduction.
- Autres clients : aucune réduction. Pour les clients de Tamanrasset ou Tindouf, la réduction est de 60%. Pour Ouargla ou Ghardaïa, aucune réduction.
c. Une fragmentation horizontale de la table client peut être définie pour regrouper les clients bénéficiaires de chaque type de réduction dans un fragment séparé.
d. Il est important de proposer la requête SQL permettant d'effectuer une telle fragmentation, en spécifiant les critères pour chaque fragment.
Réécriture des Requêtes sur un Schéma Fragmenté
e. Lorsqu'une table est fragmentée, les requêtes SQL doivent être réécrites pour interroger les fragments pertinents, afin d'optimiser l'accès aux données. Voici des exemples de requêtes à réécrire sur un schéma de fragmentation :
- 1.
Select * from Client where Age > 30 - 2.
Select * from Client where Age > 60 and Ville = 'Tindouf' - 3.
Select NumC, Ville, Age from Client
f. Enfin, il est essentiel de décrire le schéma de fragmentation dérivée pour la table Voyage, basé sur la fragmentation de la table Client, afin de maintenir la cohérence et l'efficacité des opérations distribuées.
Foire Aux Questions sur les Bases de Données Avancées
Qu'est-ce qu'un SGBD Orienté Objet (SGBDOO) ?
Un SGBDOO est un système de gestion de bases de données qui permet de stocker et de manipuler des objets créés à partir de langages de programmation orientés objet (comme Java ou C++). Il intègre les concepts d'encapsulation, d'héritage et de polymorphisme directement dans le modèle de données, offrant une approche plus naturelle pour certaines applications complexes que les SGBD relationnels traditionnels.
Qu'est-ce que l'ODL et l'OQL ?
L'ODL (Object Definition Language) est un langage de définition de schéma pour les SGBDOO, permettant de spécifier les types d'objets, leurs attributs, leurs méthodes et leurs relations. L'OQL (Object Query Language) est un langage de requête standardisé pour interroger et manipuler les données dans un SGBDOO, offrant des capacités similaires à SQL mais adaptées aux structures d'objets et aux relations complexes.
Pourquoi utiliser la fragmentation horizontale dans un SGBD Distribué ?
La fragmentation horizontale consiste à diviser une table en plusieurs sous-tables (fragments) basées sur un sous-ensemble de lignes. Elle est utilisée dans les SGBD distribués pour améliorer les performances des requêtes en ne parcourant que les fragments pertinents, pour augmenter la disponibilité des données en les répartissant sur différents sites, et pour optimiser la gestion des ressources en plaçant les données proches de leur lieu d'utilisation principal. Cela permet également de gérer plus efficacement la sécurité et la conformité des données.