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!"#$%&'"# ()*+#,-+'"#!"#$!%&'()*&+,-$!!+.$/.!"#!.&!/(&0#*/,)(#!"00/#,$+'"# 1.+#,2$+'"#!"#$!#123()#-*#$!$,4$!*,-/(&)-/#$ 3)+,4%0%#4!"#$!",--3#$ Réseaux (communications par paquets) Satellites Modes de pensée Calculs complexes / Simulations Connaissances toujours à portée de clics Modification de la mémoire et de la cognition 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 Informatique - Bases de données! A. Cornuéjols 2014 5 La photo numérique /119 1. Changement de paradigme Informatique - Bases de données! A. Cornuéjols 2014 6 /119 Informatique - Bases de données! A. Cornuéjols 2014 8 /119 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
Partie 1 - Place de l informatique Partie 2 - Les bases de données Partie 3 - Bases sur les BD Partie 4 - Conception des BD Partie 5 - Manipulation : SQL Partie 6 - PHP / MySQL Quatre approches pour appréhender le monde 56!!!>;2)():4#!?!"#$*()2+,-!#/!*.&$$#;#-/ 56!748#$/9*#!:4#!.8)-%,(;&+:4#!< =-!!"#$%&#'(%)&(*!$4(!.#!;,-"# @6!!!AB3,():4#!?!C,"3.)$&+,-D!*,-$/(4*+,-!"#!/B3,()#$ 56!!!6,0/.+'"#!?!$E$/F;#$!*,;2.#1#$!#/G,4!-,-!(#2(,"4*+'.#$ 78!!!9"/,..%:;%:;"##<%-!HI!J)K!"&/&!LM 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!"#$%"&'#()&#&"*+","$'#-*"#. 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.- /)#!"#$%&'()#"'#'0*'"&#+"&#&12"$1"&#"$#3#0,2-*"#$%"52&'"6)2"$'#()& N3-,;#!O!")P&)-#$!"#!;)..)#($!"#!2&)(#$!"#!'&$# Q.)K-#;#-/$ R#*,-$/(4*+,- S-/#(2(3/&+,- /"#*"+,-(.)%)#/0+1&%-2'()#$%)*6)2'#("*'78'6"#()&#"$106"#9'9# :910*;"6' ;#$4(#$!2.&-3/&)(#$ $/,*T&K#!#/!)-/#((,K&+,-$!"#!'&$#$!"#!",--3#$!")U#($#$!#/!")$2#($3#$ #1/(&*+,-$!"#!/#-"&-*#$!#/!"#!*,((3.&+,-$ 3#!"#$"#%&$$'()#*')#+,-./"#0(0'$.1#+"#%"2232"1#+"#4))31#&/5'$"1# ($+(0(+3#".#*"3.6-./"#7-7"#")*8%"1#+&$.#&$#$"#*3())"#*')#+(/"# 93,(2#!"#$%&#+"#2,($:&/7'4&$1#93,(2#"'()"&#+"#2,($:&/7'4&$1#93,(2# *+&"#93,(2#'&,#)"#+"#2,($:&/7'4&$;#4 Michel Serres! 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 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 La dynamique évolutive comme théorie des jeux répétés sur réseaux Les systèmes multi-agents permettent de modéliser les : insectes sociaux bancs de poissons La récursion permet de modéliser la croissance des plantes... Par rapport à d autres sciences? <$"#3+&)#+)04)015&%%-/"*&)1 6-&3$##)%)#/ :4)!",)/!V/(#!=")0+.,-< #/!)<+.,-< 7(%"*&3-2$##:*#,0$:" Au point que certains physiciens pensent que l univers n est en fait que la manifestation d un gigantesque ordinateur. 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- Science du raisonnement et de son automatisation Machine Algorithmes 2- Science du codage de l information Numérisation Indépendance du support matériel Communication Informatique - Bases de données! A. Cornuéjols 2014 15 /119 1. L informatique 1- @+$?,#%- Architecture Système d exploitation ; environnement de programmation 2 - A#=")0+'"# Codage Organisation : fichiers, BD,... 3 - >.*"),4?0% Expressions ; variables ; fonctions ;... Structure 4 - B+#*+*% Traduction sans ambiguïté entre hommes et machines 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... Choisir les bonnes abstractions Utiliser plusieurs niveaux d abstraction simultanément Définir les relations entre ces niveaux d abstraction L informatique concerne les abstractions... L efficacité Rapidité Taille mémoire Coût calcul Fonctionnement correct Est-ce que cela fait ce que l on veut? Est-ce que le programme donne une réponse?... en faisant attention à : Comme les maths -ilité Simplicité et élégance Utilisabilité Modifiabilité Maintenabilité Coût... Comme les sciences de l ingénieur 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 Comment organiser un calcul 2 x i y j? i,j=1 1. Questions qui occupent les informaticiens Comment organiser un calcul 2 x i y j? i,j=1 2 x i y j = x 1 y 1 + x 1 y 2 + x 2 y 1 + x 2 y 2 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 Comment organiser un calcul 1. Questions qui occupent les informaticiens Comment organiser un calcul : le tri 2 x i y j? i,j=1 2 x i y j = x 1 y 1 + x 1 y 2 + x 2 y 1 + x 2 y 2 i,j=1 4 produits + 3 sommes 2 x i y j = (x 1 + x 2 )(y 1 + y 2 ) 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» Tri par insertion Tri par sélection Sélection : chercher l élément le + petit et l échanger avec le 1er élément du tableau, puis répéter sur le tableau - le 1er élément Tris «naïfs» Tri par insertion Tri par sélection Sélection : chercher l élément le + petit et l échanger avec le 1er léméent du tableau, puis répéter sur le tableau - le 1er élément Complexité en O(n 2 ) n = 10 6 => O(10 12 ) opérations Insertion : comme on range des cartes Complexité en O(n 2 ) n = 10 6 => O(10 12 ) opérations Insertion : comme on range des cartes Tris réfléchis Tri par fusion Tri rapide (quicksort) Tris réfléchis Tri par fusion Tri rapide (quicksort) Quicksort : on prend un pivot et on range tous les éléments < avant et >= après et on réitère sur les sous-tableaux Complexité en O(n log(n)) Complexité en O(n log(n)) n = 10 6 => O(2 x 10 6 ) opérations!! n = 10 6 => O(20 x 10 6 ) 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 Comment organiser un calcul : le tri 1. Questions qui occupent les informaticiens Comment organiser un calcul : le tri 12 17 10 23 33 77 83 11 12 17 10 23 12 17 10 23 12 17 10 23 11 33 77 83 10 12 17 23 10 11 12 17 23 33 77 83 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 Comment organiser un calcul : le tri 1. Questions qui occupent les informaticiens 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 Comment organiser un calcul : le tri 1. Questions qui occupent les informaticiens 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 Comment organiser un calcul : le tri 1. Questions qui occupent les informaticiens 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 Comment organiser un calcul : le tri 1. Questions qui occupent les informaticiens 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 Comment organiser un calcul : intelligence artificielle 1. Questions qui occupent les informaticiens 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 qui faciliter occupent leur compréhension. les informaticiens Et quelques mots à l attention de ceux qui aiment 1. Questions 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 par les médias souffre d une trop grande fascination pour le matériel Comment 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 Blocages de téléphones non plus nécessaire 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 la compréhension interurbain de américain l algorithmique). Pour des questions de performance, il peut être une ligne de code utile mal de placée 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 arithmétique quelques dans chiffres un calcul inutile à retenir : Support de stockage Temps d accès Taille Bug subtil dans la division flottante Mémoire vive du Pentium microsecondes gigaoctets (10 9 ) Disque dur millisecondes quelques centaines de gigaoctets au téra Coût : 470 millions de dollars Réseau pour local Intel millisecondes ou plus téraoctets (10 12 ) La Toile décisecondes voire secondes Virtuellement! Informatique - Bases de données! A. Cornuéjols 2014 37 /119 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 illimitée de notre mémoire personnelle. 1. L informatique 23 Nous pouvons aller au-delà des dimensions déjà mentionnées en alignant les bits : Ordres de grandeurs Mesurer les zettaoctets à la cuillère à café kilo méga giga téra péta exa zetta yotta 10 3 10 6 10 9 10 12 10 15 10 18 10 21 10 24 Représenter le monde Informatique - Bases de données! A. Cornuéjols 2014 38 /119 24 Discutons brièvement ces unités de mesures. Par exemple, cette leçon devrait Calculer / inférer / raisonner peser quelques 100 000 octets, c est-à-dire 100 kilooctets. Le kilooctet est une mesure «cool» 3%C4%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?!!W5XX!2&K#$!!!!!!!!!!Y9Z!!!5XX!6!5X car il est presque convenable de confondre!!,*/#/$!!h5xx![,m 10 3 = 1000 et 2 10 1- Savoir représenter = 1024, ce qui permet de passer facilement du système décimal, le plus commun, au système binaire, cher Structures de données aux @/-,D/%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?!!\,-*#(/,!])U&.")!!!Y9Z!!!5X!6!5X informaticiens. Une dizaine de Nocturnes "!,*/#/$!!H5X!C,M Représentation des connaissances de Chopin sur mon téléphone prennent E,;<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?!!!!!::$!5X 75 mégaoctets. La # vidéo!,*/#/$!!hn,m de la remise de diplôme de ma fille et ses quelques gigaoctets 2- Tous les calculs ne sont pas possibles nous conduisent aux frontières du gigantisme. Selon les chiffres de Michael Brodie 8, tous 3"/-:.%-:.,F)%-!0&;&)$!3*()/$!!!!!?!!@XX!6!5X les livres jamais écrits ne $%&!H@XX!A,M Notion de complexité demanderaient que 200 téraoctets en texte brut et la quantité de Distribution / Parallélisation / «Cloud computing» >123()#-*#$!BG!!!!!!!!!!!!!!!!!!!!!!!!!?!!!!W!@XX!A,!G!;- données produites par 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 (en Vérification / 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? 1- Acteur direct / en interaction directe avec l informatique Programmation de simulation Utilisation de BD, de SIG Traitement d images, télédétection Bio-informatique 2- En interaction avec des acteurs directs Que puis-je attendre de l outil informatique? Qu est-ce qui est possible / difficile / impossible Comment interagir / dialoguer / orienter E.g. AA : - Croire que c est magique - Ne pas demander assez Informatique - Bases de données! A. Cornuéjols 2014 41 /119 _&!H/)%+/'D/%! _#!4)+F+,.:$"..+H")+'=!#/!S-/#(-#/ Programmation - Bases de Données 748#$/9*#!:4)!#$/!2,$$)'.#!< A#4%)+$'"#!&U#*!"#$!)-%,(;&+*)#-$ I<+.,-+'"#-!"#!2#+/$!$E$/F;#$ Simulation \,;2(3B#-$),-!G!2(3")*+,-!"#!-J-4K0%-:$"0&.%C%- R3&.)/3!U)(/4#..#!G!&4K;#-/3# Fouille de données I<*/.+),4<-D!/#-"&-*#$D!&)<;,$'"#-D!666 Informatique - Bases de données! A. Cornuéjols 2014 42 /119 1. L informatique... et vous? 1. Informatique et recherche à AgroParisTech Outils de travail La bureautique Le travail collaboratif et Internet SIG (Systèmes d Information Géographiques) 1A «Bureautique» 2A (ATHENS) «Publier sur Internet» 1A/2A «SIG» Étude des échanges thermiques dans l Atlantique Nord : Le Gulf-Stream est-il moins actif? Grosses bases de données réparties ; apprentissage artificiel ; Systèmes experts,... Programmation - Bases de Données Simulation Compréhension / prédiction de systèmes complexes Réalité virtuelle / augmentée Fouille de données Régularités, tendances, prédictions,... 1A TC «SI» 2A «C et télédétection» 2A «Java» 2A (ATHENS) «Informatique et Sciences de la Vie» 1A «Module Intégratif» 3A DA «IODAA» Étude du risque alimentaire : à partir de textes sélectionné sur Internet (EU / USA) Ontologies, traitement de la langue,... Analyse en imagerie médicale : détection en temps réel du contour du rein Apprentissage artificiel, analyse d images 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 _#!2(,0#/!aa< 3)+;/,)%:#-!",--3#$!#/!(#.&+,-$!?:4+H.%- R3c3*B)(!&41!"&<)+'"#-:&"--,H.%-!$4(!.&!'&$#!"#!",--3#$ 1)"*)+00%):4-#!)-/#(%&*#!d#'!&U#*!.&!'&$#!"#!",--3#$ Q!/(&U#($!@J6OB!H4-!eNJfM P<)%)!.#$!/'.,-+4%/)-:g!.#$!)%--"/)$%- ()*+#,-%):.#$:)%D/Q4%-:#/:0";,2$+'"#-!"#!.&!Jf PHP : MySQL 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 2 - Les bases de données Partie 3 - Bases sur les BD Partie 4 - Conception des BD Partie 5 - Manipulation : SQL Partie 6 - PHP / MySQL 2. Quelles données? Les données sont omniprésentes autour de nous... @6!_#$!J&$#$!"#!f,--3#$ Base de données sur des films (e.g. Allociné) Base de données bibliothécaire (e.g. BN, Amazon,...) 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*:2,"$')26"#"$#'"6,"&#:"#E0$1F0$$)+2'9&#:"#?"&F0$#:"# :0$$9"& Les produits Les commandes Les factures... R##6PST##G<=).87"#+"#>")4&$#+"#?')")#+"#@&$$A")H Informatique - Bases de données! A. Cornuéjols 2014 53 /119 2. Quelles données? Informatique - Bases de données! A. Cornuéjols 2014 54 /119 2. Comment les stocker? Les données sont omniprésentes autour de nous... Informatique - Bases de données! A. Cornuéjols 2014 Comment les ranger dans un ordinateur? 55 /119 Informatique - Bases de données! A. Cornuéjols 2014 56 /119
2. Comment structurer les données? 2. Comment les stocker? Comment les ranger dans un ordinateur? En regardant d'un peu plus près... scanner les bons de commande [1/10] données du client copier les données dans un tableau Word [2/10] copier les données dans une feuille Excel [4/10] Scanner : seulement pour le stockage : pas d édition de factures, de gestion des stocks ou de ou comptabilité. copier les données dans une base de données [10/10] données de la commande données d'un détail Word : exploitation des données pas vraiment supportée Excel : format très complexe. Comment mettre tout dans un seul tableau? Comment faire face à croissance de l activité? 3 catégories de données Informatique - Bases de données! A. Cornuéjols 2014 57 /119 2. Comment structurer les données? NCOM DATECOM 30188 2/1/2009 58 /119 2. Comment structurer les données? Reportons ces données dans des tableaux : données de la commande Informatique - Bases de données! A. Cornuéjols 2014 Données sans redondances et avec références : données du client données de la commande données du client TOTAL-COMMANDE NCLI NOM ADRESSE LOCALITE NCOM NCLI DATECOM NCLI 69720 B512 GILLET 14,r. de l'eté Toulouse 30188 B512 2/1/2009 B512 données des détails NOM ADRESSE LOCALITE GILLET 14,r. de l'eté Toulouse 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 client de la commande, quelle est la commande d'un détail? Informatique - Bases de données! A. Cornuéjols 2014 tableau spécifique 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? Distribution optimale des données des bons de commande Ajoutons d'autres données : notre première base de données données de la commande NCOM NCLI DATECOM données du client NCLI NOM ADRESSE LOCALITE 30188 B512 2/1/2009 B512 GILLET 14,r. de l'eté Toulouse données des détails NCOM 30188 30188 30188 30188 NPRO CS464 PA45 PA60 PH222 QCOM 180 22 70 92 données des produits NPRO LIBELLE PRIX CS464 CHEV. SAPIN 400x6x4 220 PA45 POINTE ACIER 45 (2K) 105 PA60 POINTE ACIER 60 (1K) 95 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 Quelques leçons partielles On a besoin de systèmes spécifiques pour conserver et manipuler les données Les données sont représentées dans des tables Les lignes sont des entités Les colonnes sont des propriétés Le découpage en tables demande une analyse et une optimisation L analyse doit aller au-delà des besoins immédiats (abstraction) Que veut-on faire de ces données? 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? Produire les factures Préparer le réapprovisionnement des produits en rupture de stock Calculer le chiffre d'affaire mensuel Etudier la répartition géographique des ventes 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! Les interroger : quel est le numéro, le nom et l'adresse des clients de Toulouse? select NCLI, NOM, ADRESSE from CLIENT where LOCALITE = 'Toulouse'; facile Un dernier exemple : calculer la répartition du chiffre d'affaire par localité et par produit select C.LOCALITE, P.NPRO, sum(d.qcom*p.prix) from CLIENT C, COMMANDE M, DETAIL D, PRODUIT P where C.NCLI = M.NCLI and M.NCOM = D.NCOM and D.NPRO = P.NPRO group by C.LOCALITE, P.NPRO; inutile d'essayer de comprendre pour l'instant! ou encore : quelles sont les commandes des clients de Toulouse? select NCOM from COMMANDE where NCLI in (select NCLI from CLIENT where LOCALITE = 'Toulouse'); un peu plus difficile Cette question complexe est résolue en une seule instruction SQL de 5 lignes! 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 2. Les SGBD Partie 1 - Place de l informatique Partie 2 - Les bases de données Partie 3 - Bases sur les BD Partie 4 - Conception des BD Partie 4 - Manipulation : SQL 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 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. 3- Bases... sur les Bases de Données 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
qui Star représentent Wars G. des Lucas relations Harrison comme Ford Film ou Stars Séance, Wars Sel des entrées 22:15 de ces relations comme 31 Dans «Star le Wars modèle», des relationnel, variables comme les données t, h, et sont des symboles organisées logiques, en tableaux (et), à (ou), deux dimensions (non), 30 30 Un système Un système de gestion de gestion de bases de de bases données de données sert de sert médiateur de médiateur entre des entre individus des individus et des et des que (implique), nous machines. machines. appellerons (existe), Pour mieux Pour mieux des relations. (pour tout). s adapter s adapter aux individus, aux À Avec individus, la différence tout ça, des il doit il organiser doit organiser des formules mathématiciens, logiques peuvent et présenter et présenter les données les données nous supposons être BD les construites de et relations comme façon calcul de façon intuitive. de relationnel intuitive. taille : Il doit finie. Il aussi doit Comme proposer aussi proposer illustration, un langage, un langage, pour nous exprimer pour utiliserons exprimer des requêtes, une des requêtes, base de données BD et calcul relationnel consistant facilement qfacilement HB = en utilisable t, une d utilisable ( Film(t, par relation des r, par «êtres Humphrey des Film humains. êtres et humains. Bogart une Ces exigences relation») Ces Séance(t, exigences forment Séance s, forment le h) point ) (figure le de point départ 1). de départ Une du ligne du de ces modèle modèle relationnel relationnel /"&#:0$$9"&#&0$'#06?)$2&9"&#"$ 10 proposé 10 proposé par Ted par Codd, Ted Codd, un chercheur un chercheur d IBM, d IBM, dans les dans années les années 1970. 1970. 33 relations Si cela vous est appelée paraît cryptique, un n-uplet en français, où n est cela le nombre se lit : Il il de existe existe colonnes. Des mathématiciens Des mathématiciens avaient avaient développé développé à la fin à du la fin XIXdu e siècle XIX e un titre un t et titre un Par t et exemple, un réalisateur Star rwars, réalisateur (bien siècle r avant tq. (bien le n-uplet l invention avant Film(t, l invention de de Sel, tels 22:15 est que l informatique l informatique le n-uplet un 3-uplet, et des bases des r, de bases «un Humphrey triplet, données) de données) dans Bogart la logique la la logique relation» du premier du se r, «Humphrey premier trouve Séance. Bogart») dans ordre, ordre, Les se la pour formaliser pour trouve colonnes relation formaliser Film, ont le ledes et lenoms,!0,,"$'#1)+1*+"6#+)#69(0$&"#i dans la relation Film et le n-uplet appelés n-uplet langage langage attributs, t, des 4+H.%+/C:U:V:;,0%#-,"#-#)(("+9#'&-(.#/!#4 h mathématiques. des dans comme mathématiques. Séance. Titre. Observez Codd a Codd eu l idée a que eu d adapter l idée s et h d adapter ne cette Séance(t, sont logique cette pas s, h) dans quantifiées logique pour Séance. définir pour dans définir la formule un un Donc, donnez-moi les salles s et 32 Les précédente modèle données modèle gestion ; sont nous de gestion de interrogées dirons données, de données, que le modèle ces en deux utilisant modèle relationnel. variables relationnel. comme sont les langage libres. heures h (variables La formule calcul libres), s il relationnel. q HB peut être Le vuecalcul >.*KH)%:)%.+'"##%..%###J!0::@#KLMNO comme Figure Figure une requête 1. Une 1. base Une de base du calcul données de données relationnel. relationnelle relationnelle Elle se lit existe alors un réalisateur : donnez-moi r et un titre les salles s et les relationnel (très fortement inspiré de logique du t tel premier que... ordre) s appuie sur des noms horaires Film h, Films il existe un réalisateur r Séance et un Séance titre t tels que... En d autres termes, «Où et à qui représentent Titre Titre Réalisateur des Réalisateur relations Acteur Acteur comme TitreFilm Titreou SalleSéance, Heuredes Heure entrées de ces relations comme quelle Casablanca heure Casablanca puis-je M. CurtizM. Curtiz voir Humphrey un Humphrey Bogart film Bogart avec Casablanca Humphrey Casablanca Lucernaire Lucernaire 19:00 Bogart 19:00?». Ce langage, le calcul «Star Casablanca Wars Casablanca», des M. Curtiz variables M. Curtiz Peter Lorre Peter comme Lorre Casablanca t, h, et Casablanca des Studiosymboles 20:00 20:00 logiques, (et), (ou), (non), relationnel, Les 400 coups Les permet 400 F. coups d exprimer Truffaut F. Truffaut Jean-Pierre Jean-Pierre des questions Léaud Léaud Star WarsStar dans Wars une Sel Sel syntaxe 20:30 20:30 qui évite les ambiguïtés de nos (implique), langues Star WarsStar naturelles. Wars (existe), G. LucasG. Lucas Harrison Si elles (pour Ford Harrison pouvaient Ford tout). Avec Stars Wars aimer, Stars Sel Wars tout les Sel machines ça, des 22:15 22:15 formules aimeraient logiques la simplicité, peuvent la être C6)$&E06,"#+)#6"-*8'"#"$#"5(6"&&20$#)+?9P62-*"#1)+1*+)P+" 31 construites 31 Dans le Dans modèle modèle relationnel, relationnel, les données les données sont organisées sont organisées en tableaux en tableaux à deux à dimensions deux dimensions précision du comme calcul : relationnel. En pratique, elles utilisent le langage SQL (Structured que nous que appellerons nous appellerons des relations. des relations. À différence À la différence des mathématiciens, des mathématiciens, nous supposons nous supposons Q"F'#$0,P6"#:%$8"*-2$#304)09-3) Query q les relations HB Language) les = relations t,! d ( Film(t, qui exprime de taille de finie. taille r, Comme finie. «Humphrey différemment Comme illustration, illustration, Bogart») les nous utiliserons nous Séance(t, mêmes utiliserons s, questions. h) une base une ) Par exemple, la de base données de données question consistant consistant précédente en une relation une s exprime relation en Film et Film SQL une et comme relation une relation :!"#$%&'( Séance Séance (figure (figure 1). Une 1). ligne Une de ligne ces de ces 33 Si cela vous paraît cryptique, en français, cela se lit : il existe un titre t et un réalisateur r relations relations est appelée est appelée un n-uplet un n-uplet où n est où le n nombre est le nombre de colonnes. de colonnes. Par exemple, Par exemple, Star Wars, Star Wars, )'"*(+,"$ select salle, heure tels que le n-uplet t, r, «Humphrey Bogart» se trouve dans la relation Film, et le Sel, 22:15 est from Sel, 22:15 est Film, un 3-uplet, Séance un 3-uplet, un triplet, un triplet, dans la dans relation relation Séance. Séance. Les colonnes Les colonnes ont des ont noms, des noms, -./(+,"$ n-uplet appelés appelés t, attributs, s, h attributs, dans comme Séance. comme Titre. Titre. Observez que s et h ne sont pas quantifiées dans la formule where Film.titre= Séance.titre and acteur= «Humphrey Bogart» 666 32 précédente 32 Les données Les données ; nous sont interrogées sont dirons interrogées que en utilisant ces en deux utilisant comme variables comme langage langage sont le calcul libres. le relationnel. calcul La relationnel. formule Le calcul Le q HB calcul peut être vue 34 C est relationnel presque relationnel (très compréhensible, fortement (très fortement inspiré inspiré de non logique? Informatique de Et qu Alice logique du - Bases premier de du s exprime données premier ordre)! A. Cornuéjols ordre) s appuie en français 2014 s appuie sur des sur ou 69 /119 noms des qu elle nomsutilise comme une requête du calcul relationnel. Elle se lit alors : donnez-moi les salles s et les ences des données une qui : de interface représentent qui la logique représentent graphique, des du relations des premier relations le système comme ordre comme Film transforme à ou la Film Séance, Toil... ou Séance, sa des question entrées des entrées de ces requête relations de ces relations SQL comme 11. comme http://books.openedition.org/cdf/529?lang=fr horaires h, s il existe un réalisateur r et un titre t tels que... En d autres termes, «Où et à 35 La «Star question «Wars Star», Wars du des», variables calcul des variables relationnel comme comme t, h, et précédente t, des h, symboles et des symboles (ou logiques, en logiques, SQL) (et), précise (et), (ou), (ou), bien (non), ce (non), qu Alice quelle demande. (implique), heure (implique), Cette puis-je (existe), question (existe), voir (pour a un tout). (pour sens film Avec tout). précis, avec tout Avec une Humphrey ça, tout des sémantique. ça, formules des formules Bogart logiques Elle logiques? définit peuvent». Ce peuvent une être langage, réponse, être le uncalcul relationnel, ensemble construites construites de permet comme n-uplets. comme : d exprimer : Nous ne des préciserons questions pas dans comment une syntaxe dans qui cette évite leçon. les Ce ambiguïtés que la de BD sélection et calcul et la relationnel projection, que nous composerons dans l expression suivante de l algèbre BD et calcul relationnel nos q HB = qt, HB d = ( Film(t, d ( Film(t, r, «Humphrey r, «Humphrey Bogart») Bogart Séance(t,») Séance(t, s, h) ) s, h) ) relationnelle question langues ne naturelles. : dit pas, c est Si comment elles pouvaient calculer aimer, la réponse. les machines Pour le «aimeraient comment», la on simplicité, utilise la 33précision l algèbre Si cela Si vous cela du relationnelle paraît vous calcul paraît cryptique, relationnel. introduite cryptique, en français, en par En français, cela Codd. pratique, se cela lit Une : se il existe elles étape lit : il un existe utilisent importante titre un t et titre un le consiste t réalisateur langage et un réalisateur à rsql transformer (Structured r tels E tels le n-uplet n-uplet t, r, «t, Humphrey r, «Bogart» se» trouve se trouve dans la dans relation relation Film, et Film, le Query une question Language) HB =! salle,heure (! du calcul qui titre (" en exprime une acteur expression = «Humphrey différemment Bogart algébrique» (Film)) Salle) les qui mêmes permet questions. de calculer Par la réponse et exemple, à la n-uplet n-uplet t, s, h t, dans s, h Séance. dans Séance. Observez Observez que s et que h ne s et sont h ne pas sont quantifiées pas quantifiées dans la dans formule la formule question Figure cette question. 2. précédente L évaluation s exprime d une en requête SQL comme algébrique :!0,(+"52'9#:*#$+.$/.:;%:.+:)<&"#-% précédente précédente ; nous ; dirons nous dirons que ces que deux ces variables deux variables sont libres. sont libres. La formule La formule q HB peut q HB être peut vueêtre vue 36 L algèbre relationnelle consiste en un petit nombre d opérations de base qui, appliquées à comme select comme une salle, requête une heure requête du calcul du calcul relationnel. relationnel. Elle se Elle lit alors se lit : alors donnez-moi : donnez-moi les salles les s salles et less et les des horaires relations, from horaires h, Film, s il existe produisent h, s il Séance existe un réalisateur un de réalisateur nouvelles r et un r titre et relations. un t tels titre que... t Ces tels En que... opérations d autres En d autres termes, peuvent termes, «Où être et «àoù composées R&'71"#-*"#1"#?"$6"#:"#3#1)+1*+#4#("*'#()&&"6#S#+%91A"++"#I et à pour quelle construire quelle heure heure puis-je des puis-je voir expressions un voir film un avec algébriques film Humphrey avec Humphrey de Bogart plus en Bogart? plus». Ce? complexes.». langage, Ce langage, Pour calcul le répondre calcul à where Film.titre= Séance.titre and acteur= «Humphrey Bogart» la relationnel, question relationnel, permet qui permet nous d exprimer sert d exprimer des d exemple, questions des questions dans il nous une dans syntaxe faudra une syntaxe qui trois évite qui opérations, les évite ambiguïtés les ambiguïtés la dejointure, la 34 C est nos presque langues nos langues naturelles. compréhensible, naturelles. Si Si pouvaient elles non pouvaient aimer,? Et aimer, qu Alice les machines les machines s exprime aimeraient aimeraient en la simplicité, français la simplicité, laou qu elle la utilise précision précision du calcul du calcul relationnel. relationnel. En pratique, En pratique, elles utilisent elles utilisent le langage le langage SQL (Structured une interface graphique, le système transforme sa question en requête SQL (Structured SQL 11. Query Query Language) Language) qui exprime qui exprime différemment différemment les mêmes les mêmes questions. questions. Par exemple, Par exemple, la 1)"*)+00%-#:%0(F,2&)F0$#:"#6"-*8'"& la sur 26 35 La question question question précédente du calcul précédente s exprime relationnel s exprime en SQL en comme précédente SQL comme : (ou en SQL) précise bien ce qu Alice 1/12/14 16:57 : 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*+& ensemble from de Film, from n-uplets. Séance Film, Séance Nous ne préciserons pas comment dans cette leçon. Ce que la where where Film.titre= Film.titre= Séance.titre Séance.titre and acteur= and acteur= «Humphrey «Humphrey Bogart» question ne dit pas, c est comment calculer la réponse. Bogart Pour» le «comment», on utilise 34 34 C est presque C est presque compréhensible, compréhensible, non? non Et qu Alice? Et qu Alice s exprime s exprime en français en français ou qu elle ou qu elle utilise l algèbre relationnelle introduite par Codd. Une étape importante consiste utilise à transformer une interface une interface graphique, graphique, le système le système transforme transforme sa question sa question en requête en requête SQL 11. SQL 11. une 35 35 La question question du La question du calcul calcul du calcul relationnel en une expression relationnel précédente précédente (ou algébrique en (ou SQL) en précise qui permet SQL) précise bien ce de bien qu Alice calculer la réponse à qu Alice cette demande. question. demande. Cette question Cette question a un sens a un précis, sens précis, une sémantique. une sémantique. Elle définit Elle définit une réponse, une réponse, un un Informatique - Bases de données! A. Cornuéjols 2014 36 L algèbre ensemble ensemble relationnelle de n-uplets. de n-uplets. Nous consiste ne Nous préciserons en ne préciserons un petit pas comment nombre pas comment dans d opérations cette dans leçon. cette de leçon. Ce 71 /119 base que Ce la qui, que appliquées la à question question ne dit ne pas, dit c est pas, comment c est comment calculer calculer la réponse. réponse. Pour le Pour «comment le «comment», on utilise des relations, produisent de nouvelles relations. Ces opérations peuvent», on être utilisecomposées l algèbre l algèbre relationnelle relationnelle introduite introduite par Codd. par Une Codd. étape Une importante étape importante consiste consiste à transformer à transformer pour construire des expressions algébriques de plus en plus complexes. Pour répondre à MySQL une question du calcul en une expression algébrique qui permet de calculer la réponse à Informatique - Bases de données! A. Cornuéjols 2014 70 /119 Informatique - Bases de données! A. Cornuéjols 2014 72 /119
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. Chaque ligne (enregistrement) d une table décrit les données relatives à une entité. ligne 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 obligatoire colonne 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 : 1. le nom de la table, 2. pour chaque colonne, son nom, son type, son caractère obligatoire, Un schéma 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) dans le schéma dans les données clé étrangère 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 2 - Les bases de données Partie 3 - Bases sur les BD Partie 4 - Conception des BD Partie 5 - Manipulation : SQL Partie 6 - PHP / MySQL 3.1 Introduction 3.5 Types d'associations 3.2 Modèle Entité-Association 3.6 Exemples de schéma conceptuel 3.3 Types d'entités 3.7 Exemple détaillé 3.4 Attributs 4.1 Pourquoi est-ce difficile de concevoir une BD 4 - Conception d une base de données 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). 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 Le modèle Entité-association propose une lecture du monde (le domaine d'application) simple mais limitée : appartient CLIENT NumClient Nom Adresse signe CLIENT le monde est constitué d'objets ou entités VEHICULE CONTRAT les entités sont classées en types d'entités les entités d'un type ont des attributs spécifiques NumVéh Marque Modèle Année Cylindrée couvre NumCtr Type DateSign VEHICULE ACCIDENT CONTRAT les entités sont en association les unes avec les autres implique NumAcc DateAcc Montant[0-1] ACCIDENT 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 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. Le GIE paie ses employés mensuellement, en fonction de leurs interventions. Chaque intervention concerne une parcelle, un employé et un nombre de jours. Le système d information désiré doit pouvoir fournir : la liste des agriculteurs la liste des employés 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é) Agriculteur : Nom, prénom, lieu de résidence Employé GIE : Nom et prénom Parcelle : nom, superficie, lieu et propriétaire Employé : numéro insee et salaire journalier Interventions : employé, parcelle, date de début, nombre de jours Nom Prénom Lieu de résidence Dulhac Anne-Marie Arith Martoz Christian Montargy Carrez François Arith Ferrer Mariette Lenoyer Mernaz Francine Lescheraines Martoz Christian Lescheraines Comment identifier? Clé primaire IdAgri Nom Prénom Lieu de résidence 1 Dulhac Anne-Marie Arith 2 Martoz Christian Montargy 3 Carrez François Arith 4 Ferrer Mariette Lenoyer 5 Mernaz Francine Lescheraines 6 Martoz Christian Lescheraines 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) Ville_Dep Ville_Arr Distance Aiglun Saint-Auban 25 Aix-les-Bains Chambery 14 Rennes Paris 342 Rennes Saint-Malô 75 Saint-Alban Aiglun 23 Champ Type Extra Agr_id int(11) auto_increment Agr_Nom varchar(30) Agr_Prn varchar(20) Agr_Resid varchar(50) Agr-Id Agr_Nom Agr_Prn Agr_Resid 1 Dulhac Anne-Marie Arith 2 Martoz Christian Montargy 3 Carrez François Arith 4 Ferrer Mariette Lenoyer 5 Mernaz Francine Lescheraines 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 Par_Idf Par_Nom Par_Lieu Par_Superficie 1 Le Pré au Vent Arith 350 2 Le grand Verger Arith 300 3 Plan des Bauges Montargy 220 4 Les Prés Rus Arith 750 Les parcelles et leur propriétaire Par_Idf Par_Nom Par_Lieu Par_Superficie Par_Prop 1 Le Pré au Vent Arith 350 1 2 Le grand Verger Arith 300 2 3 Plan des Montargy 220 1 Bauges 4 Les Prés Rus Arith 750 4 5 Lafosse Montargy 600 1 Agriculteur Parcelles Agr_Id Agr_Nom Agr_Prn Agr_Resid 5 Lafosse Montargy 600 Comment indiquer le propriétaire? Une relation entre deux tables 1 Dulhac Anne-Marie Arith 2 Martoz Christian Montargy 3 Carrez François Arith 4 Ferrer Mariette Lenoyer 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 Agriculteur Agr_id Agr_Nom Agr_Prn Agr_Resid Agriculteur 1 n Parcelle Par_id Par_Nom Par_Lieu Par_Sup Par_Prop Clé étrangère La table employé Emp-nss Emp_Nom Emp_prn Emp_tarif 1,75077E+12 Grandet Marc 110 1,82023E+12 Barnier Nicole 115 1,79011E+12 Pernet Henri 119 Une relation 1 à n entre deux tables Parcelles Quelle clé primaire? 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 Quelle relation entre les tables parcelle et employé? Un employé peut être amené à travailler sur plusieurs parcelles Sur une même parcelle peuvent travailler plusieurs employés (simultanément ou l un après l autre) C est une relation plusieurs à plusieurs : on la représente par une nouvelle table Les parcelles et les employés Employé Emp_nss Emp_Nom Emp_Prn Emp_tarif 1 n L employé Grandet a travaillé sur la parcelle du pré au vent, 5 jours à partir du 5 juillet 2004. Intervention Int_Emp_nss Int_Par_id Int_Deb Int_Nb_Jours n Int_Emp_nss 1 Intervention Int_Par_i d Int_Deb Parcelle Par_id Par_Nom Par_Lieu Par_Sup Par_Prop Int_Nb_Jours 1,75077E+12 1 2004-07-05 5 Emp_nss Emp_Nom Emp_prn Emp_tarif 1,75077E+12 Grandet Marc 110 Employé Parcelle Par_Idf Par_Nom Par_Lieu Par_Superficie Par_Prop 1 Le Pré au Vent Arith 350 1 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 2 - Les bases de données Partie 3 - Bases sur les BD Partie 4 - Conception des BD Partie 5 - Manipulation : SQL Partie 6 - PHP / MySQL 4.1 Introduction : LDD et LMD 4.5 Les fonctions agrégatives 4.2 Création / modification de table 4.6 Les sous-requêtes 4.3 Extractions simples 4.4 Extractions complexes 5.1 Introduction à SQL : LDD et LMD SQL n est pas un langage de programmation complet 5 - LE LANGAGE SQL (Structured Query Language) SQL permet : de définir le schéma de la base de données (LDD) 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 En TP : aperçu de la partie LMD : 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 Le sous-langage LMD de SQL permet de consulter le contenu des tables et de les modifier. Il comporte 4 verbes : Personnes nom prénom adresse téléphone Martin Pierre 7 allée des vers 258941236 Dupond Jean 32 allé Poivrot 526389152 Dupond Marc 8 rue de l octet 123456789 La requête select extrait des données des tables La requête insert insère de nouvelles lignes dans une table La requête delete supprime des lignes d'une table La requête update modifie les valeurs de colonnes de lignes existantes SELECT nom, prénom FROM Personnes nom Martin On projette la table Personnes sur les colonnes nom et prénom. prénom 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 nom prénom adresse téléphone Martin Pierre 7 allée des vers 258941236 Dupond Jean 32 allé Poivrot 526389152 Dupond Marc 8 rue de l octet 123456789 Relation de départ : SELECT * FROM Gens Gens Nom Prenom Age Dupond Pierre 24 1 SELECT Nom FROM Gens SELECT * FROM Personnes WHERE nom = Dupond On ne sélectionne que les tuples dont l attribut nom est égale à Dupond. nom prénom adresse téléphone Dupond Jean 32 allé Poivrot 526389152 Dupond Marc 8 rue de l octet 123456789 Martin Marc 48 Dupont Jean 51 Martin Paul 36 Dupond Lionel 68 Chirac Jacques 70 Nom Gens Dupond Martin Dupont Martin Dupond Chirac 2 SELECT DISTINCT Nom FROM Gens 3 Nom Gens Dupond Martin Dupont Chirac 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 6 Gens Nom Chirac Dupond Dupont Martin Gens Nom Dupond SELECT DISTINCT Nom FROM Gens ORDER BY Nom ASC 4 5 SELECT DISTINCT Nom FROM Gens WHERE Nom <> Chirac ORDER BY Nom ASC LIMIT 2 Nom Chirac Gens Dupond SELECT DISTINCT Nom FROM Gens ORDER BY Nom ASC LIMIT 2 nom prénom adresse téléphone Martin Pierre 7 allée des vers 258941236 Dupond Jean 32 allé Poivrot 526389152 SELECT Personnes.prénom, dernierlivre FROM Personnes, Bibliothèque WHERE Personnes.nom = Bibliothèque.nom prénom Dernierlivre Jean Robinson Pierre Misère nom Dupond Jospin Martin Dernierlivre Robinson Faust Misère On joint les deux tables, grâce à la colonne nom. Et on combine cette jointure à une projection sur les attributs nom et dernierlivre. Attention à lever toute ambiguïté sur les noms d attribut dans le cas où deux tables possèdent des colonnes de 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 from produit where prix <= 100.5; select nom, prénom from ELEVES where age between 12 and 16; Liste des noms de produits dont le prix est inférieur ou égal à 100.5 Liste des noms et prénoms des élèves dont l âge est dans [12,16] select NOM, ADRESSE, COMPTE from CLIENT where LOCALITE = 'Toulouse' and COMPTE < 0; select modèle from VOITURES where couleur in ( bleu, blanc, noir ); Liste des modèles de voitures dont la couleur est dans la liste : bleu, blanc, noir. select NOM, ADRESSE, COMPTE where COMPTE > 0 and (CAT = 'C1' or LOCALITE = 'Paris') select modèle from VOITURES where couleur not in ( rose, violet ); Liste des modèles de voitures dont la couleur n est pas dans la liste : rose, 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 where QSTOCK > 500; TVA de NPRO = 0,21*PRIX*QSTOCK TVA de TVA de TVA de TVA de CS264 PA45 PH222 PS222 = = = = 67788 12789 37770.6 47397 select NPRO as Produit, 0.21*PRIX*QSTOCK as Valeur_TVA from PRODUIT where QSTOCK > 500; "Produit" est un alias de colonne select * from PRODUIT where NPRO in (select NPRO from DETAIL where NCOM in (select NCOM from COMMANDE where NCLI in (select NCLI from CLIENT where LOCALITE='Namur'))); Produit CS264 PA45 PH222 PS222 Valeur_TVA 67788 12789 37770.6 47397 les clients de Namur les commandes des clients de Namur 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 2 - Les bases de données Partie 3 - Bases sur les BD Partie 4 - Conception des BD Partie 5 - Manipulation : SQL Partie 6 - PHP / MySQL 6.1 Introduction 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 6 - PHP / MySQL Utilise le langage SQL 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 base MySQL à distance via un navigateur web Application intégrée à EasyPHP phpmyadmin permet également de visualiser les requêtes SQL Outil pour : créer de nouvelles bases créer / modifier / supprimer des tables afficher / ajouter / modifier / supprimer des tuples dans des tables 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é dans des fichiers Gestion par SGBD (Système de Gestion de Bases de Données) Stockage ; accès ; recherche ; sécurité... Exemples : MySQL, ORACLE, PostgreSQL,... Langage spécialisé : SQL On choisit une application cliente permettant de dialoguer avec un serveur MySQL : PHP ; phpmyadmin ;... des données multimédias, des données textuelles, des données spatiales (données GPS par exemple), des données historiques (plusieurs lignes par entité), des données semi-structurées. Volumes et performances. 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. La structure d'une base de données peut évoluer : ajouter ou supprimer une table, une colonne, une contrainte. Comment préserver les données et les programmes utilisateurs lors de cette évolution? Les données distribuées et nomades. Une base de données peut être répartie et/ou dupliquées sur plusieurs ordinateurs répartis géographiquement. (cf. le «cloud computing») Certains de ceux-ci peuvent être des appareils mobiles (embarqués, portables, smart phones). Comment garantir la cohérence, la protection et l'accessibilité des données. Les BD et le Web. Le Web peut être vu comme une gigantesque base de données (largement incohérente et redondante!) Qu'en est-il des principes rigoureux des bases de données dans ce contexte? Les données décisionnelles. 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 décisions tactiques et stratégiques. Caractéristiques : traitement de très gros volumes de données complexes pour produire une réponse courte (une heure de traitement de plusieurs téraoctets pour en extraire un seul nombre!) 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