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

  1. #1
    Membre habitué
    Développeur, ou gestionnaire, qui est responsable de la gestion d'un champ clef descriptif ?
    Bonjour,

    Une table bien construite, contient une clef primaire indexée unique, artificielle numérique (souvent autoincrémentée), pour chaque enregistrement.
    Parfois, le gestionnaire réclame en plus la présence d'une clef descriptive indexée unique et nullable, qui lui tient lieu d'index parlant.

    tm_personnels(num_personnel;cod_personnel;nom;prenom;date_naissance;date_titularisation)
    tm_postes(num_poste;code_poste;libelle_mission;libelle_fonction;direction)

    Le développeur identifie ses enregistrements grâce à la clef primaire num_personnel.
    Pourquoi le gestionnaire réclame t il un index parlant cod_personnel ?
    Quels sont les besoins auxquels semble répondre cette clef unique ?
    Le développeur est-il tenu d'assister le gestionnaire pour lui composer son index descriptif ?

    Certains vieux projets, contiennent parfois des clefs descriptives super longues.
    C'est quelque chose de fumeux, pour moi, car je n'en comprends pas l'utilité.
    Que faut-il en penser ?

    Pourriez-vous m'aider à faire le tour de la question, s'il-vous-plaît.
    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Bonsoir Martinbrait,

    Le gestionnaire n'a pas à exiger comment obtenir les informations dont il a besoin, mais seulement préciser quelles sont ces informations et à quelle fréquence et sur quel support il souhaite les obtenir.

    À partir de là, le rôle du technicien (le développeur, le DBA, l'architecte peu importe) est de définir comment satisfaire ce besoin.
    Les index sont de la responsabilité des techniciens, des informaticiens, pas des gestionnaires.
    Ils sont la pour optimiser les temps d'accès lors des recherches (et malheureusement au détriment des temps d'accès lors des mises à jour).
    Ce que doit faire le technicien, c'est de vérifier que, pour les critères de recherche du gestionnaire, les accès sont suffisamment optimisés pour permettre de récupérer l'information dans un temps acceptable.
    Point barre
    Et bien évidemment, ce qui est acceptable à un instant "t" peut ne plus le devenir à "t+1" parce que les données ont été modifiées, que les volume ont augmenté.
    Le rôles des équipes techniques est de surveiller la dégradation éventuelle et d'y remédier le cas échéant. Le remède peut éventuellement être l'ajout d'index, mais il y a bien d'autres pistes possibles (suppression des données obsolètes, réorganisation, analyse des requêtes, vérification des types de verrous et de l'isolation...)

    À chacun son métier

    Cela dit, le plus souvent, à partir du moment où les tables consultées contiennent des volumes significatifs, des index sur des critères fonctionnels (nom, matricule, date...) sont requis pour que les recherches restent performantes.

  3. #3
    Membre habitué
    clef descriptive : bien appréhender la richesse et la pertinence de l'indexation
    Citation Envoyé par Escartefigue
    Ce que doit faire le technicien, c'est de vérifier que, pour les critères de recherche du gestionnaire, les accès sont suffisamment optimisés pour permettre de récupérer l'information dans un temps acceptable.
    Point barre
    Et bien évidemment, ce qui est acceptable à un instant "t" peut ne plus le devenir à "t+1" parce que les données ont été modifiées, que les volume ont augmenté.
    Je prends note, merci !




    Par exemple, pour le classement d'une bibliothèque,
    je dois gérer les informations suivantes :

    Monographies imprimées
    Monographies anciennes
    Publications en série
    Vidéogrammes
    Enregistrements sonores
    Documents cartographiques
    Musique imprimée
    Image fixe
    Ressources électroniques
    Tous types de documents : abréviations
    Choix et la rédaction des points d'accès
    Translittération
    Données locales (d'exemplaires)

    '______________________________________
    Qui choisit les codes ISO, normes et référentiels ?
    Le développeur a-t-il son mot à dire ?
    Le développeur doit-il subir les choix médiocres éventuels du cahier des charges ?

    Le développeur peut-il suggérer les colonnes d'une table des codes de langue, une table des codes de pays
    une table des codes de fonction, une table d'abbréviation des noms des départements ?

  4. #4
    Expert éminent sénior
    Dans les bibliothèque, ou plus largement les médiathèques, on traite des "documents"
    Ces documents sont de type livre, périodique, CD, DVD, liseuse, tablette, BD...

    Chaque document peut être possédé en un ou plusieurs exemplaires. Dans les grandes bibliothèques, il peut y avoir de nombreux exemplaires d'un même document.
    Pour ce qui concerne l'identification, il faut donc distinguer
    • l'identification de chaque exemplaire qui doit bien sûr être unique, un identifiant attribué par le SGBD est parfait pour cet usage, identifiant qu'on imprime sous forme de code barre à coller sur chaque exemplaire et qui facilitera la gestion en utilisant des douchettes laser
    • l'identification du document commune à tous les exemplaires d'un même document. Pour ce besoin, on peut utiliser les codes ISBN ou ISSN, mais attention, les documents datant d'avant 1970 n'en ont pas.
      on peut également utiliser le code barre marchand, mais là aussi, les documents les plus anciens n'en ont pas.
    • l'index de classement ou "cote", c'est une codification alphanumérique apposée par chaque bibliothèque sur la tranche et/ou la couverture de chaque document et qui permet d'en connaître la nature (R=Roman, BA=BD Adulte, FJ=film jeunesse, ME=manga enfants...). Ce code n'est pas unique, il y a de nombreux homonymes (par exemple, la cote "P COB" correspond aussi bien à tous les romans policiers écrits par Harlan Coben que ceux écrits par les autre s auteurs dont le nom commence par "COB"


    Pour la gestion des médiathèques, il existe de nombreux logiciels sur le web dont certains sont gratuits (par exemple WaterBear).
    Il est important de bien se conformer aux normes en vigueur car les médiathèques fonctionnent toujours en réseau, avec des têtes de réseau dans le département et la Bibliothèque Départementale de Prêts (BDP) qui prête son fonds à l'ensemble des médiathèques et points lecture du département. Les échanges de documents s'accompagnent d'échanges de fichiers normés (unimarc le plus souvent).

  5. #5
    Membre habitué
    Citation Envoyé par escartefigue Voir le message
    Dans les bibliothèque...
    Chaque document peut être possédé en un ou plusieurs exemplaires. Dans les grandes bibliothèques, il peut y avoir de nombreux exemplaires d'un même document.
    Pour ce qui concerne l'identification, il faut donc distinguer
    • l'identification de chaque exemplaire qui doit bien sûr être unique, un identifiant attribué par le SGBD est parfait pour cet usage, identifiant qu'on imprime sous forme de code barre à coller sur chaque exemplaire et qui facilitera la gestion en utilisant des douchettes laser
    • l'identification du document commune à tous les exemplaires d'un même document. Pour ce besoin, on peut utiliser les codes ISBN ou ISSN, mais attention, les documents datant d'avant 1970 n'en ont pas.
      on peut également utiliser le code barre marchand, mais là aussi, les documents les plus anciens n'en ont pas.
    • l'index de classement ou "cote", c'est une codification alphanumérique apposée par chaque bibliothèque sur la tranche et/ou la couverture de chaque document et qui permet d'en connaître la nature (R=Roman, BA=BD Adulte, FJ=film jeunesse, ME=manga enfants...). Ce code n'est pas unique, il y a de nombreux homonymes (par exemple, la cote "P COB" correspond aussi bien à tous les romans policiers écrits par Harlan Coben que ceux écrits par les autre s auteurs dont le nom commence par "COB"
    ...
    Bravo pour vos capacités à identifier les besoins avec tant de précisions !
    Avez vous une bibliographie à me conseiller, et le quota d'exercices nécessaires,
    pour être capable de réaliser à mon tour, de bonnes analyses et des bons schémas MCD ?
    De votre point de vue, une seule personne peut-elle être :
    concepteur de tables, administrateur de données, développeur de formulaires et d'états,
    chef de projet pour collecter les nouveaux besoins, spécificateur pour rédiger les manuels
    techniques et les manuels utilisateurs ?
    Combien de tables maxi faut il gérer, quand on sait qu'on reste seul sur un poste ?

  6. #6
    Expert éminent sénior
    Citation Envoyé par martinbrait Voir le message
    Bravo pour vos capacités à identifier les besoins avec tant de précisions !
    Je n'ai aucun mérite : j'anime depuis 15 ans une médiathèque avec des amis dans mes heures de loisir



    Citation Envoyé par martinbrait Voir le message
    Avez vous une bibliographie à me conseiller, et le quota d'exercices nécessaires,
    pour être capable de réaliser à mon tour, de bonnes analyses et des bons schémas MCD ?
    il y a un fil de discussion ICI sur ce sujet



    Citation Envoyé par martinbrait Voir le message
    De votre point de vue, une seule personne peut-elle être :
    concepteur de tables, administrateur de données, développeur de formulaires et d'états,
    chef de projet pour collecter les nouveaux besoins, spécificateur pour rédiger les manuels
    techniques et les manuels utilisateurs ?
    Quand j'ai débuté, il n'était pas rare de faire la quasi totalité des tâches de l'étude préalable jusqu'au suivi d'exploitation, en passant par la modélisation des bases, la conception des traitements, le développement, la recette...
    C'était passionnant de pouvoir faire des choses aussi variées et de maîtriser l'ensemble du processus.
    Mais c'était possible parce qu'à l'époque, les architectures étaient simples, tout se passait sur une seule bécane, on n'utilisait guère que 2 ou 3 langages différents, et les exigences graphiques étaient nulles (tout était restitué sur écrans verts )
    De nos jours, il faut une telle somme de compétences que ce serait trop difficile d'accomplir seul toutes ces fonctions.
    Les SGBD-R à eux seuls, sont difficiles à maîtriser totalement. Ils requièrent du personnel spécialisé si on veut en tirer la quintescence.



    Citation Envoyé par martinbrait Voir le message
    Combien de tables maxi faut il gérer, quand on sait qu'on reste seul sur un poste ?
    Il n'y a pas de nombre maxi ni mini, il y a le nombre de tables pertinent pour le besoin.
    L'étape 1 c'est de réaliser le modèle conceptuel des données en vérifiant (et en faisant valider par le métier) la conformité aux règles de gestion
    Une fois que c'est fait, en quelques clics, on obtient le MLD et donc les tables. A partir de là, on peut à la marge supprimer quelques tables ou en ajouter, mais l'essentiel du modèle logique est la conséquence directe du modèle conceptuel et donc des règles de gestion.

  7. #7
    Membre habitué
    Citation Envoyé par escartefigue Voir le message

    Il n'y a pas de nombre maxi ni mini, il y a le nombre de tables pertinent pour le besoin.
    L'étape 1 c'est de réaliser le modèle conceptuel des données en vérifiant (et en faisant valider par le métier) la conformité aux règles de gestion
    Une fois que c'est fait, en quelques clics, on obtient le MLD et donc les tables. A partir de là, on peut à la marge supprimer quelques tables ou en ajouter, mais l'essentiel du modèle logique est la conséquence directe du modèle conceptuel et donc des règles de gestion.
    Très précisément, ma question est :
    Considérons un critère, le nombre de tables, déclenchant à lui seul un volume de travail qui en découle.
    Quelles limites posez vous, lorsque vous êtes informé que votre mission s'étendra jusqu'aux publications détaillées du moindre état,
    et que vous ferez tous les métiers,
    conception, développement,
    maintenance,
    mises à jour,
    révision et adaptation annuelle du cahier des charges,
    spécification des guides techniques,
    spécification des guides utilisateurs.

  8. #8
    Expert éminent sénior
    Citation Envoyé par martinbrait Voir le message
    Très précisément, ma question est :
    Considérons un critère, le nombre de tables, déclenchant à lui seul un volume de travail qui en découle.
    Quelles limites posez vous, lorsque vous êtes informé que votre mission s'étendra jusqu'aux publications détaillées du moindre état,
    et que vous ferez tous les métiers,
    conception, développement,
    maintenance,
    mises à jour,
    révision et adaptation annuelle du cahier des charges,
    spécification des guides techniques,
    spécification des guides utilisateurs.
    Même réponse : aucune limitation du nombre de tables ne saurait être justifiée par la capacité à faire.
    S'il manque du personnel, alors il faut en recruter ou sous-traiter. Votre devoir en ce cas est d'alerter votre hiérarchie, pas de pourrir le modèle en supprimant des tables.
    Réduire le nombre de tables, si les tables initialement créées correspondent au modèle conceptuel validé par le métier, c'est soit supprimer une partie des éléments requis au détriment du besoin fonctionnel, soit dénormaliser pour faire des tables fourre-tout (tables dites "obèses").
    Les tables obèses sont la source de données non fiables, de performances dégradées et de traitements beaucoup plus complexes. Ce qui vous donnerait encore plus de travail : effet contraire à celui recherché

  9. #9
    Membre habitué
    Citation Envoyé par escartefigue Voir le message
    Même réponse : aucune limitation du nombre de tables ne saurait être justifiée par la capacité à faire.
    S'il manque du personnel, alors il faut en recruter ou sous-traiter. Votre devoir en ce cas est d'alerter votre hiérarchie, pas de pourrir le modèle en supprimant des tables.
    Réduire le nombre de tables, si les tables initialement créées correspondent au modèle conceptuel validé par le métier, c'est soit supprimer une partie des éléments requis au détriment du besoin fonctionnel, soit dénormaliser pour faire des tables fourre-tout (tables dites "obèses").
    Les tables obèses sont la source de données non fiables, de performances dégradées et de traitements beaucoup plus complexes. Ce qui vous donnerait encore plus de travail : effet contraire à celui recherché
    tables obèses :
    S'agit-il des tables ci-dessous, contenant un nombre beaucoup trop élevé de colonnes,
    au lieu d'avoir été scindées, avec le bon sens de la normalisation ?
    Noter au passage, que, pour corser la compréhension (?), les noms des champs sont énigmatiques.

    appli_fus_tpers_tm(mat,dnaiss,lib,sexe,pays,vilnaiss,motif,depart,Dsitadm,sitadm,Grade,Dgrade,Dec,ech,Emploi,EchEmploi,avancement,restdir,chxdir,region,chxrgdir,chxpodir,CAPpo,CAPrg,CAPobs,chxmut1,chxmut2,chxmut3,retenu,hef,dsitfam,nomnaiss,sitfam,usage,pr,titu,sgap,Attribution,Lieu géographique,mail,gradr,titur,chxcf1,chxcf2,chxcf3,retenCF,Demploi,DecEmploi,Date de début,Date de fin)

    nomen_tm
    (CODREF,id&dirratt,UO,id&diremp,AFFadm,Servemp,id&dir,VILLES,dept,SGAP,FONCTIONS,NIV,OFF,GRD,GAR,ADM,AUTRES,MISSIONS,Comp,GRADSUP,Fonctsup,Intrim,liaisfonct,GRAF,Gradreq,Exp,classification,CORPDEST,DATREATTR,OBS,art10,clog,datcreat,datferm,prevu,prevu2,modif,libcourt,g1,g2,g3,IRP,ZSP,vacance,nbpost,commentaire,niv2019,NivMaxAtteint,lastmaj_d,creamut)

  10. #10
    Expert éminent sénior
    Pour la définition oui : les tables obèses sont celles issues d'erreurs de modélisation ; pour les deux tables mentionnées, je ne peux pas répondre sans connaître les attributs et les dépendances fonctionnelles

    EDIT : je vois que certains attributs ont des noms au pluriel, j’espère que ça ne signifie pas qu'ils contiennent potentiellement plusieurs valeurs dérogeant ainsi à la 1NF

  11. #11
    Membre habitué
    Citation Envoyé par escartefigue Voir le message

    EDIT : je vois que certains attributs ont des noms au pluriel, j’espère que ça ne signifie pas qu'ils contiennent potentiellement plusieurs valeurs dérogeant ainsi à la 1NF
    Oui, on est dans le n'importe quoi.
    [Lieu géographique] par exemple est renseigné par une ville, un département, un ensemble de villes, un ensemble de départements et autres imbécilités...
    Il était opportun de créer plutôt les tables de villes, tables de départements, et de créer probablement

    une table de liaison
    liaison_ville_dpt (id_liaison_ville_dpt,ref_ville,ref_departement)

    deux tables de référence
    dpt(cod_dpt2,cod_dpt3,libelle_dpt)
    ville(id_ville,libelle_ville)

  12. #12
    Expert éminent sénior
    Dans la mesure du possible : mettre ce mer### à la poubelle et repartir sur une modélisation saine !

  13. #13
    Membre habitué
    Citation Envoyé par escartefigue Voir le message
    aucune limitation du nombre de tables ne saurait être justifiée par la capacité à faire.
    D'accord, mais il s'agit de refaire une analyse complète, auprès du métier.
    Ma question est : Ai-je vraiment intérêt à refaire l'analyse complète sur la totalité de l'existant,
    étant donné qu'il s'agit, à vue de nez, d'un périmètre de 50 tables, et que je dois également
    maintenir l'existant, 'dépanner', produit d'une analyse bancale, et d'une mise en œuvre également bancale.

    Je suis également confronté à un autre problème :
    Certains opérateurs saisissent bêtement dans leurs bases,
    incomplètement parfois, et utilisent les états existants ou
    les contournent et les retravaillent, sans que j'en sois notifié.

    Certains opérateurs propulsés sur leur poste, saisissent aussi dans la base, en comptant
    sur l'outil pour les aider à deviner/déduire les étapes de gestion,
    au lieu de connaître parfaitement par eux-mêmes,
    la totalité des règles de gestion.

    Qui est fiable, parmi les gestionnaires,
    pour me restituer les règles de gestion,
    sous réserve qu'il m'accorde un peu de temps
    alors qu'il me déclare souvent ne pas avoir de temps
    disponible, occupé à cliquer un peu partout ?


    Citation Envoyé par escartefigue Voir le message

    S'il manque du personnel, alors il faut en recruter ou sous-traiter. Votre devoir en ce cas est d'alerter votre hiérarchie, pas de pourrir le modèle en supprimant des tables.
    La hiérarchie est alertée mais reste campée sur le fait qu'une personne seule doit se mettre en capacité de faire,
    puisqu'initialement, le poste était occupé par une seule personne.
    Je me sens seul, derrière mes 400 tables au lieu de 50, mes 14587 macros,
    aucun document de spécification, aucun guide utilisateur etc...
    et ce n'est malheureusement même pas une plaisanterie.



    Citation Envoyé par escartefigue Voir le message

    Réduire le nombre de tables, si les tables initialement créées correspondent au modèle conceptuel validé par le métier, c'est soit supprimer une partie des éléments requis au détriment du besoin fonctionnel, soit dénormaliser pour faire des tables fourre-tout (tables dites "obèses").
    L'existant est un fatras de 400 tables, dont beaucoup sont fourre-tout, ou présentent des redondances.
    Je ne suis pas certain qu'il y ait eu un jour, une réunion pour valider un modèle conceptuel.
    La pratique a souvent été, une construction au fil de l'eau, avec la prise en compte au fur
    et à mesure, d'un cahier des charges de plus en plus important, voire changeant pour partie,annuellement.


    Partant de ce contexte, je réitère ma question :

    Un projet de combien de tables accepteriez-vous, seul, de gérer, étant donné
    qu'une fois engagé dans la programmation des services, vos talents(?)
    de programmeur seront sollicités jusqu'au moindre cas d'utilisation, pour produire l'intégralité des traitements.
    Les gestionnaires s'habituent à être assisté le plus loin possible,
    quitte à en oublier leurs règles de gestion.

  14. #14
    Expert éminent sénior
    Citation Envoyé par martinbrait Voir le message

    Je suis également confronté à un autre problème :
    Certains opérateurs saisissent bêtement dans leurs bases,
    incomplètement parfois, et utilisent les états existants ou
    les contournent et les retravaillent, sans que j'en sois notifié.
    Faut il comprendre qu'ils ont des outils leur permettant de modifier les données directement dans la base de données ?
    Si tel est le cas, ALARME, DEFCON 1, CECI N'EST PAS UN EXERCICE... fuyez !



    Citation Envoyé par martinbrait Voir le message
    La hiérarchie est alertée mais reste campée sur le fait qu'une personne seule doit se mettre en capacité de faire,
    puisqu'initialement, le poste était occupé par une seule personne.
    Ce qui peut expliquer au moins en partie cet état des lieux déplorable.



    Citation Envoyé par martinbrait Voir le message
    Je me sens seul, derrière mes 400 tables au lieu de 50, mes 14587 macros,
    aucun document de spécification, aucun guide utilisateur etc...
    et ce n'est malheureusement même pas une plaisanterie.
    Pour ce qui concerne les données, de nombreux outils de modélisation permettent, à partir du script de création des tables, de reconstituer les différents modèles sous forme graphique (MCD, MLD et MPD).
    Pour ce qui concerne les traitements, je ne crois pas que ce soit possible sauf à en payer le prix fort (il existe des logiciels payants sur le marché)



    Citation Envoyé par martinbrait Voir le message

    Partant de ce contexte, je réitère ma question :
    Un projet de combien de tables accepteriez-vous, seul, de gérer, étant donné
    qu'une fois engagé dans la programmation des services, vos talents(?)
    de programmeur seront sollicités jusqu'au moindre cas d'utilisation, pour produire l'intégralité des traitements.
    Les gestionnaires s'habituent à être assisté le plus loin possible
    quitte à en oublier leurs règles de gestion.
    Je ne raisonnerai toujours pas en nombre de tables, mais en délais.
    À chaque nouvelle expression de besoin, je ferai une estimation de charge avec une marge de sécurité très importante pour pouvoir prendre en compte les imprévus.



    Une question : quelle est le type d'entreprise concernée (sans dévoiler son nom bien sûr). Une PME, une ETI, une multinationale ? Et dans quel secteur d'activité intervient cette entreprise ?


    Et une remarque : nous avons tous des moments de creux dans notre activité. Profitez de ces moments pour identifier tout ce qui vous semble mal fait dans le modèle de données. Plus les arguments seront nombreux, plus vous aurez la possibilité, à terme, de faire comprendre aux décideurs des dangers auxquels ils s'exposent.