You are on page 1of 75

Systmes de Gestion de Bases de Donnes

MSBM 2003-2004 Informatique mdicale et Technologies de la Communication Laboratoire de Sant Publique et dInformatique mdicale Facult de Broussais Htel Dieu Paris V INSERM ERM 202 Dr C. Le Bozec christel.lebozec@spim.jussieu.fr

Plan

Dfinition : Quest ce quun SGBD Objectifs Modles de SGBD Modle relationnel


Structure logique Algbre relationnel


Les langages de description des donnes (LDD) Les langages de manipulation des donnes (LMD)

SGBD : dfinition, objectifs

Base de donnes Collection structure et non redondante de donnes et de relations reprsentant un univers donn

Stockes sur des supports accessibles par ordinateur

Systme permettant

Laccumulation et la mise jour de donnes de manire structure

Ex : patients, mdecins, sjours hospitaliers

Lextraction de sous-ensembles de ces donnes par lintermdiaire dun langage de requte

Ex : liste de patients ayant rendez-vous

Base de donnes

Collection structure et non redondante de donnes et de relations reprsentant un univers donn

Ex : patients, mdecins, sjours hospitaliers

Stockes sur des supports accessibles par ordinateur Destine servir de nombreuses applications

Systme de Gestion de Base de Donnes (SGBD)

Ensemble de logiciels ( programmes ) permettant un utilisateur dinteragir avec la base de donnes


Interface Interface

SGBD

Description de donnes

Accumulation et la mise jour de donnes de manire structure

Ex : patients, mdecins, sjours hospitaliers

Manipulation des donnes

Extraction de sous-ensembles de ces donnes par lintermdiaire dun langage logique (de requte)

Ex : liste de patients ayant rendez-vous

Accs aux informations par spcification de ces informations sans rfrence leur localisation physique

Intgrit, gestion des transactions

Stabilit (temps), reconstitution aprs incident

Scurit, contrle daccs et de concurrence

Schma conceptuel/externe/interne
Modles externes Descriptions externes Visions partielles Modle conceptuel (schma) Description logique Vision globale Modle interne (base physique) Description physique Structure de stockage

Utilisateur 1 Interface Utilisateur 2 Interface

Les niveaux de SGBD

Vue externe (programmeur)

Arrangement particulier des donnes correspondant la vision dun programmeur

Vue conceptuelle (concepteur)

Analyse des besoins et conception du modle (entits/association)

Ensemble des informations : type, cohrence, structuration (liens logiques indpendants de toute reprsentation en machine) Stockage des donnes sur des supports matriels (disques) Performance : optimisation Scurit : gestion des accs

Vue interne, physique (administrateur)


SGBD : principes

Indpendance physique des programmes et des donnes

Permet de changer les schmas internes sans changer le programme dapplication Permet de modifier les schmas conceptuels sans changer le programme dapplication
Interface Interface

Indpendance logique

Utilisateur 1

Utilisateur 2

SGBD / Fichiers : redondance

SGBD - Historique

1960 : Systmes de gestion de fichiers


Fichiers relis par des pointeurs et accds par des cls 1965 : sparer les donnes des traitements

IDS.1 (Honeywell), IMS.1 (IBM) : programme Appollo

1970 : Systme rseaux et hirarchiques (1re gnration)


Nuds dun graphe relis par des pointeurs Langages navigationnels (recommandations CODASYL)

IDMS, IDS.2, IMS.2

SGBD - Historique

1980 : Systmes relationnels (2me gnration)

Donnes reprsentes sous forme de relations entre domaines de valeurs stockes dans des tables Langage non procdural standardis : Structured Query Langage (SQL)

Oracle, Ingres, Sybase, SQL Server

SGBD : Historique

1990 : Systmes orients objets (3me gnration)

Extension objet des systmes relationnels

Structuration conjointe des programmes et des donnes en types, avec possibilit de dfinir des sous-types par hritage Conservation dune structure tabulaire des objets, interrogation type SQL tendue aux objets

Oracle 8, Informix, Universal Server Object store, O2

4me gnration

SGBD Historique : Architectures

1970 : Client-serveur

Serveur de donnes grant les donnes partages et le code du SGBD Client supportant les applications et la prsentation

Architectures distribues

Modles de SGBD

Les SGBD utilisent un modle de reprsentation de donnes

Modle dune partie du monde rel

Les donnes nont de signification qu travers ce modle conceptuel

Modliser : dcrire lanatomie et la physiologie

Anatomie : proprits structurelles


Mode dorganisation des donnes entre elles en catgories Catgories et relations : schma Ex : organisation hirarchique, en rseau

Physiologie : proprits comportementales

Restrictions sur un schma : les contraintes

