Ecole Industrielle et Commerciale de la ville de Namur Structure et application des bases de données 2è graduat en informatique et systèmes * technologie de l’information 2008 – 2009 Y. Mine Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine Table des matières Chapitre 1 Les bases de données relationnelles 1.1 Introduction 1.2 Pourquoi une base de données 1.3 Différentes formes 1.4 Le stockage des données (les tables) 1.5 L’algèbre relationnel 1.6 Le SGBD 1.7 Le matériel 1.8 Les différents modèles de bases de données 1.9 Les identificateurs 1.10 Notions de clé primaire Chapitre 2 Le modèle entité/associations 2.1 Les entités et leurs attributs 2.2 Les associations 2.3 Les cardinalités 2.4 Traduction en mode relationnel 2.5 Création d’une base de données Chapitre 3 Présentation de l’interface 3.1 Les index 3.2 L’onglet « Afficher » 3.3 Les onglets « SQL » et « Rechercher » 3.4 L’onglet « Insérer » 3.5 L’onglet « Exporter » 3.6 L’onglet « Opérations » Chapitre 4 Création de la base 4.1 Création d’une table 4.2 Les types d’attributs 4.2.1 Les entiers 4.2.2 Les flottants 4.2.3 Les chaînes 4.2.4 Date et heure 4.3 Propriétés des champs 4.3.1 Un champ d’un enregistrement 4.4 Saisir les données 2 Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine Chapitre 5 Les index 5.1 Avantages 5.2 Inconvénients 5.3 L’index sur plusieurs champs 5.4 L’indexation d’un champ Chapitre 6 Les formulaires 6.1 Interagir avec une base de données 6.2 Création d’un formulaire simple 6.3 Composition et ergonomie des formulaires 6.3.1 Choix et spécification des éléments 6.3.2 Présentation générale 6.3.3 Groupement et ordonnancement des champs 6.3.4 Champs obligatoires / champs optionnels 6.3.5 Rapidité d’exécution 6.3.6 Protection contre les erreurs Chapitre 7 Le langage MySQL et ses fonctions 7.1 Introduction à SQL 7.2 MySQL 7.3 Les fonctions MySQL 7.3.1 Data retrieval 7.3.2 Data manipulation language 7.3.3 Les opérations ensemblistes 7.3.4 Les états 7.3.5 Gestion automatisée par des macros 7.3.6 Data definition language 7.3.7 Introduire des données via un fichier texte 7.3.8 Audit des bases : explain 7.3.9 Les procédures stockées 7.3.10 Les vues Exercices 3 Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine Chapitre 1 : Les bases de données relationnelles 1.1 Introduction Une base de données (bd) est un système d'organisation de l'information, conçu pour une localisation et une mise à jour rapide et facile des données. Une bd organise l'information qu'elle contient en tables, en champs (les colonnes) et en enregistrements (les lignes). Chaque enregistrement correspond à un item stocké dans la base de données. Réduire le plus possible la saisie d'informations redondantes est l'un des gros problèmes auquel se sont heurtés les gestionnaires de données. En pratique, on manipule souvent des données ayant la même structure (ex. : liste des membres du personnel : pour chaque personne, on enregistre le nom, le prénom, le sexe, la date de naissance, l'adresse, la fonction dans l'entreprise, etc.) Toutes ces données ont la même structure et peuvent être facilement gérées par des moyens informatiques. Dans le même ordre d'idée, l'encodage d'un achat doit automatiquement afficher dans le masque de saisie toutes les coordonnées du fournisseur dès que l'on a encodé son nom ou son identifiant unique. une base de données est un ensemble structuré de données, géré à l'aide de l'informatique • Une collection de données qui supporte les définitions de – données de la base • Structure intégrée • Lien sémantiques • Contraintes d’intégrité • Contraintes de sécurité – vues de la base • Une collection de données qui supporte les manipulations de – recherche de données • Interactive • Logiquement et physiquement performante – insertion, Mise à jour, Suppression de données • Cohérente • Partagée • Fiable En outre, il y a aussi les notions de : • exhaustivité : la base contient toutes les informations requises • unicité : la même information n'est présente qu'une seule fois Exemples d'utilisation : les fournisseurs les clients les contacts les commandes les factures les produits et services 4 Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine le stock le personnel les salaires et les charges correspondantes le commerce électronique, etc. 1.2 Pourquoi une base de données ? • Intégration de données – Moins de duplications • Partage de données • Fiabilité de données – Transactions, reprises sur pannes, tolérance de pannes • Sécurité de données • Langages de requêtes – SQL, QBE • Interfaces conviviales – Web 1.3 Différentes formes : • BDs personnelles – MsAccess etc. – 10 KO – 100 KO • BDs professionnelles typiques – 100 KO – 100 GO • BDs professionnelles très grandes – Very Large Databases (VLDB) > 100 GO 1.4 Le stockage des données (les tables) Dans une base de données, le stockage se fait de manière organisée. On distingue plusieurs éléments constitutifs. Il y a tout d'abord des tables. Elles portent un nom qui généralement correspondra aux informations contenues. Pour un carnet de contacts, on aura une table appelée Contacts qui contiendra toutes les personnes que l'on connaît. Une table contient des enregistrements. En voyant la table comme un tableau, un enregistrement correspond à une ligne. On pourra dire dans notre exemple, que les différentes personnes constituent les enregistrements de la table Contacts. Un enregistrement est fait de plusieurs champs. Ces derniers correspondent aux informations contenues. Ce sont les enregistrements qui contiennent effectivement des données. Ils correspondront aux colonnes du tableau. Un champ est de plus défini par un type selon les données qui pourront y être enregistrées. Celui-ci indiquera par exemple que le contenu du champ pourra être de un ou plusieurs caractères, un ou plusieurs chiffres, une date, ... Des données ayant une même structure peuvent être rangées dans un même tableau. Dans le cas ci-dessous, la première colonne (appelée aussi attribut) contiendra les noms, la seconde les prénoms, la troisième le sexe, la quatrième la date de naissance, etc. La caractéristique 5 Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine d'un tel tableau est que toutes les données d'une même colonne sont du même type. Dans une base de données, un tel tableau s'appelle une table. Cette table, nommée "personnes" aura pour attributs (colonnes) : nom, prénom, sexe, adresse, ville et code postal. Les lignes que contiendra cette table seront appelées enregistrements ou tuples. Nom Prénom Sexe Adresse Ville Code postal Durand Pierre M 16, rue de Fer Namur 5000 Chose Stéphanie F 3, Bld d'Avroy Liège 4000 Trombe Jean M 3, rue Neuve Bruxelles 1000 … Dans une table, les termes ligne et enregistrement sont synonymes. Il en est de même pour les termes colonnes et champs.(row) et (column). 1.5 L'algèbre relationnel L’algèbre relationnel regroupe toutes les opérations possibles sur les relations. Projection : on ne sélectionne qu’un ou plusieurs attributs d’une relation (on ignore les autres). Par exemple n’afficher que les colonnes nom et prénom de la table Personnes. Personnes nnoomm pprréénnoomm aaddrreessssee ttéélléépphhoonnee MMaarrttiinn PPiieerrrree 77 aallllééee ddeess vveerrss 00225588994411223366 DDuuppoonndd JJeeaann 3322 aallllééPPooiivvrroott 00552266338899115522 DDuuppoonndd MMaarrcc 88 rruuee ddee ll’’oocctteett 00112233445566778899 SELECT nom, prénom FROM Personnes nnoomm pprréénnoomm MMaarrttiinn PPiieerrrree DDuuppoonndd JJeeaann DDuuppoonndd MMaarrcc Jointure : on fabrique une nouvelle relation à partir de 2 ou plusieurs autres en prenant comme pivot 1 ou plusieurs attributs. Par exemple, on concatène la table du carnet d’adresse et celle des inscrits à la bibliothèque en fonction du nom de famille (c’est typiquement du recoupement de fichiers). 6 Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine Personnes Bibliothèque nnoomm pprréénnoomm aaddrreessssee ttéélléépphhoonnee nnoomm DDeerrnniieerrlliivvrree MMaarrttiinn PPiieerrrree 77 aallllééee ddeess vveerrss 00225588994411223366 DDuuppoonndd RRoobbiinnssoonn DDuuppoonndd JJeeaann 3322 aallllééPPooiivvrroott 00552266338899115522 JJoossppiinn FFaauusstt MMaarrttiinn MMiissèèrree On joint les deux tables, grâce à la colonne nom. SELECT Personnes.prénom, dernierlivre Et on combine cette jointure à FROM Personnes, Bibliothèque une projection sur les attributs WHERE Personnes.nom= Bibliothèque.nom nomet dernierlivre. Attention àlever toute ambi- guïtésur les noms d’attribut pprréénnoomm DDeerrnniieerrlliivvrree dans le cas oùdeux tables possèdent des colonnes de JJeeaann RRoobbiinnssoonn même nom. PPiieerrrree MMiissèèrree Sélection : on sélectionne tous les tuples ou bien seulement une partie en fonction de critères de sélection qui portent sur les valeurs des attributs. Par exemple n’afficher que les lignes de la table Personnes qui vérifient la condition suivante : le nom ne commence pas par la lettre ‘C’. Personnes nnoomm pprréénnoomm aaddrreessssee ttéélléépphhoonnee MMaarrttiinn PPiieerrrree 77 aallllééee ddeess vveerrss 00225588994411223366 DDuuppoonndd JJeeaann 3322 aallllééPPooiivvrroott 00552266338899115522 DDuuppoonndd MMaarrcc 88 rruuee ddee ll’’oocctteett 00112233445566778899 On ne sélectionne que les tuples dont l’attribut nom SELECT * est égale à ‘Dupond’. FROM Personnes WHERE nom= ‘’Dupond’’ nnoomm pprréénnoomm aaddrreessssee ttéélléépphhoonnee DDuuppoonndd JJeeaann 3322 aallllééPPooiivvrroott 00552266338899115522 DDuuppoonndd MMaarrcc 88 rruuee ddee ll’’oocctteett 00112233445566778899 Cette algèbre est facilement possible avec les commandes de MySQL (SELECT… FROM… WHERE…). 1.6 Le logiciel (SGBD) • Système de Gestion de Base de Données (SGBD) – Système logiciel gérant une BD • Peut avoir des composants matériels – Mono ou multiposte 7 Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine – En général, peut gérer plusieurs BDs – Peut aussi accéder aux BDs d’autres SGBDs Le logiciel qui gère une base de données s'appelle un système de gestion de base de données. (SGBD - DBMS pour Data Base Management System). Tous les SGBD présentent à peu près les mêmes fonctionnalités. Ils se distinguent par leur coût, par le volume de données qu'ils sont capables de gérer, par le nombre d'utilisateurs qui peuvent interroger la base simultanément, par la facilité avec laquelle ils s'interfacent avec d'autres logiciels, etc. Une BDD peut servir à une seule personne, ou être à la disposition de dizaines de milliers d'agents (systèmes de réservation des billets d'avion). Un SGBD est principalement constitué d'un moteur et d'une interface graphique. Le moteur assure les fonctions essentielles : saisir les données, les stocker, les manipuler, etc. L'interface graphique permet à l'utilisateur de communiquer avec le logiciel. Pour dialoguer avec les SGBD qui ne sont pas équipés d'une interface graphique, il faut utiliser le langage SQL (Structured Query Language), et introduire les instructions à l'aide d'un éditeur de lignes. Langage normalisé de manipulation des bases de données, SQL est utilisable avec pratiquement tous les SGBD du marché. Cependant, chaque éditeur ayant développé son propre "dialecte" il faut pouvoir disposer d'un "dictionnaire" pour transporter une BDD d'un SGBD à l'autre. Ce "dictionnaire" a été développé par Microsoft sous le nom ODBC (Open Data Base Connectivity). 1.7 Le matériel (serveur de BDD) Dépend du volume des données stockées dans la base et du nombre maximum d'utilisateurs simultanés. Lorsque le nombre d'enregistrements par table n'excède pas le million, et que le nombre d'utilisateurs varie de une à quelques personnes, un pc actuel de bonnes performances, un logiciel système pour poste de travail, et un SGBD "bureautique" suffisent. Exemple : Microsoft Access 2002, installé sur un PC récent, doté de 1 Go de mémoire vive et fonctionnant sous Windows XP. Si ces chiffres sont dépassés, il faut utiliser un serveur de BDD, dont les accès aux disques sont nettement plus rapides. Le système client doit être remplacé par un système serveur (multi-utilisateurs), et le SGBD bureautique par un SGBD prévu pour les grosses BDD multi- clients. 1.8 Les différents modèles de bases de données Les bases de données du modèle "relationnel"* sont les plus répandues, car elles conviennent bien à la majorité des besoins des entreprises. Le SGBD qui gère une BDD relationnelle est appelé "SGBD relationnel" (SGBDR). * Base de données qui contient des tables et autres sujets, et dont l'information est organisée par différentes relations entre tables. 8 Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine D'autres modèles de bases de données ont été proposés : hiérarchique, en réseau, orienté objet, relationnel objet. Aucun d'entre eux n'a pu détrôner le modèle relationnel (sauf le relationnel objet - Oracle). Malgré sa généralité, le modèle relationnel ne convient pas à toutes les BDD rencontrées en pratique. Il existe donc des SGBD spécialisés. Les deux exemples les plus connus concernent la gestion des BDD bibliographiques (ou documentaires), et celle des BDD géographiques gérées à l'aide d'un SIG (Système d'Information Géographique). 1.9 Les identificateurs Les noms des bases, relations, attributs, index et alias sont constitués de caractères alphanumériques et des caractères _ et $. Un nom comporte au maximum 64 caractères Comme les bases de données et les relations sont codées directement dans le système de fichiers, la sensibilité à la casse de MySQL dépend de celle du système d’exploitation sur lequel il repose. Sous Windows, la casse n’a pas d’importance ; alors que sous Unix, elle en a. Le point . est un caractère réservé utilisé comme séparateur entre le nom d’une base et celui d’une relation, entre le nom d’une relation et celui d’un attribut. Exemple : SELECT base1.table25.attribut5 FROM base1.table25 1.10 Notions de clé primaire L’option PRIMARY KEY qui regroupe les contraintes NOT NULL (ne peut pas être vide) et UNIQUE (pas de doublon) va permettre d'identifier tous les enregistrements d'une table. nnoomm pprréénnoomm DDuuppoonndd MMaarrcc enregistrement interdit car le DDuuppoonntt PPiieerrrree couple (‘Martin’, ‘Marc’) est un doublon du couple (nom,‘prénom’) MMaarrttiinn MMaarrcc MMaarrttiinn PPiieerrrree MMaarrttiinn MMaarrcc 9 Structure et application des bases de données 2è graduat en informatique et systèmes - 2008 - 2009 - Y. Mine Chapitre 2 : Le modèle entité / associations Le modèle Entité – Association – Cardinalité Ce modèle compte 4 concepts principaux : entité, attribut, association et cardinalité. • Entité = classe générique d'individus ou d'objets ayant les mêmes caractéristiques. Ex: les entités "clients", "livres" ou "fournisseurs", dans une base de données de librairie. • Association = classe générique de liens reconnus ou possibles entre individus ou objets. Ex: l'association "achète" lie les clients et les livres d'une librairie. • Attribut = propriété distinctive d'une entité ou d'une association. Ex: le nom d'un client est un attribut de l'entité "clients". • Cardinalité = caractérisation de l'implication de l'association (p.ex. l'expression (1,N), où 1 représente le minimum et N le maximum d'occurrences dans l'association), qui permet de dénombrer les éléments de l'entité d'arrivée en relation avec un élément de l'entité de départ Exemple d'entité : une base de livres qui sont caractérisés par un titre, un auteur principal, un ISBN, un éditeur, une année de parution et un nombre de pages. Ces différents éléments, (qui sont les attributs de l'entité) sont communs à tous les livres. Pour chaque livre, leur contenu est unique et ne changera pas. 2.1 Les entités et leurs attributs Les entités seront représentées de la manière suivante : Voici un système composé de 3 entités, chacune possède ses propres attributs 10
Description: