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

Comparaison de bases de données

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

La fonctionnalité de comparaison de bases de données nécessite que le générateur de bases 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 « Bloc-notes SQL », « Comparaison de bases de données » et « Exécuter DDL » du générateur de bases de données.

Accéder

Ouvrez la fenêtre du générateur de base de données, puis affichez l'onglet « Comparaison de bases de données ».

Ruban

Développer > Modélisation des données > Générateur de bases de données > Comparaison de bases de données

L'onglet Comparer DDL

L'onglet « Comparaison de bases de données » comporte un certain nombre de contrôles, comme décrit ici.

Numéro et nom

Description

1 Sensible à la casse

Cliquez sur cette case à cocher 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 s'il est disponible

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

3 Réinitialiser tout

Cliquez sur ce bouton pour réinitialiser l'indicateur « Action » de tous les objets à la valeur par défaut.

4 Définir Importer tout

Cliquez sur ce bouton pour définir l'indicateur « 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 Définir Synchroniser tout

Cliquez sur ce bouton pour définir l'indicateur « 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 du modèle.

6 différences

Révision la liste des objets présentant des discordances 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 ».

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

7 Composants

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

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

8 Réinitialiser

Cliquez sur ce bouton pour réinitialiser l'indicateur « Action » pour toutes les propriétés de l' object actuel à la valeur par défaut.

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 « Modifier DDL » pour tous les objets avec une « Action » de ====>, et envoyer les instructions à l'onglet « Exécuter DDL ».

Liste des différences

Colonne

Description

EA

Affiche le nom de chaque object du modèle présentant 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

La valeur par défaut est « Aucune Action » comme action à entreprendre en tenant compte 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é soit ou non associé dans le modèle et la base de données en direct.

Objets apparié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éparer 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 object > - supprime l' object du modèle
  • Drop < nom object > - supprime l' object de la base de données
  • Associer avec < nom object > - associer 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 comporte une colonne Tableau « Address1 » et que le modèle n'en comporte pas, la définition de l' object « Action » sur « ===> » (mettre à jour l' object dans la base de données à partir du modèle) définit la colonne « Item Action » sur « Drop Address1 », ce qui supprimera la colonne de la base de données en direct.

Base de données en direct

Affiche le nom de chaque object de la base de données active qui présente une ou plusieurs différences détectées. Les valeurs vides indiquent que l' object existe dans le modèle mais est manquant 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 en direct.

Liste des composants

Colonne

Description

Item

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

EA

Affiche la valeur du composant donné telle que détectée 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 en direct.

Action

Par défaut, l'action correspond au paramètre du champ « Action » 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> - supprime l'élément du modèle
  • Supprimer <nom de l'élément> - supprimer l'élément de la base de données en direct

Base de données 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 en direct.

Compter

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

Travailler avec 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 object est affiché dans les colonnes « EA » et « Live DB » avec une action par défaut de « Aucune Action ». La colonne « Nombre » 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 object est affiché dans la colonne source (soit « EA » soit « Live DB ») tandis que l'autre colonne est vide. Dans cet état, il est possible d'associer l' object à un object d'un nom différent ; la liste déroulante « Action » présentera les objets disponibles. Si une nouvelle association est effectuée, les définitions des deux objets sont comparées pour détecter 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 , l'action correspondante sera définie 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.

À titre d'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 d'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 cette option 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) que le modèle de données ne contient pas.

Comparaison avec les options

La fonctionnalité « Comparer avec les options » fonctionne de la même manière que pour une comparaison directe, à ceci près que vous êtes invité à choisir les comparaisons object /propriétés à 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 base de données doit être comparée, une fois les objets « appariés ».

Options Tableau

Option

Action

Tableaux

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

Tableau - Propriétés étendues

Sélectionnez cette option pour indiquer que les propriétés étendues des Tableaux (telles que la version de la base de données et l'espace de table) doivent être comparées.

Tableau - Remarques

Sélectionnez cette option 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-la pour désactiver toutes les autres options « Colonne ». Vous pouvez ensuite désélectionner ou sélectionner des options spécifiques dans la liste.

Colonne - Type

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

Colonne - Taille

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

Colonne - Valeur par défaut

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

Colonne - Position

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

Colonne - Non nulle

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

Colonne - Numérotation automatique

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

Colonne - Colonnes non appariées

Sélectionnez cette option 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 pas dans l'autre.

Colonne - Propriétés étendues

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

Chronique - Remarques

Sélectionnez cette option 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-la pour désactiver toutes les options « Contraintes Tableau ». Vous devez ensuite désélectionner ou sélectionner des options spécifiques dans la liste.

Contrainte - Primary Keys

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

Contrainte - Foreign Keys

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

Contrainte - Index

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

Contrainte - Contraintes uniques

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

Contrainte - Vérifier les contraintes

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

Contrainte - Tableau Déclencheurs

Sélectionnez cette option pour indiquer que les propriétés liées à Tableau Déclencheurs doivent être comparées.

Contrainte - Contraintes non appariées

Sélectionnez cette option 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 pas dans l'autre.

Contraintes - Propriétés étendues

Sélectionnez cette option pour indiquer que les propriétés étendues des contraintes Tableau (telles que le facteur de remplissage et le clustering) doivent être comparées.

Contraintes - Remarques

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

Notes

  • La fonctionnalité de comparaison de bases de données peut actuellement effectuer des comparaisons sur les types object Tableau , Vue , Procedure, Function et Séquence

Apprenez Plus