Académique Documents
Professionnel Documents
Culture Documents
BASE DE DONNEES
AVANCEES
Par M. Brou,
Enseignant à l’université Félix Houphouët Boigny
de Cocody à l’UFR de Mathématique et
informatique (UFRMI)
Chapitre I
1- Présentation
Tous les grands SGBD, organisent eux même l’enregistrement des données sur les mémoires
auxiliaires (disque dur). En général ils réservent de très gros fichiers du système d’exploitation qu’ils
gèrent eux même pour allouer de la place aux tables, vues tab/ index et autre objet manipulé.
Deux avantages certains de cette solution sont :
- L’amélioration des performances grâces à un accès disques optimisé - Une plus grande potabilité
(independance par rapport au système d’exploitation)
2- (Ecriture des données) Fichiers de BD
3- Processus d’écriture dans les fichiers
Un seul processus (Data Base Writer) à la charge d’enregistrer dans les fichiers de la BD, les infos
déposées dans les tampons (buffers) par les différents processus serveur.
4- Les fichiers LOG
Parallèlement à l’enregistrement des données, les processus serveurs enregistrent toutes les actions
effectuées sur les tables de la base dans les fichiers indep des fichiers de la base appelés fichier log.
Les fichiers log sont les fichiers de journalisation qui enregistrent toute l’activité de la BD.
L’architecture de PostgreSQL
Post master (securité)
Pg writter (ecrire dans les fichiers de BD)
Cisloger (processus ou fichiers journaux)
II. L’OPTIMISATION DES REQUÊTES
1. Rappel sur le traitement d’une requête
Les étapes de traitement des requêtes sont :
Categorie
Erreur syntaxique
Fournisseurs Produits
1 Yao Koumassi _ 1521 Savon BF 500 2
2 Sylla Marcory 1 1600 Cahier 100p 300 10
3 Kouassi Zone 4 2 2100 OMO 100g 100 1
4 Aly Treichville 1
Erreur : violation de contrainte d’intégrité référentielle
Insert into Produits (1600, ‘cahier 100p’, 300, 10)
- Exécution de la requête :
Elle utilise la mémoire, l’accès disque, le processeur et ceux-ci permettent de présenter le coût de la
requête
Après avoir analysé plusieurs plan de SGBD choisit toujours la requête de coût le plus faible.
2. Techniques d’optimisations
Arbre algébrique
C’est un graphe qui donne l’utilisation des opérations de l’algèbre relationnel dans le cadre de
l’exécution d’une requête
Exemple :
Ecrire une requête qui affiche le libellé, la catégorie, le prix pour le produit dont le prix est supérieur à
300 (voir figure 2).
Categorie
Produit
Categorie_Id numProdt
LibelleCat LibellePrdt
Prix
#Id_Fournisseur
#Categorie_Id
Graphe de navigation des tables
a) Index
Un index est un objet informatique qui contient des clés d’un index d’une table et qui permet
d’exécuter rapidement une requête en accédant directement à une ou plusieurs lignes de la table.
L’index permet d’accélérer une recherche.
T-Articles
Row_Id NoArticle Libelle Categorie Prix CodeFourn
4516H 1516B Savon BF HYGIENE 500 01
60FH 1616H Lait NIDO DEJ 1800 02
IND-Prix
rowid prix
4516H 500
66FH 1800
Pour retrouver les informations le moteur SQL parcourt la table des index en retenant les Row_Id
respectant le prédicat spécifié sur la colonne indexée (ici prix = 500)
Un accès séquentiel sera fait à la table T-Articles pour sélectionner les enregistrements (ou tuples)
correspondant au Row_Id Ces techniques d’optimisation supérieur mises en œuvre différenciant les
types d’index :
4 10 10
1 2 3 6 7 9 17 22 26
B+
(Rajout de liste chaînée)
RowId M F
4566H 1 0 Select NoEploye, Nom
1021H 1 0 From employe
4451F 0 1 Where sexe = ‘F’;
61AAC 1 0
use information_schema;
SELECT DISTINCT
TABLE_NAME,
INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema';
+------------+------------+
| TABLE_NAME | INDEX_NAME |
+------------+------------+
| categories | PRIMARY |
| clients | PRIMARY |
| commandes | PRIMARY |
| contenir | PRIMARY |
| produits | PRIMARY |
+------------+------------+
LES FORMES NORMALES
1. Concept de transaction
Une transaction est une séquence d’opérations exécutées par un programme, elle est délimitée par :
- Un début de transaction
En SQL le début d’une transaction est implicite)
- Une fin de transaction qui est explicite
On utilise ici COMMIT pour confirmer et ROLLBACK pour annuler. Pour écrire une transaction
en phase d’analyse, on utilise un pseudo-code.
Exemple
Debut Transaction:
Lire (Solde_compte1, S1);
S1:= S1 – 100;
Ecrire (S1, Solde_compte1);
Si
S1<0 Annuler Transaction,
Sinon
Lire (Solde_compte2 ;
S2 := S2 + 100;
Ecrire (S2, Solde_compte2) ;
Confirmer Transaction ;
Finsi ;
Une transaction doit être traitée comme une seule opération, c’est-à-dire que le SGBD doit s’assurer
que toutes les actions de la transaction ou bien qu’aucune soit exécutée(s)
Exemple
Begin Transaction;
Insert … Actions exécutées
Delete …
… Si panne
Insert
Delete Actions non exécutées
Commit
Si l’exécution d’une transaction est interrompue par une panne quelconque (panne interne, panne
externe) le SGBD doit:
- Soit compléter la transaction en exécutant les actions restantes
- Soit défaire les actions qui avaient déjà été exécutées avant la panne
Une BD est dite dans un état cohérent si les valeurs contenues dans la base vérifient toutes les
contraintes d’intégrité définies sur celle ci.
Deux transactions sont concurrentes si elles accèdent en même temps aux mêmes données. Les
problèmes qui peuvent subvenir en cas d’accès concurrent pour des mises à jour sur la BD sont :
- La perte de mise à jour
- Lecture impropre
- Lecture non reproductive
Diverses techniques sont mises en œuvre par les SGBD pour réaliser un verrouillage temporaire
permettant à une transaction de s’exécuter seule entièrement. On a le verrou exclusif (pour
suppression et mise à jour) le verrou partagé(pour des processus de lecture).
1. Les sauvegardes
Les SGBD offrent des outils et des mécanismes automatiques pour reparer les dommages créés par les
pannes
En plus de ces outils le SGBD doit faire régulièrement des sauvegardes (sauvegarde à froid, pas en
temps réel), la technique d’archivage automatique (sauvegarde automatique)
NB : L’archivage automatique a tendance à ralentir la BD, mais constitue l’assurance contre de trop
grandes pertes de données
Selon l’origine on peut les classer en panne interne et en panne externe (voir paragraphe précédent)
3. La reprise après incident
Le SGBD peut, dans certains cas, lui-même, restaurer la BD à partir des fichiers journaux. Si les
fichiers de la BD sont endommagés le DBA doit recharger la dernière sauvegarde.
/opt/oracle/oradata/XE/users01.dbf
/opt/oracle/oradata/XE/undotbs01.dbf
/opt/oracle/oradata/XE/system01.dbf
/opt/oracle/oradata/XE/sysaux01.dbf
Chapitre II
ARCHITECTURE CLIENT/SERVEUR
INTRODUCTION
INTRODUCTION
Système de communication
Terminaux
Ordinateur central 100%
Dans cette architecture, l’ordinateur central est bloquant, il n’y a pas d’autonomie des terminaux (0%
traitement, 100% affichage).
Réseau
Client
Serveur Execution de certains des
Régulation des traitements traitements
Le client/serveur dans une entreprise
TAF :
Rechercher des exemples d’API pour les différents types d’architecture client-serveur 2/3 et
3/3.TRAVAUX DE RECHERCHE PERSONNEL
T.A.F. 1 :
En utilisant les concepts du client/serveur réaliser un programme de connexion à une BD à l’aide de
l’un des langages suivants : PHP, C#, Visual basic.net, Java ou WinDev ; avec le SGBD MySQL ou
oracle XE
1. Fonctionnalité à implémenter :
Création d’un enregistrement
Recherche d’un enregistrement
Affichage d’un ou plusieurs enregistrements
Modification
2. Contenu du rapport
Présentation du langage
Présentation du SGBD
L’API utilisé pour la connexion
Présentation de l’architecture (les composants, les connecteurs, …)
T.A.F. 2 :
Le même travail en utilisant cette fois-ci :
1. Le logiciel COMBIO
Faire la migration entière du logiciel COMBIO
2. architectures client/serveur :
Le logiciel doit être réalisé en 2/3
Ensuite, il faut faire sa migration entière vers l’architecture 3/3