Vous êtes sur la page 1sur 36

SGBDR

Systèmes de Gestion de
Bases de Données
(Relationnelles)
Plan

 Approches
 Les tâches du SGBD
 Les transactions
Approche 1

 Systèmes traditionnels basés sur des


fichiers
Application 1 Fichier
Gestion clients Clients

Application 2 Fichier
Gestion commandes Commandes

Application 3 Fichier
Gestion livraison Commandes
Approche 1
Systèmes basés sur des fichiers
 Inconvénients
– Description multiple des structures des
fichiers
– Redondance de certaines informations =
risques d’incohérence
– Conflits si accès simultané aux fichiers
Approche 2

 Systèmes basés sur des bases de


données
informations sur
Application 1 Métadonnées les BD, droits
d’accès, etc.
Gestion clients
Données :
Bases de données
Application 2 -T_client
SGBDR : tables et autres
Gestion commandes -T_comm
objets de BD
-T_livr
Application 3 Journaux
Gestion livraison
Approche 2
Systèmes basés sur les BdeD
 Bases de données
– Collection de données organisées et partagées de
manière à satisfaire les besoins en information
d’une organisation
• Description des données dans un dictionnaire ou
catalogue (métadonnées = données qui décrivent les
données)
• Données elles-mêmes (sous forme de tables pour les
bases de données relationnelles)
 Système de gestion de base de données
– Système logiciel permettant de
• gérer une base de données (description et contenu),
• d’en contrôler l‘accès
• et en assurer intégrité
Approches
Avantages/inconvénients SGBD
 Avantages
– Contrôle de la redondance des données (et donc
de leur cohérence)
– Contrôle de l’intégrité des données
– Partage des données : accès sécurisés, contrôle
de la concurrence d’accès
 Inconvénients
– Complexité supplémentaire : langages SQL,
techniques d’administration, etc.
– Coût du logiciel (mise en œuvre, administration,
évolution)
Les taches d’un SGBD
 Contrôler la redondance
 Contrôler l’intégrité des données
 Contrôler l’accès aux données
 Contrôler la concurrence d’accès
 Autres services
– Assurer la reprise après incident
– Sauvegarde/restauration
– Réplication
– Etc.
Tâche
Contrôler la redondance
 Le processus de conception d’une base de
données passe par une analyse des données
du SI
 Un certain nombre de règles permettent de
s’assurer de la non-redondance des données
: les formes normales
– 1FN (1ère forme normale)
– 2FN
– 3FN
 Le passage au modèle physique permet de
réintroduire éventuellement une certain
redondance contrôlée
Tâche
Contrôler l’intégrité
 Assurer l’intégrité,la cohérence, des données
d’une base de données
 Mise en œuvre SQL
– Contraintes de domaine de valeur
• Type de données : INT, DATE, etc.
• NOT NULL, DEFAULT
• CHECK, UNIQUE
– Contrainte d’intégrité d’entité
• PRIMARY KEY
– Contrainte d’intégrité référentielle
• FOREIGN KEY
– ON UPDATE – ON DELETE
– Déclencheurs (triggers)
Tâche
Contrôler l’accès aux données
 S’assurer que seuls les utilisateurs ou
applications autorisés accèdent aux données
d’une BdeD
 Limiter l’accès à certaines données
 Mise en œuvre SQL
– comptes d’utilisateurs ou de groupes
• CREATE USER
– privilèges d’accès aux données pour ces comptes
• GRANT / REVOKE
– Vues et privilèges sur les vues
• CREATE VIEW
Tâche
Contrôler la concurrence d’accès
 Dans un environnement multi-utilisateurs, il
est indispensable de garantir que chacun ait
accès à la bonne donnée lors de l’exécution
de son instruction SQL (ou du groupe
d’instructions) : notion de transaction
– verrouiller l’accès à une donnée
– valider/invalider un ensemble de modifications
 Mise en œuvre SQL
