Bonsoir Madame, votre cours est parfait, alors, chassons-en les petites scories. 24:37 Petite coquille grammaticale dans la rédaction de la phrase ? Choix 1 : La clef primaire d'une relation est l'attribut ou l'ensemble d'attributs , dont dépendent (fonctionnellement) tous les autres attributs de cette relation. Choix 2 : La clef primaire d'une relation est l'attribut ou l'ensemble d'attributs, pour lequel tous les autres attributs de cette relation sont en dépendance fonctionnelle (DF). Je ne me lasse pas de réécouter votre enseignement magistral !
Merci pour votre message et désolée pour toutes ces erreurs de français, ainsi que celles que vous avez relevées dans le cours Merise/2 (et il y en a certainement d'autres dans les autres vidéos).
étant étudiant en formation professionnelle, j'affirme que vos explications m'ont redonné espoir, et je profite pour demander vos conseils et votre aide sur mon projet. En effet, mon projet consiste à créer une Base de données pour une Ambassade, capable de stocker les informations des requérant, traiter les demandes des actes consulaires et de visa, imprimer les visas sur des vignette réimprimé... vue la quantité colossale d'attributs, je n'arrive pas à définir réellement tous les entités. SVP Mme, je vous saurai gré de bien vouloir m'accorder cet encadrement car votre présentation me rassure que vous êtes la bonne personne pour ce genre de projet. Merci d'avance
Merci pour votre message. Je ne vais pas avoir le temps de construire le schéma (de plus il me faudrait toutes les infos) mais si vous construisez un schéma et que vous le mettez en ligne en donnant le lien, je pourrai rapidement vous donner mon avis.
Bonjour, un grand merci pour votre cours, je me demandais si a la minute 53:33 de la vidéo le shema conceptuel des données en correction il manque idClient en clé étrangère dans l'entité DOSSIER (pour faire le lien avec CLIENT) ? merci pour votre retour ce cours est très utile et complète très bien le pdf de cours.
Merci pour votre message. Les clés étrangères n'apparaissent pas sous forme d'attribut dans le MCD : elles sont représentées sous forme de DF (l'association entre DOSSIER et CLIENT).
Bonjour Madame , a la minute 45:16 on va avoir une relation LOCATION avec 3 clés primaires (n°film,n°client , date_location ) c'est pas pareil lorsqu'on fait un lien relatif comment faire
Bonjour, La relation LOCATION n'a que 2 attributs en clé primaire : n°film et date_location. L'attribut n°client est juste clé étrangère. On pourrait transformer LOCATION en entité avec date_location en clé primaire, un lien relatif vers FILM et toujours la même DF vers CLIENT (qui resterait donc en clé étrangère dans LOCATION).
Bonjour Madame, merci infiniment pour ce cours. Je ne suis pas sûr d'avoir bien compris, le dictionnaire de données / établissement des relations fonctionnelles est une étape qui peut être omise au profit du MCD directement? Puis-je conceptualiser mes bases de données en faisant directement MCD -> MLD ? Cordialement,
Merci pour votre message. Il est possible (conseillé) de commencer par la construction du MCD pour optimiser l'organisation des données. Si vous utiliser un logiciel de conception (win'design, looping...), au fur et à mesure de la construction du MCD, vous avez la possibilité de préciser, pour chaque attribut, son type. Du coup, vous pouvez obtenir directement le MLD et même les requêtes SQL de création des tables, après avoir précisé le SGBDR concerné (car il y a quelques variantes de syntaxe d'un SGBDR à l'autre).
Madame quand en dois utiliser relation porteuse ou le sortir comme entité par exemple dans la minute 49:26 en peux créer une entité location relier a l’entité film (un film peut être louer 0,n fois)
Je n'ai pas bien compris votre question. Location est bien symbolisé par une entité qui en réalité est une association car elle possède 2 attributs en clé primaire. Ceci dit, si vous voulez parler d'une simple entité pour Location, avec un seul attribut en clé primaire, alors il n'est pas possible de laisser date_location en clé primaire car plusieurs films peuvent être loués à la même date. Il faudrait alors mettre en clé primaire un numéro séquentiel, indépendamment de film. C'est possible mais c'est moins parlant pour identifier les locations.
@@emcl419 Je suis désolée, je manque de temps. J'ai un planning surchargé jusqu'à Noël. Je n'ai même plus le temps de faire des vidéos, ce qui me manque beaucoup. Tout ce que je peux vous conseiller, c'est suivre les différentes vidéos de ma chaîne en rapport avec vos épreuves et de poser des questions lorsque certains points ne sont pas clairs. J'essaie au moins de répondre aux questions, quand c'est rapide à gérer. Bon courage pour vos révisions.
1:05:03 Bonjour Madame. Parfois, quand je m'entraîne à raconter l'histoire de ce qui est géré, en lisant un schéma conceptuel, je fais déjà un effort, car les noms des champs sont souvent abrégés. Avez-vous l'impression de faire un effort, en interprétant un schéma conceptuel ? Est-ce possible de s'améliorer sur ce point ? Quels sont vos trucs ?
L'idée est de respecter des règles de nommage pour faciliter la lecture. De plus, normalement, si les choses sont faites vraiment dans les règles (rarement le cas), chaque attribut possède une description, ce qui permet aussi d'obtenir un dictionnaire contenant la liste des attributs avec leur nom, type et commentaire.
Quand je reprends des projets, je trouve des champs 'observation' dans quelques tables, qui s'apparentent souvent à des fourre-tout, inexploitables (pas de normalisation de type, pas de règle de gestion, pas de règle de recherche pour ce genre de champs). Ais-je le droit d'influencer la maîtrise d'ouvrage, pour convertir en champs de liste, ou supprimer purement et simplement, les champs memo/texte long ?
@@martinbrait4730 Difficile de répondre à votre question. Suivant l'organisation de l'entreprise et votre position, vous pouvez demander des précisions, éventuellement suggérer des adaptations...
A la minute 24:38, vous expliquez la composition d'une clef primaire dans une relation. Auriez vous l'extrême gentillesse de valider ma compréhension ci-dessous ? { Une clef primaire d'une relation se compose exclusivement des clefs primaires en provenance des entités qui lui sont liées. Exceptionnellement, pour MERISE1, dans le cadre de la relation identifiante, cela peut être une date ou une numérotation en provenance d'une pseudo-entité liée. Dans une relation, l'unicité s'obtient par composition des clefs primaires en provenance des entités liées. Dans tous les cas de figure, obtenir l'unicité, en ajoutant à la relation, une colonne clef primaire autonum venant de nulle part est un non-sens complet. La clef primaire autonum venant de nulle part, en revanche, est très appropriée pour identifier une entité. }
Bonjour, il y a confusion entre relation et association. Dans cette première partie du cours, je présente le modèle relationnel qui présente le principe d'une relation à l'origine de la création d'une table dans une base de données. Le terme a dû vous perturber : on parle de "relation" dans le sens "liens entre les attributs". Une relation est juste un ensemble d'attributs. Si la relation respecte la 3eme forme normale (les formes normales sont présentées à partir de 26:00), alors elle est suffisamment rigoureuse pour construire une table optimisée dans la BDD. La notion d'association et d'entité n'est pas dans le modèle relationnel mais dans le modèle conceptuel de données de la méthode Merise, présenté plus loin dans la vidéo. Le MCD est un moyen graphique pour obtenir les relations du modèle relationnel. Du coup, aussi bien une entité qu'une association devient ensuite une relation (à quelques exceptions près, comme les DF qui se traduisent en clés étrangères et non en relation, et les entités temporelles qui ne se traduisent pas). Tout ceci est expliqué dans la suite du cours.
OK. Merci infiniment pour la précision ASSOCIATION MCD vs RELATION MLD. Vous avez bien mis le doigt sur la genèse de ma confusion. Suite à votre éclairage, je pose mieux ma question : Lors de la conversion du MCD vers le MLD, une fois que l'association est transformée en relation, peut on vouloir faire surgir dans la relation obtenue, une colonne identifiante supplémentaire autonum ? Cette situation peut-elle arriver ? Est-ce absurde de faire celà ? Spécifiquement, je panique devant la gestion des couples avec doublons. Les couples avec doublons sont-ils nécessairement constitués en ajoutant une date, ou en ajoutant un numéro identifiant ? N'y a t il aucun autre cas pour composer des couples avec doublons ? Merci pour votre aide !
@@martinbrait4730 A priori, au moment du passage du MCD vers le MLD, si la conception a été correctement réalisée, il ne doit pas y avoir de différences, excepté des choix stratégiques sur les héritages. S'il y a des problèmes de doublons, ils doivent être réglés dès la conception. Evidemment, techniquement toute association peut être transformée en entité en mettant un identifiant unique et automatique, les anciens liens de l'association devenant des DF qui partent de la nouvelle entité. Ceci dit, cela ne me parait pas judicieux de réaliser cette transformation à chaque fois. Il faut effectivement analyser les attributs qui constituent l'identifiant d'une association pour être sûr qu'il ne peut pas y avoir de doublon. Je n'ai pas bien compris la fin de votre message. L'ajout d'une date ou d'un numéro en plus des attributs qui identifient une association, permet d'éviter justement les risques de doublons. Il faut cependant savoir minimiser le nombre d'attributs constituant l'identifiant. Par exemple, on veut enregistrer les absences de chaque salarié, en mémorisant, pour chaque absence, le type d'absence (maladie, congés, ...). Faire une association ABSENCE entre SALARIE et TYPE_ABSENCE contenant la date de début et la date de fin, ne fonctionne pas, car cela voudrait dire qu'un salarié ne peut pas avoir plusieurs absences de même type à des dates différentes (il ne peut être malade qu'une fois, partir en congés qu'une fois...). Il faut rajouter la date_debut dans l'identifiant, mais alors, garder 3 attributs dans l'identifiant n'a pas d'intérêt car l'id du salarié + la date_debut suffisent pour déterminer une absence précise : l'id du type d'absence devient simple clé étrangère.
Mes mauvaises compréhensions,viennent d'autres enseignements que j'ai suivi sur internet. Je réalise à quel point, je me suis noué le cerveau, après avoir suivi d'autres enseignements verbeux. Je n'arrive pas à réaliser à quel point vos cours sont parfaits. Vraiment, vous avez la patience dans vos enseignements, et vos réponses attentives personnalisées. Vous avez constitué une œuvre pédagogique remarquable ! Bravo ! MERCI !!!
Bonjour Madame, 1:07:00 Y a t il vraiment héritage ... En l'état,la table DIFFUSION contient juste l'ID. En l'état, MESSAGE_UNIQUE et DESTINATAIRE ont des structures très ressemblantes. MESSAGE_UNIQUE(idMessageUnique,idDestinataire,date_reponse) DESTINATAIRE(idDiffusion,idDestinataire,date_reponse) Je n'ai pas un besoin irrépressible de séparer MESSAGE_UNIQUE et MESSAGE_LISTE_DIFFUSION Je ne comprends pas pourquoi laisser un id tout seul, dans une table. '-------------------------- Je vous propose ci-dessous, le MLD que j'aurais restitué librement: MESSAGE(idMessage,titre,contenu,date,RefExpediteur) REPONSE(RefMessage,RefDestinataire,date_reponse,type_message) PERSONNE(idPersonne,NomPersonne) '-------------------------- Je soumets à votre sagacité mon MLD didactique avec relation d'héritage : LIEN_CONNAISSANCE : LibLien contient les valeurs:=ami,famille,association,entreprise... SUIVI_DIFFUSION : Desabonnement indique si le mail reçu a fait suite à un désabonnement (booléen) '---------------------------- MESSAGE(idMessage,titre,contenu,date,RefExpediteur) MESSAGE_UNIQUE(RefMessageUnique,RefDestinataire,date_reponse,RefLien) LIEN_CONNAISSANCE(idLien,LibLien) SUIVI_DIFFUSION(idMessageDiffusion,Desabonnement) MESSAGE_DIFFUSION(RefMessageDiffusion,RefDestinataire,date_reponse) Merci pour votre expertise, vous m'aidez énormément.
Il me manque la description des clés primaires / clés étrangères pour mieux comprendre votre MLD. L'exemple que je donne est simplifiée au niveau des propriétés. Ceci dit, on ne peut pas dire que Diffusion ne contient qu'un identifiant : il porte aussi un lien important (l'association Destinataire. N'oublions pas aussi ici qu'on est au niveau conceptuel où l'on recherche au maximum de respecter la 3NF. Ce genre de schéma suppose des choix stratégiques évidents au moment du passage au modèle physique. les héritages disparaitraient, la DF de Message_unique vers Personne partirait de Message mais la clé étrangère serait à null quand ce n'est pas un message unique, Destinataire serait relié à message.
je vs remercie très infiniment pr ce meilleur cours, franchement la rédaction est bonne ,les explications sont très claires et les exemples sont bien analysés , svp est-ce-que je peux avoir ton email?
@@E_mds d'accord, j'ai une petit question , pourquoi t'as mis nom_client dans la relation Commande puisque la règle dit toute propriété de la relation doit dépendre intégralement de la clé (27:28), merci d'avance .
@@ilyas425 C'est un exemple 2NF : l'étape suivante, 3NF est celle qu'il faut respecter. En fait, je montre étape par étape comment arriver au plus haut niveau d'optimisation.
Comment procède t on à une mise en œuvre doublement relative s'il-vous-plaît ? exemple : On désire effectuer une campagne de mutation de personnel, avec une liste de personnel et une liste de postes offerts à la mutation, et une version de campagne de mutation donnée. On promeut une personne sur un poste donné, pour une campagne annuelle de mutation donnée. Le poste que demande une personne, doit être identifié et peut être candidaté, par un ou plusieurs candidats, d'une catégorie donnée (A,B,C) Il existe des postes pouvant être occupés par une personne, appartenant à une seule catégorie, mais il existe aussi des postes pouvant être proposé à des personnes de catégorie A, et de catégorie B. On parle de versions de poste, dans la mesure où une même référence de poste, peut être ouverte à la mutation, et occupé par plusieurs personnes de catégorie A ou B.
J'aurai l'occasion de montrer un double lien relatif dans un des exemples. En ce qui concerne ce que vous proposez, il faut une entité Poste, une entité Catégorie, une association entre les 2 qu'on appellera Poste_Categorie (pour avoir les postes proposés par catégorie), une entité Personnel et une association entre Personnel et Poste_Categorie pour enregistrer les inscriptions. Poste_Categorie devient une pseudo_entité pour qu'on puisse y relier une association. Sous un logiciel comme Win'design, il faut alors transformer l'association en entité et dans ce cas, une double lien relatif est créé. L'association Inscription pourra porter le résultat (si la personne est retenue pour le poste).
@@JamesAdamsTech Ce n'est pas faux : j'aurais pu coller au premier exemple. On ne retrouve pas tous les attributs. Il faut l'aborder comme un autre exemple.
Le sujet précise : un film possède un titre, un genre, un ou plusieurs acteurs... Les cardinalités du schéma respectent le cahier des charges. D'une manière générale, il ne faut pas se baser sur ce qui vous semble logique mais sur le cahier des charges imposé.
Bonjour, merci pour cette vidéo ! Auriez-vous un logiciel gratuit à me conseiller me permettant de faire un MCD avec, entre autres, les DF sous forme de cercle svp ? Merci d'avance
Je ne connais pas de logiciel de modélisation gratuit qui permette ce genre de formalisme. Mais si vous voulez utiliser un logiciel de modélisation, rien ne vous empêche de mettre un nom dans chaque association : c'est avant tout car cardinalité qui permet de faire la distinction entre une association normale et une DF entre entités. Si vous êtes étudiant et que vous devez modéliser lors d'une épreuve écrite, le problème ne se posera pas car vous serez sur papier. D'ailleurs, dans ce cas, autant s'entraîner directement sur papier.
Merci pour votre message. Le cours synthétise les notions fondamentales à connaître. Je pense qu'il représente une couverture essentielle et suffisante pour la conception de données. Si vous êtes en BTS, cela correspond bien au programme attendu. Cependant, je ne prétends pas de faire une présentation exhaustive et surtout, je n'aborde que le MCD de la méthode Merise (qui contient beaucoup d'autres modèles).
Bonjour et merci pour votre message. Désolée je ne gère pas de contact direct par mail. Mais n'hésitez pas à poser vos questions ici : je ferai de mon mieux pour y répondre.
bonjour Madame, Pourriez-vous faire un court exemple, ou un paragraphe pour évoquer le problème des références qui ne méritent pas de table en dépendance fonctionnelle. Je pense par exemple à la référence Homme, Femme, pouvant être une simple lettre H,F, sans nécessiter de table de référence. Je pense par exemple à un train de voyageur, On numérote des sièges, et on les situent, côté couloir, ou côté fenêtre. Chaque place assise sera codifiée :1F,1C,2F,2C etc... Toute la pertinence de la description de la place tient dans le choix du caractère, et il n'y a pas lieu, probablement de justifier la création d'une table de référence, avec deux lettres courtes F-> fenêtre, et C-> couloir. Est-ce que ces références deviennent des 'domaines' selon le vocabulaire postgres ? Est-ce qu'elles constituent des listes de valeurs (selon le vocabulaire access) ? Est-il dans ce cas effectivement préférable de ne pas créer de table de référence contenant uniquement deux valeurs ? id->F;libelle->Fenêtre id->C;libelle->Couloir Merci de tout cœur pour votre aide !
La réponse est simple : soit vous partez du principe que la liste est évolutive (il faut faire une table), soit non et l'information peut être "en dur" (par exemple sous forme d'une liste de constantes, donc effectivement, un domaine ou toute autre appellation).
'=========================== 'UTILISATION DE WINDESIGN '=========================== Lors de la création d'une entité, il semble qu'on puisse choisir dans la combobox, un stéréotype, parmi Majeure / pivot Objet Métier / Table de code Lorsqu'on affiche la barre d'outils "palette", sous windesign, AFFICHAGE->Barre d'outils->Palette on obtient un volet d'exploration Modèle Conceptuel de Données, en partie droite de l'écran. Ce volet met à disposition, cinq logos pour personnaliser le symbole des relations dans le MCD. triangle plein noir:=agrégation, triangle vide blanc:=composition petit rond blanc:=dépendance fonctionnelle, mini rond gris:= forme réduite symbole coloré gris:= objet métier. Pourriez-vous en faire usage et expliquer leur rôle par des exemples concrets, s'il-vous-plaît ? Je commence à les utiliser sans vraiment savoir si mon interprétation est bonne.
Les logos de la palette présentent des entités, associations avec des représentations personnalisées qui ne changent rien au fonctionnement. Il existe sous Win'Design de nombreux outils liés au MCD, dont certains d'ailleurs n'existent pas vraiment dans la méthode Merise, mais qui permettent certainement de faire le lien, entre autres avec UML ou avec la programmation. Je n'ai pas approfondi ces outils du coup je ne peux pas vous aider. Dans ceux que vous citez, il n'y a que le symbole de la dépendance fonctionnelle entre entités que j'utilise.
Bonsoir Madame, Auriez-vous la gentillesse de faire deux cours : - sur les contraintes de validation - sur les domaines Des SGBD gèrent les domaines (postgres, par exemple). En quoi un domaine n'est-il pas une table de référence ? Les domaines, lorsqu'ils listent des constantes(?), remplacent-ils des tables de référence ? Un domaine sert-il de contrainte de validation de donnée ? Un domaine sert-il de liste courte de valeurs ? M.;Mme Un domaine se conçoit-il dans un MCD ? Quel est son rôle précis, et son usage approprié? Table de référence, contrainte de validation de donnée, domaine, comment ne plus confondre ? Merci beaucoup pour votre aide.
Je vais manquer de temps pour préparer de nouveaux cours. De plus, je ne maîtrise pas complètement toutes ces notions. En ce qui concerne les contraintes de validation (check), je pense qu'on peut trouver facilement des informations et exemples sur Internet. C'est vrai qu'on peut faire beaucoup de choses avec. En ce qui concerne les tables de référence, tout simplement je ne les ai jamais utilisées. Je pense que la différence principale avec un domaine est sa flexibilité : le domaine contient des informations "en dur" (constantes) alors que le contenu de la table de référence peut évoluer dans le temps. Un domaine permet effectivement de lister les valeurs permises et du coup va servir de type pour un attribut. En cela il représente en quelque sorte une contrainte. Est-ce qu'on peut y faire appel dans un check ? Je n'ai pas testé. Au niveau du MCD, on ne gère que l'organisation des données, en précisant normalement les types des attributs, sans forcément aller jusqu'aux contraintes (mais à priori on doit pouvoir le faire).
Ici on prend pour hypothèse que le client est enregistré au moment de la commande (dans le cas où il n'existe pas déjà). Donc il n'y a pas de notion de "prospect" (enregistrement à l'avance de client, même s'il n'a pas encore commandé).
Je viens de regarder 2 vidéos. Sauf erreur de ma part, il n'y a pas de son, n'est-ce pas ? S'il n'y a effectivement pas de son, je vous conseille de l'ajouter : les explications orales directement sur les schémas vont rendre les notions tout de suite plus claires. Généralement, les personnes qui viennent voir les vidéos sur RUclips préfèrent entendre des explications plutôt que lire. En tout cas, c'est une bonne idée de présenter les classes directement sous le format UML.
A toutes fins utiles, je vous transmets un document, qui présente quelques options de modélisation, à découvrir sous windesign : wiki.humanum.ephe.fr/lib/exe/fetch.php/tutoriaux/supportbdrsql.pdf
REGLES A RETENIR POUR LA CREATION DES TYPES : Les types sont à créer dans le SGBD, sous forme de listes de valeurs, ou de contraintes de validations. Dans le MCD, ils se substituent à la création de certaines tables de références à colonne unique. Dans les tables de mouvement, cibler les colonnes contenant un nombre définitif faible de valeurs distinctes. Raccourcir, si possible, le libellé de ces valeurs distinctes. Ce sont des codes courts, mais ils peuvent être restitués dans l'application sous forme de libellés longs, via une fonction replace dans la projection SELECT.Ces valeurs feront partie des colonnes entrant dans des recherches, mais la pose d'index est peu efficace, par manque de valeurs distinctes. Toutes mes assertions ci-dessus sont-elles vraies ? Comment les domaines se modélisent-il dans un MCD, avec le logiciel windesign, par exemple ? MERCI POUR VOS CONSEILS !
Un domaine n'est rien de plus qu'un type que vous fabriquez. Il contient donc une liste de valeurs possibles. Un attribut peut alors être déclaré par rapport à ce type, ce qui suppose que les valeurs qu'il peut prendre font forcément partie du domaine. On est bien donc dans la définition de quelque chose de stable (constant). Par exemple, créer un domaine contenant l'intitulé des jours de la semaine ("lundi", "mardi",...) est tout à fait logique car il y a peu de chance de cela change. Il n'y a donc pas de limite en terme de nombre d'entrées et de longueur dans un domaine. Au niveau du MCD, il est possible de définir, pour chaque attribut, son type. Je n'ai pas approfondi la question sous Win'Design mais peut-être qu'on peut créer des nouveaux types. A défaut, c'est à gérer et modifier directement dans le SGBDR.
...pas de limite en terme de nombre d'entrées et de longueur dans un domaine... une autre question arrive : Devrait on concevoir dès que possible, des colonnes alimentées par des listes de valeurs ? Devrait-on, au contraire, limiter le nombre de colonnes alimentées par des listes de valeurs ? Cas N°1 : Je stocke DateAnniversaire,JourAnniversaire dans 2 colonnes. Dans le premier cas, avec votre exemple, je remplirai une colonne avec les dates d'anniversaire, une colonne avec les jours d'anniversaire, au format texte 'lundi','mardi', ceci, autant de fois que je veux. Cas N°2 : Je stocke DateAnniversaire dans 1 colonne. Dans le second cas, je restituerais le jour anniversaire, dans mon application, en utilisant une fonction de domaine DayOfWeek([DateAnniversaire]) Quand sait on identifier le cas 1 ou le cas 2 ? Dois-je limiter la création de colonnes, si je suis capable de restituer l'information par calcul, à travers le programme ? Dois-je chercher à augmenter la création de colonnes, afin de limiter les lignes de programme qu'il me faudrait écrire dans mon application ?
@@martinbrait4730 Mon exemple stockant les jours de la semaine n'était peut-être pas très pertinent car il existe effectivement une fonction qui permet de récupérer le jour de la semaine. Quoique, cette fonction retourne le jour en anglais, si je ne me trompe pas, du coup, pour une équivalence en français, cela peut être intéressant de stocker les jours de la semaine. Bref, pour répondre à votre question : on va toujours favoriser le calcul par rapport au stockage de valeurs (sauf, cas rare, si ce calcul est chronophage et doit être fait très souvent, ce qui est une autre histoire).
Merci infiniment pour votre excellent travail.
Merci beaucoup, votre cours est de loin le meilleur sur le sujet. Les exemples sont très utiles à chaque fois !
Un grand merci a vous !
Votre travail et le partage de vos connaissances n'est qu'excellent.
Bravo !!
1:03:00 Cet exemple d'héritage est didactique, explicite, parfait !
Un grand merci pour ces explications très claires et ce temps passé à l'éllaborer.
je vous remercie infiniment pour ce formidable cours & pour tous ce que vous faîtes Mme, votre chaine est une mine d'or
merci ;-)
Merci beaucoup madame, votre vidéo est juste formidable.
Merci pour tous ce que vous faîtes, ça aide tellement d'étudiants / élèves !
Merci beaucoup Madame....Vous m'avez sauvé la vie 😁☺☺
Merci pour votre message et tant mieux si le cours vous a aidé.
Enseignement clair, net et précis. Bravo !!
merci !
Vous venez à me sauver. Un grand merci 🤩
Vraiment cette vidéo m'as permis de bien comprendre le MCD tout est claire ;) MERCIIIIIIIIIIIIIIIIIIIII
Bonsoir Madame, votre cours est parfait, alors, chassons-en les petites scories.
24:37 Petite coquille grammaticale dans la rédaction de la phrase ?
Choix 1 : La clef primaire d'une relation est l'attribut ou l'ensemble d'attributs , dont dépendent (fonctionnellement) tous les autres attributs de cette relation.
Choix 2 : La clef primaire d'une relation est l'attribut ou l'ensemble d'attributs, pour lequel tous les autres attributs de cette relation sont en dépendance fonctionnelle (DF).
Je ne me lasse pas de réécouter votre enseignement magistral !
Merci pour votre message et désolée pour toutes ces erreurs de français, ainsi que celles que vous avez relevées dans le cours Merise/2 (et il y en a certainement d'autres dans les autres vidéos).
Mais ce cours est magique. Merci ! Vous allez sauver ma moyenne en sig
👍https: //ruclips.net/video/VWVw9zh3fG8/видео.html
merci pour tout ce bagage intellectuel que vous venez de donner
Merci beaucoup pour cette importante leçon
magnifique !!! merci beaucoup et je confirme le son est TOP ! merci encore pr vos tuttos (y)
Merci infiniment pour ce cours et l'explication
formation très brillante, merci vraiment!!!
Excellent cours. c'est bien expliqué ,on comprend vite vraiment merci bcp je m'abonne.
Merci ! Désolée mais il n"y aura pas de vidéos avant janvier (surbookée) mais il y en a déjà plusieurs sur ma page ;-)
Grand merci. c'est très très intéressant vos explications.
Merci à vous Madame !
merci, pour la connaissance transmise.
étant étudiant en formation professionnelle, j'affirme que vos explications m'ont redonné espoir, et je profite pour demander vos conseils et votre aide sur mon projet.
En effet, mon projet consiste à créer une Base de données pour une Ambassade, capable de stocker les informations des requérant, traiter les demandes des actes consulaires et de visa, imprimer les visas sur des vignette réimprimé...
vue la quantité colossale d'attributs, je n'arrive pas à définir réellement tous les entités. SVP Mme, je vous saurai gré de bien vouloir m'accorder cet encadrement car votre présentation me rassure que vous êtes la bonne personne pour ce genre de projet. Merci d'avance
Merci pour votre message. Je ne vais pas avoir le temps de construire le schéma (de plus il me faudrait toutes les infos) mais si vous construisez un schéma et que vous le mettez en ligne en donnant le lien, je pourrai rapidement vous donner mon avis.
@@E_mds d'accord et un grand merci pour votre retour. Dès que je fini mon schéma, je vous le fait parvenir. Encore Merci
merci ^pour ce formidable cours, bravo Prof
Très clair, vraiment parfait 👌
Merci beaucoup pour votre explication
Bonsoir Mme, 58:00 est-ce qu'on peut remplacer l’association DEV_Projet par un lien relatif ? Merci pour vos efforts
Merci pour votre message. On ne peut pas remplacer une association binaire par un lien relatif, car ce dernier suppose une cardinalité 1,1.
@@E_mds Merci bcp
MERCI BEAUCOUP MDME Tres Bonne Explication
Bonjour, un grand merci pour votre cours,
je me demandais si a la minute 53:33 de la vidéo le shema conceptuel des données en correction
il manque idClient en clé étrangère dans l'entité DOSSIER (pour faire le lien avec CLIENT) ?
merci pour votre retour ce cours est très utile et complète très bien le pdf de cours.
Merci pour votre message. Les clés étrangères n'apparaissent pas sous forme d'attribut dans le MCD : elles sont représentées sous forme de DF (l'association entre DOSSIER et CLIENT).
Merci beaucoup pour la formation
excellente explication, merci !
très bon travail, merci
Fantastique comme toujours !
Bonjour Christophe ;-)
@@E_mds Bonjour E,
Peut-on communiquer autrement ? Écris moi sur mon adresse pro
@@christophemillet3678 oki je viens d'essayer :)
Simple clair et efficace bonne voix également merci bien
Bonjour Madame , a la minute 45:16 on va avoir une relation LOCATION avec 3 clés primaires (n°film,n°client , date_location ) c'est pas pareil lorsqu'on fait un lien relatif comment faire
Bonjour,
La relation LOCATION n'a que 2 attributs en clé primaire : n°film et date_location. L'attribut n°client est juste clé étrangère.
On pourrait transformer LOCATION en entité avec date_location en clé primaire, un lien relatif vers FILM et toujours la même DF vers CLIENT (qui resterait donc en clé étrangère dans LOCATION).
Super cours, merci bcp !
Bonjour Madame, merci infiniment pour ce cours.
Je ne suis pas sûr d'avoir bien compris, le dictionnaire de données / établissement des relations fonctionnelles est une étape qui peut être omise au profit du MCD directement?
Puis-je conceptualiser mes bases de données en faisant directement MCD -> MLD ?
Cordialement,
Merci pour votre message. Il est possible (conseillé) de commencer par la construction du MCD pour optimiser l'organisation des données. Si vous utiliser un logiciel de conception (win'design, looping...), au fur et à mesure de la construction du MCD, vous avez la possibilité de préciser, pour chaque attribut, son type. Du coup, vous pouvez obtenir directement le MLD et même les requêtes SQL de création des tables, après avoir précisé le SGBDR concerné (car il y a quelques variantes de syntaxe d'un SGBDR à l'autre).
@@E_mds Merci beaucoup
Merci beaucoup !!!
Mais vraiment mais génial c’est hyper bien expliqué avec les mises en pratiques via les petits exercices je suis refaite
Avec un tel commentaire au petit dej, on commence forcément très bien la journée. Merci !
Merci beaucoup pour ce cours simple et clair ;)
Madame quand en dois utiliser relation porteuse ou le sortir comme entité par exemple dans la minute 49:26 en peux créer une entité location relier a l’entité film (un film peut être louer 0,n fois)
Je n'ai pas bien compris votre question. Location est bien symbolisé par une entité qui en réalité est une association car elle possède 2 attributs en clé primaire. Ceci dit, si vous voulez parler d'une simple entité pour Location, avec un seul attribut en clé primaire, alors il n'est pas possible de laisser date_location en clé primaire car plusieurs films peuvent être loués à la même date. Il faudrait alors mettre en clé primaire un numéro séquentiel, indépendamment de film. C'est possible mais c'est moins parlant pour identifier les locations.
Merci beaucoup vos explications sont claires je veux un jour faire comm
e vous
Bonjour Madame,
Je compte sur votre cours pour comprendre.
Je crois en vous ;)
super bonne vidéo! ça m'a permis de mieux comprendre le MCD
Puis je vous contacter par mail svp ?
Désolée je n'entre pas en contact par mail. En revanche j'essaie de répondre aux questions ici.
@@E_mds J'ai des épreuves à passer en septembre je souhaiterais qq cours particuliers SVP.
@@emcl419 Je suis désolée, je manque de temps. J'ai un planning surchargé jusqu'à Noël. Je n'ai même plus le temps de faire des vidéos, ce qui me manque beaucoup.
Tout ce que je peux vous conseiller, c'est suivre les différentes vidéos de ma chaîne en rapport avec vos épreuves et de poser des questions lorsque certains points ne sont pas clairs. J'essaie au moins de répondre aux questions, quand c'est rapide à gérer.
Bon courage pour vos révisions.
merci, c'est une super introduction
Merci vraiment, tres interessant
👍https: //ruclips.net/video/VWVw9zh3fG8/видео.html
TROP CLAIRE MERCIE BIEN
1:05:03 Bonjour Madame. Parfois, quand je m'entraîne à raconter l'histoire de ce qui est géré, en lisant un schéma conceptuel, je fais déjà un effort, car les noms des champs sont souvent abrégés. Avez-vous l'impression de faire un effort, en interprétant un schéma conceptuel ? Est-ce possible de s'améliorer sur ce point ? Quels sont vos trucs ?
L'idée est de respecter des règles de nommage pour faciliter la lecture. De plus, normalement, si les choses sont faites vraiment dans les règles (rarement le cas), chaque attribut possède une description, ce qui permet aussi d'obtenir un dictionnaire contenant la liste des attributs avec leur nom, type et commentaire.
Quand je reprends des projets, je trouve des champs 'observation' dans quelques tables, qui s'apparentent souvent à des fourre-tout, inexploitables (pas de normalisation de type, pas de règle de gestion, pas de règle de recherche pour ce genre de champs). Ais-je le droit d'influencer la maîtrise d'ouvrage, pour convertir en champs de liste, ou supprimer purement et simplement, les champs memo/texte long ?
@@martinbrait4730 Difficile de répondre à votre question. Suivant l'organisation de l'entreprise et votre position, vous pouvez demander des précisions, éventuellement suggérer des adaptations...
A la minute 24:38, vous expliquez la
composition d'une clef primaire dans une relation.
Auriez vous l'extrême gentillesse de valider
ma compréhension ci-dessous ?
{
Une clef primaire d'une relation
se compose exclusivement des clefs
primaires en provenance des entités
qui lui sont liées.
Exceptionnellement, pour MERISE1,
dans le cadre de la relation identifiante,
cela peut être une date ou une numérotation
en provenance d'une pseudo-entité liée.
Dans une relation, l'unicité s'obtient
par composition des clefs primaires
en provenance des entités liées.
Dans tous les cas de figure, obtenir l'unicité,
en ajoutant à la relation, une colonne clef primaire autonum
venant de nulle part est un non-sens complet.
La clef primaire autonum venant de nulle part,
en revanche, est très appropriée pour identifier une entité.
}
Bonjour, il y a confusion entre relation et association. Dans cette première partie du cours, je présente le modèle relationnel qui présente le principe d'une relation à l'origine de la création d'une table dans une base de données. Le terme a dû vous perturber : on parle de "relation" dans le sens "liens entre les attributs". Une relation est juste un ensemble d'attributs. Si la relation respecte la 3eme forme normale (les formes normales sont présentées à partir de 26:00), alors elle est suffisamment rigoureuse pour construire une table optimisée dans la BDD.
La notion d'association et d'entité n'est pas dans le modèle relationnel mais dans le modèle conceptuel de données de la méthode Merise, présenté plus loin dans la vidéo. Le MCD est un moyen graphique pour obtenir les relations du modèle relationnel. Du coup, aussi bien une entité qu'une association devient ensuite une relation (à quelques exceptions près, comme les DF qui se traduisent en clés étrangères et non en relation, et les entités temporelles qui ne se traduisent pas). Tout ceci est expliqué dans la suite du cours.
OK. Merci infiniment pour la précision ASSOCIATION MCD vs RELATION MLD.
Vous avez bien mis le doigt sur la genèse de ma confusion.
Suite à votre éclairage, je pose mieux ma question :
Lors de la conversion du MCD vers le MLD,
une fois que l'association est transformée en relation,
peut on vouloir faire surgir dans la relation obtenue,
une colonne identifiante supplémentaire autonum ?
Cette situation peut-elle arriver ?
Est-ce absurde de faire celà ?
Spécifiquement, je panique devant la gestion des couples avec doublons.
Les couples avec doublons sont-ils nécessairement
constitués en ajoutant une date, ou en ajoutant un numéro identifiant ?
N'y a t il aucun autre cas pour composer des couples avec doublons ?
Merci pour votre aide !
@@martinbrait4730 A priori, au moment du passage du MCD vers le MLD, si la conception a été correctement réalisée, il ne doit pas y avoir de différences, excepté des choix stratégiques sur les héritages. S'il y a des problèmes de doublons, ils doivent être réglés dès la conception. Evidemment, techniquement toute association peut être transformée en entité en mettant un identifiant unique et automatique, les anciens liens de l'association devenant des DF qui partent de la nouvelle entité. Ceci dit, cela ne me parait pas judicieux de réaliser cette transformation à chaque fois. Il faut effectivement analyser les attributs qui constituent l'identifiant d'une association pour être sûr qu'il ne peut pas y avoir de doublon.
Je n'ai pas bien compris la fin de votre message. L'ajout d'une date ou d'un numéro en plus des attributs qui identifient une association, permet d'éviter justement les risques de doublons. Il faut cependant savoir minimiser le nombre d'attributs constituant l'identifiant. Par exemple, on veut enregistrer les absences de chaque salarié, en mémorisant, pour chaque absence, le type d'absence (maladie, congés, ...). Faire une association ABSENCE entre SALARIE et TYPE_ABSENCE contenant la date de début et la date de fin, ne fonctionne pas, car cela voudrait dire qu'un salarié ne peut pas avoir plusieurs absences de même type à des dates différentes (il ne peut être malade qu'une fois, partir en congés qu'une fois...). Il faut rajouter la date_debut dans l'identifiant, mais alors, garder 3 attributs dans l'identifiant n'a pas d'intérêt car l'id du salarié + la date_debut suffisent pour déterminer une absence précise : l'id du type d'absence devient simple clé étrangère.
Mes mauvaises compréhensions,viennent d'autres enseignements
que j'ai suivi sur internet.
Je réalise à quel point,
je me suis noué le cerveau,
après avoir suivi d'autres enseignements verbeux.
Je n'arrive pas à réaliser à quel point
vos cours sont parfaits.
Vraiment, vous avez la patience
dans vos enseignements,
et vos réponses attentives personnalisées.
Vous avez constitué une œuvre pédagogique remarquable !
Bravo ! MERCI !!!
@@martinbrait4730 Merci : tant mieux si ma pédagogie répond à vos attentes. Chaque étudiant est différent et a besoin d'une pédagogie personnalisée.
Merci merci merci
Bonjour Madame,
1:07:00 Y a t il vraiment héritage ...
En l'état,la table DIFFUSION contient juste l'ID.
En l'état, MESSAGE_UNIQUE et DESTINATAIRE ont des structures très ressemblantes.
MESSAGE_UNIQUE(idMessageUnique,idDestinataire,date_reponse)
DESTINATAIRE(idDiffusion,idDestinataire,date_reponse)
Je n'ai pas un besoin irrépressible de séparer MESSAGE_UNIQUE et MESSAGE_LISTE_DIFFUSION
Je ne comprends pas pourquoi laisser un id tout seul, dans une table.
'--------------------------
Je vous propose ci-dessous, le MLD que j'aurais restitué librement:
MESSAGE(idMessage,titre,contenu,date,RefExpediteur)
REPONSE(RefMessage,RefDestinataire,date_reponse,type_message)
PERSONNE(idPersonne,NomPersonne)
'--------------------------
Je soumets à votre sagacité mon MLD didactique avec relation d'héritage :
LIEN_CONNAISSANCE : LibLien contient les valeurs:=ami,famille,association,entreprise...
SUIVI_DIFFUSION : Desabonnement indique si le mail reçu a fait suite à un désabonnement (booléen)
'----------------------------
MESSAGE(idMessage,titre,contenu,date,RefExpediteur)
MESSAGE_UNIQUE(RefMessageUnique,RefDestinataire,date_reponse,RefLien)
LIEN_CONNAISSANCE(idLien,LibLien)
SUIVI_DIFFUSION(idMessageDiffusion,Desabonnement)
MESSAGE_DIFFUSION(RefMessageDiffusion,RefDestinataire,date_reponse)
Merci pour votre expertise, vous m'aidez énormément.
Il me manque la description des clés primaires / clés étrangères pour mieux comprendre votre MLD. L'exemple que je donne est simplifiée au niveau des propriétés. Ceci dit, on ne peut pas dire que Diffusion ne contient qu'un identifiant : il porte aussi un lien important (l'association Destinataire. N'oublions pas aussi ici qu'on est au niveau conceptuel où l'on recherche au maximum de respecter la 3NF. Ce genre de schéma suppose des choix stratégiques évidents au moment du passage au modèle physique. les héritages disparaitraient, la DF de Message_unique vers Personne partirait de Message mais la clé étrangère serait à null quand ce n'est pas un message unique, Destinataire serait relié à message.
je vs remercie très infiniment pr ce meilleur cours, franchement la rédaction est bonne ,les explications sont très claires et les exemples sont bien analysés , svp est-ce-que je peux avoir ton email?
Merci pour votre message. Désolée je ne communique pas par mail mais uniquement à travers les message de RUclips.
@@E_mds d'accord, j'ai une petit question , pourquoi t'as mis nom_client dans la relation Commande puisque la règle dit toute propriété de la relation doit dépendre intégralement de la clé (27:28), merci d'avance .
@@ilyas425 C'est un exemple 2NF : l'étape suivante, 3NF est celle qu'il faut respecter. En fait, je montre étape par étape comment arriver au plus haut niveau d'optimisation.
@@E_mds merci bcp!
Comment procède t on à une mise en œuvre doublement relative s'il-vous-plaît ?
exemple :
On désire effectuer une campagne de mutation de personnel, avec une liste de personnel et une liste de postes offerts à la mutation, et une version de campagne de mutation donnée.
On promeut une personne sur un poste donné, pour une campagne annuelle de mutation donnée.
Le poste que demande une personne, doit être identifié et peut être candidaté, par un ou plusieurs candidats, d'une catégorie donnée (A,B,C)
Il existe des postes pouvant être occupés par une personne, appartenant à une seule catégorie, mais il existe aussi des postes pouvant être proposé à des personnes de catégorie A, et de catégorie B.
On parle de versions de poste, dans la mesure où une même référence de poste, peut être ouverte à la mutation, et occupé par plusieurs personnes de catégorie A ou B.
J'aurai l'occasion de montrer un double lien relatif dans un des exemples.
En ce qui concerne ce que vous proposez, il faut une entité Poste, une entité Catégorie, une association entre les 2 qu'on appellera Poste_Categorie (pour avoir les postes proposés par catégorie), une entité Personnel et une association entre Personnel et Poste_Categorie pour enregistrer les inscriptions. Poste_Categorie devient une pseudo_entité pour qu'on puisse y relier une association. Sous un logiciel comme Win'design, il faut alors transformer l'association en entité et dans ce cas, une double lien relatif est créé. L'association Inscription pourra porter le résultat (si la personne est retenue pour le poste).
22:08 Erreur, c'est pas data_commande mais date_paiement
C'est bien date_commande : regardez la liste des attributs en haut de la diapo.
@@E_mds J'ai vue, mais c'est pas cohérent avec le MCD ou c'est bien la date_paiement
@@JamesAdamsTech Ce n'est pas faux : j'aurais pu coller au premier exemple. On ne retrouve pas tous les attributs. Il faut l'aborder comme un autre exemple.
@@E_mds Ok pas de problème ça ne change rien pour l'exercice je trouvais juste ça bizard :D
Qu'allait-il advenir si un utilisateur peut être à la fois vendeur et acheteur ?
Pouvez-vous préciser le temps dans la vidéo pour que je retrouve l'exemple concerné ?
un film peut avoir plusieurs genres donc 1,n a la place de 1,1 en 44:40
Le sujet précise : un film possède un titre, un genre, un ou plusieurs acteurs...
Les cardinalités du schéma respectent le cahier des charges.
D'une manière générale, il ne faut pas se baser sur ce qui vous semble logique mais sur le cahier des charges imposé.
👏👏👏
Bonjour, merci pour cette vidéo ! Auriez-vous un logiciel gratuit à me conseiller me permettant de faire un MCD avec, entre autres, les DF sous forme de cercle svp ? Merci d'avance
Je ne connais pas de logiciel de modélisation gratuit qui permette ce genre de formalisme. Mais si vous voulez utiliser un logiciel de modélisation, rien ne vous empêche de mettre un nom dans chaque association : c'est avant tout car cardinalité qui permet de faire la distinction entre une association normale et une DF entre entités.
Si vous êtes étudiant et que vous devez modéliser lors d'une épreuve écrite, le problème ne se posera pas car vous serez sur papier. D'ailleurs, dans ce cas, autant s'entraîner directement sur papier.
Bnjour madame. Je vous remercie vraiment. Mais je veut savoire si ce cour est totalement complet ?
Merci pour votre message. Le cours synthétise les notions fondamentales à connaître. Je pense qu'il représente une couverture essentielle et suffisante pour la conception de données. Si vous êtes en BTS, cela correspond bien au programme attendu. Cependant, je ne prétends pas de faire une présentation exhaustive et surtout, je n'aborde que le MCD de la méthode Merise (qui contient beaucoup d'autres modèles).
@@E_mds merci madame. J'apprécie ta jentillesse!
bonjour, merci pour le travail que vous faites , y'a t'il moyen de vous poser une question par email svp ?
Bonjour et merci pour votre message. Désolée je ne gère pas de contact direct par mail. Mais n'hésitez pas à poser vos questions ici : je ferai de mon mieux pour y répondre.
bonjour Madame,
Pourriez-vous faire un court exemple, ou un paragraphe
pour évoquer le problème des références qui ne méritent
pas de table en dépendance fonctionnelle.
Je pense par exemple à la référence Homme, Femme,
pouvant être une simple lettre H,F,
sans nécessiter de table de référence.
Je pense par exemple à un train de voyageur,
On numérote des sièges, et on les
situent, côté couloir, ou côté fenêtre.
Chaque place assise sera codifiée :1F,1C,2F,2C etc...
Toute la pertinence de la description de la place
tient dans le choix du caractère, et il n'y a pas lieu,
probablement de justifier la création d'une table de référence,
avec deux lettres courtes F-> fenêtre, et C-> couloir.
Est-ce que ces références deviennent des 'domaines'
selon le vocabulaire postgres ? Est-ce qu'elles constituent
des listes de valeurs (selon le vocabulaire access) ?
Est-il dans ce cas effectivement préférable de ne
pas créer de table de référence contenant uniquement deux valeurs ?
id->F;libelle->Fenêtre
id->C;libelle->Couloir
Merci de tout cœur pour votre aide !
La réponse est simple : soit vous partez du principe que la liste est évolutive (il faut faire une table), soit non et l'information peut être "en dur" (par exemple sous forme d'une liste de constantes, donc effectivement, un domaine ou toute autre appellation).
@@E_mds Super, c'est tellement coûteux pour moi d'oser prendre le risque du mauvais choix. Votre expérience vaut de l'or, vraiment.
@@martinbrait4730 C'est souvent en faisant des mauvais choix qu'on apprend, et qu'on gagne en expérience.
merci
'===========================
'UTILISATION DE WINDESIGN
'===========================
Lors de la création d'une entité,
il semble qu'on puisse choisir dans la combobox, un stéréotype, parmi
Majeure / pivot Objet Métier / Table de code
Lorsqu'on affiche la barre d'outils "palette", sous windesign,
AFFICHAGE->Barre d'outils->Palette
on obtient un volet d'exploration Modèle Conceptuel de Données,
en partie droite de l'écran.
Ce volet met à disposition, cinq logos pour personnaliser le symbole des relations dans le MCD.
triangle plein noir:=agrégation,
triangle vide blanc:=composition
petit rond blanc:=dépendance fonctionnelle,
mini rond gris:= forme réduite
symbole coloré gris:= objet métier.
Pourriez-vous en faire usage et expliquer leur rôle par des exemples concrets, s'il-vous-plaît ?
Je commence à les utiliser sans vraiment savoir si mon interprétation est bonne.
Les logos de la palette présentent des entités, associations avec des représentations personnalisées qui ne changent rien au fonctionnement.
Il existe sous Win'Design de nombreux outils liés au MCD, dont certains d'ailleurs n'existent pas vraiment dans la méthode Merise, mais qui permettent certainement de faire le lien, entre autres avec UML ou avec la programmation. Je n'ai pas approfondi ces outils du coup je ne peux pas vous aider. Dans ceux que vous citez, il n'y a que le symbole de la dépendance fonctionnelle entre entités que j'utilise.
Merci beacoup
Bonsoir Madame,
Auriez-vous la gentillesse de faire deux cours :
- sur les contraintes de validation
- sur les domaines
Des SGBD gèrent les domaines (postgres, par exemple).
En quoi un domaine n'est-il pas une table de référence ?
Les domaines, lorsqu'ils listent des constantes(?), remplacent-ils des tables de référence ?
Un domaine sert-il de contrainte de validation de donnée ?
Un domaine sert-il de liste courte de valeurs ? M.;Mme
Un domaine se conçoit-il dans un MCD ?
Quel est son rôle précis, et son usage approprié?
Table de référence, contrainte de validation de donnée, domaine, comment ne plus confondre ?
Merci beaucoup pour votre aide.
Je vais manquer de temps pour préparer de nouveaux cours. De plus, je ne maîtrise pas complètement toutes ces notions.
En ce qui concerne les contraintes de validation (check), je pense qu'on peut trouver facilement des informations et exemples sur Internet. C'est vrai qu'on peut faire beaucoup de choses avec.
En ce qui concerne les tables de référence, tout simplement je ne les ai jamais utilisées. Je pense que la différence principale avec un domaine est sa flexibilité : le domaine contient des informations "en dur" (constantes) alors que le contenu de la table de référence peut évoluer dans le temps.
Un domaine permet effectivement de lister les valeurs permises et du coup va servir de type pour un attribut. En cela il représente en quelque sorte une contrainte. Est-ce qu'on peut y faire appel dans un check ? Je n'ai pas testé.
Au niveau du MCD, on ne gère que l'organisation des données, en précisant normalement les types des attributs, sans forcément aller jusqu'aux contraintes (mais à priori on doit pouvoir le faire).
c'est intéressant
Excusez-moi mais pour l'entité CLIENT, pourquoi mettre 1 au lieu de 0? On peut très bien imaginer un client potentiel.
Ici on prend pour hypothèse que le client est enregistré au moment de la commande (dans le cas où il n'existe pas déjà). Donc il n'y a pas de notion de "prospect" (enregistrement à l'avance de client, même s'il n'a pas encore commandé).
@@E_mds Ok merci.
Notes à moi-même pour reprendre la vidéo plus tard => 35:00
As-tu repris en définitive? 🤣
Merci merci
vous très pédagogue professeur
mais ? 😅 tu a aussi la chaine du poison rouge ?
Pourriez vous donner votre avis et remarques sur mes vidéo sur la poo
Je viens de regarder 2 vidéos. Sauf erreur de ma part, il n'y a pas de son, n'est-ce pas ? S'il n'y a effectivement pas de son, je vous conseille de l'ajouter : les explications orales directement sur les schémas vont rendre les notions tout de suite plus claires. Généralement, les personnes qui viennent voir les vidéos sur RUclips préfèrent entendre des explications plutôt que lire. En tout cas, c'est une bonne idée de présenter les classes directement sous le format UML.
A toutes fins utiles, je vous transmets un document, qui présente quelques options de modélisation, à découvrir sous windesign : wiki.humanum.ephe.fr/lib/exe/fetch.php/tutoriaux/supportbdrsql.pdf
REGLES A RETENIR POUR LA CREATION DES TYPES :
Les types sont à créer dans le SGBD, sous forme de listes de valeurs, ou de contraintes de validations.
Dans le MCD, ils se substituent à la création de certaines tables de références à colonne unique.
Dans les tables de mouvement, cibler les colonnes contenant un nombre définitif faible de valeurs distinctes.
Raccourcir, si possible, le libellé de ces valeurs distinctes. Ce sont des codes courts, mais ils peuvent être restitués dans l'application sous forme de libellés longs, via une fonction replace dans la projection SELECT.Ces valeurs feront partie des colonnes entrant dans des recherches, mais la pose d'index est peu efficace, par manque de valeurs distinctes.
Toutes mes assertions ci-dessus sont-elles vraies ?
Comment les domaines se modélisent-il dans un MCD,
avec le logiciel windesign, par exemple ?
MERCI POUR VOS CONSEILS !
Un domaine n'est rien de plus qu'un type que vous fabriquez. Il contient donc une liste de valeurs possibles. Un attribut peut alors être déclaré par rapport à ce type, ce qui suppose que les valeurs qu'il peut prendre font forcément partie du domaine. On est bien donc dans la définition de quelque chose de stable (constant). Par exemple, créer un domaine contenant l'intitulé des jours de la semaine ("lundi", "mardi",...) est tout à fait logique car il y a peu de chance de cela change.
Il n'y a donc pas de limite en terme de nombre d'entrées et de longueur dans un domaine.
Au niveau du MCD, il est possible de définir, pour chaque attribut, son type. Je n'ai pas approfondi la question sous Win'Design mais peut-être qu'on peut créer des nouveaux types. A défaut, c'est à gérer et modifier directement dans le SGBDR.
...pas de limite en terme de nombre d'entrées et de longueur dans un domaine...
une autre question arrive :
Devrait on concevoir dès que possible,
des colonnes alimentées par des listes de valeurs ?
Devrait-on, au contraire, limiter le nombre de colonnes
alimentées par des listes de valeurs ?
Cas N°1 : Je stocke DateAnniversaire,JourAnniversaire dans 2 colonnes.
Dans le premier cas, avec votre exemple,
je remplirai une colonne avec les dates d'anniversaire,
une colonne avec les jours d'anniversaire, au format texte
'lundi','mardi', ceci, autant de fois que je veux.
Cas N°2 : Je stocke DateAnniversaire dans 1 colonne.
Dans le second cas, je restituerais le jour anniversaire,
dans mon application, en utilisant une fonction de
domaine DayOfWeek([DateAnniversaire])
Quand sait on identifier le cas 1 ou le cas 2 ?
Dois-je limiter la création de colonnes,
si je suis capable de restituer l'information par calcul,
à travers le programme ?
Dois-je chercher à augmenter la création de colonnes,
afin de limiter les lignes de programme qu'il me faudrait
écrire dans mon application ?
@@martinbrait4730 Mon exemple stockant les jours de la semaine n'était peut-être pas très pertinent car il existe effectivement une fonction qui permet de récupérer le jour de la semaine. Quoique, cette fonction retourne le jour en anglais, si je ne me trompe pas, du coup, pour une équivalence en français, cela peut être intéressant de stocker les jours de la semaine.
Bref, pour répondre à votre question : on va toujours favoriser le calcul par rapport au stockage de valeurs (sauf, cas rare, si ce calcul est chronophage et doit être fait très souvent, ce qui est une autre histoire).
votre cours et bien mais tu parle rapide
Désolée, j'essaie de garder un certain rythme pour le pas endormir l'auditoire ;-) Mais vous pouvez changer la vitesse de la vidéo.
Beaucoup trop de débit... blablabla
Le but est d'éviter d'endormir l'auditoire... Mais je comprends que cela ne convienne pas à tout le monde. Désolée.