Lorsque vous vous connectez à la base de données Impact, vous le faites par une connexion de base de données. La connexion contient des informations telles que l'emplacement de la base de données sur votre réseau, notamment une chaîne de connexion ADO ou une source ODBC permettant d'accéder à la base de données.
Pour vous connecter, vous avez besoin d'un nom d'utilisateur et d'un mot de passe qui vous seront fournis par votre administrateur système Impact.
Le terme « base de données » n'a pas la même signification pour tout le monde. Une « base de données Impact » est en fait une véritable base de données, à laquelle s'ajoutent des fichiers de dessins (projets, symboles et modèles), des fichiers utilisateur (dessins de travail et paramètres) et des fichiers de configuration. La partie véritable de base de données est une base de données relationnelle comprenant des tables, des champs, des index, etc. utilisant un moteur de base de données client-serveur (Microsoft SQL Server, Oracle, MySQL). En option, la base de données peut avoir des « BLOBS », ce qui signifie que tous les fichiers (dessins, paramètres, configuration) sont convertis en « BLOBS » (jargon de base de données : objets binaires de grande taille) et stockés dans la véritable base de données. Dans ce cas les termes « base de données Impact » et « véritable base de données » sont synonymes.
Voir aussi : Base de données > ase de donnéesAdministration.
Relation de plusieurs-à-plusieurs
Introduction
Cette section décrit les détails de la mise en œuvre de la prise en charge des bases de données un-à-plusieurs et un-à-plusieurs dans Impact. Elle comprend les fonctionnalités suivantes :
- Option de définir des relations entre les tables internes et les tables personnalisées.
- Configuration d'une fenêtre de base de données FBD pour qu'elle ouvre une ou plusieurs FBDD enfant pour la modification des enregistrements liés.
- Configuration d'une FBDD pour inclure un ou plusieurs affichages liste enfants intégrés.
- Configurer une FBDD affichage liste pour afficher plusieurs enregistrements d'une table sous forme de liste.
- Stockage des données enfant liées pour les tables personnalisées.
- Stockage des données enfant liées pour les utilisateurs et les sites.
- Stockage des données enfant liées incorporées pendant la durée de vie des projets de travail.
- Mise à jour des données enfant liées lors d'une mise à jour.
- Suppression des données enfant liées lors de la suppression d'éléments.
Configuration des tables
La considération la plus importante est de déterminer les données supplémentaires que vous souhaitez stocker avec chaque élément d'impact, qu'il s'agisse d'un projet, d'une couche (ou d'un type de couche supplémentaire), d'un modèle, d'un symbole, d'un client, d'un contact, d'un utilisateur ou d'un site. Vous pouvez également stocker des données supplémentaires dans une table personnalisée nouvelle ou existante.
Il suffit de définir une nouvelle table personnalisée pour stocker les données liées, puis d'attacher ces données à la table parente au moyen d'une clé étrangère.
Une fois les tables ajoutées, il est important de définir les relations des tables afin qu'Impact les connaisse. Voir Configuration des relations ci-dessous.
Relation d'un-à-plusieurs
Créez une table personnalisée qui contiendra les données que vous souhaitez stocker dans la table parent. Cette table personnalisée contiendra zéro ou plusieurs enregistrements liés à un seul enregistrement parent.
Par exemple, pour créer une table permettant de stocker des données connexes supplémentaires pour chaque enregistrement DRAWINGS, vous pouvez définir une table comme ci-dessous.
La table personnalisée DRAWINFO contiendra zéro ou plusieurs enregistrements pour chaque enregistrement DRAWINGS.
Aucune propriété du menu Base de données n'est spécifiée car cette table ne devrait pas apparaître dans le menu Base de données d'impact.
Les colonnes DI_DATE et DI_TIME sont spécifiées pour stocker automatiquement les heures de modification des enregistrements.
Lors de la définition des champs de la table, il est important d'inclure un lien de clé étrangère vers la table parent. Dans ce cas, DI_DRAWKEY sera utilisé pour relier chaque enregistrement DRAWINFO à un enregistrement DRAWING particulier. Il est recommandé d'indexer toutes les clés étrangères.
Les autres champs de la table DRAWINFO sont utilisés pour stocker les données spécifiques qui vous intéressent. Les données que vous stockez seront spécifiques à la personnalisation/automatisation que vous mettez en œuvre.
Vous pouvez spécifier que certaines colonnes sont obligatoires, auquel cas Impact s'en chargera pour chaque enregistrement ajouté à la table.
Relation de plusieurs-à-plusieurs
L'exemple ci-dessus contient une seule clé étrangère qui sera utilisée pour relier la table DRAWINFO à un seul enregistrement DRAWINGS. Cela crée une relation de un à plusieurs : un enregistrement DRAWINGS vers plusieurs enregistrements DRAWINFO.
Pour créer des relations de plusieurs à plusieurs, vous devez définir des relations de clé étrangère supplémentaires entre la table enfant et d'autres tables de la base de données Impact.
La table exemplaire LAYINFO contient plusieurs colonnes de clés étrangères.
La colonne LI_LEYKEY relie chaque enregistrement LAYINFO à un seul enregistrement LAYERS.
La colonne LI_COLKEY est une clé étrangère de la clé primaire COL_KEY d'une table personnalisée COLOURS.
La colonne LI_USERKEY est une clé étrangère de la clé primaire U_KEY de la table USERS.
En raison de ces colonnes de clés étrangères supplémentaires et des relations entre les tables, on parle collectivement d'une relation de plusieurs à plusieurs
De nombreux enregistrements LAYERS sont liés à de nombreux enregistrements COLOURS par l'intermédiaire de la table de liens LAYINFO.
Dans Impact, la plus petite table de liens multiples contient trois colonnes : la colonne de clé primaire et deux colonnes de clé étrangère reliant deux tables.
Contacts et adresses de CUSTOMER
Il existe deux tables internes qui peuvent également être utilisées avec les nouveaux contrôles affichage liste disponibles dans les FBDD.
La table CONTACTS possède une clé étrangère permettant de lier une adresse à un CUSTOMER, à savoir CC_CUSTKEY.
La table ADDRESS a quatre clés étrangères définies qui peuvent lier une adresse à l'une des quatre tables parentes, à savoir A_USERKEY, A_CUSTKEY, A_CONTKEY et A_SITEKEY.
Dates et heures de modification
Vous pouvez configurer une colonne de date et d'heure pour enregistrer les heures de modification d'une table personnalisée.
Impact synchronisera ensuite les colonnes de date et d'heure de modification lors de l'ajout ou de la mise à jour de chaque enregistrement enfant lié. Pour les données liées aux projets (DRAWINGS, LAYERS, ONE_UP, MULTI_UP, etc.) la date et l'heure de modification sont synchronisées avec l'heure réelle de mise à jour du projet.
Ces colonnes sont également mises en lecture seule dans n'importe quelle FBDD.
Éléments du menu de base de données
Auparavant, toutes les tables de la base de données qui avaient une correspondance dans the Installation de base de données > Affectations FBDD ou Opération de base de données > Affectations FBDD avaient un élément de menu associé dans le menu Base de données Iimpact.
Auparavant, si la table n'avait pas de texte de menu configuré dans le groupe Menu de la base de données des propriétés de la structure de la table, une légende d'élément de menu était automatiquement générée à partir du nom de la table.
Comme il est désormais possible de spécifier des affectations FBDD pour les tables enfants qui n'ont pas besoin d'un élément de menu dans le menu de la base de données Impact, ce comportement a changé.
Des affectations FBDD ne seront ajoutées au menu de la base de données Impact que si le texte de menu est spécifié.
Les bases de données existantes sont automatiquement mises à jour de sorte que le texte de menu soit généré à partir du nom de la table s'il est manquant. Donc il n'est pas nécessaire de modifier la configuration des bases de données existantes.
Les nouvelles tables ajoutées devront avoir un texte de menu configuré si elles doivent apparaître dans le menu de la base de données Impact.
Invites de table
Une nouvelle propriété invite a été ajoutée pour chaque table dans le formulaire structure de la table.
Elle est actuellement utilisée pour afficher des noms de tableaux conviviaux lors de la demande de supprimer des tableaux. Elle ne peut pas s'appuyer sur le texte de menu car celui-ci peut-être n'est pas configuré, voir ci-dessus.
Les bases de données existantes sont automatiquement mises à jour et l'invite est copiée à partir du texte de menu.
Configuration des relations
Ayant défini les tables destinées à contenir les données supplémentaires, vous devez définir les relations entre les tables pour qu'Impact les connaisse.
Cette opération s'effectue via Installation de base de données > Relations de tables qui se trouvait auparavant sur la page Installation de base de données->Options de requêtes avancées.
Définissez chaque relation de tables en utilisant les clés étrangères que vous avez créées lors de la définition des tables. Ainsi, pour l'exemple DRAWINFO ci-dessus, définissez la relation de tables de DRAWINFO.DI_DRAWKEY à DRAWINGS.D_KEY comme suit.
Pour l'exemple LAYINFO ci-dessus, vous devez définir trois relations de tables :
- LAYINFO.LI_LAYKEY à LAYERS.L_KEY
- LAYINFO.LI_COLKEY à COLOURS.COL_KEY
- LAYINFO.LI_USERKEY à USERS.U_KEY
Les relations peuvent être définies entre des colonnes entières ou des colonnes de caractères, bien que généralement il soit préférable d'utiliser des relations de nombres entiers à l'aide des clés primaires.
Visualisation de la structure
Suite à la définition de vos tables et leurs relations, vous pouvez visualiser la façon dont vos tables sont liées à l'aide d'une application externe appelée Graphviz.
Il est recommandé d'utiliser la version en ligne de commande plutôt que de lier une version spécifique de la bibliothèque pour faciliter les mises à jour.
Graphviz est disponible sur https://www.graphviz.org/. Une fois installé, il suffit de cliquer sur Visualise et Impact vous demandera de configurer l'emplacement. La configuration est enregistrée sur la station de travail dans le registre plutôt que dans les paramètres utilisateur, car elle est spécifique à l'installation sur cette machine.
Impact génère simplement un fichier .xml contenant la notation Graphviz “dot” et appelle la ligne de commande dot.exe pour générer un fichier .png, qui est ensuite affiché à l'aide de l'application Windows associée.
Vous pouvez configurer quelques options pour choisir les tables et colonnes à inclure dans la sortie xml. Vous pouvez accéder à ces options après la configuration initiale en utilisant la flèche droite du bouton Visualiser.
Exemple de visualisation
L'exemple ci-dessous a été produit pour les tables exemplaires DRAWINFO and LAYINFO et leurs relations, présentées dans les sections précédentes.
Les tables de couleur marron clair sont des tables internes Impact ; les tables bleu clair sont des tables personnalisées Impact.
Les relations entre les tables internes Impact sont indiquées en noir, tandis que les relations entre les tables définies par l'utilisateur sont en bleu.
Une ligne à tête de losange représente une relation de un-à-plusieurs, l'extrémité du losange montrant la table qui peut contenir de nombreux enregistrements pour une seule clé parent. Un losange rempli représente une clé étrangère non nulle, tandis qu'un losange ouvert représente une clé étrangère qui peut être nulle.
Il existe également un cercle rempli et une ligne à double tête représentant une relation un-à-un, telle que LAYERS.L_EXTKEY à ONE_UP.OU_KEY. Les relations un-à-un entre tables ne peuvent pas être définies par l'utilisateur.
Fenêtres directes et incorporées de base de données
Une fois que vous avez défini les tables et leurs relations, vous devez configurer les FBDD appropriées pour saisir ces valeurs.
Il existe deux types de FBDD, chacune prenant en charge les données liées d'une manière légèrement différente.
Les FBDD directes sont utilisées pour saisir des données dans des tables personnalisées et sont disponibles dans le menu base de données Impact.
Les FBDD incorporées servent à saisir et afficher des données liées à d'autres objets Impact tels que des projets, des modèles, des symboles, des couches, des utilisateurs et des sites. Les FBDD incorporées ne stockent pas immédiatement les données dans leurs tables de destination, mais elles stockent les informations en interne pour ajouter/mettre à jour/supprimer des lignes, le cas échéant.
Les FBDD incorporées sont également utilisés dans le navigateur Impact pour afficher les informations de base de données de projets et de couches. Les FBDD incorporées dans le navigateur Impact sont en lecture seule.
Configuration de fenêtres de base de données
Le formulaire attributs de champ pour la configuration des champs de FBDD a été amélioré en utilisant un contrôle de page pour les propriétés principales de chaque type de contrôle.
Le type de contrôle a été déplacé au-dessus du contrôle de page pour indiquer qu’il doit être sélectionné en premier.
Deux nouveaux types de contrôle ont été ajoutés : Table affichage liste et Table enfant affichage liste.
La fonction Test lors de l'édition des FBDD prend en charge ces nouveaux contrôles affichage liste et vous permet même d'ajouter/modifier/enlever des lignes contrôles d'affichage liste. Aucune donnée n’est modifiée en mode Test.
Configuration du menu/bouton fenêtre de base de données
La commande supprimer tout a été déplacée du menu Action vers un bouton. Celui-ci est caché s’il n’est pas configuré dans la FBDD.
Auparavant, seuls des éléments supplémentaires du menu Action pouvaient être configurés dans une FBDD. Désormais, vous pouvez également configurer des boutons d'automatisation supplémentaires.
La nouvelle action Open Child DBW permet d'ouvrir une FBDD enfant pour l'enregistrement parent actuellement affiché.
Sélectionnez une relation appropriée pour une table enfant -> table parent.
Sélectionnez une FBDD particulière ou <Aucun> pour utiliser l'affection FBDD par défaut pour la table enfant.
Indiquez un titre FBDD facultatif qui remplacera les valeurs de l’enregistrement parent actuel.
Vous pouvez désormais spécifier que l'élément d'automatisation de l'action doit être un menu ou un bouton.
Mise à jour de la fenêtre de base de données CUSTOMER
Les paramètres existants de FBDD CUSTOMER sont automatiquement mis à jour pour inclure un bouton contacts et adresses dans la FBDD. Cela permet une personnalisation plus poussée si nécessaire.
Mise à jour de la fenêtre de base de données USERS
Dans les versions antérieures d'Impact, le formulaire propriétés de l'utilisateur comprenait une page adresse lorsqu'il existait une affectation FBDD pour la table ADDRESS table pour les clients utilisant l'authentification LDAP pour l'accès des utilisateurs. Cela permettait la création d'un seul enregistrement ADDRESS pour l’utilisateur.
Désormais, comme chaque utilisateur peut avoir plusieurs enregistrements ADDRESS vous devez configurer une table enfant table enfant affichage liste dans la FBDD USERS pour afficher les adresses.
Cette modification n'est PAS effectuée automatiquement et les clients qui utilisent LDAP devront reconfigurer leur FBDD USERS en conséquence.
Les enregistrements d'adresse créés pour chaque utilisateur à partir de l'annuaire LDAP auront une valeur A_DESCRPT de « LDAP ». Lors de l'édition de l'enregistrement ADDRESS « LDAP » dans une FBDD, tous les champs qui ont une affectation LDAP seront désactivés.
Les bases de données sont mises à jour automatiquement pour définir la colonne A_DESCRPT pour les adresses d'utilisateurs LDAP existantes.
Navigateur Impact
Le navigateur Impact prend en charge les FBDD à la fois dans les pages de propriétés et par la commande 'Base de données' du menu contextuel.
Toute FBDD configurée contenant des contrôles table enfant affichage liste affichera les données connexes en lecture seule.
Enregistrement de projets
Lorsqu'un projet est enregistré pour la première fois, toutes les données associées qui ont été ajoutées via des FBDD incorporées sont automatiquement ajoutées à la base de données.
Lors de l’utilisation de FBDD intégré ou des FBDD modaux individuelles contenant des contrôles table parent affichage liste, la validité des lignes de la table est vérifiée avant la fermeture des dialogues modaux.
De plus, avant d’enregistrer un projet, Impact vérifie que toutes les lignes de données associées contiennent toutes les colonnes obligatoires non nulles. Cela permet de s'assurer que les lignes saisies via la boîte à outils flottante Base de données sont valides, car elles ne sont pas vérifiées lors de l'édition directe dans une table enfant affichage liste de la boîte à outils.
Projets de travail
Pendant la durée de vie d’un projet de travail, toutes les données associées saisies dans les FBDD incorporées sont stockées directement dans le projet de travail lui-même.
Impact suit les lignes de données associées qui sont ajoutées, modifiées ou supprimées pendant la durée de vie du projet en cours.
Aucune donnée associée n'est écrite dans la base de données tant que le projet n'est pas mis à jour. Si le projet ou les couches individuelles sont refusés, aucune donnée associée n'est écrite dans la base de données.
Révisions du projet
Chaque révision du projet créée contenant de la géométrie est également enregistrée avec tous les enregistrements de données associées actuels de la base de données.
Sélectionner une révision dans l’Explorateur Impact et consulter les informations associées à la base de données affichera les données associées présentes au moment de la création de cette révision.
Revenir à une révision précédente d’un projet remplacera toutes les données associées actuelles par celles stockées dans la révision du projet restaurée.
Suppression en cascade
Lors de la suppression d'éléments au sein d'Impact, toutes les données enfant associées sont également automatiquement supprimées.
C'est applicable à :
- Des projets, y compris tous les couches et les enregistrements de couches supplémentaires
- Modèles et symboles
- Clients et contacts
- Utilisateurs
- Sites
- Enregistrements de tables personnalisées