Database
 sql >> Base de données >  >> RDS >> Database

Que sont les bases de données ?


Introduction

Les bases de données sont des composants essentiels pour de nombreuses applications et outils modernes. En tant qu'utilisateur, vous pouvez interagir avec des dizaines ou des centaines de bases de données chaque jour lorsque vous visitez des sites Web, utilisez des applications sur votre téléphone ou achetez des articles à l'épicerie. En tant que développeur, les bases de données sont le composant principal utilisé pour conserver les données au-delà de la durée de vie de votre application. Mais que sont exactement les bases de données et pourquoi sont-elles si courantes ?

Dans cet article, nous allons passer en revue :

  • que sont les bases de données
  • comment ils sont utilisés par les personnes et les applications pour suivre les différents types de données
  • quelles sont les fonctionnalités offertes par les bases de données
  • quels types de garanties ils offrent
  • comment ils se comparent aux autres méthodes de stockage de données

Enfin, nous verrons comment les applications s'appuient sur des bases de données pour stocker et récupérer des données afin d'activer des fonctionnalités complexes.



Que sont les bases de données ?

Bases de données sont des structures logiques utilisées pour organiser et stocker des données en vue d'un traitement, d'une récupération ou d'une évaluation ultérieurs. Dans le contexte des ordinateurs, ces structures sont presque toujours gérées par une application appelée système de gestion de base de données ou SGBD . Le SGBD gère des fichiers dédiés sur le disque de l'ordinateur et présente une interface logique pour les utilisateurs et les applications.

Les systèmes de gestion de bases de données sont généralement conçus pour organiser les données selon un modèle spécifique. Ces modèles, appelés types de bases de données ou modèles de base de données, sont les fondements logiques et structurels qui déterminent la manière dont les données individuelles sont stockées et gérées. Il existe de nombreux types de bases de données différents, chacun avec ses propres avantages et limites. Le modèle relationnel , qui organise les données en tableaux, lignes et colonnes à références croisées, est souvent considéré comme le paradigme par défaut.

Les SGBD peuvent rendre les bases de données qu'ils régissent accessibles via une variété de moyens, y compris les clients en ligne de commande, les API, les bibliothèques de programmation et les interfaces administratives. Grâce à ces canaux, les données peuvent être ingérées dans le système, organisées selon les besoins et renvoyées comme demandé.



Persistance des données vs stockage éphémère

Les bases de données stockent les données sur disque ou en mémoire.

On dit généralement que le stockage sur disque est persistant , ce qui signifie que les données sont enregistrées de manière fiable pour plus tard, même si l'application de base de données ou l'ordinateur lui-même redémarre.

En revanche, le stockage en mémoire est dit éphémère ou volatil . Le stockage éphémère ne survit pas à l'arrêt de l'application ou du système. L'avantage des bases de données en mémoire est qu'elles sont généralement très rapides.

En pratique, de nombreux environnements utiliseront un mélange de ces deux types de systèmes pour obtenir les avantages de chaque type. Pour les systèmes qui acceptent de nouvelles écritures sur la couche éphémère, cela peut être accompli en enregistrant périodiquement les données éphémères sur le disque. D'autres systèmes utilisent des copies en mémoire en lecture seule des données persistantes pour accélérer l'accès en lecture. Ces systèmes peuvent recharger les données du stockage de sauvegarde à tout moment pour actualiser leurs données.

Type de stockage de sauvegarde Les données survivent aux redémarrages ? Avantages Exemples
Sur disque Oui Longévité des données MySQL
En mémoire Non Vitesse opérationnelle mémcaché


Interagir avec les bases de données pour gérer vos données

Alors que le système de base de données s'occupe de la façon de stocker les données sur disque ou en mémoire, il fournit également une interface pour les utilisateurs ou les applications. Les interfaces de la base de données doivent pouvoir représenter les opérations que les parties externes peuvent effectuer et doivent pouvoir représenter tous les types de données pris en charge par le système.

