Tutoriel Base de données 4D : Un guide complet
Un didacticiel de base de données 4D commence par quatre objets principaux : les tables, les champs, les formulaires et les méthodes. 4D est une plateforme de développement de bases de données relationnelles et d’applications de 4D SAS, lancée pour la première fois en 1984, stockant les données dans un fichier de structure propriétaire « .4DD » lié à une couche d’application compilée ou interprétée. Les développeurs définissent des tables, créent des formulaires et attachent du code dans un environnement intégré.
4D occupe une place inhabituelle dans le paysage de l’outillage. Il s’agit d’une combinaison d’un moteur de base de données relationnelle, d’un environnement de développement d’applications rapide, d’un serveur Web et d’un concepteur de formulaires low-code. Cette combinaison est la raison pour laquelle les petites équipes l’adoptent : un seul produit couvre le stockage, la logique métier, l’interface utilisateur et le déploiement.
Le moteur est relationnel au sens classique : tables, clés primaires, tables associées et relations définies dans la structure. Ce n’est pas du SQL first comme PostgreSQL ou MySQL, bien que 4D supporte SQL via son moteur SQL et les commandes Begin SQL / End SQL.
La plupart des tâches quotidiennes utilisent le langage propre à 4D (appelé historiquement Langage 4D, désormais simplement code 4D), qui se rapproche plus d’un langage de script que de SQL. Cette approche didactique de la base de données 4D aide les débutants à comprendre la polyvalence de l’outil.
Deux faits architecturaux comptent dès le début :
- Structure versus données. La structure (tables, champs, formulaires, méthodes) réside dans un fichier
.4DC/project dans les versions modernes ; les données sont dans le fichier de données.4DD. Dans 4D 20 et versions ultérieures, les projets sont stockés sous forme de dossier de fichiers texte, ce qui rend le contrôle de version avec Git pratique. Les anciennes structures binaires.4DBsont plus difficiles à différencier. - Client-serveur versus utilisateur unique. Un déploiement mono-utilisateur exécute tout sur une seule machine. Le client-serveur sépare le 4D Server (données + logique métier) du 4D Client (UI). La même structure prend en charge les deux, mais les allers-retours réseau modifient la façon dont vous devez écrire des boucles.
Si vous venez de Microsoft Access, le modèle mental se transfère bien. Si vous venez d’une pile Web, attendez-vous à désapprendre certaines habitudes : les formulaires 4D sont avec état et pilotés par des événements, et non des requêtes-réponses.
Connexes : — Une interface simple sous forme de feuille de calcul reposant sur une véritable base de données relationnelle, avec des automatisations, des vues et des interfaces partageables..
Étape 1 : Installez et créez votre première structure
Téléchargez 4D depuis le site officiel de 4D (4d.com) pour commencer ce tutoriel sur la base de données 4d. Vous choisirez généralement entre 4D (l’environnement de développement complet) et 4D Server pour le déploiement. Il existe un mode de développement local gratuit pour l’apprentissage, mais le déploiement en production nécessite une licence : vérifiez directement les termes de la licence en vigueur, car ils changent d’une version à l’autre.
Création d’un projet :
- Lancez 4D et choisissez Nouveau > Projet.
- Nommez le projet et choisissez un dossier. Le 4D moderne crée un dossier de projet contenant
Projet/Sources/avec votre structure sous forme de fichiers texte. - L’Éditeur de structure s’ouvre. Ceci est votre canevas schématique.
L’éditeur de structure est l’endroit où vous ajoutez des tables. Chaque table reçoit un nom, un ensemble de champs et éventuellement une clé primaire générée automatiquement. La convention de 4D est de préfixer les noms de champs par type — ID_, Name_, Date_, Amount_ — bien que ce soit une question de style et non d’exigence. La cohérence s’avère payante plus tard lorsque vous analysez 200 champs.
Si vous faites du shopping : — Un créateur d'applications low-code qui se connecte à la suite Zoho plus large et propose des tarifs par utilisateur plutôt que par application..
Types de champs que vous utiliserez le plus : texte, alpha, entier, entier long, réel, date, heure, booléen, image, BLOB, objet et UUID. Le type Object stocke les données structurées de type JSON et constitue le choix moderne pour les attributs flexibles. Les champs UUID sont le type de clé primaire recommandé pour les nouvelles tables, car ils évitent les problèmes de collision et de renumérotation avec les entiers auto-incrémentés dans les données distribuées ou fusionnées.
Étape 2 : Concevoir des tables et des relations
La conception de schémas dans 4D suit des règles de normalisation relationnelle, avec une particularité propre à 4D : les relations sont déclarées graphiquement et impliquent un comportement automatique. Il s’agit d’un élément clé de tout didacticiel de base de données 4d.
Pour créer une relation, faites glisser le champ de clé primaire d’une table vers le champ de clé étrangère d’une autre dans l’éditeur de structure. 4D trace une ligne de relation et permet de configurer :
| Paramètres relationnels | Ce qu’il contrôle | Effet pratique |
|---|---|---|
| Relations automatiques | Si 4D charge automatiquement les enregistrements associés | Pratique pour les formulaires ; peut provoquer des requêtes cachées dans les boucles |
| Un-à-plusieurs vs plusieurs-à-un | Sens du lien | Détermine quel côté détient la clé étrangère |
| Nom de la table associée | Le nom de l’accesseur dans le code | Devient la propriété à laquelle vous faites référence, par ex. [Facture]Client |
| Contrôle de suppression | Cascade, restriction ou annulation | Empêche les enregistrements d’enfants orphelins |
Un exemple concret : une table Invoice avec un champ CustomerID lié à Customer.ID. Dans le code, [Invoice]Customer.Name parcourt la relation. C’est élégant – et dangereux dans une boucle de plus de 10 000 factures, car chaque accès peut déclencher une recherche. Le correctif consiste à utiliser délibérément « RELATE MANY » / « RELATE ONE », ou à charger d’abord les données associées dans une collection.
Compromis pour décider tôt : Les tables normalisées avec des relations déclarées vous offrent une intégrité référentielle et un code simple, mais coûtent en performances sur les lectures volumineuses. Les tables dénormalisées avec des champs d’objet incorporés sont plus rapides à lire mais poussent les contrôles d’intégrité dans votre propre code. Pour la plupart des applications métier destinées aux petites équipes, normalisez le cœur transactionnel et dénormalisez les tables de reporting.
Étape 3 : Créer des formulaires
Les formulaires constituent la couche d’interface utilisateur de 4D et ils se déclinent en plusieurs types : formulaires de détail (un enregistrement), formulaires de liste (plusieurs enregistrements), formulaires d’entrée, formulaires de sortie et formulaires de projet (non liés à une table). L’éditeur de formulaire est un canevas par glisser-déposer avec une liste de propriétés. Il s’agit d’un élément clé de tout didacticiel de base de données 4d.
Concepts clés lors de la création d’un formulaire :
- Source de données. Chaque formulaire est lié à une table, ou à une variable/expression pour les formulaires projet.
- Widgets. Champs, boutons, cases à cocher, listes déroulantes, zones de liste et listes hiérarchiques. Les zones de liste sont la bête de somme pour afficher les données associées et sont beaucoup plus puissantes qu’une simple grille.
- Méthodes d’objet. Cliquez avec le bouton droit sur n’importe quel objet et attachez une méthode. La méthode s’exécute sur des événements tels que « Sur chargement », « Sur clic », « Sur modification de données » et « Sur validation ».
- Méthodes de formulaire. Le formulaire lui-même possède une méthode pour les événements au niveau du formulaire tels que « Au chargement » et « Au déchargement ».
Un modèle pratique pour un formulaire de détail client : placez les champs client, ajoutez une zone de liste liée à une sélection de factures de ce client et placez un bouton qui exécute une méthode pour créer une nouvelle facture. La sélection de la zone de liste est basée sur une requête ou une relation, et son actualisation après l’insertion maintient l’interface utilisateur honnête.
Attention : Les formulaires 4D sont stateful. Un formulaire contient un enregistrement actuel et une sélection actuelle. Mélanger l’état au niveau du formulaire avec les processus en arrière-plan est la source la plus courante de bogues déroutants pour les nouveaux arrivants. Conservez les tâches de longue durée dans un processus distinct et publiez les résultats.
Étape 4 : Écrire des méthodes et une logique métier
Dans ce tutoriel base de données 4d, le code 4D est décomposé en méthodes, qui se déclinent en plusieurs versions :
- Méthodes de base de données — déclenchées par des événements de base de données (démarrage, arrêt, sauvegarde).
- Méthodes de table — déclenchées par des événements d’enregistrement (lors de l’enregistrement, de la suppression).
- Méthodes de formulaire et d’objet — déclenchées par des événements d’interface utilisateur.
- Méthodes de projet — vos fonctions réutilisables, appelables de n’importe où.
- Déclencheurs : exécutez des opérations avant/après les opérations d’enregistrement, idéal pour les pistes d’audit.
Le code 4D moderne prend en charge les classes et le mot-clé « This », ce qui vous permet d’écrire du code orienté objet plutôt que simplement procédural. Une méthode de projet minimal ressemble à :
// Méthode projet : CreateInvoice
// $1 = identifiant client (UUID)
C_OBJECT($facture)
$facture:=ds.Invoice.new()
$facture.CustomerID:=$1
$facture.Date:=Date actuelle
$facture.Status:="Brouillon"
$statut :=$facture.save()
L’objet ds (magasin de données) est la couche d’accès de style ORM moderne introduite avec ORDA (Object Relational Data Access). ORDA vous permet de travailler avec des entités et des sélections d’entités au lieu des sélections traditionnelles, et prend en charge le chaînage de requêtes, les attributs calculés et les sélections d’entités côté client qui réduisent les allers-retours du serveur. Pour les nouveaux développements, ORDA est la voie recommandée ; Les commandes classiques comme « QUERY » et « CREATE RECORD » fonctionnent toujours et apparaissent dans les anciennes bases de code.
Comment décider : Utilisez ORDA pour le nouveau code et tout ce qui bénéficie de requêtes lisibles et chaînables. Conservez les commandes classiques là où vous avez besoin de boucles très serrées sur de grandes sélections, car les sélections classiques peuvent être plus efficaces en termes de mémoire dans certains scénarios côté serveur. Mesurer plutôt que supposer.
Étape 5 : Listes de valeurs, requêtes et rapports
Les listes de valeurs remplissent les listes déroulantes et les zones de liste avec un ensemble contrôlé de choix. 4D supporte plusieurs types de listes :
- Listes statiques — valeurs codées en dur, idéales pour les statuts et les indicateurs.
- Listes de tables — valeurs extraites d’un tableau de référence, idéales pour les clients, les produits et les catégories.
- Listes hiérarchiques — valeurs parent/enfant, utiles pour les plans comptables ou les arborescences de catégories.
Pour les requêtes, query() d’ORDA accepte une chaîne de formule avec des espaces réservés, ce qui évite les problèmes d’injection et se lit clairement :
$sel:=ds.Invoice.query("Statut = :1 AND Date >= :2"; "Open"; $startDate)
Le reporting dans 4D utilise l’éditeur Quick Report pour une sortie tabulaire simple et la zone 4D Write Pro pour les documents riches. Write Pro est un objet de traitement de texte intégré dans un formulaire ; vous pouvez fusionner des données dans un modèle et les exporter au format PDF ou DOCX. Pour tout ce qui est complexe, générer du HTML et le rendre dans une zone Web est souvent plus rapide à créer et plus facile à styliser. Ceci conclut cette section du didacticiel de base de données 4d.
Étape 6 : Déployer et maintenir
Les options de déploiement façonnent votre architecture dans ce tutoriel de base de données 4d :
- Utilisateur unique : application et données sur une seule machine. Le plus simple, pas de simultanéité.
- Client-serveur — 4D Server contient des données et une logique métier ; 4D Client se connecte. Idéal pour les équipes LAN.
- 4D Web Server — 4D dessert directement les points de terminaison et les pages Web REST. ORDA expose un accès REST automatique à votre magasin de données, ce qui signifie que vous pouvez créer une interface Web sur le même schéma.
- 4D pour iOS / Android — clients mobiles générés à partir de votre structure.
Les sauvegardes sont intégrées : 4D Server peut planifier des sauvegardes automatiques et maintenir un journal (fichier journal) pour une récupération à un moment précis. Activez le journal avant de le mettre en ligne, pas après. Testez une restauration sur une copie des données : une sauvegarde non testée est un espoir, pas un plan.
Contrôle de version : avec les structures en mode projet, validez le dossier Project/Sources/ dans Git. Excluez le fichier de données et le dossier « DerivedData ». Il s’agit d’une réelle amélioration par rapport à l’ère binaire et mérite d’être adoptée dès le premier jour.
Erreurs courantes et comment les éviter
Saut de la discipline de clé primaire. Chaque table a besoin d’une clé primaire stable et unique. Les UUID évitent les problèmes de renumérotation causés par l’auto-incrémentation des entiers lorsque les enregistrements sont supprimés ou fusionnés.
Mettre la logique métier dans les méthodes de formulaire. Les méthodes de formulaire doivent gérer l’interface utilisateur. Déplacez les règles dans des méthodes ou des classes de projet afin qu’elles puissent être réutilisées par les points de terminaison Web, les importations et les tâches planifiées.
Ignorer le journal. Sans lui, un crash lors de l’écriture peut laisser le fichier de données incohérent. Activez-le.
Boucle sur les relations. L’accès à [Table]Related.Field à l’intérieur d’une grande boucle multiplie les requêtes. Pré-chargez avec ORDA ou utilisez « RELATE MANY » une fois.
Traiter 4D comme SQL. Vous pouvez utiliser SQL, mais le code idiomatique 4D est généralement plus court et mieux intégré aux formulaires et aux événements. Apprenez d’abord le langage natif dans le cadre de votre didacticiel de base de données 4d.
Parcours d’apprentissage et ressources
Commencez par la documentation officielle de 4D et le 4D Developer Blog, qui couvre ORDA, Write Pro et les modifications spécifiques aux versions. Le forum de la communauté 4D est actif et répond bien aux questions spécifiques. Pour les principes fondamentaux de la conception relationnelle qui s’appliquent quelle que soit la plate-forme, l’article Wikipédia sur les bases de données relationnelles et l’entrée SQL fournissent des informations utiles sur la normalisation et la sémantique des requêtes.
Une séquence d’apprentissage réaliste : créer un gestionnaire de contacts à table unique, puis ajouter une table et une zone de liste associées, puis ajouter une liste de valeurs et un formulaire de requête, puis déployer un client-serveur. Chaque étape introduit un nouveau concept sans vous submerger.
Points clés à retenir
- 4D combine une base de données relationnelle, un IDE, un concepteur de formulaires et un serveur Web dans un seul produit, adapté aux petites équipes qui ont besoin de fournir rapidement une application métier personnalisée. Ce tutoriel de base de données 4d met en avant son efficacité.
- Définissez des tables et des relations dans l’éditeur de structure, créez des écrans dans l’éditeur de formulaires et attachez une logique via des méthodes et des déclencheurs : les quatre objets qui composent chaque application 4D.
- ORDA (
ds, entités, sélections d’entités) est la couche d’accès aux données moderne et le choix recommandé pour le nouveau code ; les commandes classiques restent valables dans les projets existants. - Utilisez les clés primaires UUID, activez le journal et validez les structures en mode projet dans Git dès le début pour éviter des migrations douloureuses ultérieures.
- Gardez la logique métier hors des méthodes de formulaire et préchargez les données associées au lieu de parcourir les relations dans de grandes boucles.
Sources et lectures complémentaires
- Base de données relationnelle — Wikipédia : Une base de données relationnelle (RDB) est une base de données basée sur le modèle relationnel de données, tel que proposé par E. F. Codd en 1970. Un système de gestion de base de données relationnelle (SGBDR…
Questions fréquemment posées
4D est-il une base de données SQL ?
4D est une base de données relationnelle avec son propre langage natif et un moteur SQL intégré. Vous pouvez émettre des instructions SQL via Begin SQL / End SQL, mais la plupart des développements 4D utilisent ORDA ou des commandes 4D classiques plutôt que SQL. Le modèle sous-jacent est relationnel (tables, clés et relations), donc les concepts SQL s’appliquent, même si la syntaxe que vous utilisez quotidiennement diffère.
Faut-il connaître la programmation pour utiliser 4D ?
Des connaissances de base en programmation sont très utiles, car les formulaires et les règles métier sont liés au code 4D. Cela dit, l’éditeur de formulaires et les assistants intégrés à 4D vous permettent de créer une application de saisie de données fonctionnelle avec un minimum de code.
Les citizen developers commencent généralement par des formulaires et des listes de valeurs, puis apprennent les méthodes dont ils ont besoin pour un comportement personnalisé. Pour ceux qui débutent, un tutoriel sur la base de données 4d peut être utile.
Quelle est la différence entre ORDA et les commandes 4D classiques ?
ORDA est une couche d’accès orientée objet construite autour d’un magasin de données (ds), d’entités et de sélections d’entités, avec des requêtes chaînables et une prise en charge des sélections côté client. Les commandes classiques telles que QUERY, CREATE RECORD et MODIFY SELECTION fonctionnent sur les sélections classiques et les enregistrements actuels. ORDA est l’approche recommandée pour les nouveaux développements, tandis que les commandes classiques restent courantes dans les anciennes bases de code.
Les applications 4D peuvent-elles fonctionner sur le web ou sur mobile ?
Oui. 4D inclut un serveur Web intégré et ORDA peut exposer les points de terminaison REST sur votre magasin de données, afin qu’un interface navigateur puisse communiquer avec le même schéma. 4D propose également la génération de clients mobiles pour iOS et Android. Le compromis est que les clients Web et mobiles doivent accorder une attention particulière à l’authentification et à la quantité de données renvoyées par chaque requête.
Comment sauvegarder une base de données 4D en toute sécurité ?
Activez le journal (fichier journal) dans 4D Server afin de pouvoir restaurer à un moment donné et planifier des sauvegardes automatiques plutôt que de vous fier à des copies manuelles. Testez toujours une restauration par rapport à une copie des données avant d’en avoir besoin en cas d’urgence. Conservez la structure sous contrôle de version séparément du fichier de données, car ils changent à des rythmes différents.
4D est-il adapté à une application pour petites entreprises ?
4D est conçu exactement pour ce scénario : une petite équipe créant une application métier personnalisée avec des formulaires, des rapports et un schéma relationnel. Il s’adapte aux déploiements client-serveur et à l’accès Web sans modifier la structure principale. Les principales considérations sont le coût des licences et le plus petit vivier de talents par rapport aux piles Web traditionnelles. Il faut donc peser la maintenance à long terme et la vitesse de construction.
Questions fréquentes
4D est-il une base de données SQL ?
4D est une base de données relationnelle avec son propre langage natif et un moteur SQL intégré. Vous pouvez émettre des instructions SQL via Begin SQL / End SQL, mais la plupart des développements 4D utilisent ORDA ou des commandes 4D classiques plutôt que SQL. Le modèle sous-jacent est relationnel (tables, clés et relations), donc les concepts SQL sont transférés, même si la syntaxe que vous écrivez quotidiennement ne le fait pas.
Dois-je connaître la programmation pour utiliser 4D ?
Des connaissances de base en programmation sont très utiles, car les formulaires et les règles métier sont liés au code 4D. Cela dit, l'éditeur de formulaires et les assistants intégrés à 4D vous permettent de créer une application de saisie de données fonctionnelle avec un minimum de code. Les développeurs citoyens commencent généralement par des formulaires et des listes de valeurs, puis apprennent les méthodes dont ils ont besoin pour un comportement personnalisé. Pour ceux qui débutent, un tutoriel sur la base de données 4d peut être utile.
Quelle est la différence entre ORDA et les commandes 4D classiques ?
ORDA est une couche d'accès orientée objet construite autour d'un magasin de données (ds), d'entités et de sélections d'entités, avec des requêtes chaînables et une prise en charge des sélections côté client. Les commandes classiques telles que QUERY, CREATE RECORD et MODIFY SELECTION fonctionnent sur les sélections classiques et les enregistrements actuels. ORDA est l'approche recommandée pour les nouveaux développements, tandis que les commandes classiques restent courantes dans les anciennes bases de code.
Les applications 4D peuvent-elles fonctionner sur le web ou sur mobile ?
Oui. 4D inclut un serveur Web intégré et ORDA peut exposer les points de terminaison REST sur votre magasin de données, afin qu'un frontal de navigateur puisse communiquer avec le même schéma. 4D propose également la génération de clients mobiles pour iOS et Android. Le compromis est que les clients Web et mobiles doivent accorder une attention particulière à l'authentification et à la quantité de données renvoyées par chaque requête.
Comment sauvegarder une base de données 4D en toute sécurité ?
Activez le journal (fichier journal) dans 4D Server afin de pouvoir restaurer à un moment donné et planifier des sauvegardes automatiques plutôt que de vous fier à des copies manuelles. Testez toujours une restauration par rapport à une copie des données avant d’en avoir besoin en cas d’urgence. Conservez la structure sous contrôle de version séparément du fichier de données, car ils changent à des rythmes différents.
4D est-il adapté à une application pour petites entreprises ?
4D est conçu exactement pour ce scénario : une petite équipe créant une application métier personnalisée avec des formulaires, des états et un schéma relationnel. Il s'adapte aux déploiements client-serveur et à l'accès Web sans modifier la structure principale. Les principales considérations sont le coût des licences et le plus petit bassin de talents par rapport aux piles Web traditionnelles. Il faut donc peser la maintenance à long terme et la vitesse de construction.
Essayez FileMaker gratuitement pendant 45 jours
La plateforme de base de données relationnelle de longue date pour les équipes qui ont besoin d'applications personnalisées sur ordinateur, Web et mobile à partir d'un seul fichier.