1 Introduction
1 Introduction
1 Introduction
2
Historique
Années 60:
Fichiers séquentiels
Accès séquentiel aux données puis sur clé.
Années 70:
Bases de données hiérarchiques puis réseaux
Données stockées dans des fichiers et reliées par des pointeurs.
Interrogation par navigation
Années 80:
Bases de données relationnelles
Relation entre ensembles de données
Interrogation par un langage proche du langage naturel
Années 90 et 2000:
Bases de données objets, XML …
3
Gestion des données (1)
La gestion de données par l’utilisation de fichiers
présente de nombreux inconvénients:
1. Absence de standardisation
plusieurs formats de stockage, plusieurs langages
2. Redondance des données (duplication)
Problèmes de mise à jour, incohérence des données
3. Interrogation par langage de programmation
Difficulté de maintenance
Coût élevé
4
Gestion des données (2)
4. Pannes (arrêt brutal, panne de disque …)
pas de solution standardisée
5. Partage de données
pas de solution standardisée
6. Confidentialité
Pas de solution standardisée
5
L’approche "bases de données"
Modélisation des données
Éliminer la redondance de données
Centraliser et organiser correctement les données
Plusieurs niveaux de modélisation
Outils de conception
6
Objectifs des SGBD
1. Indépendance physique des données
2. Indépendance logique des données
3. Langage simple
4. Gestion des vues
5. Optimisation des questions
6. Gestion de la cohérence
7. Gestion des pannes
8. Concurrence d’accès
9. Gestion de la confidentialité
10. Standards
7
SGBD relationnels (SGBDR)
Logiciels commerciaux/payants:
Oracle (plus de 60% du marché mondial des SGBDR)
Microsoft SQL server
IBM DB2
Sybase Anywhere
…
Logiciels libres/gratuits:
MySQL
PostrgreSQL
mSQL
…
8
Objectifs des SGBD
1. Indépendance physique des données
2. Indépendance logique des données
3. Manipulation simple
4. Gestion des vues
5. Optimisation des questions
6. Gestion de la cohérence
7. Gestion des pannes
8. Concurrence d’accès
9. Gestion de la confidentialité
10. Standards
9
Architecture à 3 niveaux
Vue 1 Vue 2 Vue 3 Schémas externes
(vues)
Schéma conceptuel
10
Indépendance Physique
Indépendance des programmes
d'applications vis à vis du modèle
physique :
Possibilité de modifier les structures de
stockage (fichiers, index, chemins d'accès, …)
sans modifier les programmes;
Ecriture des applications par des non-
spécialistes des fichiers et des structures de
stockage;
Meilleure portabilité des applications et
indépendance vis à vis du matériel.
11
Indépendance logique
Les applications peuvent définir des vues logiques de la
BD
Possibilité pour chaque application d'ignorer les besoins
des autres (bien que partageant la même BD).
Possibilité d'évolution de la base de données sans
réécriture des applications :
ajout de champs, ajout de relation, re-nommage de champs.
Sémantique
Logique du 1er ordre
Syntaxe (aperçu !)
SELECT <structure des résultats>
FROM <relations>
WHERE <conditions>
13
Des vues multiples des données
Les vues permettent d’implémenter l’indépendance logique
en permettant de créer des relations virtuelles
Vue = Question stockée
Le SGBD stocke la définition et non le résultat
Exemple :
la vue des patients sétifiens
la vue des projets de chaque service (chaque employer ne peut
voir que les projets de son service)
La vue des services statistiques
...
14
Exécution et Optimisation
Traduction automatique des questions déclaratives en
programmes procéduraux :
Utilisation de l’algèbre relationnelle
15
Intégrité Logique
Objectif : Détecter les mises à jour erronées
16
Contraintes d’intégrité
Avantages :
simplification du code des applications
sécurité renforcée par l'automatisation
mise en commun des contraintes
Nécessite :
un langage de définition de contraintes d'intégrité
la vérification automatique de ces contraintes
17
Intégrité Physique
Motivations : Tolérance aux fautes
Transaction Failure : Contraintes d'intégrité, Annulation
System Failure : Panne de courant, Crash serveur ...
Media Failure : Perte du disque
Communication Failure : Défaillance du réseau
Objectifs :
Assurer l'atomicité des transactions
Garantir la durabilité des effets des transactions commises
Moyens :
Journalisation : Mémorisation des états successifs des
données
Mécanismes de reprise
18
Transaction
Incohérence possible...
Etat cohérent Etat cohérent
Begin Commit
Transaction
Begin
Compte1 = Compte1 - 3000
Compte2 = Compte2 + 3000
Commit T1
19
Atomicité et Durabilité
ATOMICITE Panne
DURABILITE
Begin Begin
Compte1 = Compte1 - 3000 Compte1 = Compte1 - 3000
Compte2 = Compte2 + 3000 Compte2 = Compte2 + 3000
Commit T1 Commit T1 Crash disque
Restaurer les
Annuler le débit !!
données telles qu'elles
étaient avant la
transaction 20
Partage des données
BD
BD
23
Standardisation
L’approche bases de données est basée sur plusieurs
standards
Langage SQL (SQL1, SQL2, SQL3)
Communication SQL CLI (ODBC / JDBC)
Transactions (X/Open DTP, OSI-TP)
24
Architecture des SGBD
Les architectures physiques de SGBD sont très liées au mode
de répartition.
— BD centralisée
— BD client/serveur
— BD client/multi-serveurs
— BD répartie
— BD hétérogène
— BD mobile
Le challenge se déplace des Péta-bases aux Pico-bases.
— Péta-bases => parallélisme et grandes mémoires
— Pico-bases => faible empreinte et forte sécurité
25
Applications traditionnelles des SGBD
OLTP (On Line Transaction Processing)
Cible des SGBD depuis leur existence
Banques, réservation en ligne ...
Très grand nombre de transactions en parallèle
Transactions simples
26
Langage simple
Langage de manipulation de données (Data manipulation
Language DML):
Ajouter des données
Modifier des données
Supprimer des données
Interroger les données
Langage de définition de données (Data Definition Language
DDL):
Créer un schéma
Modifier un schéma
Supprimer un schéma
27
Gestion des vues
Les vues permettent de définir le schéma externe propre
à chaque utilisateur/catégorie d’utilisateurs.
28
Optimisation des questions
Le SGBD doit mettre en place au niveau du schéma
interne des structures accélératrices et méthodes de
stockage de manière à rendre plus rapide la réponse
aux questions des utilisateurs.
29
Gestion de la cohérence
Le SGBD doit garantir la cohérence des données par
rapport aux contraintes d’intégrité définies au niveau
du schéma relationnel.
Exemple:
Le salaire d’un employé ne doit mas être inférieur à celui
de son supérieur direct.
Un client ne peut passer de nouvelles commandes s’il n’a
pas payer toutes ses factures des commandes
précédentes.
30
Gestion des pannes
Le SGBD doit garantir la reprise sur panne sans perte de
données en cas d’arrêt brutal du serveur (coupure de
courant…) ainsi qu’en cas de panne matérielle (CPU,
RAM, disque).
31
Concurrence d’accès
Le SGBD doit permettre à plusieurs utilisateurs de
manipuler la base de données en même temps sans
générer de conflits d'accès.
32
Gestion de la confidentialité
Chaque utilisateur/catégorie d’utilisateurs dispose de
droits d’accès définis par l’administrateur de la base de
données. L’ensemble de ces droits d’accès constituent
la politique de confidentialité de la base de données.
33
Bibliographie
G. Gardarin, Bases de Données – objet/relationnel, Eyrolles, 1999.
34