Historique des bases de données : base de données et SGBD

Il y a longtemps, dans un pays américain, dans une grande entreprise informatique, la tâche de stocker de très grandes quantités de données s'est posée. Qu'est-ce qui est si difficile à ce sujet, demandez-vous? Après tout, les grandes entreprises ont de l'argent, ce qui signifie que vous pouvez acheter plus de disques durs - et c'est tout.

Excellente idée, mais comme on dit, le diable est dans les détails. De grandes quantités de données ont dû non seulement être stockées, mais également modifiées, et divers échantillons en ont été fabriqués. De plus, vous devez sélectionner différentes données à différents endroits, et le faire rapidement et magnifiquement.

En général, tout est comme d'habitude : les clients voulaient quelque chose qui n'existe pas, et la décision d'acheter des disques durs n'a pas fonctionné cette fois.

Par conséquent, les programmeurs de cette société informatique se sont débloqués un budget plus important, ont effectué des travaux de recherche et, une fois le budget dépassé, ils ont présenté une présentation dans laquelle il était proposé de stocker des données sous la forme d'une base de données. Dans une base de données, toutes les données sont stockées dans des tables, et chaque table est stockée dans un fichier séparé. Tout ingénieux est simple et tout fonctionne.

Mais une telle présentation ne convenait pas aux clients, et le pinaillage continuait :

  • Où est l'argent, Lebowski ?
  • Pourquoi la Base de données est-elle meilleure que le bon vieux stockage de données sous forme d'ensemble de fichiers ?
  • Nous avons besoin d'une très bonne solution, ce n'est pas ça !
  • Et ça a pris tout le budget ?

Un silence de mort régnait dans la salle de présentation. Cependant, de manière inattendue pour tout le monde, la situation a été sauvée par un développeur junior, qui a déclaré qu'un programme spécial était attaché à la base de données - un SGBD (système de gestion de base de données), qui peut :

  • Créer, modifier et supprimer des bases de données
  • Apporter des modifications aux bases de données, à savoir : ajouter de nouveaux enregistrements, supprimer les anciens et les modifier
  • Et aussi super rapide pour effectuer diverses sélections de toutes les données

Et les programmeurs finissent même de concevoir un super-langage spécial pour filtrer les données - SQL . Et ils disent qu'avec l'aide de ce langage SQL magique, n'importe quel gestionnaire peut facilement filtrer et obtenir toutes les données de la base de données.

Les programmeurs n'ont tout simplement pas encore fini de concevoir le langage , il n'y a donc pas un mot sur SQL et le SGBD dans la présentation.

À la joie de tous, les clients ont été impressionnés par l'explication qu'ils ont entendue, ont exprimé plusieurs idées contradictoires sur ce que devrait être ce nouveau langage et ont même alloué un budget pour son raffinement.

Les managers et le directeur technique ont commencé à se féliciter pour la réussite du projet et sont immédiatement allés célébrer cet événement, ne réalisant pas pleinement que le programmeur junior dans toute cette histoire est la personne la plus importante ...

SGBD et MySQL populaires

À l'heure actuelle (été 2022), il existe des centaines de SGBD populaires, il vous sera donc utile d'en connaître certains. Par quoi dois-je commencer…

D'une part, le marché des SGBD d'entreprise existe depuis des décennies. Elle compte donc à la fois des leaders reconnus et des nouveaux venus prometteurs. D'autre part, les besoins des entreprises ne cessent de croître, de sorte que les approches de construction des infrastructures informatiques des entreprises changent constamment.

Maintenant, vous ne surprendrez personne avec une base de données d'un cluster de quelques milliers de serveurs avec un partage horizontal et vertical, des transactions distribuées, ainsi qu'un service informatique d'une vingtaine d'administrateurs système qui vont changer les disques durs des serveurs en fonction de un horaire prédéterminé.

En général, si vous travaillez pour une grande entreprise, ils paient probablement beaucoup d'argent pour leurs bases de données et utilisent quelque chose comme ceci :

Base de données Oracle

