Un serveur de base de données est un serveur qui utilise une application de base de données qui fournit des services de base de données à d'autres programmes informatiques ou à des ordinateurs , comme défini par le modèle client-serveur . Les systèmes de gestion de base de données (SGBD) fournissent fréquemment des fonctionnalités de serveur de base de données, et certains systèmes de gestion de base de données (tels que MySQL ) s'appuient exclusivement sur le modèle client-serveur pour l'accès à la base de données (tandis que d'autres, comme SQLite , sont destinés à être utilisés comme base de données intégrée ).
Les utilisateurs accèdent à un serveur de base de données soit via un « front-end » exécuté sur l'ordinateur de l'utilisateur – qui affiche les données demandées – soit via le « back-end », qui s'exécute sur le serveur et gère des tâches telles que l'analyse et le stockage des données.
Dans un modèle maître-esclave , les serveurs maîtres de base de données sont des emplacements centraux et principaux de données tandis que les serveurs esclaves de base de données sont des sauvegardes synchronisées du maître agissant comme des proxys .
La plupart des applications de base de données répondent à un langage de requête . Chaque base de données comprend son langage de requête et convertit chaque requête soumise en un format lisible par le serveur et l'exécute pour récupérer les résultats.
Oracle , IBM Db2 , Informix et Microsoft SQL Server sont des exemples d'applications de bases de données propriétaires . PostgreSQL est un exemple d'applications de bases de données libres . Ingres et MySQL sont des exemples d'applications de bases de données sous licence publique générale GNU . Chaque serveur utilise sa propre logique et structure de requête. Le langage de requête SQL (Structured Query Language) est plus ou moins le même sur toutes les applications de bases de données relationnelles .
Pour clarifier, un serveur de base de données est simplement un serveur qui gère les services liés aux clients via des applications de base de données.
DB-Engines répertorie plus de 300 SGBD dans son classement.
Histoire
Les fondements de la modélisation de grands ensembles de données ont été introduits pour la première fois par Charles Bachman en 1969. Bachman a introduit les diagrammes de structure de données (DSD) comme moyen de représenter graphiquement les données. Les DSD ont fourni un moyen de représenter les relations entre différentes entités de données. En 1970, Codd a introduit le concept selon lequel les utilisateurs d'une base de données devraient ignorer le « fonctionnement interne » de la base de données. Codd a proposé la « vue relationnelle » des données qui a ensuite évolué vers le modèle relationnel que la plupart des bases de données utilisent aujourd'hui. En 1971, le Database Task Report Group de CODASYL (la force motrice derrière le développement du langage de programmation COBOL ) a proposé pour la première fois un « langage de description de données pour décrire une base de données, un langage de description de données pour décrire la partie de la base de données connue d'un programme et un langage de manipulation de données ». La plupart des recherches et du développement des bases de données se sont concentrés sur le modèle relationnel au cours des années 1970.
En 1975, Bachman a démontré comment le modèle relationnel et l'ensemble de structures de données étaient des moyens similaires et « congruents » de structurer les données alors qu'il travaillait pour Honeywell . Le modèle entité-relation a été proposé pour la première fois sous sa forme actuelle par Peter Chen en 1976 alors qu'il menait des recherches au MIT . Ce modèle est devenu le modèle le plus fréquemment utilisé pour décrire les bases de données relationnelles. Chen a pu proposer un modèle supérieur au modèle de navigation et plus applicable au « monde réel » que le modèle relationnel proposé par Codd.