Réserver une Démo
Pré. Proc.

Comparaison de base de données

L'onglet 'Database Compare' fournit un mécanisme permettant de comparer le modèle de données actuel avec une base de données active et, éventuellement, de synchroniser les différences dans les deux sens. Les différences « poussées » dans une base de données en direct sont effectuées à l'aide d'instructions « Alter DDL », tandis que les modifications importées de la base de données en direct peuvent être directement « extraites » dans le modèle.

La fonctionnalité de comparaison de base de données nécessite que le générateur de base de données dispose d'une connexion valide à une base de données active. Cette connexion à la base de données est partagée par les onglets 'SQL Scratch Pad', 'Database Compare' et 'Execute DDL' du Database Builder.

Accéder

Ouvrez la fenêtre Database Builder, puis affichez l'onglet 'Database Compare'.

Ruban

Développer > Modélisation données > Database Builder > Database Compare

L'onglet Comparer DDL

L'onglet 'Database Compare' a un certain nombre de contrôles, comme décrit ici.

Numéro et nom

Description

1 sensible à la casse

Cochez cette case pour que toutes les comparaisons de propriétés reconnaissent les différences de casse dans le texte de la propriété.

2 Utiliser un alias si disponible

Cochez cette case pour indiquer que tous les alias définis doivent être utilisés à la place des noms d' object (au niveau de l' object et de la colonne).

3 Réinitialiser tout

Cliquez sur ce bouton pour remettre le drapeau ' Action ' pour tous les objets à la valeur par valeur .

4 Définir tout importer

Cliquez sur ce bouton pour définir le drapeau ' Action ' de toutes les différences détectées sur <==== ; c'est-à-dire mettre à jour le modèle avec la ou les valeur de la base de données en direct.

5 Réglez Tout synchroniser

Cliquez sur ce bouton pour définir le drapeau ' Action ' de toutes les différences détectées sur ====> ; c'est-à-dire mettre à jour la base de données en direct avec la ou les valeur (s) du modèle.

6 Différences

Révision de la liste des objets présentant des incohérences entre le modèle et la base de données en direct. La sélection d'un élément dans cette liste remplira la liste 'Composants'.

(Voir le tableau Liste des différences pour une description détaillée de chaque colonne.)

7 composants

Révision cette liste des propriétés de l' object sélectionné qui diffèrent entre le modèle et la base de données en direct.

(Voir le tableau Liste des composants pour une description détaillée de chaque colonne.)

8 Réinitialiser

Cliquez sur ce bouton pour remettre le drapeau ' Action ' pour toutes les propriétés de l' object courant à la valeur par valeur .

9 Importer depuis Live DB

