Vous êtes sur la page 1sur 30

1.

L’informatique

Cours d’Informatique
“Bases de données” Que serait le monde sans l’informatique ?

1° année

Antoine Cornuéjols
!"#$%%&&&'()*+#(*,-./0!'1*%21*3,41+%5/56*/-%0+*42/7+8-%
(4.+,4/'0+*42/7+8-9()*+#(*,-./0!'1*

!"#$%%&&&'()*+#(*,-./0!'1*%21*3,41+%5/56*/-%0+*42/7+8-%:/(0!,4)%;<=>%:?%?+2*-3@;3ABCD'#E1
Informatique - Bases de données • ! A. Cornuéjols 2014 2 /119

Rosetta et Philae 1. L’informatique

Transports
Avions
Voitures (des ordinateurs sur roues)

Communications
Réseaux (communications par paquets)
!"#$%&'"#
Satellites
()*+#,-+'"#!"#$!%&'()*&+,-$!
Modes de pensée
!+.$/.!"#!.&!/(&0#*/,)(#
Calculs complexes / Simulations
!"00/#,$+'"#
1.+#,2$+'"#!"#$!#123()#-*#$!$,4$!*,-/(&)-/#$
Connaissances toujours à portée de clics
Modification de la mémoire et de la cognition
3)+,4%0%#4!"#$!",--3#$
Informatique - Bases de données • ! A. Cornuéjols 2014 3 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 4 /119
1. Changement de paradigme 1. Changement de paradigme

Carte analogique vs. carte numérique sur tablette graphique La photo numérique

Informatique - Bases de données • ! A. Cornuéjols 2014 5 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 6 /119

1. Changement de paradigme 1. Changement de paradigme

La photo numérique La photo numérique

Support numérique
Copies multiples
Affichage sur plusieurs dispositifs

Effets spéciaux : calculs

Les appareils à venir vont être très peu chers et très bons ...

... grâce à l’informatique

Informatique - Bases de données • ! A. Cornuéjols 2014 7 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 8 /119
Partie 1 - Place de l’informatique Partie 5 - Manipulation : SQL
Partie 2 - Les bases de données
Partie 3 - Bases sur les BD
Partie 6 - PHP / MySQL
Quatre approches pour appréhender le monde
Partie 4 - Conception des BD

56!!!>;2)():4#!?!"#$*()2+,-!#/!*.&$$#;#-/

@6!!!AB3,():4#!?!C,"3.)$&+,-D!*,-$/(4*+,-!"#!/B3,()#$

56!748#$/9*#!:4#!.8)-%,(;&+:4#!<
56!!!6,0/.+'"#!?!$E$/F;#$!*,;2.#1#$!#/G,4!-,-!(#2(,"4*+'.#$
=-!!"#$%&#'(%)&(*!$4(!.#!;,-"#

78!!!9"/,..%:;%:;"##<%-!HI!J)K!"&/&!LM
F4+*5/-G5(--/-GE/GE+44H/-G425H*,-H/-
I(*)/5/4.GE,-#+4,68/-
J+2*0/-G/.G1+*5(.-G.*K-GE,LH*/4.-

Informatique - Bases de données • ! A. Cornuéjols 2014 9 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 10 /119

L’informatique et les sciences du vivant Le calcul et l’information comme nouveaux paradigmes

!"#$%"&'#()&#&"*+","$'#-*"#.

/)#!"#$%&'()#"'#'0*'"&#+"&#&12"$1"&#"$#3#0,2-*"&#4#$%"52&'"6)2"$'#()&
3#!"#$"#%&$$'()#*')#+,-./"#0(0'$.1#+"#%"2232"1#+"#4))31#&/5'$"1#
N3-,;#!O!")P&)-#$!"#!;)..)#($!"#!2&)(#$!"#!'&$#
Q.)K-#;#-/$ ($+(0(+3#".#*"3.6-./"#7-7"#")*8%"1#+&$.#&$#$"#*3())"#*')#+(/"#
R#*,-$/(4*+,- 93,(2#!"#$%&#+"#2,($:&/7'4&$1#93,(2#"'()"&#+"#2,($:&/7'4&$1#93,(2#
S-/#(2(3/&+,-
*+&"#93,(2#'&,#)"#+"#2,($:&/7'4&$;#4

/"#*"+,-(.)%)#/0+1&%-2'()#$%)*6)2'#("*'78'6"#()&#"$106"#9'9#
Michel Serres!!
:910*;"6'
;#$4(#$!2.&-3/&)(#$
$/,*T&K#!#/!)-/#((,K&+,-$!"#!'&$#$!"#!",--3#$!")U#($#$!#/!")$2#($3#$
#1/(&*+,-$!"#!/#-"&-*#$!#/!"#!*,((3.&+,-$

Informatique - Bases de données • ! A. Cornuéjols 2014 11 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 12 /119
1. L’informatique comme outil de pensée en biologie 1. L’informatique comme science

• La génétique comme un langage : codage / décodage Par rapport à d’autres sciences ?


• ADN --> ARN --> Protéines
• Protéines <--> Protéines
• Le calcul sur graphe permet de modéliser la :
• diffusion d’un virus
• la compétition entre espèces <$"#3+&)#+)04)015&%%-/"*&)1
Au point que certains
• La dynamique évolutive comme théorie des jeux répétés sur réseaux
6-&3$##)%)#/ physiciens pensent que
• Les systèmes multi-agents permettent de modéliser les : l’univers n’est en fait que la
• insectes sociaux :4)!",)/!V/(#!=")0+.,-< manifestation d’un
• bancs de poissons gigantesque ordinateur.

• La récursion permet de modéliser la croissance des plantes #/!)<+.,-<


