Introduction aux Bases de Données Relationnelles

publicité
Introduction
INT Management
9
Introduction

Notion de bases de données







slide 11
Contexte technique
Apport BD
Terminologie BD
Domaines d’application
Les modèles de données pour BD slide 31
Architecture de référence
slide 44
Qu’est-ce qu’un SGBD ?
slide 49
10
Contexte technique BD



Notion de bases de données
Contexte technique
Structure en mémoire centrale (MC)
Fichiers
Bases de données
11
Structure en MC

Principes


Notion de bases de données
Contexte technique
Stockage des données dans la mémoire volatile d’un ordinateur
Problèmes




Stockage temporaire
«Petits» volumes de données
Langages de programmation
Contexte mono-processus (mono-utilisateur en général)
12
Fichiers




Notion de bases de données
Contexte technique
Stockage persistant sur disque
«Gros» volumes de données
Langages de programmation et SGF
Contexte mono-utilisateur (en général)
13
Approche fichier avec PCs
Direction des études
Bibliothèque
Appli
En Cobol
Fichiers Elèves
et UVs
Notion de bases de données
Contexte technique
Service social
Appli
en Java
Fichiers Elèves
et Livres
Appli
en C
Fichiers Elèves
et Chambres
14
Notion de bases de données
Contexte technique
Approche fichiers + SGF
Application bibliothèque
Programme 1
Description du fichier des Elèves
*2
Edition du fichier Elèves
par ordre alpha
Programme 2
Description du fichier des Elèves
Fichier Elèves
Mise à jour du fichier Elèves
via nom élève
SGF
15
Problèmes de l’approche fichier
Notion de bases de données
Contexte technique








Difficulté à saisir les liens entre les données
Pas de partage de données entre les utilisateurs
Pas de vision globale des données
Redondance des données
Risque d'incohérence des données
Pas d'indépendance entre les données et les traitements
Problème de gestion de la sécurité des données
Multiplicité des traitements, des langages, des matériels
16
Bases de données




Notion de bases de données
Contexte technique
Stockage persistant sur disque
«Très gros» volumes de données
Langage de requêtes et langages de
programmation SGBD
Contexte multi-utilisateurs
17
Notion de bases de données
Contexte technique
Approche centralisée
PC Windows
BD
Appli C
Appli Cobol
PC
NT
Appli Java
Elèves
Uvs
Livres
Chambres
SGBD
Description
BD
PC Linux
Terminaux
18
Notion de bases de données
Contexte technique
Approche client/serveur
PC Windows
BD
Appli Cobol
SGBD
PC
NT
Elèves
Uvs
Livres
Chambres
Appli Java
Description
BD
Appli C
PC Linux
19
Apport d’une approche BD

Intégration :




Notion de bases de données
Apport BD
Description unique et globale des données
Eviter les redondances
Eviter les incohérences
Indépendance :


Indépendance entre données et traitements
Séparation entre les descriptions logiques et
physiques des données
20
Notion de bases de données
Apport BD
Apport d’une approche BD (2)

Sécurité :




Contrôle sémantique des données
Protection contre les accès non autorisés
Protection contre les pannes
Facilités pour l’utilisateur :





Partage des données
Vision « haut niveau » et « personnalisée » des données
Manipulation « aisée » des données
Accès efficaces aux données
Répartition des données et des traitements
21
Terminologie BD








Notion de bases de données
Terminologie BD
Données
Modèle de données
BD
SGBD
Schéma d’une BD
Instance d’une BD
Contraintes d’intégrité
Métabase
22
Données



Notion de bases de données
Terminologie BD
Une structure
 Simple: prix, nom, date
 Complexe: personne, document, image
Une sémantique
 Le solde d’un compte courant
 Une photo de Paris réalisée par le satellite SPOT
Un propriétaire
 Responsable de la création d’une donnée
 Définit les règles pour son identification et son intégrité:



« La température de l’air est comprise entre -30° et +40°C »
« Le salaire de l’année n est supérieur au salaire de l’année n-1 »
Accorde des droits d’utilisation
23
Données (2)

Notion de bases de données
Terminologie BD
Des utilisateurs

Interrogent les données


« Quelle était la température à paris le 1er janvier 1997 ? »
Mettent à jour les données

« Créditer le compte de M. Monet de 1000 F »
24
Modèle de données

Ensemble de concepts pour décrire :




