intro BD

publicité
Introduction
INT
Introduction

Notion de bases de données
slide 7
 Contexte
technique
 Apport BD
 Terminologie BD
 Domaines d’application



Les modèles de données pour BD
Architecture de référence
Qu’est-ce qu’un SGBD ?
slide 27
slide 40
slide 45
6
Contexte technique BD
Notion de bases de données
Contexte technique
Structure en mémoire centrale (MC)
 Fichiers
 Bases de données

7
Structure en MC

Notion de bases de données
Contexte technique
Principes
 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)
8
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)

9
Approche fichier avec PCs
Direction des études
Appli
En Cobol
Fichiers Étudiants
et UVs
Bibliothèque
Notion de bases de données
Contexte technique
Service social
Appli
en Java
Fichiers Étudiants
et Livres
Appli
en C
Fichiers Étudiants
et Chambres
10
Approche fichiers + SGF
Notion de bases de données
Contexte technique
Application bibliothèque
Programme 1
Description du fichier des Étudiants
*2
Édition du fichier Étudiants
par ordre alpha
Programme 2
Description du fichier des Étudiants
Fichier Étudiants
Mise à jour du fichier Étudiants
via nom élève
SGF
11
Notion de bases de données
Contexte technique
Problèmes de l’approche fichier








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
12
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

13
Notion de bases de données
Contexte technique
Approche centralisée
PC Windows
BD
Appli C
Appli Cobol
PC
NT
Appli Java
Étudiants
Uvs
Livres
Chambres
SGBD
Description
BD
PC Linux
Terminaux
14
Approche client/serveur
PC Windows
BD
Appli Cobol
SGBD
PC
NT
Notion de bases de données
Contexte technique
Étudiants
Uvs
Livres
Chambres
Appli Java
Description
BD
Appli C
PC Linux
15
Apport d’une approche BD

Notion de bases de données
Apport BD
Intégration :
 Description
unique et globale des données
 Éviter les redondances
 Éviter les incohérences

Indépendance :
 Indépendance
entre données et traitements
 Séparation entre les descriptions logiques et physiques
des données
16
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 »
 Manipulation « aisée » des données
 Accès efficaces aux données
 Répartition des
des données
données et des traitements
17
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
18
Données

Une structure



Simple: prix, nom, date
Complexe: personne, document, image
Une sémantique



Notion de bases de données
Terminologie BD
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
19
Données (2)

Notion de bases de données
Terminologie BD
Des utilisateurs
 Interrogent

« Quelle était la température à paris le 1er janvier 1997 ? »
 Mettent

les données
à jour les données
« Créditer le compte de M. Monet de 1000 F »
20
Modèle de données

Notion de bases de données
Terminologie BD
Ensemble de concepts pour décrire :
 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
21
BD ET SGBD

BD :
 Collection

Notion de bases de données
Terminologie BD
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
22
Notion de bases de données
Terminologie BD
Schéma et instance d’une BD

Schéma (intention) :
 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
23
CI et Métabase

Notion de bases de données
Terminologie BD
Contrainte d’intégrité (CI):
 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 »
24
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 :



Notion de bases de données
Domaines d’application
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
25
Notion de bases de données
Domaines d’application
Classification
Volume de
données
Complexité des
traitements
Intensité du
service
 Go
Interrogation +
Mise à jour
Temps de réponse
< 2 s.
> 100 tps
Application d’aide  To
à la décision
Datewarehouse
Datamining
Interrogation
Temps de réponse
en mn ou h
Notion de tpm
Applications
transactionnelles
TPC (Transaction Processing Council) Benchmarks systèmes transactionnels
26
Modèles BD
Les modèles de données pour 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
27
Modèles BD
Modélisation des données

Modèle de données :

Ensemble de concepts pour décrire :





En général, un ensemble d’opérations est associé pour manipuler les données
Formalisme de description :




Les données
Les liens entre les données
La sémantique des données
Textuel
Graphique
Mathématique
Exemples de modèles :




Entité/association
Hiérarchique/réseau
Relationnel
Objet, relationnel-objet
28
Modèles BD
Modèle Entité/Association
[Chen 76]
code
nbH
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 29
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
30
Modèles BD
Critique du modèle Entité/Association
 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
 Avantages
 Sémantique
