Académique Documents
Professionnel Documents
Culture Documents
Conception de Systmes
dInformation
Antoine Zimmermann
antoine.zimmermann@emse.fr
(adapt du cours de Laurent Vercouter)
Contenu du cours
Partie Base de Donnes
Novembre/Dcembre 2013
Objectif : savoir concevoir un
modle de BDD et limplanter avec
un langage de manipulation de
donnes
Plan
Introduction sur les Systmes dInformation
Notions de base
Mise en uvre technique
Le Modle Entit-Association
Concepts
Exemple
Le modle relationnel
Concepts
Algbre relationnelle
sorties
rgulation
Fonctions du SI
Un SI a deux fonctions principales :
La production dinformation
Collecter des informations
Traiter et transmettre des informations
Mmoriser des informations
Informatique et SI
Linformatique facilite la gestion dun SI mais ne le
couvre pas dans son ensemble.
SI Oprationnel
SI Informatis
SI sans Informatique
Les bibliothques et administrations utilisaient des
SI bien avant linvention de lordinateur
Un SI peut tre mis en uvre laide de cahiers,
registres, indexes, etc
mais un SI sans informatique a peu dintrt car les
tches ne peuvent tre automatises (le SI doit
tre exploit par un oprateur humain)
Communication entre SI
Les SI dentreprises partenaires (associes, filiales,
client/fournisseur) doivent communiquer
par des moyens classiques (courrier, )
par des outils informatiques : EDI (Echange de Donnes
Informatises)
Transport ferroviaire
La SNCF a besoin de grer linformation sur les
gares, les voies, les trains, les wagons, les places, les
classes, les horaires, les tarifs, les distances, les
conducteurs, les contrleurs, les rservations, etc.
Qui a besoin de linformation ?
Guichetiers, et par ce biais, le client
Voyages-sncf.com, et par ce biais, linternaute
Les crans daffichage des trains larrive et au dpart
Le systme de gestion daiguillage
Le gestionnaire comptable
Le service de maintenance
2013, Antoine Zimmermann
Plan
Introduction sur les Systmes dInformation
Notions de base
Mise en uvre technique
Le Modle Entit-Association
Concepts
Exemple
Le modle relationnel
Concepts
Algbre relationnelle
Systme de Gestion de
Fichiers
Systme utilis pour grer les donnes dun disque
(disquette, disque dur, CD-Rom, )
Un fichier = une suite ordonne de donnes
2 types daccs aux donnes dun fichier
Squentiel (depuis ladresse de dbut du fichier)
Accs direct (selon un dcalage par rapport ladresse de dbut)
Base de Donnes
Une Base de Donnes (BdD) est un ensemble
structur de donnes ayant un sens et accessibles
par lordinateur pour satisfaire simultanment
plusieurs utilisateurs
nom, tl., ml., adresse, relation sociale
Unicit
pas de redondance d'information dans la BdD
Indpendance
indpendant du modle de stockage
Concurrence
Gestion daccs simultans une mme donne.
Performance
temps dexcution raisonnable
Intgrit
garanties de fiabilit et de cohrence.
Robustesse
tolrant aux problmes matriels, logiciels ou humains
On ne soccupe
Que de a
Exemple SNCF
Plusieurs utilisateurs :
BdD dentreprise
(employs, salaires, etc)
Internaute
Usager
2013, Antoine Zimmermann
SGBD SNCF
Guichetier
BdD statistiques
(usage, retards,
satisfaction, etc)
Plan
Introduction sur les Systmes dInformation
Notions de base
Mise en uvre technique
Le Modle Entit-Association
Concepts
Exemple
Le modle relationnel
Concepts
Algbre relationnelle
Modle Entit-Association
Modle relationnel
Concepts de base :
attributs
Attribut : caractristique d'une entit (ou d'une
association) que le concepteur juge ncessaire de
rpertorier
Remarques :
Les attributs sont typs
Une entit dfinit les attributs par leur type
Une occurrence affecte une valeur chaque attribut
2013, Antoine Zimmermann
Concepts de base : cl
Cl : attribut ou un ensemble d'attribut qui permet
d'identifier de manire unique une occurrence d'une
entit parmi toutes ses occurrences
Concepts de base :
association
Association : lien entre des entits prsentant un
intrt pour la conception que l'on souhaite raliser
Concepts de base :
association (2)
Une association peut :
relier plus de 2 entits
bnficier dattributs
Cardinalit dune
association
La cardinalit d'une association indique le nombre
d'occurrences de chaque entit qui peuvent tre
impliques dans une mme association
Exemple de modlisation
Entit-Association
On souhaite concevoir le SI correspondant la gestion de la
scolarit de lEMSE. La scolarit fonctionne de la manire
suivante :
Un lve appartient une promotion (1A, 2A ou 3A).
Les lves dune promotion suivent plusieurs groupes
pdagogiques (GP). Chaque groupe pdagogique est
constitu dunits pdagogiques (UP).
A chaque GP et UP est affect un enseignant responsable.
Un lve obtient une note par UP et par GP quil suit.
1:1
Groupe Pdagogique
suit
note : rel
1:N
dirige
1:N
1:N
suit
Enseignant
1:N
1:1
Promotion
nom: string
nom: string
0:N
donne accs
note : rel
1:N
1:1
nom: string
prenom: string
0:N
enseigne
Plan
Introduction sur les Systmes dInformation
Notions de base
Mise en uvre technique
Le Modle Entit-Association
Concepts
Exemple
Le modle relationnel
Concepts
Algbre relationnelle
Le modle Relationnel
Querying Databases
What is a query?
an expression in relational algebra, i.e., operations on tables
The result of a query on one or more table(s) is a table
Binary Operations
Some definitions
A table is a set of rows
A row L is a sequence of values Vi, L = (V1, ... , Vi, ..., Vn)
The row (Vi) built from L is denoted L(i)
Let be two rows L1 = (V1, ..., Vn) and L2 = (W1, ..., Wm), the
concatenation of L1 and L2, denoted L1L2 is:
L1L2 = (V1, ..., Vn, W1, ..., Wm)
Selection
Choice of rows according to a Boolean condition
condition ( Table )
Selection
Choice of rows according to a Boolean condition
condition ( Table )
Person
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Clark K.
35
Metropolis, USA
Krypton
Lois L.
28
Metropolis, USA
Metropolis, USA
Tarzan
25
London, UK
Forest, Benin
Address="London, UK"(Person)
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Tarzan
25
London, UK
Forest, Benin
Selection
Choice of rows according to a Boolean condition
condition ( Table )
Person
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Clark K.
35
Metropolis, USA
Krypton
Lois L.
28
Metropolis, USA
Metropolis, USA
Tarzan
25
London, UK
Forest, Benin
Address="London, UK"(Person)
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Tarzan
25
London, UK
Forest, Benin
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Lois L.
28
Metropolis
Metropolis
Address=Birthplace(Person)
Selection (contd.)
Persons being less than 30 y.o.:
Age<30(Person)
Name
Age
Address
Birthplace
Lois L.
28
Metropolis
Metropolis
Tarzan
25
London, UK
Forest, Benin
this is a table
Selection (contd.)
Persons being less than 30 y.o.:
Age<30(Person)
Name
Age
Address
Birthplace
Lois L.
28
Metropolis
Metropolis
Tarzan
25
London, UK
Forest, Benin
Selection (contd.)
People less than 30 y.o.:
Age<30(Person)
Name
Age
Address
Birthplace
Lois L.
28
Metropolis
Metropolis
Tarzan
25
London, UK
Forest, Benin
Address="London, UK"(Age<30(Person))
Name
Tarzan
Age
Address
Birthplace
25
London, UK
Forest, Benin
Selection (contd.)
People less than 30 y.o.:
Age<30(Person)
Name
Age
Address
Birthplace
Lois L.
28
Metropolis
Metropolis
Tarzan
25
London, UK
Forest, Benin
Address="London, UK"(Age<30(Person))
Conjunction of selection:
Age
Address
Birthplace
25
London, UK
Forest, Benin
10
Projection
Choice of columns in a table
column(s) ( Table )
12
Projection
Choice of columns in a table
column(s) ( Table )
Person
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Clark K.
35
Metropolis, USA
Krypton
Lois L.
28
Metropolis, USA
Metropolis, USA
Tarzan
25
London, UK
Forest, Benin
Name,Age(Person)
Name
Age
James B.
47
Clark K.
35
Lois L.
28
Tarzan
25
13
Projection (contd.)
Name of people living in London:
Name(Address="London, UK"(Person))
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Tarzan
25
London, UK
Forest, Benin
14
Projection (contd.)
Name of people living in London:
Name(Address="London, UK"(Person))
Name
Age
Address
Birthplace
James B.
47
London, UK
London, UK
Tarzan
25
London, UK
Forest, Benin
Name
James B.
Tarzan
15
Cartesian Product
Each row of the first table is combined with all the rows of
the second table
Table1 Table2
17
Cartesian Product
Each row of the first table is combined with all the rows of
the second table
Table1 Table2
Man
Name
James B.
Address
London
Clark K.
Metropolis
Tarzan
London
Woman
Name
Lois L.
Catwoman
Name1
Address1
Address
Metropolis
Gotham City
Name2
Address2
James B.
London
Lois L.
Metropolis
James B.
London
Catwoman
Gotham City
Clark K.
Metropolis
Lois L.
Metropolis
Clark K.
Metropolis
Catwoman
Gotham City
Tarzan
London
Lois L.
Metropolis
Tarzan
London
Catwoman
Gotham City
18
Name
James B.
Address
London
Clark K.
Metropolis
Tarzan
London
City
CName
Population
Country
London
7,556,900
UK
Metropolis
8,391,881
USA
Man City
Name
Address
CName
Population Country
James B.
London
London
7,556,900
UK
James B.
London
Metropolis
8,391,881
USA
Clark K.
Metropolis
London
7,556,900
UK
Clark K.
Metropolis
Metropolis
8,391,881
USA
Tarzan
London
London.
7,556,900
UK
Tarzan
London
Metropolis
8,391,881
USA
19
Address=CName(Man City)
Name
Name
Address
CName
Population
Country
James B.
London
London
7,556,900
UK
James B.
London
Metropolis
8,391,881
USA
Clark K.
Metropolis
London
7,556,900
UK
Clark K.
Metropolis
Metropolis
8,391,881
USA
Tarzan
London
London
7,556,900
UK
Tarzan
London
Metropolis
8,391,881
USA
Address
CName
Population
Country
James B.
London
London
7,556,900
UK
Clark K.
Metropolis
Metropolis
8,391,881
USA
Tarzan
London
London
7,556,900
UK
20
Name1
Address1
Name2
Address2
James B.
London
Lois L.
Metropolis
James B.
London
Catwoman
Gotham City
Clark K.
Metropolis
Lois L.
Metropolis
Clark K.
Metropolis
Catwoman
Gotham City
Tarzan
London
Lois L.
Metropolis
Tarzan
London
Catwoman
Gotham City
21
Name1
Name1
Clark K.
Address1
Name2
Address2
James B.
London
Lois L.
Metropolis
James B.
London
Catwoman
Gotham City
Clark K.
Metropolis
Lois L.
Metropolis
Clark K.
Metropolis
Catwoman
Gotham City
Tarzan
London
Lois L.
Metropolis
Tarzan
London
Catwoman
Gotham City
Address1
Metropolis
Name2
Lois L.
Address2
Metropolis
22
1 2 = { L1L2 | L1 T1 and L2 T2 }
23
Join
Cartesian product followed by a selection
2
24
Join
Cartesian product followed by a selection
2
Name
Man
James B.
Address
City
London
Clark K.
Metropolis
Tarzan
London
CName
Population
Country
London
7,556,900
UK
Metropolis
8,391,881
USA
Name
Address
Address=CName(Man City)
CName
Population
Country
James B.
London
London
7,556,900
UK
Clark K.
Metropolis
Metropolis
8,391,881
USA
Tarzan
London
London.
7,556,900
UK
25
Join (contd.)
Couple man-woman of the same city
Man
Name
James B.
Woman
Address
Lois L.
London
Clark K.
Metropolis
Tarzan
London
Catwoman
Name1
Clark K.
Name
Address1
Metropolis
Address
Metropolis
Gotham City
Name2
Lois L.
Address2
Metropolis
26
L2(j) }
Let m be the number of columns of T1
T
i = j+m(T1 T2)
Union
Man
Name
James B.
Address
Woman
London
Clark K.
Metropolis
Tarzan
London
Lois L.
Catwoman
Name
Man Woman
Name
James B.
Metropolis
Gotham City
Address
London
Clark K.
Metropolis
Tarzan
London
Lois L.
Metropolis
Catwoman
Address
Gotham City
28
Union
Man
Name
James B.
Address
Woman
London
Clark K.
Metropolis
Tarzan
London
Lois L.
Man Woman
James B.
Gotham City
Address
London
Clark K.
Metropolis
Tarzan
London
Lois L.
Metropolis
Catwoman
Address
Metropolis
Catwoman
Name
Name
Gotham City
Address="Metropolis"(Man Woman)
Name
Address
Clark K.
Metropolis
Lois L.
Metropolis
29
Difference
Man
Name
James B.
Address
London
Clark K.
Metropolis
Tarzan
London
Woman
Name
Lois L.
Catwoman
Address
Metropolis
Gotham City
What are the cities for which we know at least one woman and
no man?
Address(Woman) Address(Man)
Address
Gotham City
30
Formalising difference
T1 T2 is the set containing the rows of T1 that are not in T2.
T1 T2 = { L | L T1 and L T2 }
31
Query Tree
What are all the possible couples with a man from London
and a woman from Metropolis?
OR
32
Query Tree
What are all the possible couples with a man from London
and a woman from Metropolis?
Name ,Name
1
4 col., 2 rows
4 col., 6 rows
2 col., 3 rows
Man
2 col., 2 rows
Woman
33
Query Tree
What are all the possible couples with a man from London
and a woman from Metropolis?
Name ,Name
1
4 col., 2 rows
4 col., 6 rows
2 col., 3 rows
2 col., 2 rows
1 col., 2 rows
Name
2 col., 2 rows
Address ="London"
1
2 col., 3 rows
Man
Woman
Man
1 col., 1 row
Name
2 col., 1 row
Address ="Metropolis"
2
2 col., 2 rows
Woman
2*3+2*2+2*2+2*1+1*2+1*1 =
19 cells manipulated
34
Du modle Entit-Association
vers le modle relationnel
Un modle Entit-Association peut se traduire
simplement en un modle relationnel
Schma de donnes plus formalis
Possibilit dutiliser lalgbre relationnel pour exprimer
des requtes
Rgle 1
Toute entit est traduite par une relation
contenant les mmes attributs et cls que l'entit
Se traduit par :
Vehicule(immatriculation: string, marque: string)
Proprietaire(nom: string, prenom; string, naissance: date)
Rgle 2
Toute association depuis une entit R vers une entit R'
ayant une cardinalit 0:1 ou 1:1 se traduit par l'ajout, dans
la relation rsultat de la traduction de R, de la cl de R' avec
le statut d'attributs
Se traduit par :
Vehicule(immatriculation: string, marque: string, nom_prop:
string, prenom_prop; string, naissance_prop: date)
2013, Antoine Zimmermann
Rgle 3
Toute association entre entits ayant des cardinalits 0:N ou 1:N chaque
extrmit se traduit par la cration d'une relation contenant comme attributs
les cls des entits associes ainsi que dventuels attributs de l'association.
La cl de la relation cre est l'ensemble des attributs reprsentant les cls
des entits associes.
Conduit
Chauffeur
0:N
Se traduit par :
Achete(immatriculation: string, nom_cond: string, prenom_cond:
string, naiss_cond: date)
2013, Antoine Zimmermann
Introduction de cls
numriques
Quand la cl dune entit est compose de
plusieurs attributs, il peut tre efficace dintroduire
une cl artificielle numrique
Cette cl ne correspond aucun attribut rel mais
facilite les jointures et slection
Ex: Proprietaire(numero: int, nom: string, prenom;
string, naissance: date)
! Le numro de scurit sociale serait idal mais
interdit par la CNIL !
2013, Antoine Zimmermann
Dpendances fonctionnelles
(1)
Une dpendance fonctionnelle (DF) reprsente le
fait qu la valeur d'un ou plusieurs attributs, on
associe une valeur pour un autre attribut
Soit R(A1,A2,, An) et une DF de Ai vers Aj se note :
Ai Aj
Par exemple, il existe une DF entre le numro et le
nom dun propritaire
numero nom
2013, Antoine Zimmermann
Dpendances fonctionnelles
(2)
Une DF A B est dite lmentaire si un sousensemble de la cl n'est pas source de la DF
a A, A {a} B
Une DF A B est dite directe s'il n'existe pas
d'ensemble d'attributs C tel que
A C et C B
Suite du cours
2013
2014
Le projet CSI
Concevoir une application de gestion dhpital
Le systme doit permettre de grer des informations sur
des chambres, lits, patients ainsi que le personnel de
lhpital. Limplmentation utilisera un BdD relationnel et
une interface Web code en PHP.
Une modlisation dtaille du domaine sera demande,
puis une implmentation partielle des fonctionnalits.
Le projet se fait par quadrinme dfinir dici vendredi.
Pour limplmentation des fonctionnalits, les groupes
se diviseront en binmes.
2013, Antoine Zimmermann
Projet alternatif
Nous avons un projet avec un vrai client ayant un
besoin en systme dinformation
Le travail effectuer est de lordre de difficult dun
projet CSI
Projet tuteur par Philippe Beaune, qui est en contact
avec le client
Seulement quelques groupes volontaires peuvent
choisir ce projet
Attention : le travail effectuer nest pas forcment
quitable par rapport au projet minesbook mais
correspond une situation relle dingnieur
2013, Antoine Zimmermann
http://www.emse.fr/~zimmermann/Teaching/CSI/