Selon Wikipédia, les bases de données permettent généralement les quatre types d'interactions suivants :

  • Définition des données :créer, modifier et supprimer des définitions de la structure des données. Ces opérations modifient les propriétés qui affectent la manière dont la base de données acceptera et stockera les données. Ceci est plus important dans certains types de bases de données que dans d'autres.
  • Mettre à jour :Insérer, modifier et supprimer des données dans la base de données. Ces opérations modifient les données réelles qui sont gérées.
  • Récupération :Permet d'accéder aux données stockées. Les données peuvent être récupérées telles quelles ou peuvent souvent être filtrées ou transformées pour les masser dans un format plus utile. De nombreux systèmes de bases de données comprennent des langages d'interrogation riches pour y parvenir.
  • Administration  :Autres tâches telles que la gestion des utilisateurs, la sécurité, la surveillance des performances, etc. qui sont nécessaires mais qui ne sont pas directement liées aux données elles-mêmes.

Passons en revue ces éléments un peu plus en détail ci-dessous.


Les définitions de données contrôlent la forme et la structure des données au sein du système

La création et le contrôle de la structure que prendront vos données dans la base de données est une partie importante de la gestion de la base de données. Cela peut vous aider à contrôler la forme ou la structure de vos données avant de les ingérer dans le système. Il vous permet également de définir des contraintes pour vous assurer que vos données respectent certains paramètres.

Dans les bases de données qui fonctionnent sur des données très régulières, comme les bases de données relationnelles, ces définitions sont souvent appelées le schéma de la base de données. . Un schéma de base de données est un aperçu strict de la façon dont les données doivent être formatées pour être acceptées par une base de données particulière. Cela couvre les champs spécifiques qui doivent être présents dans les enregistrements individuels ainsi que les exigences pour les valeurs telles que le type de données, la longueur du champ, les valeurs minimales ou maximales, etc. Un schéma de base de données est l'un des outils les plus importants dont dispose un propriétaire de base de données pour influencer et contrôler les données qui seront stockées dans le système.

Les systèmes de gestion de base de données qui valorisent la flexibilité plutôt que la régularité sont souvent appelés bases de données sans schéma . Bien que cela semble impliquer que les données stockées dans ces bases de données n'ont aucune structure, ce n'est généralement pas le cas. Au lieu de cela, la structure de la base de données est déterminée par les données elles-mêmes et la connaissance et la relation de l'application avec les données. La base de données adhère généralement toujours à une structure, mais le système de gestion de base de données est moins impliqué dans l'application des contraintes. Il s'agit d'un choix de conception qui présente des avantages et des inconvénients selon la situation.



Mises à jour des données pour ingérer, modifier et supprimer des données du système

Les mises à jour de données incluent toute opération qui :

  • Saisir de nouvelles données dans le système
  • Modifie les entrées existantes
  • Supprime des entrées de la base de données

Ces fonctionnalités sont essentielles pour toute base de données et, dans de nombreux cas, constituent la majorité des actions traitées par le système de base de données. Ces types d'activités (opérations qui entraînent des modifications des données dans le système) sont collectivement appelées écrire opérations.

Les actions d'écriture sont importantes pour toute source de données qui changera au fil du temps. Même la suppression de données, une action destructrice, est considérée comme une opération d'écriture puisqu'elle modifie les données dans le système.

Étant donné que les opérations d'écriture peuvent modifier les données, ces actions sont potentiellement dangereuses. La plupart des administrateurs de bases de données configurent leurs systèmes pour limiter les opérations d'écriture à certains processus d'application afin de minimiser les risques de manipulation accidentelle ou malveillante des données. Par exemple, l'analyse de données, qui utilise des données existantes pour répondre à des questions sur les performances d'un site Web ou le comportement des visiteurs, ne nécessite qu'une autorisation de lecture. D'autre part, la partie de l'application qui enregistre les commandes d'un utilisateur doit pouvoir écrire de nouvelles données dans la base de données.



Récupérer des données pour extraire des informations ou répondre à des questions spécifiques

Stocker des données n'est pas très utile à moins que vous n'ayez un moyen de les récupérer quand vous en avez besoin. Étant donné que le retour de données n'affecte aucune des informations actuellement stockées dans la base de données, ces actions sont appelées lire opérations. Les opérations de lecture sont le principal moyen de collecter des données déjà stockées dans une base de données.

Les systèmes de gestion de base de données ont presque toujours un moyen simple d'accéder aux données par un identifiant unique, souvent appelé clé primaire . Cela permet d'accéder à n'importe quelle entrée en fournissant la clé.

