Université de La Rochelle Département Informatique M. EBOUEYA Bases de Données

Université de La Rochelle Département Informatique M. EBOUEYA Bases de Données - Le relationnel Objet Exercice 1. Soit le schéma relationnel de base de données suivant : APPARTEMENT (Num_Appart, Adresse, Type, Nb_Pièces) CLIENT (Num_Client, Nom, Prénom, Adresse, Tél, Type_Appart_Préféré, Loyer_Max) PHOTO (Num_Photo, Num_Appart, Date, Commentaire, Photo) Indiquer les problèmes ou insuffisances du modèle relationnel en termes de : pouvoir d'expression du modèle, pouvoir d'expression des requêtes, Définir le domaine de définition des attributs, et notamment les attributs “non standards”. Donner des exemples de requêtes mettant en évidence les insuffisances du modèle relationnel. Proposer un schéma de type relationnel-objet. Exemples de requêtes Quels sont les clients habitant en dehors du département de Charente-Maritime ? Quels sont les types d’appartements préférés de M. Martin ? Quels sont les appartements avec des photos des chambres ? Exercice 2. Vous êtes toujours réfractaire au Relationnel objet ? On souhaite concevoir une base de données décrivant des pièces et leurs composants. Une pièce P est composée de plusieurs composants C, chacun des composants pouvant apparaître plusieurs fois dans une pièce. Une pièce peut elle-même être composant d'une autre pièce. Par exemple, un moteur est un composant d'une voiture, et les bougies sont des composants du moteur. Mastère IMAe – UE –Bases De Données Avancées Année Universitaire 2004/2005 Université de La Rochelle Département Informatique 1. On demande de modéliser ces informations sous forme d'un schéma UML ou entité association, puis de donner le schéma relationnel. Les schémas demandés doivent éviter les redondances et permettre de répondre efficacement au moins aux deux questions suivantes : Q1 : Etant donné une pièce, retrouver ses composants directs (c'est-à-dire sans récursion), et le nombre d'exemplaires de chaque composant. Q2 : Étant donnée une pièce, retrouver toutes les pièces dont elle est un composant. 2. Expliquer comment on obtient ces réponses dans le cas relationnel. 3. Que pourrait apporter une représentation en relationnel objet ? (Donner les scripts de créations, d’insertion et d’extraction de données) Exercice 3. Soit une base de données concernant des bâtiments de guerre. On souhaite en exprimer le schéma en représentation de type relationnel-objet avec des types abstraits de données. Chaque bateau de guerre a les informations suivantes qui lui sont associées : son nom, son tirant en tonnes, son type (destroyer, canonnier,...). Il y a certains bâtiments qui ont des spécificités : les canonniers sont des bateaux qui transportent de grands canons, tels les croiseurs. Pour ce type de bâtiments, on souhaite enregistrer le nombre et le calibre des principaux canons. les porteurs, pour lesquels nous enregistrons la longueur de la piste d'envol et les ensembles de groupes aériens (escadrilles) qui lui sont assignés. les sousmarins, pour lesquels la profondeur de la plongée maximum est connue. Aucun sousmarin n'est canonnier, ni même porteur! les cuirassés sont porteurs et canonniers en même temps, et donc on enregistre pour eux les données pour ces deux types de bâtiments. Donner le diagramme E/R et le schéma relationnel étendu. Montrer comment on pourrait représenter le cuirassé “Ise”, qui avait un tirant de 36000 tonnes, des canons de 20 cm, une piste de 700 m et les groupe d'envols 1 et 2. Université de La Rochelle Département Informatique Exercice 1. Soit le schéma relationnel de base de données suivant : APPARTEMENT (Num_Appart, Adresse, Type, Nb_Pièces) CLIENT (Num_Client, Nom, Prénom, Adresse, Tél, Type_Appart_Préféré, Loyer_Max) PHOTO (Num_Photo, Num_Appart, Date, Commentaire, Photo) Indiquer les problèmes ou insuffisances du modèle relationnel en termes de : pouvoir d'expression du modèle, pouvoir d'expression des requêtes, Définir le domaine de définition des attributs, et notamment les attributs “non standards”. Donner des exemples de requêtes mettant en évidence les insuffisances du modèle relationnel. Proposer un schéma relationnel étendu de type relationnel-objet. Insuffisances du modèle relationnel La modélisation est limitée à des entités et attributs “simples” (nombres, chaînes de caractères), sauf pour les dates pour lesquelles un type spécifique est en général proposé dans les SGBD. Par exemple, l’attribut Adresse contient à la fois la rue, le code postal et la ville, mais ils ne peuvent être différenciés. C’est ce qu’on appelle une donnée complexe. De la même manière, le numéro de téléphone peut contenir l’indicatif du pays et un indicatif régional, mais ils ne peuvent être distingués. Le type d’appartement préféré par un client est limité à un choix simple (1 valeur), alors qu’il pourrait être multiple et complexe (situation, ensoleillement, …). L’attribut Photo contient la liste des pixels de l’image, mais aucun pixel ne constitue une information extractible. Les requêtes sont limitées aux opérateurs standards du langage SQL. Elles ne permettent pas de traiter le contenu des attributs complexes tels qu’une adresse ou un numéro de téléphone (cf. a)). Elles ne permettent pas non plus d’effectuer des opérations de type applicatives sur des attributs tels que des images (extraction, filtrage, …). Domaine de définition des attributs APPARTEMENT (Num_Appart : integer, Adresse : string, Type : integer, Nb_Pièces : integer) CLIENT (Num_Client : integer, Nom : string, Prénom : string, Adresse : string, Tél : string, Type_Appart_Préféré : char, Loyer_Max : float) PHOTO (Num_Photo : integer, Num_Appart : integer, Date : date, Commentaire : string, Photo : string) Exemples de requêtes Université de La Rochelle Département Informatique Quels sont les clients habitant en dehors du département de Charente-Maritime ? Quels sont les types d’appartements préférés de M. Martin ? Quels sont les appartements avec des photos des chambres ? Schéma relationnel étendu de type relationnel-objet APPARTEMENT (Num_Appart : integer, Adresse : adresse, Type : integer, Nb_Pièces : integer) CLIENT (Num_Client : integer, Nom : string, Prénom : string, Adresse : adresse, Tél : téléphone, Type_Appart_Préféré : préférences, Loyer_Max : float) PHOTO (Num_Photo : integer, Num_Appart : integer, Date : date, Commentaire : string, Photo : image) Les attributs en gras sont des types définis par l’utilisateur : adresse : (adr1 :string, code_postal : integer, ville : string) téléphone : (indicatif_pays : integer, indicatif_région : integer, numéro : string) image : list_of (integer) L’image pourrait aussi être représentée en tant que structure complexe, par exemple de type quadtree. Des opérateurs peuvent également être associés à ces types, par exemple des opérateurs spécifiques pour les images (cf. requêtes). On définit alors des “types abstraits de données” (cf. cours et exercice 4). Exercice 2. On souhaite concevoir une base de données décrivant des pièces et leurs composants. Une pièce P est composée de plusieurs composants C, chacun des composants pouvant apparaître plusieurs fois dans une pièce. Une pièce peut elle-même être composant d'une autre pièce. Par exemple, un moteur est un composant d'une voiture, et les bougies sont des composants du moteur. On demande de modéliser ces informations : sous forme d'un schéma entité-association, sous forme d'un schéma relationnel. Les schémas demandés doivent éviter les redondances et permettre de répondre efficacement aux questions suivantes : Etant donné une pièce, retrouver ses composants directs (c'est-à-dire sans récursion), et le nombre d'exemplaires de chaque composant. Etant donnée une pièce, retrouver toutes les pièces dont elle est un composant. Expliquer comment on obtient ces réponses dans le cas relationnel. Que pourrait apporter une représentation en relationnel-objet ? Université de La Rochelle Département Informatique create table PIECE (No_Pièce : integer, Nom : string, Qté_Stock : integer) ; create table COMPOSANT (No_Composé : integer, No_Composant : integer, Nombre : integer) ; select No_Composant, Nombre from COMPOSANT where No_Composé = 12778 ; select No_Composé from COMPOSANT where No_Composant = 26454 ; Représentation en relationnel-objet : create type TYPE_PIECE tuple (No_Pièce : integer, Nom : string, Qté_Stock : integer) ; create table PIECES TYPE_PIECE ; create table COMPOSE (No_Pièce : integer,Composant : setof ref (TYPE_PIECE)) ; Université de La Rochelle Département Informatique Exercice 3. Soit une bases de données concernant des bâtiments de guerre. On souhaite en exprimer le schéma en représentation de type relationnel-objet avec des types abstraits de données. Chaque bateau de guerre a les informations suivantes qui lui sont associées : son nom, son tirant en tonnes, son type (destroyer, canonnier,...). Il y a certains bâtiments qui ont des spécificités : les canonniers sont des bateaux qui transportent de grands canons, tels les croiseurs. Pour ce type de bâtiments, on souhaite enregistrer le nombre et le calibre des principaux canons. les porteurs, pour lesquels nous enregistrons la longueur de la piste d'envol et les ensembles de groupes aériens (escadrilles) qui lui sont assignés. les sousmarins, pour lesquels la profondeur de la plongée maximum est connue. Aucun sousmarin n'est canonnier, ni même porteur! les cuirassés sont porteurs et canonniers en même temps, et donc on enregistre pour eux les données pour ces deux types de bâtiments. Donner le diagramme E/R et le schéma relationnel étendu. Montrer comment on pourrait représenter le cuirassé “Ise”, qui avait un tirant de 36000 tonnes, des canons de 20 cm, une piste de 700 m et les groupe d'envols 1 et 2. redondantes reconstitue une couverture irrédondante uploads/s3/ sujet-j7.pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager