You are on page 1of 101

Concevoir une base de donnes

version du mercredi 17 fvrier 2010

Andr Bouchier & Christophe Lebegue

Premiers pas

Montpellier Les bases de donnes

page 1

2006, Andr Bouchier (20 Novembre 2007 17 fvrier 2010) http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Le document Concevoir une base de donnes by A.Bouchier est mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France.

Montpellier Les bases de donnes

page 2

1. Les tapes de la conception


le modle conceptuel de base de donnes (MCD) dfinir les entits dfinir les attributs dfinir les relations

Le vrai travail de reflexion

le modle logique de base de donnes (MLD) comment organiser les donnes (si le MCD est bien ralis, cette tape est quasi mcanique) le modle physique de base de donnes (MPD) comment stocker, quels logiciels, quels moyens

Montpellier Les bases de donnes

page 3

2. tude d'un exemple concret


Gestion des vhicules de service d'une unit.

Le gestionnaire de l'unit dsire savoir dans un dlais raisonnable : Qui conduit les vhicules quelles dates Combien de km annuel par quipe et par vhicule O vont les vhicules

Montpellier Les bases de donnes

page 4

3. Gestion des vhicules : le pralable


Avant tout, rcolter des informations... le carnet de bord d'un vhicule un exemple de rcapitulatif annuel liste des vhicules du parc comment sont-ils grs qui utilisera cette base qui s'en occupera etc.

Montpellier Les bases de donnes

page 5

4. Gestion des vhicules : dfinir les entits


Une entit est un ensemble cohrent d'information. (Un truc, un machin, un objet, une entit...) Dans le cas de la gestion des vhicules de service : On peut considrer qu'un vhicule est une entit Une deuxime entit sera le conducteur du vhicule Moins vident, un voyage sera notre 3me entit Dfinir les entits ncessite une bonne connaissance du domaine modliser.

Montpellier Les bases de donnes

page 6

5. Gestion des vhicules : choisir les attributs


Quels sont les attributs associs chaque entit ? Traduction : comment caractriser un vhicule, un conducteur ou un voyage. Le vhicule peut tre caractris par : marque modle type (essence ou diesel) date d'achat numro d'immatriculation nombre de places

L'index identifie un vhicule de faon unique

Attention ! Le choix des attributs, comme celui des entits dpend fortement des objectifs de la base de donnes

Montpellier Les bases de donnes

page 7

6. Gestion des vhicules : les attributs


un attribut doit correspondre un type (numrique, caractre, boolen,...) Le type de l'attribut doit correspondre au type de donnes qu'on va utiliser. Traduction : on ne stocke pas une marque d'automobile ( Porche par exemple) dans un champ numrique. Le vhicule sera caractris par : numro d'immatriculation marque modle type (essence ou diesel) date d'achat nombre de places de type caractre (long=9) de type caractre (long=15) de type caractre (long=15) de type caractre (long=1) de type date de type numrique (un entier)

Montpellier Les bases de donnes

page 8

7. Gestion des vhicules : exercice


C'est vous de choisir les attributs (avec leur type) des entits conducteur et voyage

Montpellier Les bases de donnes

page 9

8. Gestion des vhicules : l'entit conducteur


L'entit conducteur peut tre caractrise par : nom de type caractre (long=20) prnom de type caractre (long=20) statut de type caractre (long=5) quipe d'appartenance de type caractre (long=10) adresse courrier lectronique de type caractre (long=20) Remarques 1 : les longueurs des chanes de caractre doivent tre le plus courtes possible Remarques 2 : chaque conducteur est identifi de faon unique par ses nom/prnom. Mais plutt qu'un index compos de type caractre on prfrera un index numrique. On ajoutera donc : ID_conducteur de type numrique (entier long)

Montpellier Les bases de donnes

page 10

9. Gestion des vhicules : l'entit voyage


L'entit voyage peut tre caractrise par : date du voyage destination motif du voyage km parcourus de type date de type caractre (long=20) de type caractre (long=20) de type numrique (entier)