De nombreux systèmes disposent également de méthodes sophistiquées d'interrogation de la base de données pour renvoyer des ensembles de données correspondant à des critères spécifiques ou renvoyer des informations partielles sur les entrées. Ce type de flexibilité d'interrogation aide le système de gestion de base de données à fonctionner comme un processeur de données en plus de ses capacités de stockage de données de base. En développant des requêtes spécifiques, les utilisateurs peuvent demander au système de base de données de renvoyer uniquement les informations dont ils ont besoin. Cette fonctionnalité est souvent utilisée conjointement avec des opérations d'écriture pour localiser et modifier un enregistrement spécifique par ses propriétés.



Administrer le système de base de données pour que tout fonctionne correctement

La dernière catégorie d'actions que les bases de données prennent souvent en charge est celle des fonctions administratives. Il s'agit d'une large classe générale d'actions qui aide à prendre en charge l'environnement de la base de données sans influencer directement les données elles-mêmes. Certains éléments pouvant entrer dans ce groupe incluent :

  • Gérer les utilisateurs, les autorisations, l'authentification et l'autorisation
  • Configuration et gestion des sauvegardes
  • Configuration du support de stockage pour le stockage
  • Gérer la réplication et d'autres considérations de mise à l'échelle
  • Fournir des options de récupération en ligne et hors ligne

Cet ensemble d'actions s'aligne sur les préoccupations administratives de base communes à toute application moderne.

Les opérations administratives peuvent ne pas être au cœur de la fonctionnalité de gestion des données de base, mais ces fonctionnalités distinguent souvent les systèmes de gestion de base de données similaires. Pouvoir sauvegarder et restaurer facilement des données, mettre en œuvre une gestion des utilisateurs qui s'intègre aux systèmes existants ou faire évoluer votre base de données pour répondre à la demande sont toutes des fonctionnalités essentielles pour fonctionner en production. Les bases de données qui ne prêtent pas attention à ces domaines ont souvent du mal à être adoptées dans des environnements réels.




Quelles sont les responsabilités des bases de données ?

Compte tenu de la description ci-dessus, comment pouvons-nous généraliser les principales responsabilités des bases de données ? La réponse dépend beaucoup du type de base de données utilisé et des exigences de vos applications. Même ainsi, il existe un ensemble commun de responsabilités que toutes les bases de données cherchent à fournir.


Protéger l'intégrité des données grâce à un enregistrement et une reconstitution fidèles

L'intégrité des données est une exigence fondamentale d'un système de base de données, quel que soit son objectif ou sa conception. Les données chargées dans la base de données doivent pouvoir être récupérées de manière fiable sans modification, manipulation ou effacement inattendus. Cela nécessite des méthodes fiables de chargement et de récupération des données, ainsi que la sérialisation et la désérialisation des données nécessaires pour les stocker sur un support physique.

Les bases de données s'appuient souvent sur des fonctionnalités pour vérifier les données au fur et à mesure qu'elles sont écrites ou récupérées, comme la somme de contrôle, ou pour se protéger contre les problèmes causés par des arrêts inattendus, en utilisant des techniques telles que les journaux à écriture anticipée, par exemple. L'intégrité des données devient plus difficile à mesure que le magasin de données est distribué, car chaque partie du système doit refléter l'état actuel souhaité de chaque élément de données. Ceci est souvent réalisé avec des exigences plus solides et des réponses de plusieurs membres chaque fois que les données sont modifiées dans le système.



Offrir des performances qui répondent aux exigences de l'environnement de déploiement

Les bases de données doivent fonctionner correctement pour être utiles. Les caractéristiques de performance dont vous avez besoin dépendent fortement des exigences particulières de vos applications. Chaque environnement a un équilibre unique de demandes de lecture et d'écriture et vous devrez décider de ce que signifient des performances acceptables pour ces deux catégories.

Les bases de données sont généralement plus efficaces pour effectuer certains types d'opérations que d'autres. Les caractéristiques de performances opérationnelles reflètent souvent le type de base de données utilisé, le schéma ou la structure des données et l'opération elle-même. Dans certains cas, des fonctionnalités telles que l'indexation , qui crée un magasin alternatif optimisé pour les performances des données couramment consultées, peut permettre une récupération plus rapide de ces éléments. D'autres fois, la base de données peut ne pas convenir aux modèles d'accès demandés. C'est quelque chose à considérer lorsque vous décidez du type de base de données dont vous avez besoin.



Configuration des processus pour permettre un accès simultané sécurisé

Bien que ce ne soit pas une exigence stricte, en pratique, les bases de données doivent permettre un accès simultané. Cela signifie que plusieurs parties doivent pouvoir travailler avec la base de données en même temps. Les enregistrements doivent être lisibles par n'importe quel nombre d'utilisateurs en même temps et inscriptibles lorsqu'ils ne sont pas actuellement verrouillés par un autre utilisateur.

