Mémo ACCESS - Espace d`authentification univ-brest.fr
Transcription
Mémo ACCESS - Espace d`authentification univ-brest.fr
Mémo ACCESS Pascal Ballet Université de Bretagne Occidentale I Qu'est-ce qu'Access ? Access est un système de gestion de base de données relationnelle. En d'autres mots, Access permet de stocker des données sous la forme de tables reliées entre-elles par des relations. Nous verrons plus loin ce que signifient les relations. Pour l'instant concentrons nous sur les données. II Qu'est-ce qu'une table ? II-1 Une table vide Une table peut être vu comme l'entête d'un simple tableau. Par exemple, le tableau suivant (carnet d'adresse) peut être vu comme une table ayant 4 champs : Nom, Prénom, Adresse et Téléphone. Carnet d'adresse (sous la forme d'un simple tableau) Nom Prénom Adresse Téléphone En effet, sous Access, la table permettant de faire l'équivalent de ce carnet d'adresse est : = Carnet d'adresse (sous la forme d'une table Access) Nom du champ Nom Prénom Adresse Téléphone Il faut ici bien comprendre que le carnet d'adresse sous forme de table correspond uniquement à l'entête du carnet d'adresse sous la forme d'un simple tableau. Nous avons ici simplement mis l'entête verticalement au lieu d'horizontalement. II-2 Une table remplie Le simple tableau utilisé précédemment était vide (hormis l'entête). De même qu'il est possible de remplir un tableau... Nom Prénom Adresse Téléphone Célère Jacques Brest 02 23 45 67 89 Némar Jean Quimper 02 98 76 54 32 Ile Ode Lannion 02 76 54 32 10 ... il est possible de remplir une table : Nom Prénom Adresse Téléphone Célère Jacques Brest 02 23 45 67 89 Némar Jean Quimper 02 98 76 54 32 Ile Ode Lannion 02 76 54 32 10 On remarque que maintenant il n'y a plus de différence entre l'affichage de la table et celui du tableau. En effet, lorsque l'on crée un nouveau tableau, on se préoccupe généralement tout de suite des cases que l'on va remplir. Quand on crée une table, on passe par une étape supplémentaire qui est la création de l'entête de la table (à savoir les champs). Nous devons faire cela en premier car une table demande également de réfléchir sur le type de données qu'elle va contenir (chaîne de caractères, nombres entiers, nombres monétaires...). II-3 Résumé Pour résumé, une table en mode création/modification sous Access est sous la forme : Nom du champ Nom Prénom Adresse Téléphone Une table en mode saisie est sous la forme : Nom Prénom Adresse Célère Jacques Brest Némar Jean Quimper Ile Ode Lannion Téléphone 02 23 45 67 89 02 98 76 54 32 02 76 54 32 10 III Qu'est-ce qu'une relation ? III-1 Plusieurs numéros de téléphones Il est tout à fait imaginable que une personne présente dans le carnet d'adresse possède plusieurs numéros de téléphone. Dans ce cas, la table pourrait s'écrire : Nom Redford Prénom Robert Adresse Brest Bon Ile Jean Ode Quimper Lannion Téléphone 02 23 45 67 89 06 12 23 34 56 02 98 76 54 32 02 76 54 32 10 01 23 45 67 89 06 65 98 74 32 Cette notation convient bien pour afficher les numéros de téléphones. => Cependant, dans une base de données, le nombre de caractères que l'on peut placer dans un champ n'est pas infini (256 maximum pour les chaînes de caractères avec Access). => De plus, si un champ prend de la place pour rien, la base va très vite grossir et ne sera rapidement plus utilisable. Imaginons par exemple que nous placions 256 caractères pour le champ Téléphone. La place occupée par nos 3 contacts (Redford, Bon et Ile) serait de 256x3 = 768. Hors M. Bon ne possède qu'un seul numéro de téléphone (qui occupe donc seulement 14 caractères en comptant les espaces). Donc nous perdons 256 - 14 = 242 caractères. Conclusions, les informaticiens ont utilisé une autre technique qui consiste à créer une nouvelle table qui s'appelle Téléphones. On remplace ainsi un champ par une table complète. La nouvelle table se définie alors comme suit : Téléphones : Nom Téléphone Redford 02 23 45 67 89 Redford 06 12 23 34 56 Bon 02 98 76 54 32 Ile 02 76 54 32 10 Ile 01 23 45 67 89 Ile 06 65 98 74 32 Comme nous le constatons, nous répétons plusieurs fois le même nom pour connaître à coup sûr à qui appartient le numéro de téléphone. Ainsi nous avons maintenant deux tables pour mémoriser nos données, donc dans la table Carnet, le champ Téléphone n'est plus utile : Carnet Nom Redford Bon Ile Téléphones Nom Redford Redford Bon Ile Ile Ile Prénom Robert Jean Ode Adresse Brest Quimper Lannion Téléphone 02 23 45 67 89 06 12 23 34 56 02 98 76 54 32 02 76 54 32 10 01 23 45 67 89 06 65 98 74 32 Maintenant il faut, pour chercher le numéro de téléphone d'un contact, consulter la nouvelle table Téléphones. Ce n'est pas très pratique quand il s'agit de simples tableaux mais grâce à Access nous pouvons relier facilement les deux tables pour retrouver en un clic souris tous les numéros de téléphone d'un correspondant. En cliquant sur le bouton Relations de la barre d'outils (puis afficher les 2 tables), on crée un lien (une relation) entre les deux tables sur les données qu'elles ont en commun, à savoir le nom des contact. Table Carnet Nom Prénom Adresse 1 * Table Téléphones Nom Téléphone NB : notons que les tables sont affichées comme pour le mode création/modification, c'est à dire que l'entête est verticalement disposé. A partir de là, lorsqu'on affiche en mode saisie la table Carnet, il devient possible d'afficher tous les numéros de téléphone d'un contact : Nom Prénom Adresse - Redford Robert Brest 02 23 45 67 89 06 12 23 34 56 + Bon Jean Quimper + Ile Ode Lannion En effet, Access fait automatiquement la recherche des numéros de téléphones en fonction du nom du contact. => Dorénavant, un contact peut avoir autant de numéros de téléphones que nécessaire ! => La place mémoire (ou disque dur) nécessaire pour stocker les numéros de téléphone est réduit à 14 caractères ! => Le lien (la relation) entre les deux tables se fait automatiquement ! III-2 Résumé Les relations entre les tables permettent de faciliter / optimiser le traitement informatique des données. Lorsque la base de donnée devient assez grande (de nombreuses tables), les relations entre les tables facilitent la mise au point de la base de données en séparant bien plusieurs données (un peu comme une maison possède plusieurs pièces et non pas une seule grande. Même si cela est possible, cela n'est pas pratique de mélanger la cuisine avec les chambres !). IV Le coeur d'Access Nous avons vu comment stocker les données avec Access. C'est donc sous la forme de tables (très proche de la notion de tableau de type Excel) reliées entre-elles (pour faciliter leur manipulation et optimiser le stockage). Ces tables reliées entre-elles sont le coeur d'Access (en fait, c'est le coeur de toute base de données). Les informaticiens auraient pu en rester là, mais un des avantage de l'ordinateur est le traitement rapide des données et il est donc possible d'effectuer des traitements sur la base de données pour extraire certaines informations et faire des statistiques. V Les requêtes V-1 Consultation de la base de données Pour consulter la base, la manière la plus simple est d'ouvrir les tables pour voir leur contenu. Cela est possible lorsque le nombre de données mémorisées n'est pas trop grand. Cependant, au delà d'un certain nombre (généralement au delà de 1000), il est utile de pouvoir interroger la base. Pour donner une idée de l'intérêt de la base de données, imaginons que nous ayons plus de 100 000 contacts dans notre Carnet d'Adresses. Une première solution consiste à faire comme dans un annuaire papier, c'est à dire faire défiler tous les noms jusqu'à trouver le bon. Cela se fait relativement bien sur papier (type annuaire téléphonique) mais beaucoup moins bien sur l'écran de l'ordinateur (car moins intuitif et moins pratique). Une solution consiste alors à envoyer une requête (c'est à dire une question) à la base de données du genre "Quels sont les numéros de téléphone de Ode Ile ?". La base de donnée est alors scrutée par Access jusqu'à ce que le nom Ode et le prénom Ile soient trouvés. L'ordinateur renvoi alors l'ensemble des numéros de téléphone d'Odile et le temps de recherche est si faible que nous avons l'impression que la réponse de l'ordinateur est immédiate. Requête : "Quels sont les numéros de téléphone de Ode Ile ?" Réponse : "02 76 54 32 10", "01 23 45 67 89", "06 65 98 74 32" Tables et Relations Les requêtes peuvent être plus complexe encore et l'on peut par exemple demander "Quels sont les numéros de téléphones de toutes les personnes prénommées Jean" ou encore "Quels sont les personnes dont le numéro de téléphone se termine par 89 et dont le nom commence par les lettres Re" (ici en l'occurrence, le résultat sera Robert Redford 02 23 45 67 89). Notons que pour retrouver les données, Access recherche dans les tables existantes et place les données correspondante dans un table temporaire (un peu comme nous le ferions en cherchant dans un annuaire puis en notant le numéro recherché sur un bout de papier). V-2 Résumé Les requêtes viennent juste après les tables et les relations par ordre d'importance dans Access. Nous pouvons donc maintenant stocker des données de manière pratique mais aussi poser toute sorte de questions (requêtes) à Access pour qu'il retrouve les données dont on a besoin. VI Les formulaires et les états Les formulaires et les états viennent en dernier car, même s'ils sont pratiques, ils ne sont en rien indispensables à l'utilisation d'une base de données. Il permettent avant tout de faciliter la saisie (les formulaires) et l'impression (états) des données stockées dans la base de données. VI-1 Les formulaires Afin de faciliter la saisie des données, Access permet de créer des formulaires de saisie. Ceux-ci sont plus agréables à utiliser que les tables. On peut également programmer un formulaire en Visual Basic pour que suite au remplissage des données, des actions soient effectuées. Par exemple, si nous avons deux champs dont les contenus sont à priori les mêmes, on peut faire un petit programme Visual Basic qui va permettre de remplir simultanément les deux champs. De même, si nous faisons une erreur de saisie, il est possible d'indiquer à la personne utilisant le formulaire qu'elle rentre une donnée qui semble fausse. VI-2 Les états Les états permettent d'imprimer des documents (genre bon de commande ou autre) directement en relation avec les données de la base. Ainsi, il devient facile d'imprimer un document, ou un groupe de documents. Il est même possible d'imprimer les résultats d'une requête (on parle alors d'état basé sur une requête et non pas simplement sur une table). VI-3 Résumé Les formulaires et les états ne sont pas essentiels à la base de données, mais ils facilitent grandement le travail du programmeur et de l'utilisateur pour avoir de pratiques formulaires de saisie et de beaux documents imprimés (états). VII Conclusion Voici pour résumé un dessin représentant les fonctionnalités d'Access. Requête : "Quels sont ... ?" Réponse : Il y a trois réponses... Tables et Relations Lecture dans la base (donc dans les tables !) Etats d'impression Lecture et écriture dans la base (donc dans les tables !) Formulaires de saisie ACCESS Pour finir, voici les ressemblances et les différences essentielles entre une base de données et un tableur (type Excel) : > Les tables (Access) et les tableaux (Excel) sont très proches. > De même, les requêtes (Access) et les filtres (Excel) sont similaires. > Par contre, les relations entre les tables (Access) sécurisent et structurent les données (plus difficile à obtenir avec Excel) > De plus, grâce aux requêtes (Access), toute sorte de questions peuvent être posées (Excel se limite généralement à des filtres). Même des questions compliquées. > La saisie des données sous Access peut être plus poussée grâce aux formulaires de saisies et au langage Visual Basic. > L'impression et la mise en forme des données est plus complète sous Access que sous Excel. > Il est possible d'avoir une base de donnée partagée par plusieurs utilisateurs EN MÊME TEMPS et sur différents ordinateurs. Ce qui n'est pas possible avec Excel. > Une base de donnée peut être placée sur Internet plus facilement. > Une base de donnée est plus facilement sécurisable qu'un tableau Excel (typage des données, format de saisie, formulaire de saisie ne faisant pas apparaître certains champs,...).