CESI Gestion de base de données Prosit 1 SCHMITT Mathieu 2008 EXIA Prosit 1 CER SCHMITT Mathieu Objectifs : - Découvrir Access et la BD. Définitions des mots-clés : Access : Microsoft Access ou MS Access (officiellement Microsoft Office Access) est un système de gestion de base de données relationnelles éditée par Microsoft. MS Access est un logiciel utilisant des fichiers au format Access (mdb - Microsoft DataBase). Il est compatible avec les requêtes SQL (sous certaines restrictions) et dispose d'une interface graphique pour saisir les requêtes (QBE - Query By Example). BD : Une base de données, usuellement abrégée en BD ou BDD, est un ensemble structuré et organisé permettant le stockage de grandes quantités d'informations afin d'en faciliter l'exploitation (ajout, mise à jour, recherche de données). Une base de données se traduit physiquement par un ensemble de fichiers présent sur une mémoire de masse (bien souvent un disque). Certaines peuvent être accessibles via les réseaux, on parle alors de base de données en ligne. SGBD Page 2 Prosit 1 CER SCHMITT Mathieu .MDB : Microsoft Data Base. C’est donc un format de fichier d’Access. SGBD : La gestion et l'accès à une base de données sont assurés par un ensemble de programmes qui constituent le Système de gestion de base de données (SGBD). Un système de gestion de base de données héberge généralement plusieurs bases de données, qui sont destinées à des logiciels ou des thématiques différentes. On distingue couramment les SGBD classiques, les SGBD-R ou SGBD relationnels, les SGBD-O Orienté objet. Table : Dans les bases de données relationnelles, une table est un ensemble de données (les valeurs) organisé selon un modèle de lignes (horizontales) et de colonnes (verticales). Chaque table est l'implémentation physique d'une relation entre les différents champs. Chaque correspondance est définie par une ligne de la table, et les valeurs d'un champ sont dans une même colonne. Modèle relationnel : Le modèle relationnel est une manière de modéliser les informations contenues dans une base de données qui repose sur des principes mathématiques inventés par E.F. Codd. Ce qu'on appelle relation est un ensemble d'attributs qui définissent un fait - par exemple qu'un employé a un matricule donné, que son nom est untel, qu'il travaille dans tel service et a été embauché à telle date. Chaque instance est appelée un tuple. Les relations sont d'ordinaire représentées sous forme tabulaire, et l'on confond table et relation; on confond de même, ligne dans la table et tuple. Par définition, chaque tuple d'une relation est unique, et est identifié par un ou une combinaison de plusieurs attributs qui forme la clef. L'ordre des tuples est non significatif. Cardinalité : La cardinalité ou multiplicité dans les schémas relationnels en modélisation des données, sert à compter le nombre minimum et maximum de possibilités que chaque classe contient dans la relation liant 2 ou plusieurs objets. Cette notion est utilisée par la modélisation Merise et UML. Avec UML par exemple, si une classe Client peut avoir de 0 à 2 adresses, on parle d'une cardinalité 0..2. SGBD Page 3 Prosit 1 CER SCHMITT Mathieu Requête : Une requête correspond à l'interrogation d'une base pour en récupérer une certaine partie des données. Axes de recherches Préambule Bases de données : A quoi ça sert ? Les bases de données constituent la version informatique des fichiers (au sens originel : "tiroir de fiches") sur papier. Informatiser un fichier comporte de nombreux avantages par rapport au fichier papier : Gain de place : des armoires complètes peuvent être stockées sur le disque dur d'un ordinateur (c'est aussi un point de fragilité car il est beaucoup plus rapide et souvent irréversible de détruire un disque dur qu'une armoire pleine de dossiers). La présentation des informations est séparée des informations elles-mêmes, ce qui permet, à partir du même fichier, d'imprimer des courriers personnalisés, des étiquettes, des fiches, toutes sortes de listes. L'ordre de classement d'un fichier informatique peut être très facilement changé ; on peut ainsi, classer un fichier "livres" au choix, par titre, par auteur, par éditeur, par thème... et passer d'un classement à l'autre aussi souvent que nécessaire. On peut très rapidement extraire du fichier informatique des fiches répondant à un ou plusieurs critères. De plus, et c'est le pourquoi du terme " Relationnelles", les bases de données permettent de mettre en relation plusieurs fichiers ; par exemple, on pourra relier le fichier "Clients" avec le fichier "Commandes", évitant ainsi de faire figurer sur chaque fiche de commande l'ensemble des informations concernant le client auquel elle se rapporte. Ceci permet, outre le gain de place permis par la suppression des informations en double, de rendre plus fiables les informations (moins de transcriptions à effectuer) et de centraliser les informations d'un client sur une seule fiche (si le client change d'adresse, la transcription des modifications sur sa fiche opérera pour toutes ses commandes, puisque toutes sont liées à une seule fiche client). SGBD Page 4 Prosit 1 CER SCHMITT Mathieu Créer/manipuler des données sous Access Nom d’objet : On prendra soin de définir des noms de 25 caractères maximum, sans caractères accentués ni signes de ponctuation ni espaces. Requête : Les délimiteurs utilisés en fonction des types de données sont les suivants : Valeur "null" Quand on veut rechercher des enregistrements dont un champ ne contient pas de valeur, on formule un critère en utilisant le mot clé "Null" ; la valeur "Null" correspond à l'absence de valeur dans le champ Critères d'égalité avec une valeur Sur la grille de requête en mode création, c'est bien entendu la ligne "Critère" qui va permettre de déterminer les conditions d'extraction des données. Si l'on veut obtenir les enregistrements dont un champ correspond à une valeur déterminée, il suffit de saisir cette valeur dans la colonne du champ, sur la ligne "Critère" : SGBD Page 5 Prosit 1 CER SCHMITT Mathieu Si on ne veut obtenir que les enregistrements dont le champ "Ville" contient la valeur "ANTONY", on saisit cette valeur sur la ligne "Critère" ; Access ne fait pas la différence entre les majuscules et les minuscules. Inégalités Pour rechercher une inégalité avec une valeur, on pourra utiliser "<>" ou le mot clé "Pas" : Toutes les villes, sauf "ANTONY" SGBD Page 6 Prosit 1 CER SCHMITT Mathieu Tous les stagiaires qui ont une deuxième ligne d'adresse Autres opérateurs de comparaison Voici les opérateurs qui peuvent être utilisés dans les critères : SGBD Page 7 Prosit 1 CER SCHMITT Mathieu Comparer avec des expressions Il n'est pas toujours pertinent de formuler des critères avec des valeurs en dur ; en fonction des résultats à obtenir, on peut avoir besoin de faire référence à des valeurs plus complexes, voire qui changent en fonction d'autres valeurs. On peut utiliser dans ce cas des expressions de calcul dans les critères. Au moment de la comparaison, Access effectuera le calcul et utilisera le résultat en tant que critère. SGBD Page 8 Prosit 1 CER SCHMITT Mathieu Je souhaite obtenir tous les stagiaires âgés de 40 ans au moins ; je ne peux pas utiliser une valeur fixe comme critère, dans la mesure où le résultat sera différent en fonction du jour où je lancerai cette requête. Il faut en fait que j'utilise la date système de l'ordinateur (on l'obtient avec la fonction "Date()" ) pour la comparer avec celle des stagiaires le jour de l'exécution de la requête. Il me faut donc calculer quelle est la date de naissance de quelqu'un dont l'anniversaire des 40 ans tomberait aujourd'hui (date()) et formuler un critère sur le champ "DateNaisSta" pour ne retenir que les stagiaires pour lesquels ce champ est inférieur ou égal à cette date calculée. Pour calculer la date de naissance des "quadragénaires du jour", il me suffit de soustraire 40 fois 365 jours (pour les "maniaques" qui veulent tenir compte des années bissextiles, on prendrait 365,25) de la date du jour ; d'ou le critère ainsi formulé dans le champ "DatNaisSta" : "<= date() - (40 * 365)". Cette requête, une fois enregistrée, produira donc un résultat toujours juste en fonction du jour : si quelqu'un a son quarantième anniversaire demain et que je lance cette requête, il y aura un enregistrment de plus (à moins que votre ordinateur soit en panne et que sa date système soit erronée) Les principes des combinaisons de critères On a souvent besoin de combiner des critères entre eux pour extraire des données répondant à une condition complexe. L'association de deux critères peut se réaliser de deux manières : Avec un "OU" : Les données du résultat sont celles qui satisfont un critère ou l'autre, ou les deux à la fois. On pourrait dire que dans ce cas, on cumule les deux ensembles d'enregistrements issus de chacun des critères. Avec un "ET" : Les données du résultat sont celles qui satisfont les deux critères. Cela correspond à retenir seulement les éléments communs des deux ensembles d'enregistrements issus de chacun des critères. SGBD Page 9 Prosit 1 SGBD CER SCHMITT Mathieu Page 10 Prosit 1 CER SCHMITT Mathieu Remarque : il existe une autre association logique, le "OU exclusif" qui prend en compte les enregistrements qui ne vérifient que l'un des deux critères. Le OU exclusif n'est pas utilisable dans le cadre du générateur de requête d'Access. Conseil : plus que jamais, il est essentiel pour mettre au point une requête, de procéder par étapes : introduire les critères un par un et tester à chaque fois pour valider l'évolution du résultat. Les principes du calcul sur des enregistrements Si on a besoin d'effectuer un calcul, c'est bien pour obtenir des informations dont on ne dispose pas directement dans les champs. Il va donc s'agir de créer une nouvelle colonne, qui contiendra l'information calculée. Pour créer dans une requête de nouvelles colonnes, on va définir celles-ci sur la ligne "Champ" de la requête ; on va saisir, dans une colonne vierge, une expression de calcul utilisant les champs disponibles dans la table. Quand le moteur de base de données va exécuter la requête, il va effectuer le calcul pour chaque enregistrement, et placer le résultat dans la nouvelle colonne. Expressions de calcul : opérateurs, délimiteurs et types de données On peut utiliser des expressions pour différentes sortes de calculs : Calculs numériques On peut utiliser les opérateurs numériques classiques : " + ", " - ", " * " (pour la multiplication), " / " (pour la division), " ^ " pour les puissances. Les parenthèses sont également utilisables (mais pas les crochets, réservés aux identificateurs de champs) pour hiérarchiser les calculs ; les multiplications et les divisions sont prioritaires sur les additions et les soustractions ( 3*4+5 donne 17 ; si on veut effectuer l'addition avant la multiplication, il faut mettre des parenthèses : 3 *(4+5) donnera 27). Traitement de chaînes de caractères La concaténation (mise bout à bout) de chaînes de caractères est obtenue en utilisant les opérateurs " + " ou " & " ; ce dernier possède un avantage : dans le cas où il est utilisé avec des numériques, il assure le changement de type (3+2 donne 5, alors que 3 & 2 donne 32). Il arrive souvent que l'on ait à concaténer 2 champs, d'adresse par exemple ; il faudra dans ce cas prendre la précaution de concaténer un espace entre les deux, sous peine de voir les données "collées" de manière disgracieuse. [ville] & [codepostal] donne "75007PARIS" Pour obtenir "75007 PARIS", il faut concaténer un espace intermédiaire : [ville] & " " & [codepostal] Comme dans la syntaxe ci-dessus, quand on veut concaténer une chaîne de caractères littérale à une expression, il faut délimiter ce littéral avec des guillemet doubles (") : "de " & [heuredebut] & " à " & [heurefin] donnera : "de 14:00 à 16:00" SGBD Page 11 Prosit 1 CER SCHMITT Mathieu Calculs sur des dates Dans Access, ont peut faire des calculs sur les dates et obtenir le résultat en jours. C’est ainsi que si l’on veut obtenir un âge à partir d’une date de naissance, on peut utiliser l’expression suivante : Age : (Date() - [dnaisstag])/365,25 La fonction " Date() " retourne la date système. (Date() – [dnaisstag]) renvoie donc le nombre de jours écoulés entre la date de naissance et la date système. Pour convertir en années, on divise ce nombre de jours par 365,25 (0,25 pour 1 année bissextile tous les 4 ans) Délimiteurs Dans de nombreuses expressions de calculs, on utilise des caractères qui jouent le rôle de délimiteurs. Vous êtes maintenant habitués à rencontrer les délimiteurs [ et ] que vous avez utilisé pour indiquer que la suite de caractères qu'ils contiennent est le nom d'un champ. D'autres délimiteurs sont couramment utilisés quand on veut utiliser, dans une expression, une valeur littérale, c'est à dire que la suite de caractères inclue à l'intérieur des délimiteurs doit être interprétée en tant que telle. Vous avez sans doute remarqué qu'Access ajoute automatiquement ces délimiteurs, par exemple quand vous formulez un critère dans une colonne de requête ; les délimiteurs à utiliser varient selon le type de donnée : les guillemets doubles servent à délimiter une chaine de caractères : Exemple : [CodePostal] & " - " & [ville] Ici la chaîne littérale est constituée d'un espace suivi d'un tiret puis d'un autre espace, qui sera "intercalée" entre la valeur du champ [codePostal] et celle du champ [Ville] Les dièses sont utilisés pourdélimiter une date Exemple : [DateEcheance] - #22/12/90# Ici, les dièses encadrent une valeur que le moteur considérera comme une date pour effectuer l'opération Les numériques n'ont pas besoin de délimiteurs Exemple : [Diametre] * 3.14 * 2 Ici, le calcul s'effectuera en prenant en compte les valeurs numériques 2 et 3.14 Mise en forme des résultats Les données issues d’une requête ne sont pas toujours mises en forme comme on le souhaiterait ; par exemple un calcul d’âge comme vu plus haut peut donner une valeur décimale avec plusieurs chiffres après la virgule, ce qui n’est ni lisible ni pertinent. Le rôle des requêtes n'est pas de présenter les données, mais de les obtenir. La mise en forme sera plutôt assurée par un formulaire pour les présenter à l'écran, ou un état pour les imprimer. SGBD Page 12 Prosit 1 CER SCHMITT Mathieu Nous verrons cependant, dans le chapitre suivant, que certaines fonctions intégrées d'Access permettent de formater les données issues d'une requête Critères sur des colonnes calculées Quand vous saisissez un critère sur une colonne calculée, il est important de penser au fait que le critère sera appliqué aux données calculées. Ainsi, si vous créez une colonne qui calcule l'âge à partir de la date de naissance, vous devrez exprimer votre critère sur l'âge (par ex. : > 30) et non plus sur la date de naissance ; si vous avez absolument besoin de formuler un critère sur la date de naissance, il faut la placer dans une colonne de la grille de requête (quitte à ne pas l'afficher) et formuler votre critère sur cette colonne. Les calculs sur les groupes Nous avons donc vu une première illustration de l'utilisation des regroupements dans une requête, simplement en faisant appraître la ligne "Opération". Nous allons voir maintenant quelles sont les opérations que l'on peut faire sur chaque groupe d'enregistrements de la table source. Plaçons-nous dans la cellule "Opération" du champ "VilleStag" ; on voit apparaître une petite flèche de liste, indiquant qu'on va pouvoir ici choisir une option parmi une liste limitative : SGBD Page 13 Prosit 1 CER SCHMITT Mathieu Les différentes opérations possibles sont les suivantes : Somme : applicable seulement à des champs numériques ; pour chaque groupe d'enregistrements, fait la somme des valeurs contenues dans le champ. Moyenne : concerne également seulement des champs numériques ; fait la moyenne de la valeur du champ pour le groupe d'enregistrements. Min : retourne la plus petite valeur contenue dans le champ, pour le groupe d'enregistrements. Max : idem, pour la plus grande valeur. Compte : compte les enregistrements du groupe pour lesquels la valeur du champ n'est pas nulle ; si on veut compter les enregistrements quelque soient les valeurs contenues dans leurs champs, il faut donc choisir pour le comptage un champ dont la valeur ne peut pas être nulle. EcartType : champs numériques seulement ; calcule l'écart type des valeurs contenues dans le champ pour le groupe d'enregistrements. Var (variance) : champs numériques seulement ; calcule la variance des valeurs contenues dans le champ pour le groupe d'enregistrements. Premier : retourne la valeur de ce champ dans le premier enregistrement du groupe. Dernier : idem pour le dernier enregistrement du groupe. Nous verrons ultérieurement le rôle des deux derniers opérateurs de la liste : "Où" et "Expression". SGBD Page 14 Prosit 1 CER SCHMITT Mathieu Etudier la structure d’une base de données. Quelques notions : Légende : - Un fichier de données est appelé "Table" - Chaque fiche portant des informations est appelé "Enregistrement" - Les cases qui contiennent les informations sont appelées "Champs" - Le modèle du formulaire, constitué par les cases, leurs légendes, leurs tailles est appelé "Structure" de la table Une Table est caractérisée par sa structure ; celle-ci définit la liste des champs, le nom de chacun d'eux, son type (un champ est destiné à recevoir un type de données comme, par exemple, du texte, ou une valeur numérique, ou une date...), sa taille... Chacun des enregistrements de la table peut ainsi contenir une valeur dans chaque champ. Voici une table sous Access : SGBD Page 15 Prosit 1 SGBD CER SCHMITT Mathieu Page 16 Prosit 1 CER SCHMITT Mathieu Etudier le modèle relationnel Qu'est-ce que le modèle relationnel ? Le modèle relationnel est basé sur une organisation des données sous forme de tables. La manipulation des données se fait selon le concept mathématique de relation de la théorie des ensembles, c'est-à-dire l'algèbre relationnelle. Elle est constituée d'un ensemble d'opérations formelles sur les relations. Les opérations relationnelles permettent de créer une nouvelle relation (table) à partir d'opérations élémentaires sur d'autres tables (par exemple l'union, l'intersection, ou encore la différence). La théorie des ensembles met en oeuvre deux notions : la notion de domaine la notion de produit cartésien La notion de domaine Un domaine est un ensemble fini ou infini de valeurs. On le représente par une liste d'éléments ou bien une condition nécessaire et suffisante d'appartenance : le domaine des booléens: {0,1} le domaine des doigts de la main: {pouce, index, majeur, annulaire, auriculaire} ... La notion de produit cartésien La manipulation des données (sélection de valeurs) se fait suivant la notion mathématique de produit cartésien. Le produit cartésien d'un ensemble de domaines Di, noté D1*D2*D3*...*Dn est l'ensemble des n-uplets (appelés aussi tuples) <V1,V2,...,Vn> tels que Vi appartient à Di SGBD Page 17 Prosit 1 CER SCHMITT Mathieu Modélisation relationnelle La modélisation relationnelle permet de représenter les relations à l'aide de tables (à deux dimensions) dont chaque colonne a un identificateur qui représente un domaine. Une ligne du tableau représente donc une entité et chacune des cases représente un de ses attributs. On appelle attributs le nom des colonnes qui représentent les constituants de l'entité. Un attribut (une colonne) est repéré par un nom et un domaine de définition, c'est-à-dire l'ensemble des valeurs qu'il peut prendre. On appelle tuple (ou n-uplet) une ligne du tableau. L'entité voiture pourra par exemple être représentée par : La marque Le modèle La série La plaque minéralogique La cardinalité d'une relation est le nombre de tuples qui la composent. Dans l'exemple ci-dessus la cardinalité est égale à 3. La clé principale d'une relation est l'attribut, ou l'ensemble d'attributs, permettant de désigner de façon unique un tuple. Dans l'exemple ci-dessus, le numéro de la plaque minéralogique est une clé principale dans la mesure où la seule connaissance de cet attribut permet de connaître la voiture. Une clé étrangère, par contre, est une clé (donc un attribut permettant d'identifier de façon unique un tuple) faisant référence à une clé appartenant à une autre table. La description d'une relation (d'une table) par ses attributs (nom et domaine) est appelée schéma d'une relation. On désigne par le terme schéma d'une base de données relationnelle l'ensemble des relations qui la composent. SGBD Page 18 Prosit 1 CER SCHMITT Mathieu La manipulation des éléments de la table se fait à l'aide d'opérations sur les ensembles. On définit deux types d'opérations de base : Les opérations unaires les opérations ensemblistes Opérations de base Une opération de base est définie par le fait qu'elle ne peut être réalisée par combinaison d'autres opérations. Il existe 5 opérations élémentaires pouvant être classées en deux catégories : Les opérations unaires: elles consistent à éliminer des lignes ou des colonnes de la table les opérations ensemblistes: elles consistent à effectuer un recoupement entre plusieurs tables Opérations unaires Projection L'opérateur projection consiste à créer une table à partir d'une autre en ne gardant que les colonnes spécifiées dans la projection. On note une projection : projX1,X2,...,XN(R) Où X1,X2, ..., XN représentent les colonnes que l'on garde Restriction (ou sélection) L'opérateur restriction consiste à créer une table à partir d'une autre en ne gardant que les lignes pour lesquelles une colonne vérifie certaines propriétés. On note une restriction : selectQ(R) Où Q représente la qualification, c'est-à-dire la condition à réaliser Opérations ensemblistes Union L'union de deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à l'une ou l'autre des tables (ou les deux). Les deux tables opérandes doivent être de même schéma, c'est-àdire que les attributs de la table (colonnes) doivent être les mêmes. On note l'union entre deux tables R1 et R2 : union(R1,R2) ou encore R1 U R2 SGBD Page 19 Prosit 1 CER SCHMITT Mathieu Différence La différence entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à une table mais pas à la seconde. Les deux tables opérandes doivent être de même schéma, c'est-àdire que les attributs de la table (colonnes) doivent être les mêmes. On note la différence entre deux tables R1 et R2 : minus(R1,R2) ou encore R1 - R2 Produit cartésien Le produit cartésien de deux tables est la table contenant la concaténation de l'ensemble des tuples d'une ligne d'une table à ceux de l'autre table, et ce pour chaque ligne. Les deux tables opérandes n'ont pas nécessairement le même schéma On note le produit cartésien de deux tables R1 et R2 : product(R1,R2) ou encore R1 * R2 Opérations dérivées A partir des opérations de base de nombreuses opérations très utiles peuvent être définies. En voici quelques unes : Intersection L'intersection entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant aux deux tables. Les deux tables opérandes doivent être de même schéma, c'est-à-dire que les attributs de la table (colonnes) doivent être les mêmes. On note l'intersection entre deux tables R1 et R2 : inter(R1,R2) ou encore R1 R2 Cet opérateur peut être décrit à l'aide d'opérateurs de base : R1 R2 = R1 - (R1 - R2) Quotient (ou division) Le quotient de deux tables est la table contenant l'ensemble des tuples (cellules) qui concaténés à chaque tuple de l'une des tables fournissent des tuples appartenant à l'autre On note le quotient de deux tables R1 et R2 : div(R1,R2) SGBD Page 20 Prosit 1 CER SCHMITT Mathieu ou encore R1/R2 θ-jointure On appelle θ-jointure selon une qualification Q l'ensemble des tuples provenant du produit cartésien de deux relations et satisfaisant la qualification, c'est-à-dire la condition exprimée à l'aide des comparateurs : ≥ ≤ > < = ≠ ¬ On note la θ-jointure de deux tables R1 et R2 : joinQ(R1,R2) ou encore (R1 Q)R2 On définit des types de jointure particulière selon la qualification Q : L'équi-jointure est une θ-jointure dont la qualification est une égalité entre deux colonnes La jointure naturelle est une équi-jointure sur des attributs de même nom associée à une projection. Elle se note R1 R2 Opérations calculatoires Les opérateurs de calcul ne sont pas des opérations dérivées dans la mesure où ils ne peuvent pas être exprimés à l'aide des opérateurs de base. Ils permettent néanmoins de faire des opérations très utiles (parfois nécessaires) que les autres opérateurs ne peuvent pas réaliser. SGBD Page 21 Prosit 1 CER SCHMITT Mathieu Opérateur Somme Cet opérateur permet de faire la somme cumulée des valeurs que l'attribut X prend pour une liste d'attributs appelés attributs de regroupement. Les valeurs de X doivent bien évidemment être numériques. Lorsqu'aucun attribut de regroupement n'est précisé, l'opérateur Somme renvoie la somme des valeurs de la colonne. On note cet opérateur : SommeX1,X2,...,Xn(R,X) ou avec la notation anglaise SumX1,X2,...,Xn(R,X) Opérateur de comptage Cet opérateur permet de compter le nombre de lignes pour lesquelles l'attribut fait partie d'une liste d'attributs appelés attributs de regroupement. Lorsqu'aucun attribut de regroupement n'est précisé l'opérateur compte le nombre de tuples de la colonne. On note cet opérateur : CompteX1,X2,...,Xn(R,X) ou avec la notation anglaise CountX1,X2,...,Xn(R,X) Réponses aux hypothèses : Faux. Les données sont stockées dans une SGBD. Vrai. Access est un type SGBD. Faux. Merise est le précurseur de la BD. Vrai. .mdb est l’extension des fichiers access. Vrai. Une BD est découpé en table. Vrai. Les tables sont liées entre elles avec des cardinalités. Vrai. On utilisera des requêtes pour obtenir les données. Vrai. Access permet de créer une base données BD. Faux. Les données sont stockées sous forme de tableau. SGBD Page 22