Une base de données, usuellement abrégée en BD ou BDD, est un ensemble structuré et organisé permettant le stockage de grandes quantités d'informations afin d'en faciliter l'exploitation (ajout, mise à jour, recherche de données).
Une base de données se traduit physiquement par un ensemble de fichiers sur présent sur une mémoire de masse (bien souvent un disque). Certaines peuvent être accessible via les réseaux, on parle alors de base de données en ligne.
Structure
Le point le plus important pour pouvoir considérer un logiciel comme une base de données est son processus aux accès concurrent aux données/enregistrements. Ce point est primordial pour permettre le développement durable, sécuritaire, réparti et efficace d'une base de données.
Bases de données hiérarchiques
Le premier système de base de données a été conçu pour la gestion des données du programme Apollo de la NASA. Les données étaient structurées dans des hiérarchies, comparables à l'organisation des répertoires sur un PC. Mais certains problèmes de stockage ont mené à utiliser (et donc à inventer) des bases de données de type réseaux. Les fichiers XML sont une réminiscence moderne des bases hiérarchiques et il existe donc des bases de données XML natives.
Une base de données hiérarchique est une base de données dont le système de gestion lie les enregistrements dans une structure arborescente où chaque enregistrement n'a qu'un seul possesseur.
Par exemple, le canard appartient à la famille des anatidés qui elle-même appartient à l'ordre des ansériformes qui lui-même appartient à la classe des oiseaux qui elle-même appartient au sous-embranchement des vertébrés qui lui-même appartient au règne animal.
Les structures de données hiérarchiques ont été largement utilisées dans les premiers systèmes de gestion de base de données de type mainframe. Elles ont toutefois montré des limites pour décrire des structures complexes, répondre aux besoins réels et suivre l'évolution des systèmes d'information.
Comme on le voit dans l'exemple cité plus haut, l'organisation hiérarchique des bases de données est particulièrement adpatée à la modélisation de nomenclatures, mais si le principe de relation « 1 vers N » n'est pas respecté (le canard n'appartient bien qu'à une seule famille mais, par exemple, un malade peut être en relation avec plusieurs médecins), alors la hiérarchie doit être transformée en un réseau.
Cette évolution nécessaire donnera naissance aux bases de données relationnelles.
Bases de données réseaux
Le modèle réseau est une manière de représenter les données dans le cadre d'une base de données. Ce modèle est en mesure de lever de nombreuses difficultés du modèle hiérarchique grâce à la possibilité d'établir des liaisons de type 1-n en définissant des associations entre tous les types d'enregistrements.
Ce modèle est une extension du modèle précédent (hiérarchique), les liens entre objets peuvent exister sans restriction. Pour retrouver une donnée dans une telle modélisation, il faut connaître le chemin d'accès (les liens), ceci rend encore les programmes dépendants de la structure de données.
Ce modèle de base de données a été inventé par Charles.W. Bachman. Pour son modèle, il reçut en 1973 le prix Turing.
Bases de données relationnelles
En 1970, au moment où les systèmes reposant sur le modèle hiérarchique ou le modèle en réseau étaient en plein développement, Edgar Frank Codd publia un article où il proposait de stocker des données hétérogènes dans des tables, permettant d'établir des relations entre elles. De nos jours, ce modèle est extrêmement répandu, mais en 1970, cette idée était considérée comme une curiosité intellectuelle. On doutait alors que les tables puissent être jamais gérées de manière efficace par un ordinateur. Ce scepticisme n'a cependant pas empêché E.F. Codd de poursuivre ses recherches. Un premier prototype de Système de gestion de bases de données relationnelles (SGBDR) est construit dans les laboratoires d'IBM. Depuis les années 1980, cette technologie a mûri et a été adoptée par l'industrie. En 1987, le langage SQL, une extension de l'algèbre relationnelle, est standardisé. À l'heure actuelle, les SGBDR sont présents dans de nombreux logiciels, sont très répandus dans les bases de données et représentent une industrie de plusieurs milliards de dollars.
Une base de données relationnelle est une base de données structurée suivant les principes de l’algèbre relationnelle. La théorie des bases de données relationnelles est due à Edgar Frank Codd.
Remarque : l'adjectif relationnel ne fait pas référence ici aux relations entre les tables mais aux tables elles-mêmes.
Elle est mise en œuvre au moyen d’un Système de Gestion de Bases de Données Relationnelles (SGBDR).
Bases de données orientées objet
Les exemples les plus connus à l'heure actuelle de base de données orientées objets sont les annuaires, qui sont capables de stocker une multitude d'informations. Ils la stockent dans des objets, très souvent une fiche individuelle, une machine, une ressource... à laquelle on associe des valeurs, ses attributs.
Bases de données multidimensionnelles
Elles permettent de stocker différentes données numériques aux croisements des "n" axes correspondant aux "n" dimensions de la base.
Il est alors possible de naviguer dans cet espace, à différents niveaux d'agrégats (zooms, rotation d'axes, etc.) : ces bases de données sont appelées cubes ou hypercubes en informatique décisionnelle et sont souvent utilisés dans les métiers du contrôle de gestion.
Bases de données XML natives
Ces bases de données s'appuient sur la structure offerte par le langage XML pour stocker les données et les repérer.
Elles représentent une évolution importante du concept de base de données permettant de stocker des volumes importants de données ou de documents, y compris multimédia.
L'organisation des données dans le langage XML reste cependant hiérarchique.
Bases de données décisionnelles
Les bases de données décisionnelles sont utilisées en lecture intensive, dans le cadre de l'aide à la décision. Leur contenu provient de l'ensemble des bases de données de production (RH, gestion des stocks, gestion commerciale, gestion de la production, marketing, etc.) par scripts et batchs, ou bien par des outils de type ETL, EAI ou ESB.
Les datawarehouse et datamart sont des exemples de bases relationnelles utilisées de manière décisionnelle.
Les bases de données multidimensionnelles (cubes multidimensionnels) sont généralement utilisées de manière décisionnelle.
Bases de données factuelles
Base de données regroupant des données établies et attestées concernant un domaine comme la chimie, la physique, la médecine, etc. Une base de données factuelles peut intégrer des données non textuelles comme des graphiques, des schémas... Dans ce cas, certains auteurs préfèrent parler de "banque de données".
Exemple de banque de données :
- Banque de données francophone;
- Banque de données anglophone.