Connect with us

Introduction

Maîtrisez les systèmes d’information modernes efficacement

Bonjour et bienvenue dans ce cours d’introduction aux bases de données, dédié à la compréhension, à la conception et à l’exploitation des systèmes de gestion de données modernes.

Nous allons voir ensemble comment concevoir, utiliser et exploiter efficacement les bases de données, du point de vue du concepteur, de l’utilisateur et du développeur.

1. Gérer des données massives avec fiabilité, sécurité et accès multi-utilisateurs

Je vais commencer par décrire en une seule longue phrase ce qu’un système de gestion de bases de données apporte aux applications.

  • Il permet principalement de traiter de grandes quantités de données, mais voyons cela plus en détail.
  • En résumé, il offre un stockage et un accès multi-utilisateurs efficaces, fiables, pratiques et sécurisés à d’énormes quantités de données persistantes. Je vais donc aborder chacun de ces adjectifs plus en détail dans un instant.
  • Mais je tiens à mentionner que les systèmes de bases de données sont extrêmement répandus dans le monde d’aujourd’hui. Ils sont à l’origine de nombreux sites web qui gèrent vos systèmes bancaires, vos télécommunications, le déploiement de capteurs, des expériences scientifiques et bien d’autres choses encore. Ils sont très répandus.

2. Les 7 piliers fondamentaux – volume, persistance, sécurité, concurrence, commodité, performance et fiabilité

