03-tableur_bdd.tex 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. \input{../_preamble-ed.tex}
  2. \usepackage{comment}
  3. \usepackage[toc]{multitoc}
  4. \usepackage{graphicx}
  5. \graphicspath{{images/}}
  6. \title{Tableur et base de données}
  7. \usepackage{hyperref}
  8. \begin{document}
  9. \maketitle
  10. \renewcommand{\contentsname}{Sommaire}
  11. \tableofcontents
  12. \chapter{Qu'est-ce qu'une donnée?}
  13. \section{Définitions}
  14. Une donnée est un élément brut, qui n'a pas encore été interprété, mis
  15. en contexte. La mise en contexte crée de la valeur ajoutée pour
  16. constituer une information (on peut définir l'information comme
  17. l'interprétation d'une source de données). Les données brutes peuvent
  18. être entrées dans un programme informatique ou utilisées dans des
  19. procédures manuelles comme l'analyse statistique d'une enquête par
  20. exemple.
  21. Qu'entend-on maintenant par \enquote{données publiques}? Ce sont les
  22. données qui figurent dans les documents communiqués ou publiés par les
  23. administrations. À partir de là, quand on parle d'\emph{open data}, il
  24. s'agit de la mise à disposition de tous les citoyens sur internet des
  25. données publiques ayant vocation à être librement accessibles et
  26. gratuitement réutilisables. Ces données sont diffusées de manière
  27. structurée selon une licence ouverte garantissant leur libre accès et
  28. leur réutilisation par tous, sans restriction technique, juridique ou
  29. financière. Cela signifie que n'importe quel utilisateur peut utiliser
  30. ces données, les modifier ou les partager (même à des fins
  31. commerciales).
  32. Il y a enfin une autre expression que vous avez certainement
  33. entendues: celle de \emph{big data} qui désigne littéralement les
  34. \enquote{grosses données}. Qu'entend-on par là? Les vibrations de tel
  35. tablier de pont, les sentiments exprimés sur tel réseau social, les
  36. achats ou recherches sur tel site… Toutes ces données, utiles pour la
  37. maîtrise de machines ou notre vie sociale, économique, voire
  38. sentimentale, laissent des traces, des scories, qui sont de plus en
  39. plus souvent conservées. C’est de cette profusion de données sur de
  40. nombreux domaines que résultent les Big Data ou mégadonnées. On le
  41. voit, ces Big Data désignent des ensembles de données tellement
  42. volumineux qu'il devient difficile, voire impossible, de les manipuler
  43. avec des outils classiques de gestion de base de données ou de gestion
  44. de l'information.
  45. \section{Formats} En fonction de ce que l'on veut faire, les
  46. données informatiques sont rangées dans des fichiers. Le choix de la
  47. méthode de rangement, c'est ce qu'on appelle le format. Pour
  48. l'utilisateur, le format est représenté par une extension. Le format
  49. est déterminé par le logiciel au moment de l'enregistrement d'un
  50. document. Comme vous l'avez certainement constaté, le système associe
  51. par défaut un logiciel à un format, raison pour laquelle, quand vous
  52. double-cliquez sur un document, il s'ouvre automatiquement sans que
  53. vous ayez à préciser quel logiciel doit l'ouvrir. Avant de vous
  54. présenter les différents formats que vous devez connaître, sachez que
  55. chaque format relève d'une logique, d'une structure. On en distingue
  56. trois.
  57. \paragraph{les principales structures utilisées}: voici les trois
  58. principales structures utilisées pour présenter les données:
  59. \begin{enumerate}
  60. \item la structure tabulaire: c'est la plus répandue. On organise les
  61. données dans des colonnes et des lignes. Voir par exemple les données
  62. concernant la fréquentation des musées italiens:
  63. \url{http://www.datiopen.it/opendata/Visitatori_musei_pubblici_e_similari_titolo_d_accesso#ui-tabs-3}. Un
  64. des formats qui relève de cette structure est le format csv
  65. (Comma-separated values); il permet d'organiser des données en
  66. cellules afin qu'elles soient traitées par un tableur ou insérées dans
  67. une base de données. Les données dans un document csv sont le plus
  68. souvent encadrées par des guillemets et séparées par des points
  69. virgule.
  70. \begin{figure}[h] \centering \includegraphics[scale=0.6]{03-donnees2.png}
  71. \end{figure}
  72. \item la structure hiérarchique: les données présentées ainsi montrent
  73. les rapports entre les points de données comme pour un arbre
  74. généalogique.
  75. \item la structure en réseau: les données structurées ainsi permettent
  76. des rapports entre n'importe quelle combinaison d'éléments dans
  77. n'importe quelle direction. Le web en est un bon exemple puisque les
  78. pages web comportent des liens vers un nombre incalculable d'autres
  79. pages. Cf. le format xml (Extensible Markup Language) qui a pour
  80. objectif de faciliter l'échange automatisé de contenus complexes. Un
  81. document xml est constitué d'un prologue qui indique les informations
  82. de traitement (comme le jeu de caractères utilisé), et du corps du
  83. document, constitué d'un ensemble de balises qui décrivent les données
  84. (se présentant sous la forme d'une arborescence). Où trouve-t-on du
  85. xml? Dans les pages web, les documents OpenOffice sont également des
  86. fichiers xml, les logiciels de dessin comme InkScape utilisent aussi
  87. ce format, etc.
  88. \begin{figure}[h] \centering \includegraphics[scale=0.6]{03-donnees1.png}
  89. \end{figure}
  90. NB: vous remarquerez que les mêmes données peuvent être présentées
  91. sous des formats différents.
  92. \end{enumerate}
  93. \paragraph{les formats que vous devez savoir utiliser}: on distingue
  94. les formats ouverts dont les spécifications sont publiquement
  95. accessibles des formats fermés qui sont souvent propriétaires (même
  96. quand un format propriétaire est ouvert, les entreprises qui le
  97. commercialisent tentent d'en conserver le contrôle en proposant de
  98. nouvelles versions plus élaborées ou en ayant recours aux
  99. brevets). Voici la liste des principaux formats que vous
  100. rencontrerez. Vous penserez à préciser quels sont ceux qui sont
  101. ouverts.
  102. \begin{figure}[h] \centering
  103. \includegraphics[scale=0.6]{03-exercice_formats.png}
  104. \end{figure}
  105. Sur le format txt: éditeur de textes et traitement de
  106. textes. Qu’est-ce qu’un éditeur de textes ? À quoi cela sert-il ?
  107. Est-ce la même chose qu’un traitement de texte ? Un éditeur de texte
  108. est un programme qui permet de modifier des fichiers de texte brut,
  109. sans mise en forme (gras, italique, souligné…). Sous Windows, on
  110. dispose d’un éditeur de texte très basique, le Bloc-Notes, mais il
  111. existe aussi NotePad++ (plus évolué). Sous Linux, on a le choix entre
  112. Nano, Vim, Emacs, et bien d’autres. Un traitement de texte, en
  113. revanche, est fait pour rédiger des documents mis en forme. Word et
  114. LibreOffice Writer sont certainement les plus célèbres.
  115. \paragraph{Exercice 1}
  116. Quand a-t-on besoin d’un éditeur de texte ? Chaque fois qu’on veut
  117. éditer un fichier de texte brut (au format .txt). Si les éditeurs de
  118. texte sont parfaits pour les programmeurs, ils sont aussi utiles pour
  119. retravailler du texte à l’aide de commandes puissantes, avant de le
  120. structurer dans un traitement de textes. Exemple : quand on récupère
  121. une œuvre ou un extrait d’œuvre depuis une bibliothèque numérique, il
  122. faut très souvent supprimer les retours à la ligne intempestifs qu’on
  123. appelle hard wrap. Il est très facile de le faire grâce à un éditeur
  124. comme Notepad++ : allez dans le menu TextFX, commande TextFXEdit,
  125. sous-commande Unwrap Text. Les retours à la ligne simples sont
  126. convertis en fin de ligne (mode soft wrap) tandis que les doubles
  127. retours subsistent. À ce problème, s’ajoute parfois aussi celui de
  128. caractères cabalistiques qui apparaissent à la place des caractères
  129. accentués.
  130. \paragraph{Exercice 2}
  131. \begin{enumerate}
  132. \item Récupérez au format txt sur Gutenberg \emph{Le corbeau} de Poe
  133. et ouvrez-le dans LibreOffice ;
  134. \item Faites apparaître au début du document le titre de l’œuvre en
  135. italique (comme il se doit), puis enregistrez ce fichier au format
  136. natif d’OO (.odt). Enregistrez maintenant ce fichier au format txt et
  137. ouvrez-le avec un éditeur de textes par exemple : commentez la
  138. différence ;
  139. \item Exportez-le enfin au format pdf et veillez à ce que l’ouverture
  140. de ce fichier soit protégé par un mot de passe que vous définirez.
  141. \end{enumerate}
  142. \section{Le problème des données textuelles: coder du texte}
  143. \paragraph{Encodage binaire}
  144. C'est dans les années 60 qu'apparaît la
  145. nécessité de représenter chaque caractère en code traitable par
  146. l'ordinateur. Or la mémoire d'un ordinateur n'est capable
  147. d'enregistrer qu'une suite de 0 et 1 (encodage binaire): à l'origine,
  148. les lettres de l'alphabet ont donc été encodées sous la forme d'une
  149. suite de 0 et de 1.
  150. \paragraph{La table ASCII} Mais de quel alphabet parle-t-on? Tout
  151. commence par une constatation très simple : les premiers
  152. informaticiens parlaient anglais. Et l’anglais s’écrit avec peu de
  153. choses : deux fois 26 lettres, 10 chiffres, une trentaine de signes de
  154. ponctuation, de signes mathématiques, sans oublier le symbole
  155. dollar. : avec 95 caractères au total on peut se débrouiller. À
  156. l’époque dont je parle, on ne pouvait utiliser que la moitié des
  157. octets, soit 128 valeurs. On en a pris 33 comme caractères de «
  158. contrôle » (comme le retour à la ligne par exemple), plus les 95 dont
  159. on avait besoin pour écrire l’anglais. On a donc attribué des numéros
  160. à toutes ces valeurs : le code ASCII (American Standard Code for
  161. Information Interchange) était né. Voir la figure \ref{ascii}.
  162. \begin{figure}[h] \centering \includegraphics[scale=0.5]{03-ascii.png}
  163. \caption{La table ASCII}
  164. \label{ascii}
  165. \end{figure}
  166. \paragraph{L'unicode} Mais au bout d’un certain temps est apparue la
  167. nécessité de taper du français ou de l’allemand: on a donc utilisé les
  168. valeurs laissées de côté par l’ASCII et il a été possible de caser les
  169. caractères accentués et divers autres symboles utilisés par les
  170. langues d’Europe de l’ouest. Dans ces 128 valeurs, il n’y a hélas pas
  171. eu de place pour les caractères des langues occidentales et l’alphabet
  172. cyrillique et l’alphabet grec et l’alphabet hébreu. Pour pouvoir
  173. taper plusieurs langues sur un même ordinateur et pour que les
  174. ordinateurs puissent communiquer entre eux, des organismes de
  175. standardisation ont créé des tables de correspondance, comme
  176. l’ISO-8859-1, qui propose un jeu de caractères pour les langues
  177. occidentales, l’ISO-8859-5 qui offre du cyrillique, l’ISO-8859-7, qui
  178. propose du grec, etc. Mais, malgré tout, il n’a pas été possible de
  179. faire rentrer les 1945 idéogrammes du japonais officiel dans un octet,
  180. ni les 11 172 syllabes coréennes, ni les dizaines de milliers
  181. d’idéogrammes chinois qu’on arrive à recenser... Pour résoudre
  182. durablement tous ces problèmes de langues, au début des années 2000,
  183. s’est formé un consortium regroupant des grands noms de l’informatique
  184. et de la linguistique : le consortium Unicode. Sa tâche : recenser et
  185. numéroter tous les caractères existant dans toutes les langues du
  186. monde. Est donc né un jeu universel de caractères, acceptant plusieurs
  187. encodages, l’unicode. En 2007, le standard publié comportait environ
  188. 60 000 caractères. Prenons, par exemple, le sigma majuscule: il a été
  189. encodé avec le point de code \texttt{U+03A3} (voir la figure
  190. \ref{unicode}).
  191. Mais l'unicode prend beaucoup plus de place que l'ASCII. Or, pour
  192. prendre l'exemple du français, la grand majorité des caractères
  193. utilisent seulement le code ASCII. On a donc imaginé l'UTF-8 (Unicode
  194. Transformation Format): un texte en UTF-8 est partout en ASCII et dès
  195. qu'on a besoin d'un caractère appartenant à l'unicode on utilise un
  196. caractère spécial pour l'indiquer.
  197. \begin{figure}[h] \centering \includegraphics[scale=0.7]{03-unicode.png}
  198. \caption{Aperçu de la table de codage unicode pour l'alphabet grec}
  199. \label{unicode}
  200. \end{figure}
  201. Cela dit, comment faire pour saisir une citation en espagnol, chinois,
  202. arabe ou grec ancien au milieu d’un texte en français ? Il faut non
  203. seulement disposer d’une police unicode (comme Gentium), mais encore
  204. d’un clavier virtuel qui vous permet de savoir où se trouvent les
  205. caractères. Ainsi, pour être en mesure de saisir du texte dans une
  206. langue autre que le français, vous devez attribuer à votre clavier la
  207. langue de saisie souhaitée. Par exemple, pour taper οὐκ ἔλαβον πόλιν,
  208. vous devez configurer votre clavier de façon à saisir π quand vous
  209. tapez sur la touche P. Pour ce faire, il suffit de cliquer du droit
  210. sur l’icône FR, puis de choisir «~Paramètres~» et «~Ajouter~». Il
  211. vous est aussi possible d’utiliser des claviers virtuels en ligne,
  212. comme celui disponible à l’adresse suivante :
  213. http://www.lexilogos.com/clavier/multilingue.htm
  214. \section{Coder des images} Une image se décompose en points appelés
  215. pixels (premier critère de qualité d'une image). À chaque pixel est
  216. associée une couleur décomposée en trois composantes, rouge, vert et
  217. bleu, chacune étant notée par un nombre entre 0 et 255. Exemple: le
  218. code pour le bleu ciel est (119, 181, 254), chaque nombre représentant
  219. le dosage nécessaire de chacune des couleurs primaires pour obtenir la
  220. couleur désirée. C'est ce qu'on appelle le code RVB (Red Green
  221. Blue). Notez que le poids d'une image correspond à 3*nombre de pixels.
  222. \chapter{Le tableur: fonctionnalités simples}
  223. Un classeur permet de stocker des données numériques en vue de calculs
  224. ou d'affichages graphiques (par opposition à l'affichage texte qu'on
  225. vient de voir avec le format csv). Chaque classeur peut contenir de
  226. nombreuses feuilles qu'on sélectionne avec des onglets. Chaque feuille
  227. de calcul permet de saisir, contrôler, répertorier et analyser des
  228. données (textuelles, numériques, fonctionnelles, etc.). Elle contient
  229. des cellules éventuellement regroupées en plages.
  230. \section{Mise en forme} Chaque cellule peut être mise en forme avec
  231. une palette complète d'outils. Il est possible de reproduire la mise
  232. en forme à une autre cellule ou plage (voir le pinceau brosse).
  233. Dans un tableur, on peut insérer des graphiques dont on règle les
  234. dimensions, les axes, les légendes et titres. En fonction du type de
  235. données, on pourra privilégier le graphique en histogramme, en lignes
  236. et courbes (pour représenter des tendances ou une évolution dans le
  237. temps de valeurs numériques), à nuage, en secteurs (ou camemberts).
  238. \section{Fonctions de calcul} Voir la moyenne.
  239. \section{Tri, filtre et conversion de données}
  240. \paragraph{Tri} Il est possible de trier des données en fonction de
  241. textes (tri croissant ou décroissant), de nombres, de dates. Plusieurs
  242. critères peuvent être définis (ex.: classement d'une classe par ordre
  243. alphabétique des noms puis des notes obtenues). Pensez à cliquer sur
  244. l'onglet Options pour déterminer les options de tri: vous pourrez
  245. ainsi indiquer que la plage contient des étiquettes de colonne afin
  246. d'éviter que les en-têtes de colonne soient triés avec les autres
  247. données.
  248. \paragraph{Filtre} Le filtre automatique (Données>AutoFiltre) permet
  249. de faciliter la recherche d'informations au sein d'une plage de
  250. données. L'utilisateur peut ainsi choisir des informations qu'il
  251. souhaite afficher ou masquer.
  252. \paragraph{Conversion} Une fonction permet de diviser une colonne de
  253. données texte en plusieurs colonnes (Données>Texte en colonnes). Ex.:
  254. à partir d'un nom complet, vous voulez une colonne nom et une colonne
  255. prénom.
  256. \section{Importation d'une source de données}
  257. On peut vouloir importer une source de données dans un tableur, par
  258. exemple une liste au format texte (qu'on peut visualiser dans un
  259. traitement de textes en affichant les caractères non imprimables):
  260. chaque caractère tabulation délimite le champ d'une cellule et chaque
  261. pied de mouche indique qu'il faut passer à la ligne. Commençons par
  262. ouvrir cette source de données (Fichier>Ouvrir): il faut alors
  263. indiquer que le séparateur est la tabulation.
  264. \chapter{Le tableur comme base de données} Un document Calc peut
  265. constituer une base de données simplifiée. Dans une base de données,
  266. un enregistrement est un groupe d'éléments de données liés entre eux
  267. et traités comme une seule unité d'information. Chaque élément dans
  268. l'enregistrement est appelé un champ. Une table est un ensemble
  269. d'enregistrements. Chaque enregistrement, à l'intérieur d'une table, a
  270. la même structure. Une table peut être vue comme une série de lignes
  271. et de colonnes. On le voit, une feuille d'un document Calc a une
  272. structure similaire à une table de base de données.
  273. Nous allons définir une plage de base de données de façon à trier,
  274. grouper, rechercher et effectuer des calculs avec la plage comme si
  275. c'était une base de données (Données>Définir la plage).
  276. \section{Utiliser des critères de recherche pour trouver des
  277. données}
  278. \paragraph{Exemple n°1} Comment compter toutes les cellules d'une
  279. plage de données dont le contenu correspond à des critères de
  280. recherche que nous aurons définis. Hypothèse de travail: nous
  281. recherchons le nombre d'étudiants de la base dont la moyenne est égale
  282. ou supérieure à 10 OU dont l'âge est inférieur ou égal à 17. Voici ce
  283. qu'on doit saisir dans la cellule H5:
  284. \begin{verbatim} =BDNB(A9:G51;0;A1:G3)
  285. \end{verbatim}
  286. \paragraph{Commentaire} Le nom de la fonction est suivi d'une
  287. parenthèse dans laquelle figurent:
  288. \begin{itemize}
  289. \item la plage de cellules contenant les données: A9:G51
  290. \item le champ de la base (colonne) utilisé pour les critères de
  291. recherche: 0
  292. \item la plage de cellules contenant les critères de recherche: A1:G3
  293. \end{itemize}
  294. \paragraph{Exemple n°2} Comment déterminer le contenu de la cellule
  295. d'une plage de données correspondant aux critères de
  296. recherche. Hypothèse de travail: nous recherchons le nom de l'étudiant
  297. qui a obtenu 5/20 au devoir n°1:
  298. \begin{verbatim} =BDLIRE(A9:G51;"PRÉNOM";A1:C2)
  299. \end{verbatim}
  300. \section{Utiliser des formules pour trouver des données} Ne prenons
  301. qu'un exemple: la fonction RECHERCHEV (pour recherche verticale): il
  302. s'agit de récupérer des données issues d'une feuille différente de la
  303. feuille de travail grâce à une "clé" commune aux deux feuilles.
  304. \begin{enumerate}
  305. \item dans la feuille n°1, j'ai les noms de tous mes étudiants et leur
  306. n° d'étudiant;
  307. \item dans la feuille n°2, j'ai les noms d'un seul groupe d'étudiants
  308. et leur note.
  309. \end{enumerate} --> Comment faire pour récupérer dans ma deuxième
  310. feuille les n° d'étudiant du seul groupe concerné?
  311. \begin{verbatim} =RECHERCHEV(A2;$Feuille1.$A$1:$B$120;2;0)
  312. \end{verbatim}
  313. \paragraph{Commentaire} Notez que le premier argument est la valeur
  314. cherchée dans la feuille 1: il s'agit, dans notre exemple, de chercher
  315. l'étudiant Charles-Daniel (cellule A2).
  316. Le deuxième argument identifie les cellules où effectuer la recherche.
  317. Le troisième argument identifie la colonne à renvoyer: dans notre
  318. exemple, celle des n° d'étudiants est la deuxième colonne de notre
  319. feuille 1.
  320. Le dernier argument est facultatif. La valeur par défaut est 1 ou
  321. VRAI, ce qui indique que la première colonne est triée dans l'ordre
  322. croissant. Une valeur de 0 ou FAUX indique que les données ne sont pas
  323. triées.
  324. Une fois que la recherche a abouti pour le premier étudiant, il faut
  325. étendre la recherche à toutes les données de notre feuille 2: pour
  326. cela, il suffit de faire un copier/coller en ayant pris la précaution
  327. de protéger la formule en encadrant les numéros des colonnes du
  328. chiffre \$.
  329. \section{Utiliser des formules pour traiter des
  330. données textuelles}
  331. Plusieurs fonctions permettent de travailler sur du texte. En voici
  332. quelques exemples:
  333. \begin{itemize}
  334. \item Mettre en majuscule la première lettre de chaque mot:
  335. =NOMPROPRE(A1)
  336. \item Supprimer les espaces en trop dans le texte de la cellule A1:
  337. =SUPPRESPACE(A1)
  338. \item Extraire le premier mot d'un texte saisi dans la cellule A1:
  339. =GAUCHE(A1;CHERCHE(" ";A1;1)-1)
  340. \end{itemize}
  341. \end{document}