Les principaux domaines de l’informatique
...
Systèmes d’information: SGBD (1)
Lorsque les données à gérer informatiquement par une entité (entreprise, université, association, ...) sont de nature diverses et possèdent de nombreux liens entre elles, les fonctionnalités fournies par un système de fichiers ne sont plus suffisantes; il convient de faire alors appel à des fonctions de gestion d’information plus sophistiquées; fournies par un système d’information.
L’exemple le plus courant de système d’information sont les
Systèmes de Gestion des Bases de Données (SGBD).
Sytèmes d’information: SGBD (2)
Un SGBD permet de gérer l’ensemble des informations nécessaires à la réalisation d’un objectif (tâche) commun au sein d’une entreprise ou de toute autre collectivité d’individus travaillant en coordination.
Exemples de tâches:
gestion des étudiants d’une université, gestion des réservations des places d’avions, gestion de comptes bancaires, ...
Système d’information: SGBD (3)
Exemple 1:
Exemple 2:
Catalogue de produits vendus par une entreprise:
Base de données relativement simple
⇒ peut être gérée directement (données stockées dans un simple fichier, une feuille de tableur, ...)
Gestion des cours et étudiants d’une université:
Données beaucoup plus complexes, car faisant intervenir des informations diverses, liées entre-elles:
⇒ Ensemble de données trop complexe pour être géré «manuellement»: il faut faire appel à un système d’information.
Cycle de vie d’une base de données
Le cycle de vie d’une base de donnée (BD) se décompose en trois phases
Informatique I Systèmes d’Information – 6 –
Cycle de vie d’une BD: la conception
La phase de conception est une phase d’analyse, qui aboutit à déterminer le futur contenu de la BD.
L’ensemble des concepteurs et des utilisateurs potentiels doivent se mettre d’accord sur la nature et les caractéristiques des informations qui devront être manipulées.
La description obtenue (qui ne fait généralement référence à aucun système de SGBD particulier) utilise un langage formel basé sur des concepts bien établis, comme les objets, les liens et les propriétés. Cette description est appelée: schéma conceptuel (des besoins).
L’ensemble des concepts utilisés par le langage formel de description choisi est appelé le modèle conceptuel.
Cycle de vie d’une BD: schéma conceptuel
Un schéma conceptuel se décompose généralement en deux parties:
De plus, il faudra pouvoir décrire des contraintes (règles) pesant sur les données (comme par exemple: «il ne doit pas y avoir plus de 20% d’écart entre les salaires des employés d’une même service et d’une même catégorie»).
Ces contraintes, appelées contraintes d’intégrité, seront décrites dans un langage permettant d’exprimer des règles compatibles avec le modèle conceptuel choisi.
Le modèle conceptuel illustré dans le cours est le modèle
Cycle de vie d’une BD: implantation
La phase d’implantation est une phase qui consiste:
Cycle de vie d’une BD: schéma logique
La phase d’implantation nécessite la traduction du schéma conceptuel dans un schéma utilisant les concepts du modèle employé par le SGBD (appelé modèle logique).
Le nouveau schéma obtenu est appelé le schéma logique (ou aussi quelquefois [malheureusement] «schéma conceptuel»).
Le modèle logique illustré dans le cours est le modèle relationnel.
Cycle de vie d’une BD: schéma interne
Pour l’implémentation effective des données, il faut encore effectuer les choix relatifs à leur stockage et leur structuration sur les mémoires secondaires, sous la forme d’un ensemble de fichiers.
Ces choix sont consignés dans ce qu’on appelle le schéma interne de la base de données, qui repose sur le modèle interne, dont les concepts sont ceux du système de fichiers utilisé.
Cycle de vie d’une BD: exploitation
En phase d’exploitation, l’utilisation de la BD se fait au moyen d’un langage de manipulation de données –LMD– qui permet d’exprimer aussi bien des requêtes d’interrogation (pour obtenir des informations contenues dans la base) que des requêtes de mise à jour (pour modifier le contenu de la base).
Le langage de manipulation de données illustré dans le cours est: SQL
(Structured Query Langage
) , version 92.
Cycle de vie d’une BD: schémas externes
Lors de son interaction avec la BD, chaque utilisateur (ou groupe d’utilisateurs) n’est généralement intéressé que par une partie des données stockées dans la base.
On lui associe donc un schéma externe (aussi appelé vue
) décrivant le sous-ensemble de la base auquel il a accès, structuré de façon à répondre à ses besoins spécifiques.
Dans les SGBD actuels, le modèle utilisé pour décrire les schémas externes est le même que celui du schéma logique.
Les schémas d’une base de données
La description complète d’une base de données est donc réalisée à l’aide de 4 types de schémas, dont 3 sont directement utilisés par le SGBD.
Il sont organisés de la façon suivante: schéma conceptuel
BD vue par les concepteurs modèle conceptuel (ici modèle entité-association) schéma logique
BD vue par le SGBD modèle logique (ici modèle entité-association) schéma interne
BD vue par le système modèle interne (ici système de fichiers) Informatique schémas externes
BD vue par les utilisateurs modèle logique (ici modèle relationnel)
Administrateur(s)
Concepteur(s)
Utilisateurs
Système informatique
Principe de fonctionnement d’un SGBD (1)
L’objectif fondamental de l’organisation d’un SGBD est
d’assurer l’indépendance programmes/données:
De plus un SGBD étant utilisé simultanément par plusieurs utilisateurs, il doit pouvoir résoudre les problèmes internes de coordination des actions, de cohérence (intégrité) des données, et contrôler le bon déroulement continu de ses activités.
se soucier des choix opérés au niveau interne en matière de fichiers;
Utilisateurs interface(s) utilisateurs interface d’accès physiques Support physique
Principe de fonctionnement d’un SGBD (2)
En conséquence, un SGBD est habituellement organisé en trois couches :
Principe de fonctionnement d’un SGBD (3)
SGBD
Utilisateurs
interface(s)
utilisateurs
interface
d’accès physiques Support
physique
schémas
externes
schéma
logique
schéma
interne
dialogue contrôle stockage
couche
externe
couche
logique
couche
interne
Principe de fonctionnement d’un SGBD (4)
Avec la structuration qui vient d’être définie, le principe de fonctionnement d’un SGBD est le suivant:
le LMD accepté par le SGBD est d’abord validée du point de vue syntaxique(conformité à la grammaire du langage)
«aaa.aaa....aaa.a.a.a» requête utilisateur schéma
1) validation externe syntaxique 2) validation sémantique
Principe de fonctionnement d’un SGBD (5)
Cette traduction se fait dans la couche logique, et est accompagnée des contrôles sur la confidentialité, la concurrence d’accès, ...
«aaa.aaa....aaa.a.a.a» requête utilisateur
«bbb.bb.bb.bbb.bb»
«bbb»
«bb»
«bb»
«bb»
«bbb»
schéma
externe
traduction
découpage
schéma
logique
Principe de fonctionnement d’un SGBD (6)
«bbb»
«bb»
schéma
externe
schéma
logique
schéma
interne
«c»
«cc»
«cc.cc»
Modèle «entité-association» (1)
Le modèle entité-association (aussi appelé modèle entité-relation) est le modèle conceptuel de description statique utilisé dans la plupart des méthodes et outils d’aide à la conception de base de données (MERISE, IDA, ...)
Les concepts de base de ce modèle sont
Modèle «entité-association» (2)
Les entités permettent de représenter les objets (concrets ou abstraits) du monde réel à propos desquels on veut enregistrer des informations.
Les entités sont structurées par le biais de types qui regroupent des ensembles d’entités perçues comme similaires et ayant les mêmes caractéristiques.
Les associations permettent de représenter les liens entre entités, liens au sein desquels les entités peuvent jouer des rôles spécifiques (agent, objet, producteur, ...).
De même que les entités, les associations peuvent être typées, i.e. regroupées en ensembles homogènes d’associations (associations liant des entités de même type, avec les mêmes rôles et possèdant les mêmes propriètés).
Les attributs permettent de représenter des propriétés associées à un type d’entité (TE), un type d’association (TA) ou participant à la définition d’un attribut complexe.
L’ensemble des attributs d’un TE ou TA représente l’ensemble des informations inhérentes que l’on souhaite conserver sur les entités ou les associations.
Modèle «entité-association» (3)
Exemples d’entités:
Exemples d’associations:
Exemples d’attributs:
)
)
Identifiants
Un identifiant de TE (respectivement de TA) est un ensemble minimum d’attributs tel qu’il n’existe pas deux occurrences de TE (respectivement de TA) partageant simultanément les mêmes valeurs pour cet ensemble d’attributs.
Un identifiant permet donc de référencer de façon non ambiguë une occurrence de TE ou de TA.
Par exemple, le matricule peut servir d’identifiant pour les étudiants
Attributs
Un attributest décrit par les spécifications suivantes:
Exemple:
Attribut «Date de naissance»
nom date de naissance définition Indique les jour, mois et année de naissance d’une personne cardinalités min=1, max=1 (toute personne à exactement une date de naissance) type:
jour (fait l’objet d’une définition séparée)
mois (définition séparée)
année (définition séparée)
Interprétation des cardinalités
min = 0 l’attribut est facultatif (exemple: un numéro de téléphone privé) max = 1 l’attribut est monovalué (exemple: une date de naissance)
min = 1 l’attribut est obligatoire (exemple: une date de naissance) max = n l’attribut est multivalué (exemple: les prénoms d’une personne)
Récapitulatif des types d’attributs :
➱ attribut simple: (type = simple) un attribut qui n’est pas composé (et est donc associé à un domaine de valeurs).
Exemple: salaire (encore que...), couleur, ...
➱ attribut complexe: (type = composé) un attribut composé
Exemple: date (jour+mois+année), ...
➱ attribut monovalué: (max = 1) un attribut qui ne peut prendre qu’une seule valeur par occurrence
Exemple: date de naissance, nom, ...
➱ attribut multivalué: (max = n) un attribut qui peut prendre plusieurs valeurs par occurrence
Exemple: prénom, n˚ de téléphone, ...
➱ attribut facultatif: (min = 0) un attribut qui peut ne pas prendre de valeur dans une occurrence
Exemple: salaire, n˚ de téléphone, ...
➱ attribut obligatoire: (min = 1) un attribut qui doit prendre au moins une valeur par occurrence
Exemple: nom, couleur, ...
Entités
Un type d’entité (TE) est décrit par les spécifications suivantes:
Exemple:
Type Entité «cours»
nom cours
définition regroupe les informations gérées par le SAC sur les cours dispensés à l’EPFL attributs: attribut-1: nom_cours
attribut-2: cycle_section identifiant attribut-1+attribut-2
Associations
Un type d’association (TA) est décrit par les spécifications suivantes:
Exemple:
Type association «suit» nom suit
définition définit les cours suivis par un étudiant sous la forme: un étudiant suit un cours TE participants <étudiant (1:n),>, <cours (0:n> attributs:
attribut-1: identifiant de étudiant
attribut-2: identifiant de cours identifiant attribut-1+attribut-2
Interprétation des cardinalités
min = 0 le rôle est facultatif (exemple: un cours peut n’être suivi par aucun étudiant) max = 1 le rôle est exclusif (un cours ne peut être donné que dans 1 seule salle) min = 1 le rôle est obligatoire (un cours doit être donné par au moins 1 professeur) max = n le rôle est duplicable (un cours peut être suivi par plusieurs étudiants)
Informatique I Systèmes d’Information – 28 –
Occurrence et population
On appelle occurrence d’un TE (respectivement d’un TA), toute entité (respectivement association) appartenant à l’ensemble décrit par le TE (respectivement le TA).
On appelle population du TE (respectivement du TA), l’ensemble des occurrences du TE (respectivement du TA).
L a base de données décrite par un schéma entité-association est donc l’ensemble des populations des
TE et des TA apparaissant dans le schéma.
Les définitions des TE et des TA peuvent, de plus, être structurées au sein d’une hiérarchie de généralisations.
Diagramme entité-association
Le modèle entité-association permet un représentation graphique [plus lisible] – appelée diagramme – du schéma d’une base de données.
= une entité
= une association
i:j
un rôle ou un
attribut,
i = card. min
j = card. max
=
xyz = un attribut identifiant
attribut
simple attribut complexe attribut
attribut id. attribut id
identifiant
attribut
simple
attribut
simple
i:j i:j
i:j i:j
i:j
i:j
i:j i:j
i:j
rôle rôle
Contraintes d’intégrité
Les concepts d’entités, d’associations et d’attributs ne suffisent généralement pas pour décrire tout ce qui caractérise les données associée à un schéma.
On peut être amené à exprimer des règles addtionnelles pour restreindre la combinatoire des occurrences autorisées par la description statique.
De telles règles, souvent exprimées dans un formalisme inspiré de la logique du 1er ordre sont appelées:
contraintes d’intégrité(CI)
Les contraintes d’intégrité les plus fréquentes limitent les valeurs possibles d’un attribut à certaines valeurs du domaine sous-jacent.
Un cours
… …
Exemple de CI
Les arguments c1 et c2 de l’association «Prérequis(c1,c2)» ont ici respectivement pour rôle: «est-un» et «pour » «Prérequis(c1,c2)» signifie donc: c1 est-un Prérequis pour c2
Modèle logique: modèle relationnel
Le modèle relationnel [inventé en 1960], est actuellement le modèle logique le plus répandus parmis les SGBD du marché.
Son principal avantage est sa grande simplicité (ce qui lui permet d’être bien étudié sur le plan théorique, et facilement implantable) ...
... mais c’est également son principal défaut, car sa simplicité en fait un outil sémantiquement trop pauvre pour pouvoir correctement modéliser la complexité du monde réel (pour cela, d’autres modèles plus sophistiqués ont été développés, tels que les modèles orientés objets)
Constituants d’un modèle relationnel
Dans le modèle relationnel, les types d’entités et les types d’associations sont
représentés par un concept unique: la relation.
La relation représentant un TE ou un TA est un tableau à deux dimensions, usuellement appelé table, dont les colonnes sont associées aux attributs du TE ou du TA, et les lignes correspondent aux occurrences (également appelées tuples) du TE ou du TA.
Matricule Nom Prénom Age
136 Dupont Jean 19
141 Dupond Annie 20
245 Duval Annie 19
341 Dumond Marc 19
... ... ... ...
Usuellement, le ou les attributs identifiant de la relation sont soulignés.
Identifiants et identifiants externes
Comme dans le cas du modèle entité-association, un identifiant de relation est un ensemble minimal d’attributs, tel qu’il n’existe pas deux tuples de la relation ayant des mêmes valeurs pour ces attributs.
Certains ensembles d’attributs d’une relation peuvent correspondre aux identifiants d’une autre relation.
Ces ensembles d’attributs sont alors appelés identifiants externes. matricule cours cycle cours cycle salle matricule nom prénom relation «suit» relation «cours» relation «étudiant»
Définition d’une relation
Une relation est décrite par les spécifications suivantes:
Exemple:
Relation «étudiant»
nom Etudiant
définition ensemble des informations gérées par le SAC concernant les étudiants de l’EPFL
attributs
matricule Domaine Dnum
nom Domaine Dnom
identifiants matricule
∅
Exemple de domaines:
Dnom: chaîne (caractères) de lng. maximal 30
Dnum: entier compris entre 0 et 99999
Dcol: {bleu, vert, rouge}
Population, schéma et contraintes
La population d’une relation est l’ensemble de ses tuples.
Le schéma (logique) d’une base de données relationnelle est l’ensemble des schémas (logiques) de ses relations.
Contraintes imposées par le modèle relationnel:
Règles de modélisation (1)
La prise en compte des attributs complexes du modèle entité-association
peut se faire de trois façons:
chaîne de caractères); l’attribut est conservé, mais les valeurs de ses constituants ne sont plus individuellement accessibles (perte d’informations structurelles)
(pas de perte d’information, mais complexification notable du schéma)
date de naissance
"21 mars 1975"
"18 décembre 1961"
"21 mars 1975"
Jour Mois Année
21 3 1975
18 12 1961
21 3 1975
date Jour Mois Année
d1 21 3 1975
d2 18 12 1961
date de
naissance
d1
d2
d1
Règles de modélisation (2)
La prise en compte des attributs multivalués du modèle entité-association se fait par la création d’une relation supplémentaire, associant les valeurs d’un identifiant de l’entité ou de l’association décrite par un attribut multivalué aux valeurs multiples de l’attribut.
Matricule Nom Prénoms
231 Dupont Pierre, Claude
428 Durand Claude, Jean
Matricule Nom
231 Dupont
428 Durand
Matricule Prénom
231 Pierre
231 Claude
428 Claude
428 Jean