• ...
7(%"*&3-2$##:*#,0$:"

Informatique - Bases de données • ! A. Cornuéjols 2014 13 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 14 /119

1. L’informatique 1. L’informatique

1- @+$?,#%-
Architecture
1- Science du raisonnement et de son automatisation
Système d’exploitation ; environnement de programmation
Machine
Algorithmes 2 - A#=")0+'"#
Codage
Organisation : fichiers, BD, ...

2- Science du codage de l’information


3 - >.*"),4?0%
Numérisation Expressions ; variables ; fonctions ; ...
Indépendance du support matériel Structure

Communication 4 - B+#*+*%
Traduction sans ambiguïté entre hommes et machines
Informatique - Bases de données • ! A. Cornuéjols 2014 15 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 16 /119
1. Qu’est-ce que l’informatique 1. Qu’est-ce que l’informatique

L’informatique concerne les abstractions ...


... en faisant attention à :
L’informatique concerne les abstractions ...
• L’efficacité
• Rapidité
• Taille mémoire
• Choisir les bonnes abstractions • Coût calcul

• Utiliser plusieurs niveaux d’abstraction simultanément • Fonctionnement correct


• Est-ce que cela fait ce que l’on veut ?
• Définir les relations entre ces niveaux d’abstraction • Est-ce que le programme donne une réponse ?

• -ilité
• Simplicité et élégance
• Utilisabilité
Comme les maths • Modifiabilité
Comme les sciences
• Maintenabilité de l’ingénieur
• Coût
• ...

Informatique - Bases de données • ! A. Cornuéjols 2014 17 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 18 /119

1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Comment organiser un calcul Comment organiser un calcul

!
2 !
2

i,j=1
xi yj ? i,j=1
xi yj ?
!
2
xi yj = x1 y1 + x1 y2 + x2 y1 + x2 y2
i,j=1

4 produits + 3 sommes

Informatique - Bases de données • ! A. Cornuéjols 2014 19 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 20 /119
1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Comment organiser un calcul Comment organiser un calcul : le tri

!
2

i,j=1
xi yj ?
!
2
xi yj = x1 y1 + x1 y2 + x2 y1 + x2 y2
i,j=1

4 produits + 3 sommes

!
2
xi yj = (x1 + x2 ) (y1 + y2 )
i,j=1

2 sommes + 1 produit

Informatique - Bases de données • ! A. Cornuéjols 2014 21 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 22 /119

1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Tris « naïfs » Sélection : chercher


Tris « naïfs » Sélection : chercher
l’élément le + petit et l’élément le + petit et
Tri par insertion l’échanger avec le 1er Tri par insertion l’échanger avec le 1er
élément du tableau, puis léméent du tableau, puis
répéter sur le tableau - le 1er répéter sur le tableau - le 1er
Tri par sélection élément Tri par sélection élément

Complexité en O(n2) Complexité en O(n2)


Insertion : comme on Insertion : comme on
n = 106 => O(1012) opérations range des cartes n = 106 => O(1012) opérations range des cartes

Tris réfléchis Tris réfléchis


Quicksort : on prend un
Tri par fusion Tri par fusion pivot et on range tous les
éléments < avant et >=
après et on réitère sur les
Tri rapide (quicksort) Tri rapide (quicksort) sous-tableaux

Complexité en O(n log(n)) Complexité en O(n log(n))


n = 106 => O(2 x 106) opérations !! n = 106 => O(20 x 106) opérations !!

Informatique - Bases de données • ! A. Cornuéjols 2014 23 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 24 /119
1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Comment organiser un calcul : le tri Comment organiser un calcul : le tri

12 17 10 23 33 77 83 11

12 17 10 23
11 33 77 83
10 11 12 17 23 33 77 83
12 17 10 23
10 12 17 23
12 17 10 23

Informatique - Bases de données • ! A. Cornuéjols 2013 25 /107 Informatique - Bases de données • ! A. Cornuéjols 2013 26 /107

1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Comment organiser un calcul : le tri Comment organiser un calcul : le tri

Informatique - Bases de données • ! A. Cornuéjols 2013 27 /107 Informatique - Bases de données • ! A. Cornuéjols 2013 28 /107
1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Comment organiser un calcul : le tri Comment organiser un calcul : le tri

Informatique - Bases de données • ! A. Cornuéjols 2013 29 /107 Informatique - Bases de données • ! A. Cornuéjols 2011 30 /148

1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Comment organiser un calcul : le tri Comment organiser un calcul : le tri

Informatique - Bases de données • ! A. Cornuéjols 2011 31 /148 Informatique - Bases de données • ! A. Cornuéjols 2013 32 /107
1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Comment organiser un calcul : le tri Comment organiser un calcul : appariemment de graphe

Informatique - Bases de données • ! A. Cornuéjols 2013 33 /107 Informatique - Bases de données • ! A. Cornuéjols 2014 34 /119

1. Questions qui occupent les informaticiens 1. Questions qui occupent les informaticiens

Comment organiser un calcul : intelligence artificielle Comment organiser un calcul : L’ennemi absolu

Bug ! panne

Informatique - Bases de données • ! A. Cornuéjols 2014 35 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 36 /119
seconde ou plus.
20 Ces aspects techniques permettent de comprendre ce qu’il est possible de réaliser,
comment et à quel prix. Nous les avons volontairement quelque peu simplifiés pour
1. Questions quifaciliteroccupent les informaticiens
leur compréhension. 1. Questions
Et quelques mots à l’attention de ceux qui aiment se réfugier qui occupent les informaticiens
derrière « je ne comprends rien à l’informatique ». La vision de l’informatique véhiculée
L’ennemi absolu : le bug Comment
par les médias souffre d’une trop grande fascination pour le matériel et la coder / représenter de l’information
programmation. À mon avis, il importe peu de comprendre les détails du fonctionnement
Plantage des ordinateurs, distributeurs bancaires, systèmes de réservation,
très complexe d’un processeur ou d’une carte graphique. Il est par contre essentiel de
sites Web, etc.
maîtriser les bases de l’algorithmique et de sa mécanique du raisonnement. Il n’est pas
non plus nécessaire
Blocages de téléphones ou d’appareils de savoir
photos programmer (même si une expérience de programmation
avec un langage comme CAML – Categorical Abstract Machine Language – peut faciliter
Crash du téléphone interurbainde
la compréhension américain
l’algorithmique). Pour des questions de performance, il peut être
utilemaldeplacée
une ligne de code comprendre
sur un millionoù l’information que nous utilisons est stockée, en mémoire, sur
disque ou sur le réseau. Surtout, il est indispensable de comprendre le sens de cette
Explosion d’Ariane 501 (1996) et perte de satellites
information, comment elle est représentée, comment elle est organisée.
Débordement
21 Voici quelques
arithmétique dans chiffres à retenir :
un calcul inutile
Support de stockage Temps d’accès Taille
Bug subtil dans la division flottante du Pentium
Mémoire vive microsecondes gigaoctets (109)
Disque dur millisecondes quelques centaines de gigaoctets au téra
Coût : 470 millions de dollars pourlocal
Réseau Intel millisecondes ou plus téraoctets (1012)
La Toile décisecondes voire secondes Virtuellement !

Informatique - Bases de données • ! A. Cornuéjols 2014 37 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 38 /119

Mesurer les zettaoctets à la cuillère à café


22 En alignant les bits, nous pouvons représenter des informations. Nous pouvons stocker de
plus en plus d’informations pour les retrouver à la demande, telle une sauvegarde quasi
1. L’informatique : mémoire et stockage 1. L’informatique
illimitée de notre mémoire personnelle.
23 Nous pouvons aller au-delà des dimensions déjà mentionnées en alignant les bits :
Ordres de grandeurs kilo méga giga téra péta exa zetta yotta • Représenter le monde
103 106 109 1012 1015 1018 1021 1024
Discutons brièvement ces unités de mesures. Par exemple, cette leçon devrait • Calculer / inférer / raisonner
peser
24
quelques 100 000 octets, c’est-à-dire 100 kilooctets. Le kilooctet est une mesure « cool »
1- Savoir représenter
car il est presque convenable de confondre
3%C4%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?!!W5XX!2&K#$!!!!!!!!!!Y9Z!!!5XX!6!5X 103 = 1000 et 210 = 1024, ce qui permet de
!!,*/#/$!!H5XX![,M

passer facilement du système décimal, le plus commun, au système binaire, cher• Structures aux de données

@/-,D/%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?!!\,-*#(/,!])U&.")!!!Y9Z!!!5X!6!5X "!,*/#/$!!H5X!C,M
informaticiens. Une dizaine de Nocturnes de Chopin sur mon téléphone prennent • Représentation des connaissances

75 mégaoctets. La #vidéo
E,;<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?!!!!!::$!5X de la remise de diplôme de ma fille et ses quelques gigaoctets
!,*/#/$!!HN,M 2- Tous les calculs ne sont pas possibles
nous conduisent aux frontières du gigantisme. Selon les chiffres de Michael Brodie8, tous
3"/-:.%-:.,F)%-!0&;&)$!3*()/$!!!!!?!!@XX!6!5X • Notion de complexité
les livres jamais écrits ne!H@XX!A,M
$%&
demanderaient que 200 téraoctets en texte brut et la quantité de • Distribution / Parallélisation / « Cloud computing »
données produites par
>123()#-*#$!BG!!!!!!!!!!!!!!!!!!!!!!!!!?!!!!W!@XX!A,!G!;- le collisionneur de particules du CERN en une minute est de
l’ordre d’une centaine de pétaoctets. Pour représenter toutes les phrases 3-jamais Il n’est pas facile de programmer de manière fiable
3)+2$:+##/%.!$4(!S-/#(-#/!!!!!!!!?!!W!5X%$!,*/#/$!!H5!^,M
prononcées, il faudrait quelques exaoctets. Enfin, le zettaoctet, c’est l’ordre de grandeur • Méthodes de production de logiciel
du trafic annuel sur Internet de nos jours, et c’est aussi celui du stockage disponible• Vérification (en / Certification

Informatique - Bases de données • ! A. Cornuéjols 2014 39 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 40 /119

4 sur 26 1/12/14 16:57


1. L’informatique et VOUS 1. L’informatique ... et vous

Outils de travail
En quoi cela vous concerne ? _&!H/)%+/'D/%!
_#!4)+F+,.:$"..+H")+'=!#/!S-/#(-#/
1- Acteur direct / en interaction directe avec l’informatique
• Programmation de simulation
Programmation - Bases de Données
• Utilisation de BD, de SIG 748#$/9*#!:4)!#$/!2,$$)'.#!<
• Traitement d’images, télédétection E.g. AA : A#4%)+$'"#!&U#*!"#$!)-%,(;&+*)#-$
- Croire que c’est magique
• Bio-informatique I<+.,-+'"#-!"#!2#+/$!$E$/F;#$
- Ne pas demander assez

Simulation
2- En interaction avec des acteurs directs
\,;2(3B#-$),-!G!2(3")*+,-!"#!-J-4K0%-:$"0&.%C%-
• Que puis-je attendre de l’outil informatique ?
R3&.)/3!U)(/4#..#!G!&4K;#-/3#
• Qu’est-ce qui est possible / difficile / impossible

• Comment interagir / dialoguer / orienter Fouille de données


I<*/.+),4<-D!/#-"&-*#$D!&)<;,$'"#-D!666
Informatique - Bases de données • ! A. Cornuéjols 2014 41 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 42 /119

