Systèmesd’informationet bases de
données
V. Augusto
1/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Systèmes d’information et bases de données
Vincent Augusto
École Nationale Supérieure des Mines de Saint-Étienne
2010-2011
Systèmesd’informationet bases de
données
V. Augusto
2/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
1 Présentation
2 Modèle Entité-Relation
3 Modèle relationnel
4 Algèbre relationnelle
5 SQL
6 Contrôle et gestion
7 SGBD
8 Un SGBD hospitalier : CACHÉ
Systèmesd’informationet bases de
données
V. Augusto
3/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
Contenu du cours :
• Techniques pour l’analyse et la modélisation de données :• Modèle Entité/Association ;• Modèle relationnel ;• Algèbre relationnelle.
• Langage de définition/manipulation des données : SQL.• Aperçu de méthodes de modélisation : MERISE, UML.• Sécurité et intégrité des données.
Objectifs :
• Comprendre l’utilité et le fonctionnement des modèlesconceptuels et relationnels.
• Savoir utiliser un SGBD et connâıtre le langage SQL.• Faire le lien avec les techniques de modélisation et de
simulation.
Systèmesd’informationet bases de
données
V. Augusto
4/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Base de données
Base de données :Collection de données structurées, enregistrée sur la mémoireexterne, accessible simultanément par plusieurs utilisateurs.
Une base de données doit être :
• indépendente d’applications particulières ;• cohérente ;• de redondance minimale ;• accessible simultanément par plusieurs utilisateurs.
Systèmesd’informationet bases de
données
V. Augusto
5/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
SGBD
Système de Gestion de Base de Données :
Logiciel (ou ensemble de logiciels) capable d’assurer la créationet l’utilisation des bases de données.
Une SGBD doit assurer :
• la définition des bases et des � objets � contenus ;• la manipulation des données ;• la confidentialité ;• l’intégrité ;• la sécurité.
Utilisation d’un modèle de données :Représentation abstraite de l’information et éventuellement desopérateurs de manipulation de l’information (relationnel,hiérarchique, orienté objet).
Systèmesd’informationet bases de
données
V. Augusto
6/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
1 Présentation
2 Modèle Entité-Relation
3 Modèle relationnel
4 Algèbre relationnelle
5 SQL
6 Contrôle et gestion
7 SGBD
8 Un SGBD hospitalier : CACHÉ
Systèmesd’informationet bases de
données
V. Augusto
7/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
Ce modèle propose des concepts permettant de décrire unensemble de données relatives à un domaine défini afin de lesintégrer ensuite dans une BD.⇒ Création d’un Modèle Conceptuel de Données (MCD).
Entité :
• Ensemble d’objets réels ou abstraits, ayant chacun uneexistance propre, partageant un ensemble de propriétéscommunes et présentant un intérêt pour l’entreprise.
• Distinction entre classe d’entités (l’ensemble) et sesoccurrences (éléments de l’ensemble).
• Exemples : personnes, produits, idées, documents, etc.
Systèmesd’informationet bases de
données
V. Augusto
8/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
Relation :
• Association entre deux entités au moins.• Relations unaire (entre une entité et elle-même), binaire,
ou n-aire.
• Exemple : relation fait partie de entre une infirmière et unservice.
Attributs :
• Caractéristiques descriptives d’une entité ou d’une relation.• Type de données 6= Valeur de l’attribut.• Exemple : nom, prénom, âge d’un patient.
Systèmesd’informationet bases de
données
V. Augusto
9/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Identifiant et cardinalité
Identifiant ou clé :
• Attribut permettant d’identifier de manière unique chaqueoccurrence d’une classe d’entités ou de relations.
• L’identifiant d’une relation est l’union des identifiants desentités qu’elle met en relation.
• Si une entité est identifiable par plusieurs identifiants, l’und’eux est choisi comme clé primaire.
Cardinalités :
• Caractérisation des types de relations (fonctionnalité).• Représentation au moyen de deux valeurs (Cmin,Cmax) :
• 1 : 1 pour les correspondances bijectives ;• 1 : n pour les correspondances de type parent-enfants ;• n : 1 pour les correspondances surjectives ;• m : n pour les correspondances de type croisé (produit
cartésien).
Systèmesd’informationet bases de
données
V. Augusto
10/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Exemple de MCD : le blocopératoire
• La cadre-infirmière du bloc doit connaitre pour chaquepatient son nom, son prénom et sa pathologie.
• Chaque patient est opéré par un certain chirurgien dansune certain salle opératoire à une certaine date.
• Chaque patient suit un traitement médical particulier.
Systèmesd’informationet bases de
données
V. Augusto
11/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Exemple de MCD : le blocopératoire
Associations :
• Subit une intervention de type 1 :N• � dans une salle opératoire sont opérés plusieurs patients �• � un patient n’est opéré que dans une seule salle
opératoire �
• Est opéré par de type N :M• � chaque patient peut être opéré par plusieurs
chirurgiens �• � chaque chirurgien peut opérer plusieurs patients �
• Suit un traitement de type 1 :N• � un patient peut suivre plusieurs traitements �• � un traitement n’est pris que par un seul patient �
Systèmesd’informationet bases de
données
V. Augusto
12/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
1 Présentation
2 Modèle Entité-Relation
3 Modèle relationnel
4 Algèbre relationnelle
5 SQL
6 Contrôle et gestion
7 SGBD
8 Un SGBD hospitalier : CACHÉ
Systèmesd’informationet bases de
données
V. Augusto
13/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
Intérêt du modèle relationnel :
• Utilisation facile des schémas de données (formetabulaire).
• Rigueur des concepts permettant l’utilisation des outilsmathématiques et algorithmiques.
• Modèle adéquat au niveau conceptuel : indépendancephysique-logique.
• Offre des LMD (langages de manipulation de données)non-procéduraux.
⇒ Création d’un Modèle Logique de Données Relationnel(MLD Relationnel).
Systèmesd’informationet bases de
données
V. Augusto
14/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Définitions
Attribut :Un attribut Ai est un identificateur (un nom) décrivant uneinformation stockée dans une base.
Domaine :Le domaine Di d’un attribut est l’ensemble de ses valeursadmissibles.
Relation :Une relation est un sous-ensemble du produit cartésien den > 0 domaines d’attributs. Elle peut être représenté sous laforme d’un tableau dans lequel les n attributs sont les titres desn colonnes.
Schéma de relation :Soit la relation r : R(A1 : D1,A2 : D2, . . . ,An : Dn).
Systèmesd’informationet bases de
données
V. Augusto
15/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Représentation
Entité :
Patientnom
prenomdateNaissance
Schéma de relation :Patient(nom : chaine, prenom :chaine, dateNaissance : date)
Attributs :nom, prenom, dateNaissance
Relation sous forme tabulaire :
Patient nom prenom dateNaissanceDuss Jean-Claude 16/04/1952Leblanc Juste 08/12/1947Perrin François 16/08/1934
Systèmesd’informationet bases de
données
V. Augusto
16/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Définitions
Clé primaire d’une relation :
Une clé primaire est un ensemble d’attributs K vérifiant :
• Unicité : les valeurs des clés primaires sont uniques et nonnulles.
• Minimalité : aucun attribut composant K ne peut êtreenlevé sans perdre la propriété d’unicité.
Contrainte d’intégrité :
Propriété devant être vraie sur toutes les extensions du schémade la relation :
• CI de domaine : contrôle syntaxique et sémantique desvaleurs associées aux attributs.
• CI d’entité : concerne les valeurs de la clé primaire(unicité, minimalité).
• CI de référence : la valeur d’un groupe d’attributs est laclé primaire d’une autre relation.
Systèmesd’informationet bases de
données
V. Augusto
17/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Définitions
Clé étrangère d’une relation :
Groupe d’attributs qui apparâıt comme clé primaire dans uneautre relation.
Exemple :
Patient nom prenom dateNaissance idTraitementDuss Jean-Claude 16/04/1952 2Leblanc Juste 08/12/1947 5Perrin François 16/08/1934 42
SGBD totalement relationnel :Un SGBD est dit � totalement relationnel � lorsqu’il assure lestrois CI et lorsqu’il fournit une interface d’interrogation ayant lapuissance du langage algébrique.
Systèmesd’informationet bases de
données
V. Augusto
18/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
MCD → MLDR
Règles de passage du MCD au MLDR :
1 Les entités du MCD deviennent des relations, leurspropriétés deviennent des attributs. L’identifiant de l’entitédevient la clé primaire.
2 Une association de type 1 :N disparâıt : l’identifiant d’uneentité est incorporé dans la relation correspondant àl’autre entité (si l’association est porteuse de propriétés,elles migrent également).
3 Une association de type N :M devient une relation R. Laclé primaire de R est obtenue en concaténant lesidentifiants des entités qui participent à l’association R.Les propriétés de l’association R deviennent des attributsde R.
Systèmesd’informationet bases de
données
V. Augusto
19/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Exercice
Construire les MCD et MLDR correspondants à ladescription suivante :
L’objectif consiste à construire le MCD d’un aéroport. Lespilotes (identifiant, nom, années d’expérience) sont affectés àdes vols. Un vol est identifié par un identifiant chiffré, une villede départ, une ville d’arrivée, une heure de départ et une heured’arrivée. Un avion est réquisitionné pour chaque vol, identifiépar un identifiant chiffré, un nom, une capacité et unelocalisation.
Systèmesd’informationet bases de
données
V. Augusto
20/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
1 Présentation
2 Modèle Entité-Relation
3 Modèle relationnel
4 Algèbre relationnelle
5 SQL
6 Contrôle et gestion
7 SGBD
8 Un SGBD hospitalier : CACHÉ
Systèmesd’informationet bases de
données
V. Augusto
21/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
Langage algébrique :
• Collection d’opérations formelles qui agissent sur desrelations pour produire d’autres relations.
• Modèle relationnel basé sur la théorie des ensemble :utilisation d’opérateurs classiques de manipulation desensemble (union, intersection, différence, produitcartésien).
• Introduction d’opérateurs propres aux bases de données.
Systèmesd’informationet bases de
données
V. Augusto
22/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Opérations de baseSoient 2 relations R1 et R2 de même schéma.
Union (opérateur d’extension)
Opération binaire portant sur R1 et R2 produisant une relationR3 de même schéma ayant pour t-uples ceux appartenant à R1et R2. R3 = R1 ∪ R2.
Différence (opérateur de restriction)
Opération binaire portant sur R1 et R2 produisant une relationR3 de même schéma ayant pour t-uples ceux appartenant à R1mais pas à R2. R3 = R1 − R2.Soient 2 relations R1 et R2 de schémas quelconques.
Produit cartésienOpération binaire portant sur R1 et R2 produisant une relationR3 ayant pour schéma la concaténation des attributs de R1 etR2 et pour t-uples les combinaisons des relations opérandes.R3 = R1 × R2.
Systèmesd’informationet bases de
données
V. Augusto
23/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Opérations relationnelles
Projection
Opération unaire portant sur R1 qui produit une relation R2 enenlevant du schéma de R1 tous les attributs non mentionnés enopérande et en éliminant les t-uples en double.R2 = ΠAi ,Aj ,Ak (R1).
Patient nom prenom dateNaissanceDuss Jean-Claude 16/04/1952Leblanc Juste 08/12/1947Perrin François 16/08/1934
R2 = {P[nom, prenom]|Patient(P)}SELECT nom, prenom FROM Patient
nom prenom
Duss Jean-ClaudeLeblanc JustePerrin François
Systèmesd’informationet bases de
données
V. Augusto
24/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Opérations relationnelles
SélectionOpération unaire portant sur R1 qui produit une relation R2 demême schéma ayant pour t-uples ceux vérifiant la conditiondonnée en opérande. σcond(R1) = R2.
Patient nom prenom dateNaissanceDuss Jean-Claude 16/04/1952Leblanc Juste 08/12/1947Perrin François 16/08/1934Duss Jean-Marie 19/04/1956
R2 = {P[nom, prenom]|Patient(P) ∧ (P[nom] =′ Duss ′)}SELECT nom, prenom FROM Patient WHERE nom=’Duss’
nom prenom dateNaissance
Duss Jean-Claude 16/04/1952Duss Jean-Marie 19/04/1956
Systèmesd’informationet bases de
données
V. Augusto
25/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Opérations relationnelles
JointureOpération binaire portant sur R1 et R2 consistant à rapprocherles t-uples des 2 relations selon un critère C pour former unerelation R3 qui contient l’ensemble des t-uples du produitcartésien R1 × R2 vérifiant le critère C . R3 = R1 1 R2.
Patient nom prenomDuss Jean-ClaudeLeblanc JustePerrin François
Traitement id nom1 Duss2 Leblanc3 Pommier
R3 = {P[nom],T [id ]|Patient(P) ∧Traitement(T ) ∧ (P[nom] =T [nom])}SELECT Patient.nom, Traitement.id FROM Patient,Traitement WHERE Patient.nom=Traitement.nom
nom idTraitement
Duss 1Leblanc 2
Systèmesd’informationet bases de
données
V. Augusto
26/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Exercice
Répondre aux questions suivantes grâce à l’algèbrerelationnelle :
1 Quels sont les numéros des pilotes qui conduisent un vol ?
2 Quels sont les numéros et capacités des avions nommés� Airbus � ?
3 Donner pour chaque vol son numéro et le nom du pilote.
4 Quels sont les noms des pilotes qui conduisent tous lesairbus ?
Systèmesd’informationet bases de
données
V. Augusto
27/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
1 Présentation
2 Modèle Entité-Relation
3 Modèle relationnel
4 Algèbre relationnelle
5 SQL
6 Contrôle et gestion
7 SGBD
8 Un SGBD hospitalier : CACHÉ
Systèmesd’informationet bases de
données
V. Augusto
28/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
SQL (Structured Query Language :
• Créé par IBM en 1979 pour � System R �.• Langage hybride, combinaison de l’algèbre relationnelle et
du calcul relationnel.
• Langage � déclaratif �, non-procédural.• Permet l’interrogation d’une base de données.
Langage normalisé :
• LID : Langage d’Intégration des Données (sélection).• LMD : Langage de Manipulation des Données.• LDD : Langage de Définition des Données (ajout,
suppression).
• LCD : Langage de Contrôle des Données et desutilisateurs.
Systèmesd’informationet bases de
données
V. Augusto
29/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Recherche
SELECT [ALL|DISTINCT] chaine de sélectionFROM nom de table [SYNONYME][WHERE condition]
Paramètres :
• La chaine de sélection est la liste des colonnes surlesquelles on fait une projection.
• La clause FROM précise la table sur laquelle la rechercheest faite.
• La clause WHERE précise une condition pour critère desélection.
Systèmesd’informationet bases de
données
V. Augusto
30/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Recherche : exemples (1/2)
Obtenir le nom et le prénom de tous les patients
SELECT nom,prenomFROM Patient
Obtenir l’ensemble des informations relatives auxtraitementsSELECT *FROM Traitement
Lister les noms des patients de plus de 30 ans
SELECT nomFROM PatientWHERE age>30
Systèmesd’informationet bases de
données
V. Augusto
31/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Recherche : exemples (2/2)
Obtenir les traitements dont la posologie est ’1 fois parjour’ ou ’2 fois par jour’
SELECT *FROM TraitementWHERE posologie=’1 fois par jour’ OR posologie=’2 fois parjour’
Obtenir le nom des patients ayant entre 20 et 30 ans etcommençant par ’A’
SELECT nomFROM PatientWHERE age BETWEEN 20 AND 30 AND nom LIKE ’A%’
Systèmesd’informationet bases de
données
V. Augusto
32/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Recherche avec jointure
SELECT [ALL|DISTINCT] chaine de sélectionFROM liste de tables[WHERE condition]
Quels sont les noms des patients opérés dans la salle 1 :
SELECT nomFROM Patient,SalleOperatoireWHERE SalleOperatoire.id=1 (sélection)AND SalleOperatoire.id=Patient.idSO (jointure)
Quels sont les noms des patients dont la posologie dutraitement est ’1 fois par jour’ :
SELECT nomFROM Patient,TraitementWHERE Traitement.posologie=’1 fois par jour’ (sélection)AND Patient.nom=Traitement.nomPatient (jointure)
Systèmesd’informationet bases de
données
V. Augusto
33/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Expressions SQL
Fonctions de calcul
• COUNT (*) compte le nombre d’éléments d’une sélection.• SUM|AVG|MIN|MAX (*) permettent le calcul de sommes,
de moyennes, de minimum et de maximum.
Expressions caractères
• UPPER (expression)• LOWER (expression)• SUBSTRING (expression FROM debut FOR longueur)• POSITION (expression 1 IN expression 2)
Systèmesd’informationet bases de
données
V. Augusto
34/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Tri et groupement de lignes
SELECT [ALL|DISTINCT] chaine de sélectionFROM liste de tables[WHERE condition][ORDER BY liste de colonnes [ASC|DESC]] (mise en forme)ou[GROUP BY liste de colonnes [HAVING condition]] (moyen detrouver un résultat)
Clauses :
• ORDER BY : tri par ordre croissant ou décroissant.• GROUP BY : réarrange la table en groupes de lignes à
raison d’un groupe pour chaque valeur différente associéeà la liste de colonnes.
• HAVING : premet de spécifier une condition qui seraévaluée pour chaque groupe.
Systèmesd’informationet bases de
données
V. Augusto
35/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Sélections imbriquées
Sous-requête indépendante :
• IN : insertion d’une requête interne.
Condition ALL/ANY :
Possible quand la sous-requête retourne un ensemble devaleurs.
• ALL : l’évaluation de la comparaison est vraie pour toutesles valeurs obtenues dans une colonne sélectionnée.
• ANY : l’évaluation de la comparaison est vraie pour aumoins une valeur du résultat de la sous-requête.
Systèmesd’informationet bases de
données
V. Augusto
36/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Ajout de données
INSERT INTO nom de table [(liste de colonnes)]VALUES (liste de valeurs) | expression de sélection
Ajout d’un patient dans la base :
INSERT INTO Patient (nom,prenom,dateNaissance)VALUES (’Bono’,’Jean’,’01/03/1970’)
Ajout d’une partie des patients dans une autre table :
INSERT INTO PatientBisSELECT *FROM PatientWHERE age>80
Systèmesd’informationet bases de
données
V. Augusto
37/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Modification de données
UPDATE nom de tableSET liste de colonnes valeur[WHERE condition]
Modification de l’âge d’un patient :
UPDATE PatientSET age=age-2WHERE nom=’Duss’
Systèmesd’informationet bases de
données
V. Augusto
38/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Suppression de données
DELETE FROM nom de table[WHERE condition]
Supprimer tous les patients dont la pathologie est ’AVC’ :
DELETE FROM PatientWHERE pathologie=’AVC’
Supprimer tous les patients dont l’opération a lieu dans lasalle de type A :
DELETE FROM PatientWHERE idSalle IN (SELECT id FROM SalleOperatoireWHERE type=’A’)
Systèmesd’informationet bases de
données
V. Augusto
39/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Création
Création de relationsCREATE TABLE nom de la table (éléments de la table)
Création de bases de donnéesPermet le regroupement de définitions de domaines, derelations, de contraintes, de vues, de privilèges se rapportant àune même application.CREATE SCHEMA nom de la base [liste d’éléments]
Définition de vues :Table virtuelle, dynamique, calculée à partir des relations de labase de données par une requête.CREATE VIEW nom de la vue (éléments de la table)AS (spécification de la requête)
Systèmesd’informationet bases de
données
V. Augusto
40/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Exercice
Algèbre relationnelle → SQL :Traduire en SQL les requêtes de l’exercice précédent.
Écrire les requêtes SQL suivantes :
1 Quel est le nom du pilote le plus expérimenté ?
2 Lister par ordre alphabétique le nom des pilotes.
3 Indiquer le nombre de vols au départ de chaque ville.
4 Indiquer le nombre de vols au départ de chaque ville,assurés par au moins deux pilotes différents.
5 Indiquer les numéros des pilotes qui conduisent des airbus.
6 Indiquer les numéros et la capacité des avions airbussachant que l’on ne retiendra que ceux de capacitésupérieure aux boeing.
7 Quels sont les numéros des pilotes qui conduisent unairbus ?
Systèmesd’informationet bases de
données
V. Augusto
41/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
1 Présentation
2 Modèle Entité-Relation
3 Modèle relationnel
4 Algèbre relationnelle
5 SQL
6 Contrôle et gestion
7 SGBD
8 Un SGBD hospitalier : CACHÉ
Systèmesd’informationet bases de
données
V. Augusto
42/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Contrôle de concurrence et gestiondes défaillances
Objectif d’un SGBD :
Permettre à plusieurs utilisateurs de travailler en parallèle endonnant à chacun l’illusion de travailler seul.
Conséquence :
Mise en œuvre de protocoles permettant :
• de synchroniser les traitements concurrents ;• d’annulerou de compléter les effets partiels des activités
interrompues par les défaillances.
→ Protocoles transactionnels.
Systèmesd’informationet bases de
données
V. Augusto
43/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Contrat de cohérencetransactionnel
Transaction :Script décrivant des opérations (Lecture/Écriture) sur les objetsdu SI.
Propriétés d’une transaction :
A Atomicité : une transaction est soit validée, soitabandonnée.
C Cohérence : une transaction préserve la cohérence desobjets qu’elle manipule (ressort de l’utilisateur).
I Isolation : les effets d’une transaction sont invisibles auxtransactions concurrentes.
D Durabilité : les effets d’une transaction validée sontpermanents.
Un SI est dit transactionnel s’il assure les propriétés A, I et D.
Systèmesd’informationet bases de
données
V. Augusto
44/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Confidentialité
Assurer la confidentialité des données :
• Contrôler les flux de données (déclencheurs, cryptage).→ Interdire l’accès à certaines colonnes/enregistrements.
• Contrôler les autorisations d’accès.→ Accorder ou retirer des privilèges à des sujets ou surdes objets.
Systèmesd’informationet bases de
données
V. Augusto
45/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Cohérence
Assurer la cohérence des données :Contrôle sémantique assuré par les contraintes d’intégrité :
• CI structurelles (CI de domaine, d’entité, de référence).• CI applicatives : conditions que doit vérifier un
sous-ensemble d’information pour affirmer qu’elles sontcohérentes.
Base de données cohérente :Base de donnée dont l’ensemble des CI est respecté.
Systèmesd’informationet bases de
données
V. Augusto
46/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Isolation
Transaction :Unité de traitement séquentiel executée pour le compte d’unusager qui, appliqué à une BD cohérente, restitue une BDcohérente.
Action élémentaire :Lecture ou écriture de données, manipulation de données.
Problèmes soulevés par les accès concurrents aux données :
Soient deux transactions T1 et T2 :T1 : Lire A ; A← A + 1 ; Ecrire A ; Lire B ; B ← B + 1 ; Ecrire B ;T2 : Lire A ; Afficher A ; Lire B ; Afficher B ;
Que se passe-t-il si ces transactions sont exécutéessimultanément ?
Systèmesd’informationet bases de
données
V. Augusto
47/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Problème 1 : mise à jour perdue
T1 T2
Lire A→ a1 A = 10Lire A→ a2a2 + 1→ a2Ecrire a2 → A
a1 + 1→ a1Ecrire a1 → A A = 11
Dépendence Écriture/Écriture
Systèmesd’informationet bases de
données
V. Augusto
48/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Problème 2 : lecture impropreT1 T2
Lire A→ a1 A = 10a1 + 1→ a1
Ecrire a1 → A A = 11Lire A→ a2Afficher a2 A = 11Lire B → b2Afficher b2 B = 10
Lire B → b1 B = 10b1 + 1→ b1
Ecrire b1 → B B = 11
CI : A = B
Dépendence Écriture/Lecture
Systèmesd’informationet bases de
données
V. Augusto
49/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Contrôle des accès concurrents
Contrôleur :Le contrôleur (scheduler) du SGBD est chargé de contrôlerl’accès des transactions à certaines parties de la BD.
Granule :Unité de la BD dont l’accès est contrôlé par le contrôleur(enregistrement, fichier).
Principe de résolution des accès concurrents :
Éviter la génération d’exécutions incorrectes en faisant attendreles transactions qui veulent exécuter des opérationsconflictuelles sur un même granule.→ Ne laisse s’exécuter simultanément que des opérationscompatibles.
Systèmesd’informationet bases de
données
V. Augusto
50/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Verouillage de données
Verrou :Marque posée par une transaction sur le granule qu’elle désirelire ou écrire afin d’en limiter ou d’en interdire l’accès.
Mode de vérouillage :
• Exclusif (X) : tout autre accès au granule est interdit.• Partagé (S) : consultation possible (lecture) mais MAJ
impossible.
Systèmesd’informationet bases de
données
V. Augusto
51/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Verouillage : exemple
T1 T2
Lock (A,X )Lire A→ a1a1 + 1→ a1 Lock (A,X )
Ecrire a1 → A (attente)Unlock (A) (attente)
Lire A→ a2a2 + 2→ a2Ecrire a2 → AUnlock (A)
Mise à jour non perdue
Systèmesd’informationet bases de
données
V. Augusto
52/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Intégrité face aux pannes
• Garantie des propriétés de durabilité (D) et d’atomicité(A).
• Assurer la cohérence de la BD en dépit des panneslogicielles ou matérielles.
Types de pannes :
• Défaillance logicielle : erreur de programme, abandon detransaction, redémarrage de l’application.
• Défaillance machine : redémarrage du système.
Systèmesd’informationet bases de
données
V. Augusto
53/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Mécanismes de reprise sur panne
Deux utilitaires sont proposés par le SGBD :
• Journal des transactions : fichier sauvegardé sur mémoiresecondaire contenant les informations nécessaires à lareprise (valeurs des données et modifications effectuées).
• Points de reprise : sauvegarde complète de la BD et dujournal à intervalles réguliers.� yyy � yyy . . .
Problème :Quelle politique de sauvegarde ?
• à quelle fréquence ?• avec ou sans journal ?• quelle quantité de travail est-on prêt à perdre ?
Systèmesd’informationet bases de
données
V. Augusto
54/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
1 Présentation
2 Modèle Entité-Relation
3 Modèle relationnel
4 Algèbre relationnelle
5 SQL
6 Contrôle et gestion
7 SGBD
8 Un SGBD hospitalier : CACHÉ
Systèmesd’informationet bases de
données
V. Augusto
55/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
Système de Gestion de Bases de Données :
• Logiciel capable d’assurer la création et l’utilisation desbases de données.
• Fonction assurées :• définition des bases de données et des
� objets � contenus ;• manipulation des données ;• intégrité ;• confidentialité ;• sécurité.
Systèmesd’informationet bases de
données
V. Augusto
56/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Définition et manipulationDéfinition des données :
• Via un langage de description des données (LDD) ou uneinterface graphique.
• Description de la nature des données et de leurs liens logiques.
• Schéma d’une base = sa description en LDD.
• Sous-schéma d’une base = partie visible par un programme ouun groupe de programmes.
Manipulation des données :
• Assurer la communication entre la BD et les clients (utilisateursou programmes) : recherche, création, modification, suppression.
• Via un langage de manipulation des données (LMD), uneinterface graphique ou un langage hôte (C, C++, Java).
• Via une interface web.
Systèmesd’informationet bases de
données
V. Augusto
57/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Intégrité et confidentialité
Intégrité des données :
• Assurer la qualité des données enregistrées.• Assurer les CI spécifiées lors de la création de la base.• Assurer les CI spécifiées seulement au niveau logique et
assurées par la programmation.
Confidentialité des données :
• Assurée par le biais de mots de passe et de privilègesd’accès.
• Assurée aussi par l’utilisation des sous-schémas de BD.• Nécessaire dans le cas d’accès de plusieurs utilisateurs à la
base.
Systèmesd’informationet bases de
données
V. Augusto
58/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Sécurité et gestion des accès
Sécurité de fonctionnement :
• Permettre la remise rapide de la base en état opérationnellors d’un incident matériel ou logiciel.
• Assurée par le dédoublement (réplication) ou lajournalisation et ré-exécution automatique.
Gestion des accès concurrents :
• Assurer la cohérence des données en cas des accèssimultanés sur une même donnée.
• → Verrouillage en cas de modification.• → Permission d’accès multiple en lecture.
Systèmesd’informationet bases de
données
V. Augusto
59/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Implémentation physique desSGBD
• Il existe une grande indépendance entre la coucheabstraite que constitue le SGBD et la couche physique quesont le ou les fichiers constituant une base de données.
• Il n’existe pas d’ordre spécifique pour les tables dans unebase ou pour les colonnes dans une table, même si leSGBD en donne l’apparence.
Types de SGBD :
• SGBD fichier : utilisent un service de fichiers associés àun protocole de réseau afin d’accéder aux données.
• SGBD client/serveur : utilisent une applicationcentralisée dite serveur de données.
Systèmesd’informationet bases de
données
V. Augusto
60/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Schéma d’utilisation de SGBD(1/3)
Systèmesd’informationet bases de
données
V. Augusto
61/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Schéma d’utilisation de SGBD(2/3)
Systèmesd’informationet bases de
données
V. Augusto
62/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Schéma d’utilisation de SGBD(3/3)
Systèmesd’informationet bases de
données
V. Augusto
63/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
1 Présentation
2 Modèle Entité-Relation
3 Modèle relationnel
4 Algèbre relationnelle
5 SQL
6 Contrôle et gestion
7 SGBD
8 Un SGBD hospitalier : CACHÉ
Systèmesd’informationet bases de
données
V. Augusto
64/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
Caché en quelques mots :
• Développé et commercialisé par InterSystems.• Base de données objet-relationnelle très répandue dans le
milieu hospitalier.
• Avantages : fiabilité, flexibilité, simplicité, faibleadministration.
• API serveur personnalisable.• Services web en natif.• Framework de développement web 2.0 en natif.
Systèmesd’informationet bases de
données
V. Augusto
65/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Présentation
Fusion des accès Objet et Relationnel :
• Caché est une base de données relationnelle (SQL) et unebase de donnée orientée objet.
• Toutes les données sont accessibles en SQL ou en objet.
Définition ObjetClass Patient {property name as %String ;property age as %Integer ;}
Définition SQLCREATE TABLE Patient (name varchar(50),age integer)
⇒ Dictionnaire de donnéesUn seul jeu de données
Systèmesd’informationet bases de
données
V. Augusto
66/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Modèles relationnel et objet
Modèle relationnel :
• SQL avec extensions objet (syntaxes simplifiées).• Accessible avec ODBC, JDBC et ADO.Net.
Modèle objet :
• Héritage multiple, spécialisation, polymorphisme.• Langage de script spécifique (Caché Object Script).
Systèmesd’informationet bases de
données
V. Augusto
67/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Plateforme intégrée côté serveur
Caractéristiques :
• serveur d’applications ;• accès natif Objet ou
SQL sans mappingObjet-Relationnel ouRelationnel-Objet.
Systèmesd’informationet bases de
données
V. Augusto
68/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Architecture
Systèmesd’informationet bases de
données
V. Augusto
69/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Projection Objets
• Génération des proxies de ses classes dans différentslangages cibles.
• Disponible pour C++, Java, etc.
Systèmesd’informationet bases de
données
V. Augusto
70/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Applications
Principales applications par ordre d’importance :
• Systèmes d’Informations Hospitaliers et laboratoirespharmaceutiques :
• 60 % des hôpitaux dans le monde ;• 10 plus grands hôpitaux US ;• 70 % des laboratoires d’analyses ;• 60 % des fournisseurs majeurs d’applications Santé.
• Administrations• Finance/Assurance• Bibliothèques• Gestion hôtelière• Fret Aérien• Industrie...
Systèmesd’informationet bases de
données
V. Augusto
71/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Implantations dans les hôpitauxfrançais
• CHU de Nantes• CHU de Nice• CH d’Arras• CH de Roubaix• Groupe Hospitalier Saint Vincent de Strasbourg• CH de Toulon• CH de Hyères• CH de Guingamp• CH de Lannion• CH de Saint Brieuc• CH de Quimper• CH de Selestat• CH de Digne• Maternité Régionale Adolphe Pinard• CH de la Côte Basque...
Systèmesd’informationet bases de
données
V. Augusto
72/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Application aux systèmeshospitaliers
Confidentialité et sécurisation des données
• Informatisation du dossier médical du patient.• Accès restreint selon l’utilisateur (droits et privilèges).• Gestion des accès concurrentiel (verrou).
Simplicité d’administration et faible coût de possession
• Interfaces de gestion simples.• Mise en place de formulaires et/ou d’applications web
(ASP, PHP).
• Personnalisation des interfaces de saisie en fonction del’utilisateur.
Systèmesd’informationet bases de
données
V. Augusto
73/73
Présentation
ModèleEntité-Relation
Modèlerelationnel
Algèbrerelationnelle
SQL
Interrogation
Tri etgroupement delignes
Sélectionsimbriquées
Manipulationdes données
Definition dedonnées
Contrôle etgestion
SGBD
Un SGBDhospitalier :CACHÉ
Application aux systèmeshospitaliers
Maintenance, mise à jour et sauvegarde
• Maintenance de la base de données en temps réel.• Solutions de sauvegarde (logicielles et matérielles).• Accès concurrentiel permettant mises à jour sans risque
d’incohérence.
Portabilité
• Capacité d’adaptation à un SGBD tiers.• Récupération et conversion de données sans risque de
pertes.
• Cohabitation avec les méthodes de gestion de donnéesactuelles ou inamovibles.
PrésentationModèle Entité-RelationModèle relationnelAlgèbre relationnelleSQLInterrogationTri et groupement de lignesSélections imbriquéesManipulation des donnéesDefinition de données
Contrôle et gestionSGBDUn SGBD hospitalier : CACHÉ