Voyons donc pourquoi les systèmes de bases de données sont si populaires et si répandus en examinant ces sept adjectifs.

  • Le premier aspect des systèmes de bases de données est qu’ils traitent des données à très grande échelle.
    • Si l’on pense à la quantité de données produites aujourd’hui, les systèmes de bases de données traitent des téraoctets de données, parfois même plusieurs téraoctets par jour.
    • L’un des aspects essentiels est que les données traitées par les systèmes de gestion de bases de données sont beaucoup plus volumineuses que ce que peut contenir la mémoire d’un système informatique classique.
    • Les mémoires évoluent certes très rapidement, mais la quantité de données dans le monde et les données à traiter par les systèmes de bases de données augmentent encore plus vite.
    • Les systèmes de bases de données sont donc conçus pour traiter des données qui ne résident pas dans la mémoire.
  • Deuxièmement, les données traitées par les systèmes de gestion de bases de données sont généralement persistantes.
    • Cela signifie que les données contenues dans la base de données survivent aux programmes qui les exploitent.
    • Ainsi, si vous exécutez un programme informatique classique, le programme démarre et les variables sont créées. Des données sont traitées par le programme, le programme se termine et les données disparaissent.
    • C’est un peu l’inverse avec les bases de données. Les données sont stockées, puis le programme démarre, il traite les données, le programme s’arrête et les données sont toujours là.
    • Très souvent, plusieurs programmes traitent les mêmes données.
  • Ensuite, la sécurité.
    • Les systèmes de bases de données, puisqu’ils exécutent des applications critiques telles que les systèmes de télécommunications et bancaires, doivent garantir que les données gérées par le système resteront dans un état cohérent, qu’elles ne seront pas perdues ou écrasées en cas de panne, qu’il puisse s’agir d’une panne matérielle ou logicielle, ou même d’une simple coupure de courant.
    • Vous ne voulez pas que votre solde bancaire change parce qu’il y a eu une coupure de courant dans votre agence bancaire.
    • Et bien sûr, il y a le problème des utilisateurs malveillants qui peuvent essayer de corrompre les données.
    • Les systèmes de bases de données intègrent donc un certain nombre de mécanismes qui garantissent la cohérence des données, quoi qu’il arrive.
  • Ensuite, le multi-utilisateur.
    • J’ai mentionné que plusieurs programmes peuvent fonctionner sur la même base de données.
    • Et même avec un seul programme fonctionnant sur une base de données, ce programme peut permettre à de nombreux utilisateurs ou applications différents d’accéder simultanément aux données.
    • Ainsi, lorsque plusieurs applications travaillent sur les mêmes données, le système doit disposer de certains mécanismes, là encore, pour garantir la cohérence des données.
    • Pour éviter, par exemple, que la moitié d’un élément de données soit écrasée par une personne et l’autre moitié par une autre.
    • Il existe donc des mécanismes dans les systèmes de bases de données appelés « contrôle de la concurrence ». L’idée est de contrôler la manière dont plusieurs utilisateurs accèdent à la base de données.
    • Nous ne contrôlons pas cela en accordant à un seul utilisateur un accès exclusif à la base de données, car cela ralentirait considérablement les performances.
    • Le contrôle s’effectue donc au niveau des éléments de données dans la base de données. Ainsi, de nombreux utilisateurs peuvent utiliser la même base de données, mais travailler sur des éléments de données individuels différents.
    • Cela ressemble un peu à la concurrence dans les systèmes de fichiers ou même à la concurrence entre variables dans les programmes, sauf que cela concerne davantage les données elles-mêmes.
  • Le prochain adjectif est « commodité », qui est en fait l’une des caractéristiques essentielles des systèmes de bases de données.
    • Ceux-ci sont vraiment conçus pour faciliter le traitement de grandes quantités de données et pour effectuer des traitements très puissants et intéressants sur ces données. Cela se produit à plusieurs niveaux.
    • Il existe une notion dans les bases de données appelée « indépendance physique des données ». C’est un peu compliqué, mais cela signifie que la manière dont les données sont réellement stockées et organisées sur le disque est indépendante de la manière dont les programmes conçoivent la structure des données.
    • Vous pouvez donc avoir un programme qui fonctionne sur une base de données et, en arrière-plan, un changement complet dans la manière dont les données sont stockées, sans que le programme lui-même ait besoin d’être modifié.
    • Les opérations sur les données sont donc indépendantes de la manière dont les données sont organisées.
    • La notion de langages de requête de haut niveau est en quelque sorte liée à cela.
    • Les bases de données sont généralement interrogées par des langages relativement compacts qui décrivent, à un niveau très élevé, les informations que vous souhaitez obtenir de la base de données.
    • Plus précisément, ils obéissent à une notion appelée « déclarative », qui signifie que dans la requête, vous décrivez ce que vous voulez obtenir de la base de données, mais vous n’avez pas besoin de décrire l’algorithme permettant d’extraire les données, ce qui est une fonctionnalité très intéressante.
    • Cela vous permet d’écrire des requêtes de manière très simple, puis le système lui-même trouvera l’algorithme permettant d’extraire ces données de manière efficace.
  • En parlant d’efficacité, c’est le numéro six, mais certainement pas le sixième en importance.
    • Il existe dans l’immobilier, comme petite parenthèse, un vieil adage qui dit que lorsque vous possédez un bien immobilier, les trois aspects les plus importants de ce bien sont son emplacement, son emplacement et son emplacement.
    • Et les gens disent la même chose à propos des bases de données, avec une blague similaire, à savoir que les trois choses les plus importantes dans un système de base de données sont d’abord la performance, ensuite la performance et encore la performance.
    • Les systèmes de bases de données doivent donc traiter des milliers de requêtes ou de mises à jour par seconde. Il ne s’agit pas nécessairement de requêtes simples. Il peut s’agir d’opérations très complexes.
    • Construire un système de base de données capable d’exécuter des requêtes, des requêtes complexes, à ce rythme, sur des quantités gigantesques de données, des téraoctets de données, n’est donc pas une tâche simple, et c’est l’une des principales fonctionnalités fournies par un système de gestion de base de données.
  • Enfin, mais ce n’est pas le moins important, il y a la fiabilité.
    • Encore une fois, si l’on repense à votre système bancaire ou à votre système de télécommunications, il est essentiel que ceux-ci soient disponibles en permanence.
    • C’est pourquoi les systèmes de gestion de bases de données garantissent à leurs applications un temps de disponibilité de 99,99999 %.
    • Cela nous donne une idée de toutes les fonctionnalités exceptionnelles qu’offre un système de base de données.

