Professional Documents
Culture Documents
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
Les langages de description des donnes (LDD) Les langages de manipulation des donnes (LMD)
Base de donnes Collection structure et non redondante de donnes et de relations reprsentant un univers donn
Systme permettant
Base de donnes
Stockes sur des supports accessibles par ordinateur Destine servir de nombreuses applications
SGBD
Description de donnes
Extraction de sous-ensembles de ces donnes par lintermdiaire dun langage logique (de requte)
Accs aux informations par spcification de ces informations sans rfrence leur localisation physique
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
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
SGBD : principes
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 - Historique
Fichiers relis par des pointeurs et accds par des cls 1965 : sparer les donnes des traitements
Nuds dun graphe relis par des pointeurs Langages navigationnels (recommandations CODASYL)
SGBD - Historique
Donnes reprsentes sous forme de relations entre domaines de valeurs stockes dans des tables Langage non procdural standardis : Structured Query Langage (SQL)
SGBD : Historique
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
4me gnration
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
Mode dorganisation des donnes entre elles en catgories Catgories et relations : schma Ex : organisation hirarchique, en rseau
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
perception du monde rel sous forme dentits relis par des associations
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
tapes
Cahier des charges Modlisatio n Traduction Modle relationnel Modle entitsassociations Implmentation SGBDR
nonc du problme
Les patients (nom, prnom) Les mdecins (nom, prnom, Ninscription) Les consultations domicile (date, diagnostic) Les hospitalisations (date, service)
Entit
Donne lmentaire
Agrgation
Abstraction consistant grouper des donnes lmentaires pour constituer des objets composs
Entit
Concret ou abstrait
Malades, mdecins (acteurs) Hpital, services (structures) Organes, signes (concepts anatomiques) Signes, diagnostics (concepts pathologiques) Mdicaments, actes (procdures)
Proprits : attributs
Identifiant
Type dentit
Mdecin
Id
Nom
Prnom
Adresse
N ordre
Ex : patient
Associations : dfinition
Associations : dfinition
verbe (consulte)
Durand Dupont Galien Avicenne Lannec Panoramix Martin Deschiens
Associations
Galien Avicenne Lannec Panoramix
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
Patient
Nom : Durand Prnom : Guillaume Adresse Pers. prvenir
consultation 2
Associations : cl
Cl unique : permet didentifier la relation (tout comme pour une entit) Exemples
Associations : attributs
Mdecin
Id Nom Prnom Adresse N ordre
Mdecin ?
Patient ?
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
Associations
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
(0,n)
Association de composition
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)
(1,n)
Patient
Id Nom Prnom Adresse Pers. prvenir
(1,n)
Est consult par Consulte
(0,n)
Diagnostic
Id Libell
Schma relationnel
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
Schma relationnel
Association un plusieurs
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)
(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)
Consultation
Id Libell
Diagnostic
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
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
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
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.
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
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)
Consultation
Id Libell
Diagnostic
LMD : Projection
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)
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)
Consultation
Id Diagnostic Libell
Diagnostic
Jointure multiple
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
Regroupement
Fonctions
Expressions arithmtiques
Addition, soustraction, multiplication, division, parenthse Chanes de caractres : concatenation Portent sur les valeurs dune ligne
Expressions de colonnes
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