IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Modèle conceptuel des données (MCD) vs relation universelle (Ullman)


Sujet :

Schéma

  1. #1
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 114
    Points : 31 609
    Points
    31 609
    Billets dans le blog
    16
    Par défaut Modèle conceptuel des données (MCD) vs relation universelle (Ullman)
    Bonjour,

    Je vous propose un article traitant de la modélisation des données, d’une part selon notre approche classique E/R, c’est-à-dire en partant d’un MCD, et d’autre part selon l’approche de certains théoriciens du relationnel (relation universelle). Je compare et conclus en faveur du MCD.
    Maintenant, on peut débattre...

    L’article est ici :
     
    Modélisation Entité-Relation vs Relation universelle
     
    N’hésitez pas à faire vos commentaires...
     
    A bientôt,
     
    François

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 377
    Points : 39 852
    Points
    39 852
    Billets dans le blog
    9
    Par défaut
    Bonjour François, bonjour à tous.

    En toute impartialité , je dis excellent travail , merci François !

    Et je partage la conclusion, le MCD a ma préférence !
    Le MCD est d'un formalisme simple, efficace et applicable dans toutes les situations, je le trouve également plus facile à lire que le modèle UML par trop brouillon.

  3. #3
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 114
    Points : 31 609
    Points
    31 609
    Billets dans le blog
    16
    Par défaut
    Ave Capitaine,

    Grand merci à toi !

    Citation Envoyé par escartefigue
    Et je partage la conclusion, le MCD a ma préférence !
    Le MCD est d'un formalisme simple, efficace et applicable dans toutes les situations...
    Certes, nos MCD ont notre préférence. Il est quand même intéressant de savoir ce qu’il y a derrière le miroir et à l’autre bord de la rivière...

    Le MCD est quand même parfois un peu compliqué (pas trop quand même ), comme ici (cf. la discussion « Quel logiciel télécharger pour réaliser un MCD », le post #53,  Figure 4) :


  4. #4
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 710
    Points : 2 867
    Points
    2 867
    Par défaut
    Bonjour,

    Cela ne vous surprendra pas si je vous signifie ma préférence pour les MCD !!!
    J'ai d'alleurs beaucoup travaillé sur les CIF et en particulier sur les CIF à unicité incomplète comme dans l'exemple des courses hippiques que nous propose François.
    En m'appuyant sur les travaux de Ullman et Dale, et sur mes recherches personnelles, j'ai établi mon propre théorème permettant de déterminer de manière formelle les clés candidates dans le cadre d'une association n-aires avec d'éventuelles CIF, quelque soit leur complétude (et ce en limitant au maximum l'usage de l'algorithme du seau).
    Cela ne fonctionnait que partiellement dans l'actuelle version 4 de Looping, mais c'est parfaitement au point dans la version 4.1 à venir !
    Et pour l'exemple de François, nous avons donc les clés candidates suivantes :
    • CourseId, ChevalId
    • CourseId, JockeyId
    • CourseId, Numéro

    En tout cas, bravo à François pour cette remarquable étude... et pour sa préférence en faveur de nos MCD !

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 377
    Points : 39 852
    Points
    39 852
    Billets dans le blog
    9
    Par défaut
    Bonjour Paprick

    il me vient une suggestion pour une prochaine version de Looping : ajouter la possibilité de modifier la couleur de tel ou tel lien (au moyen d'un clic droit et d'une fenêtre contextuelle par exemple), de sorte à faciliter la lecture du MCD dans les cas tels que celui présenté par François où les connexions se croisent.
    On pourrait même étendre cette possibilité à tous les types d'objets

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 374
    Points : 1 406
    Points
    1 406
    Par défaut
    Sorry Query Language ? J'ai ri

    Bravo pour l'article !

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 114
    Points : 31 609
    Points
    31 609
    Billets dans le blog
    16
    Par défaut
    Bonjour les lève-tôt,

    Citation Envoyé par Paprick
    En tout cas, bravo à François pour cette remarquable étude... et pour sa préférence en faveur de nos MCD ! 
    Préférence ? Certes, car qui plus est, modéliser avec Looping apporte vraiment une grande satisfaction A consommer sans modération...


    Citation Envoyé par Cap’taine
    Le MCD est d'un formalisme simple, efficace et applicable dans toutes les situations, je le trouve également plus facile à lire que le modèle UML par trop brouillon.
    Quoique... Le diagramme ULM n’est pas toujours brouillon :




    Citation Envoyé par Shepard
    Sorry Query Language ? J'ai ri
    Bravo pour l'article !
    Merci Shepard.

    Une variante du Sorry Query Language, le Askew Wall, toujours par Hugh Darwen (alias Andrew Warden), in Relational Database Writings 1989-1991 :


    En passant, une saine et profitable lecture : The Askew Wall par Hugh.

    Au plaisir de vous revoir,

    François

  8. #8
    Nouveau membre du Club

    Homme Profil pro
    Conseil - Consultant en systèmes d’information
    Inscrit en
    Septembre 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d’information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2019
    Messages : 11
    Points : 28
    Points
    28
    Billets dans le blog
    1
    Par défaut Tout dépend de l'usage fait de la base de données, transactions vs analyse
    La modélisation Merise est orientée transactions, performance des mise à jour des données de nombreuses transactions simultanées. La modélisation Ullman, apparemment inspirée par Codd, me fait penser à la modélisation en étoile des entrepôts de données qui serait "vue" en une seule table, qui pourrait d'ailleurs être directement implémentée dans une base à stockage en colonnes comme Sybase IQ, stockage dénormalisé par essence. Je le suis complètement quand il dit que cette table (logique, conceptuelle) devient la base de données.

    La relation universelle de Ullman correspond à la table de faits augmentée des dimensions (sauf que le modèle de l'exemple n'implémente pas les jours (mois, années absolus) du cours d'école, ce qui appauvrit les analyses possibles).

    À noter d'ailleurs que l'exemple du cours d'école ne donne pas lieu dans la pratique à modifier les données après leur création, comme le serait une quantité de produits dans une facture ou une commande.

    Cet exemple me parait bancal car on ne sait pas bien quel système fonctionnel est modélisé.

    Et si c'est un système historique (puisqu'il y a la composante S de l'étudiant), les heures et les jours devraient à mon sens être deux concepts différents car les cardinalités ne sont pas les mêmes et cela surchargerait inutilement un concept unique "Temps" (dans un planning, l'heure est bien un concept, éventuellement un jour de semaine ou un numéro de jour dans le mois ou jour férié, qui sont des jours relatifs, mais pas un jour au sens date de naissance ou jour où le cour a eu lieu, qui est un jour absolu).

    Pour élaborer le planning, l'étudiant ne sera pas utilisé, car un planning est agnostique de l'étudiant lorsqu'il est en train d'être élaboré. De même, la date est juste informative dans un modèle orienté transaction (bien que légalement et techniquement obligatoire), elle n'est pas conceptuellement utile, c'est pourquoi les systèmes transactionnels ne la modélisent pas en tant qu'entité mais en tant qu'attribut.

    Tandis que pour un système historique, la date (absolue) devient conceptuelle, c'est pourquoi elle devient une entité et une dimension d'analyse.

    C'est là la grande différence entre les modèles transactionnels et les modèles historiques : les concepts (entités conceptuelles) sont différents, et les modèles logiques MCD seront eux aussi différents. Dans un modèle de système historique au niveau logique (MCD), le fait élémentaire de l'historique (la donnée atomique indivisible) est une relation n-n et les valeurs des propriétés de la relation, d'où l'implémentation en tables dans les MPD.

    J'ai vu beaucoup de concepteurs de bases de données ne pas avoir compris ceci. Résultat : ils ne font que le modèle physique MPD !

    Et là, beaucoup de possibilités des logiciels comme PowerAMC pour générer des scripts de création et surtout de mise à jour sont perdues. Car la modification d'un modèle entraine la mise à jour des tables ET la migration des données présentes dans la base. De mémoire, la génération des scripts de migration des données n'est possible qu'avec un MCD (et j'ai passé pas mal de temps à comprendre ce pourquoi du comment).

    Contrairement à l'idée reçue, un schéma étoile (historique) est tout aussi 3NF qu'un modèle transactionnel, simplement, les concepts sont différents.

    J'ai bon ?

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 114
    Points : 31 609
    Points
    31 609
    Billets dans le blog
    16
    Par défaut
    Bonjour Michka1111,


    Merci de vous être intéressé à l’article.


    Citation Envoyé par Michka1111
    La relation universelle de Ullman correspond à la table de faits augmentée des dimensions (sauf que le modèle de l'exemple n'implémente pas les jours (mois, années absolus) du cours d'école, ce qui appauvrit les analyses possibles).
    Dans son exemple, Ullman limite l’univers du discours à l’agenda de l’année en cours : il ne cherche pas à modéliser un historique. En l’occurrence, c’est le principe du rasoir d’Ockham qui s’appliquerait (« Pluralitas non est ponenda sine necessitate »). Ne pas oublier que chez les théoriciens de l’époque, Ullman n’était pas seul à prendre cet exemple. Voyez An Integrated Approach to Logical Design of Relational Database Schemes de Catriel Beeri.


    Citation Envoyé par Michka1111
    À noter d'ailleurs que l'exemple du cours d'école ne donne pas lieu dans la pratique à modifier les données après leur création.
    Les données peuvent avoir à être modifiées, cas par exemple de la table CHR, quand il y aurait bilocation des professeurs (ou des étudiants), si un trigger tel que CHR_MAJ_TRIGGER ne l’interdisait pas (situation à l’époque). Il est évident que si l’on étendait les règles de gestion, par exemple qu’un professeur puisse être remplacé en cours d’année, on commencerait à rentrer dans le problème (pas trivial !) de la prise en compte de l’historique, et là on pourrait aller très loin et s’éclater (cf. la normalisation en 6NF).


    Citation Envoyé par Michka1111
    Cet exemple me paraît bancal car on ne sait pas bien quel système fonctionnel est modélisé.
    Adressez-vous à Ullman. Quant à moi, je ne me permettrai pas de toucher à ses règles de gestion !


    Citation Envoyé par Michka1111
    Et si c'est un système historique (puisqu'il y a la composante S de l'étudiant), les heures et les jours devraient à mon sens être deux concepts différents car les cardinalités ne sont pas les mêmes et cela surchargerait inutilement un concept unique "Temps" (dans un planning, l'heure est bien un concept, éventuellement un jour de semaine ou un numéro de jour dans le mois ou jour férié, qui sont des jours relatifs, mais pas un jour au sens date de naissance ou jour où le cour a eu lieu, qui est un jour absolu).
    On n’est pas ici dans un « système historique ». Je rappelle que l’univers du discours décrit par Ullman n’est pas concerné par le temps. Au demeurant, rien ne vous empêche de votre côté de faire évoluer cet univers, en prenant en compte l’aspect temporel (bien entendu dans le strict respect de la 6NF) et de proposer un article en ce sens.


    Citation Envoyé par Michka1111
    Pour élaborer le planning, l'étudiant ne sera pas utilisé, car un planning est agnostique de l'étudiant lorsqu'il est en train d'être élaboré.
    Le professeur n’est pas plus concerné. Je vous renvoie à structure de la table CHR.


    Citation Envoyé par Michka1111
    C'est là la grande différence entre les modèles transactionnels et les modèles historiques : les concepts (entités conceptuelles) sont différents, et les modèles logiques MCD seront eux aussi différents. Dans un modèle de système historique au niveau logique (MCD), le fait élémentaire de l'historique (la donnée atomique indivisible) est une relation n-n et les valeurs des propriétés de la relation, d'où l'implémentation en tables dans les MPD.
    Dans l’article, je traite de la modélisation conceptuelle des données. Ainsi, il y a un modèle conceptuel des données (MCD), dérivable en modèle logique des données (MLD) impliquant donc le MCD, dérivable à son tour en modèle physique des données (MPD), impliquant le MLD, donc le MCD (voyez l’excellent Looping) du Professeur Bergougnoux. D’un point de vue théorique, l’aspect historique est parfaitement pris en compte par C. J. Date, Hugh Darwen et Nikos Lorentzos dans le cadre du modèle relationnel de données, mieux que je ne le ferais. Voyez leur ouvrage Temporal Data and The Relational Model, ainsi que la synthèse de Hugh Darwen : Temporal Data and The Relational Model.

    Un article (rédigé en 2005) à méditer (faisant qu’à l’époque la commission SQL de l’ISO recala les propositions d’extension du langage SQL qui lui avaient été soumises) :

    An Overview and Analysis of Proposals Based on the TSQL2 Approach.


    Citation Envoyé par Michka1111
    J'ai vu beaucoup de concepteurs de bases de données ne pas avoir compris ceci. Résultat : ils ne font que le modèle physique MPD !
    Qu’ils se mettent au diapason, à la modélisation conceptuelle avec Looping !


    Citation Envoyé par Michka1111
    Contrairement à l'idée reçue, un schéma étoile (historique) est tout aussi 3NF qu'un modèle transactionnel, simplement, les concepts sont différents.
    Merci d’en fournir la démonstration. En outre, la prise en compte des données temporelles (historiques) impose de viser plus haut (6NF) !

    Bon courage,

    François

  10. #10
    Nouveau membre du Club

    Homme Profil pro
    Conseil - Consultant en systèmes d’information
    Inscrit en
    Septembre 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d’information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2019
    Messages : 11
    Points : 28
    Points
    28
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonjour Michka1111,


    Merci de vous être intéressé à l’article.
    Pas de quoi, plaisant à lire, tant sur la forme que sur le fond


    Dans son exemple, Ullman limite l’univers du discours à l’agenda de l’année en cours : il ne cherche pas à modéliser un historique.
    …mais la relation universelle est bel et bien adaptée pour supporter les requêtes étoiles (clauses where restrictives sur des colonnes), et peu adaptée aux modifications performantes, en raison des données inutiles à la transaction impliquées dans la modification (un enregistrement pour modifier une colonne).

    Les données peuvent avoir à être modifiées, cas par exemple de la table CHR, quand il y aurait bilocation des professeurs (ou des étudiants), si un trigger tel que CHR_MAJ_TRIGGER ne l’interdisait pas (situation à l’époque). Il est évident que si l’on étendait les règles de gestion, par exemple qu’un professeur puisse être remplacé en cours d’année, on commencerait à rentrer dans le problème (pas trivial !) de la prise en compte de l’historique, et là on pourrait aller très loin et s’éclater (cf. la normalisation en 6NF).
    Il faut voir si les règles de gestion sont utiles et effectives dans le fonctionnel modélisé, dans l'exemple, il y a déja des restrictions pleines de bon sens mais triviales partant du principe qu'une personne est dépourvue d'ubicité.

    On n’est pas ici dans un « système historique ». Je rappelle que l’univers du discours décrit par Ullman n’est pas concerné par le temps.
    Pourtant, sa Relation Universelle est bien issue de la modélisation en étoile

    Le professeur n’est pas plus concerné. Je vous renvoie à structure de la table CHR.
    Oui, Un cours est prodigué par un professeur aux élèves inscrits à ce cours


    Dans l’article, je traite de la modélisation conceptuelle des données. Ainsi, il y a un modèle conceptuel des données (MCD), dérivable en modèle logique des données (MLD) impliquant donc le MCD, dérivable à son tour en modèle physique des données (MPD), impliquant le MLD, donc le MCD (voyez l’excellent Looping) du Professeur Bergougnoux. D’un point de vue théorique, l’aspect historique est parfaitement pris en compte par C. J. Date, Hugh Darwen et Nikos Lorentzos dans le cadre du modèle relationnel de données, mieux que je ne le ferais. Voyez leur ouvrage Temporal Data and The Relational Model, ainsi que la synthèse de Hugh Darwen : Temporal Data and The Relational Model.
    Les séries temporelles sont différentes des schémas étoiles historiques des systèmes transactionnels, bien que basées elles aussi sur des historiques.

    Oui, SQL Server a eu pas mal de difficulté avec la standardisation de "son" SQL, tout comme Analysis Services et Integration Services qui ont concervé leurs lacunes encore aujourd'hui.

    Qu’ils se mettent au diapason, à la modélisation conceptuelle avec Looping !
    Un logiciel ne remplace pas un raisonnement intellectuel, mais je vais sans doute en avoir l'usage pour un (autre) projet et pour mes recherches sur les schémas étoiles (!).

    Merci d’en fournir la démonstration.
    Mon ouvrage de référence est Ralf Kimball "The Data Warehouse Toolkit" (assez bien traduit en français). La définition des entités fondamentales des schéma étoile se déduit de l'expression formelle d'un "fait" atomique empilé dans l'historique, expression formelle appelée le "grain" de l'historique, déduit d'une transaction tout aussi élémentaire survenant dans le système transactionnel, celui-ci n'étant pas conçu pour la mémoriser, mais pour présenter des données "à jour" à l'instant t d'un moment présent. Les entités fondamentales et les attribut du système transactionnel se retrouvent donc à un pour un dans le schéma étoile. La composante du temps absolu se rajoute en tant que concept dans l'expression formelle du grain, qui change seulement les cardinalités liées aux autres entités, ce qui fait "passer" le fait historique en une relation "universelle" vers les entités fondamentales des transactions. Après, l'application strictes des formes normales pour modéliser varie suivant l'utilisation principale de la base en écriture (transactions) ou en lecture (requêtes). Dans la pratique, la composante temps absolu fondamentale (en 3NF) dans le star schéma se retrouve complètement dénormalisée dans le système transactionnel (optimisé écriture) : dans les métadonnées d'audit et d'administration, et dans les logs des sgbd. Un star schéma ne crée (n'invente) absolument aucune donnée. Il y a d'ailleurs un débat (houleux) à propos de la qualité des données, de statuer si les données erronées doivent être modifiées dans l'entrepôt ou dans le système transactionnel, cette opération dans le système transactionnel coûtant très cher et prenant beaucoup de temps.

    En outre, la prise en compte des données temporelles (historiques) impose de viser plus haut (6NF) !
    Là encore, ça dépend de la vocation de la base en lecture ou en écriture, pour celle-ci, la Relation Universelle ne s'applique pas, concrètement parlant, vous l'avez, à mon avis, parfaitement montré dans l'article. De même, les entrepôts "logiques" ont leurs limites.

    Bon courage,

    François

  11. #11
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 114
    Points : 31 609
    Points
    31 609
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par Michka1111
    Citation Envoyé par fsmrel
    Merci de vous être intéressé à l’article.
    Pas de quoi, plaisant à lire, tant sur la forme que sur le fond.
    Merci encore.


    Citation Envoyé par Michka1111
    Citation Envoyé par fsmrel
    Dans son exemple, Ullman limite l’univers du discours à l’agenda de l’année en cours : il ne cherche pas à modéliser un historique.
    mais la relation universelle est bel et bien adaptée pour supporter les requêtes étoiles (clauses where restrictives sur des colonnes), et peu adaptée aux modifications performantes, en raison des données inutiles à la transaction impliquées dans la modification (un enregistrement pour modifier une colonne).
    Ullman précise bien qu’il s’agit de faciliter, simplifier les requêtes de lecture (le terme vue universelle serait plus approprié que celui de relation universelle), et que les mises à jour se font sous le capot (là où sont les tables de base). Si la relation universelle est comme une étoile, elle est quand même singulièrement dépourvue de branches...


    Citation Envoyé par Michka1111
    Citation Envoyé par fsmrel
    Les données peuvent avoir à être modifiées, cas par exemple de la table CHR, quand il y aurait bilocation des professeurs (ou des étudiants), si un trigger tel que CHR_MAJ_TRIGGER ne l’interdisait pas (situation à l’époque). Il est évident que si l’on étendait les règles de gestion, par exemple qu’un professeur puisse être remplacé en cours d’année, on commencerait à rentrer dans le problème (pas trivial !) de la prise en compte de l’historique, et là on pourrait aller très loin et s’éclater (cf. la normalisation en 6NF).
    Il faut voir si les règles de gestion sont utiles et effectives dans le fonctionnel modélisé, dans l'exemple, il y a déja des restrictions pleines de bon sens mais triviales partant du principe qu'une personne est dépourvue d'ubicité.
    A vue humaine les règles sont peut-être triviales, mais certainement pas du point de vue du SGBD : on doit lui mettre les points sur les i, d’où la nécessité de commencer par la rédaction des règles de gestion aussi naïves peuvent-elles paraître, qu’on transpose ensuite dans le MCD sous forme de contraintes (identité, unicité, inclusion, exclusion, totalité, CIF, etc.). Ces règles sont là aussi pour qu’on puisse mettre en évidence les dépendances fonctionnelles (sans oublier les dépendances multivaluées, de jointure) nécessaires pour s’assurer de la normalisation. Ceci fait, on demandera à l’AGL (par exemple Looping) de traduire ces contraintes sous forme de contraintes SQL. Si le SGBD ne propose pas l’instruction CREATE ASSERTION, on se rattrapera avec des triggers (voyez les triggers CHR_MAJ_TRIGGER, CHS_MAJ_TRIGGER), quand bien même sont-ils laborieux. A défaut, la base de données sera inévitablement truffée d’erreurs dont bien sûr l’ubiquité : qu’elles tombent sous le sens, la rédaction des règles de gestion n’en reste pas moins essentielle, et comme dit mon voisin, Scripta manent, verba volant.  


    Citation Envoyé par Michka1111
    Citation Envoyé par fsmrel
    On n’est pas ici dans un « système historique ». Je rappelle que l’univers du discours décrit par Ullman n’est pas concerné par le temps.
    Pourtant, sa Relation Universelle est bien issue de la modélisation en étoile
    Cette relation universelle n’est jamais qu’une vue (au sens relationnel et SQL), cf. § 4.2 de l’article.
    Dans son ouvrage auquel je fais référence, Ullman ne fait aucunement référence aux mots « star », « fact », « dimension » et autres termes connotés data warehouse : je ne vois pas en quoi sa relation universelle serait issue de la modélisation en étoile.


    Citation Envoyé par Michka1111
    Un cours est prodigué par un professeur aux élèves inscrits à ce cours
    Certes, mais ça n’est pas l’objet de la table CHR que j’évoquais. Son prédicat est le suivant : Le cours C sera donné à l’heure H dans la salle R.


    Citation Envoyé par Michka1111
    Les séries temporelles sont différentes des schémas étoiles historiques des systèmes transactionnels, bien que basées elles aussi sur des historiques.
    En relationnel, on modélise l’historisation des données, sous le contrôle de la 6NF, point barre.
    Je vous renvoie à l’ouvrage de référence Temporal Data and The Relational Model. Remember Pluralitas non est ponenda sine necessitate.


    Citation Envoyé par Michka1111
    Mon ouvrage de référence est Ralf Kimball "The Data Warehouse Toolkit"
    J’ai retrouvé dans mes archives le PDF de la version 2 de l’ouvrage.  

    Je cite (page 9) :

    Citation Envoyé par Ralf Kimball
    The normalized structures must be off -limits to user queries because they defeat the twin goals of understandability and performance.
    Plutôt que jumeaux, autant parler de triplés. Kimball oublie le troisième élément de la bande, l’intégrité des données. A quoi bon seulement les « twin goals » si on mouline des données pourries, conséquences par exemple de la dénormalisation ? Quoi qu’il en soit, en plus de quarante ans de modélisation (MCD, MLD, MPD), j’ai toujours préconisé (quand SQL est arrivé), l’encapsulation des requêtes complexes dans des vues (qui ne sont après tout que des tables virtuelles), en sorte que celles-ci soient understandable pour les développeurs et autres utilisateurs.

    Quant à la performance, sujet dont j’ai eu le souci depuis près de soixante ans (ben oui), Kimball me fait l’effet de prêcher sur le mode incantatoire. De mon côté, je suis toujours resté dans les clous de la théorie relationnelle de Codd du jour où j’ai découvert celle-ci. Cela m’a permis de m’engager auprès de mes clients sur la performance des applications suite bien entendu à prototypage à mort. En matière de performance je ne crois qu’aux mesures qu’on en a faites (voyez par exemple ici). Quand les chiffres ne sont pas bons, on optimise, mais sans remettre en cause la modélisation si elle est correcte. Quand elle a été faite en dépit du bon sens, en toute incompétence, je la fais mettre à la poubelle et je prends ma casquette de concepteur pour piloter ceux qui referont les MCD.

    Où sont les chiffres justifiant les allégations de Kimball ? En leur absence, je ne peux qu’être d’un total scepticisme.

    Je cite encore :

    Page 21 :

    Citation Envoyé par Ralf Kimball
    Dimension tables typically are highly denormalized.
    Et page 56

    Citation Envoyé par Ralf Kimball
    Efforts to normalize most dimension tables in order to save disk space are a waste of time.
    Là encore, c’est le mode incantatoire qui est de mise. Depuis tout ce temps où chez mes nombreux clients (tous des grands comptes, banque, assurance, industrie, distribution, transport ferroviaire, mutuelles, etc.), j’ai modélisé, audité, soigné les bases de données mal en point, je n’ai jamais eu à violer la normalisation (3NF), ou plutôt j’ai fait normaliser les tables qui ne l’étaient pas, justement pour des raisons d’intégrité des données, voire de performance.

    Au fait, Kimball parle de la troisième forme normale (3NF), mais sans en donner la définition. Etrange ! (On trouvera cette définition dans mon article, mais peut-être que Kimball et moi ne parlons pas de la même chose...). Non seulement la 3NF est mise à mal, mais c’est très vraisemblablement le cas de la 2NF (pour Kimball, une table dénormalisée est forcément en 2NF ! c’est magique !) C’est certainement aussi le cas de la 1NF sur laquelle Kimball jette manifestement un voile pudique, en omettant tout simplement d’en parler, alors qu’il s’agit d’un point capital. Pour Codd (inventeur de la théorie relationnelle), une relation est dénormalisée si elle viole la 1NF (Further normalization of the data base relational model)...

    Je rappelle la définition de la 1NF (cf. Database Design and Relational Theory Normal Forms and All That Jazz) :

    Let relation r have attributes A1, ..., An, of types T1, ..., Tn, respectively. Then r is in first normal form (1NF) if and only if, for all tuples t appearing in r, the value of attribute Ai in t is of type Ti (i = 1, ..., n).

    Je rappelle aussi qu’une une relation est une valeur de variable relationnelle (relvar).


    Page 111 :  

    Citation Envoyé par Ralf Kimball
    It is too limiting to think of products as belonging to a single hierarchy. Products typically roll up according to multiple defined hierarchies. All the hierarchical data should be presented in a single flattened, denormalized product dimension table.
    On s’en sort très bien même avec SQL, voyez ici. Si les requêtes paraissent complexes, alors, comme d’habitude, encapsulons-les dans des vues.

    Je suis désolé, mais je pourrais poursuivre ad nauseam la litanie de mes observations en tant que concepteur et DBA...

  12. #12
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 377
    Points : 39 852
    Points
    39 852
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Je ne reprendrai pas l'ensemble des arguments de Fsmrel auxquels je souscris totalement sans réserve.

    Au sujet de la dénormalisation, je donnerai juste un exemple concret que j'ai vécu à de nombreuses reprises dans le monde bancaire : celui de la fusion bancaire.
    Il s'agit d'une opération courante dans laquelle un banque en absorbe une autre. En ce moment, c'est le Crédit du Nord qui fusionne avec la Société Générale.
    Dans un monde dénormalisé, les redondances sont légion et on retrouve le code banque dans de nombreuses tables, non seulement à sa place, dans la table des banques, mais aussi dans celles des agences, des comptes, voire des mouvements sur compte...
    Et là, c'est le drame, à l'occasion d'une fusion il faut renuméroter des millions voire des milliards de lignes, là où, avec un modèle normalisé, seule une ligne dans la table des banques aurait été impactée.
    On a donc non seulement de la redondance (coût de stockage et de mise à jour augmenté, risque d'incohérence), de la performance dégradée (nombre de mises à jour augmenté en très forte proportion), de la complexité augmentée (pour la même raison) et des coûts humain considérables lors des fusions ou d'opérations similaires de modification en masse.

    On pourrait reprendre cet argumentaire avec la propagation des SIRET, chose assez courante elle aussi, dans le modèle de données ou tout autre cas de redondance.

  13. #13
    Nouveau membre du Club

    Homme Profil pro
    Conseil - Consultant en systèmes d’information
    Inscrit en
    Septembre 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d’information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2019
    Messages : 11
    Points : 28
    Points
    28
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir,

    Si la relation universelle est comme une étoile, elle est quand même singulièrement dépourvue de branches...
    Les SGBD en colonne implémentent directement et nativement la relation universelle. Les branches apparaissent comme par magie avec un MCD (ou assimilé) lorsque l'historique est modélisé en 3NF en se limitant au Faits et Dimensions d'analyse, avec le fait en relation n-n avec toutes et chacune des dimensions, comportant un enregistrement "Undefined" plutôt que NULL dans la relation. Pour ma part, je n'ai jamais vu d'intérêt à modéliser en flocon en raison du surcoût magistral que cela implique, pour un gain quasi minime pour l'utilesateur final.

    Cette relation universelle n’est jamais qu’une vue (au sens relationnel et SQL), cf. § 4.2 de l’article.
    Dans son ouvrage auquel je fais référence, Ullman ne fait aucunement référence aux mots « star », « fact », « dimension » et autres termes connotés data warehouse : je ne vois pas en quoi sa relation universelle serait issue de la modélisation en étoile.
    Parce que j'y vois des similitudes flagrantes.
    Et parce qu'il y a des plateformes "Data warehouses logiques" qui l'implémentent, par exemple chez SAP, avec ses datamarts (plus ou moins) automatiques sur les modules de gestion SAP R/3, sans parler des déjà citées SGBD en colonnes.

    Certes, mais ça n’est pas l’objet de la table CHR que j’évoquais. Son prédicat est le suivant : Le cours C sera donné à l’heure H dans la salle R.
    Effectivement, abstraction est faite des professeurs et élèves ;-)

    En relationnel, on modélise l’historisation des données, sous le contrôle de la 6NF, point barre.
    Oui chef, c'est bien pourquoi les systèmes des séries temporelles ont des moteurs de technologies différentes.
    Si par historisation vous entendez star schéma, mon père disait : «*'on', pronom imbécile, qualifie celui qui l'emploie…». En effet, comme le souligne fort à propos Dr. Ralph Kimball, que gagnerez-vous à modéliser les dimensions en 6NF ? Hmm ? Juste que votre client vous fustigera parce que non seulement vous lui facturerez du temps perdu, mais surtout parce que vous aurez tous ses utilisateurs sur le dos, ainsi que tous les gens du support…
    Vous avez déjà vu un éléphant caché derrière une fraise des bois ? Non ? C'était parce qu'il était bien caché !

    Plutôt que jumeaux, autant parler de triplés. Kimball oublie le troisième élément de la bande, l’intégrité des données. A quoi bon seulement les « twin goals » si on mouline des données pourries, conséquences par exemple de la dénormalisation ? Quoi qu’il en soit, en plus de quarante ans de modélisation (MCD, MLD, MPD), j’ai toujours préconisé (quand SQL est arrivé), l’encapsulation des requêtes complexes dans des vues (qui ne sont après tout que des tables virtuelles), en sorte que celles-ci soient understandable pour les développeurs et autres utilisateurs.
    Haha, ce n'est pas parce qu'une donnée est dénormalisée qu'elle est pourrie C'est seulement le modèle qu'un puriste des formes normales peut putréfier ;-)
    Un schéma étoile / requête universelle respecte parfaitement l'intégrité des données, et il a l'avantage de mettre en lumière la qualité des données qui, bien que respectant l'intégrité conceptuelle des formes normales lors des transactions, vient juste fausser les statistiques ! Ex. un changement de statut social, la récente réorganisation des régions administratives…Pour corriger ces "erreurs" statistiques, des "astuces" de modélisation, tout aussi respectueuses de l'intégrité conceptuelles, sont introduites, par exemple les variations lentes des dimensions, ou les regroupements de dimensions. Là, ce n'est pas pour un simple respect de formes normal, tout aussi justifié soit-il, mais pour avoir des statistiques correctes, c'est-à-dire… crédibles et vérifiables.

    Quant à la performance, sujet dont j’ai eu le souci depuis près de soixante ans (ben oui), Kimball me fait l’effet de prêcher sur le mode incantatoire. De mon côté, je suis toujours resté dans les clous de la théorie relationnelle de Codd du jour où j’ai découvert celle-ci. Cela m’a permis de m’engager auprès de mes clients sur la performance des applications suite bien entendu à prototypage à mort. En matière de performance je ne crois qu’aux mesures qu’on en a faites (voyez par exemple ici). Quand les chiffres ne sont pas bons, on optimise, mais sans remettre en cause la modélisation si elle est correcte. Quand elle a été faite en dépit du bon sens, en toute incompétence, je la fais mettre à la poubelle et je prends ma casquette de concepteur pour piloter ceux qui referont les MCD.
    Dr. Ralph Kimbal est un pionnier mondialement reconnu qui m'a changé la vie, a décuplé ma passion pour les systèmes informatique en général (la souris, c'est lui, à Palo Alto), et l'a fait naitre pour la Business Intelligence et la modélisation étoile grâce à une mission de veilleur technologique à EDF dans les années 90, renforcée par les chaudes querelles de clochers avec Dr. Bill Inmon et d'autres tout aussi reconnus, Tout comme Codd, d'ailleurs, mais je n'ai pratiqué ce dernier que pour mieux faire la BI, alors voir que vous le jettiez à la poubelle pour incompétence parce qu'il l'a pas poussé les formes normales jusqu'aux dimensions m'indiffère totalement, libre à vous.

    Où sont les chiffres justifiant les allégations de Kimball ? En leur absence, je ne peux qu’être d’un total scepticisme.
    1°/ Le nombre d'exemplaires vendus de ses ouvrages sur la durée, donc au delà de l'effet de mode marketing
    2°/ Le CA de sa société de consulting
    3°/ Le nombre de CV d'experts qui se réclament de lui
    4°/ Le nombre de systèmes informatiques ayant été en production reposant sur son modèle d'architecture et leur durée de maintient en condition opérationnelle
    5°/ Le nombre d'éditeurs offrant des spécificités en relation avec ladite architecture et leur "notoriété" dans les domaines SGBD (même Teradata a fini par s'y mettre), ETL, Modélisation, Bussiness Intelligence (même Microsoft le cite expressément, mais c'est plus récent, je n'ai pas l'info de savoir lequel est allé chercher l'autre)

    Là encore, c’est le mode incantatoire qui est de mise. Depuis tout ce temps où chez mes nombreux clients (tous des grands comptes, banque, assurance, industrie, distribution, transport ferroviaire, mutuelles, etc.), j’ai modélisé, audité, soigné les bases de données mal en point, je n’ai jamais eu à violer la normalisation (3NF), ou plutôt j’ai fait normaliser les tables qui ne l’étaient pas, justement pour des raisons d’intégrité des données, voire de performance.
    Vous avez dans ses propos la réponse…
    J'ai fait de même chez mes clients, de la mission de trois jours à trois ans et 50 projets sur 18 ans de bons et loyaux services en missions BI facturées, et hors l'activité de support transverse y compris auprès des commerciaux (qui ont vite compris qu'un projet BI au forfait ne se vend pas de la même manière qu'un OLTP), DP, managers N1 et N2 (en partant du haut) et bien sûr des consultants en mission ou en formation et hors l'activité de veille techno active auprès des éditeurs dont Teradata, MS, Oracle, IBM (qui m'invitaient à leurs POT), Sybase (mes killers-questions ont laissé des traces jusqu'à avoir des réponses dans les versions ultérieures, parfois des années plus tard, un manager Teradata m'a offert son livre…) dans une ENS majeure, et croyez-moi, si une modélisation R-OLAP est mal foutue, ça se voit tout de suite.

    Au fait, Kimball parle de la troisième forme normale (3NF), mais sans en donner la définition. Etrange ! (On trouvera cette définition dans mon article, mais peut-être que Kimball et moi ne parlons pas de la même chose...).
    Oseriez-vous lui faire cette remarque en face-à-face ?

    Non seulement la 3NF est mise à mal,
    Ouillouillouille

    Je suis désolé, mais je pourrais poursuivre ad nauseam la litanie de mes observations en tant que concepteur et DBA...
    Tout ça parce que vous avez extrait trois phrases de cet excellent ouvrage
    Vous avez à mon avis raté d'œuvrer sur un projet --et un modèle de donné-- de (BUSSINESS) INTELLIGENCE mais si ça vous arrive, surtout faites un grand flush sur le modèle et les bonnes pratiques existants, et repartez d'une feuille blanche, faites vous vos propres bonnes pratiques, ça vaudra mieux, mais pas sûr que votre client appréciera

  14. #14
    Nouveau membre du Club

    Homme Profil pro
    Conseil - Consultant en systèmes d’information
    Inscrit en
    Septembre 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d’information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2019
    Messages : 11
    Points : 28
    Points
    28
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonjour,

    Je ne reprendrai pas l'ensemble des arguments de Fsmrel auxquels je souscris totalement sans réserve.


    Au sujet de la dénormalisation, je donnerai juste un exemple concret que j'ai vécu à de nombreuses reprises dans le monde bancaire : celui de la fusion bancaire.
    Il s'agit d'une opération courante dans laquelle un banque en absorbe une autre. En ce moment, c'est le Crédit du Nord qui fusionne avec la Société Générale.
    Dans un monde dénormalisé, les redondances sont légion et on retrouve le code banque dans de nombreuses tables, non seulement à sa place, dans la table des banques, mais aussi dans celles des agences, des comptes, voire des mouvements sur compte...
    Et là, c'est le drame, à l'occasion d'une fusion il faut renuméroter des millions voire des milliards de lignes, là où, avec un modèle normalisé, seule une ligne dans la table des banques aurait été impactée.
    On a donc non seulement de la redondance (coût de stockage et de mise à jour augmenté, risque d'incohérence), de la performance dégradée (nombre de mises à jour augmenté en très forte proportion), de la complexité augmentée (pour la même raison) et des coûts humain considérables lors des fusions ou d'opérations similaires de modification en masse.
    On pourrait reprendre cet argumentaire avec la propagation des SIRET, chose assez courante elle aussi, dans le modèle de données ou tout autre cas de redondance.
    Et bien vous allez rire, c'est un problème qui n'a pas beaucoup d'impact sur le modèle d'un star schéma correctement modélisé dans les règles de l'art !!BI!! ;-) car cela juste ajoute 1/ des faits (un pacson !) 2/ des enregistrements dans les dimensions 3/ des enregistrements dans les groupements de dimensions éventuels 4/ quelques colonnes parci-parlà pour unifier les labels, gérer les hiérarchies. Avec l'ajout d'enregistrement, le modèle ne bouge pas. Seulement l'ajout de colonnes.
    Et vous savez pourquoi ? Je vous le donne en mille : il n'y a qu'une seule colonne dans une seule dimension qui contient une donnée conceptuelle de filtrage ou d'affichage !!!!
    Parce que en amont il y a les traitements de l'alimentation ETL qui font que la moindre redondance d'information couterait des fortunes !!!! Et puis ce ne serait pas accepté par les CP Alimentation. Et puis cela choquerait les designers des restitutions de masse, si d'aventure ça passait chez les concepteurs des univers BO ou des microcubes, les plus proches du modèle relationnel !!!!
    Le gros du travail est en amont dans l'ETL mais les règles de mise en correspondances sont assez simples (c'est juste fastidieux car répétitif).
    De même, puisque le modèle reste peu impacté, les restitutions, applis OLAP, Data Mining, Reporting de masse continueront d'être produits avec les nouvelles données mixées avec les autres.
    C'est d'ailleurs pour cela qu'il y a des offres commerciales de datamart préconçus, notamment en RH.
    On est loin du bug de l'an 2000, qui avait fait les choux gras des ENS.
    Le principal est de trouver l'expression formelle du Grain des Faits qui correspond exactement, sine qua non. Mais ça, c'est un travail d'ouverture d'esprit et assorti d'un peu d'expérience, c'est accessible.

  15. #15
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 114
    Points : 31 609
    Points
    31 609
    Billets dans le blog
    16
    Par défaut
    Bonsoir,
     
    Citation Envoyé par escartefigue
    Au sujet de la dénormalisation, je donnerai juste un exemple concret que j'ai vécu à de nombreuses reprises dans le monde bancaire : celui de la fusion bancaire.
    Tu réveilles en moi un vieux souvenir. Ça se passait à la SNCF, en 1993, alors que j’auditais le MCD du projet Aristote. Je croise Max, qui de son côté s’occupait de maintenir Socrate, et qui soudain gueule : « 0C7 ! Ça n’et pas possible ! » Il est vrai que c’était un garçon particulièrement méticuleux, pas un perdreau de l’année, et pourtant... Il a évidemment examiné les données (les titres de transport) et trouvé deux enregistrements dont la clé avait même valeur. Pourquoi 0C7 ? Je ne sais plus, peu importe, mais il faut déjà dire que le logiciel utilisé pour Socrate était l’antique Sabre des années cinquante, acheté à American Airlines pour qui ce fut une bouffée d’oxygène financière substantielle. Bref, il s’est trouvé qu’à un moment donné il avait été décidé d’enrichir les fichiers en y enregistrant des titres de transport créés par l’homologue anglais de la SNCF et ce fut ce qui provoqua le problème des clés en double. Que faire ? Ne plus utiliser de clés ? Heureusement, non ! (d’autres auraient été moins regardants...). Le champ clé en cause (j’ai bien dit « champ ») fut enrichi d’un octet pour accueillir une lettre, disons « S », pour SNCF et «  B » pour le partenaire anglais. Et en avant pour un long travail de reprise et de validation, tu vois ce que je veux dire... En tout cas, une fois identifiée la cause de l’erreur, cela nous incita à aller écluser un demi bien mérité. 

  16. #16
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 114
    Points : 31 609
    Points
    31 609
    Billets dans le blog
    16
    Par défaut
    Bonsoir,
     
    Citation Envoyé par Michka1111
    Les SGBD en colonne implémentent directement et nativement la relation universelle.
    Oui, vous nous avez expliqué cela en long et en large. Nous sommes patients, mais le sujet concerne la théorie relationnelle (cf. le chapitre 7 de l’ouvrage de Ullman), avec la modélisation ullmanienne aboutissant à une vue universelle, à confronter avec la modélisation E/R. Les data warehouses et leurs modèles sont donc ici hors sujet.


    Citation Envoyé par Michka1111
    Un cours est prodigué par un professeur aux élèves inscrits à ce cours

    Citation Envoyé par fsmrel
    Certes, mais ça n’est pas l’objet de la table CHR que j’évoquais. Son prédicat est le suivant : Le cours C sera donné à l’heure H dans la salle R.

    Citation Envoyé par Michka1111
    Effectivement, abstraction est faite des professeurs et élèves
    Bis repetita non placent. Sachez que la table CHR n’a aucune raison d’être dotée d’attributs supplémentaires, sous peine d’être dénormalisée (horresco referens!) Si l’on veut par exemple faire intervenir les professeurs, le prédicat est le suivant :

    Le professeur P donne le cours C à l’heure H dans la salle R.

    Ce qui donne lieu à la jointure COURS  CHR (encapsulée dan la vue THR_V).

    De même, si l’on veut faire intervenir les étudiants, le prédicat est le suivant :

    L’étudiant E suit le cours C à l’heure H dans la salle R.

    Ce qui donne lieu à la jointure SHR  CHR  ETUDIANT (encapsulée dans la vue CHS_V).

    De la même façon, on peut aussi mettre en oeuvre le prédicat :

    L’étudiant E suit le cours C donné par le professeur P à l’heure H dans la salle R.

    Etc.


    Citation Envoyé par Michka1111
    Oui chef, c'est bien pourquoi les systèmes des séries temporelles ont des moteurs de technologies différentes.
    Si par historisation vous entendez star schéma, mon père disait : «*'on', pronom imbécile, qualifie celui qui l'emploie…». En effet, comme le souligne fort à propos Dr. Ralph Kimball, que gagnerez-vous à modéliser les dimensions en 6NF ? Hmm ? Juste que votre client vous fustigera parce que non seulement vous lui facturerez du temps perdu, mais surtout parce que vous aurez tous ses utilisateurs sur le dos, ainsi que tous les gens du support…
    Vous avez déjà vu un éléphant caché derrière une fraise des bois ? Non ? C'était parce qu'il était bien caché !
    Vous nous lassez avec votre bavardage. Appliquez la proposition numéro 7 du Tractatus de Wittgenstein et étudiez la 6NF puisque vous l’évoquez.


    Citation Envoyé par Michka1111
    Haha, ce n'est pas parce qu'une donnée est dénormalisée qu'elle est pourrie C'est seulement le modèle qu'un puriste des formes normales peut putréfier
    Grotesque et puéril.


    Citation Envoyé par Michka1111
    alors voir que vous le jetiez à la poubelle pour incompétence parce qu'il l'a pas poussé les formes normales jusqu'aux dimensions m'indiffère totalement, libre à vous.
    Je ne dis pas que Kimball est incompétent, je dis qu’il n’apporte pas la moindre preuve quant à ses affirmations :

    « The normalized structures must be off -limits to user queries because they defeat the twin goals of understandability and performance. »

    Ce qui relève donc de l’incantation.

    Quand on affirme, il faut étayer. Comme je l’ai précédemment signalé, voyez par exemple ici.

    Je reprends ce que ‘ai précédemment écrit :

    Citation Envoyé par fsmrel
    Quant à la performance, sujet dont j’ai eu le souci depuis près de soixante ans (ben oui), Kimball me fait l’effet de prêcher sur le mode incantatoire. De mon côté, je suis toujours resté dans les clous de la théorie relationnelle de Codd du jour où j’ai découvert celle-ci. Cela m’a permis de m’engager auprès de mes clients sur la performance des applications suite bien entendu à prototypage à mort. En matière de performance je ne crois qu’aux mesures qu’on en a faites (voyez par exemple ici). Quand les chiffres ne sont pas bons, on optimise, mais sans remettre en cause la modélisation si elle est correcte. Quand elle a été faite en dépit du bon sens, en toute incompétence, je la fais mettre à la poubelle et je prends ma casquette de concepteur pour piloter ceux qui referont les MCD.

    Où sont les chiffres justifiant les allégations de Kimball ? En leur absence, je ne peux qu’être d’un total scepticisme.
    Et vous répondez :

    Citation Envoyé par Michka1111
    Citation Envoyé par fsmrel
    Où sont les chiffres justifiant les allégations de Kimball ? En leur absence, je ne peux qu’être d’un total scepticisme.
    1°/ Le nombre d'exemplaires vendus de ses ouvrages sur la durée, donc au delà de l'effet de mode marketing
    2°/ Le CA de sa société de consulting
    3°/ Le nombre de CV d'experts qui se réclament de lui
    [...]

    Je vous parle de la performance des bases de données, exemple : CPU Time = 00:32:23 ; I/O Time = 20:50:17.

    Et pour vous la performance se mesure en nombre de livres vendus et au CA de la société !

    Par ailleurs j’ai évoqué le volet « intégrité des données », et ça n’est pas le moindre. Deux exemples parmi d’autres :

    Le DI d’une grande société d’assurance me disait que si sa base de données n’était pas intègre, ça se serait su. J’ai néanmoins expertisé cette base de données, et au résultat, preuves à l’appui : 30% d’erreur... Ses équipes ont passé un an pour corriger ça...

    Un autre exemple : chez une mutuelle qui nous paye nos compléments de retraite. Opération lourde, à savoir la migration de l’ancien au nouveau système. Je fis observer que l’intégrité référentielle n’avait pas été prévue, mais on me rétorqua que les contrôles avaient été prévus dans les programmes, donc pas de souci à se faire. Une fois l’opération effectuée, vous connaissez mon scepticisme, j'ai vérifié et constaté la perte de 800 000 périodes de carrière. Dommage pour les futurs retraités ainsi lésés... Panique à bord et décision fut prise de recommencer avec mise en oeuvre de cette fameuse intégrité référentielle...  

    Dans les deux cas, cela n’empêche certainement pas de faire de la BI, on n’est pas à 800 000 périodes de carrière près, mais mettez-vous à la place des futurs retraités...


    Citation Envoyé par Michka1111
    Citation Envoyé par fsmrel
    Au fait, Kimball parle de la troisième forme normale (3NF), mais sans en donner la définition. Etrange ! (On trouvera cette définition dans mon article, mais peut-être que Kimball et moi ne parlons pas de la même chose...)
    Oseriez-vous lui faire cette remarque en face-à-face ?

    Bien sûr ! Une anecdote : j’ai déjà débattu de la normalisation avec l’Université. Par exemple, dans les années quatre-vingts, un de ses professeurs avait créé un système expert pour la conception des bases de données (thèse de doctorat). Ce système fut commercialisé et j’en fis l’acquisition. Dans le titre de l’ouvrage l’accompagnant, il était précisé que le système permettait de normaliser en 4NF. J’avais alors constaté que les dépendances multivaluées étaient passées sous silence, or elles interviennent dans la définition de la 4NF (voyez le paragraphe 1-3-6-6 de l’article). Je conçus un modèle où la 4NF état violée. J’en fis la démonstration lors d’une présentation du système au public : la thésarde qui m’avait pris en charge paniqua... Dans la version suivante, le terme « 4NF » fut remplacé par celui de « BCNF ». Le père du système ne m’en voulut évidemment pas et nous devînmes amis. Qui plus est, par la suite il prenait ma défense quand, par exemple un auteur contestait mes positions : « Si François te l’a dit, prends en compte ses remarques ».

    Pour vos autres commentaires, sachez que j’en reste à mes acquits. Que les applications OLAP et compagnie exploitent une base de données du type gigo (garbage in, garbage out), allez vanter leurs avantages à l’assureur et à la mutuelle dont j’ai parlé (qui ne sont pas les seuls ayant dû nettoyer à grands frais leurs base de données), escartefigue me comprendra.

  17. #17
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 377
    Points : 39 852
    Points
    39 852
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    escartefigue me comprendra.
    Pour faire court : je confirme en tous points !

  18. #18
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 114
    Points : 31 609
    Points
    31 609
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Pour faire court : je confirme en tous points !
     
    Merci Capitaine !

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/07/2016, 22h34
  2. Réponses: 1
    Dernier message: 10/01/2014, 20h37
  3. dessiner un Modèle Conceptuel des Données
    Par hous04 dans le forum Outils
    Réponses: 1
    Dernier message: 04/12/2008, 01h10
  4. Pb avec Modèle conceptuel des données.
    Par Ripps dans le forum Access
    Réponses: 2
    Dernier message: 19/01/2007, 15h56
  5. Modèle conceptuel de données
    Par strange-girl dans le forum Access
    Réponses: 2
    Dernier message: 08/07/2006, 21h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo