Chapter 9 Gestion des Modèles Orientés Objet


Définition d'une correspondance pour une classe

La mise en correspondance d'une classe permet d'identifier les objets physiques (tables ou vues) utilisés pour stocker les instances de cette classe dans une base de données relationnelle. Une fois que les tables et vues source sont identifiées et mises en correspondance avec les classes du modèle courant, vous pouvez définir les correspondances entre les attributs et les colonnes de table.

Vous devez utiliser la page Correspondances d'une feuille de propriétés de classe pour pouvoir définir une correspondance pour cette classe.

Vous ne pouvez pas définir de correspondance pour une classe si vous ne sélectionnez pas de source de données dans la page Correspondances de la feuille de propriétés de classe. Lorsque vous déclarez une correspondance entre une source de données et une classe, vous indiquez les modèles dans lesquels les objets seront stockés.

Sélection de source de données

Outil Description

Ajouter une correspondance entre l'objet courant et une source de données existante. La première fois que vous définissez une correspondance pour un objet, la liste déroulante Correspond à est vide, vous devez alors ajouter une correspondance avec une source de données avant de pouvoir mettre en correspondance des objets du modèle courant avec ceux de la source de données

Supprime la correspondance pour la source de données

Modifie les propriétés de la source de données sélectionnée

Page Sources de la classe

La page Sources de la classe permet d'associer plusieurs tables ou vues de la source de données à la classe courante. Ces tables et vues vont stocker les classes dans la base de données relationnelles.

Vous pouvez utiliser l'outil Ajouter des objets pour sélectionner des tables ou vues dans les modèles physiques de données ouverts dans l'espace de travail courant.

Pages Correspondances des attributs

Chaque attribut peut être associé à une colonne des tables ou vues sélectionnées afin de spécifier où et comment les valeurs d'attributs sont stockées dans la base de données. Lorsqu'une classe hérite d'une classe non générée via un lien de généralisation, les attributs de la classe parent s'affichent dans la boîte de dialogue Sélection afin de vous permettre de créer une correspondance avec ces attributs hérités. Les attributs d'une classe dérivée non générée s'affichent également dans la boîte de dialogue Sélection. Vous pouvez utiliser les outils suivants pour définir des attributs de correspondance.

Icône Outil Description

Ajouter une correspondance Permet de sélectionner les attributs de la classe courante qui seront mis en correspondance avec des colonnes dans la table ou vue source. Lorsque la classe courante hérite d'un parent non généré ou est dérivée d'une classe non générée, les attributs du parent ou de la classe dérivée s'affichent dans la boîte de dialogue de sélection. Une fois que vous avez sélectionné les attributs, vous pouvez utiliser la liste déroulante dans la colonne Correspond à pour sélectionner les colonnes correspondantes dans la table ou vue source

Créer à partir des sources Permet de copier des colonnes depuis les tables ou vues depuis la source de données dans la classe courante. Le nom, le code, la description, l'annotation et le commentaire sont copiés et les types de données sont convertis afin d'être adaptés au modèle courant

Générer des correspondances Permet de générer automatiquement une correspondance entre les attributs et colonnes ayant le même nom ou code dans la source de données et dans le modèle courant

Le bouton Points de suspension dans la colonne Correspond à permet d'afficher la boîte de dialogue Editeur SQL afin de personnaliser l'expression source pour l'attribut.

Page Correspondances des opérations

La page Correspondances des opérations permet d'associer une requête SQL à une opération d'une classe.

Pour plus d'informations sur les correspondances d'opération, reportez-vous à la section "Mise en correspondance d'une opération".

Page Critères

La page Critères permet de spécifier un critère de jointure entre les tables ou vues source. Par exemple  ID.EMPLOYE < 100

Requêtes SQL

Les requêtes SQL suivantes sont automatiquement calculées pour déterminer de quelle façon les données des instances de la classe sont extraites ou stockées dans la base de données :

select
      ADRESSE.LIGNE1 "LIGNE1",
      ADRESSE.LIGNE2 "LIGNE2",
      ADRESSE.VILLE "VILLE",
      ADRESSE.CDEPOSTAL "CDEPOSTAL",
      ADRESSE.PAYS "PAYS"
from  ADRESSE

insert into ADRESSE(
     ADRESSE.LIGNE1,
     ADRESSE.LIGNE2,
     ADRESSE.VILLE,
     ADRESSE.CDEPOSTAL,
     ADRESSE.PAYS)
values (
     %LIGNE1%,
     %LIGNE2%,
     %VILLE%,
     %CDEPOSTAL%,
     %PAYS%)

update ADRESSE
set   ADRESSE.LIGNE1 = %LIGNE1%,
      ADRESSE.LIGNE2 = %LIGNE2%,
      ADRESSE.VILLE = %VILLE%,
      ADRESSE.CDEPOSTAL = %CDEPOSTAL%,
      ADRESSE.PAYS = %PAYS%

delete line* from ADRESSE

Chaque instruction est automatiquement générée. Si vous modifiez une instruction, elle devient une instruction utilisateur et ne peut plus être automatiquement calculée et ce, même si vous modifiez la correspondance. Vous pouvez distinguer qu'une instruction est une instruction utilisateur quand l'outil Redéfini par l'utilisateur est enfoncé dans la barre d'outils.

Vous pouvez alors restaurer l'expression calculée en cliquant sur l'outil Redéfini par l'utilisateur, ce qui a pour effet de supprimer toute expression non calculée de la page.

Modification du template de requête

La syntaxe des requêtes SQL provient d'un template prédéfini. Vous pouvez personnaliser la syntaxe de la requête en modifiant les entrées SelectStatement, InsertStatement, UpdateStatement et DeleteStatement dans la catégorie Profile de l'éditeur de langage objet ou de définitions étendues de modèle.

Pour plus d'informations sur la personnalisation des templates, reportez-vous à la section "Définition de templates" dans le chapitre "Guide de référence de la génération" dans la Documentation utilisateur avancée .

 


Copyright (C) 2005. Sybase Inc. All rights reserved.