Modles de SGBD

Modle daccs

Modlisation des objets stocks dans des fichiers et relis entre eux par des pointeurs Avantages

Systmes performants, proches du rseau physique Langage de manipulation des donnes complexe (navigation) Faible indpendance logique et physique Inadapt comme modle conceptuel et externe

Inconvnients

Modles de SGBD

Modle entit association


1976 : Chen Simplifie la phase danalyse

perception du monde rel sous forme dentits relis par des associations

Modle relationnel

1972 : F.Codd (IBM) Commercialisation : 1980 Thorie des ensembles

Algbre relationnel : ensemble de relations

Modles de SGBD : avantages du modle relationnel

Simplicit

Visualisation graphique des entits et des associations pour concevoir la base Reprsentation des donnes sous forme de tableaux Assure par le stockage cohrent Accs facile et rapide pour la manipulation des donnes Interrogation ensembliste (requtes possibles sans prciser les ordres lmentaires de navigation dans la base, exprime laide de formules de la logique du 1er ordre) Peu de remise en cause des donnes dj stockes en cas dextension dautres applications

Intgrit

Performant

Extensibilit

Autres modles actuels


Objets XML Relationnel objet

tapes
Cahier des charges Modlisatio n Traduction Modle relationnel Modle entitsassociations Implmentation SGBDR

nonc du problme

Le SGBD doit permettre de grer


Les patients (nom, prnom) Les mdecins (nom, prnom, Ninscription) Les consultations domicile (date, diagnostic) Les hospitalisations (date, service)

Entit

Donne lmentaire

Caractrise par : nom valeur


age du patient : 10 ans Glycmie : 0,8 g/l Nom : Dupont

Agrgation

Abstraction consistant grouper des donnes lmentaires pour constituer des objets composs

Entit

Dfinition : tout objet pertinent pour lapplication

Concret ou abstrait

Malades, mdecins (acteurs) Hpital, services (structures) Organes, signes (concepts anatomiques) Signes, diagnostics (concepts pathologiques) Mdicaments, actes (procdures)

Proprits : attributs

Caractristiques intrinsques dune entit


Malade :nom, prnom, etc. Diagnostic : libell, code

Identifiant

Un ou plusieurs attributs permettant didentifier un enregistrement

Type dentit
Mdecin

Id

Nom

Prnom

Adresse

N ordre

Entit, enregistrement, occurrence, instance


On distingue : Type dentit

Ex : patient

Entit, enregistrement, occurrence, instance (tuple)

Ex: dupont, durand, etc.

Enregistrements du type dentit Mdecin

Enregistrements du type dentit Patient

Enregistrements du type dentit Diagnostic

Associations : dfinition

verbe (exerce une spcialit)


Galien Avicenne Cardiologie Neurologie Nphrologie Lannec Panoramix

Associations : dfinition

verbe (consulte)
Durand Dupont Galien Avicenne Lannec Panoramix Martin Deschiens

Associations
Galien Avicenne Lannec Panoramix

Durand Dupont Martin Deschiens

Mdecin
Id Nom Prnom Adresse N ordre Est consult par Consulte Id

Patient
Nom Prnom Adresse Pers. prvenir

Associations : cardinalit
Un mdecin est consult par un ou plusieurs patients

Mdecin
Id Nom Prnom Adresse N ordre un patient consulte zro ou plusieurs mdecins (0,n) (1,n) Est consult par Consulte Id

Patient
Nom Prnom Adresse Pers. prvenir

Associations
Patient
Id : 1 consultation 1 Nom : Dupont Prnom : Patrick Adresse Pers. prvenir

Mdecin
Id : 1 Nom : Panoramix Prnom : Oblix Adresse : Village N ordre : 12345

Est consult par Consulte

Est consult par Consulte Id : 2

Patient
Nom : Durand Prnom : Guillaume Adresse Pers. prvenir

consultation 2

Associations : cl

Cl unique : permet didentifier la relation (tout comme pour une entit) Exemples

Association de 2 attributs (ex : nomprnom) Numro auto-incrment

Ne doit pas trop dpendre de lutilisateur (erreur de saisie)

Associations : attributs

O placer la date de la consultation ?


Patient
(1,n) Est consult par (0,n) Consulte Id Nom Prnom Adresse Pers. prvenir

Mdecin
Id Nom Prnom Adresse N ordre

Mdecin ?

Au niveau de la consultation +++

Patient ?

Type dentit consultation


Consultation

Id

Date

Association ternaire
Mdecin
Id Nom Prnom Adresse N ordre
Est consult par

(1,n)
Consulte

Patient
Id Nom Prnom Adresse Pers. prvenir

(0,n)

Diagnostic
Id Libell Code diagnostique

