Fichier de rejeu Close

Indication Close

A propos de... Close

Commentaire Close

Systèmes d'Information

  • Notions mathématiques
  • Calcul relationnel
  • Algèbre relationnelle
  • Langage de requêtes
  • Arbre de requêtes
  • Exercices
  • Introduction
  • Commandes de bases
  • Langage de définition de données (LDD)
  • Langage de manipulation de données (LMD)
  • Types de données
  • Exercice
  • Présentation
  • Calcul relationnel
  • Algèbre relationnelle
  • Division relationnelle
  • Relation
  • Fonction
  • Application
  • Injection
  • Surjection
  • Bijection
  • Association
  • Exemples
  • Dépendances fonctionnelles
  • Décomposition de relations
  • Inférence logique
  • Normalisation
  • Aux pays des bières
  • Modélisation
    • Cahier des charges
    • Dépendances fonctionnelles
    • Règles d’inférences
    • Structuration de la base
  • Exercices
  • Liste des projets
  • Aux pays des bières
  • Au Tournoi des six nations
  • Salles de concerts
  • Généralités
  • Langage SQL
  • Modèle relationnel
  • Généralités
  • SQL
  • Algèbre relationnelle
  • Synthèse
Index

Archives

  • Site Web
  • Sources reStructuredText
  • EniBook 1.618033988
logo

Crédits

© Your Copyright

Aide

En-tête

MenuContenu
Sommaire,
Téléchargements
Aide sur les outils

Pied de page

ChevronAction
Aller en haut de la page courante
Aller en bas de la page courante
Passer à la page précédente
Passer à la page suivante

Modélisation

Dans cette partie nous allons apprendre à :

  • modéliser, structurer une base de données
  • à partir d’un simple cahier des charges

dans lequel nous identifierons :

  • les informations à mémoriser dans le système d’informations
  • les dépendances entres ces informations liées aux contraintes exprimés par les besoins de l’entreprise

Cahier des charges

Une société de ventes par correspondance veut mettre en place un système d’informtion sur ses clients, ses produits et ses commandes.

Une première lecture du cahier des charges permet de relever les informations (attributs) à mémoriser.

Pour chaque client l’entreprise veut :

  • pouvoir le retrouver par un numéro, unique à chaque client : attribut C
  • une ou plusieurs adresses d’exp’edition : attribut A
  • l’état de son compte (somme due ou à avoir) : attribut E

Pour chaque produit l’entreprise veut :

  • identifier le produit par un numéro, unique à chaque produit : attribut P
  • connaître le genre du produit (alimentaire,électro-ménager,…) : attribut G
  • connaître la marque du produit : attribut M