Remarques : chaque voyage est identifi de faon unique par date/destination (on suppose ici qu'il n'y a qu'un voyage par jour). Mais plutt qu'un index complexe on prfrera un index numrique. On ajoutera donc : ID_voyage de type numrique (entier long)

Que se passe-t-il si on veut suivre les dpenses de chaque vhicule par quipes (carburant, rparation, entretient)

Montpellier Les bases de donnes

page 11

10. Gestion des vhicules : le dictionnaire


L'ensemble des attributs des entits forme le dictionnaire des donnes. Celuici doit tre le plus prcis possible. Pensez saisir selon le cas : quelles units sont utilises (rendement en Quintaux/ha ou tonnes/ha ?) quelle est la prcision des donnes (mesures, estimes,...) qui a collect l'information ?

confidentialit des donnes (donnes publiques ou prives ?)

Montpellier Les bases de donnes

page 12

11. Les vhicules : dictionnaire des donnes

Montpellier Les bases de donnes

page 13

12. Quelques types de donnes


TINYINT : Entier de 0 255 (unsigned) SMALLINT : Entier de 0 65535 (unsigned) MEDIUMINT : Entier de 0 16777215 (unsigned) INT : Entier de 0 4294967295 (unsigned) BIGINT : Entier de 0 18446744073709551615 (unsigned) DECIMAL : Un nombre virgule flottante DATE : Une date, va de '1000-01-01' '9999-12-31' DATETIME : Date et Heure, va de '1000-01-01 00:00:00' '9999-12-31 23:59:59' TIMESTAMP : Date et Heure en secondes depuis le 1er janvier 1970 jusqu' l'anne 2037 TIME : Une mesure de l'heure, va de '-838:59:59' '838:59:59' YEAR : Une anne (1901 2155) CHAR : Chane de caractre de taille fixe de 1 255 caractres VARCHAR : Chane de caractre de taille variable de 1 255 caractres TINYTEXT ou TINYBLOB : Un objet BLOB ou TEXT, longueur maximale de 255 TEXT ou BLOB : Un objet BLOB ou TEXT, longueur maximale de 65535 MEDIUMTEXT ou MEDIUMBLOB : Un objet BLOB ou TEXT, longueur maximale de 16777215 LONGTEXT ou LONGBLOB : Un objet BLOB ou TEXT, longueur maximale de 4294967295 remarques : BLOB correspond une chane de taille normale. C'est quivalent de TEXT mais sensible la casse. un entier long non sign varie de 0 4294967295. Sign, il varie de -2 147 483 648 2 147 483 647
Montpellier Les bases de donnes page 14

13. Gestion des vhicules : les relations


La premire partie de notre modle entit-relation est termine. Il reste dcrire les relations entre les entits. Pour a, nous utiliserons un verbe : Un conducteur effectue plusieurs voyages Un voyage est effectu par un seul conducteur Un voyage ncessite un vhicule (un seul) Un vhicule peut effectuer plusieurs voyages Les nombres associs aux relations s'appellent les cardinalits. Il en existe de 3 sortes.

Montpellier Les bases de donnes

page 15

14. Un peu de thorie : les cardinalits


Cardinalit 1-1 : de type poux-pouse un poux a une seule pouse une pouse a un seul poux Cardinalit 1-N : de type pre-enfant un pre peut avoir plusieurs enfants un enfant n'a qu'un seul pre Cardinalit N-N : de type enfant-loisir un enfant a plusieurs loisirs un loisir est pratiqu par plusieurs enfants Ces cardinalits influent sur la faon dont seront grs les index.

Montpellier Les bases de donnes

page 16

15. Gestion des vhicules : le modle MCD


Le graphique du modle conceptuel des donnes vhicule

Montpellier Les bases de donnes

page 17

16. Un peu de thorie : formes normales


La normalisation consiste effectuer une srie de tests pour : liminer les donnes redondantes vrifier que les donnes sont associes lentit ou la relation approprie viter les valeurs nulles rendre la base de donnes plus cohrente et robuste Il existe 6 tests pour normaliser une base de donnes. Nous ne verrons que les trois premiers.

Montpellier Les bases de donnes

page 18

17. La premire forme normale


Rgle : Si dans la mme entit, un attribut peut prendre diffrentes valeurs pour le mme enregistrement, liminez cet attribut de l'entit. Avec les attributs limins, crez une ou plusieurs entits et relations. Exemples : Dans l'entit voyage , si un enregistrement (un voyage) peut avoir plusieurs destinations, alors cet attribut n'a rien faire ici. Il faut crer une nouvelle entit destination Et une nouvelle relation : un voyage (peut avoir) de 1 N destinations

Montpellier Les bases de donnes

page 19

18. La deuxime forme normale


Rgle : Dplacer les donnes qui ne dpendent pas de la cl complte. Chaque attribut d'une entit doit dpendre de l'intgralit de la cl. Exemples : Dans l'exemple suivant, chaque voyage est dfini de faon unique par la date et la destination Les attributs ville , Dpartement et code dpartement ne dpendent que de la destination Ces 3 attributs doivent tre supprims de cette entit Une autre entit doit tre cre ainsi qu'une autre relation

Montpellier Les bases de donnes

page 20

19. La deuxime forme normale


En supposant qu'un voyage n'a qu'une seule destination, le modle de donnes pourrait donc ressembler ceci :

Montpellier Les bases de donnes

page 21

20. La troisime forme normale


Rgle : Supprimez les attributs qui ne dpendent pas directement de la cl Exemples : Dans l'exemple suivant, chaque enregistrement de la table est dfini de faon unique par le nom et prnom du conducteur L'organisme d'appartenance dpend bien du conducteur. Mais la description de cet organisme ne dpend pas de l'index et ne doit pas apparatre dans l'entit conducteur. L'organisme d'appartenance sera une autre entit.

Montpellier Les bases de donnes

page 22

21. La troisime forme normale


En supposant qu'un conducteur n'appartient qu' un seul organisme, le modle de donnes pourrait ressembler ceci :

Montpellier Les bases de donnes

page 23

22. forme normale 1 : exemples d'erreur


Premire forme normale : tous les attributs sont non rptitifs et constants dans le temps Personnel* Comptences Dupond Henry base de donnes; statistiques; linux; sites web Dubois Sophie bioinformatique; bibliomtrie; sites web Personnel* Age (annes) Dupond Henry 28 Dubois Sophie 32

Montpellier Les bases de donnes

page 24

23. forme normale 2 : exemple d'erreur


Deuxime forme normale : tous les attributs non-cls sont totalement dpendants fonctionnellement de la totalit de la cl primaire Personne* Dupond Henry Dupond Henry Dubois Sophie Comptence* Statistiques Linux bibliomtrie Niveau Expert Dbutant Expert Organisme d'appartenance INRA - Montpellier INRA - Montpellier CIRAD - Montpellier

Montpellier Les bases de donnes

page 25

24. Forme normale 3 : exemple d'erreur


Troisime forme normale : tout attribut n'appartenant pas une cl ne dpend pas d'un attribut non cl Personne* Grade Organisme adresse organisme
place viala 34150 montpellier cedex place viala 34150 montpellier cedex Avenue Agropolis, 34398 Montpellier

Durand Charles ingnieur INRA - Montpellier Dupond Henry technicien INRA - Montpellier Dubois Sophie ingnieur CIRAD - Montpellier

Pour se souvenir des trois premires formes normales, rappelez vous ce serment : Je jure de dire la vrit, toute la vrit, rien que la vrit. Ce qui donne : 1FN = La cl. 2FN = Toute la cl. 3FN = Rien que la cl. Souce : http://fr.wikipedia.org/wiki/Accueil

Montpellier Les bases de donnes

page 26

25. Formes normales : exercice


Nouveau mdecin, je souhaite grer intelligemment ma clientle Mais quelle type de fichier choisir ?
Nom Prnom Adresse Age date1
4/8/07 5/9/07

diagnost1 soins1
brlure foulure

date2

diagnost2
rhume

soins2
Aspirine

Dupond Jean Dubois Pierre

Nimes 30000 32 Gignac 34150 57

Aspirine Aspirine 5/9/07

Nom

Prnom Adresse

Age date1
4/8/07 5/9/07 5/9/07

diagnost1 soins1
brlure foulure rhume Aspirine Aspirine Aspirine

Dupond Jean Dubois Pierre Dubois Pierre

Nimes 30000 32 Gignac 34150 57 Gignac 34150 57

Critiquez ces 2 types de gestion de donnes Proposez une solution respectueuse des formes normales

Montpellier Les bases de donnes

page 27

26. Le modle logique des donnes MLD


Gnrer le modle logique de donnes consiste convertir les relations du modle conceptuel en tables et cls trangres correspondantes. (ce processus est galement appel rsolution des relations)

id_conducteur et id_vehicule : 2 cls trangres la table voyage le modle logique des donnes est troitement li la structure des tables, leur implantation dans une base de donnes

Montpellier Les bases de donnes

page 28

27. Le passage du MCD vers le MLD


Si la base de donne est bien conue, l'opration peut-tre automatise. Utilisation d'un logiciel : Le plus simple consiste appuyer sur le bouton construction aprs avoir appuy sur le bouton vrification en cas de doute, on peut aussi appuyer sur le bouton aide

Montpellier Les bases de donnes

page 29

28. Passage du MCD vers le MLD : quelques cls


Bien que ce passage puisse tre ralis de faon automatique, voyons quelques rgles (simplifies) : relation 1-1 : une cl trangre se trouvera dans chacune des deux tables

Montpellier Les bases de donnes

page 30

29. Passage du MCD vers le MLD : quelques cls


relation 1-N : La clef trangre se retrouve dans la table de plus forte cardinalit

Montpellier Les bases de donnes

page 31

30. Passage du MCD vers le MLD : quelques cls


Relation N-N : On cre une nouvelle table avec 2 cls trangres

Montpellier Les bases de donnes

page 32

31. Le vocabulaire
Dans le modle conceptuel on parle de : entit attributs relations cardinalits Dans le modle logique on parle de : tables champs cls primaires ou trangres enregistrements (ou tuples)

Montpellier Les bases de donnes

page 33

32. Cas particulier : relation rcursive


relation rcursive (ou rflexive) : relation d'une entit avec elle mme Exemple : ralis avec DBDesigner 4

Une solution possible

Montpellier Les bases de donnes

page 34

33. Le passage au modle physique


Premire mthode : aprs avoir choisi le matriel et les logiciels, on btit la base de donnes la main Deuxime mthode : cliquer sur vrification puis construction et enfin sur sauvegarder le script

On obtient quelque chose comme a :

etc...
Montpellier Les bases de donnes page 35

34. Exercice premire partie


On souhaite construire une base de donnes pour grer des films DVD Ces films appartiennent des voisins et amis ainsi qu' vous mme L'objectif est : connatre les films possds par le voisinage connatre les films disponibles (non emprunts) Construisez le modle conceptuel des donnes

Montpellier Les bases de donnes

page 36

35. Exercice deuxime partie


Gestion vido : Crer le modle logique des donnes Crer le modle physique des donnes Pour effectuer ces oprations on utilisera le logiciel AnalyseSI (logiciel libre) disponible ici http://analysesi.free.fr

Les tables seront cres dans la base de donnes d'Open Office ( logiciel libre) disponible ici http://fr.openoffice.org/

Montpellier Les bases de donnes

page 37

36. Exercice : un exemple de correction (1)

Montpellier Les bases de donnes

page 38

37. Exercice : un exemple de correction (2)


Remarque : Dans ce modle, l'entit filmCD stocke les films eux mme, pas les supports physiques. On ne sait donc pas qui appartiennent les supports emprunts. On ne connat pas non plus les dates d'emprunt et de restitution. Cette base est incomplte, il faut la modifier ! Comment faire pour grer ces donnes supplmentaires ?

Montpellier Les bases de donnes

page 39

38. Exercice : un exemple de correction (3)


Le MCD doit tre remis plat. Cela peut donner :

on trouve maintenant des DVD contenant 2 films. Cette base de donnes permet-elle de grer ce type de support ?
Montpellier Les bases de donnes page 40

39. Exercice : un exemple de correction (4)


Le modle logique des donnes :

Montpellier Les bases de donnes

page 41

40. Exercice : un exemple de correction (5)


Le logiciel AnalyseSI gnre le code ncessaire la cration de la base de donnes Ce code est sauvegard dans un fichier texte

Montpellier Les bases de donnes

page 42

41. Exercice : un exemple de correction (6)


Dans Open Office, on cre une nouvelle base de donnes vide L'outil SQL ouvre une fentre dans laquelle on colle le code SQL gnr par AnalyseSI

L'excution de ce code cre la base de donnes Pour voir le rsultat, il reste actualiser la base et afficher les relations

Montpellier Les bases de donnes

page 43

42. Exercice : un exemple de correction (7)


La base de donnes vue par Open Office

Montpellier Les bases de donnes

page 44

43. Bases de donnes locales


dans l'exercice prcdent, la base de donnes est locale : une version sur chaque ordinateur les mises jours sont locales pas de partage de donnes

ce type de base de donnes est utile pour des donnes personnelles grer votre compte bancaire grer votre collection de timbres poste grer votre collection de DVD etc.

Montpellier Les bases de donnes

page 45

44. Bases de donnes client/serveur


dans les quelques exemples suivants : rservation de vhicules ou de salles de runion services internet (vente, location, etc.) gestion d'emploi du temps en ligne etc. la base de donnes sera administre par une ou plusieurs personnes elle pourra tre consulte simultanment par plusieurs personnes Elle doit tre stocke sur une machine en rseau C'est une base de donnes client/serveur

Montpellier Les bases de donnes

page 46

45. Quelques bases de donnes client/serveur


Oracle de Oracle Corporation SQL Server de Microsoft PostgreSQL, SGBD relationnel logiciel libre MySQL, SGBD relationnel, logiciel libre pour la "Community Edition" etc. ces bases de donnes peuvent tre consultes simultanment par un grand nombre d'utilisateurs : personne ne doit pouvoir mettre jour des donnes dans une table pendant quune autre personne les modifie dj en cas de panne majeure du systme informatique au milieu dune modification, un mcanisme doit permettre dannuler les transactions en cours si elle nont pas pu tre excutes totalement des vrifications dintgrit doivent assurer que chaque valeur inscrite dans un tuple soit une valeur permise
source : Wikipedia
Montpellier Les bases de donnes page 47

46. Quelques avantages des bases client/serveur


La base de donnes tant sur une seule machine, l'administrateur peut grer les problmes de confidentialit, Les mises jours seront disponibles instantanment pour tous les utilisateurs, Les outils d'interrogation d'une base de donnes distante sont indpendants du logiciel situ sur le serveur et du format des donnes.

Montpellier Les bases de donnes

page 48

47. Prsentation de mySQL


Dans le cadre de cette formation, nous utiliserons mySQL. mySQL fait partie des logiciels de gestion de base de donnes les plus utiliss au monde, autant par le grand public (applications web principalement) que par des professionnels, au mme titre que Oracle ou Microsoft SQL Server. MySQL AB a t achet le 16 janvier 2008 par Sun Microsystems pour un milliard de dollars US. Les bases de donnes mySQL que vous utiliserez ont t cres sur une machine serveur du campus supagro par un administrateur. Pour vous connecter, vous devez connatre : un nom d'utilisateur un mot de passe le nom de la machine o se situe la base de donnes et bien sr, le nom de cette base de donnes
Montpellier Les bases de donnes page 49

48. Utilisation de mySQL


Contrairement une base locale, il n'y a pas d'interface utilisateur spcifique pour accder une base de donnes mySQL. Dans le cadre de cette formation, nous utiliserons : phpMyAdmin pour administrer la base de donnes sur le serveur https://web.supagro.inra.fr/intranet/phpMyAdmin/ Open Office base pour crer des tables, formulaires, requtes http://fr.openoffice.org/ le logiciel R pour extraire des donnes et calculer des statistiques http://cran.r-project.org/

Montpellier Les bases de donnes

page 50

49. Connection avec phpMyAdim


Cette application est installe sur le serveur. L'administrateur vous en communiquera l'adresse. https://web.supagro.inra.fr/intranet/phpMyAdmin/

Montpellier Les bases de donnes

page 51

50. Utilisation de phpMyAdim


L'utilisateur formodbc est connect sur le serveur oueb.supagro.inra.fr Il reste choisir une base de donnes Seules les bases de donnes autorises sont affiches

liste de vos bases de donnes

Montpellier Les bases de donnes

page 52

51. Consulter la base de donnes avec phpMyAdim


afficher/modifier la structure voir les donnes interroger la base de donnes

choix de la table
Montpellier Les bases de donnes page 53

52. Interroger une base de donnes distante


Les outils d'interrogation d'une base de donnes distante sont indpendants du logiciel situ sur le serveur et du format des donnes C'est travers les fonctionnalit ODBC des systmes MS-Windows que nous interrogerons les bases de donnes. (Il existe d'autres systmes, en particulier JDBC, bas sur la technologie Java) Nous utiliserons pour a le langage SQL (Langage structur d'interrogation de bases de donnes) La technologie ODBC permet d'interfacer de faon standard une application n'importe quel serveur de bases de donnes, condition que celui-ci possde un driver ODBC Le gestionnaire ODBC est prsent sur les systmes Windows. Il existe des implmentations sur d'autres plates-formes, notamment UNIX/Linux et mac-OSX

Montpellier Les bases de donnes

page 54

53. Installer le pilote ODBC pour MySQL


Le pilote se trouve sur le site http://www.mysql.fr/ dans la rubrique tlchargement, paragraphe Connector/ODBC - MySQL ODBC driver la version MS-Windows bnficie d'un installateur. Un double clic suffit pour l'installer

Montpellier Les bases de donnes

page 55

54. Crer une ressource ODBC (sous XP)


Aller dans le menu windows paramtres , panneau de configuration et enfin outils d'administration Vous trouverez un icne Sources de donnes ODBC

Montpellier Les bases de donnes

page 56

55. Crer une ressource ODBC (2)


Dans la fentre Sources de donnes utilisateurs vous choisissez ajouter Vous slectionnez le pilote MySQL

Montpellier Les bases de donnes

page 57

56. Crer une ressource ODBC (3)


Remplissez le formulaire de cration avec les donnes fournies par l'administrateur rseau. Testez la connection.

Montpellier Les bases de donnes

page 58

57. Crer une ressource ODBC (4)


La liaison vers votre base de donnes est cre. Elle sera disponible chaque fois que vous dmarrerez votre ordinateur.

Montpellier Les bases de donnes

page 59

58. Connection entre Open Office et R


Lancer Open Office base et connectez-vous une base MySQL

Montpellier Les bases de donnes

page 60

59. Connection entre Open Office et R (2)


Choisissez une connection ODBC

Montpellier Les bases de donnes

page 61

60. Connection entre Open Office et R (3)


Choisissez la source des donnes ODBC (celle que vous venez de crer)

Montpellier Les bases de donnes

page 62

61. Connection entre Open Office et R (4)


Fournissez votre nom d'utilisateur et votre mot de passe.

Montpellier Les bases de donnes

page 63

62. Connection entre Open Office et R (5)


Sauvegarder la base de donnes au format Open Office

Montpellier Les bases de donnes

page 64

63. Base Open Office ou base MySQL ?


La base MySQL est attache (lie) la base Open Office La base Open Office ne contient donc pas de donnes La base Open Office peut contenir des formulaires, requtes ou rapports Ces deux applications sont capables de parler le mme langage. Il s'agit du langage SQL (Langage structur d'interrogation) Cependant, Open Office peut crire les requtes votre place