Cliquez sur ce bouton pour importer toutes les valeurs des propriétés (avec l'' Action ' de <===) de la base de données en direct dans le modèle.

10 Générer DDL

Cliquez sur ce bouton pour générer les instructions 'Alter DDL' pour tous les objets avec une ' Action ' de ====>, et envoyer les instructions à l'onglet 'Execute DDL'.

Liste des différences

Colonne

Description

EA

Affiche le nom de chaque object du modèle qui présente une ou plusieurs différences détectées. Les valeurs vides indiquent que l' object est manquant dans le modèle mais existe dans la base de données active.

Action

Par défaut, "Aucune Action " est l'action à entreprendre en tenant compte de la ou des différences de cet object . Cliquez sur la flèche déroulante et sélectionnez une action spécifique. La liste des actions disponibles dans la liste dépendra du fait que l' object donné est associé ou non dans le modèle et la base de données en direct.

Objets jumelés

  • Aucune Action - ne mettez pas à jour la base de données ou le modèle avec cette modification
  • ===> - mettre à jour l' object dans la base de données à partir du modèle
  • <=== - mettre à jour l' object dans le modèle à partir de la base de données
  • Personnaliser - définissez les éléments sur Aucune Action avant de définir différentes actions sur chaque élément dans le panneau inférieur
  • Dissocier - séparez les objets appariés afin qu'ils ne soient pas comparés les uns aux autres ou mis à jour les uns par rapport aux autres

Objets non appariés

  • Créer < nom object > - crée l' object de base de données manquant dans la base de données ou le modèle, selon le cas
  • Supprimer < nom de l' object > - supprimer l' object du modèle
  • Drop <nom de l' object > - supprime l' object de la base de données
  • Associer avec < nom d' object > - associe l' object dans la base de données à l' object nommé (non apparié) dans le modèle, afin qu'ils soient comparés pour les différences entre eux
Les champs « Action » dans la « Liste des composants » (le panneau inférieur) seront mis à jour en fonction de la sélection de ce champ.

Par exemple, si la base de données en direct a une colonne Tableau 'Address1' et que le modèle n'en a pas, définir l' object ' Action ' sur ' ===>' (mettre à jour l' object dans la base de données à partir du modèle) définit la colonne ' Item Action ' à 'Drop Address1', ce qui supprimera la colonne de la base de données en direct.

BD en direct

Affiche le nom de chaque object dans la base de données en direct qui a une ou plusieurs différences détectées. Les valeurs vides indiquent que l' object existe dans le modèle mais qu'il manque dans la base de données active.

Compter

Affiche le nombre total de différences détectées pour l' object (et tous ses composants) entre le modèle et la base de données active.

Liste des composants

Colonne

Description

Item

Affiche le nom ou la description du composant pour chaque différence détectée. Les différences sont regroupées en trois catégories : Propriétés , Colonnes et Contraintes, dans une arborescence.

EA

Affiche la valeur du composant donné tel qu'il est détecté dans le modèle. Les valeurs vides indiquent que la valeur est manquante dans le modèle mais existe dans la base de données active.

Action

Par défaut, l'action correspondant au paramétrage du champ ' Action ' de l' object dans la liste 'Différences', pour indiquer l'action à entreprendre concernant la différence détectée pour le composant. Cliquez sur la flèche déroulante pour sélectionner une action alternative ; les options disponibles dans la liste dépendent du type de composant et de la différence détectée.

  • Aucune Action - ne pas mettre à jour la base de données ou le modèle
  • ===> - mettre à jour l' object dans la base de données en direct à partir du modèle
  • <=== - mettre à jour l' object dans le modèle à partir de la base de données en direct
  • Ajouter <nom de l'élément> - créer l'élément manquant dans la base de données ou le modèle, selon le cas
  • Supprimer <nom de l'élément> - supprimer l'élément du modèle
  • Drop <nom de l'élément> - supprime l'élément de la base de données en direct

BD en direct

Affiche la valeur du composant sélectionné dans la base de données en direct. Les valeurs vides indiquent que la valeur existe dans le modèle mais est manquante dans la base de données active.

Compter

Affiche le nombre de différences entre le modèle et la base de données active détectées dans le composant sélectionné.

Utilisation de la comparaison de bases de données

Chaque fois que vous effectuez une comparaison, Enterprise Architect lit la définition à la fois de la base de données en direct et du modèle, puis tente de 'coupler' chaque object d'une source avec l'autre, en utilisant son nom (et son schéma, si pertinent pour le SGBD actuel) .

Si une correspondance est trouvée, le nom de l' object est affiché dans les colonnes 'EA' et 'Live DB' avec une action par défaut de 'Aucune Action '. La colonne 'Count' indique le nombre total de différences trouvées pour l' object et ses composants ou propriétés.

Si aucune correspondance n'est trouvée entre les systèmes, le nom de l' object est affiché dans la colonne source (soit 'EA' ou 'Live DB') tandis que l'autre colonne est vide. Dans cet état, il est possible de coupler l' object avec un object d'un nom différent ; la liste déroulante ' Action ' présentera les objets disponibles. Si un nouvel appariement est effectué, les définitions des deux objets sont comparées pour les différences et les résultats sont affichés dans la liste 'Composants', avec l'action par défaut '====>' sélectionnée.

Si vous sélectionnez une action au niveau de l' object , cela définira l'action correspondante pour tous les composants et propriétés de l' object . Cependant, si vous sélectionnez l'action 'Personnaliser' au niveau de l' object , vous pouvez déterminer une action différente pour chaque composant.

Par exemple, une colonne (tax_amount) et une contrainte (ck_customersordersitems_discount) ont été renommées dans Tableau « public.customers_order_items » (dans le modèle Exemple) et une comparaison de base de données a été effectuée ; cette image montre les différences trouvées :

Showing the Database Compare tab of the Database Builder, in Sparx Systems Enterprise Architect.

Dans l'image, il n'y a qu'un seul Tableau qui a détecté des différences - 'public.customers_order_items' ; la sélection de ceci remplit la liste 'Composants'. À partir des résultats détectés, il peut être déterminé que le modèle de données contient une colonne (tax_amount2) et une contrainte de vérification (ck_customerordersitems_discount1) que la base de données en direct ne contient pas et à son tour la base de données en direct contient une colonne (tax_amount) et une contrainte de vérification (ck_customerordersitems_discount ) contrairement au modèle de données.

Comparaison avec les options

La fonctionnalité « Comparer avec les options » fonctionne de la même manière que pour une comparaison directe, sauf que vous êtes invité à choisir les comparaisons d' object /propriété à effectuer. Cela vous permet d'ignorer des différences particulières qui ne sont pas pertinentes à l'heure actuelle.

Ces tableaux décrivent les différentes comparaisons qui peuvent être activées ou désactivées.

Tous les objets, propriétaire

Comparaison

Action

Propriétaire

Sélectionnez cette option pour indiquer que la propriété 'Propriétaire' de tous les objets de la base de données doit être comparée, une fois que les objets ont été 'jumelés'.

Options Tableau

Option

Action

Tableaux

Sélectionnez cette option parent pour activer toutes les options de comparaison Tableau . Désélectionnez pour désactiver toutes les autres options. Vous désélectionnerez ou sélectionnerez alors des options spécifiques dans la liste.

Tableau - Propriétés étendues

Sélectionnez pour indiquer que les propriétés étendues de Tableaux (telles que DB Version et Tablespace) doivent être comparées.

Tableau - Remarques

Sélectionnez pour indiquer que les remarques appliquées aux Tableaux doivent être comparées.

Colonnes

Sélectionnez cette option parent pour activer toutes les options 'Comparaison de colonnes'. Désélectionnez pour désactiver toutes les autres options 'Colonne'. Vous désélectionnerez ou sélectionnerez alors des options spécifiques dans la liste.

Colonne - Type

Sélectionnez pour indiquer que le nom du type de données pour les colonnes Tableau doit être comparé.

Colonne - Taille

Sélectionnez pour indiquer que la taille du type de données pour les colonnes du Tableau doit être comparée.

Colonne - Valeur par défaut

Sélectionnez pour indiquer que les valeurs par défaut des colonnes du Tableau doivent être comparées.

Colonne - Poste

Sélectionnez pour indiquer que les positions des colonnes du Tableau doivent être comparées.

Colonne - non nulle

Sélectionnez pour indiquer que la propriété non nulle des colonnes du Tableau doit être comparée.

Colonne - Numérotation automatique

Sélectionnez pour indiquer que les propriétés de numérotation automatique des colonnes du Tableau doivent être comparées (comme AutoNum, StartNum et Increment).

Colonne - Colonnes sans correspondance

Sélectionnez pour indiquer que les colonnes Tableau qui ne correspondent pas entre le modèle et la base de données en direct doivent être comparées. Il s'agit généralement de colonnes qui existent dans un système mais n'existent pas dans l'autre.

Colonne - Propriétés étendues

Sélectionnez pour indiquer que les propriétés étendues des colonnes Tableau (telles que Non signé et Remplissage zéro) doivent être comparées.

Colonne - Remarques

Sélectionnez pour indiquer que les remarques appliquées aux colonnes Tableau doivent être comparées.

Contraintes

Sélectionnez cette option parent pour activer toutes les options 'Comparaison des contraintes Tableau '. Désélectionnez pour désactiver toutes les options ' Tableau Constraint'. Vous désélectionnerez ou sélectionnerez alors des options spécifiques dans la liste.

Contrainte - Clés primaires

Sélectionnez pour indiquer que les propriétés liées aux clés primaires doivent être comparées.

Contrainte - Foreign Keys

Sélectionnez pour indiquer que les propriétés liées aux Foreign Keys doivent être comparées.

Contrainte - Index

Sélectionnez pour indiquer que les propriétés liées aux index doivent être comparées.

Contrainte - Contraintes uniques

Sélectionnez pour indiquer que les propriétés liées aux contraintes uniques doivent être comparées.

Contrainte - Vérifier les contraintes

Sélectionnez pour indiquer que les propriétés liées aux contraintes de vérification doivent être comparées.

Contrainte - Déclencheurs Tableau

Sélectionnez pour indiquer que les propriétés liées aux déclencheurs Tableau doivent être comparées.

Contrainte - Contraintes inégalées

Sélectionnez pour indiquer que les contraintes Tableau qui ne correspondent pas entre le modèle et la base de données en direct doivent être comparées. Il s'agit généralement de contraintes qui existent dans un système mais n'existent pas dans l'autre.

Contraintes - Propriétés étendues

Sélectionnez pour indiquer que les propriétés étendues des Contraintes Tableau (telles que Facteur de remplissage et Regroupé) doivent être comparées.

Contraintes - Remarques

Sélectionnez pour indiquer que les remarques appliquées aux contraintes Tableau doivent être comparées.

Notes

  • La fonctionnalité Database Compare peut actuellement effectuer des comparaisons sur les types object Tableau , Vue , Procedure, Function et Séquence

Apprenez Plus