riche
 Extension aux concepts
objets (héritage, ...)
 Aspect visuel

 Modèle de conception
de BD
31
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
Étudiant
32
Modèles BD
Modèle hiérarchique (suite)

Schéma BD


BD


Collection d’enregistrements reliés par des pointeurs
Langage de manipulation




Structure arborescente (forêt)
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
33
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
34
Modèles BD
Modèle réseau (suite)

Schéma BD


BD




Navigationnel et procédural
Utilisation de pointeurs
Standard CODASYL 71, 78
Systèmes


Collection d’enregistrements reliés par des pointeurs
Langage de manipulation


Structure de graphe orienté acyclique (DAG)
IDS2 d’Honeywell (1975), Total de Cincom (1974), Adabas de Soft. Ag (1978)
Problèmes

Pas d’indépendance logique/physique
35
Modèles BD
Modèle relationnel
[CODD 70] « A Relational Model for Large Shared
Data Banks »
 Exemple

 Élève(num,
nom, adresse, age)
 UV(code, nbH, coord)
 Inscrit(numÉtudiant, codeUV, note)
 Livre(côte, titre, numÉtudiant, datePrêt)
 Chambre(no, prix, numÉtudiant)
36
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
37
Modèles BD
Modèle relationnel (3)

Schéma BD


BD


Ensembliste
Déclaratif
Standard international [ SQL 86, 89, 92 ou SQL2]
Prototypes de recherche


Ensemble d’enregistrements reliés par des valeurs
Langage de manipulation




Structure de relation
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

38
Modèles BD
Modèle relationnel (suite)

Avantages
 Indépendance
logique/physique
 Langage de manipulation simple
 Basé sur une théorie mathématique solide
 Standard
39
Architecture de référence
Une architecture de référence pour les
SGBD
Description des données : 3 niveaux d’abstraction
 Exemple
 Conséquences
 Conception d’une BD

40
Architecture de référence
Description des données : 3 niveaux
d’abstraction

Groupe ANSI/X3/SPARC (1975)
Schéma externe 1
….
Schéma externe n
Schéma conceptuel
Schéma physique
41
Architecture de référence
Exemple
Schéma externe pour
appli Bibliothèque
- Étudiant
- Livre
Schéma externe pour
appli Direction des études
- Étudiant
- UV
Schéma conceptuel
Schéma Physique
Schéma externe pour
appli Service social
- Étudiant
- 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
42
Architecture de référence
Conséquences

Indépendance physique
 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
43
Architecture de référence
Conception d’une BD
44
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
45
Qu’est-ce qu’un SGBD ?
But et moyens

But :
 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)
46
Qu’est-ce qu’un SGBD ?
Fonctionnalités









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
47
Qu’est-ce qu’un SGBD ?
Fonctionnalités (++)
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)

48
Qu’est-ce qu’un SGBD ?
Architecture d’un SGBD
Administrateur
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
49
Qu’est-ce qu’un SGBD ?
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
 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
50
Qu’est-ce qu’un SGBD ?
LMD

Objectif


Style procédural







Interroger et mettre à jour les données (extraire, ajouter, supprimer, modifier )
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 »




51
Qu’est-ce qu’un SGBD ?
Interface avec un LPG

Problème d’un LMD



Solution



Uniquement interrogation et mise à jour des données
Pas de « calculs » sur les données
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)
52
Qu’est-ce qu’un SGBD ?
Java et 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)

53
Qu’est-ce qu’un SGBD ?
Notion de transaction


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;
54
Qu’est-ce qu’un SGBD ?
Propriétés des transactions
A : Atomicity
 C : Consistency
 I : Isolation
 D : Durability

55
Qu’est-ce qu’un SGBD ?
Les utilisateurs d’un SGBD

Le concepteur
 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 met à jour les schémas logiques
 Définit les CI + Vues + droits d’accès
 Définit les schémas physiques (structures de
stratégies d’accès)
 Utilise le LDD et DD
stockage +
56
Qu’est-ce qu’un SGBD ?
Les utilisateurs d’un SGBD (suite)

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
57
Téléchargement