![]() |
![]() |
Leçon 10 |
![]() |
Tailles, compactage, anciennes versions
|
Dans cette leçon, nous allons préparer le terrain pour la leçon suivante, qui parlera de pièces jointes (voraces en taille). Nous allons étudier les unités de grandeur informatiques, et nous allons voir comment réduire et optimiser la place de la base de données. Nous verrons comment l'envoyer par E-Mail, même à quelqu'un qui possède une ancienne version d'Access. Et pour ceux que ça intéresse, nous détaillerons les anciens formats de base de données Access. |
Sommaire
|
Avant de commencer, je vais vous ennuyer un petit peu avec un poil de théorie
voici un bref résumé des tailles en informatique : une lettre, ou un chiffre (un caractère) vaut 1 Octet (1o - o pour octet). Quand on a mille octets, on dit qu'on à un KiloOctet (1 Ko). Quand on a Mille Ko, on a un Méga Octet (On dit aussi Un Méga, ou un Mo). Donc Un MégaOctet, c'est un million d'octets. Et quand on a mille MégaOctets, on à un GigaOctet (Un Giga, ou Un Go). C'est donc Un milliard d'octets (Et quand on a Mille Gigas, on a un Téra, mais bon, là, c'est gros !).
En bref :
Une clé USB, c'est environ 8, 16 ou 32 Go (32 milliards d'octets). Une petite vidéo pèse environ 2000Ko (2 millions d'octets, ou 2 mégas). Du coup, faites le calcul ! Combien de vidéos de cette taille pourriez-vous mettre sur une clé usb de 32 Go ? ... A peu près seize mille ! Oui, parce que 2 millions fois 16 mille = 32 milliards
Si vous avez un disque dur de 2 Téras, vous pourriez y stocker l'équivalent de 62 clés USB de 32 Go ! Oui oui : cinq cent mille vidéos de 2 Mégas , vous ne rêvez pas ! Bon maintenant, un film d'une heure et demi en bonne qualité, ça va chercher dans les 1 à 2 gigas...
Ca, c'est pour vous dire que les capacités de stockage actuelles sont énormes, et grossissent d'année en année ! Pour l'anecdote, dans les années 1990, on utilisait des disquettes en plastique, qu'on appelait des "Trois pouces et demi", dont la contenance était d'environ 1Mo !
Par contre, en ce qui concerne la transmission de données, c'est une autre histoire ! Stocker un film d'un giga sur son disque dur, OK, mais le télécharger depuis internet, il va falloir compter avec la vitesse de transmission ! Par exemple, vous avez une connection, disons, à 20 Mo (sous-entendu 20Mo par seconde). Donc, si vous téléchargez un fichier de 20 Mo, il devrait être chez vous en une seconde, c'est bien juste ?
Eh bien essayez ! Allez télécharger un tel gros fichier ! Vous mettrez bien plus de temps qu'une seconde, moi je vous le dis ! Si vous mettez, par exemple, 30 secondes pour télécharger un fichier de 20 Mo, en fait, votre vitesse de connexion est de .. Mmmmm... Laissez moi calculer... 20 divisé par 30 ... 0.6 Mo par seconde. Eh oui !
Donc, tant que vous travaillez en local, sur votre PC perso, vous n'avez quasiment aucune contraintes de tailles, mais dès que vous transitez par internet (par exemple, par e-mail, vous ne pouvez généralement jamais dépasser la taille de 5 ou 10 Mo par message), ou que vous travaillez sur le réseau de votre entreprise, alors, il devient nécessaire de s'intéresser de près aux tailles des fichiers ! Et je vous dis ça parce que dans cette leçon, nous allons beaucoup parler de fichiers attachés, et on aura vite fait d'avoir une base de données monstrueusement grosse si on ne reste pas attentif !
Prenez connaissance de la taille de votre base de données : Allez simplement voir dans l'explorateur (je suppose que vous savez faire) :
Dans mon cas, elle fait 504 Ko - Un demi Méga donc - (Dans le vôtre, elle devrait faire une taille approchante, mais pas forcément, nous verrons pourquoi).
Maintenant, ouvrez votre base de données, et nous allons essayer de la faire grossir, en dupliquant simplement votre table T_Client. Vous vous rappelez comment on fait ? C'était dans la leçon 3.
Faites-en une copie, et retournez dans l'explorateur pour voir si la taille a changé. Ou alors, directement dans Access, vous pouvez cliquer sur Fichier/Ouvrir (même si vous ne voulez rien ouvrir, en fait) juste pour voir la taille de votre base de données.
Ou alors, quelque chose d'encore plus sympathique, ce serait d'afficher votre explorateur
dans une petite fenêtre, et Access dans une autre petite fenêtre, comme ceci :
Vous constatez que la base est passé de 504 Ko à 660Ko.
Attention : il n'est pas évident que vous obteniez les mêmes chiffres que moi
si vous faites le test, il est même possible que la taille ne change pas, ne me demandez pas pourquoi !
En principe, il paraît normal que la taille augmente. Attention aussi au temps de rafraîchissement ! Windows peut mettre quelques secondes avant de vous montrer la nouvelle taille de votre fichier ! Et si la taille ne change pas, afin d'assurer le coup, appuyez sur la touche de votre clavier pour lui "forcer la main".
Ce qui est moins "logique", en revanche, c'est que sa taille ne diminue pas si on supprime la copie de la table ! Essayez ! Supprimez la copie, et regardez la taille de votre base après la suppression.
Non seulement, la taille n'est pas redescendue à 504 Ko, mais au contraire, elle a même augmenté, dans mon cas, à 672 Ko !
Pour réduire la taille de la base de données à sa taille originale, il faut la compacter.
Cliquez sur Outils de bases de données, Compacter une base de données :
Et voilà ! Le fichier accdb est revenu à sa taille initiale : ... Ou presque ! 512 au lieu de 504...
je ne sais pas pourquoi !
En fait, Access se comporte comme un enfant dans une chambre : il sort ses jouets de son armoire le plus vite possible, jette ses vêtements n'importe où, et ne se soucie pas du rangement : ce qui intéresse le gamin, c'est jouer le plus rapidement possible ! mais, du coup, toutes ces choses qui traînent, prennent toute la place dans la chambre !
Access essaie donc aussi de vous laisser travailler le plus vite possible ! Mais de temps en temps, il faut ranger, compacter la base de données ! Et maman, lorsqu'elle va ranger la chambre (oui, parce que les enfants ne rangent jamais, c'est bien connu), elle va passer du temps à tout remettre à sa place, et, si elle trouve un jouet cassé, elle va même (tellement elle est gentille), le réparer ! Le compactage, c'est un peu la maman de votre base de données : prendre un peu de temps pour réduire la place, et réparer les éventuelles erreurs système qui pourraient se faufiler dans votre fichier Access.
Et la prochaine fois que l'enfant va jouer, il retrouvera ses jouets très vite, par miracle tous réparés, et recommencera à jeter ses vêtements dans sa chambre. Donc Maman-compactage doit faire son travail de temps en temps. Eh oui, la vie est un éternel recommencement.
Il est possible de demander à Access de compacter automatiquement votre base de données dès que vous la fermez. Cliquez sur Fichiers/Options/Base de données active/Compacter lors de la fermeture.
Cette case n'est pas cochée par défaut : parce que si vous traitez de petites bases de données, finalement, on s'en fiche un peu de les compacter... Passer de 800Ko à 400Ko sur un disque dur de 3 Téras, qu'est ce que ça peut bien faire !
Et quand vous traitez de grosses bases de données qui pèsent 500 ou 600 Mégas, alors là, oui, c'est intéressant de les compacter pour les faire revenir à une taille de 80 ou 100 Mégas, par exemple ! ... MAIS compacter une petite base, ça prend 1 seconde, tandis que compacter une base énorme, ça prend 10 minutes ! C'est pourquoi cette case n'est pas cochée : Microsoft préfère que ce soit vous qui décidiez exactement quand vient l'heure du rangement.
Il ne faut pas confondre Compactage et Compression. Le compactage, c'est juste de l'optimisation de rangement.
La compression, c'est un peu comme si vous empaquetiez tous les jouets de votre enfant dans des valises très serrées dans le but d'un déménagement, par exemple.
Si vous devez envoyer votre base de données par E-Mail, je vous conseille de commencer par la Compacter, et, ensuite de la Zipper : c'est à dire d'en faire un fichier compressé en .Zip, et vous allez gagner une place phénoménale.
Dans cet exemple de gauche, le compactage nous fait passer la base de 4'476Ko à 588Ko, et, ensuite, la transformation en Zip nous la réduit à 206 Ko !
Un sacré régime, n'est-ce pas ? - Je ne vous cache pas que les réductions ne sont pas toujours aussi spectaculaires.
Evidemment, il faudra que le destinataire décompresse - dézippe - la base de données avant de pouvoir l'utiliser, mais c'est une opération fort simple.
Ce chapitre ne vous intéresse que si vous êtes confronté à d'anciennes versions d'Access, ou d'anciennes bases de données créées avec des versions précédentes d'Access. Il est donc facultatif.
Si vous envoyez une base de données par e-mail, il faut que vous vous assuriez que votre destinataire possède bien Access 2007 ou 2010. En effet, s'il possède l'ancienne version 2003, il ne pourra pas lire le format .accdb. Et s'il ne possède simplement pas Access, il ne pourra rien lire du tout !
(Si votre interlocuteur possède un Mac, il n'a forcément pas Access)
Vous avez la possibilité de convertir votre base de données dans des formats antérieurs : Cliquez sur Fichier/Enregistrer et publier/Enregistrer la base de données sous, et choisissez Base de données 2002-2003, ou, carrément le format Access 2000. Si vous désirez "assurer le coup", choisissez Access 2000, car avec ce format, le destinataire pourra de toutes façons l'ouvrir (à moins qu'il possède une super-ancienne version d'Access, comme Access 97 ou 95, mais ce n'est pas très courant.
Comme nous l'avons souligné, Il y a plein de versions d'Access
Or, bien que l'extension soit identique, on peut bien se douter qu'un fichier Access trucmuche.mdb créé avec Access 97 risque bien d'être différent du format MDB d'une base créée avec Access 2003, mais alors là, nous n'allons pas (trop) rentrer dans le détail, parce qu'on en aurait pour des jours entiers à analyser les différentes versions d'Access, leurs formats de fichiers respectifs, et leurs interactions ! Nous allons rester dans les généralités.
D'ailleurs, comme on l'a vu un peu plus haut, dans Fichier/Publier, on a le choix entre l'enregistrement en :
Et si on voulait enregistrer en format MDB pour Access 97 ? Eh bien on ne peut pas ! Il faudrait que vous disposiez d'une version d'Access 2000 qui, lui, permet de transformer une base de données en format MDB lisible par Access 97 (Je ne sais pas pourquoi Access 2010 ne possède pas cette option de conversion )
Dans un monde parfait, tout le monde aurait Access 2010, avec des bases de données créées avec Access 2010, mais ça, c'est dans les contes de fées.
Il se trouve que je possède une base de données en format Access 97. Voyez déjà la différence de l'aspect de l'icône entre un fichier MDB (Une petite clé) et ACCDB (la lettre A):
Que se passe-t-il si j'ouvre mon fichier en format Access 97 avec mon programme Access 2010 ?
Pour mieux vous en rendre compte, je vous invite à télécharger une vieille base de données :
Cliquez avec le bouton droit de la souris sur ce lien, (et choisissez Enregistrer Sous) en format Access 97 pour faire vos tests.
Cette fenêtre apparaît, avec 4 choix :
Dans cet exemple, je vais répondre Non (ouvrir la vieille base .mdb Access 97 telle quelle, donc). Assez bizarrement, je ne peux pas cliquer sur Affichage en mode création (c'est grisé), mais je peux utiliser le bouton droit de ma souris.
Bon, de toute façon, je ne pourrai rien faire en mode création !
Par contre, en mode saisie de données, vous pouvez faire ce que vous voulez (vous pouvez tester)
Maintenant, si vous désirez modifier la structure des tables, il vous faudra répondre OUI, et travailler dans la nouvelle base .ACCDB qu'Access viendra de vous créer.
Mais évidemment, si la personne qui vous a envoyé la base de données, utilise Access 97, vous ne pourrez plus lui renvoyer ! Son Access 97 ne pourra pas lire votre .ACCDB. Dura lex, sed lex !
Par contre, depuis votre nouveau fichier .ACCDB, vous aurez la possibilité, comme on l'a expliqué plus haut (Fichier/Enregistrer et publier), de la rétro-convertir en format 2000 ou 2002-2003.
Vous aurez alors l'opportunité de travailler en mode création des tables.
Vous avez ainsi la preuve que les .MDB sont différents selon qu'il s'agisse d'un MDB pour la version 97, 2000 ou 2002-2003 ! J'ignore, par contre , si les .ACCDB Access 2007 sont identiques à la version 2010, mais il y a tout à parier que non, puisque Access 2010 amène son lot de nouveautés.
Du coup, vous pourriez vous dire :
"Je vais systématiquement travailler avec des fichiers MDB compatibles Access 2000 puisque je pourrai sans souci travailler en mode saisie de données ou création, que ce soit depuis une version d'Access 2000, 2002, 2003, 2007 ou 2010 !"
Non, je ne vous le conseille pas, parce que vous allez passer à côté de toutes les innovations bien sympathiques apportées par la version 2007 et 2010 ! Par exemple, je ne sais pas si vous vous souvenez des champs mémos, et de la possibilité de "journaliser les modifications" ? Comment ? Vous avez oublié ? Ouh, mais il faut réviser ! Dans une base en .MDB, cette option n'existe carrément pas.
Aussi, si vous avez exploité cette fonction, ou toute autre fonction implémentée dans Access 2007 ou 2010, et que vous désirez convertir la base de données en format Access 2000,2002 ou 2003, vous aurez ce message d'erreur :
Et il y a juste un bouton OK ! Pas question de répondre : "OK, ben tant pis, tu la convertis quand même, même si les nouvelles fonctions ne sont pas prises en charge".
Pour l'anecdote, regardez la liste des nouveautés de ce message d'erreur, il ne mentionne même pas la fonctionnalité de la journalisation des champs mémos, et pourtant c'est à cause de ça que je n'ai pas réussi à la convertir. ça pour vous dire que tout n'est jamais simple, absolu, évident ou exhaustif dans ce monde de (per)versions.
Il y a donc plein de fonctionnalités en plus dans Access 2010, mais il y a deux fonctionnalités en moins, et il faut le savoir !
J'ai entendu dire que ces deux fonctionnalités se re-gérent différemment avec SharePoint, mais je n'ai aucune connaissance de SharePoint.
Toujours est-il que ces deux concepts (Sécurité et réplication) sont accessibles depuis Access 2007 ou 2010, mais seulement si vous êtes dans une base de données en format 2000, 2002 ou 2003, comme ceci :
Dans cette leçon, nous avons pris conscience des tailles des fichiers.
Nous avons vu qu'Access optimise les performances au détriment de la taille de la base de données, et il est nécessaire de la compacter de temps à autre.
Nous avons vu la différence entre le compactage, qui est une fonctionnalité d'Access et la compression, qui s'effectue au niveau de l'explorateur Windows. Nous avons étudié les formats de bases de données, et nous avons regardé les précautions à prendre lors de l'envoi d'une base de données par e-mail.
Enfin, pour ceux que ça intéressait, nous avons un peu détaillé les formats des anciennes versions d'Access, et nous avons constaté qu'il y a 2 extensions : accdb et mdb, mais que selon les versions d'Access, une extension identique peut cacher plusieurs formats différents !
Téléchargez cette base de données Access 97