Initiation aux bases de donnes et la programmation
Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 2 Support de cours rédigé par Bernard COFFIN Université Paris 10 – Nanterre 2007/2008 1
Mémoire du SI La mémoire du système d’information constitue la base de données proprement dite Ensemble cohérent d’informations complexes Les informations élémentaires (données) sont regroupées en fonction du sens qu’on leur donne Plusieurs techniques pour réaliser des BD ACCESS est une BD relationnelle 2
Relationnelle ? C’est une référence à l’algèbre relationnelle Les BD relationnelles sont très répandues Elles utilisent un langage d’interrogation et de mise à jour : SQL Structured Query Language Langage de requête structuré Langage déclaratif : on décrit ce qu’on veut obtenir, la machine fait le nécessaire 3
Pour comprendre et bien utiliser les requêtes il faut avoir un minimum de notions sur l’algèbre relationnelle 4
Algèbre relationnelle Partie de la théorie des ensembles Une définition qui nous suffit : Un ensemble est une collection d’éléments Un ensemble peut être : Tous nos - vide ensembles - infini Exemple : N, ensemble seront finis des - fini nombres : entiers Exemple A = {1, 3, 8, 12, 20} On appelle cardinal d’un ensemble fini le nombre de ses éléments |A| = 5 5
Opérations de base sur les tel que ensembles Union de deux ensembles Intersection de deux ensembles appartient Produit cartésien de deux ensembles Les éléments d’un produit cartésien ensembles sont des n-uplets Les éléments de de A. B n sont des couples 6
Exemple : A = {vert, jaune, rouge} B = {allumé, éteint} A • B est l’ensemble de tous les couples respectant la définition Pour obtenir le résultat, il faut successivement associer (dans un couple) chaque élément de A à chaque élément de B A • B = {(vert, allumé), (vert, éteint), (jaune, allumé), (jaune, éteint), (rouge, allumé), (rouge, éteint)} |A • B|=|A|x|B| 7
Relation Un domaine est un ensemble dont les éléments sont des « valeurs » Les ensembles de l’exemple précédent sont des domaines A = {vert, jaune, rouge} B = {allumé, éteint} En algèbre relationnelle, une relation est un sous-ensemble (fini) du produit cartésien de plusieurs domaines Par extension, un domaine A, B et A • B sont des relations est une relation Le produit cartésien de plusieurs relations est une relation 8
Représentation des relations par des tableaux Ces relations sont enregistrées dans la mémoire permanente de la BD Table B B Table A Nous utiliserons En-tête souvent des « tables » , de colonne mais… toutes les : le nom du pas champ C relations ne sont des « tables » allumé vert éteint vert d’une Il. Les estvaleurs préférable « colonne » de parler de appartiennent à un « champ » même domaine rouge B Dans chaque allumé Il est préférable « ligne » , un de nupletd’ de la éteint parler relation » « enregistrement allumé 9
Liste des champs d’un produit de deux relations C’est l’union des listes des champs deux relations R 2 R 1 • R 2 dept Région ville Rouen 76 28 Centre Lyon 69 69 Rhône-Alpes ville Deux champs portent le même nom dans R 1 et R 2 R 1. dept R 2. dept région Rouen 76 28 Centre Lyon 69 28 Centre Rouen 76 69 Rhône-Alpes Lyon 69 69 Rhône-Alpes On les différencie dans R 1 • R 2 à l’aide de noms qualifiés 10
Projection C’est une opération sur les relations En SQL, c’est une Elle permet à partir d’une relationsélection existante d’en obtenir une nouvelle en ne conservant qu’une partie de ses champs projection de « étudiant » sur (nom, prénom) étudiant nom prénom formation adresse nom prénom MARTIN Marie MMIA Versailles MARTIN Marie BERNARD Louis Gestion Nanterre BERNARD Louis THOMAS Alice Anglais Nanterre THOMAS Alice MARTIN Bernard Anglais Suresnes MARTIN Bernard SELECT nom, prénom FROM étudiant; 11
Restriction C’est une autre opération sur les relations Elle permet SELECT à partir d’une relation existante d’en étudiant. * FROM étudiant obtenir une WHERE nouvelle adresse en ne conservant qu’une = "Nanterre"; partie de ses enregistrements étudiant Restriction aux nanterrois nom prénom formation adresse nom prénom MARTIN Marie MMIA Versailles BERNARD Louis Gestion Nanterre THOMAS Anglais Nanterre THOMAS Alice Anglais Nanterre MARTIN Bernard Anglais Suresnes Alice formation adresse On obtient ce résultat en posant une condition sur la valeur du champ 12 « adresse »
On peut combiner plusieurs opérations Projection et restriction étudiant identités des nanterrois nom prénom formation résidence nom prénom MARTIN Marie MMIA Versailles BERNARD Louis Gestion Nanterre THOMAS Alice Anglais Nanterre MARTIN Bernard Anglais Suresnes SELECT nom, prénom FROM étudiant WHERE résidence = "Nanterre"; La restriction peut porter sur d’autres champs que la projection 13
Projection, produit cartésien et restriction étudiant adresse ville département prénom formation MARTIN Marie MMIA 2 1 Paris 75 BERNARD Louis Gestion 3 2 Versailles 78 THOMAS Alice Anglais 3 3 Nanterre 92 MARTIN Bernard Anglais 2 4 Suresnes 92 MARIE Philippe Gestion 4 habitants des Hauts-de-Seine nom prénom ville BERNARD Louis Nanterre THOMAS Alice Nanterre MARIE Philippe Suresnes référence code adresse nom SELECT étudiant. nom, étudiant. prénom, adresse. ville FROM adresse, étudiant WHERE (adresse. [code adresse]=[référence]) AND (adresse. département=92); 14
Lien logique Ce champ relie un. Ce champ « identifie » un enregistrement (il ne peut enregistrement de « étudiant » pas prendre la même valeur pour deux enregistrements différents) à un enregistrement de « adresse » C’est une « clef primaire » C’est une « clef externe » étudiant adresse nom prénom formation référence code adresse ville département MARTIN Marie MMIA 2 1 Paris 75 BERNARD Louis Gestion 3 2 Versailles 78 THOMAS Alice Anglais 3 3 Nanterre 92 MARTIN Bernard Anglais 2 4 Suresnes 92 MARIE Philippe Gestion 4 Le couple (clef primaire, clef externe) permet 15 de réaliser des liens logiques
SELECT étudiant. nom, étudiant. prénom, adresse. ville FROM adresse, étudiant WHERE (adresse. [code adresse]=[référence]) AND (adresse. département=92); JOINTURES Ici, le nom de la table La première clause de restriction est presque équivalente à une jointure obligatoire interne SELECT étudiant. nom, étudiant. prénom, adresse. ville FROM étudiant INNER JOIN adresse Mais la jointure permet de ON étudiant. référence = adresse. [Code adresse] créer des enregistrements WHERE adresse. département = 92; alors que ce n’est pas le cas la clause Where Il y a aussi des jointures externesdequi permettent des calculs de relations plus élaborés Elles ne sont pas au programme de ce cours 16
- Slides: 16