L'accès simultané signifie généralement que la base de données doit implémenter d'autres fonctionnalités fondamentales telles que les comptes d'utilisateurs, un système d'autorisations et des mécanismes d'authentification et d'autorisation. Il doit également développer des stratégies pour empêcher plusieurs utilisateurs de tenter de manipuler les mêmes données simultanément. Le verrouillage des enregistrements et les transactions sont souvent mis en œuvre pour répondre à ces préoccupations.



Récupérer des données individuellement ou agrégées

L'une des responsabilités fondamentales d'une base de données est la capacité de récupérer des données sur demande. Les demandes peuvent concerner des éléments de données individuels associés à un seul enregistrement, ou elles peuvent impliquer la récupération des données trouvées dans de nombreux enregistrements différents. Ces deux cas doivent être possibles dans la plupart des systèmes.

Dans la plupart des bases de données, un certain niveau de traitement des données est fourni par la base de données elle-même lors de la récupération. Celles-ci peuvent inclure les types d'opérations suivants :

  • Recherche par critères
  • Filtrer et respecter les contraintes
  • Extraire des champs spécifiques
  • Moyenne, tri, etc.

Ces options vous aident à articuler les données que vous souhaitez et le format qui serait le plus utile.




Alternatives aux bases de données

Avant de continuer, nous devrions brièvement examiner quelles sont vos options si vous n'utilisez pas de base de données.

La plupart des méthodes qui stockent des données peuvent être classées comme une base de données quelconque. Quelques exceptions incluent les suivantes.


Mémoire locale ou systèmes de fichiers temporaires

Parfois, les applications produisent des données qui ne sont pas utiles ou qui ne sont pertinentes que pour la durée de vie de l'application. Dans ces cas, vous souhaiterez peut-être conserver ces données en mémoire ou les décharger sur un système de fichiers temporaire, car vous n'en aurez plus besoin une fois l'application fermée. Pour les cas où les données ne sont jamais utiles, vous pouvez désactiver complètement la sortie ou l'enregistrer dans /dev/null .



Sérialisation des données d'application directement sur le système de fichiers local

Un autre cas où une base de données peut ne pas être nécessaire est celui où une petite quantité de données peut être sérialisée et désérialisée directement à la place. Ceci n'est pratique que pour de petites quantités de données avec un modèle d'utilisation prévisible qui n'implique pas beaucoup, voire pas, de simultanéité. Cela ne s'adapte pas bien, mais peut être utile dans certains cas, comme la sortie d'informations de journal local.



Stocker des objets de type fichier directement sur le disque ou le stockage d'objets

Parfois, les données des applications peuvent être écrites directement sur le disque ou dans un magasin alternatif au lieu d'être stockées dans une base de données. Par exemple, si les données sont déjà organisées dans un format orienté fichier, comme une image ou un fichier audio, et ne nécessitent pas de métadonnées supplémentaires, il peut être plus simple de les stocker directement sur le disque ou dans un magasin d'objets dédié.




À quoi servent les bases de données ?

Presque toutes les applications et sites Web qui ne sont pas entièrement statiques reposent sur une base de données quelque part dans leur environnement. L'objectif principal de la base de données dicte souvent le type de base de données utilisée, les données stockées et les modèles d'accès utilisés. Souvent, plusieurs systèmes de bases de données sont déployés pour gérer différents types de données avec des exigences différentes. Certaines bases de données sont suffisamment flexibles pour remplir plusieurs rôles en fonction de la nature des différents ensembles de données.

Examinons un exemple pour discuter des points de contact qu'une application Web typique peut avoir avec les bases de données. Nous supposerons que l'application contient une vitrine de base et vend des articles qu'elle suit dans un inventaire.


Stockage et traitement des données du site

L'une des principales utilisations des bases de données est le stockage et le traitement des données relatives au site. Ces éléments affectent l'organisation des informations sur le site et, dans de nombreux cas, constituent l'essentiel du "contenu" du site.

Dans l'exemple d'application mentionné ci-dessus, la base de données remplirait la majeure partie du contenu du site, y compris les informations sur les produits, les détails de l'inventaire et les informations sur le profil de l'utilisateur. Cela signifie que la base de données ou un cache intermédiaire serait consulté chaque fois qu'une liste de produits, une page de détail de produit ou un profil d'utilisateur doit être affiché.

