Dpartement Informatique
Mastre IMAe
UE Bases De Donnes Avances Anne Universitaire 2004/2005 M. EBOUEYA
Exercice 1. Soit le schma relationnel de base de donnes suivant : APPARTEMENT (Num_Appart, Adresse, Type, Nb_Pices) CLIENT (Num_Client, Nom, Prnom, Adresse, Tl, Type_Appart_Prfr, Loyer_Max) PHOTO (Num_Photo, Num_Appart, Date, Commentaire, Photo) Indiquer les problmes ou insuffisances du modle relationnel en termes de : pouvoir d'expression du modle, pouvoir d'expression des requtes, Dfinir le domaine de dfinition des attributs, et notamment les attributs non standards. Donner des exemples de requtes mettant en vidence les insuffisances du modle relationnel. Proposer un schma de type relationnel-objet. Exemples de requtes Quels sont les clients habitant en dehors du dpartement de Charente-Maritime ? Quels sont les types dappartements prfrs de M. Martin ? Quels sont les appartements avec des photos des chambres ?
Exercice 2. Vous tes toujours rfractaire au Relationnel objet ? On souhaite concevoir une base de donnes dcrivant des pices et leurs composants. Une pice P est compose de plusieurs composants C, chacun des composants pouvant apparatre plusieurs fois dans une pice. Une pice peut elle-mme tre composant d'une autre pice. Par exemple, un moteur est un composant d'une voiture, et les bougies sont des composants du moteur.
Universit de La Rochelle
Dpartement Informatique
1. On demande de modliser ces informations sous forme d'un schma UML ou entit association, puis de donner le schma relationnel. Les schmas demands doivent viter les redondances et permettre de rpondre efficacement au moins aux deux questions suivantes : Q1 : Etant donn une pice, retrouver ses composants directs (c'est--dire sans rcursion), et le nombre d'exemplaires de chaque composant. Q2 : tant donne une pice, retrouver toutes les pices dont elle est un composant. 2. Expliquer comment on obtient ces rponses dans le cas relationnel. 3. Que pourrait apporter une reprsentation en relationnel objet ? (Donner les scripts de crations, dinsertion et dextraction de donnes)
Exercice 3. Soit une base de donnes concernant des btiments de guerre. On souhaite en exprimer le schma en reprsentation de type relationnel-objet avec des types abstraits de donnes. Chaque bateau de guerre a les informations suivantes qui lui sont associes : son nom, son tirant en tonnes, son type (destroyer, canonnier,...). Il y a certains btiments qui ont des spcificits : les canonniers sont des bateaux qui transportent de grands canons, tels les croiseurs. Pour ce type de btiments, 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 ariens (escadrilles) qui lui sont assigns. les sousmarins, pour lesquels la profondeur de la plonge maximum est connue. Aucun sousmarin n'est canonnier, ni mme porteur! les cuirasss sont porteurs et canonniers en mme temps, et donc on enregistre pour eux les donnes pour ces deux types de btiments. Donner le diagramme E/R et le schma relationnel tendu. Montrer comment on pourrait reprsenter 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
Dpartement Informatique
Exercice 1. Soit le schma relationnel de base de donnes suivant : APPARTEMENT (Num_Appart, Adresse, Type, Nb_Pices) CLIENT (Num_Client, Nom, Prnom, Adresse, Tl, Type_Appart_Prfr, Loyer_Max) PHOTO (Num_Photo, Num_Appart, Date, Commentaire, Photo) Indiquer les problmes ou insuffisances du modle relationnel en termes de : pouvoir d'expression du modle, pouvoir d'expression des requtes, Dfinir le domaine de dfinition des attributs, et notamment les attributs non standards. Donner des exemples de requtes mettant en vidence les insuffisances du modle relationnel. Proposer un schma relationnel tendu de type relationnel-objet. Insuffisances du modle relationnel La modlisation est limite des entits et attributs simples (nombres, chanes de caractres), sauf pour les dates pour lesquelles un type spcifique est en gnral propos dans les SGBD. Par exemple, lattribut Adresse contient la fois la rue, le code postal et la ville, mais ils ne peuvent tre diffrencis. Cest ce quon appelle une donne complexe. De la mme manire, le numro de tlphone peut contenir lindicatif du pays et un indicatif rgional, mais ils ne peuvent tre distingus. Le type dappartement prfr par un client est limit un choix simple (1 valeur), alors quil pourrait tre multiple et complexe (situation, ensoleillement, ). Lattribut Photo contient la liste des pixels de limage, mais aucun pixel ne constitue une information extractible. Les requtes sont limites aux oprateurs standards du langage SQL. Elles ne permettent pas de traiter le contenu des attributs complexes tels quune adresse ou un numro de tlphone (cf. a)). Elles ne permettent pas non plus deffectuer des oprations de type applicatives sur des attributs tels que des images (extraction, filtrage, ). Domaine de dfinition des attributs APPARTEMENT (Num_Appart : integer, Adresse : string, Type : integer, Nb_Pices : integer) CLIENT (Num_Client : integer, Nom : string, Prnom : string, Adresse : string, Tl : string, Type_Appart_Prfr : char, Loyer_Max : float) PHOTO (Num_Photo : integer, Num_Appart : integer, Date : date, Commentaire : string, Photo : string) Exemples de requtes
Universit de La Rochelle
Dpartement Informatique
Quels sont les clients habitant en dehors du dpartement de Charente-Maritime ? Quels sont les types dappartements prfrs de M. Martin ? Quels sont les appartements avec des photos des chambres ? Schma relationnel tendu de type relationnel-objet APPARTEMENT (Num_Appart : integer, Adresse : adresse, Type : integer, Nb_Pices : integer) CLIENT (Num_Client : integer, Nom : string, Prnom : string, Adresse : adresse, Tl : tlphone, Type_Appart_Prfr : prfrences, Loyer_Max : float) PHOTO (Num_Photo : integer, Num_Appart : integer, Date : date, Commentaire : string, Photo : image) Les attributs en gras sont des types dfinis par lutilisateur : adresse : (adr1 :string, code_postal : integer, ville : string) tlphone : (indicatif_pays : integer, indicatif_rgion : integer, numro : string) image : list_of (integer) Limage pourrait aussi tre reprsente en tant que structure complexe, par exemple de type quadtree. Des oprateurs peuvent galement tre associs ces types, par exemple des oprateurs spcifiques pour les images (cf. requtes). On dfinit alors des types abstraits de donnes (cf. cours et exercice 4).
Exercice 2. On souhaite concevoir une base de donnes dcrivant des pices et leurs composants. Une pice P est compose de plusieurs composants C, chacun des composants pouvant apparatre plusieurs fois dans une pice. Une pice peut elle-mme tre composant d'une autre pice. Par exemple, un moteur est un composant d'une voiture, et les bougies sont des composants du moteur. On demande de modliser ces informations : sous forme d'un schma entit-association, sous forme d'un schma relationnel. Les schmas demands doivent viter les redondances et permettre de rpondre efficacement aux questions suivantes : Etant donn une pice, retrouver ses composants directs (c'est--dire sans rcursion), et le nombre d'exemplaires de chaque composant. Etant donne une pice, retrouver toutes les pices dont elle est un composant. Expliquer comment on obtient ces rponses dans le cas relationnel. Que pourrait apporter une reprsentation en relationnel-objet ?
Universit de La Rochelle
Dpartement Informatique
create table PIECE (No_Pice : 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 ; Reprsentation en relationnel-objet : create type TYPE_PIECE tuple (No_Pice : integer, Nom : string, Qt_Stock : integer) ; create table PIECES TYPE_PIECE ; create table COMPOSE (No_Pice : integer,Composant : setof ref (TYPE_PIECE)) ;
Universit de La Rochelle
Dpartement Informatique
Exercice 3. Soit une bases de donnes concernant des btiments de guerre. On souhaite en exprimer le schma en reprsentation de type relationnel-objet avec des types abstraits de donnes. Chaque bateau de guerre a les informations suivantes qui lui sont associes : son nom, son tirant en tonnes, son type (destroyer, canonnier,...). Il y a certains btiments qui ont des spcificits : les canonniers sont des bateaux qui transportent de grands canons, tels les croiseurs. Pour ce type de btiments, 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 ariens (escadrilles) qui lui sont assigns. les sousmarins, pour lesquels la profondeur de la plonge maximum est connue. Aucun sousmarin n'est canonnier, ni mme porteur! les cuirasss sont porteurs et canonniers en mme temps, et donc on enregistre pour eux les donnes pour ces deux types de btiments. Donner le diagramme E/R et le schma relationnel tendu. Montrer comment on pourrait reprsenter 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 irrdondante