DESS TD2 : Création d'une base de données


L'objectif de ce TD est de vous faire construire la base de données correspondant à l'exemple de la gestion d'un cinéma :

class Personne type
   tuple
      (public nom:string,
       public prenom:string,
       private adresse : string)
   method public l_adresse:string,
   method public e_adresse(a:string)
end;

class Artiste inherit Personne type
   tuple
      (public salairecourant : integer,                           
       read agent : Personne )
end ;

class Spectacle public type
   tuple
      (nom:string,
       artistes:list(Artiste),
       tarif:integer);

class Billet public type
   tuple
      (client: Personne,
       spectacle:Spectacle,
       nbpers : integer,
       reduction:real)
   method prix : real
end;

name LesArtistes : unique set(Artiste);
name LesBillets : list(Billet);
name LesSpectacles : set(Spectacle);
name LesPersonnes : unique set(Personne);

method body l_adresse:string in class Personne
{return(self->adresse);};

method body e_adresse(a:string) in class Personne
{self->adresse=a;};

Pour cela, vous allez utiliser le langage de programmation O2C.

  1. Créez l'artiste ``Robert Redford'' dont l'adresse est ``bd Foch, Angers'', le salairecourant est 50 000F et dont l'agent est inconnu à l'aide d'un programme non nommé (run body{...}) (faîtes ceci sans utiliser de méthodes d'initialisation). (Pour que cet objet persiste vous devez le rattacher aux racines de persistances. ) Vérifiez ensuite qu'il existe bien dans la base de données avec le langage OQL.
  2. Créez la méthode d'initialisation de la classe Artiste qui crée un artiste à partir de ses nom, prénom, adresse et salaire courant. Cette methode ne met pas à jour l'agent. Créez ensuite l'artiste ``Brigitte Bardot'' dont l'adresse est ``la plage, St Trop'' et le salaire est de 20 000F.
  3. Créez des méthodes d'initialisation pour les classes Personne, Spectacle et Billet (pour la classe Spectacle, on fournira le nom et le tarif, la liste des artistes sera initialisé à la liste vide).
  4. Créez la méthode de modification d'un agent e_agent pour un artiste et utilisez-la pour mettre à jour l'agent de Brigitte Bardot un certain ``Albert Dupont'' habitant à ``Paris, rue St Denis''
  5. Faîtes une requête donnant le nom et l'adresse de l'agent de Brigitte Bardot.
  6. Créez une méthode permettant d'ajouter un artiste dans un spectacle.
  7. Chargez les données suivantes à l'aide d'un programme non nommé : Deux personnes prennent des billets pour le spectacle ``Une souris verte'' dont le tarif est de 40F et qui est interprété par Brigitte Bardot et Robert Redford, il s'agit de Triphon Tournesol qui prend un billet pour 3 personnes sans réduction et d'Albert Einstein qui prend 1 billet pour une personne avec 50% de réduction.
  8. Interrogez la base de données pour vérifier ces créations.
  9. Créez la méthode prix pour la classe Billet.
  10. Faîtes une requête permettant de savoir quelle recette a fait le cinéma sur la vente des billets.


Florence Bannay 2002-10-22