Transcript
Page 1: Bases de données  relationnelles

Bases de données relationnelles

Nguyen Tuan Loc

Page 2: Bases de données  relationnelles

2

Résumé du cours précédent

Page 3: Bases de données  relationnelles

3

Chirurgie

Psychiatrie

Systèmes de fichiers Caractéristiques

Comptabilité

Consultations

Problèmes

Page 4: Bases de données  relationnelles

4Format des fichiers CaractéristiquesPlusieurs applications plusieurs formats

plusieurs langages

Problèmes Difficultés de gestion

DupontSymptomes : yTurlututu : sqjSymptomes : yTurlututu : sddAnalyses : xxx

DupondTurlututusqjskSymptom: yyyy Analyses xxxx

TurlututudhjsdAnalyses :xx

DuipontTurlututu : sq

Symptomyyyy Analysesxxxx

Turlututudhjsd

Duhpon

Symptomes : yy Analyses : xxxx

Symptomes : yy

Page 5: Bases de données  relationnelles

5Redondance (données) CaractéristiquesPlusieurs applications plusieurs formats

plusieurs langages

Redondance de données

Problèmes Difficultés de gestion Incohérence des données

DupontSymptomes : yTurlututu : sqjSymptomes : yTurlututu : sddAnalyses : xxx

DupondTurlututusqjskSymptom: yyyy Analyses xxxx

TurlututudhjsdAnalyses :xx

DuipontTurlututu : sq

Symptomyyyy Analysesxxxx

Turlututudhjsd

Duhpon

Symptomes : yy Analyses : xxxx

Symptomes : yy

Page 6: Bases de données  relationnelles

6Interrogations CaractéristiquesPlusieurs applications plusieurs formats

plusieurs langages

Redondance de données

Pas de facilité d’interrogation Question développement

Problèmes Difficultés de gestion Incohérence des données Coûts élevés Maintenance difficile

DupontSymptomes : yTurlututu : sqjSymptomes : yTurlututu : sddAnalyses : xxx

DupondTurlututusqjskSymptom: yyyy Analyses xxxx

TurlututudhjsdAnalyses :xx

DuipontTurlututu : sq

Symptomyyyy Analysesxxxx

Turlututudhjsd

Duhpon

Symptomes : yy Analyses : xxxx

Symptomes : yy

Ch

iru

Sof

t

Con

sultS

oft Psy

chia

Sof

t

Com

ptaS

oft

Page 7: Bases de données  relationnelles

7Pannes ??? CaractéristiquesPlusieurs applications plusieurs formats

plusieurs langages

Redondance de données

Pas de facilité d’interrogation Question développement

Redondance de code

Problèmes Difficultés de gestion Incohérence des données Coûts élevés Maintenance difficile Gestion de pannes ???

DupontSymptomes : yTurlututu : sqjSymptomes : yTurlututu : sddAnalyses : xxx

DupondTurlututusqjskSymptom: yyyy Analyses xxxx

TurlututudhjsdAnalyses :xx

DuipontTurlututu : sq

Symptomyyyy Analysesxxxx

Turlututudhjsd

Duhpon

Symptomes : yy Analyses : xxxx

Symptomes : yy

Ch

iru

Sof

t

Con

sultS

oft Psy

chia

Sof

t

Com

ptaS

oft

Page 8: Bases de données  relationnelles

8Partage de données CaractéristiquesPlusieurs applications plusieurs formats

plusieurs langages

Redondance de données

Pas de facilité d’interrogation Question développement

Redondance de code

Problèmes Difficultés de gestion Incohérence des données Coûts élevés Maintenance difficile Gestion de pannes ??? Partage des données ???

DupontSymptomes : yTurlututu : sqjSymptomes : yTurlututu : sddAnalyses : xxx

DupondTurlututusqjskSymptom: yyyy Analyses xxxx

TurlututudhjsdAnalyses :xx

DuipontTurlututu : sq

Symptomyyyy Analysesxxxx

Turlututudhjsd

Duhpon

Symptomes : yy Analyses : xxxx

Symptomes : yy

Ch

iru

Sof

t

Con

sultS

