View
5
Download
0
Category
Preview:
Citation preview
Introduction aux bases de donnéesPartie 1 : Conception d’une base de données
Francesca Fiorenzi
2020–2021
1 sur 131– Partie 1
Introduction aux bases de données
INTRODUCTION GENERALE
2 sur 131– Partie 1
Gestion de donnéesUne des fonctions de l’informatique dans une organisation est destocker et gérer les données nécessaires à son bonfonctionnementExemple (ParcourSup)
Données à gérer par le Ministère de l’EducationNationale (2020) :• 857 000 candidats identité, coordonnées,scolarité, bulletins...• 15 500 formations établissement, descriptif,nombre de places...• 8 657 000 vœux confirmés candidat,formation, ordre de préférence...
I Nécessité de bien organiser les données !3 sur 131– Partie 1
Problème de cohérence des donnéesExemple : ParcourSup
Extrait de la liste des formationsEtablissement Diplôme Spécialité VilleIUT Orsay – Paris Saclay DUT Informatique OrsayIUT Orsay / Paris-Saclay DUT MP OrsayIUT Orsay DUT Chimie OrsayIUT Vélizy DUT – Production Info VélizyIUT Montreuil DUT Informatique MontreuilIUT Créteil – Vitry DUT Informatique CréteilIUT Créteil – UPEC DUT – Production Chimie CréteilIUT Saint-Denis DUT – Production Informatique Saint-DenisIUT Saint-Denis – Paris 13 DUT Mesures Physiques Saint-Denis
4 sur 131– Partie 1
Problème de cohérence des donnéesExemple (ParcourSup)Recherche d’informations sur les formations1. Donner la liste des établissements formant au “DUT” spécialité “Informatique”.
Réponse : IUT Orsay – Paris Saclay, IUT Montreuil, IUT Créteil-VitryNon trouvé : IUT Vélizy, IUT Saint-Denis
2. Donner la liste des formations proposées par l’établissement “IUT Orsay”.Réponse : DUT ChimieNon trouvé : DUT Informatique, DUT MP
Cause de ces problèmes : Redondance dans la gestion desinformations. La même information est stockée plusieurs fois,sous des formes différentes, dans le tableau.
5 sur 131– Partie 1
Problème de cohérence des donnéesExemple (ParcourSup)Une solution possible consiste en une réorganisation des donnéesen 3 tables :ETABLISSEMENTNumEtabliss NomEtablissement VilleEtabliss1 IUT Orsay Orsay2 IUT Vélizy Vélizy3 IUT Montreuil Montreuil4 IUT Créteil-Vitry Créteil5 IUT Saint-Denis Saint-DenisDIPLOMENumDip NomDiplome Spécialité1 DUT – Production Informatique2 DUT – Production Chimie3 DUT – Production Mesures Physiques
FORMATIONNumEtabliss NumDip1 11 31 22 13 14 14 25 15 3
6 sur 131– Partie 1
Base de données• Base de données : une définitionUn ensemble structuré/organisé de données permettant destocker un grand nombre d’informations afin d’en faciliterl’utilisation• Objectifs
– Retrouver rapidement une information– Assurer la justesse et la cohérence des informations stockées, enparticulier lors d’une modification– Limiter l’espace mémoire nécessaire au stockage• Solution
I Afin d’éviter la redondance des informations on va stocker chaqueinformation à un seul endroit
7 sur 131– Partie 1
Contenu du cours
1. Concevoir une base de données (Mme Fiorenzi)– Analyser une situation nécessitant de gérer des données– Proposer un modèle conceptuel de données– Le traduire en schéma relationnel
2. Manipuler une base de données (M. Lopez)Introduction au langage SQL pour :– Interroger une base de données– Modifier une information dans une base de données– Créer et manipuler la structure d’une base de données
8 sur 131– Partie 1
Introduction aux bases de données
CONCEPTION D’UNEBASE DE DONNÉES
9 sur 131– Partie 1
Pourquoi faire un modèle?
Analyse etconceptionDéveloppe-mentsinformatiques Exploitation
Coût d’une erreur multiplié par 10 à chaque étape !10 sur 131– Partie 1
Modèle conceptuel de données• Représentation abstraite de la base de données• Objectifs :
– Avoir une vue d’ensemble des données et des liens entre elles– S’assurer que la base est pertinente et complète– Interagir avec le client non-informaticienExemple (Gestion des formations dans ParcourSup )
11 sur 131– Partie 1
Schéma relationnel• Représentation de la base de données sous forme de tablesreliées entre elles• Objectifs :
– Décrire la structure de la base de données en termes de tables– Rester indépendant des problèmes matériels et logiciels– Préparer les développements informatiques par desinformaticiensExemple (Gestion des formations dans ParcourSup)
12 sur 131– Partie 1
Démarche
Forteabstraction
Faibleabstraction
Analyse du problème degestion de données
Modèle conceptuelde données
Schémarelationnel
Tables contenantles données
Base de donnéesopérationnelle13 sur 131– Partie 1
Objectif de cette partie du cours• Savoir
– Règles de construction d’un modèle conceptuel de données– Règles de traduction d’un modèle conceptuel de données en unschéma relationnel• Savoir-faire
– Analyse d’une situation décrite dans un texte– Conception d’un modèle de données– Traduction en schéma relationnelMatière d’expérience
{I Raisonnement par analogie avec d’autres casI Pas une solution unique pour un même exerciceI Mais de grosses erreurs à éviter !
14 sur 131– Partie 1
Introduction aux bases de données
MODELE CONCEPTUELDE DONNEESConcepts de base
15 sur 131– Partie 1
Exemple : SoPrint
Gestion des commandes dans une entreprise decommercialisation d’imprimantesExtrait du catalogue commercial
Produit n◦ 4554EP Imprimantecouleur LaserJetPrix HT : 150 €
Produit n◦ 5043Imprimante Noir etBlanc LaserJetPrix HT : 60 €
16 sur 131– Partie 1
SoPrint : exemple de factureEntreprise SoPrint Orsay, le 03 septembre 202025 Rue des Oiseaux91400 Orsay Description généralede la commandeFACTURENuméro de commande : 35776Date de commande : 01/09/2020 Client ayant passéla commandeNuméro de client : 1245Nom du client : IUT OrsayAdresse client : Rue Noetzlin, 91400 OrsayNumero Produit Libellé Quantité Prix unitaire Total HT
4554 EP Imprimante 2 150,00 € 300,00 €couleur LaserJet7046 EP Cartouche 6 40,00 € 240,00 €couleur LaserJet Total HT 540,00 €Frais de livraison 25,00 €Total TTC 673,00 €Contenu détailléde la commande
17 sur 131– Partie 1
SoPrint : exemples de données à gérer / stockerdans la baseValeurs possibles / Occurrences Nom générique / Propriété« EP Imprimante couleur NomProduitLaserJet », « Imprimante Noir etBlanc LaserJet », . . .4554, 5043, . . . NumProduit« 150 € », « 40 € », . . . PrixProduit« IUT Orsay », « Mme Fiorenzi », NomClient« M. Lopez », . . .« 300 € », « 240 € », . . . PrixLigneHT« 25 € » FraisLivraison. . .
18 sur 131– Partie 1
Dictionnaire des données
• DefinitionListe des données élémentaires à stocker dans la base dedonnées• Types de rubriques :
– Attribut (A) : différentes valeurs possiblesI Plusieurs valeurs à stocker – gestion dans une table– Calculable (C) : différentes valeurs possiblesI Valeur déductible par calcul à partir d’autres rubriques– Paramètre (P) : valeur unique pour toute la BDI Une seule valeur à stocker – pas besoin d’une table
19 sur 131– Partie 1
SoPrint : exemple de dictionnaire des donnéesNOM RUBRIQUE TYPE DESCRIPTIONNumProduit A Numéro d’un produit commercialiséLibelleProduit A Nom/description d’un produitPrixUnitaire A Prix unitaire d’un produit HTNumClient A Numéro d’un clientNomClient A Nom d’un clientAdrClient A Adresse d’un clientNumCmde A Numéro de commandeDateCmde A Date de commandeQuantite A Quantité d’un produit contenu dans unecommande. . .
20 sur 131– Partie 1
SoPrint : exemple de dictionnaire des données(suite)NOM RUBRIQUE TYPE DESCRIPTION. . .PrixLigneHT C Prix HT d’une ligne de commande= Quantite * PrixUnitaireTotalHT C Prix total HT d’une commande= SUM (PrixLigneHT)TotalTTC C Prix total TTC d’un commande= TotalHT * (1+TauxTVA)+ FraisLivraisonTauxTVA P Taux de TVA. Actuellement : 20%FraisLivraison P Frais fixe de livraison. Actuellement : 25 €
I Dans la suite : focalisation sur les attributs et sur la façond’organiser le stockage des données correspondantes dans labase21 sur 131– Partie 1
Dictionnaire des données (suite)• Règles de construction
– Être exhaustif, lister toutes les rubriques– Donner un nom différent pour chaque rubrique– Ne pas faire apparaître deux fois la même information sous unerubrique différente– Donner les règles de calcul pour les calculables– Donner les valeurs pour les paramètresAttention !I Deux attributs ne doivent pas avoir le même nomI Éviter les noms ambigus
Exemple : Date −→ DateCmde, DateLiv, DateFacture, . . .
22 sur 131– Partie 1
Modèle conceptuel de donnéesOutil principal de modélisation des données
• Entité– Représentation abstraite d’un objet que l’on veut modéliser, surlequel on veut stocker des informations– Décrite par un nom
• Association– Lien entre 2 ou plusieurs entités du modèle– Décrite par un verbe
• Attribut– Caractéristique d’une entité ou d’une association– Décrit par une locution dans le dictionnaire des données
23 sur 131– Partie 1
Entité : exempleClientsClient n◦ 356M. Dupont22 Allée des Tulipes91400 OrsayClient n◦ 2557M. Sens32 Rue des Chênes75012 ParisClient n◦ 9876M. Fernandez26 Passage des Roses92160 Antony
Représentation abstraitedans le modèle
24 sur 131– Partie 1
Entité : exempleProduitsProduit n◦ 4554EP Imprimantecouleur LaserJetPrix HT : 150 €Produit n◦ 5043Imprimante Noir etBlanc LaserJetPrix HT : 60 €Produit n◦ 2543Imprimante Noiret Blanc – imp. rapidePrix HT : 200 €
Représentation abstraitedans le modèle
25 sur 131– Partie 1
Entité : exempleCommandes
Commande n◦ 54387Date Commande : 12/06/20
Commande n◦ 54508Date Commande : 15/08/20
Commande n◦ 56390Date Commande : 03/09/20
Représentation abstraitedans le modèle
26 sur 131– Partie 1
Entité : représentationNom de l’entité −→
Attribut identifiant −→
Autres attributs décrivant l’entité −→
Attention !I Un MCD ne doit pas contenir deux entités ayant le même nomI Etre précis et détaillé dans le choix des noms pour les entités
Exemple : TYPE −→ TYPECLIENT, TYPEPRODUIT, . . .
27 sur 131– Partie 1
Entité : attribut identifiant• L’attribut identifiant permet de repérer de façon unique chaqueoccurrence de l’entité
Exemple : NumClient 3
NomClient 7 (clients homonymes)
• Caractéristiques– Unique– Simple à utiliser– Court, numérique– Stable dans le temps
Attention !I Une entité pourrait ne pas avoir d’identifiant
28 sur 131– Partie 1
Association : exempleClient / Commande
Client n◦ 356– Commande n◦ 54387
Le client n◦ 356 passe la commanden◦ 54387.
Client n◦ 2557– Commande n◦ 56390
Le client n◦ 2557 passe la commanden◦ 56390.
29 sur 131– Partie 1
Association : exempleCommande / Produit
Commande n◦ 54387 –Produit n◦ 4554
La commande n◦ 54387 contientle produit n◦ 4554.
Commande n◦ 56390 –Produit n◦ 5043
La commande n◦ 56390 contientle produit n◦ 5043.
30 sur 131– Partie 1
Association : représentation
Association décrite parune bulle entre deux enti-tés. Traduction du lien parun verbe−→
Attention !I Un MCD ne doit pas contenir deuxassociations ayant le même verbeI Éviter les verbes génériques
Exemple : « a », « est », . . .
31 sur 131– Partie 1
MCD : exemple
32 sur 131– Partie 1
Cardinalité d’une association : exempleClient / Commande
Client n◦ 356– Commande n◦ 54387
Commande n◦ 54508
Client n◦ 2557– Commande n◦ 56390
Client n◦ 987633 sur 131– Partie 1
Cardinalité d’une association : exempleClient / Commande
Du côté de CLIENT :I Combien de commandes unmême client “voit-il” dans la base?
Du côté de COMMANDE :I Combien de clients une mêmecommande “voit-elle” dans la base?
Attention !I Ne pas inverser les cardinalités
34 sur 131– Partie 1
Cardinalité d’une association : exempleClient / Commande
Pas de contrainteIl peut y avoir des clients quin’ont pas passé de commandePas de contrainteUn client peut passer autantde commandes qu’il le veutCardinalité minimaleUne commande est passéepar au moins un clientCardinalité maximaleUne commande est passéepar au plus un client
35 sur 131– Partie 1
Cardinalité d’une association : exempleCommande / Produit
Commanden◦ 54387
Commanden◦ 56390
Commanden◦ 54508
Produit n◦ 4554
Produit n◦ 5043
Produit n◦ 254336 sur 131– Partie 1
Cardinalité d’une association : exempleCommande / Produit
Du côté de COMMANDE :I Combien de produits une mêmecommande “voit-elle” dans la base?
Du côté de PRODUIT :I Combien de commandes un mêmeproduit “voit-il” dans la base?
Attention !I Ne pas inverser les cardinalités
37 sur 131– Partie 1
Cardinalité d’une association : exempleCommande / Produit
Cardinalité minimaleUne commande contientau moins un produitPas de contrainteUne commande contient autant deproduits différents que l’on veut
Pas de contrainteIl peut y avoir des produitsqui n’ont pas été commandésPas de contrainteUn produit peut apparaître dansautant de commandes que l’on veut
38 sur 131– Partie 1
Cardinalité d’une association : exempleCommande / Produit
Commanden◦ 54387
Commanden◦ 56390
Commanden◦ 54508
Produit n◦ 4554
Produit n◦ 5043
Produit n◦ 2543
2
153
39 sur 131– Partie 1
MCD : exemple
Attention !I Les paramètres et les calculables n’apparaissent pas sur lemodèle conceptuel de données
40 sur 131– Partie 1
Recommended