Bases de données Avancées – Activité 3.1

Page 1 sur 1Lecteur de document UniversityLib

Bases de données Avancées – Activité 3.1

Advanced Databases with Object-Oriented SQL3 · course

Voir tous les documents en bases de données

I N S T I T U T

S U P E R I E U R

INFORMATIQUE

ةـيــملاـعلإل يـلاـعلا دـهعمـلا

ISI

Année Universitaire 2020-2021

Mastère professionnel en logiciels libres - M1

Bases de données Avancées – Activité 3.1

R. ZAAFRANI, 19/10/2020

On souhaite mettre en œuvre le schéma conceptuel UML ci-dessous, représentant la gestion (simplifiée) du

planning des salles de l'institut, en utilisant les fonctionnalités orientées objets de SQL3.

PLANNING

Jour : VARCHAR(10)

Heure_debut : NUMBER(4,1)

Heure_fin : Number(4,1)

SALLE

Numero : VARCHAR(20)

Videoprojecteur: CHAR(1)

*

ENSEIGNEMENT

Code : VARCHAR(20)

Effectif: NUMBER(3)

Videoprojecteur : CHAR(1)

*

SALLE_Cours

Capacite : NUMBER(3)

Retroprojecteur: CHAR(1)

Micro : CHAR(1)

SALLE_INFO

Nb_ordinateurs : NUMBER(2)

OS : VARCHAR(20)

CM

Retroprojecteur: CHAR(1)

TD

Sur_machine : CHAR(1)

Classes

l. Créer les classes figurant sur le diagramme UML ci-dessus (sauf PLANNING) en tenant compte des liens

Publicité

d'héritage entre elles.

NB: SALLE est une classe abstraite qui n'aura aucune instance, tandis qu'ENSEIGNEMENT pourra en avoir.

Convention de nommage des types : Suffixer le nom de la classe par _t (ex. Salle_t).

2. Matérialiser la classe-association PLANNING sous forme d'un type Planning_t incluant en plus des attributs

mentionnés dans le diagramme de classes deux attributs références de salle et d'enseignement, respectivement.

Tables objets

Créer trois tables objets afin de stocker les données relatives à la gestion du planning:

 Salle (stockage des instances des types Salle_t, Salle_cours_t et Salle_info_t);

 Enseignement (stockage des instances des types Enseignement_t, CM_t et TD_t) ;

 Planning (stockage des instances du type Planning_t).

Ne pas oublier d'assurer l'intégrité référentielle (références de Planning). Est-il possible de définir une clé

primaire sur des références?

=> Définir un déclencheur prenant en charge la contrainte de clé primaire sur la table Planning.

Instances : Insérer les n-uplets suivants dans les tables respectives :

Salles de cours

Numéro

Grand amphi

A1

A2

Vidéoprojecteur

O

N

N

capacité Rétroprojecteur Micro

O

N

O

400

80

50

O

N

N

Bases de données Avancées – Activité 3.1

1

Numéro

I1

Publicité

I2

Salles informatiques

Vidéoprojecteur Nb_ordinateurs

O

N

15

15

OS

Windows

Windows/Linux

Code

S0INFO

Enseignements

Effectif Vidéoprojecteur

350

O

Code

S1BDPROGCM

S2BDACM

Code

S1BDPROGTD1

S1BDPROGTD2

S2BDATD

Cours magistraux (CM)

Effectif Vidéoprojecteur Rétroprojecteur

50

25

O

O

N

N

Travaux dirigés (TD)

Effectif Vidéoprojecteur

50

25

25

O

Publicité

N

N

Sur_machine

N

O

N

Ref_salle

A1

A2

A1

Grand amphi

A1

I2

I2

Requêtes

Ref_ens

S1BDPROGCM

S2BDACM

S2BDACM

S0INFO

Planning

Jour

Mardi

Mercredi

Mercredi

Lundi

S1BDPROGTD1 Mardi

S1BDPROGTD2 Mardi

Jeudi

S2BDATD

Heure_début Heure_fin

8

8

9,5

15

9,5

15

Publicité

9,5

9,5

9,5

11

16,5

11

16,5

11

1. Liste de toutes les salles. Est-ce qu’un SELECT * fonctionne ?

2. Liste de tous les enseignements. Est-ce qu’un SELECT * fonctionne ?

3. État « brut » du planning. Est-ce qu’un SELECT * fonctionne ? Pourquoi ?

4. Planning des salles : code d’enseignement, numéro de salle, jour, heure de début et heure de fin de

l’enseignement (jointure implicite).

5. Code d’enseignement et numéro de salle pour les enseignements nécessitant un vidéoprojecteur et affectés à

une salle qui n’en dispose pas.

6. Nombre d’enseignements différents par salle.

7. Numéros des salles qui ne figurent pas au planning (salles libres).

8. Numéros des salles de cours. Utiliser le pseudo-attribut OBJECT_VALUE et la fonction IS OF().

9. Numéros de salles et nombre d’ordinateurs des salles informatiques. Pour accéder aux attributs d’une sous-

classe, utiliser la fonction TREAT(), le pseudo-attribut OBJECT_VALUE et la notation pointée.

10. Numéros de salles et nombre d’ordinateurs de toutes les salles.

11. Code d’enseignement, besoin de rétroprojecteur (pour l’enseignement), numéro de salle et disponibilité du

rétroprojecteur (dans la salle) pour les cours magistraux se déroulant dans les salles de cours. Exploiter la

fonction DEREF() combinée aux fonctions TREAT() et IS OF().

Rappel :

-) Fonction TREAT : SELECT TREAT(Adr AS ADR_ETRANGER) FROM les_personnes;

-- Recherche sélective des adresses des personnes habitant à l'étranger

-) Fonction IS OF : Traite à un niveau de la hiérarchie les objets pour sélectionner que ceux des niveaux

inférieurs de la hiérarchie (la racine étant le niveau 0)

SELECT VALUE(p) FROM les_personnes p

WHERE p.Adr IS OF(ADR_ETRANGER);

-- Caractéristiques des personnes habitant à l'étranger

Bases de données Avancées – Activité 3.1

2