Bases de Données - Ionis-STM
Transcript of Bases de Données - Ionis-STM
Bases de Données
MySQL – Bachelor
Denis SIVORI1
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 201726 octobre 201716 novembre 2017
Soutenance du projet :15 février 2018.
4
IntroductionContexte
Types d’utilisationFonctionnalités
Types de bases de donnéesBases de données relationnelles
Systèmes de gestion de bases de donnéesNiveaux d’abstraction
Langage SQL
5
Contexte
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
Les données sont omniprésentes autour de nous.
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.
11
SGBD
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 logiqueDé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 physiqueLe 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 conceptuelleRègles d’or
Concepts de baseEntité, attribut, identifiant
AssociationCardinalité
Types d’associationEntité 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.
18
Client ArticleAchète
Modélisation : règles d’or
◉ Il n'existe pas de modèle de données idéalPlusieurs moyens pour répondre à un besoin
◉ Le modèle doit correspondre à un besoin précis
◉ Toute redondance est interditeLes 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é
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
Définition:Uneoccurrence estunélémentparticulierd’uneentitéoud’uneassociation.Ex:leclient "JeanDupont"estuneoccurrencedel’entitéclient.
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
22
PersonneNuméro de sécuritéCivilitéNomPrénomDate de naissance…
Entité
identifiant
attribut
Association
Une association peut être définie comme un lien reconnu ou possible entre les entitésUne 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é
23
ClientRéférenceNom…
AchèteArticle
Code articlePrix…
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)
24
Client Achète Article0,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
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.
Un enfant a une et seule seule maman.
25
EnfantIdentifiantPrénom…
possèdemère
IdentifiantPrénom…
(1,1) (1,1)
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.
26
Unefemmepeutavoir1ouplusieursenfants
Unemèrea1ouplusieursenfants
EnfantIdentifiantPrénom
possèdeMère
IdentifiantPrénom
(1,n) (1,1)
EnfantIdentifiantPrénom
possèdefemme
IdentifiantPrénom
(0,n) (1,1)
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.
27
Plusieursclientspeuventcommanderplusieursproduits
ProduitIdentifiantPrix
commandeClient
IdentifiantNom…
(1,n) (1,n)
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.
28
Maison comporte Pièce
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
30
CDRéférence CDTitre_CD
ChansonIdentifiant chansonTitre_chanson
ArtisteIdentifiant artisteNom_artiste
Contient
Chante
(1,n) (0,n)
(0,1)
(0,n)
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 logiqueTraduction des entités
Traductions des relationsun à un ¤
un à plusieurs ¤plusieurs à plusieurs ¤
32
Le 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
MCD ••Modèle conceptuel de données
MLD ••Modèle logique de données
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 MLD
34
Maisonidentifiantmaisonadresse
MAISONid_maison [int]adresse [txt]
champ
clé
table
Traduction de la relation
Association de un à unCe 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.
35
M
CD
PersonneId_personne…
possèdeN°SECU
Id_num_SECU…
(1,1) (1,1)
M
LD
PERSONNEid_personne [int]Numéro_SECU [txt]
champ
clé
table
Traduction de la relation
Association de un à plusieursUne 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.
36
M
CD
Maisonid_maisonadresse
comportePièce
id_piecesurface
(1,n) (1,1)
M
LD
MAISONid_maison [int]adresse [txt]
PIECEid_piece [int]FKid_maison [int]surface [int]champ
clécléétrangère
table
Traduction de la relation
associations de plusieurs à plusieursUne 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.
37
M
CD
adresseidentifiantrue
habitepersonne
identifiantnom
(1,n) (1,n)
M
LD
PERSONNEid_personne [int]nom [txt]
ADRESSEid_adresse [int]rue [txt]
habiteid [int]FKid_adresse [int]FKid_personne [int]
Exercice
Réalisez le modèle logique de données de l’exercice précédent.
38
CDRéférence CDTitre_CD
ChansonIdentifiant chansonTitre_chanson
ArtisteIdentifiant artisteNom_artiste
Contient
Chante
(1,n) (0,n)
(0,1)
(0,n)
Solution
◉ MLD :
39
CDid_cd [Int]titre_cd [txt]
CHANSONid_chanson [Int]titre_chanson [txt]FKid_artiste [Int]duree [int]
ARTISTEid_artiste [Int]nom _artiste [txt]
CONTIENTFKid_cd [Int]FKid_chanson [Int]
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