Montpellier Les bases de donnes

page 65

64. Un exemple d'interrogation


cration d'une requte en mode Ebauche on choisira la table iris

Montpellier Les bases de donnes

page 66

65. Construire une requte graphiquement


nous souhaitons connatre les moyennes des longueurs et largeurs des spales pour chaque espce la requte est construite graphiquement un clic sur le bouton Excuter la requte donne le rsultat.

Montpellier Les bases de donnes

page 67

66. Rsultat de la requte Open Office


Open Office a traduit votre requte graphique en langage SQL, comprhensible par le serveur MySQL.

Montpellier Les bases de donnes

page 68

67. Exercices pratiques


Chacun d'entre vous dispose d'une base de donnes MySQL situe sur le serveur du campus. Cette base de donne contient le tableau iris Vous devrez : explorer votre base de donnes avec phpMyAdmin. Vrifier la prsence de la table iris , crer une ressource ODBC pointant vers votre base de donnes MySQL, ouvrir cette ressource ODBC avec Open Office, crer graphiquement une requte calculant le nombre d'enregistrements pour chaque espce d'iris.

Montpellier Les bases de donnes

page 69

68. Le langage SQL


Le langage SQL permet de crer, modifier ou effacer des tables. Il permet aussi de grer les donnes (ajout, modification, effacement). Dans le cadre de cette formation, nous aborderons seulement, travers quelques exemples, les fonctionnalits d'interrogation de SQL. La syntaxe de base est : SELECT : les donnes que nous conservons FROM : sur quelles tables travaillons nous ? WHERE : sur quels critres sont conserves ces donnes ? Par exemple : slectionner la longueur des spales pour l'espce setosa SELECT `Sepal.Length` FROM iris WHERE Species = 'setosa'

