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 :

Aide optimisation schéma BDD


Sujet :

Schéma

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Points : 80
    Points
    80
    Par défaut Aide optimisation schéma BDD
    Bonjour,

    Je suis en train de créer une petite BDD pour me refaire la main sur les databases. Mon but est de pouvoir lister les universités en fonction de leur ville.

    Voici une image du schéma :
    Nom : jd8kI.png
Affichages : 141
Taille : 106,2 Ko

    Je voudrais donc avoir votre avis sur les éventuelles optimisations/corrections.

    Merci !

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Bonjour, si vous êtes débutant en modélisation de données, c'est vraiment pas mal !

    Quelques petites choses...

    1) Quel est votre logiciel de modélisation ?
    La lecture du schéma n'est pas toujours évidente.
    En plus, votre schéma est une sorte de mélange entre MCD, MLD (il y a les clés étrangères) et diagramme de classes UML (les cardinalités sont inversées par rapport au MCD merisien).
    Essayez Looping !

    2) Vous avez une propriété booléenne "country.has_regions" qui laisse supposer qu'un "country" peut ne pas avoir de "region" or vos cardinalités sont (1 - 1,n) !
    Soit vous créerez une région fictive vide pour toujours avoir au moins une région par pays, soit vos cardinalités sont fausses.

    3) Je suppose que les indications "nn" à côté de certaines propriétés signifie "not null" ?
    Vous autorisez donc des clés étrangères à NULL et fsmrel ne va pas tarder à vous expliquer pourquoi c'est une mauvaise chose avec sa sulfateuse à bonshommes null !

    4) Vous posez une contrainte d'unicité ("uq" veut bien dire "unique" ?) au nom des villes alors qu'il y a un nombre significatif de villes portant le même nom, même au sein d'une même région : par exemple, en ex Midi-Pyrénées et aujourd'hui Occitanie, il y a Auterive en Haute-Garonne et Auterive en Tarn-et-Garonne. Et comme votre BDD est à caractère international, souvenez-vous du film "Paris, Texas"...

    5) Vous utilisez beaucoup le type "text". Optimisez les types de données !
    Par exemple, pour le nom du pays, un VARCHAR(40) sera suffisant.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    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 : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Bonjour,

    Ce modèle est effectivement un bon début, mais je confirme les conseils de Cinephil : passez tout d'abord par l'étape MCD, qui permet une bonne conception claire et limpide, le MLD (c'est ce que votre outil a plus ou moins fait) sera ensuite automatiquement déduit du MCD (ainsi que le code SQL qui va avec).
    Par ailleurs, sur le fond, votre modèle pose quelques petits soucis :
    • Une Université peut être associée à une ville et à un code postal qui ne correspond pas à cette ville .
    • Une ville étant associée à une région et une région étant associée à un pays, il est inutile d'associer la ville au pays.


    Bonne continuation !
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Bonjour, si vous êtes débutant en modélisation de données, c'est vraiment pas mal !

    Quelques petites choses...

    1) Quel est votre logiciel de modélisation ?
    La lecture du schéma n'est pas toujours évidente.
    En plus, votre schéma est une sorte de mélange entre MCD, MLD (il y a les clés étrangères) et diagramme de classes UML (les cardinalités sont inversées par rapport au MCD merisien).
    Essayez Looping !

    2) Vous avez une propriété booléenne "country.has_regions" qui laisse supposer qu'un "country" peut ne pas avoir de "region" or vos cardinalités sont (1 - 1,n) !
    Soit vous créerez une région fictive vide pour toujours avoir au moins une région par pays, soit vos cardinalités sont fausses.

    3) Je suppose que les indications "nn" à côté de certaines propriétés signifie "not null" ?
    Vous autorisez donc des clés étrangères à NULL et fsmrel ne va pas tarder à vous expliquer pourquoi c'est une mauvaise chose avec sa sulfateuse à bonshommes null !

    4) Vous posez une contrainte d'unicité ("uq" veut bien dire "unique" ?) au nom des villes alors qu'il y a un nombre significatif de villes portant le même nom, même au sein d'une même région : par exemple, en ex Midi-Pyrénées et aujourd'hui Occitanie, il y a Auterive en Haute-Garonne et Auterive en Tarn-et-Garonne. Et comme votre BDD est à caractère international, souvenez-vous du film "Paris, Texas"...

    5) Vous utilisez beaucoup le type "text". Optimisez les types de données !
    Par exemple, pour le nom du pays, un VARCHAR(40) sera suffisant.
    Ah merci pour vos remarques détaillés, ça me permet de m'avancer sur mon petit projet personnel.
    L'outil de modélisation que j'utilise est assez brouillon, datant des années 2000 donc il n'est pas optimal ahah

    Alors oui, vos questionnements sur "nn" "uq" sont corrects. Pour le type "text", je n'arrivais pas à trouver le type sur mon outil donc bon, mais je note. Oula pour les clés étrangères, grosse erreur d'inattention de ma part (pas de sulfateuse ahah).

    Je comprends votre raisonnement sur le problème causé par l'unicité des noms de villes. Pas mal le film aussi ahah.

    Je vais remodéliser mon schéma sur mySql et vous montrer les différents changements. Merci !

  5. #5
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    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 : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Citation Envoyé par Iloyd Voir le message
    Je vais remodéliser mon schéma sur mySql
    Attention, si vous utilisez MySQL Workbench, vous allez encore travailler directement sur le MLD, et non le MCD.
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par Paprick Voir le message
    Bonjour,

    Ce modèle est effectivement un bon début, mais je confirme les conseils de Cinephil : passez tout d'abord par l'étape MCD, qui permet une bonne conception claire et limpide, le MLD (c'est ce que votre outil a plus ou moins fait) sera ensuite automatiquement déduit du MCD (ainsi que le code SQL qui va avec).
    Par ailleurs, sur le fond, votre modèle pose quelques petits soucis :
    • Une Université peut être associée à une ville et à un code postal qui ne correspond pas à cette ville .
    • Une ville étant associée à une région et une région étant associée à un pays, il est inutile d'associer la ville au pays.


    Bonne continuation !
    Bonsoir !
    Je vois, je vais me former au MCD correctement et m'informer sur ce qu'est le MLD.
    Sur votre première remarque :

    • Une Université peut être associée à une ville et à un code postal qui ne correspond pas à cette ville .

    Oui ! Je viens de voir cette erreur après relecture, du coup, j'ai pensé à utiliser un lien identifiant. Une sorte de concaténation de PRIMARY KEY.

    • Une ville étant associée à une région et une région étant associée à un pays, il est inutile d'associer la ville au pays.

    Effectivement, ça me rappelle une règle de transitivité (comme dans les relations binaires en maths) :
    Nom : relationbinaire.PNG
Affichages : 115
Taille : 3,2 Ko

    Merci !

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 95
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par Paprick Voir le message
    Attention, si vous utilisez MySQL Workbench, vous allez encore travailler directement sur le MLD, et non le MCD.
    Ah merci, j'y allais tête baissé ahah. Je vais utiliser et me familiariser avec votre outil de modélisation, reproduire mon schéma proprement et revenir !

Discussions similaires

  1. Optimiser une BDD
    Par zanou666 dans le forum IHM
    Réponses: 3
    Dernier message: 22/10/2007, 15h44
  2. Elaborer schéma BDD MySQL
    Par Sami Xite dans le forum Installation
    Réponses: 10
    Dernier message: 16/11/2006, 14h26
  3. Aide au développement BDD
    Par Cluxibilovitch dans le forum WinDev
    Réponses: 3
    Dernier message: 02/08/2006, 13h16
  4. PB Accès schémas BDD dans sql server 2005
    Par tikam dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 16/06/2006, 08h42
  5. [Conception]Quel outil graphique utiliser pour schéma BDD?
    Par nicoaix dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 16/01/2006, 12h34

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