tableur_bdd.tex 20 KB

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