Vous êtes sur la page 1sur 26

COURS DE

BASE DE DONNEES AVANCEES


Chapitre I : IMPLENTATION D’UNE SGBD
I- LES FICHIERS DE LA BD
1- Présentation

Tous les grands SGBD, géant 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é (indep 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. Dans oracle (Redolog iles).

Application User

Serveur SGBD

Database buffers
Buffers Redo Log Mémoire
(buffers de la BD)

Owr (log writer) DBWR(Database


wrier)

SGF
Fichier Fichier de
Redo log Base
II- LES PROCESSUS CLIENTS ET SERVEURS
L’utilisation d’un SGBD s’appuie sur le mode client-serveur : les applications
des utilisateurs qui accèdent à la base sont clientes de processus serveurs lancés en
arrière-plan par le SGBD.

Un processus serveur peut prendre en charge (un processus) l’interface entre la


base de un ou plusieurs processus clients.

Il exécute les requêtes des clients et leur transmet les résultats, il dépose aussi
dans les buffers les données ajoutées ou modifiées.

Remarque

Protocol réseau les parties clientes et serveur des SGBD utilisent un


propriétaire pour communiquer.

SGBD Serveur
Client (Application)
Protocole (1/3)

Programmes

SGBD
Serveur
Net8 Top/IP
Datafile (2/3)

SGBD Client/application
Programme

SGBD
Serveur
TCP
IP Data (3/3)
OC4J
Apache
Client IE Applet (vewer) Java
web

III- L’OPTIMISATION DES REQUETES


1- Traitement d’une requête

Etape 1 : Analyse syntaxique et sémantique de la requête

Etape 2 : control des droits d’accès et des contraintes d’intégrité

Etape 3 : Optimisation des requêtes par l’élaboration d’un plan pour répondre
à la requête en utilisant le coût minimum (index)

Etape 4 : Exécution du plan (définition en 3)

Rappel : (Contraintes d’intégrité)

Elles peuvent être entrées dans la définition d’une BD par exemple :

- Définition de la clé primaire d’une table (primary key)


- Clé étrangère dont les valeurs doivent exister dans une autre table (foreign
key)
- Unicité des valeurs d’une rubrique (UNIQUE)
- Fourchette des valeurs acceptables (CHECK)

2- Optimisation de requêtes R2, ∏, σ, |X|, U, …

SQL est un langage non procédural, c'est-à-dire qu’on ne décrit pas comment
obtenir le résultat.

L’optimisation du SGBD va élaborer un plan pour aller recherche les données


de manière efficace. Il va comparer tous les plans possibles en prenant en compte les
considérations logiques comme commencer par réduire le nombre de données à
traiter (faire d’abord des sélections, projections avant les jointures)

L’optimiseur prend aussi en compte l’implantation physique des données


comme l’existence des index et des statistiques sur les données (nombre
d’enregistrement).

IV- LES INDEX


1- Définition et fonctionnalité des index

Un index est un objet informatique qui contient des clés. Une clé d’un index
d’une table permet d’accéder rapidement à une ou plusieurs lignes de la table. Un
index peut ainsi accélérer une recherche d’une donnée ou une jointure dans la base en
limitant le nombre d’accès disque.

2- Les types d’index

B-arbres, Index Bitmap, Index (table de hachage)

a. Arbres

Les B-arbres permettent de réduire fortement le nombre d’accès disque. O


peut parcourir l’arbre dans l’ordre des clés. Les caractéristiques physiques
principales, toutes les branches ont la même profondeur, chaque nœud a toujours un
nombre minimum et un nombre maximum de clés.

4 10 16

1 2 3 6 7 9 11 12 15 17 22 36
Les nœuds qui ont m clés ont m+1 fils. Les premiers fils sont les clés inférieures à la
première clé. Les autres fils sont les clés supérieures à une clé et inférieures à la clé
suivante.
Principe

Ce sont des arbres binaires mais chaque nœud a beaucoup plus de fils. Dans
un B-arbre d’ordre n, les nœuds ont au moins n et au plus 2n clé sauf la racine. Le
nombre de fils d’un nœud est égale au nombre de fils de … Toutes les feuilles sont au
même niveau. Dans un souci d’optimisation, la taille des nœuds doit être multiple de
la taille du secteur du disque dur.
Remarque
Une variante des arbres B : les arbres B +. Les clés sont toutes rangées dans
les feuilles et les feuilles sont chainée s. Le parcours de toutes les clés dans l’ordre de
l’index est ainsi très rapide puisqu’on parcourt la liste chaînée des feuilles.

4 10 16

1 2 3 6 7 9 11 12 15 17 22 36
b. Index Bitmap

Ils sont utiles lorsque les données de la table ne sont presque jamais
modifiées. Ils sont le plus souvent utilisés dans les applications décisionnelles (online
Analytical Processing OAP)(Analyse des données conservées par une entreprise).
Les ap OLA P facilitent les prises de décision liées à l’analyse des données
conservées par une entreprise.
L’implantation par les index Bitmap est très différente de celle des B-arbres.

Nombre de données bitmap= Nombre de valeurs distinctes

Identificateu F M
r
89987 0 1
899485 0 1
8999878 1 0

Les index Bitmap utilisent un tableau de bits avec autant de colonnes que de
valeurs distinctes de la colonne indexée et autant de lignes que de table.
Dans le cas de la table employé ou la colonne sexe est indexée.
Un bit est à 1 si la ligne de la table à la valeur correspondante à la colonne.

Remarque

Les index Bitmaps fournissent de très bonnes performances avec les … de


type et dans la clause WHERE.

Au contraire ils ne sont pas trop performants s’ils comportent trop de


valeurs distinctes ou s’ils doivent être modifiés souvent.

c. Table de hachage (voir polycopié)


V- LA RESISTANCE AUX PANNES

1- Les sauvegardes

Les SGBD offrent des outils et des mécanismes automatiques pour réparer les
dommages créent par les pannes.
L’administrateur de la base de données (DBA) doit faire régulièrement des
sauvegardes de la B et des fichiers indispensables à son fonctionnement. (Data files
ou fichiers de données, les fichiers log)

Les sauvegardes ralentissent légèrement le fonctionnement du SGBD, mais


constituent une assurance contre de trop grandes pertes en cas de pannes.

2- Les types de panne

Les pannent peuvent être d’origine logicielle (SGBD), matérielle (disque dur)
ou dues au niveau dans le cas des BD reparties.

Le traitement des pannes est différent si la panne a seulement occasionné une


interruption du logicielle en laissant la B dans un état cohérent ou si la base a été
endommagé et ne peut plus être utilisée.

3- Reprise après incident

- la panne n’a pas endommagé les fichiers de la base automatiquement quand


il redémarre la SGBD, termine les transactions validées qui ont pu être enregistrées.
Complètement et annulent les transactions qui n’ont pas été validées

- les fichiers de la base sont endommagés, l’administrateur (DBA) doit


commencer à recharger la dernière sauvegarde de la base.

Si la dernière image de la base a été archivée, on exécute les actions


enregistrées depuis le dernière sauvegarde à partir des fichiers log sinon exécuter
toutes les instructions SQL perdues.

VI. LES API DE CONNEXION AU BDD CAS DE JDBC

Langage : Propriété objet

C++, JAVA

50% code similaire (structure de contrôle, algo)


Bonjour.java

Fichier text compile (java)

Bonjour.class

JRE JGRASP

Programme

La probabilité au fait que ces blocs sont indépendants de la plate-forme. Un


programme est fait essentiellement de classe. Une classe est dite principale si elle
contient la méthode

public static void main(string arg[])

Classe exécutable et la classe non exécutable. Une organisation de plusieurs


classes sont appelées packages. Ces packages sont les API de java.

Classe packages API de Java

Il existe plusieurs API de Java

- API de structure de données

- API de Maths

- API entrées / sorties

- API graphique, SWING

- API réseau (API.NET)

- API SQL appelé JDBC


Pages web avec Java

Définition de JDBC

JDBC: Java Data Base Connectivity

API Java adaptée à la connexion avec les bases de données relationnelles


(SGBDR), fournit un ensemble de classes et d’interfaces permettant l’utilisation sur
le réseau d’un ou plusieurs SGBDR à partir d’un programme Java.

Méta-données : ce sont les infos sur la base de données elle-même. Les


différentes infos contenues sur la base de données.

Interfaces et classes de Java.sql

Le packages compte 8 interfaces définissant les objets nécessaires à la


connexion à une base éloignée et à la création et exécution de requête SQL.

Principe de fonctionnement

Chaque base de données utilise un pilote (driver) qui lui est propre et qui
permet de convertir les requêtes JDBC dans le langage natif du SGBDR. Ces drivers
dits JDBC (un en s de classes et interfaces Java) existent pour tous les principaux
constructeurs : Oracle, Sybase, Infomix, BD.

Exemple :

Utilisation du driver odbc-jdbc pour se connecter à une base de données


access.mdb.

Import java.sql

Public class Test {

Public Test(){

Try{

1 // chargement du pilote JDBC

Class.forName(‘’ sun.jdbc.odbc.jdbcOdbcDriver’’) ;

// URL de connexion
String url=’’jdbc :odbc :comptar’’ ;

2 // connexion

Connexion con=DriverManager.getConnexion(url) ;

3 // Création d’une instruction

Statement statement = con.createStatement ();

4 // execution d’une requête

String query = ‘’ SELECT * FROM Employes’’ ;

ResultSet resultset = statement.executeQuery(query) ;

5 // traitement des résultats

While(resultset.next()){

System.out.println(resultset.getString(2)+’’ ‘’+resultset.getString(3) };

6 // fermeture de la connexion

con.close() ;

Catch (classNotFoundException e) {

System.err.println (‘’ Erreur lors du chargement du pilote :’’+e) ;

Catch(SQLException sqle){

System.err.println(‘’Erreur SQL :’’+ sqle) ;

Public static void main (String[] args) { Teset test = new test() ; } }

Pour importer dans Netbeans, clic droit sur Librairies, choisir Add Library

Import Javax.swing.JFrame ;

Pubilc class ihmtest exends JFrame{


Public ihmtest(){

Super (‘’Ecran Java’’) ;

Setsize (300,100);

setDefaultcloseOperation(JFrame.Exit-ON-close) ;

setVisible(true) ;

Public static void main( string [] args) {

Ihmtest ecran= new ihmtest() ;

}
CHAPITRE II : LES BASES DE DONNEES ORIENTE OBJET
I- ETUDE DE QUELQUES INSUFFISANCES DU MODELE
RELATIONNEL

1- Insuffisance pour l’implantation des modèles


- La représentation conceptuelle est très souvent distante du réel. La
modélisation fournit de nombreuses relations en rupture avec le réel.

Exemple

Missi
on

Depart Locali
Departem
ent ement F sation
(Nom, Entrepr K
étage, ise X
Nbre)

Membr
es Modèle
R
- Les éléments du modèle relationnel sont souvent polysémique (plusieurs
sens)

Enseigna Ville
1 habit 1
nt er Codeville
codeEns , , Nomville
Nom 1 n
1 trava 1
, iller ,
1 n

MLD
R

R_ Ensei R_ville
codeEns Codeville
Nom Nomville
Codeville
codeville
habit

1) disparition des associations

2) double sens pour #codeville Renommer

2- Insuffisances dans le cas des accès aux données


- Une table correspond seulement à une structure de données. Les seuls accès
aux données se font par les instructions SQL.
- C’est la gestion des contraintes d’intégrité (contrainte des valeurs, des clés
primaires)

Employe Dept
EmpNo Dname
Ename
Sal FK (DeptNo)
#EmpNos
up
DeptNo

SQL Direct (client SQL)

Programme (API+SQL)

Si un département est supprimé, il entraine la suppression des personnes


(on_deletecascade)

Sans définition des contraintes d’intégrité référentielle, le travail de la validation de la


cohérence père-fils doit être réalisé dans le programme. Les contraintes de domaine
de valeurs sont difficiles à mettre en œuvre : on utilise la classe CHECK pour des
triggers base de données (évènements)

TRIGGERS Base de données

valide

N click

- La lourdeur des jointures

Si on a 100 départements et 10000 employés, la jointure exige :


EX : D=106 lectures disque + comparaisons

- Dans le cas des associations réflexives

La gestion de la récursivité est difficile et se limite aux descendants (fils) de 1 er


niveau

- Plusieurs SGBDR ne gèrent pas les BLOBS (Binary Large Object) valeur
représentant une image, une vidéo, un son…
Il n’existe aucun opérateur disponible pour les blobs. Il existe deux manières de
stocker les blobs dans les bases de données, en fichier externe ou fichier interne. Les
solutions pour lever ces insuffisances seraient :

- L’implantation de l’encapsulation des données issues du MC avec le passage


du relationnel à l’objet ou à défaut à l’objet relationnel
- L’utilisation d’un langage complet de manipulation
II- LES CONCEPTS DE BDD ORIENTEES OBJET
1- Le concept d’objet
- Notion d’objet (voir cour de POO)
- Identité d’objet

Chaque objet a un OID indépendant de sa valeur. Les OID sont gérés par des
systèmes qui ne sont pas accessibles aux utilisateurs.

- L’héritage

La sous classe hérite des attributs et méthodes de la super classe. Les méthodes de la
sous classe ne s’appliquent (qu’aux instances des) objets de cette sous classe. Une
méthode appartenant à une classe mère peut être redéfinie dans la sous classe. Le
SGBD appelle la bonne méthode en fonction de l’objet manipulé en cas de surcharge

- La persistance

Elle consiste à trouver quels sont les objets qui persistent dans la bdd à la suite de
l’application qui les a fait naitre

- La liaison tardive

La liaison entre la bdd et le langage de manipulation se fera à l’exécution et non à la


compilation.

2- Le modèle de données

Diagramme de classe UML

La classe Nom
de la
classe
attri
buts

mét
hod EMPL
es OYE
Emp
No
Enam
Exemple e
Date
emb
Sal
Job

Empl
e
Employ
pl
m
e
*
.
.
1

plicité
multi
e
l
o
R
dans 1
Travailler
L’association
t_Af
Dep

ement
Depart

Arité=2 (Dimension)

CARDINALITES ET EQUIVALENCES
0,1 0..1
1,n *
0,n 0..*
1,1 1
N,m
Affic
he()
Affic
hesal
aire()

Instrument
Nom

Instrument
Instrument
à corde
à vent
Nbrecorde
Nbre
Piston

3- Quelques SGBD OO

O2, Ozone, DB4O (Database for object…)

SGBDRO (Système de Gestion de Bases de Données Relationnel Objet)

a- Difficulté de passage au SGBDOO

Cette difficulté se justifie par le manque de normalisation (trop de solutions


propriétaires)

- Très peu d’informations formés


- La très bonne information du modèle relationnel à travers une couverture du
marché à 80%
- Penser objet est un peu déroulant pour les informaticiens et manque de
souplesse par rapport au relationnel

Pour les principaux SGBD, le modèle objet relationnel peut permettre un passage en
douceur.

b- Les possibilités de l’objet relationnel


L’objet relationnel permet la définition de nouveaux types complexes avec des
fonctions pour les manipuler.

- Une ligne est considérée comme un objet avec un identificateur (OID)


Extension du langage SQL pour devenir SQL 99 ou encore SQL 3
Create Type ………
Create Type ……. As object
Create Table of ……………
TRAVAUX PRATIQUES

SEANCE 1

OBJET DE LA BASE DE DONNEES ORACLE

Installation du SGBD Oracle : Activité 1


2ème éditeur de logiciel du monde connu pour son SGBDRO appelé Oracle Server. Il a
évolué jusqu’à la version 11.g

Outils Oracle

OEM (administrer les bases)

Développer suite (J Developper) utilisé pour faire le dv sur Java

SQL Developper (se connecter à une base de données ORACLE pour écrire des
ressources programmes.

Logiciel requis : Oracle Universal

SQL Developper

Oracle Designer

1) Requirements
11g/windows
XP SP2 windows server 2003
- 512 Mo / 1 Go
- 2 Go DD
- Fichier d’échange 2x RAM

*11g/Linux/ Unix

1 Go RAM

Swap = 2x RAM

Redhat, Solaris, Arix, Linux oracle

- Dépendance logiciels

2) Copie les fichiers


3) Créer la base de données
TRAVAUX PRATIQUES
4) Configuration de la communication à la base

Db_name

Nom.monde domaine

Ord.world

SID
Identificateur de la base

(Nom court de la base de données)

Ord

DBA users

System

Sys

Users

Scott/tiger (look)

BI

Executer sqlplus BI

User/mot de passe@apex

Sql connect

System/admin@XE

SQL Server

DB 2

My sql server

Postgre

- Présentation de l’outil qui inclut la présentation de l’éditeur


- Installation de l’outil
- Création des tables
- Exécution des requêtes SQL
- Subsidiaire administration grâce à un outil graphique
Utilisation d’un outil externe)

Activité 2

Création d’un schéma

Un schéma dans oracle est définit par un ensemble de tables et d’autres objets de la
base de données (fonctions, procédures, vues, séquence, déclencheurs)
Un schéma est toujours associé à un utilisateur qui est propriétaire des objets.

Pour créer un schéma

- Créer l’utilisateur : create user (nom)

Identified by (mot de passe) ;

Octroie privilège grand dba

Exécute SQL pour créer les objets

Connect/system/admin XE

Create user UCOM

Identified by vante

3 grant dba to ucom

Grant succed

Select * from client ;

Decribe table ( voir la table)

Select * from client ; afficher tout ce qui table client

Select * from detaillivraison d, livraison

Where d.nolivraison ;

Vous aimerez peut-être aussi