Une base de données serait également impliquée lors de l'affichage des commandes en cours et passées, du calcul des frais d'expédition et de l'application de remises en vérifiant les codes de réduction ou en calculant les récompenses des clients fréquents. Notre exemple de site utiliserait le système de base de données pour créer correctement des commandes en combinant les informations sur les produits, l'inventaire et les informations sur les utilisateurs. Les informations composites enregistrées dans une commande seraient à nouveau stockées dans une base de données pour suivre le traitement des commandes, autoriser les retours, annuler ou modifier les commandes, ou permettre un meilleur support client.



Analyser les informations pour aider à prendre de meilleures décisions

Les actions de la dernière catégorie étaient liées aux fonctionnalités de base du site Web. Bien qu'ils soient très importants pour gérer les exigences en matière de données de la couche d'application, ils ne représentent pas l'ensemble de l'image.

Une fois que votre application Web commence à enregistrer les utilisateurs et à traiter les commandes, vous souhaitez probablement pouvoir répondre à des questions détaillées sur la façon dont les différents produits se vendent, qui sont vos utilisateurs les plus rentables et quels facteurs influencent vos ventes. Il s'agit de questions analytiques qui peuvent être exécutées à tout moment pour recueillir des informations à jour sur les tendances et les performances de votre organisation.

Ces types d'opérations sont souvent appelés intelligence d'affaires ou analytics . Ensemble, ils aident les organisations à comprendre ce qui s'est passé dans le passé et à apporter des changements éclairés. Les systèmes de base de données stockent la plupart des données utilisées au cours de ces processus et doivent fournir les outils ou les capacités d'interrogation appropriés pour répondre aux questions les concernant.

Dans notre exemple d'application, les bases de données peuvent être interrogées pour répondre à des questions sur les tendances des produits, les numéros d'enregistrement des utilisateurs, les États auxquels nous expédions le plus ou qui sont nos utilisateurs les plus fidèles. Ces requêtes relativement basiques peuvent être utilisées pour composer des questions plus complexes afin de mieux comprendre et contrôler les facteurs qui influencent les performances du produit.



Gestion de la configuration logicielle

Certains types de bases de données sont utilisés comme référentiels pour les valeurs de configuration d'autres logiciels sur le réseau. Ceux-ci servent de source centrale de vérité pour les valeurs de configuration sur le réseau. Lorsque de nouveaux services sont démarrés, ils sont configurés pour vérifier les valeurs de clés spécifiques à l'adresse réseau de la base de données de configuration. Cela vous permet de stocker toutes les informations nécessaires pour démarrer les services en un seul endroit.

Après l'amorçage, les applications peuvent être configurées pour surveiller les modifications des clés liées à leur configuration. Si un changement est détecté, l'application peut se reconfigurer pour utiliser la nouvelle configuration. Ce processus est parfois orchestré par un processus de gestion qui déploie les nouvelles valeurs au fil du temps en arrêtant les anciens services au fur et à mesure que les nouveaux services apparaissent, en modifiant la configuration active au fil du temps pour maintenir la disponibilité.

Notre application pourrait utiliser ce type de base de données pour stocker des données de configuration persistantes pour l'ensemble de notre environnement d'application. Nos serveurs d'applications, serveurs Web, équilibreurs de charge, files d'attente de messagerie, etc. pourraient être configurés pour référencer une base de données de configuration afin d'obtenir leurs paramètres de production. Les développeurs de l'application pourraient alors modifier le comportement de l'environnement en ajustant les valeurs de configuration dans un emplacement central.



Collecter les journaux, les événements et d'autres sorties

L'exécution d'applications qui traitent activement des requêtes peut générer beaucoup de sortie. Cela inclut les fichiers journaux, les événements et d'autres sorties. Ceux-ci peuvent être écrits sur le disque ou dans un autre emplacement non géré, mais cela limite leur utilité. La collecte de ce type de données dans une base de données facilite le travail avec, la détection de modèles et l'analyse d'événements lorsqu'un événement inattendu se produit ou lorsque vous avez besoin d'en savoir plus sur les performances historiques.

Notre exemple d'application peut collecter les journaux de chacun de nos systèmes dans une base de données pour une analyse plus facile. Cela peut nous aider à trouver des corrélations entre les événements si nous essayons d'analyser la source des problèmes ou de comprendre la santé de notre environnement dans son ensemble.