Montpellier Les bases de donnes

page 70

69. Interroger, calculer avec SQL


SELECT * FROM iris WHERE `Sepal.Length` > 7.5

on peut utiliser = <= >= !=


SELECT `Sepal.Length` FROM iris WHERE `Sepal.Length` != 7 order by `Sepal.Length` SELECT * FROM iris WHERE `Sepal.Length` BETWEEN 6.7 AND 6.9 SELECT AVG(`Sepal.Length`) FROM iris WHERE `Sepal.Length` BETWEEN 6 AND 7

on peut utiliser MAX MIN SUM et AVG


Le nom de champ `Sepal.Length` est entour de guillemets un peu particuliers. C'est parce que ce nom contient un point. Dans SQL, le point est utilis pour prciser quelle table appartient un champ.

Par exemple : iris.Species

Montpellier Les bases de donnes

page 71

70. Interroger, calculer avec SQL (2)


Calcul par niveau d'un facteur
SELECT AVG(`Sepal.Length`) FROM iris GROUP BY 'Species' ORDER BY AVG(`Sepal.Length`) DESC

Une slection peut tre effectue sur les chanes de caractres :


SELECT `Sepal.Length` FROM iris WHERE Species = 'setosa' SELECT `Sepal.Length` FROM iris WHERE Species IN ( 'setosa', 'virginica') SELECT `Sepal.Length` FROM iris WHERE Species LIKE ( '%a')