oft Psy

chia

Sof

t

Com

ptaS

oft

Page 9: Bases de données  relationnelles

9Confidentialité CaractéristiquesPlusieurs applications plusieurs formats

plusieurs langages

Redondance de données

Pas de facilité d’interrogation Question développement

Redondance de code

Problèmes Difficultés de gestion Incohérence des données Coûts élevés Maintenance difficile Gestion de pannes ??? Partage des données ??? Confidentialité ???

DupontSymptomes : yTurlututu : sqjSymptomes : yTurlututu : sddAnalyses : xxx

DupondTurlututusqjskSymptom: yyyy Analyses xxxx

TurlututudhjsdAnalyses :xx

DuipontTurlututu : sq

Symptomyyyy Analysesxxxx

Turlututudhjsd

Duhpon

Symptomes : yy Analyses : xxxx

Symptomes : yy

Ch

iru

Sof

t

Con

sultS

oft Psy

chia

Sof

t

Com

ptaS

oft

Page 10: Bases de données  relationnelles

10

L’approche ‘‘Bases de données’’ (1)

• Modélisation des données Eliminer la redondance de données Centraliser et organiser correctement les données Plusieurs niveaux de modélisation Outils de conception

• Logiciel «Système de Gestion de Bases de Données»Factorisation des modules de contrôle des applications

- Interrogation, cohérence, partage, gestion de pannes, etc…

Administration facilitées des données

Page 11: Bases de données  relationnelles

11L’approche ‘‘Bases de données’’ (2)

BDVIII - Concurrence d’accès

VII - Gestion des pannes

I- Indépendance Physique

IX - Gestion de la confidentialité

II- Indépendance Logique

VI - Gestion de la cohérence

X - Standards

V - Optimisation des questions

III – Langage de manipulation

IV - Gestion des vues

Page 12: Bases de données  relationnelles

12

Réel

Modèle conceptuel

• Indépendant du modèle de données

• Indépendant du SGBD

Modèle logique

• Dépendant du modèle de données

• Indépendant du SGBD

Codasyl Relationnel Objet XML

Modèle Physique

• Dépendant du modèle de données

• Dépendant du SGBD

• Organisation physique des données

• Structures de stockage des données

• Structures accélératrices (index)

Modélisation du réel

Médecin effectue Visite

Page 13: Bases de données  relationnelles

13

Champs, attributs, colonnes

Champs, attributs, colonnes

Champs, attributs, colonnes

Modélisation Relationnelle (1)

Id-D Nom Prénom

1 Dupont

Pierre

2 Durand Paul

3 Masse Jean

…. …….. ……

Relation ou table

Tuples, lignes ou n-uplets

Tuples, lignes ou n-uplets

Tuples, lignes ou n-uplets

Tuples, lignes ou n-uplets

Page 14: Bases de données  relationnelles

14

Modélisation Relationnelle (2)

DocteursId-D Nom Prénom

1 Dupont

Pierre

2 Durand Paul

3 Masse Jean

…. …….. ……

VisitesId-D Id-P Id-V Date Prix

1 2 1 15 juin 250

1 1 2 12 août 180

2 2 3 13 juillet

350

2 3 4 1 mars 250

PatientsId-P Nom Prénom Ville

1 Lebeau Jacques Paris

2 Troger Zoe Evry

3 Doe John Paris

4 Perry Paule Valenton

…. ……. ……. …….

PrescriptionsId-V Ligne Id-M Posologie

1 1 12 1 par jour

1 2 5 10 gouttes

2 1 8 2 par jour

2 2 12 1 par jour

2 3 3 2 gouttes

…. …. …. …………

MédicamentsId-M Nom Description

1 Aspegic 1000

……………………………..

2 Fluisédal ……………………………..

3 Mucomyst ……………………………..

…. …….. ……………………………..

Page 15: Bases de données  relationnelles

15

I - Indépendance Physique

• Indépendance des programmes d'applications vis à vis du modèle physique :