J’espère que vous êtes tous convaincus que si vous souhaitez créer une application impliquant des données, il serait judicieux de disposer de toutes ces fonctionnalités dans un système de base de données.

3. Rôle central dans les applications et périmètre d’étude face aux frameworks, middlewares et alternatives

Permettez-moi maintenant d’évoquer quelques aspects liés aux systèmes de bases de données et de présenter brièvement le contenu de ce cours.

  • Lorsque les gens créent des applications de bases de données, ils les programment parfois à l’aide de ce qu’on appelle un framework.
    • À l’heure actuelle, certains des frameworks les plus populaires sont Django ou Ruby on Rails. Il s’agit d’environnements qui vous aident à développer vos programmes et à générer, par exemple, les appels vers le système de base de données.
    • Dans ce cours, nous n’allons pas parler des frameworks, mais plutôt du système de base de données lui-même, de son utilisation et de ce qu’il offre.
  • Deuxièmement, les systèmes de base de données sont souvent utilisés en conjonction avec ce que l’on appelle des middlewares.
    • Là encore, les middlewares typiques sont les serveurs d’applications et les serveurs web.
    • Ces middlewares aident les applications à interagir avec les systèmes de base de données de certaines manières. Encore une fois, cela dépasse le cadre de ce cours. Nous ne parlerons pas des middlewares dans ce cours.
  • Enfin, toutes les applications qui impliquent des données n’utilisent pas nécessairement un système de base de données.
    • Historiquement, beaucoup de données ont été stockées dans des fichiers, mais je pense que c’est un peu moins le cas aujourd’hui.
    • Il existe néanmoins encore beaucoup de données qui sont simplement stockées dans des fichiers. Les feuilles de calcul Excel sont un autre domaine où l’on trouve beaucoup de données, ce qui est utile à certains égards, et le traitement des données ne se fait pas toujours à l’aide de langages de requête associés à des systèmes de bases de données.
    • Par exemple, Hadoop est un cadre de traitement permettant d’effectuer des opérations sur des données stockées dans des fichiers. Encore une fois, dans cette série de vidéos, nous allons nous concentrer sur le système de gestion de bases de données lui-même et sur le stockage et l’exploitation des données à l’aide d’un système de gestion de bases de données.

4. Les concepts fondamentaux des bases de données : modèles de données, schéma et langages de définition et de manipulation

Nous allons donc aborder quatre concepts clés pour l’instant.

  • Le premier est le modèle de données.
    • Le modèle de données est une description générale de la structure des données.
    • L’un des modèles de données les plus courants est le modèle de données relationnel, sur lequel nous allons passer un certain temps.
    • Dans le modèle de données relationnel, les données et la base de données sont considérées comme un ensemble d’enregistrements.
  • Une autre façon courante de stocker des données consiste, par exemple, à utiliser des documents XML.
    • Un document XML capture donc les données, au lieu d’un ensemble d’enregistrements, sous la forme d’une structure hiérarchique de valeurs étiquetées.
  • Un autre modèle de données possible serait un modèle de données graphique, dans lequel toutes les données de la base de données se présentent sous la forme de nœuds et d’arêtes.
    • Encore une fois, un modèle de données vous indique la forme générale des données qui seront stockées dans la base de données.
  • Vient ensuite le concept de schéma par opposition à celui de données.
    • On peut comparer cela aux types et aux variables dans un langage de programmation.
    • Le schéma définit la structure de la base de données. Je vais peut-être avoir des informations sur des étudiants avec leurs identifiants et leurs moyennes générales, ou sur des universités, et cela va simplement m’indiquer la structure de la base de données où les données sont les données réelles stockées dans le schéma. Encore une fois, dans un programme, vous définissez des types, puis vous avez des variables de ces types. Nous allons définir un schéma, puis nous aurons tout un ensemble de données qui respectent ce schéma.
    • En général, le schéma est défini au début et ne change pas beaucoup lorsque les données changent rapidement. Pour définir le schéma, on utilise normalement ce qu’on appelle un langage de définition de données.
    • Parfois, les gens utilisent des outils de conception de plus haut niveau qui les aident à réfléchir à la conception, puis passent au langage de définition des données. Mais il est généralement utilisé pour configurer un schéma ou une structure pour une base de données particulière.
    • Une fois que le schéma a été configuré et que les données ont été chargées, il est alors possible de commencer à interroger et à modifier les données, ce qui se fait généralement à l’aide de ce que l’on appelle le langage de manipulation des données, c’est-à-dire pour interroger et modifier la base de données. Voilà donc quelques concepts clés que nous aborderons plus en détail dans les prochaines vidéos consacrées à chacun de ces concepts.