On accdera aux valeurs manquantes grce aux fonctions ISNULL() et NOT ISNULL()

Montpellier Les bases de donnes

page 72

71. Accder une base MySQL avec le logiciel R


R est un logiciel statistique libre et gratuit. Il peut se connecter des ressources ODBC. Son interface est sobre. Les fonctions sont crites directement dans la console, aprs le signe >.

Montpellier Les bases de donnes

page 73

72. Utiliser le logiciel R


Pour se connecter des ressources ODBC, R a besoin d'une bibliothque de fonctions nomme RODBC. Si elle n'est pas disponible, il faudra l'installer sur le poste de travail. Toutes ces commandes sont taper dans la console R. #pour utiliser notre base, charger la bibliothque de fonctions RODBC library(RODBC) #connecter R avec la base de donnes formODBC bdd <- odbcConnect("formODBC", "", "") #quelles sont les tables disponibles dans la base de donnes sqlTables(bdd)
1 2 3 4 5 TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS Adherents TABLE Supports TABLE Titres TABLE iris TABLE protein TABLE
Montpellier Les bases de donnes page 74

73. Questionner avec le logiciel R


La seule commande connatre pour envoyer des requtes la base de donnes est : sqlQuery(bdd, "requte SQL") # par exemple, pour obtenir toutes les donnes concernant setosa sqlQuery(bdd, "SELECT * FROM iris WHERE Species= 'setosa'") # pour obtenir un rsum des donnes donnees<-sqlQuery(bdd, "SELECT * FROM iris") summary(donnees)
ID Min. : 1.00 1st Qu.: 38.25 Median : 75.50 Mean : 75.50 3rd Qu.:112.75 Max. :150.00 Sepal.Length Min. :4.300 1st Qu.:5.100 Median :5.800 Mean :5.843 3rd Qu.:6.400 Max. :7.900 Sepal.Width Min. :2.000 1st Qu.:2.800 Median :3.000 Mean :3.057 3rd Qu.:3.300 Max. :4.400 Petal.Length Min. :1.000 1st Qu.:1.600 Median :4.350 Mean :3.758 3rd Qu.:5.100 Max. :6.900 Petal.Width Min. :0.100 1st Qu.:0.300 Median :1.300 Mean :1.199 3rd Qu.:1.800 Max. :2.500 Species setosa :50 versicolor:50 virginica :50

