- Présentation
- Création d'un schéma des données (MLD)
- Créer un schéma des données (ou MLD)
- Ajouter une table dans un schéma des données
- Créer une rubrique
- Créer une liaison
- Caractéristiques des liaisons définies dans un schéma des données
- Table propriétaire et table membre
- Les cardinalités
- Les cardinalités avancées
- L'intégrité référentielle
- Les différents types de liaisons
- Manipulations possibles sur un schéma des données
- Génération du schéma des données
- Gestion des versions du schéma des données
- Restauration d'un schéma des données
- Annulation de la dernière génération
- Remettre à 1 le numéro de la version
2. Le schéma des données en pratique
Lorsqu'un projet utilise des tables, ce projet doit être associé à un schéma des données. Un schéma des données permet de décrire les structures de données (tables, rubriques, etc.) utilisées dans votre projet. Pour décrire un schéma des données, deux méthodes sont possibles: - 1ère méthode: Création directe du schéma des données (c'est-à-dire création du Modèle Logique des Données (MLD)).
- 2ème méthode: Création du Modèle Conceptuel des Données (MCD), puis création automatique du schéma des données à partir du MCD. Pour plus de détails, consultez Génération du MCD en MLD.
Ce chapitre présente la première méthode. Création d'un schéma des données (MLD) Dans WINDEV, les termes "MLD" et "Schéma des données" sont utilisés indifféremment pour définir la structure de la base de données associée à un projet. Créer un schéma des données (ou MLD) Pour créer un schéma des données: - Cliquez sur
parmi les boutons d'accès rapide. La fenêtre de création d'un nouvel élément s'affiche: cliquez sur "Données" puis sur "Schéma des données". L'assistant de création d'un schéma des données se lance. - Spécifiez les informations générales concernant le schéma des données:
- le nom et le répertoire du schéma des données. Le schéma des données correspond à un fichier ".WDA". Par défaut, ce fichier sera créé dans le répertoire du schéma des données du projet (répertoire <Nom du projet>.ANA). Ce répertoire doit être accessible en lecture et en écriture.
- la description du schéma des données décrivant succinctement le sujet du schéma des données.
- Dans l'étape suivante, indiquez le type de la base de données:
- Dans l'étape suivante, spécifiez si nécessaire les informations de connexion.
- Terminez l'assistant de création du schéma des données. La création de la première table est automatiquement proposée.
- Créez l'ensemble des éléments (tables, rubriques et liaisons) de votre schéma des données.
Ajouter une table dans un schéma des données Le schéma des données permet de décrire la structure des tables utilisées par le projet. Une table présente dans le schéma des données peut être: - Un nouvelle table.
- Une table prédéfinie, livrée avec WINDEV, WEBDEV ou WINDEV Mobile.
- Une table importée depuis une base existante (utilisant par exemple un format spécifique).
Les paragraphes suivants détaillent comment créer une table. Pour créer une nouvelle table: - Sous le volet "Schéma des données", dans le groupe "Création", cliquez sur "Nouvelle
table". L'assistant de création d'une table se lance.
- Sélectionnez l'option "Créer une nouvelle description d'une table".
- Spécifiez:
- le nom de la table. Ce nom est le nom logique de la table. Il sera utilisé pour manipuler la table.
- le libellé de la table résumant succinctement le sujet de la table.
- la représentation d'un enregistrement dans la table. Cette représentation permet d'améliorer la lisibilité des questions posées lors de la description des liaisons. Cette option doit être précédée d'un article indéfini (UN ou UNE).
- si la table possède une rubrique de type "Identifiant automatique". La valeur de cette rubrique est unique pour chaque enregistrement et est automatiquement calculée par WINDEV, WEBDEV ou WINDEV Mobile.
- le type de la base de données associée à la table: Selon le type choisi, cette table sera manipulée par le moteur HFSQL, par un pilote OLE DB ou par un des Connecteurs Natifs de WINDEV ou WEBDEV (SQL Server, Oracle, etc.).
- La table créée devient la table en cours. La fenêtre de description des rubriques de la table s'ouvre automatiquement. Vous pouvez décrire les rubriques de la table.
Pour importer une description prédéfinie d'une table: - Sous le volet "Schéma des données", dans le groupe "Création", cliquez sur "Nouvelle
table". L'assistant de création d'une table se lance.
- Sélectionnez l'option "Sélectionner une description parmi des tables prédéfinies".
- Choisissez la table prédéfinie à créer (il est possible d'en sélectionner plusieurs). Cette table sera importée dans le schéma des données en cours. Cette table pourra être modifiée par la suite.
- Sélectionnez les rubriques à conserver. Ces rubriques pourront être modifiées par la suite.
- La table importée est automatiquement insérée dans le schéma des données en cours.
Remarque: Pour modifier une table ou les rubriques d'une table: - Sélectionnez la table.
- Dans le menu contextuel, sélectionnez l'option "Description de la table" ou l'option "Description des rubriques".
Pour importer une description de table existante, deux solutions sont possibles: Solution 1: Depuis l'éditeur de schémas des données - Sous le volet "Schéma des données", dans le groupe "Création", cliquez sur "Nouvelle
table". L'assistant de création d'une table se lance.
- Sélectionnez l'option "Utiliser des tables d'une base existante", puis sélectionnez le type de la base de données.
- Spécifiez la base de données source contenant les descriptions à importer et le type de cette base de données source. Selon le type choisi, renseignez les informations demandées.
- Sélectionnez les tables ou les tables dont la description doit être importée et validez.
- La table importée est automatiquement insérée dans le schéma des données en cours.
Solution 2: Depuis l'explorateur de Windows "Droppez" directement la description de la table de l'explorateur Windows vers l'éditeur de schémas des données. Par exemple: Ici, une base de données Oracle, sur le serveur. Il suffit de faire glisser le nom de la base pour en transférer la description sous l'éditeur de schémas des données. Créer une rubrique Pour créer une rubrique: - Double-cliquez sur la table dans laquelle la rubrique doit être créée. La fenêtre de description des rubriques de la table s'ouvre.
- Cliquez sur la première ligne vide du tableau des rubriques.
- Spécifiez le nom, le libellé et le type de la rubrique directement dans le tableau.
- Indiquez dans la partie droite de la fenêtre les détails concernant la nouvelle rubrique (type, taille, valeur par défaut, sens de parcours, ...).
- Indiquez les détails concernant les informations partagées: cliquez sur le lien "Paramètres du champ relié à la rubrique sélectionnée (Informations partagées)".
- Validez la description de la rubrique.
Remarque: il est également possible de créer une rubrique à partir des méta-types proposés par WINDEV. Pour cela, il suffit de cliquer sur le bouton  . La liste des méta-types disponibles apparaît. Créer une liaison Il est possible de créer différents types de liaison entre les tables. Pour plus de détails sur les liaisons, consultez le paragraphe Caractéristiques des liaisons définies dans un schéma des données. Pour créer une liaison: - Sous le volet "Schéma des données", dans le groupe "Création", cliquez sur "Nouvelle liaison". Le curseur de la souris se transforme en crayon.
- Sélectionnez les deux tables à relier. La fenêtre de description de liaison s'ouvre automatiquement.
- Pour définir les cardinalités entre les deux tables:
- soit sélectionnez directement les cardinalités parmi celles proposées (0,1 ; 1,1 ; 0,N ; 1,N).
- soit répondez aux questions posées. Les cardinalités seront mises à jour automatiquement.
- Pour décrire des cardinalités avancées, cochez l'option "Afficher les cardinalités avancées" et répondez aux questions posées.
- Saisissez le libellé de la liaison en décrivant succinctement le sujet de la liaison.
- Spécifiez les clés à relier.
- Précisez les règles d'intégrité. Ces règles permettent d'assurer la cohérence des données lors de la modification ou lors de la suppression d'une des clés de la relation.
- Validez. La liaison est automatiquement créée.
Caractéristiques des liaisons définies dans un schéma des données Table propriétaire et table membre Dans le cas de liaison entre deux tables, il existe une table propriétaire et une table membre: - la table propriétaire est propriétaire de la clé.
- la table membre est une table des tables du schéma des données contenant une copie de la clé.
Pour gérer la liaison entre deux tables, la clé de la table propriétaire est copiée dans la table membre. Par exemple, la clé de la table Fournisseur est copiée dans chaque enregistrement de la table Produit. Plusieurs enregistrements de la table Produit peuvent avoir la même clé de la table Fournisseur: - la table propriétaire est Fournisseur,
- la table membre est Produit.
La représentation d'une telle liaison est la suivante: Les cardinalités Les cardinalités permettent de dénombrer les liens entre les tables. La cardinalité est définie en fonction des réponses aux deux questions suivantes: - Pour chaque enregistrement de la table, à combien d'enregistrements de l'autre table au minimum cet enregistrement est-il relié?
La réponse fournit la première partie de la cardinalité (cardinalité minimale):- si la réponse est "aucun", la cardinalité est du type 0,X.
- si la réponse est "un seul", la cardinalité est du type 1,X.
- Pour chaque enregistrement de la table, à combien d'enregistrements de l'autre table au maximum cet enregistrement est-il relié?
La réponse fournit la deuxième partie de la cardinalité (cardinalité maximale):- si la réponse est "un seul", la cardinalité est du type X,1.
- si la réponse est "plusieurs", la cardinalité est du type X,N.
La réponse à ces deux questions définit la cardinalité qui peut être de type: 0,1 ; 0,N ; 1,1 ; 1,N La description des cardinalités est fondamentale: elle est la base du respect de l'intégrité référentielle de la base de données. Pour plus de clarté, ces deux questions peuvent être décomposées en quatre questions. Par exemple, pour décrire une liaison entre la table Club et la table Personne:
- chaque "Club" a au moins un "Personne": Oui/Non ?
- chaque "Club" peut avoir plusieurs "Personnes": Oui/Non?
- chaque "Personne" a au moins un "Club": Oui/Non?
- chaque "Personne" peut avoir plusieurs "Clubs": Oui/Non?
Exemple de cardinalités: Cet exemple présente deux cardinalités différentes: - Cardinalité 0,1: Une personne peut être inscrite à un seul club de sport. Cette personne n'est pas obligée d'être inscrite à un club de sport.
- Cardinalité 0,N: Un club peut avoir aucune ou plusieurs personnes inscrites.
Les cardinalités avancées Il est possible de définir avec plus de précision les cardinalités. On parle alors de cardinalités avancées. Ces cardinalités permettent de préciser exactement la cardinalité minimale et la cardinalité maximale. Pour définir les cardinalités avancées, cochez l'option "Affichez les cardinalités avancées" dans la description de la liaison. Exemple de cardinalités avancées: Cet exemple présente deux cardinalités différentes: - Cardinalité 0,1: Une personne peut être inscrite à un seul club de sport. Cette personne n'est pas obligée d'être inscrite à un club de sport.
- Cardinalité 0,10: Un club peut avoir de 0 à 10 personnes inscrites.
L'intégrité référentielle L'intégrité référentielle d'une base de données correspond au respect des contraintes impliquées par les liaisons entre les tables. L'intégrité référentielle consiste à vérifier par exemple que: - si un enregistrement est supprimé dans le propriétaire, les enregistrements correspondants dans les membres sont également supprimés,
- si un enregistrement est ajouté dans un membre, il existe un enregistrement correspondant dans le propriétaire,
- si un enregistrement est modifié dans un propriétaire, la clé unique n'est pas modifiée, etc.
La vérification de l'intégrité référentielle dépend de la nature de la liaison entre les tables.
Pour plus de détails sur le contrôle de l'intégrité référentielle, consultez l'aide en ligne. Les différents types de liaisons Les liaisons entre tables peuvent être de plusieurs types: - parallèle,
- facultative,
- de complément,
- partagée,
- complexe.
Liaison parallèle Dans le cas d'une liaison parallèle, chaque enregistrement d'une table (Produit) est relié à un enregistrement dans une autre table (Information), et réciproquement. Pour gérer une liaison parallèle, l'identifiant de la table Produit est copié dans la table Information. Cet identifiant est également clé unique dans la table Information. La table propriétaire est alors Produit et la table membre est Information. Remarque: Ce type de liaison est rare car les deux tables peuvent être regroupées en une seule. Le parallélisme des enregistrements dans la table est respecté si les opérations suivantes sont exécutées simultanément sur les deux tables: - création d'un enregistrement.
- suppression d'un enregistrement.
- réindexation avec compactage.
Liaison facultative Dans le cas d'une liaison facultative: - Chaque enregistrement d'une table (Catégorie) n'a aucun enregistrement ou un seul enregistrement associé dans une autre table (Groupe).
- Chaque enregistrement de l'autre table (Groupe) n'a aucun enregistrement ou un seul enregistrement associé dans la première table (Catégorie).
Une liaison facultative est réalisée en copiant l'identifiant de chacune des tables dans l'autre table. Liaison de complément Dans le cas d'une liaison de complément: - Chaque enregistrement d'une table (Produit) n'a aucun enregistrement ou un seul enregistrement associé dans une autre table (Détail).
- Chaque enregistrement de l'autre table (Détail) a nécessairement un enregistrement associé dans la première table (Produit).
Les liaisons de complément sont assez fréquentes. Elles sont notamment utilisées lorsqu'un enregistrement peut avoir des compléments d'informations optionnels. Pour gérer une liaison de complément, la clé de la table Produit est copiée dans la table Détail. Pour assurer la cardinalité maximale de 1, elle reste clé unique. L'unicité de cette clé interdit l'insertion de plus d'un enregistrement dans Détail pour un enregistrement de Produit. La table propriétaire est Produit, la table membre est Détail. Liaison partagée Dans le cas d'une liaison partagée, un même enregistrement dans une table (Fournisseur) peut être partagé par plusieurs enregistrements dans une autre table (Produit).
Pour gérer une liaison partagée, la clé de la table Fournisseur est copiée dans la table Produit. Elle devient clé multiple pour accélérer la vérification de l'intégrité. La table propriétaire est Fournisseur, la table membre est Produit. Selon la cardinalité, il est possible de distinguer quatre types de liaisons partagées: - Liaison partagée de cardinalité 0,n - 0,1.
- Liaison partagée de cardinalité 0,n - 1,1.
- Liaison partagée de cardinalité 1,n - 0,1.
- Liaison partagée de cardinalité 1,n - 1,1.
Liaison partagée de cardinalité 0,N - 0,1Avec ce type de liaison: - un propriétaire peut ne pas avoir de membre (un fournisseur n'a pas obligatoirement de produit).
- un membre peut ne pas avoir de propriétaire (un produit n'a pas obligatoirement de fournisseur).
Liaison partagée de cardinalité 0,N - 1,1Avec ce type de liaison: - un propriétaire peut ne pas avoir de membre (un fournisseur peut avoir aucun produit).
- chaque membre a un seul propriétaire (chaque produit a un seul fournisseur).
Remarque: Ce type de liaison est fréquent. WINDEV permet de créer automatiquement les fenêtres permettant de gérer les tables liées par une liaison de type 0,N - 1,1. Liaison partagée de cardinalité 1,N - 0,1 Avec ce type de liaison: - chaque propriétaire a au moins un membre (un fournisseur a au moins un produit).
- un membre peut ne pas avoir de propriétaire (un produit peut avoir aucun fournisseur).
Liaison partagée de cardinalité 1,N - 1,1Avec ce type de liaison : - chaque propriétaire a au moins un membre (chaque fournisseur a au moins un produit).
- chaque membre a un seul propriétaire (chaque produit a un seul fournisseur).
Liaison complexeDans le cas d'une liaison "complexe", il est nécessaire de gérer un fichier de liaison, appelé table de relation. La table de relation sera automatiquement créée. Il contiendra une clé unique composée des deux clés des tables reliées. La table de relation peut également contenir des informations spécifiques à la liaison. Une liaison complexe se décompose alors en deux liaisons de type partagé. Exemple de liaison complexe Une commande (table Commande) peut contenir un ou plusieurs produits. Un produit (table Produit) peut être utilisé dans plusieurs commandes. Dans ce cas, il faut avoir une table de liaison (table LigneCommande). La table LigneCommande contient: - une clé unique composée des clés de Produit et de Commande.
- le nombre de produits commandés.
Les liaisons entre les tables sont les suivantes: Manipulations possibles sur un schéma des données WINDEV permet de réaliser les manipulations suivantes sur un schéma des données (MLD): - Dupliquer / Copier un schéma des données: La duplication d'un schéma des données permet de disposer de deux schémas des données identiques de nom différent.
- Supprimer un schéma des données.
- Renommer un schéma des données.
- Associer un schéma des données à un projet.
- Agrandir ou réduire l'affichage d'un schéma des données sous l'éditeur.
- Déplacer l'affichage d'un schéma des données sous l'éditeur.
WINDEV permet de réaliser les manipulations suivantes sur une table présente dans l'éditeur de schémas des données: - Dupliquer/Copier une table.
- Supprimer une table.
- Renommer une table.
WINDEV permet de réaliser les manipulations suivantes sur une rubrique d'une table présente dans l'éditeur de schémas des données: - Dupliquer/Copier une rubrique.
- Supprimer une rubrique.
- Renommer une rubrique.
Pour plus de détails, consultez Manipulations d'un schéma des données (MLD). Génération du schéma des données La génération du schéma des données intervient avant la phase de programmation et après la phase de description des tables. Cette génération permet de: - valider les modifications effectuées sur le schéma des données (MLD).
- créer les modules nécessaires à la programmation.
- mettre à jour automatiquement les tables si nécessaire.
Tant que le schéma des données (le MLD) n'a pas été généré, la description du schéma des données (les tables) ne pourra pas être utilisée dans le projet. Pour lancer la génération du schéma des données, sous le volet "Schéma des données", dans le groupe "Schéma des données", cliquez sur "Génération". La génération comporte trois étapes: - Vérification des modifications effectuées et génération des fichiers physiques correspondant à la description du schéma des données.
- Modification automatique des tables accessibles (tables présentes dans le répertoire "EXE" du projet).
- Synchronisation du projet.
Gestion des versions du schéma des données Pour gérer les différentes versions du schéma des données: - Sous le volet "Schéma des données", dans le groupe "Schéma des données", cliquez sur "Génération".
- Sélectionnez l'option "Gestion des versions".
- Dans l'assistant, indiquez si vous voulez travailler sur le schéma des données en cours ou sur un schéma des données spécifique.
Remarque: lorsqu'un schéma des données est endommagé, il est possible de sélectionner directement le schéma des données endommagé pour restaurer par exemple un des versions précédentes. Toutes les versions du schéma des données sont visualisées sous forme d'un graphique. Le carré jaune indique le numéro de version du schéma des données, le libellé à droite rappelle la date de la génération. Entre deux versions figurent des "petits rectangles" qui signifient: - un rectangle: il y a eu peu de modifications effectuées entre les deux versions.
- plusieurs rectangles: il y a eu plusieurs modifications effectuées entre les deux versions.
Pour visualiser le détail des modifications effectuées entre deux versions: Double-cliquez sur la ligne contenant les "petits rectangles" ou cliquez sur le bouton [Modifications]. Les options disponibles dans le gestionnaire de versions sont: - Restauration d'un schéma des données.
- Annulation de la dernière génération.
- Remettre à 1 le numéro de version.
Restauration d'un schéma des données Pour restaurer un schéma des données à partir du gestionnaire de versions: - Sélectionnez la version à restaurer.
- Il est possible de:
- soit restaurer la version dans le répertoire spécifié. Un schéma des données indépendant est créé correspondant à la version choisie. Cette option est sélectionnée par défaut.
- soit écraser le schéma des données en cours.
- Validez. La restauration est effectuée.
Attention: Les tables correspondant à un schéma des données de numéro de version supérieur à la version restaurée ne pourront plus être ouvertes. Il faut alors également restaurer des tables correspondant à la version du schéma des données restauré ou supprimer les tables existantes pour qu'elles soient recréées. Annulation de la dernière génération L'annulation de la dernière génération du schéma des données permet de restaurer le schéma des données dans son état avant la dernière génération. Les modifications effectuées depuis ne sont pas appliquées. Remettre à 1 le numéro de la version Il est possible de remettre le numéro de génération du schéma des données à "1": sous le volet "Schéma des données", dans le groupe "Schéma des données", cliquez sur "Génération" et sélectionnez l'option "Remettre à 1 la version du schéma des données". Dans ce cas le numéro de version du schéma des données est remis à un. Aucune action spécifique n'est réalisée sur les tables.
|
|
|