1. L’informatique ... et vous ? 1. Informatique et recherche à AgroParisTech

Outils de travail • Étude des échanges thermiques dans l’Atlantique Nord :


1A « Bureautique »
La bureautique 2A (ATHENS) « Publier • Le Gulf-Stream est-il moins actif ?
Le travail collaboratif et Internet sur Internet » • Grosses bases de données réparties ; apprentissage
1A/2A « SIG » artificiel ; Systèmes experts, ...
SIG (Systèmes d’Information Géographiques)

1A TC « SI »
Programmation - Bases de Données 2A « C et télédétection » • Étude du risque alimentaire :
2A « Java » • à partir de textes sélectionné sur Internet (EU / USA)
• Ontologies, traitement de la langue, ...
Simulation 2A (ATHENS)
Compréhension / prédiction de systèmes complexes « Informatique et
Sciences de la Vie »
Réalité virtuelle / augmentée • Analyse en imagerie médicale :
• détection en temps réel du contour du rein
Fouille de données 1A « Module Intégratif »
• Apprentissage artificiel, analyse d’images

Régularités, tendances, prédictions, ... 3A DA « IODAA »

Informatique - Bases de données • ! A. Cornuéjols 2014 43 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 44 /119
Organisation du cours

1. Partie Organisation de l’information : les Bases de Données


• Un amphi

• 4 TD/TP

• 1 TP / QCM (1 / 5)