Oracle a publié sa première base de données en 1979 (il y a 43 ans). Elle a immédiatement porté le nom d'Oracle 2.0 pour convaincre les clients que le produit n'est pas nouveau, mais éprouvé.

La version actuelle de la base de données est Oracle 21 c , où la lettre c provient du mot cloud , ce qui, pour ainsi dire, laisse entendre qu'Oracle suit l'évolution du temps et que ses solutions sont parfaitement compatibles avec toutes les technologies cloud.

Microsoft SQL Server

Microsoft gagne beaucoup d'argent en vendant non pas Windows, mais des solutions de serveur pour les moyennes et grandes entreprises. Microsoft Office, Microsoft SharePoint, Microsoft Server, etc. Et, bien sûr, tout cela nécessite une bonne base de données. Par conséquent, de nombreuses entreprises utilisant les produits et solutions Microsoft sont obligées d'utiliser sa base de données.

Le SGBD de Microsoft s'appelle simplement SQL Server , donc si vous entendez la question « Avez-vous travaillé avec SQL Server ? » lors d'un entretien, sachez qu'il ne s'agit pas d'un SGBD abstrait, mais de Microsoft SQL Server.

PostgreSQLName

Il s'agit d'un bon SGBD gratuit, souvent utilisé non seulement par les petites et moyennes entreprises, mais également par les grandes entreprises. Il s'agit de l'une des bases de données qu'Amazon AWS propose en tant que DB-as-service.

MySQL

MySQL est une base de données gratuite et open source très populaire. Il est bien documenté, fonctionne rapidement et prend en charge un large éventail de fonctionnalités. A ce jour, la 8ème version de ce SGBD est disponible.

En 2008, il a été racheté par Sun, qui a été racheté par Oracle en 2009. Et cela n'a profité qu'à elle - le produit se développe et s'améliore constamment.

Nous apprendrons comment travailler avec des bases de données en utilisant MySQL Community Server 8.0 comme exemple .

Tables dans une base de données : colonnes et colonnes

Différents SGBD peuvent stocker des données dans différents formats, nous prendrons donc l'option la plus simple et la plus classique - le SGBD MySQL.

Et immédiatement la question est : comment stocker, par exemple, des documents comptables ? L'option la plus simple consiste à stocker chaque document sous forme de fichier Excel. Ensuite, tous les documents connexes peuvent être stockés dans un dossier. C'est ainsi que MySQL fonctionne.

Autre analogie : dans le langage Java, vous avez des classes et des packages dans votre projet , mais en même temps, les classes et les packages sont représentés sur le disque sous forme de fichiers et de dossiers . Quelque chose de similaire existe dans MySQL.

Les données MySQL sont stockées sous forme de tables , qui sont combinées dans des bases de données , mais en même temps, les tables et la base de données sont présentées sur disque sous forme de fichiers et de dossiers . La base de données est un dossier et les fichiers qu'il contient sont des tables.

Chaque tableau est composé de colonnes et de lignes . Exemple:

Important! Chaque colonne a un nom et un type de données , donc toutes les cellules d'une même colonne doivent stocker des valeurs du même type .

Une analogie peut être établie entre une table en MySQL et une classe en Java. Une table est une classe, une table, comme une classe, a un nom unique. Les colonnes de table sont des champs de classe ; les colonnes, comme les champs, ont un nom et un type uniques. Les lignes de table sont des instances de classe en Java.

Une classe peut exister sans objets et une table peut exister sans lignes. En Java, vous pouvez créer un nouvel objet, et en MySQL, vous pouvez ajouter une nouvelle ligne à une table. Vous pouvez modifier les valeurs de champ d'un objet et, dans MySQL, vous pouvez modifier les valeurs d'affilée.

Il est encore plus correct de dire qu'une table n'est pas une classe, mais une collection d'objets d'une certaine classe. Si dans MySQL nous avons une table Employee avec des données sur les employés, alors en Java nous utiliserions la collection ArrayList.

Et, bien sûr, la question se pose immédiatement : comment obtenir certaines données de cette collection ?