Bases de Données MySQL Bachelor 1 Denis SIVORI
Objectif Acquérir en 3 sessions de cours, les notions de base et les applications pratiques de MySQL 2
Détail de l objectif Il demandé d avoir acquis à la fin du module, les connaissances nécessaires à l utilisation d une base de données par un non-spécialiste : Terminologie et vocabulaire, Compréhension des mécanismes d une base de données, Modélisation d une base de donnée, Spécificité de MySQL, Utilisation d une interface graphique, Création d une base de données avec différentes méthodes, Manipulation des données : insertion, mise-à-jour, suppression, interrogation de données. 3
Agenda Cours : 17 octobre 2017 26 octobre 2017 16 novembre 2017 Soutenance du projet : 15 février 2018. 4
Introduction Contexte Types d utilisation Fonctionnalités Types de bases de données Bases de données relationnelles Systèmes de gestion de bases de données Niveaux d abstraction Langage SQL 5
Contexte Les données sont omniprésentes autour de nous. Dans la vie de tous les jours : Relevés bancaires, horaires de trains, Facebook, Gmail, wikipédia, allocine, Dans l entreprise : Clients, produits, commandes, factures, RH, Différence entre donnée et information. Donnée : information formatée/codée La donnée : Enjeu économique des entreprises. 6
Utilisation des bases de données Site internet dynamiques, Base de données d entreprise, Logiciels métier, Applications mobiles, Les bases de données sont partout. 7
Fonctionnalités d une base de données Convertir l information en données Structurer les données Contrôler la redondance des données Représenter des relations complexes entre les données Vérifier les contraintes d'intégrité Maintenir les données à jour Sécuriser l accès aux données Partager les données Assurer l indépendance des données Exploiter de gros volumes de données 8
Types de bases de données Base de données (en : database) : Collection de données structurées, accessibles, sécurisées et mémorisées sur un seul support permanent. Il existe plusieurs type de base de données : hiérarchiques (1960), en réseau (1970), relationnelles (1980), multidimensionnelles (en étoile Business intelligence), objet-relationnelles (stockage d objets), XML Ce cours traitera des bases de données relationnelles. 9
Base de données relationnelle Une base de données relationnelle est un ensemble structuré de données comprenant des relations dynamiques entre les différents objets contenus dans les tables. Dans une base de données relationnelle, un produit peut, par exemple, être liée à des fournisseurs et des acheteurs. 10
Système de gestion de bases de données Un Système de Gestion de Bases de Données (SGBD) est un outil (logiciel) qui permet de créer, utiliser et maintenir une base de données (BdD) : Organisation des données, Gestion des données, Accès aux données. SGBD 11
Exemples de SGBD Il existe de nombreux Systèmes de Gestion de Bases de Données. Systèmes propriétaires (licence) : Oracle, Microsoft SQL Server, DB2, Access, Systèmes Open Source : MySQL, PostgreSQL, SQLite, MariaDB 12
SQL L exploitation d une base de données relationnelle se fait à l aide d un langage informatique normalisé, le SQL. SQL : Structured Query Language, en français : langage de requêtes structuré Il est utiliser pour : la définition de données (DDL,Data Definition Language) : créer, modifier ou supprimer des tables la manipulation de données (DML, Data Manipulation Language) : de sélectionner, insérer, modifier ou supprimer des données dans une table le contrôle de données (DCL, Data Control Language) : de définir des permissions au niveau des utilisateurs d'une base de données Les systèmes de gestion de bases de données utilisent des IHM interfaces homme/machine 13
Niveaux d abstraction On distingue plusieurs niveaux de représentation ou d abstraction des bases de données : niveau conceptuel Appelé aussi modèle Entité-Relation, le MCD (modèle conceptuel des données) permet de représenter la structure des données et de définir les dépendances ou relations entre les données. niveau logique Dérivé du MCD, le MLD (modèle logique des données) définit la structure de données et précise le type de données utilisées. niveau physique Le MPD (modèle physique des données) implémente le modèle de données dans le SGBD en utilisant le langage SQL. 14
Démarche de construction d une BdB MCD Modèle conceptuel de données MLD Modèle logique de données MPD Modèle physique de données 15
Ce qu il faut retenir Information vs donnée La donnée = enjeu Un BdD pour structurer, stocker et sécuriser les données BdD relationnelle = ensemble structuré ou les objets ont des relations dynamiques entre eux SGBD exploite les BdD : organisation, gestion et accès aux données Le langage SQL : définition (LDD), manipulation (LMD) et contrôle (LCD) des données Modèle conceptuel Modèle logique Modèle physique 16
Modélisation conceptuelle Règles d or Concepts de base Entité, attribut, identifiant Association Cardinalité Types d association Entité faible, forte Exercice 17
Introduction Le modèle relationnel, aussi appelé le modèle Entité/Association (E/A) ou Entité/Relation est utilisé pour la conception de bases de données relationnelles. Le modèle conceptuel de données (MCD) est la représentation des relations entre les entités. Client Achète Article 18
Modélisation : règles d or Il n'existe pas de modèle de données idéal Plusieurs moyens pour répondre à un besoin Le modèle doit correspondre à un besoin précis Toute redondance est interdite Les données doivent être uniques et stockées une seule fois Un modèle de données doit être évolutif mais aussi suffisant pour le besoin 19
MCD : Concepts de base Les concepts de base du modèle conceptuel de données sont : Entité Attribut Identifiant Association Cardinalité Définition: Une occurrence est un élément particulier d une entité ou d une association. Ex : le client "Jean Dupont" est une occurrence de l entité client. La conception d un MCD est essentielle : la structure des données est le fondement de tout, une erreur à la conception est difficilement récupérable ensuite. 20
Entité, attribut, identifiant Une entité peut être définie comme un objet concret ou abstrait du monde réel à modéliser Ex : client, produit, article, Un attribut est une propriété distinctive d une entité ou d une association. Ex : le nom d un client est un attribut de l entité client. Un identifiant est une propriété ou groupe de propriétés qui sert à identifier une entité Ex : le numéro client permet d identifier de manière unique un client. 21
Entité : représentation Personne Numéro de sécurité Civilité Nom Prénom Date de naissance Entité identifiant attribut 22
Association Une association peut être définie comme un lien reconnu ou possible entre les entités Une association peut avoir des attributs. Ex : l'association "achète" lie les entités "clients" et "articles". Convention : une entité est représentée par un nom une association est représenter par un verbe un identifiant est souligné Client Référence Nom Achète 23 Article Code article Prix
Association : cardinalité La cardinalité d une association est constituée d une borne minimale et d une borne maximale Minimale : nombre minimum de fois qu une occurrence de l entité participe aux occurrences de l association, 0 (optionnel) ou 1 (obligatoire) Maximale : nombre maximum de fois qu une occurrence de l entité participe aux occurrences de l association, 1 (unique) ou n (multiple) Client Achète Article 0,3 1,1 La cardinalité 0,3 indique qu un client peut être associé à 0, 1, 2, 3 articles. Il peut acheter 3 articles maximum 24 La cardinalité 1,1 indique qu un article ne peut être acheté que par un seul client.
Les types d associations Association "1 1" A une occurrence de l'entité E1 peut correspondre au plus une occurrence de l'entité E2, et vice versa. Enfant Identifiant Prénom (1,1) (1,1) possède mère Identifiant Prénom Un enfant a une et seule seule maman. 25
Les types d associations Association "1 - n" (un à plusieurs) : A une occurrence de l'entité E1 peuvent correspondre plusieurs occurrences de l'entité E2, mais à une occurrence de l'entité E2 peut correspondre au plus une occurrence de l'entité E1. Mère Identifiant Prénom (1,n) (1,1) possède Une mère a 1 ou plusieurs enfants Enfant Identifiant Prénom femme Identifiant Prénom (0,n) (1,1) possède Une femme peut avoir 1 ou plusieurs enfants 26 Enfant Identifiant Prénom
Les types d associations Association "n - n" (plusieurs à plusieurs) : A une occurrence de l'entité E1 peuvent correspondre plusieurs occurrences de l'entité E2, et vice versa. Client Identifiant Nom (1,n) commande (1,n) Produit Identifiant Prix Plusieurs clients peuvent commander plusieurs produits 27
Entité faible, entité forte Une entité faible est toujours identifiée par rapport à une entité forte. Exemple : Une maison comporte plusieurs pièces. Une pièce est une partie de la maison. Pas de pièce sans maison. Maison comporte Pièce 28
Exercice Pour organiser son catalogue de CD et le présenter sur son site internet, un magasin de disque veut créer une base de données qui lui permettra d enregistrer le contenu de tous les CD qu il propose à la vente. Le commerçant veut pouvoir éditer la liste de tous les artistes, tous les titres (chansons) et le sommaire de chaque CD. Réalisez le modèle conceptuel de données nécessaire à la création de la base de données. 29
Solution CD Référence CD Titre_CD (1,n) Contient (0,n) Chanson Identifiant chanson Titre_chanson (0,1) Chante (0,n) Artiste Identifiant artiste Nom_artiste 30
Ce qu il faut retenir Définition du modèle Entité/Association ou Entité/Relation Le MCD est essentiel Les règles d or Définition et terminologie des éléments du MCD (entité, attribut, identifiant, associations, cardinalité, ) Les différents types d associations Savoir établir un MCD 31
Modélisation logique Traduction des entités Traductions des relations un à un un à plusieurs plusieurs à plusieurs 32
Le modèle logique de données MCD Modèle conceptuel de données MLD Modèle logique de données Le modèle logique de données est la déclinaison du modèle conceptuel de données. 33
Traduction de l entité Chaque entité du MCD devient une table, Chaque identifiant devient une clé, Chaque attribut devient un champ typé (texte, date, nombre, ) MCD Maison identifiant maison adresse MLD id_maison adresse MAISON [int] [txt] table clé champ 34
Traduction de la relation Association de un à un Ce type d'association est est proscrire. Une association de un à un entre une entité A et une entité B revient à décrire une entité qui aurait les propriétés des entités A et B. M C D Personne Id_personne (1,1) (1,1) possède N SECU Id_num_SECU M L D PERSONNE id_personne Numéro_SECU [int] [txt] table clé champ 35
Traduction de la relation Association de un à plusieurs Une occurrence de l'entité A (maison) référence l occurrence de B (pièce) qui lui est associée à l aide d une clé étrangère. Cette référence se fait de manière unique et suffisante à l aide de l identifiant. M C D Maison id_maison adresse (1,n) (1,1) comporte Pièce id_piece surface M L D id_maison adresse MAISON [int] [txt] table clé champ PIECE id_piece FKid_maison surface [int] [int] [int] clé étrangère 36
Traduction de la relation associations de plusieurs à plusieurs Une table de liaison est utilisée pour lier les entités A et B. Un identifiant est nécessaire pour identifier la liaison qui comporte comme attributs les identifiants des entités liées. M C D personne identifiant nom (1,n) habite (1,n) adresse identifiant rue M L D PERSONNE id_personne nom [int] [txt] habite id [int] FKid_adresse [int] FKid_personne [int] id_adresse rue ADRESSE [int] [txt] 37
Exercice Réalisez le modèle logique de données de l exercice précédent. CD Référence CD Titre_CD (1,n) Contient (0,n) Chanson Identifiant chanson Titre_chanson (0,1) Chante (0,n) 38 Artiste Identifiant artiste Nom_artiste
Solution MLD : id_cd titre_cd CD [Int] [txt] CONTIENT FKid_cd FKid_chanson [Int] [Int] CHANSON id_chanson [Int] titre_chanson [txt] FKid_artiste [Int] duree [int] ARTISTE id_artiste nom _artiste [Int] [txt] 39
Ce qu il faut retenir Comment traduire les entités d un MCD dans un MLD Comment traduire les associations d un MCD dans un MLD : Association "1 à 1" à proscrire Association "1 à plusieurs" Association "plusieurs à plusieurs" Savoir établir un MLD 40