Notion de bases de données
Terminologie BD
Les données du monde réel
Les liens entre les données
La sémantique des données
Ensemble d’opérations pour manipuler les
données
25
BD ET SGBD

BD :


Notion de bases de données
Terminologie BD
Collection de données décrites selon un certain
modèle
SGBD :


Système logiciel gérant les données d’une BD,
selon un modèle fixé
Un SGBD doit permettre la définition, la
manipulation et le contrôle des données
26
Schéma et instance d’une BD

Schéma (intention) :




Notion de bases de données
Terminologie BD
Description des données de la base, conformément à un modèle
Schéma réseau, schéma relationnel, ...
Statique en général.
Instance (extension) :



Collection de données de la base écrite selon un certain modèle
Instance du schéma
Dynamique
27
CI et Métabase

Contrainte d’intégrité (CI):



Notion de bases de données
Terminologie BD
Règle spécifiée sur les données, pour définir un état
cohérent de la base
Le salaire d’un employé doit être supérieur au SMIC
Métabase (dictionnaire de données - DD):


Collection des données qui décrivent la BD
« Valeur du schéma »
28
Domaines d’application



Notion de bases de données
Domaines d’application
Comme élément central :
 Banques de données (professionnelles, grand public)
 Systèmes transactionnels (banques, assurances,…)
 Systèmes d’aide à la décision (tableaux de bord, analyse statistique,…)
Comme élément essentiel :
 Systèmes d’information et de communication (entreprise,
administration,…)
 Systèmes de surveillance et de contrôle (télécoms, production,…)
Comme élément auxiliaire :
 Systèmes de recherche documentaire (textes,sons, graphiques, …)
 Systèmes XAO (CAO,PAO,EAO,…)
 Systèmes experts
29
Classification
Volume de
données
Notion de bases de données
Domaines d’application
Complexité des
traitements
Intensité du
service
Applications
 Go
transactionnelles
Interrogation +
Mise à jour
Temps de
réponse < 2 s.
> 100 tps
 To
Interrogation
Temps de
réponse en mn
ou h
Notion de tpm
Application
d’aide à la
décision
Datewarehouse
Datamining
TPC (Transaction Processing Council) Benchmarks systèmes transactionnels
30
Les modèles de données pour les BD


Modèles BD
Modélisation des données
Modèles




Modèle entité/association [Chen 76]
Modèle hiérarchique
Modèle réseau
Modèle relationnel
31
Modélisation des données

Modèles BD
Modèle de données :
 Ensemble de concepts pour décrire :



Les données
Les liens entre les données
La sémantique des données
En général, un ensemble d’opérations est associé pour manipuler
les données
Formalisme de description :
 Textuel
 Graphique
 Mathématique
Exemples de modèles :
 Entité/association
 Hiérarchique/réseau
 Relationnel
 Objet, relationnel-objet



32
Modèle Entité/Association
[Chen 76]
code
nbH
Modèles BD
coord
UV
1,n
S’inscrire
note
3,n
num
nom
Élève
0,n
0,1
age
adresse
datePrêt
côte
Emprunter
0,1
Livre
titre
Louer
1,1
no
Chambre
prix
33
Modèle Entité/Association - 2
0,1
Livre
cote
titre
1,1
Chambre
no
prix
Emprunter
UV
code
nbH
coord
1,n
S’inscrire
note
3,n
Eleve
num
nom
age
adresse
0,n
0,1
datePret
Louer
34
Critique du modèle Entité/Association
Modèles BD
 Avantages



Sémantique riche
Extension aux concepts
objets (héritage, ...)
Aspect visuel
 Modèle de conception de
BD
 Inconvénients



Uniquement un modèle de
description de données
Pas de langage de
manipulation associé
Pas de SGBD E/A
 Pas un modèle
d’implantation de BD
35
Modèles BD
Modèle hiérarchique


Système IMS d’IBM conçu à la fin des années 60
pour le programme Appolo (NASA)
Exemple
Élève
Livre
UV
UV
Chambre
Elève
36
Modèle hiérarchique (suite)

Schéma BD


Collection d’enregistrements reliés par des pointeurs
Langage de manipulation




Structure arborescente (forêt)
BD


Modèles BD
Navigationnel et procédural
Utilisation de pointeurs
(Exemple du langage DL/1 du système IMS)
Problèmes :


Pas d’indépendance logique/physique
Redondance des données, risques d’incohérence
37
Modèles BD
Modèle réseau


Modèle défini par le groupe DBTG du comité
CODASYL en 1971 (revu en 1978)
Exemple
Élève
Livre
Chambre
UV
Inscrit
38
Modèle réseau (suite)





Modèles BD
Schéma BD
 Structure de graphe orienté acyclique (DAG)
BD
 Collection d’enregistrements reliés par des pointeurs
Langage de manipulation
 Navigationnel et procédural
 Utilisation de pointeurs
 Standard CODASYL 71, 78
Systèmes
 IDS2 d’Honeywell (1975), Total de Cincom (1974), Adabas de Soft.
Ag (1978)
Problèmes
 Pas d’indépendance logique/physique
39
Modèle relationnel


Modèles BD
[CODD 70] « A Relational Model for Large
Shared Data Banks »
Exemple
Élève(num, nom, adresse, age)
UV(code, nbH, coord)
Inscrit(numElève, codeUV, note)
Livre(côte, titre, numElève, datePrêt)
Chambre(no, prix, numElève)
40
Modèle relationnel (2)
« MLD » Ecole
UV
CODE
NBH
COORD
INSCRIT
CODE
NUM
NOTE
ELEVE
NUM
NO
NOM
AGE
ADRESSE
Modèles BD
LIVRE
COTE
NUM
TITRE
DATEPRET
CHAMBRE
NO
NUM
PRIX
41
Modèle relationnel (3)





Modèles BD
Schéma BD
 Structure de relation
BD
 Ensemble d’enregistrements reliés par des valeurs
Langage de manipulation
 Ensembliste
 Déclaratif
 Standard international [ SQL 86, 89, 92 ou SQL2]
Prototypes de recherche
 System/R chez IBM (1976), Ingres à Berkeley (1976)
Systèmes commerciaux
 SQL/DS et DB2 d’IBM (1982), Oracle (1983), Ingres (1983),
Informix (1981), Sybase (1984), SqlServer (1998)
 MySQL (1995)
 Access
42
Modèle relationnel (suite)

Modèles BD
Avantages




Indépendance logique/physique
Langage de manipulation simple
Basé sur une théorie mathématique solide
Standard
43
Une architecture de référence pour les
SGBD
Architecture de référence




Description des données : 3 niveaux
d’abstraction
Exemple
Conséquences
Conception d’une BD
44
Description des données : 3 niveaux
d’abstraction
Architecture de référence

Groupe ANSI/X3/SPARC (1975)
Schéma externe 1
….
Schéma externe n
Schéma conceptuel
Schéma physique
45
Architecture de référence
Exemple
Schéma externe pour
appli Bibliothèque
- Elève
- Livre
Schéma externe pour
appli Direction des études
- Elève
- UV
Schéma conceptuel
Schéma Physique
Schéma externe pour
appli Service social
- Elève
- Chambre
Comment les données
sont vues par les
« utilisateurs »
Représentations logique
Multiples
Globalité des données
Représentation logique
Unique
Globalité des données
Représentation physique
des données. Comment
les données sont
mémorisées (fichiers,
index, …)
Unique
46
Conséquences

Indépendance physique




Architecture de référence
Indépendance entre les structures de stockage et les structures
de données
Pouvoir modifier l'organisation physique sans modifier les
programmes d’application
Exemple: ajouter un index
Indépendance logique


Pouvoir modifier le schéma conceptuel sans modifier les
programmes d’application
Exemple : ajouter un attribut
47
Conception d’une BD
Architecture de référence
48
Qu’est-ce qu’un SGBD ?










Qu’est-ce qu’un SGBD ?
But
Moyens mis en oeuvre
Fonctionnalités
Architecture
Langage de définition des données (LDD)
Langage de manipulation des données (LMD)
Interface avec un LPG
Java et les SGBD
Transaction
Les utilisateurs d’un SGBD
49
But et moyens

But :



Qu’est-ce qu’un SGBD ?
Simplifier et faciliter l’accès aux données de la base
Assurer une grande sécurité du système d'information
Moyens :


En offrant une vision de « haut niveau » des données, via un
modèle logique des données
En se chargeant de faire la correspondance avec la vision de «
bas niveau » des données (structures de stockage et méthodes
d’accès)
50
Fonctionnalités