5. Les acteurs fondamentaux des systèmes de bases de données : conception, développement applicatif et administration

Parlons maintenant des personnes qui interviennent dans un système de base de données.

  • La première personne que nous allons mentionner est celle qui met en œuvre le système de base de données lui-même, le développeur de base de données.
    • C’est la personne qui construit le système, mais ce n’est pas le sujet de ce cours. Nous allons nous concentrer davantage sur les tâches effectuées par les trois autres personnes que je vais vous présenter.
  • La personne suivante est le concepteur de base de données.
    • Le concepteur de base de données est la personne qui établit le schéma d’une base de données.
    • Supposons que nous ayons une application. Nous savons que cette application va contenir beaucoup de données et nous voulons déterminer comment nous allons structurer ces données avant de créer l’application. C’est le travail du concepteur de bases de données.
    • C’est un travail étonnamment difficile lorsque l’application implique des données très complexes.
  • Une fois que vous avez établi la structure de la base de données, il est temps de créer les applications ou les programmes qui vont fonctionner sur la base de données, souvent en faisant l’interface entre l’utilisateur final et les données elles-mêmes, et c’est le travail du développeur d’applications, donc ce sont les programmes qui fonctionnent sur la base de données.
    • Et encore une fois, j’ai déjà mentionné qu’il est très courant d’avoir une base de données sur laquelle fonctionnent de nombreux programmes différents.
    • Vous pouvez, par exemple, avoir une base de données de ventes dans laquelle certaines applications insèrent les ventes au fur et à mesure qu’elles se produisent, tandis que d’autres analysent les ventes.
    • Il n’est donc pas nécessaire d’avoir un couplage un-à-un entre les programmes et les bases de données.
  • Et la dernière personne est l’administrateur de base de données.
    • L’administrateur de base de données est donc la personne qui charge les données, qui fait en quelque sorte fonctionner l’ensemble et qui veille à ce qu’il fonctionne correctement.
    • Il s’agit donc en fait d’un travail très important pour les applications de bases de données de grande envergure.
    • Pour le meilleur ou pour le pire, les systèmes de bases de données ont tendance à avoir un certain nombre de paramètres de réglage qui leur sont associés, et le fait de bien régler ces paramètres peut faire une différence significative dans les performances globales du système de base de données.
    • Les administrateurs de bases de données sont donc très appréciés, très importants, très bien rémunérés et, dans le cas de déploiements à grande échelle, ils jouent un rôle essentiel dans l’ensemble du processus.

Voilà donc les personnes impliquées.

Dans ce cours, nous nous concentrerons principalement sur la conception et le développement d’applications, un peu sur l’administration, mais en général, nous aborderons les bases de données et l’utilisation des systèmes de gestion de bases de données du point de vue du développeur d’applications et de l’utilisateur.

Pour conclure, nous allons étudier les bases de données et, que vous le sachiez ou non, vous utilisez déjà une base de données tous les jours. En fait, il y a de fortes chances que vous utilisiez une base de données toutes les heures.

Click to comment

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscription à la newsletter

Texte de la newsletter