– Possibilité de modifier les structures de stockage (fichiers, index, chemins d'accès, …) sans modifier les programmes;

– Ecriture des applications par des non-spécialistes des fichiers et des structures de stockage;

– Meilleure portabilité des applications et indépendance vis à vis du matériel.

Page 16: Bases de données  relationnelles

16

II - Indépendance Logique

Les applications peuvent définir des vues logiques de la BD

…………..….

PrénomNomId-D

JeanMasse3

PaulDurand2

PierreDupont1

Docteur

…………..….

PrénomNomId-D

JeanMasse3

PaulDurand2

PierreDupont1

Docteur

Visites

2

2

1

1

Id-D

1 mars

13 juillet

12 août

15 juin

Date

250

350

180

250

Prix

4

3

2

1

Id-V

3

2

1

2

Id-P

Visites

2

2

1

1

Id-D

1 mars

13 juillet

12 août

15 juin

Date

250

350

180

250

Prix

4

3

2

1

Id-V

3

2

1

2

Id-P

…….…….….

PaulePerry4

PrénomNomId-P

JohnDoe3

ZoeTroger2

JacquesLebeau1

Patients

…….…….….

PaulePerry4

PrénomNomId-P

JohnDoe3

ZoeTroger2

JacquesLebeau1

Patients

…………….….….

2 gouttes332

12

8

5

12

Id-M

1 par jour

2 par jour

10 gouttes

1 par jour

Posologie

2

1

2

1

Ligne

2

2

1

1

Id-V

Prescription

…………….….….

2 gouttes332

12

8

5

12

Id-M

1 par jour

2 par jour

10 gouttes

1 par jour

Posologie

2

1

2

1

Ligne

2

2

1

1

Id-V

Prescription

……………………………..……..….

DescriptionNomId-M

……………………………..Mucomyst3

……………………………..Fluisédal2

……………………………..Aspegic 10001

Médicament

……………………………..……..….

DescriptionNomId-M

……………………………..Mucomyst3

……………………………..Fluisédal2

……………………………..Aspegic 10001

Médicament

Gestion des médicaments Cabinet du Dr. Masse

Visites

2

1

Id- D

1 mars

15 juin

Date

250

250

Prix

4

1

Id- V

3

2

Id-P

Visites

2

1

Id- D

1 mars

15 juin

Date

250

250

Prix

4

1

Id- V

3

2

Id-P

…….…….….

PrénomNomId-P

ZoeTroger2

JacquesLebeau1

Patients

…….…….….

PrénomNomId-P

ZoeTroger2

JacquesLebeau1

Patients

…………….….….

5

12

Id- M

10 gouttes

1 par jour

Posologie

2

1

Ligne

1

1

Id-V

Prescription

…………….….….

5

12

Id- M

10 gouttes

1 par jour

Posologie

2

1

Ligne

1

1

Id-V

Prescription

……………………………..……..….

DescriptionNomId -M

……………………………..Mucomyst3

……………………………..Fluisédal2

……………………………..Aspegic 10001

Médicament

……………………………..……..….

DescriptionNomId -M

……………………………..Mucomyst3

……………………………..Fluisédal2

……………………………..Aspegic 10001

Médicament

Nombre_Médicaments

Id-M Nom Description Nombre

1 Aspegic 1000 …………………………….. 30

2 Fluisédal …………………………….. 20

3 Mucomyst …………………………….. 230

…. …….. …………………………….. …..

Page 17: Bases de données  relationnelles

17

Avantages de l’indépendance logique

• Possibilité pour chaque application d'ignorer les besoins des autres (bien que partageant la même BD).

• Possibilité d'évolution de la base de données sans réécriture des applications :– ajout de champs, ajout de relation, renommage de champs.

• Possibilité d'intégrer des applications existantes sans modifier les autres.

• Possibilité de limiter les conséquences du partage : Données confidentielles.

Page 18: Bases de données  relationnelles

18

III - Manipulation aisée

• La manipulation se fait via un langage déclaratif

– La question déclare l’objectif sans décrire la méthode

– Le langage suit une norme commune à tous les SGBD

– SQL : Structured Query Langage

• Syntaxe (aperçu !)

Select <Liste de champs ou de calculs à afficher>

From <Liste de relations mises en jeu>

Where <Liste de prédicats à satisfaire>

Group By <Groupement éventuel sur un ou plusieurs champs>

Order By <Tri éventuel sur un ou plusieurs champs>

Page 19: Bases de données  relationnelles

19

Exemple de question SQL (1)

• Nom et description des médicaments de type aspirine

Select Nom, Description

From Médicaments

Where Type = ‘Aspirine’

Page 20: Bases de données  relationnelles

20

Exemple de question SQL (2)

• Patients parisiens ayant effectués une visite le 15 juin

Select Patients.Nom, Patients.Prénom

From Patients, Visites

Where Patients.Id-P = Visites.Id-P

and Patients.Ville = ’Paris’

and Visites.Date = ’15 juin’

Page 21: Bases de données  relationnelles

21

Exemple de question SQL (3)

• Dépenses effectuées par patient trié par ordre décroissant

Select Patients.Id-P, Patients.Nom, sum(Prix)

From Patients, Visites

Where Patients.Id-P = Visites.Id-P

GroupBy Patients.Id-P, Patients.Nom

OrderBy sum(Prix) desc

Page 22: Bases de données  relationnelles

22

IV – Gestion des vues• Les vues permettent d’implémenter l’indépendance

logique en permettant de créer des objets virtuels

• Vue = Question SQL stockée

• Le SGBD stocke la définition et non le résultat

• Exemple : la vue des patients parisiens

Create View Parisiens as (

Select Nom, Prénom

From Patients

Where Patients.Ville = ’Paris’ )

Page 23: Bases de données  relationnelles

23

Gestion des vuesLe SGBD transforme la question sur les vues en question sur les relations de base

Question Q sur des vues

Définition des vues

Gestionnaire de Vues

Question Q’ sur les relations

de base

Page 24: Bases de données  relationnelles

24

V –Exécution et Optimisation

• Traduction automatique des questions déclaratives en programmes procéduraux : Utilisation de l’algèbre relationnelle

• Optimisation automatique des questions Utilisation de l’aspect déclaratif de SQL Gestion centralisée des chemins d'accès (index, hachages, …) Techniques d’optimisation poussées

• Economie de l'astuce des programmeurs– milliers d'heures d'écriture et de maintenance de logiciels.

Page 25: Bases de données  relationnelles

25

Sélection

Patients de la ville de Paris

PatientsId-P Nom Prénom Ville

1 Lebeau Jacques Paris

2 Troger Zoe Evry

3 Doe John Paris

4 Perry Paule Valenton

PatientsId-P Nom Prénom Ville

1 Lebeau Jacques Paris

2 Troger Zoe Evry

3 Doe John Paris

4 Perry Paule Valenton

Page 26: Bases de données  relationnelles

26

Projection

PatientsId-P Nom Prénom Ville

1 Lebeau Jacques Paris

2 Troger Zoe Evry

3 Doe John Paris

4 Perry Paule Valenton

Nom et prénom des patients

PatientsId-P Nom Prénom Ville

1 Lebeau Jacques Paris

2 Troger Zoe Evry

3 Doe John Paris

4 Perry Paule Valenton

Page 27: Bases de données  relationnelles

27

JointurePatients

Id-P Nom Prénom Ville

1 Lebeau Jacques Paris

2 Troger Zoe Evry

3 Doe John Paris

4 Perry Paule Valenton

VisitesId-D Id-P Id-V Date Prix

1 2 1 15 juin 250

1 1 2 12 août 180

2 2 3 13 juillet

350

2 3 4 1 mars 250

Id-P Nom Prénom Ville Id-D Id-P Id-V Date Prix

1 Lebeau Jacques Paris 1 1 2 12 août 180

2 Troger Zoe Evry 1 2 1 15 juin 250

2 Troger Zoe Evry 2 2 3 13 juillet

350

3 Doe John Paris 2 3 4 1 mars 250

Patients et leurs visites

Page 28: Bases de données  relationnelles

28

Exemple de plan d’exécution

Select Patients.Nom, Patients.Prénom

From Patients, Visites

Where Patients.Id-P = Visites.Id-P

and Patients.Ville = ’Paris’

and Visites.Date = ’15 juin’

Patients Visites

Page 29: Bases de données  relationnelles

29

Plan d’exécution optimisé

Patients Visites

Visites

Patients

Page 30: Bases de données  relationnelles

30

VI - Intégrité Logique

• Objectif : Détecter les mises à jour erronées

•  Contrôle sur les données élémentaires – Contrôle de types: ex: Nom alphabétique

– Contrôle de valeurs: ex: Salaire mensuel entre 5 et 50kf

• Contrôle sur les relations entre les données– Relations entre données élémentaires:

• Prix de vente > Prix d'achat

– Relations entre objets:• Un électeur doit être inscrit sur une seule liste électorale

Page 31: Bases de données  relationnelles

31

Contraintes d’intégrité

• Avantages :– simplification du code des applications– sécurité renforcée par l'automatisation– mise en commun des contraintes

• Nécessite :– un langage de définition de contraintes d'intégrité– la vérification automatique de ces contraintes

Page 32: Bases de données  relationnelles

32

Exemples de contrainte• Contraintes d’intégrité référentielles

DocteursId-D Nom Prénom

1 Dupont

Pierre

2 Durand Paul

3 Masse Jean

…. …….. ……

VisitesId-D Id-P Id-V Date Prix

1 2 1 15 juin 250

1 1 2 12 août 180

2 2 3 13 juillet

350

2 3 4 1 mars 250

PrescriptionsId-V Ligne Id-M Posologie

1 1 12 1 par jour

1 2 5 10 gouttes

2 1 8 2 par jour

2 2 12 1 par jour

2 3 3 2 gouttes

…. …. …. …………

Page 33: Bases de données  relationnelles

33

VII - Intégrité Physique• Motivations : Tolérance aux fautes

– Transaction Failure : Contraintes d'intégrité, Annulation– System Failure : Panne de courant, Crash serveur ...– Media Failure : Perte du disque– Communication Failure : Défaillance du réseau

• Objectifs :– Assurer l'atomicité des transactions– Garantir la durabilité des effets des transactions commises

• Moyens :– Journalisation : Mémorisation des états successifs des données– Mécanismes de reprise

Page 34: Bases de données  relationnelles

34

Transaction

Etat cohérent Etat cohérentIncohérence possible...

Begin Commit

Transaction

Begin CEpargne = CEpargne - 3000 CCourant = CCourant + 3000Commit T1

Page 35: Bases de données  relationnelles

35

Atomicité et Durabilité

ATOMICITE

Begin CEpargne = CEpargne - 3000 CCourant = CCourant + 3000Commit T1

Annuler le débit !!

Panne

DURABILITE

Begin CEpargne = CEpargne - 3000 CCourant = CCourant + 3000Commit T1

S’assurer que le virement a été fait !

Crash disque

Page 36: Bases de données  relationnelles

36

VIII - Partage des données

BD

• Accès concurrent aux mêmes données

Conflits d’accès !!

Page 37: Bases de données  relationnelles

37

VIII - Partage des données

BD

• Le SGBD gère les accès concurrents

Chacun à l’impression d’être seul (Isolation)

Cohérence conservée (Verrouillage)

Page 38: Bases de données  relationnelles

38

IX – Confidentialité• Objectif : Protéger les données de la BD contre des

accès non autorisés

• Deux niveaux :– Connexion restreinte aux usagers répertoriés (mot de passe)

– Privilèges d'accès aux objets de la base

• Usagers : Usager ou groupe d’usagers

• Objets : Relation, Vue, autres objets (procédures, etc.)

Page 39: Bases de données  relationnelles

39

Puissance des droits SGBD

Id-E Nom Prénom Poste Adresse Ville Salaire

1 Ricks Jim 5485 ………. Paris 230

2 Trock Jack 1254 ………. Versailles 120

3 Lerich Zoe 5489 ………. Chartres 380

4 Doe Joe 4049 ………. Paris 160

Id-E Nom Prénom Poste

1 Ricks Jim 5485

2 Trock Jack 1254

3 Lerich Zoe 5489

4 Doe Joe 4049

Nombred’employés

MasseSalariale

4 890

Service des ressources humaines

Employés(intranet)

Public(internet)

Page 40: Bases de données  relationnelles

40

X - Standardisation• L’approche bases de données est basée sur plusieurs

standards– Langage SQL (SQL1, SQL2, SQL3)

– Communication SQL CLI (ODBC / JDBC)

– Transactions (X/Open DTP, OSI-TP)

• Force des standards– Portabilité

– Interopérabilté

– Applications multisources…

Page 41: Bases de données  relationnelles

Architecture des SGBD

Les architectures physiques de SGBD sont très liées au mode de répartition.

— BD centralisée

— BD client/serveur

— BD client/multi-serveurs

— BD répartie

— BD hétérogène

— BD mobile

Le challenge se déplace des Péta-bases aux Pico-bases.

— Péta-bases => parallélisme et grandes mémoires

— Pico-bases => faible empreinte et forte sécurité

Page 42: Bases de données  relationnelles

42

Architecture centralisée

Terminaux passifs

Mainframe

SGBD

Appli 1 Appli 2 Appli n

réseau

données

Page 43: Bases de données  relationnelles

Architecture client-serveur

Clients intelligents

serveur

SGBD

Appli 1Appli 2

Appli n réseau

donnéescode

Page 44: Bases de données  relationnelles

44

Architecture Client-Multiserveurs

SGBD 2

donnéescode

ODBC ODBC

SGBD 1

donnéescode

Appli 1

SQL SQL

SQLSQL

Page 45: Bases de données  relationnelles

Architecture répartie

SGBD 1

donnéescode

SGBD 2

donnéescode

Appli 1Appli 2

Appli n

Page 46: Bases de données  relationnelles

Architecture hétérogène

Source 1 : SGBD

donnéescode

Source 2 : serveur Web

donnéescode

Appli 1 Appli 2 Appli n

Médiateur

Page 47: Bases de données  relationnelles

Architecture mobile

Clients intelligents mobiles

serveur

SGBD

Réseau sans fil

donnéescode

Données répliquées et/ou personnelles

Page 48: Bases de données  relationnelles

48

Intelligence dans l’architecture x-tiers

Application to application(B2B/ B2C)

Web services

Web services

XML/SOAP

Architecture “n-tiers”

Evolution de l’architecture

Person to person(C2C)

Data echange

PC

PC

Architecture 1-tier

Application to person (B2C)

Web server

Web browser HTTP/HTML

Architecture 2-tiers Architecture 3-tiers

Web browser

Application to person+

(B2C)

HTTP/HTML

Web server

Databases

Page 49: Bases de données  relationnelles

49

Applications traditionnelles des SGBD

• OLTP (On Line Transaction Processing)– Cible des SGBD depuis leur existence

– Banques, réservation en ligne ...

– Très grand nombre de transactions en parallèle

– Transactions simples

• OLAP (On Line Analytical Processing)– Entrepôts de données, DataCube, Data Mining …

– Faible nombre de transactions

– Transactions très complexes

Page 50: Bases de données  relationnelles

50

Applications émergentesdes SGBD (1)

• BD et WEB – Serveurs Web dynamiques, sites marchands ...

– Plusieurs profils (OLTP, publication d’informations en ligne, hébergement de données …)

• Challenges majeurs– Gestion de données XML

– Fédération de sources de données hétérogènes

– Grilles de données

– Sécurité des données en ligne

Page 51: Bases de données  relationnelles

51

Applications émergentesdes SGBD (2)

• BD personnelles ou PME– Comptabilité– Agenda, comptes bancaires, carnet d’adresses, dossiers portables– BD embarquées sur calculateurs ultra-légers (PDA, téléphones

cellulaires, cartes à puce …)

• Challenges majeurs– Gérer la mobilité – S’adapter aux contraintes matérielles du calculateur hôte– Assurer la durabilité des données– Assurer la confidentialité des données

Page 52: Bases de données  relationnelles

52

Evolution des BD

BD d’entreprise

BD personnelles

BD ‘light’(PDA / Tél.)

PicoDBMScarte à puce

Capacité

Prix

Nombre


Top Related