Montpellier Les bases de donnes

page 75

74. Un graphique avec le logiciel R


Remarque : la premire colonne du rsum statistique concerne l'index primaire de la table. Elle n'est pas trs utile... On aurait d crire : summary(donnees[,-1])
2 .0 2 .5 3 .0 3 .5 4 .0 0 .5 1 .0 1 .5 2 .0 2 .5 7 .5

pairs(donnees[,c(-1,-6)])

3 .5

4 .0

2 .0

2 .5

3 .0

S e p a l. W id t h

P e t a l. L e n g t h

1 .5

2 .0

2 .5

0 .5

1 .0

P e t a l . W id t h

4 .5

5 .5

6 .5

7 .5

Montpellier Les bases de donnes

page 76

4 .5

Maintenant que nous avons extrait les donnes, nous pouvons les utiliser pour des reprsentations graphiques :

S e p a l. L e n g t h

5 .5

6 .5

75. Crer des donnes avec R


nous chargeons un nouveau tableau de donnes disponible dans le logiciel R - liste des donnes disponibles : data() data(mtcars) nous utilisons la fonction sqlSave() pour copier ces nouvelles donnes dans la base mySQL ?sqlSave pour en savoir plus sqlSave(bdd, mtcars) nous vrifions que la table a bien t copie dans la base mySQL sqlTables(bdd)
1 2 3 4 5 6 TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS Adherents TABLE Supports TABLE Titres TABLE iris TABLE mtcars TABLE protein TABLE
Montpellier Les bases de donnes page 77

76. Exercices pratiques avec R


