SGBD modèle E/A
Résolu
Steve17_17
Messages postés
17
Date d'inscription
mardi 11 juillet 2023
Statut
Membre
Dernière intervention
9 mars 2024
-
7 mars 2024 à 14:57
Steve17_17 Messages postés 17 Date d'inscription mardi 11 juillet 2023 Statut Membre Dernière intervention 9 mars 2024 - 9 mars 2024 à 08:41
Steve17_17 Messages postés 17 Date d'inscription mardi 11 juillet 2023 Statut Membre Dernière intervention 9 mars 2024 - 9 mars 2024 à 08:41
A voir également:
- SGBD modèle E/A
- Modèle organigramme word - Guide
- É - Guide
- Iphone dernier modèle - Guide
- Modèle sommaire - Guide
1 réponse
BoBot
Messages postés
4251
Date d'inscription
mardi 4 juillet 2023
Statut
Modérateur
Dernière intervention
9 décembre 2024
282
9 mars 2024 à 08:02
9 mars 2024 à 08:02
Bonjour !
C'est Bobot, l'IA du forum !
1) L'erreur que vous identifiez sur la ligne TROIS n'en est pas forcément une. La position de l'identifiant (ici CodeComposant) n'a pas d'importance en soi dans le modèle relationnel. Ce qui importe, c'est que chaque enregistrement de la table soit unique. Donc si CodeComposant est bien l'identifiant unique de la table TROIS, sa position n'a pas d'importance. Par contre, il semblerait qu'il y ait une erreur au niveau de la table SIX, car il manque un attribut pour stocker la quantité de chaque composant dans un sous-ensemble.
2) En effet, UN, DEUX, etc. représentent les noms des tables dans un SGBD. Concernant le champ CodeEnsemble dans la table UN, on pourrait lui associer une contrainte d'unicité, pour s'assurer qu'il n'y ait pas deux ensembles ayant le même code. Cette contrainte de valeur est également une contrainte d'intégrité.
3) Votre requête SQL n'est pas correcte car vous devez sélectionner les bons champs et faire les jointures appropriées entre les tables. La requête pourrait être la suivante :
SELECT TROIS.Désignation_Cp, TROIS.Prix_Unitaire
FROM TROIS
INNER JOIN DEUX ON TROIS.CodeComposant = DEUX.#CodeComposant
INNER JOIN UN ON DEUX.#Code Ensemble = UN.CodeEnsemble;
Cette requête joint les tables en utilisant les clefs primaires et étrangères appropriées et sélectionne les champs Désignation_Cp et Prix_Unitaire.
4) Si l’on souhaite stocker les informations sur le nombre de composants constituant les sous ensembles, il faudrait ajouter un attribut "Quantité" à la table SIX (nouveau SIX : #CodeSous Ensemble, #CodeComposant, Quantité). De plus, en utilisant la modélisation Entité/Association, le modèle pourrait ressembler à ceci :
- Entité "Meuble" (CodeEnsemble, Désignation, Prix_Total)
- Entité "Sous-Ensemble" (CodeSous Ensemble, Désignation, Longueur, Largeur, Hauteur, Prix_Unitaire)
- Entité "Composant" (CodeComposant, Désignation_Cp, Prix_Unitaire)
- Association "Est constitué de" entre "Meuble" et "Sous-Ensemble" (CodeEnsemble, CodeSous Ensemble, Qté_A)
- Association "Est composé de" entre "Sous-Ensemble" et "Composant" (CodeSous Ensemble, CodeComposant, Quantité)
C'est Bobot, l'IA du forum !
1) L'erreur que vous identifiez sur la ligne TROIS n'en est pas forcément une. La position de l'identifiant (ici CodeComposant) n'a pas d'importance en soi dans le modèle relationnel. Ce qui importe, c'est que chaque enregistrement de la table soit unique. Donc si CodeComposant est bien l'identifiant unique de la table TROIS, sa position n'a pas d'importance. Par contre, il semblerait qu'il y ait une erreur au niveau de la table SIX, car il manque un attribut pour stocker la quantité de chaque composant dans un sous-ensemble.
2) En effet, UN, DEUX, etc. représentent les noms des tables dans un SGBD. Concernant le champ CodeEnsemble dans la table UN, on pourrait lui associer une contrainte d'unicité, pour s'assurer qu'il n'y ait pas deux ensembles ayant le même code. Cette contrainte de valeur est également une contrainte d'intégrité.
3) Votre requête SQL n'est pas correcte car vous devez sélectionner les bons champs et faire les jointures appropriées entre les tables. La requête pourrait être la suivante :
SELECT TROIS.Désignation_Cp, TROIS.Prix_Unitaire
FROM TROIS
INNER JOIN DEUX ON TROIS.CodeComposant = DEUX.#CodeComposant
INNER JOIN UN ON DEUX.#Code Ensemble = UN.CodeEnsemble;
Cette requête joint les tables en utilisant les clefs primaires et étrangères appropriées et sélectionne les champs Désignation_Cp et Prix_Unitaire.
4) Si l’on souhaite stocker les informations sur le nombre de composants constituant les sous ensembles, il faudrait ajouter un attribut "Quantité" à la table SIX (nouveau SIX : #CodeSous Ensemble, #CodeComposant, Quantité). De plus, en utilisant la modélisation Entité/Association, le modèle pourrait ressembler à ceci :
- Entité "Meuble" (CodeEnsemble, Désignation, Prix_Total)
- Entité "Sous-Ensemble" (CodeSous Ensemble, Désignation, Longueur, Largeur, Hauteur, Prix_Unitaire)
- Entité "Composant" (CodeComposant, Désignation_Cp, Prix_Unitaire)
- Association "Est constitué de" entre "Meuble" et "Sous-Ensemble" (CodeEnsemble, CodeSous Ensemble, Qté_A)
- Association "Est composé de" entre "Sous-Ensemble" et "Composant" (CodeSous Ensemble, CodeComposant, Quantité)
9 mars 2024 à 08:03
Ahh d'accord, je vois... Grand merci
9 mars 2024 à 08:41
Une question stp, pourquoi au niveau du modèle E/A on n'utilise pas les tables UN, DEUX,..SIX comme entités