TP: Le langage OQL
Editez le fichier .profile afin de rajouter les 2 lignes suivantes :
export O2HOME=/usr/local/O2
export LD_LIBRARY_PATH=/usr/local/O2/lib
Ajoutez /usr/local/O2/bin dans votre PATH.
Sous Sirius, tapez les commandes suivantes :
o2shell -system vbdo2               lancement d'un client
    Type your command and end with ^D.
set base prof                                  positionnement dans la base prof
    Type your command and end with ^D.
display classes                             affiche le schéma des classes
   ...
    Type your command and end with ^D.
display class Professeur            affiche la classe Professeur
   ...
    Type your command and end with ^D.
query                                               lance le mode de requête
    Type your query and end with ^D.
Partie OQL de l'examen de Maîtrise d'informatique (janvier 1999). On considère le schéma suivant :
class Personne public type tuple (
nom : string,
datenais: Date,
conjoint: Personne)
end;
class Professeur inherit Personne public type tuple(
identification: integer,
departement: Departement,
etudiants: unique set(Etudiant),
matieres: unique set(Matiere))
end;
class Etudiant inherit Personne public type tuple(
responsable: Professeur,
matieres: unique set(Matiere))
end;
class Departement inherit Object public type tuple(
nom: string,
professeurs: list(Professeur),
etudiants: list(Etudiant))
end;
class Matiere inherit Object public type tuple(
nom: string,
duree: integer,
professeur: Professeur,
etudiants: unique set(Etudiant))
end;
On ne dispose que de deux objets nommés     name LesProfs : list(Professeur)        name Delo: Professeur

0.
a) Quel est le numéro d'identification du professeur Delobel (représenté par l'objet Delo)
b) Quel est le nom de son conjoint
c) Combien y a-t-il de professeurs.
1.
Donnez le nom de chaque professeur.
2.
Donnez le nom de toutes les matières enseignées.
3.
Donnez le nom du professeur, et le nom des matières qu'il enseigne pour les professeurs du département d'Informatique.
4.
Quel est le nombre maximum de matières enseignées par un professeur.
5.
Combien d'heures doit faire le professeur Ferran (somme des durées de toutes les matières qu'il enseigne).
6.
Classez les professeurs selon le nombre d'heures qu'il doit effectuer
7.
Écrire une requête qui réponde vrai ou faux à la question : existe-t-il une matière telle que chaque étudiant qui la suit est célibataire?
8.
Donnez la liste des étudiants avec le nom de leur conjoint quand ils en ont et ``néant'' sinon (résultat sous la forme de couples (nom étudiant, nom du conjoint ou néant))
9.
Donnez le nom des étudiants et de leur professeur responsable pour les étudiants suivant les matières de Bases de données ou de Programmation.
10.



Florence Bannay
04-10-2000