`(K&-)$&/),-!"4!*,4($ 2. Partie Algorithmique - Programmation (PHP)


• Un amphi

• 8 TD/TP

• 1 TP / QCM (1 / 5)

3. Projet
• 6 TP

• Soutenance (3 / 5)

Informatique - Bases de données • ! A. Cornuéjols 2014 45 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 46 /119

Ce cours et vous : le projet

• b!2&(+(!"84-!$+?,%):;%-:$?+)*%-:L:
• @";<.,-%):.%:M0"#;%N:!H>-+/3$!G!R#.&+,-$M

• 3)+;/,)%:#-!",--3#$!#/!(#.&+,-$!?:4+H.%-
_#!2(,0#/!aa< • R3c3*B)(!&41!"&<)+'"#-:&"--,H.%-!$4(!.&!'&$#!"#!",--3#$

• 1)"*)+00%):4-#!)-/#(%&*#!d#'!&U#*!.&!'&$#!"#!",--3#$
• Q!/(&U#($!@J6OB!H4-!eNJfM
My SQL
• P<)%)!.#$!/'.,-+4%/)-:g!.#$!)%--"/)$%- P HP :

• ()*+#,-%):.#$:)%D/Q4%-:#/:0";,2$+'"#-!"#!.&!Jf

Informatique - Bases de données • ! A. Cornuéjols 2014 47 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 48 /119
Partie 1 - Place de l’informatique Partie 5 - Manipulation : SQL
Partie 2 - Les bases de données
Partie 3 - Bases sur les BD
Partie 4 - Conception des BD
Partie 6 - PHP / MySQL
2. Quelles données ?

Les données sont omniprésentes autour de nous ...

• Base de données sur des films (e.g. Allociné)

• Base de données bibliothécaire (e.g. BN, Amazon, ...)

@6!_#$!J&$#$!"#!f,--3#$ • Marathon de New-York, Paris, Londres, du Médoc, ...

• Location de voitures (e.g. Hertz, ...) / Réservation de place d’avion

• Sécurité sociale (carte Vital), Hôpitaux, ...

• Communications téléphoniques (opérateurs)

• Second Life

• Systèmes d’information géographique

• ...

Informatique - Bases de données • ! A. Cornuéjols 2014 49 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 50 /119

2. Quelles données ? 1. L’informatique : mémoire et stockage

Les données sont omniprésentes autour de nous ...


!"#!"#$%&"'()*+,#"-./#+#$%#&'(($)%#*+#%,'-.$,#/

0-$#0#+1&"%&"#/

='01>)?"@#91A)$?"@#)$)+B&"#.#3+&)#+)04)304$##")3

Informatique - Bases de données • ! A. Cornuéjols 2014 51 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 52 /119
La toile ? 2. Quelles données ?

Les données sont omniprésentes autour de nous ... dans l’entreprise

<$#2,,"$&"#-J-4K0%:;%:2$?,%)-

• Les clients

C6D&#6*:2,"$')26"#"$#'"6,"&#:"#E0$1F0$$)+2'9&#:"#?"&F0$#:"# • Les produits

:0$$9"& • Les commandes

• Les factures

• ...

R##6PST##G<=).87"#+"#>")4&$#+"#?')")#+"#@&$$A")H

Informatique - Bases de données • ! A. Cornuéjols 2014 53 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 54 /119

2. Quelles données ? 2. Comment les stocker ?

Les données sont omniprésentes autour de nous ... Comment les ranger dans un ordinateur ?

Informatique - Bases de données • ! A. Cornuéjols 2014 55 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 56 /119
2. Comment les stocker ? 2. Comment structurer les données ?

Comment les ranger dans un ordinateur ? En regardant d'un peu plus près ...

• scanner les bons de commande [1/10]


données
• copier les données dans un tableau Word [2/10]
du client
données
• copier les données dans une feuille Excel [4/10] de la
commande
• copier les données dans une base de données [10/10]
Scanner : seulement pour le données
stockage : pas d’édition de factures, de d'un détail
gestion des stocks ou de ou
comptabilité.

Word : exploitation des données pas


vraiment supportée

Excel : format très complexe.


Comment mettre tout dans un seul
tableau ? Comment faire face à
3 catégories de données
croissance de l’activité ?

Informatique - Bases de données • ! A. Cornuéjols 2014 57 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 58 /119

2. Comment structurer les données ? 2. Comment structurer les données ?

Reportons ces données dans des tableaux : Données sans redondances et avec références :

données de la commande données du client données de la commande données du client


NCOM DATECOM TOTAL-COMMANDE NCLI NOM ADRESSE LOCALITE NCOM NCLI DATECOM NCLI NOM ADRESSE LOCALITE
30188 2/1/2009 69720 B512 GILLET 14,r. de l'Eté Toulouse 30188 B512 2/1/2009 B512 GILLET 14,r. de l'Eté Toulouse

données des détails données des détails


NPRO LIBELLE PRIX QCOM SOUS-TOTAL NCOM NPRO QCOM LIBELLE PRIX
CS464 CHEV. SAPIN 400x6x4 220 180 39600 30188 CS464 180 CHEV. SAPIN 400x6x4 220
PA45 POINTE ACIER 45 (2K) 105 22 2310 30188 PA45 22 POINTE ACIER 45 (2K) 105
PA60 POINTE ACIER 60 (1K) 095 70 6650 30188 PA60 70 POINTE ACIER 60 (1K) 095
PH222 PL. HETRE 200x20x2 230 92 21160 30188 PH222 92 PL. HETRE 200x20x2 230

Observations :
Observation
1. les données TOTAL-COMMANDE et SOUS-TOTAL sont calculées : inutile de
les conserver, on pourra les recalculer en cas de besoin si plusieurs détails mentionnent le même produit, ses caractéristiques
sont répétées autant de fois : on isole les données des produits dans un
2. il est impossible de reconstituer le bon de commande d'origine : quel est le
tableau spécifique
client de la commande, quelle est la commande d'un détail ?

Informatique - Bases de données • ! A. Cornuéjols 2014 59 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 60 /119
2. Comment structurer les données ? 2. Comment structurer les données ?

Ajoutons d'autres données : notre première base de données


Distribution optimale des données des bons de commande

données de la commande données du client


NCOM NCLI DATECOM NCLI NOM ADRESSE LOCALITE
30188 B512 2/1/2009 B512 GILLET 14,r. de l'Eté Toulouse

données des détails données des produits


NCOM NPRO QCOM NPRO LIBELLE PRIX
30188 CS464 180 CS464 CHEV. SAPIN 400x6x4 220
30188 PA45 22 PA45 POINTE ACIER 45 (2K) 105
30188 PA60 70 PA60 POINTE ACIER 60 (1K) 95
30188 PH222 92 PH222 PL. HETRE 200x20x2 230

Informatique - Bases de données • ! A. Cornuéjols 2014 61 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 62 /119

2. Comment structurer les données ? 2. Utiliser une base de données

Que veut-on faire de ces données ?


Quelques leçons partielles
Vérifier une commande lors de son enregistrement : le client est-il connu ? son
adresse a-t-elle changé ? les produits commandés sont-ils répertoriés ?
• On a besoin de systèmes spécifiques pour conserver et manipuler les
données Produire les factures

• Les données sont représentées dans des tables


Préparer le réapprovisionnement des produits en rupture de stock
• Les lignes sont des entités

• Les colonnes sont des propriétés Calculer le chiffre d'affaire mensuel

• Le découpage en tables demande une analyse et une optimisation


Etudier la répartition géographique des ventes

• L’analyse doit aller au-delà des besoins immédiats (abstraction)


Et mille autres applications ...

Informatique - Bases de données • ! A. Cornuéjols 2014 63 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 64 /119
2. Utiliser une base de données 2. Utiliser une base de données

Que peut-on faire de ces données ? Que peut-on faire de ces données ?

Avant tout, les conserver aussi longtemps que nécessaire !


Un dernier exemple :
calculer la répartition du chiffre d'affaire par localité et par produit
Les interroger : quel est le numéro, le nom et l'adresse des clients de
Toulouse ? select C.LOCALITE, P.NPRO, sum(D.QCOM*P.PRIX)
select NCLI, NOM, ADRESSE ile from CLIENT C, COMMANDE M, DETAIL D, PRODUIT P ay
er
fac ss dre
from CLIENT where C.NCLI = M.NCLI and M.NCOM = D.NCOM d'e
t ile pren nt !
where LOCALITE = 'Toulouse'; and D.NPRO = P.NPRO inu com nsta
de ur l'i
group by C.LOCALITE, P.NPRO; po

ou encore : quelles sont les commandes des clients de Toulouse ?


lus
select NCOM up
pe ile
un iffic
from COMMANDE d
Cette question complexe est résolue en une seule instruction SQL de 5 lignes !
where NCLI in (select NCLI
from CLIENT where LOCALITE = 'Toulouse');

requêtes rédigées dans le langage SQL

Informatique - Bases de données • ! A. Cornuéjols 2014 65 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 66 /119

Partie 1 - Place de l’informatique Partie 4 - Manipulation : SQL

2. Les SGBD Partie 2 - Les bases de données


Partie 3 - Bases sur les BD
Partie 4 - Conception des BD
Partie 5 - PHP / MySQL

Les systèmes de gestion de bases de données ou SGBD.

• Organisation des données : le SGBD organise les données en tables permanentes 3- Bases ... sur les Bases de Données
stockées sur disque; il crée les mécanismes garantissant un accès rapide aux données; il
informe les utilisateurs sur ces structures.

• Gestion des données : le SGBD garantit l'évolution cohérente des données; il vérifie
que les contraintes (unicité, référence entre tables, etc.) sont respectées.

• Accès aux données : le SGBD permet l'accès aux données à la fois par l'utilisateur
occasionnel et par les programmes de traitement de données.

Informatique - Bases de données • ! A. Cornuéjols 2014 67 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 68 /119
quiStar
représentent
Wars G. des relations
Lucas comme
Harrison Ford Film ou Séance,
Stars Wars des entrées
Sel de ces relations comme
22:15

31 « Star Wars », des variables comme t, h, et des symboles


Dans le modèle relationnel, les données sont organisées en tableaux logiques, ⋀ (et), ⋁à(ou),
deux¬dimensions
(non),
30 ⇒30Un Un système
système de gestion
de ∃gestion de de
de bases bases de données
données sert desert de médiateur
médiateur entre entre
des des individus
individus et des et des
(implique),
que nous (existe),
appellerons ∀ (pour
des relations.tout). Avec tout ça, des formules logiques peuvent être
machines.
machines. Pour mieux
Pour mieux s’adapter
s’adapter auxÀindividus,
la différence
aux individus, il doit il
organiser
des mathématiciens,
doit organiser et présenter
et présenter
nous supposons
les données
les données
lesconstruites
BD de
et façon
calcul
relations comme
relationnel
de façon
intuitive.
: finie.
de intuitive.
taille Comme
Il doit
Il doit aussi illustration,
aussi proposer nouspour
un langage, utiliserons
exprimer une base de données
des requêtes,
proposer un langage, pour exprimer des requêtes, BD et calcul relationnel
consistant qfacilement
facilement HB =en d utilisable
∃ t, une
utilisable( Film(t,
relation
par desr,par
« des
Film
êtres êtreset
Humphrey
humains. humains.
Bogart
une Ces
»)
relation
Ces exigences exigences
⋀ Séance(t, Séance
forment forment
s, h) point
le lede
) (figure point 1).
départ de départ
Une
du du
ligne de ces
10
modèle modèle
relationnelrelationnel
10
proposé proposé
par Ted par Ted
Codd, Codd,
un un
chercheur chercheur
d’IBM, d’IBM,
dans dans
les les
années années
1970. 1970.
33 relations
Si cela vous est appelée un n-uplet
paraît cryptique,
/"&#:0$$9"&#&0$'#06?)$2&9"&#"$ où n est cela
en français, le nombre
se lit :Ililde colonnes.
e existe
existe un Par
unt ettitre
un titre t etexemple, 〈Star rWars,
un réalisateur
Des mathématiciens
Des mathématiciens avaientavaientdéveloppédéveloppé
à la finà dula fin
XIXdue XIX
siècle siècler avant
(bien
réalisateur (bien
tq. avant
l’invention
le n-uplet l’invention
Film(t, de de
tels22:15〉est
Sel, que le n-uplet
l’informatiqueun 3-uplet,
〈 t, r, «
un Humphrey
triplet, dansBogartla »
relation
〉 ser, trouve
Séance.
«Humphrey dans Les
Bogart») la
se relation
colonnes
trouve Film,
ont et lenoms,
le des
!0,,"$'#1)+1*+"6#+)#69(0$&"#I
l’informatique et des et des de
bases bases de données)
données) la logique
la logique du premierdu premier
dans la ordre, ordre,formaliser
relationpour
pour formaliser
Film et le n-uplet le
n-uplet
appelés
langage
〈 t,
langage s, h 〉 dans Séance.
mathématiques.
mathématiques. Titre.Observez
des 4+H.%+/C:U:V:;,0%#-,"#-#)(("+9&#3#'&-(.#/!#4
attributs, des comme Codd aCodd
que s et
a eu d’adapter
eu l’idée
h ne
l’idée d’adapter sont
Séance(t,
cette
pas
cette quantifiées
logique
s, h) dans
logique
dans
pour définir
Séance.définir
pour un
la formule
un
Donc, donnez-moi les salles s et
32 précédente
Les données
modèle modèle ; sont
de gestionnous dirons
de gestion
interrogées
de données, que
de données, ces
enledeux
le modèle modèle variables
utilisant relationnel.
relationnel. comme sontles libres.
langage Laleformule
calcul qHB peut être Le
relationnel. vuecalcul
heures h (variables libres), s’il
>.*KH)%:)%.+'"##%..%###J!0::@#KLMNO
comme une
Figure requête
1.base
Une du
base calcul relationnel.
deinspiré
données Elle
relationnelle se lit existe
alors un réalisateur
: donnez-moi r et un titreles salles s et les
relationnel
Figure (très
1. Une fortement
de données de
relationnellela logique dut telpremier que ... ordre) s’appuie sur des noms
horairesFilm h, s’il existe un réalisateur r Séance
Film et un Séance
titre t tels que... En d’autres termes, « Où et à
qui représentent
Titre Titre desRéalisateur
Réalisateur relations
Acteur Acteur comme TitreFilmTitreou
SalleSéance,
SalleHeure des entrées
Heure de ces relations comme
quelle heure
Casablanca puis-je
Casablanca voir
M. Curtiz M. Curtiz
Humphreyun filmBogart
Humphrey
Bogart avec Humphrey
Casablanca
Casablanca Bogart
LucernaireLucernaire
19:00 19:00? ». Ce langage, le calcul
« StarCasablanca
WarsCasablanca», des variables
M. Curtiz comme
Peter t, h, et
Lorre Casablanca des
Studio symboles
Casablanca Studio logiques, ⋀ (et), ⋁ (ou), ¬ (non),
20:00
relationnel, Lespermet
M. Curtiz
400 F.
coups d’exprimer
Peter Lorre
TruffautF. Truffaut
des questions
Jean-Pierre
Léaud Léaud
dans
Star WarsStar Wars
une syntaxe
20:00
Sel 20:30 20:30 qui évite les ambiguïtés de
(implique),
⇒ nos Les 400 coups
langues ∃ (existe),
Star WarsStar naturelles.
Wars
G. Lucas G. Lucas

Si elles
Harrison
(pour
Jean-Pierre
tout).
pouvaient
Harrison
Ford
Avec
aimer,
Ford Stars Wars
Sel
tout
WarslesSel
StarsSel ça,
machines
22:15
des formules
22:15 aimeraient logiques peuvent
la simplicité, la être C6)$&E06,"#+)#6"-*8'"#"$#"5(6"&&20$#)+?9P62-*"#1)+1*+)P+"
31 construites
31 Dans
Dans le modèle
précision comme
du
le modèle : relationnel.
relationnel,
relationnel,
calcul
les
les données données sont
sont organisées
En pratique,
organisées
ellesenutilisent
en
tableaux letableaux
à deux à
langage
deux
dimensions dimensions
SQL (Structured
queappellerons
que nous nous appellerons des relations.
des relations. À la différence
À la différence des mathématiciens,
des mathématiciens, nous supposons
nous supposons Q"F'#$0,P6"#:%$8"*-2$#304)09-3)
QueryqHB ∃ t,de!d taille
Language)
les=relations
les relations
qui exprime
( Film(t,
tailler,Comme
de finie. finie.
différemment
« Humphrey
Comme Bogart »)les
illustration,
illustration,
mêmes s,
Séance(t,
⋀nous questions.
h)une
utiliserons
nous utiliserons
) debase
une base
Par exemple, la
de données
données
question précédente s’exprime en SQL comme : !"#$%&'(
consistant
consistant en uneenrelation
une relation
Film et Film
uneetrelation
une relation
SéanceSéance
(figure (figure
1). Une1).ligne
Si cela vous paraît cryptique, en français, cela se lit : il existe un titre t et un réalisateur r Une de
ligne
ces de ces
33 )'"*(+,"$
relations
relations
tels queselectle
est appeléeest heure
salle,
n-uplet
appelée
un n-uplet
t, r,
un n-uplet
«
où n est
Humphrey
oùlennombre
est le nombre
Bogart
de colonnes.
»
de colonnes.
se
Par exemple,
trouve dans QLlaWars,
Par exemple,
yS〈Star 〈Star Wars,
relation Film, et le
Sel, 22:15〉est
Sel, 22:15〉est
from un 3-uplet,
Film,

un 3-uplet,
Séance un triplet,
un triplet, dans ladans la relation
relation

Séance.Séance. Les colonnes M
Les colonnes
ont desontnoms,des noms, -./(+,"$
n-uplet
appelés 〈 t,
appeléss, h
attributs, 〉 dans
attributs,
comme Séance.
comme
Titre. Observez
Titre.
where Film.titre= Séance.titre and acteur= « Humphrey Bogart »
que s et h ne sont pas quantifiées dans la formule
666
32 précédente
32
Les données ; nous
Les données dirons
sont
sont interrogées que
interrogées cesendeux
en utilisant utilisant
comme variables
comme
langagelangagesont
le calcullibres.calculLa
le relationnel. formule
relationnel.
Le calcul qHB
Le peut être vue
calcul
34 C’est presque
relationnel compréhensible,
(trèsdu fortement non
inspiréinspiré ?deEtla qu’Alice
logique s’exprime en français ou qu’elle
nomsutilise
relationnel
comme une (trèsrequête fortement calcul de la logique
relationnel. du Elle dedu
premier sepremier
ordre)
lit alors ordre)
s’appuie s’appuie
: 2014 sur des
donnez-moi sur
nomsdes
11 les salles s et les
Informatique - Bases données • ! A. Cornuéjols 69 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 70 /119
iences des donnéesune
qui interface
: de la logique
qui graphique,
représentent
représentent desdu des
relations le système
premier
relations
comme ordre transforme
comme
Film à oulaFilm
Toil... sadesquestion
ou Séance,
Séance, des entrées
entrées ences
de requête SQL
de ces relations
relations comme . commehttp://books.openedition.org/cdf/529?lang=fr
horaires
La
h,
question
s’ilWarsexiste
du calcul
un relationnel
réalisateur rt,des
eth, un
précédente
titre(ou t tels que...
enlogiques,
SQL)
En
⋀ (et), précise
d’autresbien
termes,
¬ce
« Où et à
qu’Alice
35 « Star «Wars
Star », des », des variables
variables commecomme t, h, et et des symboles
symboles logiques, ⋀⋁ (et),
(ou),⋁¬(ou),
(non), (non),
quelle heure
⇒ (implique),
⇒ (implique),
demande. Cette puis-je
∃ (existe),
question voir
∃ (existe),
∀ (pour un
a un film
(pour
∀ tout).
sensAvec avec
tout).
précis, Avec
tout Humphrey
ça,tout
une des ça,
sémantique. Bogart
des formules
formules ? ».
Elle logiques
logiques Ce
peuventpeuvent
définit une langage,être leuncalcul
êtreréponse,
relationnel,
ensemble
sélection etde
permet
construites
construites comme : d’exprimer
comme
n-uplets.
larelationnel
projection,
:Nous nedes
que nous
questions
préciserons
composerons pasdans une syntaxe
comment
dans l’expressiondans qui cetteévite
leçon.
suivante
lesCe ambiguïtés
deque la de
l’algèbre
BD et calcul BD et calcul relationnel
nos langues
q
relationnelleHB = ∃ naturelles.
qt,
HBd =( Film(t,
∃ t, d ( r, Si
«
Film(t, elles
Humphrey
r, « pouvaient
Bogart
Humphrey »)
Bogart
⋀ aimer,
Séance(t,
»)
question ne :dit pas, c’est comment calculer la réponse. Pour le « comment », on utilise
⋀ s,les
h)
Séance(t, )machines
s, h) ) aimeraient la simplicité, la
33 précision
l’algèbre
Si celaSivous
33 du
cela calcul
relationnelle
paraît
vous relationnel.
introduite
cryptique,
paraît en français,
cryptique, En
enpar pratique,
Codd.
cela
français, secelaUne
lit : se elles
étape
il existe
lit : il un utilisent
importante
titreun
existe t et le consiste
un
titre langage
tréalisateur à rSQL
et un réalisateur (Structured
transformer
r
E = que
tels question
que
telsle !n-uplet (! 〈« t,("
〈 t, »(Film)) ⋈ Salle)
une
Query HB
Language) salle,heure
du quir,titre
le n-uplet
calcul en Humphrey
r,
acteur
une
exprime BogartBogart
« expression
Humphrey
= « Humphrey
différemment »algébrique
〉 se
Bogart »trouvese qui
〉 les dans
trouve
mêmes ladans
permetrelation Film, etFilm,
laderelation
calculer
questions. lela réponse
Paret exemple,
le à la
n-upletn-uplet
Figure
cette
question 2.〈 t, s, h〈 〉t,dans
L’évaluation
question.
précédente
s, h 〉Séance.
s’exprime
Observez
dans Séance.
d’une en
que s etque
Observez
requête
SQL
h ne
comme
s etsont
algébrique h ne passontquantifiées
:sont libres.
dans ladans
pas quantifiées formulela formule !0,(+"52'9#:*#$+.$/.:;%:.+:)<&"#-%
précédente ; nous ;dirons
précédente que cesque
nous dirons deuxcesvariables
deux variables sont libres. La formule q peut
La formule q être
peut vueêtre vue
36 L’algèbre relationnelle consiste en un petit nombre d’opérations HB de base HB
qui, appliquées à
comme une salle,
comme
select requête
une heuredu calcul
requête relationnel.
du calcul Elle seElle
relationnel. lit alors
se lit: alors
donnez-moi les salles
: donnez-moi lesssalles
et less et les
des relations, produisent deréalisateur
nouvelles relations. R&'71"#-*"#1"#?"$6"#:"#3#1)+1*+#4#("*'#()&&"6#S#+%91A"++"#I
horaires h, Film,
s’il existe
horaires
from h, s’il un réalisateur
existe
Séance un r et unrtitre
et unt tels t Ces
titreque...
telsEn opérations
d’autres
que... peuvent
termes,
En d’autres « Oùêtre
termes, composées
et«àOù et à
pour
quelleconstruire
heure heure
quelle despuis-je
puis-je expressions
voir un film
voir algébriques
unavec
film Humphrey de Bogart
avec Humphrey plus en ? plus
». Ce
Bogart ?complexes.
langage,
». le Pour le répondre
calcul
Ce langage, calcul à
where Film.titre= Séance.titre and acteur= « Humphrey Bogart »
larelationnel,
question qui permet
permet
relationnel, nous sert
d’exprimer d’exemple,
des
d’exprimerquestions il nous
dans
des questions une
dans faudra
syntaxe trois
qui
une syntaxe éviteopérations,
quiles ambiguïtés
évite ladejointure,
les ambiguïtés de la
C’est
34 nospresque
langues compréhensible,
naturelles.
nos langues ellesnon
Si ellesSipouvaient
naturelles. ? Et aimer,
aimer,
pouvaient qu’Alice
les machines s’exprime
aimeraient
les machines en français
la simplicité,
aimeraient laou qu’elle
la simplicité, la utilise
uneprécision
interface du calcul
précision relationnel.
du calcul
graphique, En pratique,
relationnel.
le système elles utilisent
Entransforme
pratique, elles le langage
sautilisent
question SQL (Structured
le langage
en SQL (Structured
requête SQL11. 1)"*)+00%-#:%0(F,2&)F0$#:"#6"-*8'"&
Query Query
Language) qui exprime
Language) différemment
qui exprime différemment les mêmes les mêmesquestions. Par exemple,
questions. la
Par exemple, la
6 sur 26 35 La question
question du calcul
précédente s’exprime relationnel
en SQLen comme précédente
: (ou en SQL) précise bien ce qu’Alice 1/12/14 16:57
question précédente s’exprime SQL comme :
demande. Cette question a un sens précis, une sémantique. Elle définit une réponse, un
select select
salle, heure
salle, heure !+)&&"&#:"#$"0&.%C,4<#:"&#1)+1*+&
ensemble fromdeFilm,
n-uplets.
from Séance Nous ne préciserons pas comment dans cette leçon. Ce que la
Film, Séance
questionwhere Film.titre=
where
ne dit pas, Séance.titre
Film.titre=
c’est and acteur=
Séance.titre
comment and « Humphrey
acteur=
calculer Bogart »Bogart »
«laHumphrey
réponse. Pour le « comment », on utilise
C’est presque
34 l’algèbre
34 C’est compréhensible,
presque compréhensible,non ? non
Et qu’Alice
? Et s’exprime
qu’Alice en français
s’exprime en ou qu’elle
français utilise utilise
ouconsiste
qu’elle
relationnelle introduite par Codd. Une étape importante à transformer
une interface graphique,
une interface le système
graphique, transforme
le système sa question
transforme en requête
sa question SQL11. SQL11.
en requête
une question
La question du calcul
du calcul en une
relationnel expression
précédente algébrique
(ou en(ou SQL) qui permet de calculer la réponse à
35 35 La question du calcul relationnel précédente en précise
SQL) précise bien cebien qu’Alice
ce qu’Alice
cette question.
demande. Cette question
demande. a un sens
Cette question a unprécis, une sémantique.
sens précis, une sémantique. Elle définit une réponse,
Elle définit un
une réponse, un
Informatique - Bases de données • ! A. Cornuéjols 2014 71 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 72 /119
36 ensemble
L’algèbre de
ensemble n-uplets.
relationnelle
de Nous
n-uplets. ne
consiste
Nouspréciserons
en
ne un pas
petit
préciserons comment
nombre
pas dans
comment cette
d’opérations
dans leçon.
cette deCe que
base
leçon. la
Cequi,
que appliquées
la à
question ne dit ne
question pas,
ditc’est
pas, comment
c’est calculer
comment la réponse.
calculer la Pour lePour
réponse. « comment
le « », on utilise
comment », on utilise
des relations, produisent de nouvelles relations. Ces opérations peuvent être composées
l’algèbre relationnelle
l’algèbre introduite
relationnelle par Codd.
introduite par Une
Codd. étape
Uneimportante
étape importante consiste à transformer
consiste à transformer
pouruneconstruire
question du descalculexpressions
en une expression algébriques
algébrique de qui plus
permet endeplus calculercomplexes.
la réponse àPour répondre à
3. Notions de base 3. Notions de base

Base de données = ensemble de tables Tables, lignes et colonnes

• Chaque table a un nom unique (ex : Film) schéma

• Chaque table contient les données relatives à des entités de même nature.
ligne
• Chaque ligne (enregistrement) d’une table décrit les données relatives à une entité.

• Chaque colonne d’une table décrit une propriété des entités (ex : Prix). données

• Les lignes d’une table sont distinctes.

• Les noms de table et de colonnes constituent le schéma de la base.

• Les lignes (entités) constituent le contenu de la base.


colonne colonne
obligatoire facultative

Informatique - Bases de données • ! A. Cornuéjols 2014 73 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 74 /119

3. Notions de base 3. Notions de base - Exemple

Le schéma d'une table définit sa structure. Il spécifie notamment :


Un schéma
1. le nom de la table,
2. pour chaque colonne, son nom, son type, son caractère obligatoire,
3. l'identifiant primaire (liste de colonnes)
4. les identifiants secondaires éventuels (liste de colonnes)
5. les clés étrangères éventuelles (liste de colonnes et table cible).

Le contenu d'une table est formé d'un ensemble de lignes conformes au


schéma.

Le contenu d'une table est sujet à de fréquentes modifications.


Le schéma d'une table peut évoluer mais moins fréquemment.

Informatique - Bases de données • ! A. Cornuéjols 2014 75 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 76 /119
3. Notions de base 3. Notions de base - Exemple

Les données

identifiant
(clé primaire)

clé étrangère
dans le schéma
dans les données

Informatique - Bases de données • ! A. Cornuéjols 2014 77 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 78 /119

Partie 1 - Place de l’informatique Partie 5 - Manipulation : SQL 3.1 Introduction 3.5 Types d'associations
Partie 2 - Les bases de données
Partie 3 - Bases sur les BD
Partie 4 - Conception des BD
Partie 6 - PHP / MySQL 3.2 Modèle Entité-Association
3.3 Types d'entités
3.4 Attributs
3.6 Exemples de schéma conceptuel
3.7 Exemple détaillé 4.1 Pourquoi est-ce difficile de concevoir une BD

Comment construire une base de données ?


• définir les tables, les contraintes, les index, etc.
• introduire les données dans ces tables (ceci est un autre problème).

4 - Conception d’une base de données


Encore faut-il que le schéma des tables satisfasse les besoins des utilisateurs des
données !

L'esprit humain n'est pas conçu pour réfléchir en termes de tables !

Informatique - Bases de données • ! A. Cornuéjols 2014 79 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 80 /119
4.1 Pourquoi est-ce difficile de concevoir une BD 4.2 Le modèle Entité-Association (E/A)

Il faut un autre langage pour exprimer naturellement les informations que doit
contenir une base de données :

le modèle Entité-association

Le monde est perçu comme formé d'entités, dotées de propriétés et en


associations les unes avec les autres.

=> Modélisation

Gestion des étudiants dans


un établissement supérieur.

Informatique - Bases de données • ! A. Cornuéjols 2014 81 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 82 /119

4.2 Le modèle Entité-Association (E/A) 4.5 Types d'associations

CLIENT
CLIENT
Le modèle Entité-association propose une lecture du monde (le domaine NumClient
Nom
d'application) simple mais limitée : appartient
Adresse
signe

• le monde est constitué d'objets ou entités


VEHICULE CONTRAT
NumVéh NumCtr
• les entités sont classées en types d'entités

VEHICULE
Marque Type
couvre
Modèle DateSign
Année
• les entités d'un type ont des attributs spécifiques Cylindrée
ACCIDENT CONTRAT
NumAcc
• les entités sont en association les unes avec les autres implique
DateAcc
ACCIDENT

Montant[0-1]

• les associations sont classées en types d'associations.

dessin des types quelques instances

Informatique - Bases de données • ! A. Cornuéjols 2014 83 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 84 /119
4.5 Types d'associations 4.7 Exemple - Conception d’une BD pour un GIE agricole

Cahier des charges (simplifié)

• Des agriculteurs possèdent des parcelles

• Une parcelle a un et un seul propriétaire

• Un agriculteur possède une ou plusieurs parcelles

• Pour exploiter ces parcelles, les agriculteurs font appel à un GIE. Celui-ci
fournit de la main d’oeuvre d’appoint, à la journée.

• Cette main d’oeuvre est assurée par des employés du GIE.

• Chaque employé du GIE a un tarif, qui constitue son salaire journalier brut.

Informatique - Bases de données • ! A. Cornuéjols 2014 85 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 86 /119

4.7 Exemple - Conception d’une BD pour un GIE agricole 4.7 Exemple - Conception d’une BD pour un GIE agricole

Cahier des charges (simplifié) Cahier des charges (simplifié) (2)

• Des agriculteurs possèdent des parcelles • Le GIE paie ses employés mensuellement, en fonction de leurs
• Une parcelle a un et un seul propriétaire interventions.

• Un agriculteur possède une ou plusieurs parcelles • Chaque intervention concerne une parcelle, un employé et un nombre
de jours.
• Pour exploiter ces parcelles, les agriculteurs font appel à un GIE. Celui-ci
fournit de la main d’oeuvre d’appoint, à la journée. • Le système d’information désiré doit pouvoir fournir :
• la liste des agriculteurs
• Cette main d’oeuvre est assurée par des employés du GIE.
• la liste des employés
• Chaque employé du GIE a un tarif, qui constitue son salaire journalier
brut. • la liste des interventions par employé
• la liste des interventions par agriculteur

Informatique - Bases de données • ! A. Cornuéjols 2014 87 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 88 /119
4.7 Exemple - Conception d’une BD pour un GIE agricole 4.7 Exemple - Conception d’une BD pour un GIE agricole

Inventaire des données (simplifié) Nom Prénom Lieu de


Clé primaire
résidence

• Agriculteur : Nom, prénom, lieu de Dulhac Anne-Marie Arith

résidence Martoz Christian Montargy


IdAgri Nom Prénom Lieu de
Carrez François Arith résidence
• Employé GIE : Nom et prénom Ferrer Mariette Lenoyer 1 Dulhac Anne-Marie Arith

• Parcelle : nom, superficie, lieu et Mernaz Francine Lescheraines 2 Martoz Christian Montargy

propriétaire Martoz Christian Lescheraines 3 Carrez François Arith

4 Ferrer Mariette Lenoyer


• Employé : numéro insee et salaire
5 Mernaz Francine Lescheraines
journalier
Comment identifier ? 6 Martoz Christian Lescheraines

• Interventions : employé, parcelle,


date de début, nombre de jours

Informatique - Bases de données • ! A. Cornuéjols 2014 89 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 90 /119

4.7 Exemple - Conception d’une BD pour un GIE agricole 4.7 Exemple - Conception d’une BD pour un GIE agricole

Clé primaire : pas nécessairement une seule colonne Type des attributs (colonnes)

Agr-Id Agr_Nom Agr_Prn Agr_Resid


Ville_Dep Ville_Arr Distance
Champ Type Extra
Aiglun Saint-Auban 25
1 Dulhac Anne-Marie Arith
Agr_id int(11) auto_increment
Aix-les-Bains Chambery 14 2 Martoz Christian Montargy
Agr_Nom varchar(30)
Rennes Paris 342 3 Carrez François Arith
Agr_Prn varchar(20) Ferrer Mariette Lenoyer
Rennes Saint-Malô 75 4

Agr_Resid varchar(50) 5 Mernaz Francine Lescheraines


Saint-Alban Aiglun 23
6 Martoz Christian Lescheraines

Table des distances entre villes

Informatique - Bases de données • ! A. Cornuéjols 2014 91 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 92 /119
4.7 Exemple - Conception d’une BD pour un GIE agricole 4.7 Exemple - Conception d’une BD pour un GIE agricole

Les parcelles et leur propriétaire


Les parcelles
Par_Idf Par_Nom Par_Lieu Par_Superficie Par_Prop
1 Le Pré au Vent Arith 350 1
Par_Idf Par_Nom Par_Lieu Par_Superficie 2 Le grand Verger Arith 300 2

1 Le Pré au Vent Arith 350 3 Plan des Montargy 220 1


Bauges
4 Les Prés Rus Arith 750 4
2 Le grand Verger Arith 300
5 Lafosse Montargy 600 1
3 Plan des Bauges Montargy 220 Agriculteur
4 Les Prés Rus Arith 750 Parcelles Agr_Id Agr_Nom Agr_Prn Agr_Resid
5 Lafosse Montargy 600 1 Dulhac Anne-Marie Arith
2 Martoz Christian Montargy
Une relation entre 3 Carrez François Arith

4 Ferrer Mariette Lenoyer


Comment indiquer le propriétaire ? deux tables 5 Mernaz Francine Lescheraines

6 Martoz Christian Lescheraines

Informatique - Bases de données • ! A. Cornuéjols 2014 93 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 94 /119

4.7 Exemple - Conception d’une BD pour un GIE agricole 4.7 Exemple - Conception d’une BD pour un GIE agricole

Les parcelles et leur propriétaire


La table employé
Agriculteur
1 Parcelle
Agr_id Emp-nss Emp_Nom Emp_prn Emp_tarif
Par_id
Agr_Nom
1,75077E+12 Grandet Marc 110
Par_Nom
Agr_Prn
Par_Lieu
Clé étrangère 1,82023E+12 Barnier Nicole 115

Agr_Resid 1,79011E+12 Pernet Henri 119

n Par_Sup

Agriculteur Par_Prop

Quelle clé primaire ?


Parcelles
Une relation 1 à n
entre deux tables

Informatique - Bases de données • ! A. Cornuéjols 2014 95 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 96 /119
4.7 Exemple - Conception d’une BD pour un GIE agricole 4.7 Exemple - Conception d’une BD pour un GIE agricole

Les parcelles et les employés


Quelle relation entre les tables parcelle et employé ? Employé Intervention
Parcelle
Par_id
Emp_nss Int_Emp_nss 1 Par_Nom

• Un employé peut être amené à travailler sur plusieurs parcelles


Emp_Nom 1 n Int_Par_id Par_Lieu
Emp_Prn Int_Deb n Par_Sup
Emp_tarif Int_Nb_Jours Par_Prop
• Sur une même parcelle peuvent travailler plusieurs employés
(simultanément ou l’un après l’autre) L’employé Grandet a Intervention
travaillé sur la parcelle du
Int_Emp_nss Int_Par_i Int_Deb Int_Nb_Jours
• C’est une relation plusieurs à plusieurs : on la représente par une pré au vent, 5 jours à partir d
du 5 juillet 2004. 1,75077E+12 1 2004-07-05 5
nouvelle table
Emp_nss Emp_Nom Emp_prn Emp_tarif

1,75077E+12 Grandet Marc 110


Parcelle
Employé Par_Idf Par_Nom Par_Lieu Par_Superficie Par_Prop
1 Le Pré au Arith 350 1
Vent

Informatique - Bases de données • ! A. Cornuéjols 2014 97 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 98 /119

Partie 1 - Place de l’informatique Partie 5 - Manipulation : SQL 4.1 Introduction : LDD et LMD 4.5 Les fonctions agrégatives
Partie 2 - Les bases de données
Partie 3 - Bases sur les BD
Partie 4 - Conception des BD
Partie 6 - PHP / MySQL 4.2 Création / modification de table
4.3 Extractions simples
4.4 Extractions complexes
4.6 Les sous-requêtes
5.1 Introduction à SQL : LDD et LMD

SQL n’est pas un langage de programmation complet

SQL permet :
5 - LE LANGAGE SQL de définir le schéma de la base de données (LDD)
(Structured Query Language)
de charger les tables relationnelles (LMD)

de manipuler les données stockées (LMD)

de gérer la base de données (LDD) : sécurité, organisation


physique

Ici : aperçu de la partie LMD

En TP : le LDD aussi

Informatique - Bases de données • ! A. Cornuéjols 2014 99 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 100 /119
5.2 Extraction simple - projection

Introduction Personnes
nom prénom adresse téléphone
Martin Pierre 7 allée des vers 258941236
Le sous-langage LMD de SQL permet de consulter le contenu des Dupond Jean 32 allé Poivrot 526389152

tables et de les modifier. Il comporte 4 verbes : Dupond Marc 8 rue de l’octet 123456789

• La requête select extrait des données des tables


On projette la table
• La requête insert insère de nouvelles lignes dans une table Personnes sur les
SELECT nom, prénom colonnes nom et prénom.
• La requête delete supprime des lignes d'une table
FROM Personnes
• La requête update modifie les valeurs de colonnes de lignes
nom prénom
existantes
Martin Pierre
Dupond Jean
Dupond Marc

Informatique - Bases de données • ! A. Cornuéjols 2014 101 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 102 /119

5.2 Extraction simple - sélection 5.2 Extraction simple - sélection

Personnes
Relation de départ :
nom prénom adresse téléphone
SELECT * FROM Gens
Martin Pierre 7 allée des vers 258941236
Gens
1
Dupond Jean 32 allé Poivrot 526389152 SELECT Nom
Nom Prenom Age
Dupond Marc 8 rue de l’octet 123456789 FROM Gens
Dupond Pierre 24
Martin Marc 48
Gens
On ne sélectionne que les Dupont Jean 51 SELECT DISTINCT Nom
tuples dont l’attribut nom Martin Paul 36
Nom 2 FROM Gens
SELECT * Dupond
FROM Personnes est égale à ‘Dupond’. Dupond Lionel 68
Martin
WHERE nom = ‘’Dupond’’ Chirac Jacques 70
Gens
Dupont 3
Nom
Martin
Dupond
Dupond
Martin
nom prénom adresse téléphone Chirac
Dupont
Dupond Jean 32 allé Poivrot 526389152
Chirac
Dupond Marc 8 rue de l’octet 123456789
Informatique - Bases de données • ! A. Cornuéjols 2014 103 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 104 /119
5.2 Extraction simple - sélection 5.3 Extraction complexe - jointure

Personnes Bibliothèque
nom prénom adresse téléphone nom Dernierlivre
Gens SELECT DISTINCT Nom
Martin Pierre 7 allée des vers 258941236 Dupond Robinson
Nom FROM Gens
Chirac ORDER BY Nom ASC Dupond Jean 32 allé Poivrot 526389152 Jospin Faust
Martin Misère
Dupond
4
Dupont Gens
SELECT DISTINCT Nom
Martin 5 Nom
FROM Gens On joint les deux tables, grâce à
ORDER BY Nom ASC la colonne nom.
Chirac
LIMIT 2 SELECT Personnes.prénom, dernierlivre
Dupond Et on combine cette jointure à
FROM Personnes, Bibliothèque
une projection sur les attributs
WHERE Personnes.nom = Bibliothèque.nom
nom et dernierlivre.
SELECT DISTINCT Nom
6 Gens
Attention à lever toute ambi-
FROM Gens
Nom
WHERE Nom <> ‘Chirac’ guïté sur les noms d’attribut
Dupond prénom Dernierlivre dans le cas où deux tables
ORDER BY Nom ASC
LIMIT 2 Jean Robinson possèdent des colonnes de
Pierre Misère même nom.
Informatique - Bases de données • ! A. Cornuéjols 2014 105 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 106 /119

5.3 Conditions plus complexes - exemples 5.3 Conditions plus complexes - Combinaisons logiques

select nom Liste des noms de produits dont le


from produit select NOM, ADRESSE, COMPTE
where prix <= 100.5; prix est inférieur ou égal à 100.5 €
from CLIENT
where LOCALITE = 'Toulouse' and COMPTE < 0;
select nom, prénom Liste des noms et prénoms des
from ELEVES
where age between 12 and 16; élèves dont l’âge est dans [12,16]

select modèle Liste des modèles de voitures dont la select NOM, ADRESSE, COMPTE
from VOITURES couleur est dans la liste : bleu, blanc, where COMPTE > 0
where couleur in (‘bleu’, ‘blanc’, ‘noir’); noir. and (CAT = 'C1' or LOCALITE = 'Paris')

select modèle Liste des modèles de voitures dont la


from VOITURES couleur n’est pas dans la liste : rose,
where couleur not in (‘rose’, ‘violet’); violet.

Informatique - Bases de données • ! A. Cornuéjols 2014 107 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 108 /119
5.4 Données extraites et données dérivées - expressions de calcul 5.4 Les sous-requêtes - Principe

select 'TVA de ', NPRO, ' = ',0.21*PRIX*QSTOCK


from PRODUIT select *
where QSTOCK > 500; from PRODUIT
where NPRO in
(select NPRO
TVA de NPRO = 0,21*PRIX*QSTOCK from DETAIL
TVA de CS264 = 67788 where NCOM in
TVA de PA45 = 12789 (select NCOM
TVA de PH222 = 37770.6
TVA de PS222 = 47397 from COMMANDE
where NCLI in
(select NCLI
from CLIENT
select NPRO as Produit, 0.21*PRIX*QSTOCK as Valeur_TVA e where LOCALITE='Namur')));
st nn
" e colo
from PRODUIT uit
P r od s de
where QSTOCK > 500; " ali a
n u
Produit Valeur_TVA les clients de Namur
CS264 67788
PA45 12789 les commandes des clients de Namur
PH222 37770.6
PS222 47397
les détails des commandes des clients de Namur

les produits référencés par les détails des commandes des clients de Namur

Informatique - Bases de données • ! A. Cornuéjols 2014 109 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 110 /119

Partie 1 - Place de l’informatique Partie 5 - Manipulation : SQL 6.1 Introduction


Partie 2 - Les bases de données
Partie 3 - Bases sur les BD
Partie 4 - Conception des BD
Partie 6 - PHP / MySQL 6.2 Le langage MySQL
6.3 Administration avec phpMyAdmin
6.4 Interface avec PHP
6. MySQL

MySQL est un Système de Gestion de Bases de Données

• Se charge du stockage, de l’accès, de la recherche, de la sécurité ... des données

• Utilise le langage SQL


6 - PHP / MySQL • Système libre (disponible sous Mac OS X, Linux, Windows, ...)

• L’un des plus utilisé au monde (e.g. Wikipedia, Google, YouTube, ...)

• Multi-utilisateur

• Utilisable depuis une grande variété de langages de programmation (C, C++, Java, Python, PHP, ...)

• ...

Informatique - Bases de données • ! A. Cornuéjols 2014 111 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 112 /119
6. Administration avec phpMyAdmin 6. Administration avec phpMyAdmin

Interface intuitive pour l’administration des bases de données du serveur

• phpMyAdmin est une application PHP développée pour administrer une Outil pour :
base MySQL à distance via un navigateur web • créer de nouvelles bases

• créer / modifier / supprimer des tables


• Application intégrée à EasyPHP • afficher / ajouter / modifier / supprimer des tuples
dans des tables

• phpMyAdmin permet également de visualiser les requêtes SQL • effectuer des sauvegarde de la structure et/ou des
données

• effectuer n’importe quelle requête

• gérer les privilèges des utilisateurs

Informatique - Bases de données • ! A. Cornuéjols 2014 113 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 114 /119

6. Conclusions Les défis des BDs aujourd’hui et demain

• Multiplicité des types de données.


Une base de données moderne peut contenir :

• Base de données = ensemble de données structurées, persistantes placé • des données multimédias,
dans des fichiers
• des données textuelles,
• Gestion par SGBD (Système de Gestion de Bases de Données) • des données spatiales (données GPS par exemple),

• Stockage ; accès ; recherche ; sécurité ... • des données historiques (plusieurs lignes par entité),

• Exemples : MySQL, ORACLE, PostgreSQL, ... • des données semi-structurées.

• Langage spécialisé : SQL


• Volumes et performances.
• On choisit une application cliente permettant de dialoguer avec un serveur
MySQL : PHP ; phpMyAdmin ; ... • Une base de données peut contenir des dizaines de milliers de tables, des milliards
de lignes.

• Comment garantir l'accessibilité de ces données, leur protection contre les


incidents, des temps d'accès satisfaisants ?

Informatique - Bases de données • ! A. Cornuéjols 2014 115 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 116 /119
Les défis des BDs aujourd’hui et demain Les défis des BDs aujourd’hui et demain

• Maintenance et évolution. • Les BD et le Web.


• La structure d'une base de données peut évoluer : ajouter ou supprimer une table, Le Web peut être vu comme une gigantesque base de données (largement incohérente
une colonne, une contrainte. et redondante !)

• Comment préserver les données et les programmes utilisateurs lors de cette Qu'en est-il des principes rigoureux des bases de données dans ce contexte ?
évolution ?

• Les données décisionnelles.


• Les données distribuées et nomades. Les données ne servent pas seulement à contrôler la gestion et le fonctionnement d'une
entreprise au jour le jour. Elles sont aussi souvent utilisées pour soutenir des
• Une base de données peut être répartie et/ou dupliquées sur plusieurs ordinateurs
décisions tactiques et stratégiques.
répartis géographiquement. (cf. le « cloud computing »)
Caractéristiques : traitement de très gros volumes de données complexes pour
• Certains de ceux-ci peuvent être des appareils mobiles (embarqués, portables,
produire une réponse courte (une heure de traitement de plusieurs téraoctets pour en
smart phones).
extraire un seul nombre !)
• Comment garantir la cohérence, la protection et l'accessibilité des données.
Comment structurer une base de données dans ce sens (= entrepôts de données) ?

Informatique - Bases de données • ! A. Cornuéjols 2014 117 /119 Informatique - Bases de données • ! A. Cornuéjols 2014 118 /119

Remerciements

• Ces transparents doivent beaucoup à :

• Gérard Berry

• Hugo Etiévant

• Jean-Luc Hainaut (auteur d’un excellent livre sur les BDs)

dont les transparents sont extraordinairement complets et bien faits.

Merci !!

Informatique - Bases de données • ! A. Cornuéjols 2014 119 /119

Vous aimerez peut-être aussi