Séparément, nous pourrions collecter des métriques produites par notre infrastructure et coder dans une base de données de séries temporelles , une base de données spécialement conçue pour suivre les valeurs au fil du temps. Cette base de données pourrait être utilisée pour alimenter des outils de surveillance et de visualisation en temps réel afin de fournir aux équipes de développement et d'exploitation de l'application des informations sur les performances, les taux d'erreur, etc.




Comment les différents rôles fonctionnent-ils avec les bases de données ?

Les bases de données sont fondamentales pour le travail de nombreux rôles différents au sein des organisations. Dans les petites équipes, une ou quelques personnes peuvent être responsables de l'exécution des tâches de divers rôles. Dans les grandes entreprises, ces responsabilités sont souvent segmentées en rôles distincts exécutés par des personnes ou des équipes dédiées.


Architectes de données

Les architectes de données sont responsables de la macrostructure globale des systèmes de base de données, des interfaces qu'ils exposent aux applications et aux équipes de développement, ainsi que des technologies et de l'infrastructure sous-jacentes nécessaires pour répondre aux besoins de données de l'organisation.

Les personnes occupant ce rôle décident généralement du modèle de base de données et de l'implémentation appropriés qui seront utilisés pour différentes applications. Ils sont responsables de la mise en œuvre des décisions de base de données en étudiant les options, en décidant de la technologie, en l'intégrant aux systèmes existants et en développant une stratégie de données complète pour l'organisation. Ils gèrent les systèmes de données de manière holistique et participent au choix et à la mise en œuvre de modèles de données pour divers projets.



DBA (administrateurs de bases de données)

Les administrateurs de base de données, ou DBA, sont des personnes responsables du bon fonctionnement des systèmes de données. Ils sont responsables de la planification de nouveaux systèmes de données, de l'installation et de la configuration de logiciels, de la configuration de systèmes de bases de données pour d'autres parties et de la gestion des performances. Ils sont également souvent responsables de la sécurisation de la base de données, de la surveillance des problèmes et des ajustements du système pour optimiser les modèles d'utilisation.

Les administrateurs de base de données sont des experts à la fois des systèmes de base de données individuels et de la manière de bien les intégrer au système d'exploitation et au matériel sous-jacents pour optimiser les performances. Ils travaillent en étroite collaboration avec les équipes qui utilisent les bases de données pour aider à gérer la capacité et les performances et pour aider les équipes à résoudre les problèmes liés au système de base de données.



Développeurs d'applications

Les développeurs d'applications interagissent avec les bases de données de différentes manières. Ils développent de nombreuses applications qui interagissent avec la base de données. Ceci est très important car ce sont presque toujours les seules applications qui contrôlent la façon dont les utilisateurs individuels ou les clients interagissent avec les données gérées par le système de base de données. Les performances, l'exactitude et la fiabilité sont extrêmement importantes pour les développeurs d'applications.

Les développeurs gèrent les structures de données associées à leurs applications pour conserver leurs données sur disque. Ils doivent créer ou utiliser des mécanismes capables de mapper leurs données de programmation sur le système de base de données afin que les composants puissent fonctionner ensemble en harmonie. Au fur et à mesure que les applications changent, elles doivent synchroniser les données et les structures de données au sein du système de base de données. Nous parlerons plus en détail de la façon dont les développeurs travaillent avec les bases de données plus loin dans l'article.



SRE (ingénieurs en fiabilité de site) et professionnels des opérations

Les SRE (ingénieurs en fiabilité du site) et les professionnels des opérations interagissent avec les systèmes de base de données du point de vue de la configuration de l'infrastructure et des applications. Ils peuvent être chargés de fournir une capacité supplémentaire, de mettre en place des systèmes de base de données, de s'assurer que la configuration de la base de données correspond aux directives de l'organisation, de surveiller la disponibilité et de gérer les sauvegardes.

À bien des égards, ces personnes ont des responsabilités qui se chevauchent avec les administrateurs de bases de données, mais ne se concentrent pas uniquement sur les bases de données. Le personnel des opérations s'assure que les systèmes sur lesquels reposent les applications du reste de l'organisation, y compris les systèmes de base de données, fonctionnent de manière fiable et présentent un temps d'arrêt minimal.



Informatique décisionnelle et analystes de données