Pour chaque commande l’entreprise veut

  • une référence de commande, unique `a chaque commande : attribut R
  • le numéro du client (attribut C déjà identifié)
  • l” adresse d’expédition (attribut A déjà identifié)
  • la date de commande : attribut D
  • un numéro de produit (attribut P déjà identifié)
  • une quantité commandée : attribut Q

A travers l’étude de ce cahier des charges on identifie la liste des attributs :

  • \(U =(C,A,E,P,G,M,R,D,Q)\)

Un relecture du cahier des charges permet de relever un certain nombre de contraintes entre les différentes informations existantes dans l’entreprise :

  • un client n’a qu’un état de compte

  • il n’y a pas deux clients différents à une même adresse

  • un produit n’a qu’un seul genre et une seule marque

  • une commande ne concerne :

    • qu’un seul client
    • n’est livrée qu’à une seule adresse
    • n’a qu’une seule date de livraison
  • pour la même commande,le même produit,le même client

    • il n’y a qu’une seule quantité commandée

Dépendances fonctionnelles

A partir de ce cahier des charges on peut structurer le base de données en s’appuyant sur l’identification des dépendances fonctionnelles qui apparaissent dans les contraintes relevées.

Une fois identifié toutes les DF on pourra déterminer les DFE nécessaires (couverture minimale) qui permettrons de structurer la base en s’appuyant sur une normalisation 3NF.

On relève la listes de DF détectées dans le cahier des charges.

  • un client n’a qu’un état de compte :

    • \(C \rightarrow E\)
  • il n’y a pas deux clients différents à une même adresse :

    • \(A \rightarrow C\)
  • un produit n’a qu’un seul genre et une seule marque :

    • \(P \rightarrow GM\)
  • une commande ne concerne qu’un seul client,n’est livrée qu’à une seule adresse, n’a qu’une seule date de livraison :

    • \(R \rightarrow CAD\)
  • pour la même commande,le même produit,le même client il n’y a qu’une seule quantité commandée :

    • \(RPC \rightarrow Q\)

On a donc identifié à partir de ce cahier des charges l’ensemble des DF suivantes :

  • \(C \rightarrow E\)
  • \(A \rightarrow C\)
  • \(P \rightarrow GM\)
  • \(R \rightarrow CAD\)
  • \((R,P,C) \rightarrow Q\)

Règles d’inférences

A partir de ces DF on peut déduire de nouvelles DF en appliquant les axiomes d’Armstrong et ne faire apparaître que des DFE :

  • Un seul attribut cible (à doite de la DF).
  • pas d’attributs “superflus” à gauche de la DF.

et ne retenir que les DFE ou les attributs cibles (non-primitifs) n’apparaissent pas à gauche des DF.

On trouvera donc les DFE suivantes :

  • Transitivité (\(A \rightarrow C,C \rightarrow E\)) :

    • \(A \rightarrow E\)
  • Décomposition (\(P \rightarrow GM\)) :

    • \(P \rightarrow G\)
    • \(P \rightarrow M\)
  • Décomposition (\(R \rightarrow CAD\)) :

    • \(R \rightarrow C\)
    • \(R \rightarrow A\)
    • \(R \rightarrow D\)
  • Transitivité (\(R \rightarrow A, A \rightarrow E\)) :

    • \(R \rightarrow E\)
  • Pseudo-transitivité (\(R \rightarrow C, (R,P,C) \rightarrow Q\)) :

    • \((R,P) \rightarrow Q\)

On obtient donc l’ensemble de DFE suivant :

  • \(R \rightarrow E\)
  • \(P \rightarrow G\)
  • \(P \rightarrow M\)
  • \(R \rightarrow D\)
  • \((R,P) \rightarrow Q\)

Avec :

  • \(R \rightarrow A, A \rightarrow C, C \rightarrow E\)

Structuration de la base

On identifie à travers ces DFE qu’une clé du schéma relationnel serait (R,P) et que nous pourrions structurer la base de la manière suivante :

  • \(commandes(\underline{R},E,D)\)
  • \(references(\underline{R,P},Q)\)
  • \(produits(\underline{P},G,M)\)

Où nous aurions créé un schéma relationnel en 2NF :

  • \((R,P,C) \rightarrow Q \Longrightarrow (R,P) \rightarrow Q\)

Sachant qu’il ne faut pas perdre les informations liées aux dépendances transitives :

  • \(R \rightarrow A, A \rightarrow C, C \rightarrow E\)

On aurait donc la relation commandes suivante :

  • \(commandes(\underline{R},A,C,E,D)\)

Avec une telle structuration la base de données le schéma relationnel ne serait pas en 3NF :

  • \(R \rightarrow A, A \rightarrow C, C \rightarrow E\)
  • des attributs non-primitifs ne sont donc pas directement dépendant de la clé \((R,P)\).

Il faut donc répartir les différentes DFE transitives dans d’autres tables en appliquant le théorème de décomposition sans perte

  • \(commandes(\underline{R},A)\)
  • \(adresses(\underline{A},C)\)
  • \(clients(\underline{C},E)\)
  • \(quantites(\underline{R,P},Q)\)
  • \(produits(\underline{P},G,M)\)

Nous aboutissons ainsi à un schéma relationnel 3NF qui permettra de retrouver les informations utiles par jointure naturelle.

sql : commandes.sql

    
>
Output

                

Interpréteur

MenuAction
Ré-initialiser les sorties
Faire apparaître le menu d'aide
Interpréter le programme

Editeur

MenuRaccouciAction
Ctrl+N Initialiser l'éditeur
Ctrl+O Charger le contenu d'un fichier dans l'éditeur
Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
Ctrl+P Imprimer le contenu de l'éditeur
Ctrl+Z Annuler la dernière modification
Maj+Ctrl+Z Rétablir la modification précedente
Ctrl+F Chercher une expression dans l'éditeur
Maj+Ctrl+F Chercher et remplacer une expression par une autre
F10 Ouvrir une documentation du langage

RaccourciAction
F1 Afficher cette aide
Tab Indenter la sélection
Maj+Tab Désindenter la sélection
Ctrl+A Sélectionner le contenu de l'éditeur
Ctrl+C Copier la sélection dans le presse-papier
Ctrl+V Remplacer la sélection par le contenu du presse-papier
Ctrl+X Supprimer la sélection et la copier dans le presse-papier
Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
 
Systèmes d'Information : Modélisation, 13 avr. 2023.