Table dassociation consultation

Enregistrements du type dentit Consultation

Associations

Un mdecin peut voir un patient en consultation et aussi en hospitalisation Solution ??

Modle entits-associations
Patient Mdecin
Id Nom Prnom Adresse N ordre (1,n) (1,n)
Voit en hospitalisation Est hospitalis

(1,n)
Est consult par Consulte

Id Nom Prnom Adresse Pers. prvenir

(0,n)

Association de composition

Un service est un composant dun hpital

Si on cr un service, il faut lassocier un hpital Si on dtruit un hpital, il faut dtruire les services de cet hpital

Modle entits-associations
Service
Id Nom (1,n)
Contient Appartient

Hpital
Id Nom Adresse

(1,1)

Mdecin
Id Nom Prnom Adresse N ordre (1,n)

Voit en hospitalisation Est hospitalis

(1,n)

Patient
Id Nom Prnom Adresse Pers. prvenir

(1,n)
Est consult par Consulte

(0,n)

Diagnostic
Id Libell

Schma relationnel

Chaque type dentit devient une table


Mme nom, mmes attributs, mme cl Lignes : entits

Loccurrence dune entit est appele n.tuple , n tant le nombre total dattributs Aucun ordre nest spcifi sur les tuples Aucun tuple ne peut apparatre en double

Colonnes : attributs (domaines de valeurs)

Schma relationnel

Association un plusieurs

Cration de deux tables A et B


A B

Association plusieurs plusieurs

Cration de trois tables : A, B, table associative AB

Modle entits-associations
Service
Id Nom (1,n)
Contient Appartient

Hpital
Id Nom Adresse

(1,1)

Mdecin
Id Nom Prnom Adresse N ordre (1,n)

Voit en hospitalisation Est hospitalis

(1,n)

Patient
Id Nom Prnom Adresse Pers. prvenir

(1,n)
Est consult par Consulte

(0,n)

Diagnostic
Id Libell

Modle entits-associations
Service
Id Nom (1,n)

Hpital
(1,1) Id Nom Adresse

Mdecin
Id Nom Prnom Adresse N ordre

Hospitalisation
Id (1,n) Date

(1,n)

Patient
Id Nom Prnom Adresse Pers. prvenir

(1,n)

Consultation
(0,n) Id Date

Id Libell

Diagnostic

Modle entits-associations
Service
Id service Nom Id Hpital (1,n)

Hpital
(1,1) Id Hpital Nom Adresse

Mdecin
Id Nom Prnom Adresse N ordre

Hospitalisation
Id Date (1,n) Id mdecin Id service Id patient

(1,n)

Patient
Id Nom Prnom Adresse Pers. prvenir

(1,n)

(0,n)

Id Date Id Mdecin Id patient Id Diagnostic

Consultation
Id Libell

Diagnostic

Mise en uvre dun SGBD


Modle de donnes Ensemble de rgles dfinissant la structure (Langage de Description des Donnes) Objets permis + relations permises (Gnration de structure) Schma Ensemble doprations sur les donnes (Langage de Manipulation des Donnes) Objets interdits + relations interdites (Gnration de contraintes)

Langage de description des donnes (LDD)

Dfinition

Interface de description des donnes qui documente le dictionnaire de donnes Description des proprits de structure de manire assimilable par une machine Primitives imbriques dans un langage de programmation (e.g. CODASYL) Langage spcifique (e.g. SQL)

Langage

Description des donnes

Type dopration

Create, alter, comment, descrire, drop, rename Alphabtique (ex : nom) Numrique (ex : age) Alphanumrique (ex : code) Date (ex : date de naissance)

Types de donnes

Langage de manipulation des donnes (LMD)

Dfinition

Permet daccder la base de donnes pour la lire, en modifier le contenu, infrer de nouvelles connaissances Primitives imbriques dans un langage de programmation, langage de navigation (e.g. CODASYL) : notion de pointeur courant (endroit o lon se trouve un instant donn dans la base) Langage spcifique, de spcification (e.g. SQL, L4G) : description du contenu de ce que lon recherche

Langage

SQL : Structured Query Language

Langage dclaratif non procdural permettant la manipulation des SGBDR

exprimer des requtes dans un langage relativement simple


IBM 1980, SQL (ANSI, 1989) SQL 2 (ISO 1992) SQL 3 : relationnel objet

Inconvnient : n'intgre aucune structure de contrle permettant par exemple d'excuter une boucle itrative.

SQL : Structured Query Language

LDD : dfinition des tables


Cration, mise jour, suppression Cration de cls et dindex Modification du contenu des tables (insertion, mise jour, suppression) Exploration des tables (selection, projection, jointure) Fonctions supplmentaires (dnombrements, tris , regroupements)

