Base de données
Une base de données se veut une façon de structurer des informations généralement sous forme de table avec des champs. En général, il y a deux manières d'écrire une base de données, soit il s'agit d'un gros fichier avec toutes les informations complètes sur les tables, les index et les données de la base de données, soit il y a un fichier par table contenant les données. Les petits systèmes comme avec dBASE III, par exemple, préconisaient l'utilisation d'un fichier par table, tandis que des SQL Server ou Oracle Database SQL préconisent l'utilisation d'un seul gros fichier et enfin MySQL offre le choix aux développeurs entre les 2 modèles.
Structure des fichiers
Les informations écrites dans les fichiers sont entreposées sous forme d'enregistrement pour les données contenues pour les champs des tables et contiennent des index permettant un accès rapide avec une structure de données B-arbre (ou B-Tree en anglais).
Demande simultanée
Bien que l'information soit écrite dans un fichier et donc pouvant être théoriquement lu par une application ayant un accès au système de fichiers, les bases de données ne donnent pas un accès direct, mais oblige les applications à passer par un analyseur de requête, généralement avec une syntaxe de SQL, offrant la possibilité de consulter l'information, d'ajouter de l'information ou de modifier de l'information. Cet analyseur est lui-même pas accessible directement, il faudra donc passer par soit un API sur la machine en local effectuant des communications directes avec la base de données ou soit un service de serveur de base de données disponible par un protocole de communication réseau. Donc, à partir de se principe, on sait qu'un utilisateur ou une application ne pourra jamais accéder directement à la base de données sans passer par un intermédiaire étant un API ou un serveur réseau. Grâce à ce principe, il est possible de gérer des utilisateurs, des sessions et des transactions simultanément afin que même si les demandes arrivent en même temps par différentes machines, le travail de l'un, ne va pas détruire le travail de l'autre.
Remarque
- Le développement du serveur de base de données ne peut être fait qu'avec un langage de programmation avec un fort typage de données, comme par exemple le Ada, C, Java ou le Pascal. Par contre, le client de base de données peut-être développée dans n'importe quel langage de programmation.