Vous êtes sur la page 1sur 60

1.

Introduction

OlivierCur [ocure@univ-mlv.fr]

IBM DB2

OlivierCur [ocure@univ-mlv.fr]

Relational
Object Relational Column stores / data warehouse

IBM DB2

Embedded

Memory centric

Oracle TenTimes SAP BI Accelerator

Object

XML

Network IDMS Hierarchy IBM IMS

10

OlivierCur [ocure@univ-mlv.fr]

RDBMS market
2007: US $ 18.8billion 5 vendors take up 90% of the market
Oracle 44% IBM DB2 21% Microsoft SQL Server 18.5% Sybase 3.5% Teradata 3%

11

OlivierCur [ocure@univ-mlv.fr]

Key Value stores

Graph databases

Voldemort Dynomite TokyoCabinet Scalaris Amazon Dynamo & SimpleDB Document databases Terrastore Column family databases Google BigTable

12

OlivierCur [ocure@univ-mlv.fr]

Pourquoi tudier les bases de donnes


Une fondation thorique applique des besoins et problmes rels et concrets. Regroupe de nombreuses notions informatiques : OS, programmation, logique, multimdia, intelligence artificielle, rseaux. Intrt grandissant pour les technologies des BD :
Industrie : data mining, data warehouse, customer relationship mgmt, etc.. Scientifique : gnme, digital libraries et le web, etc.. Base de donnes multimdia, base de donnes et XML (NXD).

OLTP vs OLAP; OLAP et Web


13

OlivierCur [ocure@univ-mlv.fr]

Base de donnes (BD)


Une base de donnes (database) est un ensemble structur et cohrent de donnes enregistres avec le minimum de redondance pour satisfaire simultanment plusieurs utilisateurs de manire slective et dans un temps opportun.

14

OlivierCur [ocure@univ-mlv.fr]

Systme de gestion de base de donnes (SGBD)


Un ensemble de logiciels permettant la cration et la maintenance de bases de donnes. Un SGBD (database Management System -DBMS)doit permettre : la description, l'organisation et la gestion des donnes sur les mmoires secondaires. la recherche, la slection et la modification des donnes. la manipulation des reprsentations abstraites des donnes, indpendamment de leur organisation et de leur implantation sur les supports physiques.
15

OlivierCur [ocure@univ-mlv.fr]

Caractristiques des SGBD


Structure (types et comportements des donnes). Persistence des donnes (mmoire secondaire). Accs aux donnes (langage dclaratif pour les requtes, langage procdural de programmation). Performance (accs et stockage des donnes). Partage ( accs concurrentiel et transactions) Volume important de donnes Scurit et reprise sur pannes
16 OlivierCur [ocure@univ-mlv.fr]

Caractristiques des SGBD