LMD

LDD : Exemples

Create entity Patient (Nom Char (16), Prnom Char (16), Adresse Text) Create entity Medecin (Nom Char (16), Prnom Char (16), Adresse Text) Create relationship Create index on <Patient> using <NIP> [{NIP}]

LMD : Slection

Extraire un ensemble de lignes

Slection de toutes les consultations

SELECT * FROM Consultation

Extraire un sous-ensemble de lignes

Slection de toutes les consultations dun mdecin donn

SELECT * FROM Consultation WHERE Consultation.[Id mdecin] = 2

Modle entits-associations
Service
Id service Nom Id Hpital (1,n)

Hpital
(1,1) Id Hpital Nom Adresse

Mdecin
Id Nom Prnom Adresse N ordre

Hospitalisation
Id Date (1,n) Id mdecin Id service Id patient

(1,n)

Patient
Id Nom Prnom Adresse Pers. prvenir

(1,n)

(0,n)

Id Date Id Mdecin= 2 Id patient Id Diagnostic

Consultation
Id Libell

Diagnostic

LMD : Projection

Extraire un ensemble de colonnes

Lister les N de consultation, Noms patient

SELECT [Id consultation],[Id Patient] FROM Consultation

Extraire un ensemble de colonnes avec critres de selection

SELECT [Id consultation],[Id Patient] FROM Consultation, Patient WHERE Consultation. [Date] = 22/10/2002

Modle entits-associations
Service
Id service Nom Id Hpital (1,n)

Hpital
(1,1) Id Hpital Nom Adresse

Mdecin
Id Nom Prnom Adresse N ordre

Hospitalisation
Id Date (1,n) Id mdecin Id service Id patient

(1,n)

Patient
Id Patient Nom Prnom Adresse Pers. prvenir

(1,n)

(0,n)

Id Date = 22/10/02 Id Mdecin Id patient Id Diagnostic

Consultation

Id Libell

Diagnostic

Jointure simple

Liaison entre tables ayant des colonnes communes Lister les identifiants de consultation et de patients et les libells diagnostiques

SELECT [Id Consultation],[Id Patient], [Libell Diagnostic] FROM consultation, diagnostic WHERE consultation.[Id Diagnostic]=diagnostic.[Id Diagnostic]

Modle entits-associations
Service
Id service Nom Id Hpital (1,n)

Hpital
(1,1) Id Hpital Nom Adresse

Mdecin
Id Nom Prnom Adresse N ordre

Hospitalisation
Id Date (1,n) Id mdecin Id service Id patient

(1,n)

Patient
Id Patient Nom Prnom Adresse Pers. prvenir

(1,n)

(0,n)

Id Date Id Mdecin Id patient Id Diagnostic

Consultation
Id Diagnostic Libell

Diagnostic

Jointure multiple

Liaison entre plusieurs tables Lister les consultations et les hospitalisations

SELECT [Id Consultation],[Id Hospitalisation], [Nom Patient] FROM hospitalisation, consultation, patient WHERE consultation.[Id Patient]=patient. [Id Patient] AND hospitalisation.[Id Patient] =patient.[Id Patient]

Classement

Prsentation du rsultat dune selection selon un ordre fix par des colonnes

Lister les consultations par ordre croissant de date de consultation et identifiant

SELECT * FROM consultation ORDER BY [Date], [Identifiant]

Regroupement

Prsentation du rsultat dune selection regroup selon un critre

Prsentation des mdecins par spcialit

SELECT [Nom Mdecin] FROM medecin, spcialit GROUP BY spcialit.[Libell Spcialit]

Fonctions

Expressions arithmtiques

Addition, soustraction, multiplication, division, parenthse Chanes de caractres : concatenation Portent sur les valeurs dune ligne

Expressions de colonnes

ROUND (arrondi), ABS (valaur absolue), SQRT (racine carre)

Chane de caractres : REPLACE, LOWER, etc.

Condition dans le regroupement

Lister les consultations des patients ayant bnfici de plus de 15 consultations

SELECT [Id Patient], COUNT ([Id consultation]) FROM consultation GROUP BY [Id Patient] HAVING COUNT ([Id consultation]) > 15

SGBD
Modle Hirarchique Rseau Relationnel Exemples IMS Codasyl IBM/DB2, Informix, Ingres, Oracle, Unify, Sibase Gemstone, O2, Objectivity, Ontos, Versant, Object Store LDD/LMD DL1 Codasyl SQL/DB2, SQL/ANS, SQL2 Langage de programmation Cobol, PL1 Cobol, Fortran Ada, C, Fortran

Objet

Opale, Object SQL, SQL3

C, C++, Smalltalk, java

You might also like