4D v16.3

Principes des bases de données

Accueil

 
4D v16.3
Principes des bases de données

Principes des bases de données  


 

 

Une base de données est un ensemble d’informations organisées de manière à être exploitées efficacement. Un carnet d’adresses, un dictionnaire, un calendrier ou un livre de recettes sont des exemples courants de bases de données.

Les informations dans une base sont organisées sous la forme d’enregistrements. Chaque enregistrement contient toutes les informations sur une personne ou un “élément” de la base. Par exemple, chaque enregistrement dans un carnet d’adresses contient le nom d’une personne, son adresse et son numéro de téléphone.

Chaque enregistrement contient des champs. Un champ est utilisé pour stocker une information particulière. Par exemple, dans la base “Carnet d’adresses” un champ contient le nom de la personne, un deuxième contient son adresse et un troisième son numéro de téléphone. Tous les enregistrements contiennent tous ces champs et chaque enregistrement stocke des informations spécifiques dans chacun de ces champs.

Le nom du champ désigne généralement les informations qui sont stockées dans ce champ. Par exemple, les champs peuvent être appelés “Nom”, “Adresse” ou “Numéro de téléphone”. Chaque champ se voit affecter un type qui identifie le type de données qui peuvent y être saisies : nombres, dates, caractères alphanumériques ou autres. Comme chaque champ contient un type spécifique de données, vous pouvez effectuer des calculs et d’autres types d’opérations sur les informations de ces champs. Par exemple, des nombres de deux champs peuvent être additionnés. Une date d’un champ peut être comparée à une date d’un autre champ. Le nom d’une personne (stocké dans un champ) peut être affiché en face de son prénom (stocké dans un autre champ) pour réaliser la première ligne d’une étiquette d’adresse.

L’ensemble des enregistrements qui utilisent les mêmes champs constitue une table. Une base de données peut contenir plusieurs tables séparées.

4D peut réorganiser les enregistrements et réaliser des calculs sur les informations afin de les rendre plus utiles. Par exemple, 4D peut calculer un total dans un champ et présenter le total dans un état. Il peut calculer un total pour chaque vendeur et afficher un graphe qui compare les résultats des ventes.

4D vous permet de créer de 1 à 32 767 tables par base de données. Cela vous donne la possibilité de créer une structure qui s’adapte exactement à vos besoins.

Certaines bases de données comportent une table unique. Vous pouvez utiliser une table unique pour des catégories comme des sociétés, un inventaire, un fichier du personnel, etc. Vous pouvez définir jusqu’à 32 767 champs par table.

 

Dans l’exemple ci-dessus, l’enregistrement de chacun des employés stocke le même type de données. La taille de la base de données augmente en fonction du nombre de personnes “stockées”.

Une base de données qui utilise plus d’une table permet souvent d’y accéder plus efficacement. Il est logique de considérer que des informations qui sont fondamentalement différentes doivent être stockées à des endroits différents.

Une base de données qui archive des données sur le personnel de sociétés ainsi que sur les sociétés représente un bon exemple. Les enregistrements du personnel et des sociétés sont stockés dans des tables différentes. Si l’adresse d’une société change, vous n’avez besoin de modifier que l’enregistrement de cette société. Vous n’avez pas besoin de saisir la nouvelle adresse pour toutes les personnes qui travaillent dans cette société.

Avec une seule table, il aurait été nécessaire de saisir l’adresse dans chaque enregistrement ; avec deux tables, il n’est nécessaire de saisir cette information qu’une fois. Quand le nom d’une société est saisi dans l’enregistrement d’un employé, 4D peut chercher l’enregistrement qui correspond à cette société et automatiquement afficher son adresse.

L’écran suivant représente la structure d’une base de données qui possède deux tables liées. La flèche qui est dessinée entre le champ [Employés]Société et le champ [Sociétés]Nom représente ce lien :

Les données de chaque employé sont stockées dans la table [Employés]. Les données qui concernent les entreprises sont stockées dans la table [Sociétés]. 

4D est une base de données relationnelle, car elle peut utiliser de multiples tables et les lier de différentes manières. Par exemple, vous pouvez créer un état pour la table [Employés] qui effectue une recherche dans la table [Sociétés], affiche et imprime les informations sur les entreprises liées à chaque employé. Les relations entre les tables permettent l’exploitation des informations de chacune des tables dans un état.

Vous pouvez aussi saisir des données directement dans des tables liées. Par exemple, une base de facturation peut directement saisir des données dans une table [Lignes de facture] à partir d’un écran de facturation. Vous pouvez aussi sauvegarder des données dans une table liée à l’aide du langage de 4D.

Vous pouvez aussi avoir besoin d’une structure où les tables ne sont pas directement reliées. Il peut se révéler pratique d’utiliser, par exemple, une base de données qui stocke des données telles qu’une liste de contacts et une table des dépenses.

4D permet de créer jusqu’à 32  767 tables dans chaque base de données. Chaque table peut contenir jusqu’à 32  767 champs. En utilisant plusieurs tables, tout type de base de données est envisageable.

Après avoir créé les tables et les champs de votre base de données, vous souhaiterez généralement que vos tables aient en commun certaines données. Par exemple, supposons que vous avez créé une base pour archiver des informations sur des employés et sur les sociétés qui les emploient. 

La structure de la base représentée ci-dessous contient une table [Employés] pour stocker les informations relatives à ces personnes et une table [Sociétés] pour stocker les informations relatives aux sociétés qui les emploient.

