Vous êtes sur la page 1sur 3

Faculté des Sciences Exactes-Département d’Informatique 2022/2023

Niveau : M1 ASR/RS/SIA
Module : BDDA

TD N° III
Exercice 1 : considérons le schéma SQL3 suivant
CREATE TYPE Marque_t AS OBJECT
(Nom varchar2(10), Fournisseur varchar2(10)) ;
Create table Marque of Marque_t ;

CREATE TYPE Voile_t AS OBJECT


(numero number (6), surface number (3), MarqueV REF Marque) ;
Create table Voile of Voile_t ;

CREATE TYPE Moteur_t AS OBJECT


(Num number (6), Puissance number(3), MarqueM REF Marque_t);

CREATE TYPE Bateau_t AS OBJECT


(Numero number(6), MoteurB Moteur_t, VoileB REF Voile_t, Nbr_voiles number(2),
MaqrueB REF Marque_t) ;

CREATE TABLE Bateau OF Bateau_t ;


NB. Il y’a pas deux marques de même nom et tous les numéros sont uniques dans la base).
Questions :
1. Modifier la BD en ajoutant les contraintes d’intégrité nécessaires
2. On suppose que la BD est initialement vide. Insérer le bateau de numéro 115643, de
marque ‘’JoliBateau’’ fourni par la société ‘’MonBateau’’. Ce bateau est un voilier
(sans moteur) avec 4voiles de numéro 333412 de 20 mètres carrés, de marque
‘’JoliVoile’’ fourni par la société ‘’MonVoilier’’.
3. Ajouter au voilier décrit à la question précédente un moteur de 75CV, de
marque’’JolieBateau’’ et de numéro 555466.
4. Afficher les numéros des bateaux fournis par la société ‘MonBateau’ dont le moteur
a une puissance supérieur à 50CV.
5. Pour chaque marque de bateau, donner le nom de la marque et le nombre moyen
des voiles pour un bateau de cette marque.

Dr. N.BOUADEM
Faculté des Sciences Exactes-Département d’Informatique 2022/2023
Niveau : M1 ASR/RS/SIA
Module : BDDA
Exercice 2
Soit la BD relationnel objet suivante :

Questions
1. Déclarer tous les ADT nécessaires pour implémenter cette BD.
2. Déclarer les tables nécessaires, n’oubliez pas les contraintes
d’intégrités càd:
En plus des clés primaires sur chaque table, programmez les contraintes
suivantes :
- REFERENCES et NOT NULL sur chaque référence ;

- Non nullité du couple (num, droit) pour un compte courant donné ;

- La colonne nbOpCB est positive ;

- La colonne droit vaut (D, X ou R) ;

- La colonne dateOp vaut par défaut SYSDATE-2 (rappelez-vous les dates de valeur...)

- La colonne txInt doit toujours être inférieure à 3,5%.

3. Donner les requêtes suivantes :


a. Liste des clients sans leur numéro de téléphone.
b. Pour chaque client (numéro, nom), afficher le nombre de compte épargne qu’il
possède.
c. Nombre de signataire du compte courant CC7.

Dr. N.BOUADEM
Faculté des Sciences Exactes-Département d’Informatique 2022/2023
Niveau : M1 ASR/RS/SIA
Module : BDDA
4. PL/SQL
a. Ecrire une fonction nbSignataire(droitparam IN CHAR) qui calcule
le nombre de signataire ayant le droit passé par paramètre.
b. fonction booléenne estTitulaire(cli IN NUMBER) qui renvoie TRUE
si le client de numéro passé en paramètre est titulaire du compte
courant donné.

Dr. N.BOUADEM

Vous aimerez peut-être aussi