connectez-vous avec R votre base de donnes mySQL copiez le fichier de donnes chickwts dans cette base de donnes l'aide d'une requte SQL, interrogez cette table afin d'obtenir le poids moyen par type de rgime

Montpellier Les bases de donnes

page 78

77. Exercices pratiques (suite)


Dans le transparent 24, nous avions examin la base de donnes de rendezvous d'un mdecin. Concevez une base de donnes permettant de grer les visites des patients Implantez vos tables dans votre base SQL distante Saisissez 5 noms de patients et quelques visites (une par patient)

Montpellier Les bases de donnes

page 79

78. Un formulaire de saisie avec Open Office


La base de donnes formODBC contient 3 tables concernant la gestion de films vido. Il s'agit de : la table Adherents : contient les noms des adhrents au club vido la table Titres : contient les titres de films ainsi que leur genre la table Supports : contient la liste des supports (DVD ou K7) ainsi que leurs propritaires et le nom du film. L'objectif est de crer un formulaire permettant de saisir de nouveaux supports

Montpellier Les bases de donnes

page 80

79. crer un formulaire de saisie


Nous utilisons l'assistant de cration de formulaire

Nous travaillons sur la table Supports et slectionnons tous les champs

Montpellier Les bases de donnes

page 81

80. Crer un formulaire de saisie (2)


Nous choisissons la disposition et le mode de saisie qui nous convient

Montpellier Les bases de donnes

page 82

81. Crer un formulaire de saisie (3)


Nous choisissons un style et un nom pour le formulaire

Montpellier Les bases de donnes

page 83

82. crer un formulaire de saisie (4)


Notre formulaire est cr. Mais il n'affiche que des index et aucune aide la saisie. Nous allons donc le modifier pour le rendre plus convivial.

Montpellier Les bases de donnes

page 84

83. Ajout d'un titre


On commente le formulaire en ajoutant du texte

Montpellier Les bases de donnes

page 85

84. Ajout d'une liste droulante


l'objectif est de saisir des index grce des listes de noms d'adhrents clairement lisibles nous avons besoins d'outils supplmentaires

Nous choisissons l'outils zone de liste

Montpellier Les bases de donnes

page 86

85. liste droulante (2)

On choisit : 1.la table contenant le texte afficher 2.le champ afficher 3.la valeur stocker 3

Montpellier Les bases de donnes

page 87

86. liste droulante (3)


Nous effectuons la mme manipulation pour la saisie du titre de film

Montpellier Les bases de donnes

page 88

87. cases cocher


Le type de support ne peut prendre que 3 valeurs : DVD, K7 ou MpEG4 Le formulaire ne proposera donc que ces 3 possibilits nous choisissons : 1.autres contrles 2.puis zone de groupe

Montpellier Les bases de donnes

page 89

88. cases cocher (2)


Il ne reste qu' suivre les indications d'OpenOffice... 1 2

Montpellier Les bases de donnes

page 90

89. cases cocher (3)


Aprs avoir donn un nom votre groupe, vous obtenez ceci :

Montpellier Les bases de donnes

page 91

90. quelques finitions


mettre un titre qui a un sens des labels parlants supprimer les affichages inutiles ajout d'une image

Montpellier Les bases de donnes

page 92

91. Cration d'un rapport


