La collection « Les chemins du discours » est dirigée par : Janine Bouscaren (linguistique) Laurent Danon-Boileau (psychanalyse)
COLLECTION L’ESSENTIEL FRANÇAIS
Cette hypothèse, qui affecte à la fois le plan du discours et l’acte même de langage, permet de concevoir le témoignage comme un acte orienté à la fois vers l’objet et vers un certain type de destinataire. D’où la remise en cause de l’idée d’indicibilité, souvent associée aux récits des expériences extrêmes, aux récits des témoins-victimes de guerre, des rescapés des camps de la mort. Dans notre perspective, le problème se pose différemment. Il porte sur la contrainte qui pèse sur l’interlocuteur, amené à rejoindre l’adresse. En ce sens, témoigner, c’est prendre l’autre à témoin. L’indicible n’est pas lié à l’impuissance des mots, mais à la défaillance de l’interlocuteur sollicité par cet appel. Je remercie les collègues et les étudiants grâce auxquels ce travail a progressé aux différentes étapes de son élaboration. Je dois beaucoup notamment aux remarques et au soutien de Marc Dominicy et de Sylvie Delvenne. J’ai une gratitude particulière à l’égard de Mary-Noëlle GaryPrieur, de Dominique Iogna-Prat et d’Anne Levallois. Leur fine lecture du manuscrit a permis Benoît d’innombrables améliorations. Et pour finir, Habert comment dire tout ce que doit ce livre à la patience, à l'attentive affection de Patrice ?
Construire des bases de données pour le français Tome 1 : Notions
Le Tome 2, Réalisations, et les trois bases de données utilisées sont disponibles sur le site internet des éditions Ophrys.
2009
Collection L’ESSENTIEL FRANÇAIS dirigée par Catherine Fuchs La conséquence en français, par Charlotte Hybertie La concession en français, par Mary-Annick Morel Les ambiguïtés du français, par Catherine Fuchs Les expressions figées en français, noms composés et autres locutions, par Gaston Gross Les adverbes du français, le cas des adverbes en -ment, par Claude Guimier Approches de la langue parlée en français, par Claire Blanche-Benveniste Les formes conjuguées du verbe français, oral et écrit, par Pierre Le Goffic L’espace et son expression en français, par Andrée Borillo Les constructions détachées en français, par Bernard Combettes L’adjectif en français, par Michèle Noailly Les stéréotypes en français, par Charlotte Schapira L’intonation, le système du français, par Mario Rossi Le français en diachronie, par Christiane Marchello-Nizia La cause et son expression en français, par Adeline Nazarenko Les noms en français, par Nelly Flaux et Danielle Van de Velde Le subjonctif en français, par Olivier Soutet La construction du lexique français, par Denis Apothéloz La référence et les expressions référentielles en français, par Michel Charolles Le conditionnel en français, par Pierre Haillet La préposition en français, par Ludo Melis Le gérondif en français, par Odile Halmøy Le nom propre en français, par Sarah Leroy Instruments et ressources électroniques pour le français, par Benoît Habert Les dictionnaires français, outils d’une langue et d’une culture, par Jean Pruvost La variation sociale en français (nouvelle édition), par Françoise Gadet Les temps de l’indicatif en français, par Gérard Joan Barceló et Jacques Bres Les verbes modaux, par Xiaoquan Chu Dictionnaire pratique de didactique du FLE (nouvelle édition), par Jean-Pierre Robert Le discours rapporté en français, par Laurence Rosier
Tous droits de traduction, de reproduction et d’adaptation réservés pour tous pays. Toute représentation, reproduction intégrale ou partielle faite par quelque procédé que ce soit, sans le consentement de l’auteur ou de ses ayants cause, est illicite et constitue une contrefaçon sanctionnée par les articles 425 et suivants du Code pénal. Par ailleurs, la loi du 11 mars 1957 interdit formellement les copies ou les reproductions destinées à une utilisation collective. © Éditions Ophrys, Paris, 2009 ISBN 978-2-7080-1218-9 Editions Ophrys, 25 rue Ginoux, 75015 Paris www.ophrys.fr
Imprimé en France
TABLE DES MATIÈRES
Le tome 2 – Réalisations – et les trois bases de données sont disponibles en ligne sur le site Internet des éditions Ophrys, à la page consacrée à l’ouvrage. Dans la table des matières, les titres en italiques, commençant par un petit triangle – –, aux numéros de page en retrait vers la gauche, renvoient à des compléments qui figurent dans le tome 2 en ligne. Table des matières
1
Table des figures
9
Liste des tableaux
11
Introduction
15
Mémoriser et croiser les informations . . . . . . . . . . . . . . . . 15 Modéliser des données en sciences humaines
. . . . . . . . . . . 16
Un apprentissage in vivo . . . . . . . . . . . . . . . . . . . . . . . . 18 Trois études de cas . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1
Construire des bases de données Mode d’emploi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Un « multilinguisme logiciel » bien tempéré . . . . . . . . . . . . . 21 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1 Organisation et utilisation . . . . . . . . . . . . . . . . . . . . . . . . 15 2 Parcours de lecture et de travail . . . . . . . . . . . . . . . . . . . . . 16 3 La langue universelle des SGBD : SQL . . . . . . . . . . . . . . . . . . 18 4 Langage textuel de requêtes vs. interface graphique . . . . . . . . . . . . 19 5 Conventions complémentaires . . . . . . . . . . . . . . . . . . . . . . 20 Chapitre I
Étude de cas 1 : Prématurés
25
1
Bébés prématurissimes : réel vs. perçu . . . . . . . . . . . . . 26
2
Organisation de l’enquête et des données . . . . . . . . . . . 27
3
Des points d’entrée multiples . . . . . . . . . . . . . . . . . . 28
4
Les bébés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5
Les infirmières . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6
Les fiches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7
Normaliser et « éclater » les textes . . . . . . . . . . . . . . . . 35
7.1 Jeu de catégories . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 8
Individus et caractères . . . . . . . . . . . . . . . . . . . . . . 37
9
Des informations à relier . . . . . . . . . . . . . . . . . . . . . 39
10 Versions du texte des fiches . . . . . . . . . . . . . . . . . . . . . . 29 11 Glossaire de l’équipe médicale . . . . . . . . . . . . . . . . . . . . . 31 Chapitre II
Sur quoi tab(u)ler ?
41
1
Les tableaux en traitement de texte . . . . . . . . . . . . . . . 41
2
Les tableaux dans une feuille de calcul . . . . . . . . . . . . . 42
3
Les tables dans une base de données . . . . . . . . . . . . . . 49
3.1 Calcul d’indications globales . . . . . . . . . . . . . . . . . . . . . 46 4 2
Bases de données : aperçu . . . . . . . . . . . . . . . . . . . . 53
Table des matières Chapitre III
Extraire et trier les informations
57
1 Opérations et mises en œuvre . . . . . . . . . . . . . . . . . . 57 1.1 Démarrer ou quitter un SGBD, ouvrir ou fermer une base de données . . . 58 1.2 Forme générale d’une requête SQL . . . . . . . . . . . . . . . . . . . 63 1.3 Forme générale d’une requête sous Access . . . . . . . . . . . . . . . 64 1.4 De l’interface Access à SQL Server . . . . . . . . . . . . . . . . . . . 67 2 Un résultat = une table . . . . . . . . . . . . . . . . . . . . . . 58 2.1 Accueillir dans une nouvelle table le résultat d’une requête . . . . . . . 68 2.2 Pouvoir « rejouer » une requête . . . . . . . . . . . . . . . . . . . . . 70 3 Restreindre : un sous-ensemble de lignes . . . . . . . . . . . 59 3.1 Restriction : définition relationnelle . . . . . . . . . . . . . . . . . . . 71 3.2 Restriction : réalisations . . . . . . . . . . . . . . . . . . . . . . . 71 3.3 Combinaison de conditions de restriction . . . . . . . . . . . . . . . . 74 3.4 Traitement de NULL . . . . . . . . . . . . . . . . . . . . . . . . . 77 4 5
Projeter : un sous-ensemble d’attributs . . . . . . . . . . . . 64 Combiner restriction et projection . . . . . . . . . . . . . . . . 65
6 Calculer des attributs . . . . . . . . . . . . . . . . . . . . . . . 69 7 Ordonner et limiter les résultats . . . . . . . . . . . . . . . . . 72 7.1 Tri en mode Feuille de données (Access) . . . . . . . . . . . . . . . . 91 8 Recherches par « air de famille » . . . . . . . . . . . . . . . . . 76 8.1 Filtrage grossier . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 8.2 Filtrage fin : les expressions régulières . . . . . . . . . . . . . . . . . 95 8.3 Pouvoir de filtrage comparé de MySQL et Access . . . . . . . . . . . . 102 Chapitre IV 1 2
Calculer de nouvelles informations
83
Indicateurs globaux . . . . . . . . . . . . . . . . . . . . . . . . 83 Regroupements . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.1 Calcul de pourcentage en connaissant l’effectif de référence . . . . . . . 132 2.2 Calcul de pourcentage sans connaître l’effectif de référence . . . . . . . 135 2.3 Regroupements temporaires . . . . . . . . . . . . . . . . . . . . . . 138 3 4
Opérateurs sur les colonnes . . . . . . . . . . . . . . . . . . . 93 Faire face à l’inconnu : NULL . . . . . . . . . . . . . . . . . . . 96 3
Construire des bases de données Chapitre V 1
Étude de cas 2 : Phèdre
101
Vers, syntaxe, drame : vues en tension . . . . . . . . . . . . . 101
1.1 Répartition des fins de phrase par personnage et positions métriques . . . 202 2
Une base pour articuler les points de vue . . . . . . . . . . . 104
3
Les vers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.1 Conventions phonétiques du métromètre . . . . . . . . . . . . . . . . 204 4
Les positions métriques . . . . . . . . . . . . . . . . . . . . . . 107
5
Les « mots » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Chapitre VI 1
Retour aux bases. . .
113
Une ligne de table = une entité unique . . . . . . . . . . . . . 113
1.1 Une ligne de table = une conjonction d’assertions sur une même entité . . 215 1.2 Clés primaires, secondaires, étrangères . . . . . . . . . . . . . . . . 216 2
Une table = une relation . . . . . . . . . . . . . . . . . . . . . 116
3
Les facettes d’une entité . . . . . . . . . . . . . . . . . . . . . 117
3.1 Les types disponibles varient selon les SGBD . . . . . . . . . . . . . . 220 3.2 Cacher la réalisation vs. rester économe . . . . . . . . . . . . . . . . 220 Chapitre VII Mettre en relation les informations 1
119
Combiner : le produit relationnel . . . . . . . . . . . . . . . . 119
1.1 Préparer les tables à mettre en relation . . . . . . . . . . . . . . . . . 228 1.2 Obtenir le produit relationnel . . . . . . . . . . . . . . . . . . . . . 232 2
Combiner et restreindre : la jointure . . . . . . . . . . . . . . 120
2.1 Jointures à la demande (MySQL) vs. « stables » (Access) . . . . . . . . . 238 3
Combiner jointure et regroupement . . . . . . . . . . . . . . . 124
4
Types de jointures . . . . . . . . . . . . . . . . . . . . . . . . . 128
4.1 Auto-jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 4.2 Semi-jointure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 5
Repérer les décalages . . . . . . . . . . . . . . . . . . . . . . . 133
6
Au-delà du modèle relationnel . . . . . . . . . . . . . . . . . . 136
4
Table des matières Chapitre VIII Étude de cas 3 : le suffixe -esque
141
1
Induire la « grammaire » du suffixe -esque . . . . . . . . . . . 142
2
Formulaire initial . . . . . . . . . . . . . . . . . . . . . . . . . 144
3
Redondances et incohérences . . . . . . . . . . . . . . . . . . 147
Chapitre IX
Modélisation
153
1
Le modèle Entité/Association (E/A) . . . . . . . . . . . . . . . 153
2
Mots en -esque : Entités/Associations . . . . . . . . . . . . . 155
3
Relativité des modélisations E/A . . . . . . . . . . . . . . . . 161
4
D’un schéma E/A à une base de données . . . . . . . . . . . 162
5
Normalisations . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6 Modélisation et points de vue . . . . . . . . . . . . . . . . . . . . . . 295 6.1 Grain d’analyse des données textuelles : du « mot » à l’« énoncé » . . . . . 296 Chapitre X
Créer et peupler une base de données
169
1
Créer/modifier/supprimer une base . . . . . . . . . . . . . . 169
2
Créer/modifier/supprimer une table . . . . . . . . . . . . . . 170
2.1 Créer une table . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 2.2 Modifier une table . . . . . . . . . . . . . . . . . . . . . . . . . . 307 2.3 Supprimer une table . . . . . . . . . . . . . . . . . . . . . . . . . 311 3
Ajouter/modifier/supprimer des entités . . . . . . . . . . . . 172
3.1 Ajouter une entité
. . . . . . . . . . . . . . . . . . . . . . . . . . 312
3.2 Modifier une entité . . . . . . . . . . . . . . . . . . . . . . . . . . 314 3.3 Supprimer une entité . . . . . . . . . . . . . . . . . . . . . . . . . 318 4 Sauvegarder une base de données
. . . . . . . . . . . . . . . . . . . 321
4.1 Rester efficace : les index . . . . . . . . . . . . . . . . . . . . . . . 322 Chapitre XI
Bonnes pratiques
175
1
Prévenir les incohérences . . . . . . . . . . . . . . . . . . . . . 175
2
Vérifier la justesse des données . . . . . . . . . . . . . . . . . 176
3
Maintenir la cohérence . . . . . . . . . . . . . . . . . . . . . . 178
4
La base : un maillon dans une chaîne . . . . . . . . . . . . . 179 5
Construire des bases de données XII Réorganiser une base de données
359
1 Traquer et signaler les incohérences . . . . . . . . . . . . . . . . . . . 359 2 Préparer les corrections manuelles . . . . . . . . . . . . . . . . . . . . 402 3 Corrections manuelles . . . . . . . . . . . . . . . . . . . . . . . . . 412 4 Consolidation de la base de données
. . . . . . . . . . . . . . . . . . 434
5 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 XIII Importer, exporter, remodeler
437
1 Jeux de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 2 Importer des fichiers délimités . . . . . . . . . . . . . . . . . . . . . . 439 3 Échanger des informations structurées : XML . . . . . . . . . . . . . . . 445 4 Remodeler des informations peu structurées . . . . . . . . . . . . . . . 458 5 Remodeler des informations structurées . . . . . . . . . . . . . . . . . 467 XIV Installations et mises en route
377
1 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 2 EasyPHP sous Windows . . . . . . . . . . . . . . . . . . . . . . . . 492 3 Sous Linux
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
4 Bases de données-exemples . . . . . . . . . . . . . . . . . . . . . . 502 5 Access
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
6 Logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 7 Bases de données-exemples . . . . . . . . . . . . . . . . . . . . . . 506 XV MySQL, Access et SQL Server
507
1 Terminologies comparées . . . . . . . . . . . . . . . . . . . . . . . . 507 2 De la notation abstraite aux notations de SQL, MySQL, Access et SQL Server 507 3 Types d’attributs disponibles . . . . . . . . . . . . . . . . . . . . . . 511 6
Table des matières Conclusion
183
1 Angles morts conscients . . . . . . . . . . . . . . . . . . . . . . . . 514 2 Données pas données . . . . . . . . . . . . . . . . . . . . . . . . . 514 3 Bases de données et schémas classificatoires . . . . . . . . . . . . . . 515 4 Les bases de données : un instrument pour classer . . . . . . . . . . . . 516 5 Savoir ce qui peut se dire . . . . . . . . . . . . . . . . . . . . . . . . 516 Remerciements « complétés »
518
Bibliographie
185
Liens
520
Bibliographie complémentaire
521
Glossaire Glossaire : compléments
189 527
Index Index complémentaire
195 529
7
I NTRODUCTION
Mémoriser et croiser les informations Une base de données est un ensemble structuré et cohérent d’informations hétérogènes reliées entre elles. Ces informations ont pour objectif explicite de représenter les aspects fondamentaux d’un secteur du monde réel (ou domaine d’application). Les systèmes de gestion de bases de données (désormais SGBD) permettent aux utilisateurs de créer une base de données, c’est-à-dire de mettre au point une modélisation du domaine d’application visé, de lui ajouter des informations, de modifier celles qui sont présentes ou de les interroger, en faisant émerger par là même de nouvelles informations. Discrètement omni-présents, les SGBD organisent notre quotidien. Sans toujours le savoir, c’est à un SGBD que nous avons affaire pour réserver une place sur un avion ou dans un train, comme pour commander un livre sur la Toile. Un programme interroge une base de données pour savoir si est disponible la place souhaitée ou l’ouvrage visé. Il ajoute à la base de données nos coordonnées si elles n’y figurent pas déjà. Il met à jour la base pour diminuer le nombre de places ou d’ouvrages accessibles. Il en va de même pour tous les logiciels qui permettent de travailler de manière collaborative sur la 15
Construire des bases de données Toile : édition coopérative en ligne, blogs, forums, partage de photos ou de liens, etc. Chacun de ces logiciels utilise une base de données pour mémoriser les informations produites, leurs modifications, les rédacteurs et leurs droits d’accès, etc. Ainsi, lorsque nous interrogeons l’encyclopédie coopérative Wikipedia (http://www.wikipedia. fr), l’interface va chercher dans une base de données la page qui correspond à ce que nous cherchons. Si nous voulons contribuer à une page existante en la modifiant, le logiciel enregistre dans cette base la version de la page avant modification et remplace la page par sa version amendée.
Modéliser des données en sciences humaines Les applications industrielles des bases de données relèvent dans leur immense majorité de la gestion à grande échelle (personnel, scolarité, stocks, banques, etc.). Les présentations de ces outils se cantonnent généralement donc à ce secteur, si bien que les utilisations effectives pour des données en sciences humaines sont mal connues. Le métier d’historien avec un ordinateur de J.-L. Pinol et A. Zysberg (Nathan, 1995) montrait pourtant, voici plus de dix ans, l’apport des tableurs (ou feuilles de calcul – cf. chapitre II § 2 p. 42) et des SGBD pour mener enquêtes et recherches en histoire. C’est cette démarche que prolonge et élargit cet ouvrage. Mais il s’en tient aux bases de données et il met l’accent sur l’association de données textuelles (ou plus largement langagières) et de données factuelles. Il correspond à la nécessité d’outils pour pouvoir exploiter la profusion récente de données sous forme numérique (Habert, 2005). Ces données électroniques « à portée de la main » demandent en effet organisation et méthode pour les « faire parler » au mieux. Les SGBD représentent un bon outil pour ce faire. Leur utilisation ne suppose pas de connaissances informatiques préalables, même si la compréhension des concepts en jeu n’est ni immédiate ni toujours aisée. Le livre est destiné à toute personne ayant à analyser de manière ordonnée et systématique des données en partie ou en totalité textuelles, par exemple : 16
Introduction – sociolinguistes, sociologues, psychologues, ethnologues, historiens ou anthropologues annotant des entretiens ou des documents ; – enseignants du français langue maternelle ou langue seconde qui veulent classer des fautes d’apprenants pour pouvoir s’en servir d’exemples et de bases pour des exercices ; – syntacticiens notant les propriétés des exemples d’un phénomène ; – littéraires indiquant les figures de style ou les particularités rythmiques de poèmes ou de pièces en vers ; – lexicologues, terminologues, juristes associant à des entrées lexicales, monolingues ou bilingues, des définitions, des constructions, des exemples ; – ...
Les apports d’une base de données sont les suivants :
– du point de vue de la connaissance de la réalité visée, c’est : – identifier les entités à traiter (il peut s’agir de mots, de phrases, de paragraphes, de documents entiers, mais aussi d’individus réels, etc.) ; – choisir les traits, les propriétés à employer pour décrire ces entités ; – extraire les entités en fonction des valeurs de leurs propriétés ; – trier, croiser les critères sur les entités décrites : connaître les valeurs effectives d’une propriété ainsi que leur répartition, saisir les corrélations entre propriétés. – du point de vue méthodologique : – les résultats sont transmissibles (on peut fournir à quelqu’un d’autre sa base de données, expliquer les critères de constitution), la description est cumulable ; – le travail peut être exhaustif sur un axe donné (une propriété donnée) et vérifiable sur ce point ; – les résultats sont comparables (plusieurs personnes peuvent décrire les mêmes individus selon les mêmes propriétés : la stabilité des résultats peut ensuite être examinée). 17
Construire des bases de données
Un apprentissage in vivo Les guides de l’utilisateur pour tel ou tel logiciel abondent. Ils ne permettent souvent pas de comprendre la généralité des opérations en jeu ni de pouvoir transférer les apprentissages à un autre logiciel de gestion de bases de données. Les exemples fournis sont en général des exemples-jouets, sans motivation effective et sans rapport avec les intérêts des lecteurs. À l’inverse, d’autres ouvrages (Date, 2000)(Gardarin, 2005) sont centrés sur la présentation des principes des SGBD, en particulier du modèle relationnel, qui est dominant (les principes de ce modèle sont présentés aux chapitres VI et IX) : ils clarifient les notions, mais, restant dans l’abstrait, ne mettent pas pour autant le pied à l’étrier. Le présent ouvrage entend se tenir à mi-chemin entre ces deux perspectives. Il ne prétend pas se substituer à des guides de l’utilisateur. Ils foisonnent. Il ne vise pas non plus une présentation abstraite du modèle relationnel. Le choix est ici de partir d’études de cas réels, c’est-à-dire de plusieurs vraies bases de données, développées par des linguistes, des littéraires et des personnels médicaux pour répondre à des questions précises, sans intention pédagogique. Elles sont fournies avec le livre. C’est donc un apprentissage in vivo qui est recherché. L’objectif visé est l’utilisation des bases de données pour décrire des « réalités », prises à dessein dans des domaines différents. L’accent est mis moins sur l’utilisation de tel ou tel logiciel particulier (même si l’on utilise effectivement des gestionnaires de bases de données et si l’on fournit au deuxième tome les manipulations pratiques à effectuer) que sur la démarche de création et d’utilisation de bases de données pour des besoins effectifs. La démarche de description prend le pas sur l’aspect informatique. On essaie au maximum de partir du besoin de description et d’utilisation pour aboutir dans un second temps aux techniques et aux notions nécessaires.
Trois études de cas Trois études de cas, de complexité variable, servent de support concret aux explications et aux exercices. Un chapitre est consacrée à 18
Introduction chacune d’elles. Elles sont introduites ici sommairement, dans l’ordre où elles sont utilisées par l’ouvrage : Prématurés (cf. chapitre I p. 25) L’équipe médicale d’un service de réanimation néonatale a souhaité étudier la relation entre l’état physique, objectif de « très grands prématurés » et la perception qu’en ont les infirmières. Pendant un an et demi, les infirmières soignant une centaine de « grands prématurés » ont noté brièvement leurs impressions sur ces enfants au jour de la naissance et aux 3e , 7e et 15e jours. Elles fournissaient par ailleurs les renseignements signalétiques du moment de la rédaction (poids, taille, traitement, etc.). Phèdre (cf. chapitre V p. 101) Le théâtre classique en vers articule des normes de différents niveaux : celles qui régissent le niveau dramatique (découpage en actes, scènes, tirades), celles qui opèrent au niveau métrique (organisation en positions métriques, hémistiches, vers, paires de vers en relation de rime), celles enfin qui organisent la phrase. Pour saisir les interactions entre ces niveaux, Valérie Beaudouin (2002) a développé le métromètre. C’est un prototype d’analyseur métrique automatique qui a été mis au point sur les pièces en vers de Corneille et Racine 1 . Il utilise et adapte un phonétiseur et un étiqueteur morpho-syntaxique spécifiques 2 . Il fournit pour chaque vers plusieurs niveaux de représentation : transcription phonétique, syllabes métriques, marquage accentuel, etc. Les informations du métromètre sont ici fournies pour Phèdre de Racine, assorties d’autres données constituées plus récemment. Le suffixe -esque (cf. chapitre VIII p. 141) Marc Plénat (1997) souligne, à propos du suffixe -esque (abracadabrantesque, éléphantesque, dalaï-lamaesque) la difficulté, à partir des très petites listes étudiées dans la littérature du domaine (moins de 200 mots en -esque), à dégager ce que « fait » ce suffixe, sa « grammaire » au sens large, c’est-à-dire les contraintes multiples qui 1 2
V. Beaudouin & F. Yvon, 1996, « The Metrometer : a Tool for Analysing French Verse », Literary & Linguistic Computing, vol. 11, n˚1, p. 23–32. Un phonétiseur est un logiciel qui fournit pour un mot sa représentation phonétique, tandis qu’un étiqueteur morpho-syntaxique donne à une occurrence de mot la catégorie (nom, adjectif, etc.) qui est pertinente en contexte. Cf. (Habert, 2005, ch. I).
19
Construire des bases de données régissent sa combinaison avec un mot (nature phonologique, catégorie syntaxique de ce mot, etc.). À l’ERSS (CNRS & université de Toulouse-le-Mirail), aidé de Nicole Serna, il a donc constitué une base de données. La version utilisée dans ces pages rassemble 4 383 attestations pour 3 406 dérivés en -esque distincts. Elle permet de reprendre à nouveaux frais les analyses de ce suffixe. Ces trois bases construites pour des besoins spécifiques sont en même temps représentatives de cas de figures fréquents en analyse de données en sciences humaines : – recueil et annotation d’attestations, de contextes (énoncés partageant une certaine construction, un mot, une famille de mots, etc.) à l’instar de E SQUE ; – mise en relation de données textuelles et de données factuelles (analyses sociolinguistiques ou historiques, par exemple), comme dans P RÉMA ; – mise en rapport réglée de différents niveaux d’analyse, dans le même esprit que P HÈDRE.
Mode d’emploi Volets de l’ouvrage L’ouvrage comprend des compléments en ligne sur le site Internet des éditions Ophrys, à la page consacrée au livre. On trouve à cette adresse un deuxième tome au format PDF (lisible avec Acrobat Reader et imprimable), qui comprend des développements supplémentaires en trois volets. Il s’agit d’abord de la réalisation concrète, avec deux SGBD précis, des opérations présentées dans le premier tome. Ce sont ensuite des approfondissements et des exercices chapitre par chapitre. Ce sont enfin des compléments (échange de données avec d’autres logiciels, réorganisation d’une base de données, entrées supplémentaires du glossaire, bibliographie additionnelle, etc.) : ils permettent d’aborder d’autres apports des bases de données relationnelles. 20
Introduction On trouve à la même adresse différentes versions des bases de données fournis comme exemples en fonction des logiciels retenus ainsi que des indications sur leur utilisation pratique (installation des logiciels, création des bases de données).
Lecture L’ouvrage suppose une lecture cursive du premier tome, pour disposer d’une idée globale de « ce qui peut se faire et se dire », même si certains passages sont à reprendre dans un deuxième temps, d’approfondissement. La pratique concrète, avec un logiciel déterminé, sur les bases fournies, y compris en effectuant les exercices proposés, est nécessaire pour pouvoir « passer à l’acte » et utiliser un SGBD pour ses propres problèmes d’analyse et de recherche. C’est l’objet du second tome. Dans la table des matières, le signe devant un titre de chapitre, de section ou de sous-section signale un développement complémentaire propre au tome 2. Le numéro de la page dans ce tome est fourni alors en regard.
Un « multilinguisme logiciel » bien tempéré Pour ne pas lier le lecteur à un SGBD particulier, les manipulations de ces bases de données sont effectuées avec deux logiciels c – provient de la suite bureautique différents. Le premier – Access c , le second – MySQL c – est aula plus répandue, Microsoft Office tonome. Le premier logiciel existe uniquement pour Windows, tandis que le second est disponible sous Windows comme pour Linux. Le premier est payant, le second gratuit. MySQL est utilisé dans nombre d’applications « lourdes ». C’est lui par exemple qui donne accès aux pages de l’encyclopédie coopérative Wikipedia mentionnée supra. Le détail des manipulations qui peuvent différer selon les logiciels est fourni dans le deuxième tome (en ligne), même s’il ne s’agit pas de montrer tout ce qui est possible avec chaque environnement (ce qui est le but des guides de l’utilisateur). Le premier tome est réservé à la présentation et à l’exemplification des notions en jeu sur les bases de données fournies. 21
Construire des bases de données Nous nous limitons dans le même temps à une famille de SGBD, celles des SGBD relationnels, du nom du modèle théorique sousjacent. Les fondements en sont fournis au chapitre VI et détaillés au chapitre VII, où les limites sont également mises en évidence. Sauf mention contraire, dans les pages qui suivent, SGBD sera l’abréviation de SGBD relationnel. Le modèle relationnel, dont les premières réalisations datent de la fin des années soixante-dix, est aujourd’hui c, le modèle dominant et les SGBD « industriels » – comme Oracle c , Ingres c – le mettent en œuvre. DB2
Conventions Terminologie La mention d’une nouvelle notion est en gras. L’équivalent anglais est éventuellement fourni alors en italiques et entre parenthèses. La définition figure directement dans le texte. Elle est accessible via la page en gras italique à l’entrée correspondante de l’index. Typographie Le nom des bases de données-exemples est en majuscules accentuées. Les noms de tables, de colonnes, etc., sont . On distinguera ainsi le suffixe -esque, en et la base de données E SQUE, la base de données la table P HÈDRE et la pièce Phèdre. Les caractères et encadrent parfois un fragment de commande inséré dans un paragraphe, pour faciliter la distinction entre le commentaire et la commande. La notation abstraite des opérations est reprise dans l’index en majuscules et en POLICE NON PROPORTIONNELLE. Caractères « invisibles » Quand cela s’avère nécessaire, les caractères non visibles sont figurés. Les espaces significatives sont matérialisées par , les tabulations par →, le changement de ligne par ¶. Figures et tableaux L’ouvrage contient, en très grand nombre, figures, tables et tableaux illustratifs : les bases de données reposent sur la notion de table. . . La mise en page ne permet pas toujours de les placer immédiatement à proximité du développement correspondant. Par ailleurs, il est parfois nécessaire de se reporter à un tableau ou une figure d’un autre chapitre. C’est pourquoi les pages des figures et des tableaux sont indiquées 22
Introduction dans les renvois. Deux récapitulatifs sont fournis au début de chaque tome. Méta-langage Un mot entre chevrons – < et > – est un méta-nom. Il renvoie à une notion définie à proximité ou dont la définition est évidente. Des opérateurs post-posés indiquent le nombre d’occurrences d’un élément : ? pour 0 ou 1 fois ; * pour 0 ou n fois ; + pour 1 ou n fois. Par exemple un mot en -esque pourrait se définir comme <base>esque<suffixe adverbial> ?, c’est-à-dire un mot servant de base, base suivie de la chaîne esque, elle-même suivie optionnellement du suffixe adverbial ment. Cette représentation rend compte par exemple à la fois de bétonesque et de sévignesquement. Identification des opérations À gauche de chaque opération ou requête, un identifiant de la forme R1k permet d’y faire référence ailleurs dans le texte, mais également dans le deuxième tome du livre en ligne, pour faire le lien entre les requêtes « abstraites » du premier tome et leur réalisation sous MySQL ou sous Access. Le numéro en exposant (1 vs. 2) permet de distinguer les requêtes du tome 1 et celles du tome 2, qui reçoivent un identifiant du type R2k . Les requêtes sont numérotées de façon continue au sein de chaque tome, pour faciliter leur repérage. Il peut se faire qu’une partie d’une requête ne tienne pas sur la ligne : le signe ← indique un passage à la ligne purement « présentationnel » qui n’est pas nécessaire lors de la formulation de la requête avec un SGBD. Les autres passages à la ligne dans les requêtes visent à faciliter la lecture et la compréhension des opérations. Abréviations spécifiques o. occurrence(s) ou nombre de fois où un phénomène se produit ; c. ou car. caractère(s) ; col. colonne(s) ; f. fiche(s) ; l. ligne(s) ; v. vers. 23
Construire des bases de données
Plan Traiter des données, c’est en première analyse constituer des « fiches », que l’on peut regrouper en tableaux (ou tables) synoptiques. Le chapitre I détaille cette démarche pour Prématurés. Les traitements de texte, les feuilles de calculs ou tableurs, les bases de données aident à analyser de tels tableaux synoptiques. Le chapitre II examine sous cet angle les forces et les limites de chaque famille de logiciels. Il motive le choix des bases de données relationnelles comme cadre de travail pour le reste de l’ouvrage. En prenant pour exemple Prématurés, les chapitres III et IV sont consacrés d’une part à l’extraction et au tri des informations présentes dans la base de données correspondante, P RÉMA, et d’autre part aux calculs d’informations « secondaires » à partir de ce qui figure dans la base. La force des bases de données vient en particulier de leur capacité à combiner des informations présentes dans des tables complémentaires. Le chapitre V présente les tables conçues pour étudier Phèdre (métrique, vocabulaire, dramaturgie, etc.). Le chapitre VI fournit les principes fondateurs des bases de données relationnelles. Le chapitre VII montre les possibilités de combinaisons de tables offertes par les bases de données relationnelles ainsi que leurs limites. L’utilisation concrète des bases de données, sur deux exemples « réalistes », permet d’aborder alors le cheminement qui conduit de l’analyse d’un problème à sa représentation sous forme de base de données. L’exemple du suffixe -esque (chapitre VIII) sert à présenter la modélisation habituelle pour les bases de données relationnelles, dite modélisation Entité/Association (chapitre IX). En aval d’une telle modélisation, le chapitre X montre concrètement les principes de création et de modification d’une base. Le chapitre XI présente les « bonnes pratiques » à respecter pour bénéficier au mieux du recours au cadre de travail méthodologique que constituent les bases de données relationnelles.
24
C HAPITRE I
ÉTUDE DE CAS 1 : PRÉMATURÉS
Le traitement de données suppose de déterminer en amont les types de « réalités » prises en compte, qu’il s’agisse d’individus bien réels (un bébé), d’objets concrets (une fiche) ou encore d’abstractions (le sens à attribuer à un mot). Dans le contexte des bases de données, on parle pour ces trois cas de figure de types d’entités. Ce qu’on appelle le domaine d’application regroupe les types d’entités jugés pertinents et l’angle sous lequel ils sont envisagés. Les techniques d’analyse et de modélisation du domaine d’application sont détaillées au chapitre IX. La présentation des objectifs du projet Prématurés (§ 1), de son organisation (§ 2) et de ses points d’entrée (§ 3) conduit à celle des principaux types d’entités : les bébés (§ 4), les infirmières (§ 5) et les fiches (§ 6). Chaque type d’entité donne naissance à une table (à un tableau). Les différentes facettes de chaque entité qui sont jugées pertinentes constituent autant de colonnes. Chaque entité (un bébé, 25
Construire des bases de données une infirmière, une fiche) occupe une ligne d’une table. La volonté de manipuler finement les données textuelles conduit à normaliser et éclater le texte figurant dans les fiches (§ 7). Les types d’entités des bases de données, avec leurs attributs peuvent être, pour finir, utilement mis en parallèle avec les individus et caractères des études en sciences humaines (§ 8).
1. Bébés prématurissimes : réel vs. perçu Il y a quelques années, l’équipe médicale d’un service de réanimation néonatale a souhaité étudier la relation entre l’état physique, objectif de « très grands prématurés » (nés après 6 mois ou moins de grossesse) et la perception qu’en ont les infirmières. Les questions initiales étaient les suivantes : 1. Quels sont les facteurs qui influent sur la capacité des infirmières à attribuer des sentiments et une personnalité à ces très petits bébés ? 2. S’agit-il d’une pure interprétation de la part de l’infirmière, d’une simple projection de ses sentiments sur le bébé ? 3. Ou bien y a-t-il une perception commune chez les différentes infirmières, induite par le bébé même à ce stade très précoce ? À partir du constat que les soignantes interprètent le comportement des bébés, même les plus prématurés, et lui donnent un sens et que ce type de projection semble indispensable au bon travail de l’infirmière voire au bon développement de l’enfant, les objectifs ont été reformulés : – Qu’est-ce qui permet, et qu’est-ce qui empêche au contraire, les infirmières de laisser travailler leur imaginaire avec des bébés prématurissimes ? – Les infirmières inventent-elles totalement ou bien y a-t-il quelque chose qui est déjà induit par le bébé ? La volonté de relier perception et « faits » a conduit à rassembler simultanément des données textuelles (les impressions des infirmières) et des données factuelles (sexe, poids, etc. des bébés), encore appelées signalétique ou métadonnées. 26
Étude de cas 1 : Prématurés
2. Organisation de l’enquête et des données Pendant un an et demi, les infirmières du service de réanimation néonatale ont noté brièvement leurs impressions sur ces enfants au jour de la naissance et aux 3e , 7e et 15e jours. On parlera dans la suite de J1, J3, J7 et J15. Elles fournissaient par ailleurs les renseignements signalétiques du moment de la rédaction (poids, taille, traitement, etc.). La description libre du bébé et les renseignements signalétiques du moment constituent ce qu’on appellera dans la suite les fiches. Un certain nombre de renseignements signalétiques ont été par ailleurs collectés sur les infirmières et les bébés intervenant dans l’expérience. Les bébés concernés relèvent de la prématurité extrême. Ils sont nés après 30 semaines ou moins d’aménorrhée, c’est-à-dire d’arrêt des règles, ce qui correspond à 6 mois de gestation. L’expérience a duré 545 jours, de mars 1999 à septembre 2000. 121 bébés ont été ainsi observés par 42 infirmières. Au total 1 018 fiches ont été remplies. Le nombre important d’infirmières s’explique par le fait que les infirmières font les 3 fois 8 heures (2 services de jour et un service de nuit) ainsi que par les congés de maladie, de maternité et les remplacements. La figure 1 p. 29 montre les relations entre les différentes composantes de l’enquête : bébés, jours, fiches, infirmières. Elle représente un fragment de l’enquête, entre le 12 et le 28 septembre 1999. Cinq bébés sont entrés dans le service pendant cette période, par transfert le jour de la naissance (bébé 41) ou par naissance sur place (bébés 38, 39, 40 et 42), soit 3 garçons (bébés 38, 39 et 40) et 2 filles (bébés 41 et 42). Les caractéristiques de ces cinq bébés figurent dans le tableau 2 p. 32. Pour que la figure reste compréhensible, est représenté seulement ce qui concerne le bébé 38. Son identifiant dans un cercle figure en haut sous la date de son arrivée dans le service. Il s’agit d’un garçon. Certaines des métadonnées le concernant sont fournies : poids à la naissance, terme en semaines d’aménorrhée (abrégé en SA), situation à J1, J3, J7 et J15. En bas de la figure, dans des boîtes arrondies, se trouvent les identifiants des infirmières présentes dans le service de réanimation pendant la période et ayant rédigé des fiches sur le bébé 38. Le service qu’elles assurent (de jour ou de nuit) ainsi que le nombre d’années d’ancienneté non pas comme 27
Construire des bases de données infirmières mais spécifiquement en réanimation néonatale sont fournis. Des flèches pointillées indiquent les fiches qu’elles ont remplies. Les fiches sont représentées par des boîtes rectangulaires. L’infirmière 19, qui travaille de jour et qui a 5 ans d’ancienneté en réanimation néonatale, a ainsi rempli le 12 septembre la fiche 359 sur le bébé 38 (J1 pour ce bébé). En encadré, figure un exemple partiel de fiche, la fiche 361, remplie par l’infirmière 61 à J7 du bébé 38 : on voit l’association d’un texte, ici très court (bb calme) et de métadonnées contemporaines du remplissage de la fiche : poids du bébé – le bébé a, très normalement, perdu du poids par rapport à sa naissance mais il ne l’a pas encore rattrapé–, moral de l’infirmière, etc. Le nombre de fiches est en général de 3 par jour pour un bébé (cf. les 3 × 8), il peut être inférieur. C’est le cas pour le bébé 38 : 2 fiches seulement à J1, le 12 septembre, mais aussi 1 seule fiche à J3. Un faible nombre de fiches peut correspondre à une arrivée en cours de journée à J1, ou bien à une sortie ou à un décès en cours de journée. Le tableau 1 p. 30 fournit une vision globale au regard des jours choisis pour recueillir les fiches. À chaque étape, sont distingués filles et garçons. On constate ainsi qu’à J1, les 121 bébés se répartissent en 57 filles (47.1%) et 64 garçons (52.9%). Entre J1 et J3, 7 bébés sont morts (2 filles et 5 garçons), 9 sont sortis du service de réanimation (5 filles et 4 garçons), tandis que 105 restent en réanimation. La proportion de garçons est légèrement plus forte que celle de filles, elle est encore un peu importante à J7 et J15. Les filles par ailleurs meurent moins que les garçons (sur 12 décès, 7 garçons) et sortent davantage du service de réanimation qu’eux (20 filles sur 36 sorties). Les pourcentages ne sont pas fournis sur les décés et les sorties : les totaux sont trop faibles pour que les pourcentages soient vraiment significatifs.
3. Des points d’entrée multiples Les données textuelles de Prématurés constituent un corpus de très petite taille – environ 30 000 mots – par rapport aux corpus actuellement rassemblables (0.03% environ de la masse de textes que représente 5 ans du journal Le Monde ou encore le tiers d’un roman de taille moyenne). 28
C HAPITRE II
SUR QUOI TAB(U)LER ?
Les tableaux sont un premier moyen d’organiser l’information recueillie et de se préparer à l’étudier (chapitre I § 2). Trois types de logiciels bureautiques permettent de les créer et de les manipuler : les traitements de texte (§ 1), les tableurs ou feuilles de calcul (§ 2) et enfin les systèmes de gestion de bases de données (§ 3). Chaque famille de logiciels contraint les manipulations possibles de ces tableaux. Il faut donc choisir la famille de logiciels la plus adaptée aux traitements envisagés.
1. Les tableaux en traitement de texte La figure 2 page suivante donne un extrait du tableau de la signalétique des infirmières (on parle aussi de documentation ou de méc . Une case vide dans la colonne tadonnées), ici avec Microsoft Word service pour l’infirmière 41 indique qu’on ne sait pas si elle travaille 41
Construire des bases de données
F IGURE 2 – Prématurés : infirmières en traitement de texte
de jour ou de nuit. La saisie d’un tel tableau est aisée. Le traitement de texte mis à contribution permet des tris sur plusieurs colonnes. La figure 3 page ci-contre montre en (a) la sélection de la colonne sur laquelle on veut trier (anciennete), son type (données numériques), le choix du sens de tri (croissant), et le fait qu’on pourrait trier les exæquos sur les valeurs d’une deuxième voire d’une troisième colonne. La partie droite montre un extrait de la réorganisation résultante. En dehors de ces tris, le traitement de texte ne donne pas accès à des opérations souhaitables, comme décompter le nombre d’infirmières travaillant de jour, leur âge moyen, etc. C’est ce qu’offrent par contre les tableurs.
2. Les tableaux dans une feuille de calcul c Un tableur (Hainaut, 2002, p. 275–393) comme Microsoft Excel manipule de grandes feuilles de calcul constituées chacune de cellules assorties de coordonnées en hauteur (numéros pour les lignes) et en largeur (lettres pour les colonnes). On peut reporter sur de telles feuilles un ou plusieurs tableaux de données. La figure 4 page 45 res-
42
Sur quoi tab(u)ler ?
(a)
(b)
F IGURE 3 – Prématurés : tri de tableau sous traitement de texte
titue ainsi des extraits du tableau concernant les bébés (a) et de celui portant sur les fiches (b). Les discontinuités dans le tableau sur les bébés (a) indiquent que certaines lignes (7–67) et certaines colonnes (I–K) sont masquées. Il en va de même pour le tableau sur les fiches (b) : seules les 10 premières sont fournies, mais certaines facettes sont « cachées » (comme l’identifiant de la fiche – A – ou la sédation – G). Une feuille de calcul permet alors de manipuler des cellules ou des ensembles de cellules et d’opérer des « calculs » au sens large sur les cellules référencées. C’est ce que manifeste la figure 5 p. 46. En (a), la cellule G2 commence par le signe =. Elle va donc contenir le résultat du calcul formulé à la suite du signe =. Le calcul indique que la cellule doit contenir la différence entre la valeur de la cellule B3 et celle de la cellule E3. Cela revient en l’occurrence à calculer l’âge qu’avait l’infirmière 2 à son arrivée dans le service de néonatalité en enlevant l’ancienneté en néonatalité de son âge au moment de l’enquête. Le mode d’obtention de ce résultat est rappelé dans la zone au dessus des lettres identifiant les colonnes. Le résultat, après validation de la touche Entrée , dans la cellule G2 – fig. 5(b) p. 46 – est 26,5 (vingt-six ans et demi). La figure 6 p. 47 donne les moyennes de l’âge et l’ancienneté des infirmières travaillant de jour et de celles 43
Construire des bases de données travaillant de nuit. Des cellules servent à donner un titre aux calculs (B44, B46, E44, E46). À chaque fois, le calcul porte sur une plage de cellules, c’est-à-dire un ensemble de cellules. Une plage de cellules est identifiée par ses bornes, comme on le voit pour la moyenne de l’ancienneté pour les infirmières de nuit, qui est en cours de calcul et qui porte sur la plage E31:E42, matérialisée aussi par un cadre. Le calcul fait appel à une fonction pré-définie (MOYENNE) qui prend comme arguments les valeurs figurant dans la plage désignée. Pour regrouper les infirmières et faciliter la désignation des sousensembles par service, les lignes du tableau ont été triées. Les valeurs des colonnes d’un traitement de texte comme les cellules d’un tableur sont catégorisées ou typées : elles relèvent d’un ensemble déterminé de valeurs possibles, en général les nombres (avec éventuellement des sous-types possibles comme les nombres décimaux), les dates et les « textes » appelés aussi séquences ou chaînes de caractères. Le tri d’un ensemble de données varie selon le type dont elles relèvent. Dans la figure 7 p. 47 se trouve une autre version des données sur les infirmières, où le point, à l’anglaise, sert de séparateur décimal dans à la place de la virgule (convention de la typola colonne graphie française). En (a), la colonne qui sert de clé de tri, anciennete, est sélectionnée. C’est une suite de chaînes de caractères. En (b), dans le tableau trié, on constate que l’ordre obtenu n’est pas numérique : 11.00, 14.00, 17.00 et 19.00 s’interposent entre 1.00 et 2.00. La comparaison avec la figure 8 p. 48 est éclairante : l’ancienneté des infirmières est cette fois un nombre décimal (en typographie française) et le tri résultant en (b) manifeste la différence. Les figures 3 (a) p. 43 et 8(a) p. 48 montrent donc la place des types (numérique vs. textuel) dans la manipulation des colonnes des tableaux, avec un traitement de texte et avec un tableur respectivement. À la différence d’un traitement de texte toutefois, un tableur permet de sélectionner les lignes d’un tableau qui répondent à certains critères. La figure 9 p. 48 en (a) montre l’édiction de tels critères : sont recherchées les lignes concernant les infirmières ayant moins de 30 ans et travaillant de nuit. Les boutons Précédente et Suivante permettent de se déplacer dans l’affichage des lignes pertinentes, comme en témoignent (b) et (c). Il est également possible de créer des filtres qui restreignent les cellules d’un tableau à celles qui répondent à un certain nombre de contraintes. C’est le cas dans la figure 10 (a) p. 49 44
(b)
(a)
Sur quoi tab(u)ler ?
F IGURE 4 – Prématurés : données sur bébés et fiches sous tableur
45
Construire des bases de données
(a)
(b) F IGURE 5 – Prématurés : une formule dans une cellule
où n’apparaît que le sous-tableau des infirmières de nuit et ayant moins de 30 ans. Il est possible de combiner les contraintes, par le biais de menus déroulants (b). Dans la figure 7 page ci-contre, une boîte de dialogue demande s’il faut associer au tri les cellules contiguës, qui correspondent aux autres facettes des infirmières. Cela signifie qu’un tableur ne reconnaît pas vraiment des tableaux en tant que tels mais des blocs de cellules contiguës. Pour un tableur, en fait, l’unité de base est la cellule. Un (sous-)tableau est avant tout vu comme un ensemble de cellules. On peut parfois traiter cet ensemble comme un tout, par exemple lorsqu’en sélectionnant une plage de cellules (cf. supra), on souhaite que les cellules contiguës soient réordonnées en fonction du tri sur la plage-cible. Mais une feuille de calcul juxtapose autant de cellules et de tableaux isolés que souhaité, sans qu’il existe de liens a priori entre ces cellules et tableaux. C’est le cas des moyennes de 46
Sur quoi tab(u)ler ?
F IGURE 6 – Prématurés : calculs sur des plages de cellules
(a)
(b)
F IGURE 7 – Prématurés : tri des chaînes de la colonne
47
Construire des bases de données
(a)
(b)
F IGURE 8 – Prématurés : tri des nombres de la colonne
(a)
(b)
(c)
F IGURE 9 – Prématurés : sélection de lignes sur critères
la figure 6 p. 47. On peut placer plusieurs tableaux dans la même feuille, comme dans la figure 11(a) p. 50, ce n’est pas pour autant que l’on peut aisément mettre en relation les métadonnées sur les infirmières et les fiches que ces dernières ont rédigées. Mettre toutes les informations en un seul tableau, comme dans la figure 11(b) p. 50, ne donne pas une meilleure prise sur les interactions entre informations. Même avec des colonnes masquées pour « tenir dans la feuille », le tableau résultant, on le constate, est forcément redondant, puisqu’il accole les données sur les infirmières (A–F), celles sur les bébés (G–Y) et celles sur les fiches (AA–AP). Le sexe des bébés 2 et 3, leur poids à la naissance et les autres renseignements les concernant sont répétés autant de fois qu’il y a de fiches sur chacun d’eux. Il en va de même pour les métadonnées sur les infirmières : elles sont dupliquées à proportion des fiches que chacune d’elles a remplies. Un 48
Sur quoi tab(u)ler ?
(a)
(b) F IGURE 10 – Prématurés : filtres
tableur s’avère donc mal adapté à la mise en relation de tableaux qui apportent des informations complémentaires. C’est au contraire ce en quoi les bases de données excellent.
3. Les tables dans une base de données Pour un traitement de texte, un tableau est un objet textuel parmi d’autres. Il est susceptible de mise en forme (changement de police, utilisation de gras, d’italiques, etc.) et de réorganisation (tri des lignes en fonction d’une ou de plusieurs colonnes). Par contre, on ne peut pas opérer de calculs sur les contenus des cellules (moyenne, etc.). 49
(b)
(a)
Construire des bases de données
F IGURE 11 – Prématurés : tableur et combinaison de tableaux
50
Sur quoi tab(u)ler ? Chaque feuille de calcul d’un tableur regroupe effectivement un grand nombre de cellules référencées. Certaines de ces cellules constituent bien un tableau pour l’utilisateur. Mais elles ne possèdent pas de structure et d’organisation particulière pour le tableur. On peut associer à des cellules ou à des plages de cellules des formules qui portent sur les valeurs correspondantes. On ne peut pas manipuler des tableaux en tant que tels ou les relier aisément. Dans une base de données, les tables sont des objets « de première classe ». Chaque table, par le biais de ses colonnes, donne les facettes ou les attributs d’un type d’entité déterminé. La table représente un type d’entités, la ligne un élément de cet ensemble, c’est-àdire une instance de ce type d’entité distincte des autres instances du même type. Les tables d’une base sont en outre reliables entre elles pour permettre de combiner sans redondance des informations distinctes. C’est la structure des quatre tables de la première base de , , , données exemple, P RÉMA – – et leurs liens que représente la figure 12 page suivante. Enfin, dans une base de données, non seulement les tables sont les entrées des différentes opérations disponibles, mais c’est aussi sous forme de tables que sont fournis les résultats de ces opérations (chapitre III § 2). Le tableau 7 p. 53 montre la table résultant de l’application d’une série d’opérations à la table infirmieres. Ont été retenues les infirmières travaillant de jour ou de nuit (l’infirmière 41, dont on ne connaît pas le service, est donc écartée). Pour les deux regroupements obtenus, ont été demandés le service, le nombre d’infirmières concernées, l’âge minimum, maximum, l’âge moyen et la dispersion de la moyenne (écart-type), et ainsi de suite pour l’ancienneté. On pourrait obtenir le même résultat avec un tableur, mais de manière plus besogneuse et plus contournée : il faudrait trier les cellules de la plage correspondant au tableau, isoler des sous-plages correspondant aux groupes en question (âges des infirmières de jour, âges des infirmières de nuit, etc.) et associer des formules à chacune de ces plages. Au contraire de ce qui serait fait avec le tableur, lorsqu’on utilise une base de données, il n’est nécessaire ni de trier la table, ni de sélectionner des cellules ou des plages de cellules. Le tableau 8 p. 53 fournit pour chaque infirmière son service (table infirmiere), le nombre de fiches et de bébés concernés (table fiches_originelles) et le sexe de 51
Construire des bases de données fiches_originelles
bebes
occ_prema
id
id
numero_ordre
sexe
id_bebe
fiche
accouchement
jour
forme_depart
lieu_naissance
heure_saisie
forme_normalisee
poids_naissance
poids
lemme
date_naissance
position
categorie
terme
sedation
terme_normalise
ventilation
classe_terme
id_infirmiere
CRIB
frequence_occupation
id
SM1
moral_infirmiere
age
SM3
pronostic_infirmiere
etudes
SM7
relation_infirmiere_parents
diplome
SM15
relation_mere_bebe
anciennete
lieu_jour1
frequence_visite_parents
service
lieu_jour3
texte
infirmieres
lieu_jour7 lieu_jour15 Clé de lecture
gras
identifiant ou clé primaire
italiques
clé étrangère
lien entre 2 tables
F IGURE 12 – P RÉMA : structure et liens de la base de données initiale
ces bébés (table bebes). Il combine donc des informations provenant des trois tables et opère des calculs (décomptes) sur les combinaisons résultantes. Un tableur n’est pas le bon outil pour fournir de tels résultats.
52
Sur quoi tab(u)ler ?
TABLEAU 7 – P RÉMA : âge moyen des infirmières selon le service Service
nombre
âge min.
âge max.
âge moy.
Jour Nuit
29 12
21 23
44 40
29.00 33.08
écarttype âge 4.79 5.22
anc. min
anc. max.
anc. moy.
0.00 0.00
19.00 20.00
3.50 9.29
écarttype anc. 4.56 6.53
TABLEAU 8 – P RÉMA : les infirmières, les fiches et les bébés Infirmière 18 17 22 14 19 .. . 73 62 2 44 21
service Jour Jour Jour Nuit Jour .. . Jour Jour Jour Nuit Jour
fiches 62 52 46 44 42 .. . 10 9 7 3 2
bébés 45 40 37 30 31 .. . 8 8 6 3 2
garçons 22 24 21 16 19 .. . 4 1 3 2 1
filles 23 16 16 14 12 .. . 4 7 3 1 1
4. Bases de données : aperçu Les premiers contacts avec une base de données sont donc rassurants. Une base de données rassemble simplement un ensemble de tables et fournit un ensemble d’opérations spécifiques pour les manipuler et en particulier les combiner en fonction des liens établis entre elles (comme ceux de la figure 12 page ci-contre). Créer une base de données, c’est faire correspondre des tables aux différents types d’entités considérés comme importants pour la réalité à représenter et pouvoir relier ces tables. La figure 13 p. 55 montre le passage de l’analyse du domaine d’application (1) aux tables et à leurs liens (4), via le modèle Entité/Association (2). Cette démarche est détaillée au chapitre IX. Les liens entre tables (5e) sont abordés au chapitre VII. Dans chaque table, une ligne décrit une entité particulière de la réalité représentée, et les colonnes fournissent les propriétés ou attri53
Construire des bases de données buts de cette entité :
entité1 – e1 ... entitén – en
attribut1 – a1 valeure1 a1 ... valeuren a1
... ... ... ...
attributn – an valeure1 an ... valeuren an
Les opérations sur une base de données (5) prennent en entrée les tables de la base (4). Souvent combinables les unes avec les autres, ces opérations produisent une table-résultat (6). La présentation des SGBD et de leur utilisation se fait habituellement dans l’ordre « logique », allant de l’analyse du domaine traité aux sorties, en suivant les étapes 1 à 6 de la figure 13 page suivante. Nous avons inversé la démarche. Nous introduisons d’abord sur un premier cas concret, Prématurés (chapitre I), les opérations les plus simples (chapitre III et IV). La seconde étude de cas, Phèdre (chapitre V), conduit aux fondements de l’approche relationnelle (chapitre VI) et à la combinaison de tables (chapitre VII). La troisième étude de cas, le suffixe -esque (chapitre VIII) montre les enjeux du modèle Entité/Association et de sa mise en œuvre (chapitre IX). Cet ordre rend davantage manifeste l’intérêt des opérations permises par les SGBD et plus tangibles les enjeux de la modélisation sous-jacente. La figure 13 page ci-contre fournit par ailleurs une « carte » d’utilisation de l’ouvrage, en indiquant les chapitres et les sections correspondant aux différents moments du travail avec un SGBD.
54
G LOSSAIRE
Les définitions sont accessibles via le numéro de page en gras italique à l’entrée correspondante de l’index.
Agrégat Voir Regroupement. Alias de colonne Nom remplaçant le nom d’un attribut ou celui du calcul d’un attribut dans une table résultat. Alias de table Nom remplaçant le nom d’une table dans une requête pour faciliter l’utilisation de noms d’attributs qualifiés. Attribut Propriété caractéristique d’une entité. Autojointure Jointure d’une table avec elle-même. Base de données Une base de données est un ensemble structuré et cohérent d’informations hétérogènes reliées entre elles. Ces informations ont pour objectif explicite de représenter les aspects fondamentaux d’un secteur du monde réel (ou domaine d’application). Une base de données rassemble des tables qui représentent chacune un type d’entité du domaine d’application. Ces tables peuvent être combinées entre elles via le partage de valeurs d’attributs. 189