14 sept. 2024
Maxime Gadras
Qu’est-ce qu’une base de données ?
Une base de données (database en anglais) est en informatique un système qui regroupe un ensemble d’informations structuré. Celui-ci permet de stocker et manipuler cette donnée facilement, de manière plus ou moins sécurisée.
Quand on parle de données, cela peut être : du texte, une image, de la vidéo, des nombres…
Une base de données est donc en quelque sorte une grande bibliothèque, les livres représentant les données.
La bibliothèque peut contenir différents types de livres et avoir sa propre organisation
Il existe différents types de base de données (relationnelle, orientée objet, distribuée…), mais nous ne nous y attarderons pas dans cet article.
La base de données présente au sein de Bubble va donc nous permettre de stocker l’ensemble des informations de notre application, que ce soit des données générées par le développeur (texte des pages, images…) ou par les utilisateurs (informations du profil, tâches, rendez-vous… ou autre selon le type d’application !).
Spécificités de la base de données Bubble
Les bases de données Bubble sont hébergées sur des serveurs AWS, situés aux États-Unis par défaut. Il est possible de demander une relocalisation de son serveur (en France par exemple), en revanche cela passe par une demande de devis spécifique auprès des équipes Bubble et coûte en général très cher.
Voyons comment est construite la base de données présente par défaut au sein de votre interface Bubble.
Celle-ci comporte deux grands types de données, chacun ayant leur spécificité et leur utilité :
Les data types, possédants des fields
Les option sets, possédants des attributes
Qu’est ce qu’un data type
Un data type est la donnée principale (du moins celle que vous utiliserez le plus souvent) au sein de Bubble.
Il faut voir un data type comme une catégorie de données.
Par exemple : utilisateur, rendez-vous, voiture…
Comme son nom l’indique, ce dernier permet de stocker des types de données au sein de la base, de manière ordonnée.
Comme vous pouvez le voir sur l’exemple ci-dessus, une application pourra créer un nouveau data type “utilisateur” à chaque fois qu’une nouvelle personne se créera un compte.
Si l’application en question est par exemple le site “La centrale”, elle pourra créer un nouveau data type “voiture” à chaque fois qu’un utilisateur publiera une nouvelle annonce !
Comment différencier les différentes données ?
En effet, chaque utilisateur n’aura pas le même nom, ni la même adresse email. De même que chaque voiture affichée sur une annonce n’aura pas la même marque, le même nombre de kilomètres etc…
Et bien Bubble a tout prévu, puisque chaque data type possède… des fields.
Un field est une sorte de caractéristique propre à une donnée.
Par exemple : le field “nom” du data type “utilisateur” contiendra le nom de chaque utilisateur.
Ici le Data Type "Utilisateur" possède plusieurs fields : Nom, Prénom, Pseudo, email, date de naissance...
Chaque field possède un type, qui peut être : texte, image, vidéo, nombre, mais également un autre data type !
En résumé : un data type (et ses fields correspondants) est un modèle structuré d’un type de donnée. Il permet de structurer une information particulière afin de pouvoir facilement la retrouver et la modifier par la suite.
Exemple :
Data type : Utilisateur
Fields :
Nom (type : texte) : Gadras
Prénom (type : texte) : Maxime
Âge (type : nombre) : 30
Email (type : email) : maxime@cleev.co
Qu’est ce qu’un Option Set
Un option set ressemble fortement aux data types vu précédemment, à la différence que ceux-ci ne peuvent être ajoutés et modifiés uniquement par les administrateurs de l’application.
En effet, un utilisateur pourra, lors de son utilisation de l’application, créer de nouveaux data types (en publiant une nouvelle annonce de voiture pour reprendre notre exemple précédent), mais ne pourra jamais modifier un Option Set ni en créer de nouveaux.
De la même manière que les data types possèdent des fields, les Option Sets possèdent des “attributes” qui fonctionnent de la même manière. Ils permettent d’ajouter des caractéristiques.
Les Option Sets sont très utiles pour par exemple proposer au sein d’une application des choix non modifiables aux utilisateurs.
Par exemple : au sein d’un questionnaire, l’utilisateur pourrait avoir à choisir entre “je suis une entreprise”, “je suis un indépendant” ou “je suis un particulier”.
Ces choix peuvent être enregistrés au sein de l’application en tant qu’Option Set. On pourrait également décider d’ajouter une image représentative de ces choix, en leur ajoutant un attribute de type image.
Dans cet exemple, l'Option set "Catégories" contient plusieurs options, ayant chacune un attribute "Illustration" qui sera représenté sous forme d'image au sein de l'application Bubble.
Différences entre Base de données Dev et Base de données Live
Chaque application que vous créez dans Bubble possède deux bases de données.
La première est celle que vous utilisez pendant le développement de votre application ainsi que pour réaliser vos tests. C’est la base de données de Dev.
La seconde n’est accessible qu’au travers d’un plan payant, une fois que vous aurez déployé votre application (cela signifie que cette dernière sera copiée sur la nouvelle base). Elle accueillera les données de vos utilisateurs, c’est la base de données Live.
Pourquoi utiliser deux bases de données ?
La réponse est très simple, pour éviter que vos utilisateurs ne rencontrent des bugs !
En effet, lorsque l’on modifie une application (en ajoutant des fonctionnalités par exemple), il n’est pas rare que des erreurs ou des incompatibilités avec ce qui avait été fait avant provoquent des dysfonctionnements.
Tant que personne n’utilise votre application, ce n’est pas très grave. Maintenant imaginez que cette dernière soit utilisée par des centaines, voir des milliers de personnes ?
Cela peut avoir des répercussions très négatives au niveau de l’expérience utilisateur (il n’y a qu’à voir les réactions des gens et les articles qui en découlent quand une application comme Facebook ou Instagram rencontre un bug).
Utiliser deux bases de données permet donc un “filtrage” des bugs potentiels.
Concrètement, l’ajout de nouvelles fonctionnalités se fera sur la base de données de Dev, ainsi que les tests pour s’assurer que cela n’a pas provoquer de bugs. Si tout est en ordre, l’application dans sa version améliorée sera copiée puis collée sur la base de données Live.
Les bases de données, également appelées environnement, ont chacune un rôle bien spécifique afin d'éviter que vos utilisateurs ne rencontrent des bugs.
Comment configurer sa base de données ?
Avant de commencer un projet de création d’application, il est important de réaliser en amont un travail de recherche et de définition des différentes fonctionnalités qui seront implémentées. Cela dans le but de designer sa base de données.
En effet, définir la structure de sa base de données en amont d’un projet est primordial. Cela permet d’anticiper l’architecture de son application et ainsi éviter de se retrouver dans des situations où il est nécessaire de revenir en arrière ou modifier certaines choses que l’on n'avait pas prévues.
Voici les principales questions à se poser :
Combien de data type ?
Quels data types ?
Quels types de fields ?
Quelle(s) relation(s) entre les data types ?
Des options sets sont-ils nécessaires ?
Il existe de nombreux outils permettant de réaliser des schémas de visualisation de base de données.
On peut citer entre autres Whimsical ou Figma qui sont personnellement ceux que j’utilise, mais il en existe beaucoup d’autres (Miro, Lucidchart…)
Comment faire une recherche dans la base de données ?
Bubble étant un outil nocode très complet, il existe de très nombreuses manières d’accéder à la données stockée au sein de la base.
Une des manières les plus simples est d’utiliser l’élément “Repeating group”, associé à la fonction “Do a search for”, qui permettra de retourner une liste de résultats issus de la base de données. De cette manière, il est possible de préciser le type de données à aller rechercher et même de filtrer ces résultats en fonction de différents paramètres (date de création par exemple).
Le repeating group va ici effectuer une recherche au sein de la base de données de tous les data types "Utilisateur" dont le field "Prénom" est égal à "Maxime".
Comment uploader des données au sein de sa base ?
En dehors de l’inscription de nouvelles données par les utilisateurs (qui peut se déclencher au sein de Bubble grâce à un workflows, grâce à l’action “create a new thing” notamment), il est également possible d’uploader des données extérieurs au sein de sa base.
Pour cela Bubble met à disposition plusieurs éléments :
Picture uploader, pour uploader des images
File uploader, pour uploader tout type de fichier
Ces deux éléments permettent aux utilisateurs, une fois ajoutés sur une page, d'uploader dans différents fichiers au sein de la base de données.
Une fois uploadé, il est possible de retrouver l’adresse du fichier (qui est une adresse de serveur AWS) au sein de l’onglet “Data” puis “File Manager”.
Base de données Bubble et respect du RGPD
Le RGPD étant un sujet très vaste, je vais rédiger prochainement un article dédié à la question.
Ce qu’il est important de savoir est que Bubble met à disposition l’ensemble des outils vous permettant d’être conforme avec la réglementation des données européenne.
C’est donc à vous, au cours du développement de votre application, de mettre en place les bonnes pratiques pour être en conformité : définition des règles de privacy, bandeau cookie si votre application en utilise, formulaire de consentement sur l’utilisation des données etc…
Attention, certains cas d’usage bien précis sont à prendre en compte, notamment dans si vous comptez développer une application ayant pour vocation d’héberger des données de santé.
Ce secteur étant très réglementé, l’hébergement de ce type de données doit se faire sur des bases approuvées, ayant une certification particulière (certification HDS).
Le fait que les serveurs Bubble se trouvent aux USA peut poser problème.
Vous pouvez trouver la liste exhaustive de l’ensemble des bases de données certifiées sur le site e-santé du gouvernement.
Connexion à des bases de données externes
Il est tout à fait possible de connecter des bases de données externes (Airtable, Xano…) à sa base Bubble.
Encore une fois, l’outil a tout prévu puisqu’il met à disposition le plugin SQL Database Connector, qui permet de connecter des bases extérieures via des requêtes SQL.
Le plugin en question.
Pour aller plus loin...
Si vous souhaitez voir concrètement à quoi ressemble la base de données au sein de Bubble et comprendre comment on l’utilise, je vous suggère ma vidéo Youtube dédiée :