# Introduction aux systèmes de bases de données/Introduction
## Schéma conceptuel

De manière générale, un schéma conceptuel est une représentation d'un ensemble de concepts reliés sémantiquement entre eux. Les concepts sont connectés par des lignes fléchées auxquelles sont accolés des mots.
La relation entre les concepts s'appuie sur des termes exprimant cette relation: « appartiens à », « passe par », « mène à », « prévient que », « favorise »…
Le schéma conceptuel poursuit plusieurs buts :
* représenter le modèle mental d'une situation, que cette représentation soit personnelle, celle d'un groupe ou d'une organisation ;
* résumer la structure de la connaissance extraite d'ouvrages écrits (état de l’art technique).
En informatique, un schéma conceptuel est une représentation graphique qui sert à décrire le fonctionnement d'une base de données.
Il représente ainsi les objets principaux contenus dans cette dernière, le modèle réseaux sémantiques, leurs caractéristiques et les relations qui s'établissent entre ces différents objets.
Cette représentation est normée suivant une modélisation bien définie.
Plusieurs types de schémas conceptuels existent, correspondants aux différents types de base de données que l’on peut rencontrer :
* le modèle hiérarchique ;
* le modèle réseaux sémantiques ;
* le modèle entité / association ;
* le modèle objet ;

### Le modèle hiérarchique

L'information est organisée de manière arborescente (selon une hiérarchie), accessible uniquement à partir de la racine de cette arborescence.
Il permet de facilement ajouter des éléments et d’en modifier la structure.
Le défaut principal de cette représentation provient du fait que le point d'accès à l'information est bien unique (c'est la racine de l'arbre hiérarchique). Cela entraîne que toute recherche de donnée demande le parcours de toute, ou au moins partie, de la hiérarchie, en passant par la racine.
L'exemple le plus courant est celui de l'arborescence utilisé pour les systèmes de fichiers (bien qu’il ne s'agit pas de SGBD à proprement parler, comme nous le verrons plus loin), où l’on navigue depuis la racine du système vers des sous répertoires et des fichiers contenant les données.

### Le modèle réseaux sémantiques

Ce modèle décrit le fonctionnement d'une base de données réseau.
Ce type de base de données fonctionne sur le principe du regroupement des différents éléments de la base de données par leur sens.
Toutes les informations peuvent y être associées les unes aux autres et servir de point d'accès. Cela en fait un modèle complexe dont l'extraction de données est difficile.
L'exemple le plus concret d'un tel modèle est le web sémantique.

### Le modèle entité/association

Le modèle entité-association est un type de schéma conceptuel qui est notamment utilisé par les bases de données relationnelles.
Les points d'entrées y sont indépendants de la structure de la base de données : l'utilisateur saisit simplement une requête, sans avoir à naviguer dans la base, et la machine se charge de l'exécuter pour atteindre les données escomptés.
Le principal inconvénient est la rigidité de la structure du modèle définie et les difficultés que cela entraîne pour faire évoluer un schéma existant lorsqu'un besoin nouveau apparaît ou qu'une erreur de conception est découverte.
Cela inclus notamment tous les systèmes se basant sur le langage S.Q.L..

### Le modèle objet

Dans le cadre de ce modèle, comme dans la programmation orientée objet, les données sont décrites comme des classes et représentées sous forme d'objet possédant des attributs et des méthodes.
Chaque objet peut servir de point d'entrée pour d'autres objets, permettant une navigation à la fois souple et aisée dans la base.
L'inconvénient principal est l'importante quantité de ressources (mémoire et temps de calcul) que nécessite cette approche.

## Historique des SGBD

Avant 1960 on dispose presque uniquement des système de gestion de fichiers. À partir du milieu des années 1960, on voit apparaître les systèmes hièrarchiques avec IMS (Information Management System, en français « Système de Gestion de l'information ») de IBM et du réseau CODASYL (Conference on Data Systems Languages, en français « Conférence sur les langages de systèmes de traitement de données »).
De 73 à 80, on voit apparaître le modèle relationnel déclaratif, qui se développera bien plus à la fin des années 1980 avec la démocratisation de la micro-informatique. Dans le même temps, le système orienté objet se développe mais plutôt du côté des langages de programmation, ce qui aboutit sur le modèle objet-relationnel en fin des années 1990.
On peut également noter depuis 2003 la poussé de XML, héritier de SGML, qui structure les documents par des balises imbriqués.
On constate que la démocratisation et l'amélioration des performances des ordinateurs semble favoriser l’utilisation de modèles plus abstraits.

## Processus de conception d'une base de données

La travail de conception commence par une analyse du domaine à modéliser, on établie une cartographie des notions qu’il comprend et de les détails de leurs relations, c’est le schéma conceptuel.
On traduit ensuite cette cartographie uniquement en termes d'ensemble d'éléments, les relations devenant des éléments à part entière, c’est le modèle logique.
Enfin on implémente le résultat dans un ensemble logiciel, c’est le schéma physique (même si les logiciels sont virtuels, il s'agit de la structure concrètement utilisé).

## Modèles d'accès aux données
### Le modèle navigationnel

Dans le modèle navigationnel, la structure des données est parcourue en empruntant des chemins prédéfinis constitués par des réseaux de pointeurs.
Au modèle navigationnel sont associées les notions suivantes:
* articles ;
* enregistrement (RECORD) ;
* ensemble (SET).

### Le modèle relationnel

Dans le modèle relationnel, les données désirées sont obtenu par la formulation de requête. Il n'est plus nécessaire de parcourir la structure des données en empruntant des chemins prédéfinis.
C'est ce modèle que nous étudierons dans le reste de la leçon.