– Valider un ensemble de mises à jour
• COMMIT
– Invalider un ensemble de mises à jour
• ROLLBACK
Tâche
Assurer la reprise après incident
 Afin de garantir l’intégrité des données en cas
d’incident, les SGBD doivent mettre en œuvre
un certain nombre de techniques basées sur
la journalisation des modifications du contenu
de la base de données
 Journaux d’image avant (Redo)
– Avant toute opération de modification d’une ligne,
conservation de l’image ‘avant’ de cette ligne
– En cas d’invalidation, on peut reconstruire la ligne
 Journaux de transactions
– Toutes les opérations peuvent être mémorisées et
ré appliquées en cas de restauration
Tâche
Sauvegarde / restauration
 Offrir les outils permettant d’effectuer
des sauvegardes (backup)/ restauration
(restore)
– Sauvegarde complète
– Sauvegarde différentielle
• Mises à jour depuis dernière complète
– Sauvegarde incrémentale
• Mises à jour depuis dernière sauvegarde
Transactions
 Une transaction est composée d’une suite de
requêtes qui doivent vérifier les 4 propriétés
suivantes :
– Atomicité :
• les requêtes de la transaction forme un tout indissociable
– Cohérence :
• les requêtes doivent être toutes annulées en cas d’échec
– Isolation :
• les modifications effectuées par les requêtes de la
transaction doivent n’être accessible qu’après validation
– Durabilité :
• les modifications doivent être durables, même en cas de
panne (restaurer et ré appliquer)
Transactions
Concurrence et incohérences
 Types d’incohérences :
– Dirty read (lecture d’une ligne non validée)
• Transaction A modifie une ligne
• Transaction B lit la ligne modifiée
• Transaction A annule/valide la transaction
– Lecture non répétable :
• Transaction A lit une ligne
• Transaction B modifie ou supprime une ligne
• Transaction A essaie de relire la ligne (on s’attend à
avoir les mêmes données)
– Fantôme
• Transaction A lit n lignes
• Transaction B ajoute/supprime une ligne
• Transaction essaie de relire les n lignes
Transactions
Verrous / Niveau d’isolement
 Verrous : mécanisme qui verrouille l’accès à
une ligne/page (bloc de données)
– Lecture (partagé)
– fantôme/anti-insertion
– Écriture
– Anti-fantôme/insertion
 Niveau d’isolement
– 0 : aucun verrouillage
– 1 : non modification des lignes lues
– 2 : non modification des lignes lues
– 3 : sécurité maximale
Transactions
Interblocage / dead lock / verrou
mortel
 Exemple :
– Transaction A modifie la ligne 100
– Transaction B modifie la ligne 1
– Transaction A veut modifier la ligne 1
• Attente libération des verrous
– Transaction B veut modifier la ligne 100
• Attente libération des verrous
 Les SGBD décident d’abandonner une des 2
transactions au profit de l’autre
Réplication

 Recopier le contenu (total ou partiel)


d’une base de données vers une autre
 Intérêt :
– Performance pour des sites distants
– Sécurité
 Filtrer
– Tout est recopié
– Certaines lignes, certaines colonnes
Base de données distribuée
Two-phase commit (2PC)
 Base de données dont les données sont
réparties sur plusieurs serveurs
 Transparence pour l’utilisateur
 2PC :
– Dans de cas de bases de données
distribuées, mécanisme permettant la
validation d’une transaction mettant en
œuvre plusieurs bases.
OLAP
Online Analytical Processing
 Possibilité offerte par certains SGBD
d’offrir des requêtes
– avec des lignes de sous-totaux dans le
résultat détaillé (mot clefs ROLLUP)
– des données sous forme de cubes
multidimensionnels (mot clefs CUBE)
 Fonctions de classement