Qu’est-ce qu’un SGBD ?
Langage de définition et de manipulation des données (LDD +
LMD)
Gestion de l’intégrité  définition des CI, Trigger
Gestion de la persistance
Structures de stockage et méthodes d’accès  cluster, index
Gestion de la concurrence (transaction, verrouillage)
Gestion de la sécurité de fonctionnement  transaction, journaux,
mécanisme de reprise sur panne
Gestion des droits identification, attribution de droits
Optimisation  algorithme, statistiques
Interface avec les langages de programmation
51
Fonctionnalités (++)





Qu’est-ce qu’un SGBD ?
Gestion de versions
Gestion de la répartition
Gestion d’objets complexes (image, document,
...)
Gestion de connaissances, règles de déduction
Environnement de développement (AGL)
52
Architecture d’un SGBD
Administrateur
Qu’est-ce qu’un SGBD ?
Programmeur d’application
Définition des
schémas de la BD
Utilisateur terminal
Manipulation de la BD
Traducteur LDD
Traducteur LMD
Noyau SGBD
Métabase
BD
53
LDD

Définition logique des données




Schéma conceptuel global
Schémas des vues utilisateur
Structure des données et liens entre les données
Définition physique des données



Qu’est-ce qu’un SGBD ?
Schéma physique des données
Méthodes de placements et d’accès
Contrôle des données


Contraintes d’intégrité
Droits d’accès
54
LMD

Objectif


Interroger et mettre à jour les données (extraire, ajouter, supprimer, modifier )
Style procédural







Qu’est-ce qu’un SGBD ?
Exprimer la séquence des opérations d’accès aux données pour obtenir le résultat
Modèle hiérarchique et réseau
Langage navigationnel
Norme CODASYL 71, 78 pour modèle réseau
Dépendant du niveau physique
Intégration dans un LPG (Cobol pour modèle réseau)
Style déclaratif






Exprimer l’information souhaitée sans dire la façon dont on accède à l’information
Modèle relationnel
Langage ensembliste
Indépendant du niveau physique
Norme SQL 86, 89, 92
SQL « seul » et SQL « intégré » dans un LPG « classique »
55
Interface avec un LPG



Qu’est-ce qu’un SGBD ?
Problème d’un LMD
 Uniquement interrogation et mise à jour des données
 Pas de « calculs » sur les données
Solution
 Interfacer le LMD avec un LPG
 Diverses techniques d’interfaçage (précompilation, ....)
Exemples


LMD réseau interface normalisée avec COBOL
LMD relationnel interfaces normalisées entre SQL et



Cobol, Pascal, Fortran, PL/1 (1978)
Ada, C (1989)
Java (SQLJ)
56
Java et SGBD



Qu’est-ce qu’un SGBD ?
JDBC : API de niveau SQL/CLI avec
indépendance des SGBD cibles (pb de pilote)
SQLJ : embedded SQL pour Java
Interface de gestion de la persistance des objets
Java (transformation automatique des objets java
en structures relationnelles dans les 2 sens)
57
Notion de transaction

Qu’est-ce qu’un SGBD ?
Séquence d’opération élémentaires (lire, écrire) sur la
BD
Transaction retrait (noCompte, montant)
Début
select solde into s from Comptes where numCompte = noCompte;
si s > montant alors
Update compte set solde = solde – montant where numCompte = noCompte;
donnerArgent(montant);
Valider();
Sinon
Imprimer(‘opération impossible’);
Annuler();
Finsi
Fin;
58
Propriétés des transactions




Qu’est-ce qu’un SGBD ?
A : Atomicity
C : Consistency
I : Isolation
D : Durability
59
Les utilisateurs d’un SGBD

Le concepteur



Qu’est-ce qu’un SGBD ?
Contexte de travail : niveau conceptuel
Construction du schéma conceptuel avec un modèle de données
Administrateur BD





Contexte de travail : les 3 niveaux.
Définit et màj les schémas logiques
Définit les CI + Vues + droits d’accès
Définit les schémas physiques (structures de stockage +
stratégies d’accès)
Utilise le LDD et DD
60
Les utilisateurs d’un SGBD (suite)
Qu’est-ce qu’un SGBD ?

Développeur d’applications





Contexte de travail : niveau externe et conceptuel
Utilise le LMD + LPG
Écrit des programmes pour interroger, mettre à jour et traiter les
données
Connaît les schémas logiques et physiques
Utilisateur terminal



Contexte de travail : niveau externe
« Averti »: interroge la BD en utilisant un LMD
« Naïf »: utilise les programmes d’application
61
Téléchargement