Cours 11 Introduction à Access Algèbre relationnelle Pierre Delisle Université du Québec à Chicoutimi Département d’informatique et de mathématique
Plan Introduction à Access Historique Utilisation Création d’une base de données avec Access, partie 1 Création des tables Création des relations Algèbre relationnelle
Qu’est-ce qu’Access ? Système de Gestion de Bases de Données Relationnelles (SGBDR) Fait partie de la famille de logiciels Microsoft Office Word : Traitement de texte Excel : Tableur électronique PowerPoint : Éditeur de présentations Outlook : Agenda-Courriel Access : Bases de données personnelles
Historique d’Access 1992 : Access 1.0 1993 : Access 2.0 Tournait sur Windows 3.0 Nécessitait 4 Mo de RAM et 8 Mo de disque dur ! 1995 : Access 7 pour Windows95 (Office 95-Word 7) 1997 : Access 97 (Office 97) 1999 : Access 2000 (Office 2000) 2001 : Access 2001 (Office XP) 2003 : Access 2003 (2003 Microsoft Office System) 2007 : Microsoft Office Access 2007 (2007 Microsoft Office System Nécessite 256 Mo de RAM et 1.5 Go de disque dur !
Compétiteurs d’Access dBase – Années 1980-1990
Compétiteurs d’Access Paradox 1987-… Développé originalement par Borland Fait maintenant partie de Corel Word Perfect Office FileMaker Pro 1985-… OpenOffice.org Base 2001-… Fait partie de la suite bureautique OpenOffice.org Logiciel Gratuit (GPL - General Public License)
Utilisation d’Access Démarrage Création d’une BD Fichier vide Modèle Les modes d’ouverture d’une BD Normal (mode par défaut): Consultation et Modification de la BD, mono/multi utilisateur Lecture seule : Consultation seulement Exclusif : mono-utilisateur seulement, personne d’autre ne peut ouvrir la BD en même temps Lecture seule exclusif
Utilisation d’Access La Barre de menus Conseil d’utilisation Accueil Créer Données externes Outils de bases de données Conseil d’utilisation Faites régulièrement des copies de sauvegarde !
Principaux éléments d’Access Tables Stockage des données Relations Liens entre les tables Requêtes Opérations sur les tables afin d’extraire de l’information Formulaires Interfaces-utilisateur d’entrée, de modification, d’affichage et de traitement des données États Affichage de récapitulatifs (factures, commandes, rapports, etc.), attrayants et imprimables Macros Liste de commandes pouvant être enregistrées et exécutées par Access
Centre Sportif Peter inc. – Modèle relationnel formel en FNBC CLIENT (NoClient, Nom, Prenom, Statut) REDUC_CLIENT (Statut, Reduction) SALLE (NoSalle, Description) RESERVATION (NoClient, NoSalle, DateDebut, DateFin) COUT_RESERV (DateDebut, Cout) AUTOR_SALLE (NoSalle, DateDebut, Autorisation) FORFAIT (NoForfait, DateDebut, DateFin, Prix) CARTE (NoClient, NoForfait) ACTIVITÉ (NoActivité, Description, NoSalle) ACTIVITÉ FORFAITAIRE (NoForfait, NoActivite) ACT_EN_COURS (NoSalle, NoActivité) GROUPE (NoGroupe, Description, DateDebut, DateFin, NoActivite) EMPLOYE (NoEmploye, Nom, Prenom) AFFECTATION (NoGroupe, NoEmploye) COMPETENCE (NoEmploye, NoActivite, Fonction)
Création d’une BD avec Access-Partie 1 Création des tables Création des relations
Création des tables Champ Enregistrement Clé primaire Unité de données la plus petite dans la BD ≈ Attribut ≈ Colonne ≈ Élément de données Enregistrement Ensemble des valeurs attribués aux champs d’une table pour une occurrence donnée ≈ Ligne ≈ Tuple ≈ Occurrence (du MCD) Clé primaire Champ (ou groupe de champs) qui identifie de façon unique chaque enregistrement d’une table ≈ Identifiant (du MCD)
Création des tables 2 façons Entrée des données Par entrée de données En mode création (recommandé) Entrée des données En mode feuille de données Assistant Liste de choix
Création des relations Connexion entre 2 tables apparentées où 2 champs partagent les mêmes données Passe par les clés étrangères Outil graphique de création de relation Intégrité référentielle Protège les données Une clé étrangère doit toujours correspondre à une clé primaire Empêche de supprimer/modifier une clé primaire si des clés étrangères y sont associées dans d’autres tables Évite les enregistrements « orphelins »
Fin de Access – Partie 1 Prochain cours Requêtes Formulaires États Mais avant, il faut comprendre les bases de l’algèbre relationnelle !
Algèbre relationnelle Chaque opération d’algèbre relationnelle prend une/plusieurs tables et les transforme afin de produire une nouvelle table 3 opérations principales Sélection Projection Jointure 3 opérations secondaires Union Intersection Différence
Tables des exemples - ÉTUDIANT Nom Prénom AnnéeNais MoisNais JourNais Université Girard Martin 1975 04 23 UQAC Tremblay Isabelle 1977 07 12 ULaval Godin Patrice 1972 02 18 UDM Bouchard 06 28 Julie 1980 10 22 UQAM
Tables des exemples - UNIVERSITÉ Sigle NomInstitution Ville NbrÉtudiants UQAC Université du Québec à Chicoutimi Chicoutimi 4000 Université du Québec à Montréal Montréal 12000 UDM Université de Montréal 11000 ULaval Université Laval Québec 8000
Tables des exemples - VILLE Nom Région Chicoutimi Saguenay-Lac-St-Jean Montréal Québec
Sélection S’effectue sur une seule table Produit une nouvelle table étant un sous-ensemble de la table originale selon des critères appliqués sur certains champs Opérateur : σ Format σ (table source) [critères]
Sélection - Exemples σ (ÉTUDIANT) [Nom = "Girard"] La liste des étudiants dont le nom de famille est "Girard" σ (ÉTUDIANT) [Université = "ULaval"] La liste des étudiants inscrits à l’Université Laval Nom Prénom AnnéeNais MoisNais JourNais Université Girard Martin 1975 04 23 UQAC Julie 1980 10 22 UQAM Nom Prénom AnnéeNais MoisNais JourNais Université Tremblay Isabelle 1977 07 12 ULaval
Sélection - Exemples Exemple de sélection donnant une table vide σ (ÉTUDIANT) [AnnéeNais = 1979] La liste des étudiants nés en 1979 Nom Prénom AnnéeNais MoisNais JourNais Université
Sélection – Exemples avec 2 critères (OU et ET) σ (ÉTUDIANT) [AnnéeNais = 1977 ET Université = "UDM"] La liste des étudiants nés en 1977 et inscrits à l’Université Laval σ (ÉTUDIANT) [Université = "UQAC" OU Université = "UDM"] La liste des étudiants inscrits à l’UQAC ou à l’UDM Nom Prénom AnnéeNais MoisNais JourNais Université Bouchard Martin 1977 06 28 UDM Nom Prénom AnnéeNais MoisNais JourNais Université Girard Martin 1975 04 23 UQAC Bouchard 1977 06 28 UDM
Sélection – Exemples avec 3 critères (Les parenthèses sont importantes σ (ÉTUDIANT) [(Université = "UDM" OU Université = "ULaval" ) ET AnnéeNais = 1977] La liste des étudiants inscrits à l’UDM ou à ULaval et qui sont nés en 1977 σ (ÉTUDIANT) [Université = "UDM" OU (Université = "ULaval" ET AnnéeNais = 1977)] La liste des étudiants inscrits à l’UDM ou ceux qui sont en même temps inscrits à ULaval et nés en 1977 Nom Prénom AnnéeNais MoisNais JourNais Université Tremblay Isabelle 1977 07 12 ULaval Bouchard Martin 06 28 UDM Nom Prénom AnnéeNais MoisNais JourNais Université Tremblay Isabelle 1977 07 12 ULaval Godin Patrice 1972 02 18 UDM Bouchard Martin 06 28
Sélection – Exemples basés sur un critère d’inégalité et sur critère partiel σ (ÉTUDIANT) [AnnéeNais < 1976] La liste des étudiants nés avant 1976 σ (ÉTUDIANT) [Nom = "G*"] La liste des étudiants dont le nom de famille commence par G Nom Prénom AnnéeNais MoisNais JourNais Université Girard Martin 1975 04 23 UQAC Godin Patrice 1972 02 18 UDM Nom Prénom AnnéeNais MoisNais JourNais Université Girard Martin 1975 04 23 UQAC Godin Patrice 1972 02 18 UDM Julie 1980 10 22 UQAM
Projection S’effectue sur une seule table Produit une nouvelle table qui est un sous-ensemble de la table originale selon un ou des champs sélectionnés Sert à déterminer quelles données seront présentées comme résultat de la requête Opérateur : Format {champs} (table source)
Projection simple {Nom} (ÉTUDIANT) La liste des noms de famille des étudiants Note : les éléments identiques sont éliminés Une table ne doit jamais contenir deux tuples identiques Nom Girard Tremblay Godin Bouchard
Projection sur plusieurs champs {Nom, Prénom, Université} (ÉTUDIANT) La liste des étudiants avec l’Université où ils sont inscrits Nom Prénom Université Girard Martin UQAC Tremblay Isabelle ULaval Godin Patrice UDM Bouchard Julie UQAM
Jointure Jointure naturelle Opérateur : Format Opération s’effectuant sur 2 tables ayant au moins un champ commun (de même domaine) Produit une nouvelle table qui est une combinaison des 2 tables originales selon l’égalité des champs communs Permet de créer de l’information qui ne se trouve pas dans une seule table, mais par la combinaison de deux tables Opérateur : Format table 1 [champs1 champs2] table 2
Jointure = Exemple ÉTUDIANT [Université Sigle] UNIVERSITÉ Nom Prénom AnnéeNais MoisNais JourNais Université NomInstitution Ville NbrÉtudiants Girard Martin 1975 04 23 UQAC Université du Québec à Chicoutimi Chicoutimi 4000 Tremblay Isabelle 1977 07 12 ULaval Université Laval Québec 8000 Godin Patrice 1972 02 18 UDM Université de Montréal Montréal 11000 Bouchard 06 28 Julie 1980 10 22 UQAM Université du Québec à Montréal 12000 Note : le nom du champ peut être le même ou différent, en autant que les domaines soient identiques
Notes sur les jointures Si aucun champ n’est commun (de même domaine/type) entre 2 tables, la jointure est impossible Si un champ est commun mais qu’il n’y a aucune donnée commune, alors la jointure donne une table vide Jointure universelle Opération s’effectuant sur 2 tables et qui fait la jointure entre tous les tuples de 2 tables Aucun attribut commun n’est requis Opération aussi appelée « Produit cartésien » Produit une suite de faux tuples, donc n’est pas utile, mais permet de détecter des erreurs dans la BD (vu plus tard)
Des questions ?