Vous êtes sur la page 1sur 2

Institut Supérieur d’Informatique – Année Universitaire 2022-2023

ISI
IN S T I TUT
SUPERIEUR Mastère professionnel Développement logiciel et Nouvelles technologie - M1
INFORMATIQUE
Bases de données Avancées – Activité 2.3
‫ الـمعهـد العـالـي لإلعـالمــيـة‬R. ZAAFRANI, 17/10/2022

Base de données

1. Créer les types Meuble_t (en omettant la fonction vol()) et Armoire_t correspondant au diagramme de
classes UML de la mini-base de données ci-dessous. Le constructeur de surcharge Meuble_t prend en
paramètres la désignation et les dimensions du meuble et le constructeur Armoire_t prend en plus le nombre de
portes. Les fonctions Compte et Volpp retournent un nombre. Les procédures Modifie prennent respectivement
en paramètres tous les attributs des types Meuble_t et Armoire_t.

MEUBLE
Ref : NUMBER(8)
Desi : VARCHAR(20)
Dim_Haut : NUMBER(3)
Dim_Larg : NUMBER(3)
Dim_Prof : NUMBER(3)

CONSTRUCTOR FUNCTION Meuble_t ()


STATIC FUNCTION Compte()
STATIC PROCEDURE Affiche()
MEMBER FUNCTION Volpp( )
MEMBER PROCEDURE Modifie( )
MEMBER PROCEDURE Supprime( )
MAP MEMBER FUNCTION Vol()

ARMOIRE
Nb_Portes : NUMBER(1)

CONSTRUCTOR FUNCTION Armoire_t( )


STATIC FUNCTION Compte()
STATIC PROCEDURE Affiche()
MEMBER FUNCTION Volpp()
MEMBER PROCEDURE Modifie( )

2. Modifier le type Meuble_t en ajoutant la fonction Map vol() qui retourne un nombre.
3. Définir une table nommée Meuble d’objets de type Meuble_t.
Constructeurs
1. Définir la fonction constructeur qui permet de surcharger le constructeur par défaut de Meuble_t et qui prend
en paramètres uniquement la désignation et les dimensions du meuble. Cette fonction doit, en plus des
initialisations d’attributs classiques dans un constructeur :
• stocker l’objet meuble créé dans la table Meuble ;
• générer automatiquement la référence du nouveau meuble (10000000 pour la première référence, puis
autoincrémentation de 10 en 10).
2. Créer un nouveau constructeur pour Armoire_t, similaire à celui de Meuble_t et qui permet de stocker les
objets de type Armoire_t créés dans la table Meuble.
Méthodes statiques
1. Définir une méthode Compte pour le type Meuble_t, qui renvoie le nombre de meubles dans la table Meuble.
2. Surcharger la méthode Compte dans le type Armoire_t de manière à ne renvoyer que le nombre d’armoires.
Note : comme pour les constructeurs, il est inutile d’employer la clause OVERRIDING pour les méthodes
statiques.
Bases de données Avancées – Activité 2.3 1
3. Définir une méthode Affiche pour le type Meuble_t qui affiche tous les meubles de la table Meuble au format
« référence désignation - Hauteur : xxx, Largeur : xxx, Profondeur : xxx ».
4. Surcharger la méthode Affiche dans le type Armoire_t de manière à afficher en plus l’attribut Nb_portes.

Méthodes membres

1. Définir une méthode Volpp pour le type Meuble_t, permettant de renvoyer le volume de l’objet meuble
appelant (hauteur x largeur x profondeur).
2. Surcharger la méthode Volpp dans le type Armoire_t afin de renvoyer le volume de l’objet armoire appelant
divisé par le nombre de portes de l’armoire.
3. Définir une méthode Modifie pour le type Meuble_t, permettant de modifier les valeurs de tous les attributs
de l’objet meuble appelant.
4. Définir une méthode Modifie pour le type Armoire_t, similaire à la méthode Modifie du type Meuble_t.
5. Ajouter au type Meuble_t une méthode de comparaison d’objets MAP nommée Vol, qui effectue le même
calcul que Volpp.
6. Définir une méthode Supprime pour le type Meuble_t, permettant de supprimer l’objet meuble appelant. Est-
il nécessaire de créer la même méthode spécifiquement pour Armoire_t ?

Bloc PL/SQL

1. Dans un bloc PL/SQL anonyme, déclarer trois variables de type Meuble_t (m1, m2 et m3) et une variable de
type Armoire_t (a1).
2. Dans le code, initialiser m1, m2 et m3 à l’aide du constructeur par défaut du type Meuble_t.
Meuble_t(0, 'Coffre', 100, 100, 50)
Meuble_t(10000000, 'Meuble téléphone', 110, 50, 30)
Meuble_t(10000010, 'Colonne CD', 180, 20, 10)
3. Initialiser a1 à l’aide du constructeur du type Armoire_t.
Armoire_t(10000020, 'Armoire métal', 190, 130, 70, 2)
4. Afficher le nombre de meubles et le nombre d’armoires.
5. Afficher tous les meubles et toutes les armoires
6. Afficher les volumes du meuble m2 et de l’armoire a1.
7. Modifier l’objet meuble m2 par : Meuble_t('10000001', 'Meuble téléphone', 115, 45, 30).
Afficher ensuite la valeur de l’attribut Dim_haut de m2 (pour vérification), puis afficher les meubles.
8. Modifier l’objet meuble a1 par : Armoire_t('50000000', 'Armoire bois', 210, 150, 75, 3), puis afficher les
armoires.
9. Comparer les objets m2 et m3, puis m2 et a1 (test d’égalité) et afficher si les meubles sont différents
(volumes différents) ou susceptibles d’être identiques (volumes égaux).
10. Supprimer le meuble m3 et l’armoire a1. Afficher ensuite la valeur de l’attribut Dim_haut de m3 (pour
vérification), puis afficher les meubles.

Evolutions de schéma

1. Ajouter au type Meuble_t un attribut Prix de type réel.

Vues objet

1. Créer une vue objet nommée Vue_Salle_cours basée sur le type Salle_cours_t et permettant d’afficher toutes
les caractéristiques des salles de cours de la table Salle de l’activité 3.1.
2. Afficher la structure et le contenu de la vue objet Vue_Salle_cours.
3. Définir un déclencheur de type INSTEAD OF permettant, lors d’une insertion dans la vue objet
Vue_Salle_cours, d’effectuer l’insertion correspondante dans la table source Salle.
4. Insérer un nouvel objet dans la table Salle par l’intermédiaire de la vue objet Vue_Salle_cours.
Vérifier le contenu de la vue objet Vue_Salle_cours et de la table Salle.

Bases de données Avancées – Activité 2.3 2

Vous aimerez peut-être aussi