Indpendance physique
L'utilisation des donnes est indpendante de l'organisation physique (support de stockage et mthode d'accs). La modification de l'organisation physique des donnes ne doit pas entrainer de modifications dans les programmes accdant aux donnes.

Indpendance logique
L'utilisation des donnes est indpendante de la structure logique. Une modification du schma conceptuel ne doit pas entrainer la modification des programmes.
17 OlivierCur [ocure@univ-mlv.fr]

Architecture ANSI /SPARC


Trois niveaux : Niveau interne Niveau Conceptuel Niveau externe
Schma interne
mapping conceptuel/ interne

Schma conceptuel

mapping externe /conceptuel

Schma Schma externe #1 externe #2

18

ANSI : American National Standards Institute SPARC : Standard Planning and Requirments Committee

OlivierCur [ocure@univ-mlv.fr]

Architecture fonctionnelle
Analyseur Analyseur Metabase Metabase Contrleur Contrleur
Analyse syntaxique, smantique Gestion des schmas

Modification des requtes Contrle d'intgrit Contrle d'autorisation Ordonnancement Optimisation Elaboration du plan Excution du plan Mthodes d'accs Contrle de la concurrence Atomicit des transactions

Optimiseur Optimiseur

Executeur Executeur DB
19

OlivierCur [ocure@univ-mlv.fr]

2. Modle entitassociation

20

OlivierCur [ocure@univ-mlv.fr]

Etape de dveloppement d'une base de donnes


Cahier des charges (besoin des utilisateurs, que doit grer la bd). Schma conceptuel (le plus souvent dans le modle EA). Schma logique (traduire le modle EA dans le modle de la base de donnes). Ajustement de schma (normalisation, consistence). Schma physique (indexes, organisation sur le disque). Scurisation
21 OlivierCur [ocure@univ-mlv.fr]

Etape de dveloppement d'une base de donnes (2)


extrait de "Fundamentals of Database Systems 4th edition", Elmasri & Navathe, Addison-Wesley

22

OlivierCur [ocure@univ-mlv.fr]

Entit et proprit
Une entit est similaire la notion d'objet. Elle dcrit une chose du monde. Un type d'entit est similaire la notion de classe, elle dfinit la structure commune un ensemble d'entits. Exemple : les tudiants. Une proprit correspond un tat. Les valeurs des proprits dcrivent une entit. Reprsentation graphique dans un diagramme EA : Une entit dans un rectangle Une proprit dans une forme ovale.
23 OlivierCur [ocure@univ-mlv.fr]

Diagramme EA

24

OlivierCur [ocure@univ-mlv.fr]

Proprits identifiantes
C'est l'ensemble des proprits qui ne peuvent appartenir plusieurs entits. La valeur doit dont tre fixe pour chaque entit. Cette proprit est souligne dans le diagramme EA.

25

OlivierCur [ocure@univ-mlv.fr]

Association
Une association est un lien entre deux ou plusieurs entits. Un type d'association est une collection d'associations similaires. Un type d'association A va lier des types d'entits E1, ..,En de manire que chaque association dans A implique les entits e1 E1, e2 E2, ..., en En. Rprsentation sous la forme d'un losange.

26

OlivierCur [ocure@univ-mlv.fr]

Type d'entit et type d'association

27

OlivierCur [ocure@univ-mlv.fr]

Association(2)
Un type d'association peut avoir ses propres attributs.

28

OlivierCur [ocure@univ-mlv.fr]

Cardinalit
Les cardinalits permettent de mettre en vidence, le nombre minimum (maximum) d'instances d'un type d'entit qui sont en relation avec une instance d'un autre type d'entit. Les cardinalits sont reprsentes sous la forme d'un couple de valeurs min, max. min {0,1} et max {1, n}

29

OlivierCur [ocure@univ-mlv.fr]

Diagramme ER avec cardinalits


Un type d'association peut avoir ses propres attributs.

30

OlivierCur [ocure@univ-mlv.fr]

Association ternaire
Si chaque lve participe toutes les sances de TD :

Comment faire lorsque les tudiants ne sont pas tenus de suivre l'intgralit des TD des cours.
31 OlivierCur [ocure@univ-mlv.fr]

Association ternaire (2)

32

OlivierCur [ocure@univ-mlv.fr]

Association n-aire

Un mdecin (ou un patient) particulier peut ne pas participer la relation. Chaque instance de Prescription apparat une fois et une fois seulement dans une instance de la relation ordonnance. Une instance de mdicament n'apparat au plus qu'une fois par ordonnance.

33

OlivierCur [ocure@univ-mlv.fr]

Association rcursive

rle

34

OlivierCur [ocure@univ-mlv.fr]

Association et hritage
On dfinir des hirarchies au niveau des types d'entit. On utilise alors une association du type is -a.

35

OlivierCur [ocure@univ-mlv.fr]

Un exemple
Une bibliothque et sa gestion des emprunts : Un ouvrage est caractris par un numro unique, un titre, un auteur et un diteur. Un ouvrage est dcrit par un ensemble de mots qui indiquent les sujets qui sont traits. Le bibliothque dispose d'un ou plusieurs exemplaires de chaque ouvrage. Un exemplaire est identifi par un numro et caractris par une date d'achat. Un emprunteur est identifi par un numro , son nom et son adresse.
36 OlivierCur [ocure@univ-mlv.fr]

Diagramme EA de la gestion d'une bibliothque

37

OlivierCur [ocure@univ-mlv.fr]

Bilan du modle EA
Avantages : Uniquement 3 concepts : entit, association et attribut. Reprsentation graphique intuitive et rapide. Inconvnients : Non-dterministe, pas de rgle absolue pour dterminer ce qui est entit, attirbut ou association. Absences de contraintes d'intgrit, structures complexes.
OlivierCur [ocure@univ-mlv.fr]

38

3. Le modle relationnel

39

OlivierCur [ocure@univ-mlv.fr]

Modle de donnes (data model)


Un ensemble de concepts permettant de dcrire la structure d'une base de donnes : types de donnes, relations, contraintes, oprations (langage de dfinition et de manipulation des donnes). smantique.

40

OlivierCur [ocure@univ-mlv.fr]

Quelques modles de donnes


Evolution dans le temps : systme de fichiers (50s) modle hirarchique( 60s) :IMS modle rseau (70s): Codasyl, IDMS modle relationnel (80s): Oracle, Sybase,DB2,.. modle orient objet (90s): Versant, Gemstone, O2 modle objet-relationnel (90s) : Oracle, DB2, SQLServer, PostgreSQL modle semi-structur (htrognit, XML).
41

Le modle relationnel est le plus populaire

OlivierCur [ocure@univ-mlv.fr]

Systme de fichiers
Jusqu'au milieu des annes 60. Problmes : Redondance des donnes Problmes lors de la mise--jour. Pas de modle abstrait des donnes Ncessite une connaissance sur l'organisation du stockage Il n'existe pas un langage de requtes standard.

42

OlivierCur [ocure@univ-mlv.fr]

Bases de donnes fondes sur le modle hirarchique


Dveloppement par North American Rockwell et IBM : IMS (Information Management Systel) Bas sur une structure arborescente Problmes Les changements dans les structures de donnes (de la BD) imposent des modifications dans les programmes qui accdent aux donnes. Familiarisation des programmeurs avec la structure de la base de donnes.

43

OlivierCur [ocure@univ-mlv.fr]

Bases de donnes fondes sur le modle rseau


Une extension du modle de donnes du modle hirarchique. Standardisation en 1971 par le groupe CODASYL (COnference on DAta SYstems Languages). Avantage : Implmentation des relations n:m. Problme : La navigation de la structure est encore plus complexe que dans le modle hirarchique.

44

OlivierCur [ocure@univ-mlv.fr]

Bases de donnes fondes sur le modle relationnel


Propos par E.F. Codd qui travaillait chez IBM IBM se concentre sur IMS et ignore plus ou moins le modle rseau. IBM lance l'implmentation d'un SGBD sur le modle relationnel. Entre temps, J.L. Ellison, partir des articles de Codd, cre une start-up qui va vendre des SGBD bases sur le modle relationnel : Oracle.

45

OlivierCur [ocure@univ-mlv.fr]

Modle relationnel
Bas sur la notion d'ensemble (set) collection d'lment de mme type pas d'ordre pour les enregistrements ordonnancement des attributs dans une relation pas de duplications des enregistrements On parle alors de SGBDR (RDBMS)

46

OlivierCur [ocure@univ-mlv.fr]

Domaine de valeurs
Un domaine de valeurs correspond un ensemble de valeurs. Par exemple les entiers, les rels, etc.. Le produit cartsien (x) de n domaines est l'ensemble de toutes les combinaisons des lments de ces ensembles. Exemple : D1 = { a, b} et D2 = {a, e} D1 x D2 = {(a,a),(a,e),(b,a),(b,e) }

47

OlivierCur [ocure@univ-mlv.fr]

Relation
Une relation est un sous-ensemble du produit cartsien d'une liste de domaines. Chaque relation est identifie par un nom. Reprsentation sous la forme d'une table 2 dimensions : des colonnes, attributs. des lignes, enregistrements ou n-uplets.

48

OlivierCur [ocure@univ-mlv.fr]

Attribut
Un attribut prend ses valeurs dans domaine de valeurs. Un attribut est identifi par un nom. Exemple :
titre Alien The thing Volte-face Pulp Fiction anne nomDir prnomDir anneNaissDir 1979 1982 1997 1995 Scott Tarantino Carpenter Woo Tarantino Ridley Quentin John John Quentin 1943 1963 1948 1946 1963

Reservoir Dogs 1992

49

OlivierCur [ocure@univ-mlv.fr]

Cls
Cl : un ensemble d'attributs dont le regroupement des valeurs identifie sans ambiguit un n-uplet (tuple). Cl candidate (candidate key): une cl pour laquelle aucun sous-ensemble n'est une cl. Une cl minimale. Cl primaire (primary key): une cl candidate slectionne pour tre la cl principale d'une relation. Une cl primaire par relation.

50

OlivierCur [ocure@univ-mlv.fr]

Cl externe
Une cl externe (foreign key) est un ensemble d'attributs dans une relation qui correspondent exactement la cl primaire d'une autre relation. Le nom des attributs ne doivent pas ncessairement correspondre mais les domaines doivent tre identiques.

51

OlivierCur [ocure@univ-mlv.fr]

Un exemple
Une relation sur les films
titre anne Alien 1979 Reservoir Dogs 1992 The thing 1982 Volte-face 1997 Pulp Fiction 1995 Terminator 1984 Ghosts of Mars2001 Mad Max 1979 Mad Max 2 1981 nomDir prnomDir Scott Ridley Tarantino Quentin Carpenter John Woo John Tarantino Quentin Cameron James Carpenter John Miller George Miller George anneNaissDir 1943 1963 1948 1946 1963 1954 1948 1945 1945

Quelques problmes : Supprimer un film, ajouter un ralisateur, modifier la date de naissance d'un ralisateur, Cohrence des donnes.

52

OlivierCur [ocure@univ-mlv.fr]

Un exemple (2)
Une relation sur les films
titre Alien Reservoir Dogs The thing Volte-face Pulp Fiction Terminator Ghosts of Mars Mad Max Mad Max 2

Une autre relation sur les ralisateurs

idDir nomDir prnomDir anneNaissDir Scott Ridley 1943 anne idDir1 2 Tarantino Quentin 1963 1979 1 3 Carpenter John 1948 1992 2 4 Woo John 1946 1982 3 5 Cameron James 1954 1997 4 6 Miller George 1945 1995 2 1984 5 2001 3 Problmes prcdents : Supprimer un film, ajouter un 1979 6 ralisateur, modifier la date de naissance d'un ralisateur, Cohrence des donnes. 1981 6

53

OlivierCur [ocure@univ-mlv.fr]

Schma d'une relation


Le schma d'une relation correspond l'ensemble : nom de la relation, liste des attributs (avec domaines) et indication de la cl primaire (soulign). R : A1, A2, ..., An Schma d'une base de donnes est l'ensemble des schmas des relations de la base.

54

OlivierCur [ocure@univ-mlv.fr]

Schmas, exemple
Schma des relations : film (titre, anne, idDir) realisateur (idDir, nomDir, prenomDir, anneNaisDir) Schma de la base de donnes : film, realisateur

55

OlivierCur [ocure@univ-mlv.fr]

Mapping EA - relationnel
Une type d'entit devient une relation. Une proprit devient un attribut. Une proprit identifiante devient une cl primaire. Une association devient une relation et sa reprsentation est fonction des cardinalits.

56

OlivierCur [ocure@univ-mlv.fr]

Transformation des associations en relations


Les cardinalits maximales de l'association sont de 1 : L'identifiant d'une entit est utilis comme cl trangre de l'autre relation, ou inversement.

Entity1(a1, Entity2(a2, ou Entity1(a1, Entity2(a2,


57

...) ..., #a1) ...,#a2) ...)


OlivierCur [ocure@univ-mlv.fr]

Transformation des associations en relations (2)


La cardinalit maximale d'une association est n et l'autre 1 : L'identifiant de l'entit (*:n) devient une cl trangre de l'entit (*:1).

Entity1(a1, ..., #a2) Entity2(a2, ...)


58 OlivierCur [ocure@univ-mlv.fr]

Transformation des associations en relations (3)


Les cardinalits maximales sont n : L'association devient une relation et sa cl primaire se compose des identifiants des entits.

Entity1(a1, ...) Entity2(a2, ...) Asso1(#a1,#a2, a3)


59 OlivierCur [ocure@univ-mlv.fr]

Exemple mapping relations n,m


(1) Schma relationnel Produit (numPro, nomPro) Client (numCli, nomCli) Achat (#numCli,#numPro) (2)

60

OlivierCur [ocure@univ-mlv.fr]

Transformation des associations en relations (4)


Dans le cas d'une association is-a, il est possible de voir la solution avec un point de vue orient objet (duplication des attributs de la super-classe dans la sous-classe) ou bien entit-association (duplication de l'indentifiant de la super-classe dans la sousclasse).
Personne(id_pers,nom) Vision OO : joueur(id_pers, club) arbitre(id_pers, niveau) Vision EA : joueur(id_pers, nom, club) arbitre(id_pers, nom, niveau)
61 OlivierCur [ocure@univ-mlv.fr]

Transformation des associations en relations (5)


Dans le cas d'une association rcursive, l'attribut cl primaire de la relation est duplique sous la forme d'une cl trangre.

Employe (id_emp, nom_emp, #id_emp_manager)

62

OlivierCur [ocure@univ-mlv.fr]

Exemple Bibliothque

63

OlivierCur [ocure@univ-mlv.fr]

Schmas de la bibliothque
Schma relationnel
Mot_cle (numMC , valeurMC) Ouvrage (numOuv, titreOuv, nomAuteurOuv, editeurOuv) Exemplaire (numEx, dateAchat, #numEmp, #numOuv) Emprunteur (numEmp, nomEmp, adrEmp) MotCle_Ouvrage (#numMC, #numOuv)

Schma de la base de donnes


Mot_cle, Ouvrage, Exemplaire, Emprunteur, MotCle_Ouvrage

64

OlivierCur [ocure@univ-mlv.fr]

Autre exemple
On gre des patients et des docteurs qui sont des personnes. Pour chaque personne, on stocke le NSS, le nom, le prnom, l'adresse. Pour un docteur nous avons en plus un numro d'ordre. Un docteur soigne un patient et peut lui prescrire un test (portant un nom et identifi par un numro). On dsire stocker la date et le rsultat d'un test donn pour un patient et prescrit par un docteur.

65

OlivierCur [ocure@univ-mlv.fr]

Correction exemple

66

OlivierCur [ocure@univ-mlv.fr]

Son schma relationnel


Personne(NSS, nom, prenom, adrNumRue, adrRue, adrVille) Patient (NSS) Docteur(NSS, numOrdre) Test(numTest, nomTest) Soigne (#NSSPatient,#NSSDocteur) EffectuerTest (#NSSDocteur, #NSSPatient, #NumTest, date, resultat)

67

OlivierCur [ocure@univ-mlv.fr]