Sie sind auf Seite 1von 2

Nom : . . . . . . . . . . . . . . . . . . . Prénom : . . . . . . . . . . . . . . . . . . . Spécialité : . . . . . . . . . . . . Groupe : . . . . . . . . . . . .

Université A/Mira de Bejaia – Faculté des Sc. Exactes – Département d’Informatique – Master I – 2019-2020
Examen BDDA – Durée : 1h30

QUESTIONS DE COURS (12 Pts)


1. [2 pts] Donner un exemple pratique en SQL3 illustrant une restriction de l’utilisation de la clause UPDATE sur une
collection table imbriquée.
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … …
… … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … …
… … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … ……
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … …
… … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … …
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … …
… … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … …
… … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … ……
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … …
… … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … …
… … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … ……

2. [3 Pts] Donner le code SQL3 permettant la création des types et tables associés à la description suivante :
Une personne est caractérisée par un numéro unique, un nom, un prénom, un ensemble d’habitations, un conjoint et deux
parents. Une habitation est caractérisée par un numéro, une rue et la ville où elle se situe. Une habitation est identifiée par
son numéro et la rue dans laquelle elle se trouve.
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … …
… … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … …
… … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … ……
… … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … …
… … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … ……
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … …
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … …
… … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … …
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… … … … … … … … … … … … … … … … …… … …… … … … … … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … …
… …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … …
… … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … … … … … … … … … … … … … …… … …… … … …… … … … …

1
Nom : . . . . . . . . . . . . . . . . . . . Prénom : . . . . . . . . . . . . . . . . . . . Spécialité : . . . . . . . . . . . . Groupe : . . . . . . . . . . . .
3. [3.5 Pts] Quelle est la conséquence des références perdues (DANGLING REF) ? Donner un exemple pratique en SQL3
expliquant cette conséquence.

4. [3.5 pts] Expliquer les restrictions de modification des options FINAL et INSTANTIABLE d’un type.

EXERCICE (8 Pts)
On s’intéresse au schéma d’une base de données SQL3 relative à l’organisation de voyages. Le nom d’un restaurant, d’un
menu, d’un musée et d’une destination est unique.

CREATE TYPE LesJours AS TABLE OF VARCHAR(15);


CREATE TYPE Musee AS OBJECT (Nom VARCHAR(20), JoursFermeture LesJours, Categorie varchar(40)) ;
CREATE TYPE ListeMusees AS TABLE OF Musee ;
CREATE TYPE Menu AS OBJECT (Nom VARCHAR (20), Prix NUMBER (4,2) ) ;
CREATE TYPE ListeMenus AS TABLE OF Menu ;
CREATE TYPE Adresse AS OBJECT ( Numero NUMBER(3), nomRue VARCHAR2(50), codePostal NUMBER(8)) ;
CREATE TYPE Restaurant AS OBJECT (Nom VARCHAR2(50), AdresseR Adresse, Menus ListeMenus);
CREATE TYPE ListeRestaurants AS TABLE OF Restaurant ;
CREATE TYPE Destination AS OBJECT (Nom VARCHAR2(50), Restaurants ListeRestaurants, Musees ListeMusees) ;
CREATE TABLE voyages OF Destination (CONSTRAINT pk_V PRIMARY KEY (Nom))
NESTED TABLE Restaurants STORE AS Restaurants_tab (NESTED TABLE Menus STORE AS Menus_tab)
NESTED TABLE Musees STORE AS Musees_tab (NESTED TABLE JoursFermeture store as Jours_tab) ;

On a peuplé la table voyages avec les données ci-après.


Restaurants Musees
Nom Nom AdresseR Menus Nom JoursFermeture Categorie
Numero nomRue codePostal Nom Prix
Salade fermier 22
Fourchette 30 Printemps 75017 Civet canard 23 Beaux- 16 Décembre Archéologie
Paris Baba façon 14 arts
Les 35 Magenta 75010 Lasagnes aux 28 La 1 Janvier Histoire
Rupins Saumon Dentelle 25 Décembre
Madrid El Sur 12 Del Leal 28012 Cesar 10 San 12 Mars Histoire
Dingo 12 Isidro 25 Décembre

1. [1 pt] Le restaurant Les Rupins à Paris propose un nouveau menu Gaspacho Maison à 25 Euros. Écrire la requête SQL3
permettant d’ajouter cette information à la base de données.
2. [1 pt] Écrire la requête SQL3 pour ajouter à la destination Madrid, le restaurant Sabrino (sans menus) situé à 17 Calle
de Cuchilleros 28005. Ensuite, ajouter le menu Tiramisu proposé par ce restaurant à 10 Euros.
3. [1.5 pt] Écrire la requête SQL3 permettant afficher, pour chaque destination, le nombre moyen de menus par
restaurant.
4. [1.5 pt] Écrire la requête SQL3 permettant d’augmenter de 30% le prix des menus proposés par le restaurant Les
Rupins.
5. [3 pts] Supposons qu’un même menu soit proposé par plusieurs restaurants à des prix différents. Un menu est
caractérisé, en plus du prix, par un nom et un ensemble d’ingrédients. Expliquer comment le schéma SQL3 de cette
base de données devrait être implémenté pour prendre en compte ce fait et éviter la redondance de données.

Bon courage.

Das könnte Ihnen auch gefallen