nous allons crer un rapport affichant les films possds par Andr Bouchier Nous commenons par crer une requte qui slectionne ces films nous sauvegardons cette requte (ici, elle s'appelle req_ab)

Montpellier Les bases de donnes

page 93

92. Cration d'un rapport (2)


nous utilisons l'assistant le rapport est bti sur la requte req_ab

Montpellier Les bases de donnes

page 94

93. Cration d'un rapport (3)


nous pouvons modifier l'intitul des champs

nous n'ajoutons pas de niveau de regroupement

Montpellier Les bases de donnes

page 95

94. Cration d'un rapport (4)


nous choisissons une mise en page pour notre document

Montpellier Les bases de donnes

page 96

95. Cration d'un rapport (5)


Vous pouvez crer le rapport sous forme statique ou dynamique. Lorsque vous ouvrez un rapport dynamique, les donnes actives s'affichent. Si vous ouvrez un rapport statique, les donnes qui s'affichent sont strictement identiques ce qu'elles taient la cration du rapport.

Montpellier Les bases de donnes

page 97

96. Cration d'un rapport (6)


Voici ce que nous obtenons. Nous aurions pu nous passer du nom de l'adhrent pour ce rapport, ici, il n'est pas utile

Montpellier Les bases de donnes

page 98

97. Quelques ressources consulter


Une documentation en franais trs complte sur les bases de donnes : SQL Anywhere Studio http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0901/fr /html/contents.htm Un didacticiel pour crer des bases de donnes avec AnalyseSI et la suite bureautique Open Office : http://www.gap.ien.05.ac-aix-marseille.fr/rre/article.php3?id_article=1398 Open Office en Franais : http://fr.openoffice.org/ Le site du logiciel libre AnalyseSI : http://analysesi.free.fr Aide la conception des bases de donnes : DBDesigner 4 : http://www.framasoft.net/article1911.html www SQL Designer Un outil web pour concevoir des bases de donnes http://www.framasoft.net/article1951.html

Montpellier Les bases de donnes

page 99

Table des matires 1.Les tapes de la conception.................................................................3 2.tude d'un exemple concret.................................................................4 3.Gestion des vhicules : le pralable.....................................................5 4.Gestion des vhicules : dfinir les entits............................................6 5.Gestion des vhicules : choisir les attributs.........................................7 6.Gestion des vhicules : les attributs.....................................................8 7.Gestion des vhicules : exercice..........................................................9 8.Gestion des vhicules : l'entit conducteur........................................10 9.Gestion des vhicules : l'entit voyage..............................................11 10.Gestion des vhicules : le dictionnaire.............................................12 11.Les vhicules : dictionnaire des donnes.........................................13 12.Quelques types de donnes.............................................................14 13.Gestion des vhicules : les relations................................................15 14.Un peu de thorie : les cardinalits..................................................16 15.Gestion des vhicules : le modle MCD..........................................17 16.Un peu de thorie : formes normales...............................................18 17.La premire forme normale..............................................................19 18.La deuxime forme normale.............................................................20 19.La deuxime forme normale.............................................................21 20.La troisime forme normale..............................................................22 21.La troisime forme normale..............................................................23 22.forme normale 1 : exemples d'erreur................................................24 23.forme normale 2 : exemple d'erreur.................................................25 24.Forme normale 3 : exemple d'erreur................................................26 25.Formes normales : exercice.............................................................27 26.Le modle logique des donnes MLD..............................................28 27.Le passage du MCD vers le MLD....................................................29 28.Passage du MCD vers le MLD : quelques cls................................30 29.Passage du MCD vers le MLD : quelques cls................................31 30.Passage du MCD vers le MLD : quelques cls................................32 31.Le vocabulaire..................................................................................33 32.Cas particulier : relation rcursive....................................................34 33.Le passage au modle physique......................................................35 34.Exercice premire partie................................................................36 35.Exercice deuxime partie..............................................................37 36.Exercice : un exemple de correction (1)...........................................38 37.Exercice : un exemple de correction (2)...........................................39 38.Exercice : un exemple de correction (3)...........................................40 39.Exercice : un exemple de correction (4)...........................................41 40.Exercice : un exemple de correction (5)...........................................42 41.Exercice : un exemple de correction (6)...........................................43 42.Exercice : un exemple de correction (7)...........................................44 43.Bases de donnes locales................................................................45 44.Bases de donnes client/serveur.....................................................46 45.Quelques bases de donnes client/serveur.....................................47 46.Quelques avantages des bases client/serveur................................48 47.Prsentation de mySQL...................................................................49 48.Utilisation de mySQL........................................................................50 49.Connection avec phpMyAdim...........................................................51 50.Utilisation de phpMyAdim.................................................................52

Montpellier Les bases de donnes

page 100

51.Consulter la base de donnes avec phpMyAdim.............................53 52.Interroger une base de donnes distante.........................................54 53.Installer le pilote ODBC pour MySQL...............................................55 54.Crer une ressource ODBC (sous XP)............................................56 55.Crer une ressource ODBC (2)........................................................57 56.Crer une ressource ODBC (3)........................................................58 57.Crer une ressource ODBC (4)........................................................59 58.Connection entre Open Office et R..................................................60 59.Connection entre Open Office et R (2).............................................61 60.Connection entre Open Office et R (3).............................................62 61.Connection entre Open Office et R (4).............................................63 62.Connection entre Open Office et R (5).............................................64 63.Base Open Office ou base MySQL ?...............................................65 64.Un exemple d'interrogation...............................................................66 65.Construire une requte graphiquement............................................67 66.Rsultat de la requte Open Office..................................................68 67.Exercices pratiques..........................................................................69 68.Le langage SQL................................................................................70 69.Interroger, calculer avec SQL...........................................................71 70.Interroger, calculer avec SQL (2).....................................................72 71.Accder une base MySQL avec le logiciel R................................73 72.Utiliser le logiciel R...........................................................................74 73.Questionner avec le logiciel R..........................................................75 74.Un graphique avec le logiciel R........................................................76

75.Crer des donnes avec R...............................................................77 76.Exercices pratiques avec R..............................................................78 77.Exercices pratiques (suite)...............................................................79 78.Un formulaire de saisie avec Open Office........................................80 79.crer un formulaire de saisie............................................................81 80.Crer un formulaire de saisie (2)......................................................82 81.Crer un formulaire de saisie (3)......................................................83 82.crer un formulaire de saisie (4).......................................................84 83.Ajout d'un titre...................................................................................85 84.Ajout d'une liste droulante..............................................................86 85.liste droulante (2)............................................................................87 86.liste droulante (3)............................................................................88 87.cases cocher..................................................................................89 88.cases cocher (2)............................................................................90 89.cases cocher (3)............................................................................91 90.quelques finitions..............................................................................92 91.Cration d'un rapport........................................................................93 92.Cration d'un rapport (2)...................................................................94 93.Cration d'un rapport (3)...................................................................95 94.Cration d'un rapport (4)...................................................................96 95.Cration d'un rapport (5)...................................................................97 96.Cration d'un rapport (6)...................................................................98 97.Quelques ressources consulter.....................................................99

Montpellier Les bases de donnes

page 101

You might also like