– Rang d’une ligne par rapport aux autres,
etc.
OLAP - Rollup
SELECT A, B, C, SUM( D )
FROM T1 GROUP BY ROLLUP (A, B, C);
– Équivalent à
SELECT * FROM (
( SELECT A, B, C, SUM( D ) FROM T1
GROUP BY A, B, C )
UNION ALL
( SELECT A, B, NULL, SUM( D ) FROM T1
GROUP BY A, B )
UNION ALL
( SELECT A, NULL, NULL, SUM( D ) FROM T1
GROUP BY A )
UNION ALL
( SELECT NULL, NULL, NULL, SUM( D ) )
)
OLAP - Cube
SELECT A, B, C, SUM( D )
FROM T1 GROUP BY CUBE (A, B, C);
– Définit les sous-totaux suivants
– SELECT * FROM (
• ( SELECT A, B, C, SUM( D ) FROM T1
– GROUP BY A, B, C )
– GROUP BY A, B )
– GROUP BY A, C )
– GROUP BY B, C )
– GROUP BY A )
– GROUP BY B )
– GROUP BY C )
– ()
Datawarehouse, datamart
Entrepot de données
 Objectif :
– conserver les données de TOUTE la vie de
l’entreprise
– Dans un entrepôt, rien n’est supprimé
– Produire des statistiques
 Modèle de données basé sur
– Des axes d’analyse : tiers, produits, temps
– Des mesures : quantité, prix
 Un datawarehouse
 des datamarts par secteur, division de
l’entreprise, etc.
Datawarehouse
modélisation
 Modèle en étoile
– Tables des dimensions : attributs qui caractérisent
les dimensions des analyses (selon 3 axes
principaux)
• Localisation : pays, client,
• Temps : année, mois, jour,
• Produit : produit, catégorie,
– Table des faits : mesures
 Modèle en flocon
– Idem. mais normalisation des tables des
dimensions
Datamining

 Exploration des données d’un entrepôt


 Fouille de données :
– Extraire des « connaissances »
 Algorithmes spécifiques
– profils de client
– Profils de consommation
Cycle de vie des données d’une
base de données Informatique
décisionnelle
Production EIS, SIAD
(Performance) Extraction, Analyses
transformation, multidimensionnelles

chargement

Base de données Entrepot


(Database) (Dataware house)

Extract,
Transform,
Load Fouille de données

Entrepot
Entrepot Extraction de
(Dataware mart)
(Dataware mart) connaissances
Middleware d’accès aux données

CLIENT Interconnexion ? SERVEUR

Progiciel sPI IBM-DB2


ERP
sPI Oracle
Outils
bureautiques sPI MySQL

... sPI Postgresql

sPI ...
À chaque fois qu’un client veut
communiquer avec un serveur, il
Middleware faut développer du code spécifique

CLIENT Interconnexion SERVEUR

Progiciel sPI IBM-DB2


ERP
sPI Oracle
Outils
bureautiques sPI MySQL

... sPI Postgresql

sPI ...
À chaque fois qu’un client veut
communiquer avec un serveur, il
Middleware faut développer du code spécifique

CLIENT Interconnexion SERVEUR

Progiciel API sPI IBM-DB2


ERP universelle
Serveur
D’intermédiation sPI Oracle
Outils
bureautiques sPI MySQL

... sPI Postgresql

ODBC
Open
sPI ...
Database
Connectivity
Middleware d’accès aux données

 Le middleware ODBC (Microsoft) agit


avec les SGBD comme un pilote (driver)
pour le matériel
Les SGBD relationnels du
marché
 Oracle
– Oracle v. 10g
 IBM
– DB2
 Microsoft
– SQL Serveur 2005
 Sybase
– Sybase et SQL AnyWhere
 Sun
– MySQL v. 5 (opensource)
 opensource
– PostgreSQL v.8
– Firebird v.2
Évolution des SGBD

 Intégration de XML
– Des types de données permettant le
stockage des documents XML
– Langage d’interrogation des colonnes de
ce type
 Intégration des concepts objet
– Héritage

Vous aimerez peut-être aussi