Les départements d'informatique décisionnelle et les analystes de données s'intéressent principalement aux données déjà collectées et disponibles dans le système de base de données. Ils travaillent pour développer des informations basées sur les tendances et les modèles dans les données afin qu'ils puissent prédire les performances futures, conseiller l'organisation sur les changements potentiels et répondre aux questions sur les données pour d'autres départements comme le marketing et les ventes.

Les analystes de données peuvent généralement travailler exclusivement avec un accès en lecture seule aux systèmes de données. Les requêtes qu'ils exécutent ont souvent des caractéristiques de performances radicalement différentes de celles utilisées par les applications principales. Pour cette raison, ils travaillent souvent avec des répliques ou des copies de bases de données, de sorte qu'ils peuvent effectuer des requêtes agrégées longues et gourmandes en performances qui pourraient autrement avoir un impact sur l'utilisation des ressources du système de base de données principal.




Comment puis-je travailler avec des bases de données en tant que développeur ?

Alors, comment travaillez-vous réellement avec des bases de données en tant que développeur d'applications ? À la base, si votre application doit gérer et conserver l'état, l'utilisation d'une base de données constituera une partie importante de votre code.


Traduction des données entre votre application et la base de données

Vous devrez créer ou utiliser une interface existante pour communiquer avec la base de données. Vous pouvez vous connecter directement à la base de données à l'aide des fonctions de mise en réseau habituelles, tirer parti de bibliothèques simples ou de bibliothèques de programmation de niveau supérieur (par exemple, des générateurs de requêtes ou des ORM).

ORM , ou mappeurs relationnels objet, sont des couches de mappage qui traduisent les tables trouvées dans la base de données relationnelle en classes utilisées dans les langages de programmation orientés objet et vice versa. Bien que cette traduction soit souvent utile, elle n'est jamais parfaite. Non-concordance d'impédance relationnelle objet est un terme utilisé pour décrire la friction causée par la différence dans la façon dont les bases de données relationnelles et les programmes orientés objet structurent les données.

Bien que les bases de données relationnelles et la programmation orientée objet décrivent deux choix de conception spécifiques, le problème de la traduction entre l'application et la couche de base de données est un problème généralisé qui existe quel que soit le type de base de données ou le paradigme de programmation. Couche d'abstraction de base de données est un terme plus général désignant un logiciel chargé de traduire entre ces deux contextes.



Garder les changements structurels en synchronisation avec la base de données

Un fait important que vous découvrirez au fur et à mesure que vous développerez vos applications est que, puisque la base de données existe en dehors de votre base de code, elle nécessite une attention particulière pour faire face aux modifications de votre structure de données. Ce problème est plus répandu dans certaines conceptions de bases de données que dans d'autres.

L'approche la plus courante pour synchroniser les structures de données de votre application avec votre base de données est un processus appelé migration de base de données ou migration de schéma (tous deux connus familièrement simplement sous le nom de migration). La migration implique la mise à jour de la structure de votre base de données pour refléter les modifications à mesure que le modèle de données de votre application évolue. Ceux-ci prennent généralement la forme d'une série de fichiers, un pour chaque évolution, qui contiennent les déclarations nécessaires pour transformer la base de données dans le nouveau format.



Protéger l'accès à vos données et nettoyer les entrées

Une responsabilité importante lorsque vous travaillez avec des bases de données en tant que développeur est de s'assurer que vos applications n'autorisent pas l'accès non autorisé aux données. La sécurité des données est un problème vaste et multicouche avec de nombreuses parties prenantes. En fin de compte, certaines des considérations de sécurité seront de votre devoir de vous occuper.

Votre application nécessitera un accès privilégié à votre base de données pour effectuer des tâches de routine. For safety, the database's authorization framework can help restrict the type of operations your application can perform. However, you need to ensure that your application restricts those operations appropriately. For example, if your application manages user profile data, you have to prevent a user from manipulating that access to view or edit other users' information.

One specific challenge is sanitizing user input. Sanitizing input means taking special precautions when operating on any data provided by a user. There is a long history of malicious actors using normal user input mechanisms to trick applications into revealing sensitive data. Crafting your applications to protect against these scenarios is an important skill.




Conclusion

Databases are an indispensable component in modern application development. Storing and controlling the stateful information related to your application and its environment is an important responsibility that requires reliability, performance, and flexibility.

Fortunately, there are many different database options designed to fulfil the requirements of different types of applications. In our next article, we'll take an in-depth look at the different types of databases available and how they can be used to match different types of application requirements.