Bien qu’elles soient utiles, les informations stockées dans chaque table ne correspondent pas complètement à vos besoins. Quand vous visualisez un enregistrement de la table [Employés], vous avez besoin de pouvoir accéder aux informations sur la société pour laquelle cette personne travaille et quand vous visualisez un enregistrement de la table [Sociétés], vous avez besoin d’accéder aux informations sur tous les employés de cette société.
Pour permettre à deux tables de partager des informations de cette manière, les tables peuvent être reliées entre elles — en d’autres termes, un lien peut être établi entre les données de chaque table. Dans 4D, les liens permettent d’accéder aux données stockées dans une table à partir d’une autre table.

Créer des liens entre les tables vous permet de :

  • Stocker efficacement des données,
  • Mettre à jour des données à un seul endroit et de bénéficier de cette mise à jour à tous les endroits où ces données sont utilisées,
  • Afficher les informations liées,
  • Effectuer dans une table des recherches et des tris basés sur les données d’une autre table,
  • Créer, modifier ou supprimer des enregistrements dans les tables liées.

L’exemple ci-dessous montre un lien entre la table [Employés] et la table [Sociétés], affiché dans l’éditeur de structure :

La table [Employés] contient un enregistrement par personne. La table [Sociétés] contient un enregistrement par société. La relation entre les deux tables permet de visualiser, saisir, modifier et supprimer des données des deux tables. Par exemple :

  • Lorsque l’enregistrement d’un employé est à l’écran, vous pouvez afficher les informations de la société correspondante —  son adresse et son numéro de téléphone.
  • Lorsque vous ajoutez un nouvel employé, vous pouvez lier son enregistrement à la société qui lui correspond (si elle existe déjà dans la base), ou créer l’enregistrement de cette société en même temps que celui de son employé. Pour plus d’informations sur ce point, reportez-vous à la section .
  • Pour chacune des sociétés, vous pouvez consulter toutes les informations individuelles — le nom, le poste ou l’adresse personnelle — pour chacun des employés de la société.

C’est grâce aux champs liés — les champs qui connectent deux tables dans une relation —  que vous pouvez afficher les informations de tables liées. L’intérêt principal des relations entre les champs est d’indiquer à 4D quels enregistrements doivent être rendus courants dans une table en fonction de l’enregistrement courant d’une autre table. Les tables liées utilisent les données des deux champs liés pour identifier les enregistrements correspondants.
Dans l'exemple précédent, le champ Société de la table [Employés] et le champ Nom de la société de la table [Sociétés] relient les deux tables. Le champ Nom de la société de la table [Sociétés] est le champ clé primaire pour les [Sociétés]. Il identifie de manière unique chaque enregistrement de société. Un champ clé primaire doit comporter les attributs Indexé et Unique. Si le champ clé primaire ne dispose pas de l’attribut Indexé, 4D l’assigne automatiquement. Le champ Société de la table [Employés] est le champ clé d’appel (ou clé étrangère). Chaque valeur du champ clé d’appel correspond à une et une seule valeur du champ clé primaire dans la table liée. Dans cet exemple, une valeur du champ clé d’appel de la table [Employés] correspond à une seule valeur du champ clé primaire de [Sociétés]. Le champ clé d’appel est également indexé mais ses valeurs ne sont pas nécessairement uniques (plusieurs employés peuvent travailler pour la même société).

A compter de 4D v14, les champs clés primaires doivent être explicitement définis dans chaque table de la base. Les valeurs du champ clé primaire sont généralement affectées automatiquement par la base — soit par l’affectation d’un numéro de séquence généré par 4D, soit par l’affectation d’un numéro calculé par une méthode. Une telle procédure garantit l’unicité du champ clé. Par exemple, si le champ clé primaire de la table [Sociétés] était un numéro de séquence plutôt qu’un nom de société, il serait possible pour les utilisateurs de saisir plusieurs sociétés du même nom mais d’adresses différentes. De la même manière, si une société change de nom, l’utilisateur peut effectuer les changements sans affecter la relation entre les deux tables.

Si l’utilisateur est autorisé à saisir la valeur du champ clé primaire, vous devez sélectionner Unique et Non modifiable comme Propriétés des champs pour assurer l’unicité de la saisie initiale et empêcher les utilisateurs de créer un enregistrement redondant. Si vous choisissez de ne pas utiliser l’attribut Non modifiable, il vous sera nécessaire de définir d’autres mesures afin d’éviter la création d’enregistrements “orphelins” dans les tables liées, à la suite de la modification des valeurs du champ clé primaire. 

Lorsque les relations sont établies, vous pouvez lire et sauvegarder des données dans une table tout en travaillant dans une autre table. Par exemple, lorsque vous saisissez un nom de société dans l’enregistrement d’un employé, 4D recherche cette société dans la table [Sociétés] et affiche les informations relatives à cette société dans l’enregistrement de l’employé. Lorsque vous visualisez l’enregistrement d’une société, 4D recherche dans la table [Employés] tous les enregistrements des employés de cette société et affiche leurs enregistrements dans l’enregistrement de la société.

Ces liens peuvent fonctionner automatiquement (sans programmation de votre part) ou manuellement. Dans ce second cas, vous utilisez des méthodes pour charger ou décharger les enregistrements liés et pour contrôler la création, la modification ou la suppression d’enregistrements liés. Les liens manuels sont parfois préférables dans les structures complexes où plus de deux tables sont reliées et où il est nécessaire de contrôler très précisément le chargement et le déchargement des enregistrements liés. Vous pouvez choisir d’utiliser des liens automatiques en sélectionnant les propriétés adéquates lors de la définition du lien (cf. Propriétés des liens).

 
PROPRIÉTÉS 

Produit : 4D
Thème : Définir la structure de la base de données

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v16)
4D - Mode Développement ( 4D v16.1)
4D - Mode Développement ( 4D v16.3)