introduction aux bases de données - lri

40
Introduction aux bases de données Partie 1 : Conception d’une base de données Francesca Fiorenzi 2020–2021 1 sur 131– Partie 1

Upload: others

Post on 18-Jun-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction aux bases de données - LRI

Introduction aux bases de donnéesPartie 1 : Conception d’une base de données

Francesca Fiorenzi

2020–2021

1 sur 131– Partie 1

Page 2: Introduction aux bases de données - LRI

Introduction aux bases de données

INTRODUCTION GENERALE

2 sur 131– Partie 1

Page 3: Introduction aux bases de données - LRI

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

Page 4: Introduction aux bases de données - LRI

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

Page 5: Introduction aux bases de données - LRI

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

Page 6: Introduction aux bases de données - LRI

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

Page 7: Introduction aux bases de données - LRI

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

Page 8: Introduction aux bases de données - LRI

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

Page 9: Introduction aux bases de données - LRI

Introduction aux bases de données

CONCEPTION D’UNEBASE DE DONNÉES

9 sur 131– Partie 1

Page 10: Introduction aux bases de données - LRI

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

Page 11: Introduction aux bases de données - LRI

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

Page 12: Introduction aux bases de données - LRI

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

Page 13: Introduction aux bases de données - LRI

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

Page 14: Introduction aux bases de données - LRI

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

Page 15: Introduction aux bases de données - LRI

Introduction aux bases de données

MODELE CONCEPTUELDE DONNEESConcepts de base

15 sur 131– Partie 1

Page 16: Introduction aux bases de données - LRI

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

Page 17: Introduction aux bases de données - LRI

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

Page 18: Introduction aux bases de données - LRI

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

Page 19: Introduction aux bases de données - LRI

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

Page 20: Introduction aux bases de données - LRI

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

Page 21: Introduction aux bases de données - LRI

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

Page 22: Introduction aux bases de données - LRI

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

Page 23: Introduction aux bases de données - LRI

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

Page 24: Introduction aux bases de données - LRI

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

Page 25: Introduction aux bases de données - LRI

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

Page 26: Introduction aux bases de données - LRI

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

Page 27: Introduction aux bases de données - LRI

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

Page 28: Introduction aux bases de données - LRI

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

Page 29: Introduction aux bases de données - LRI

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

Page 30: Introduction aux bases de données - LRI

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

Page 31: Introduction aux bases de données - LRI

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

Page 32: Introduction aux bases de données - LRI

MCD : exemple

32 sur 131– Partie 1

Page 33: Introduction aux bases de données - LRI

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

Page 34: Introduction aux bases de données - LRI

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

Page 35: Introduction aux bases de données - LRI

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

Page 36: Introduction aux bases de données - LRI

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

Page 37: Introduction aux bases de données - LRI

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

Page 38: Introduction aux bases de données - LRI

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

Page 39: Introduction aux bases de données - LRI

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

Page 40: Introduction aux bases de données - LRI

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