Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1732 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MCD/MLD, req algébrique/ req SQL, exercice de base

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MCD/MLD, req algébrique/ req SQL, exercice de base

n°2117387
rotamtamki
Posté le 19-12-2011 à 22:39:01  profilanswer
 

Bonjour à tous,
Je m'intéresse au fonctionnement des bases de données, et j'ai commencé à me documenter sur le modèle conceptuel de données et sur le modèle logique de données.
La théorie semble facile, relation hiérarchique, non hiérarchiques, cardinalités, foreign key, identifiant et j'en passe...
Je cherche à utiliser un outil pour visualiser les tables, et les relations qu'elles peuvent avoir entre elles.
 
http://img694.imageshack.us/img694/7659/mcd1.png
J'ai quelques question :
 
 
Voilà les diverses requêtes demandées :)
 
http://img841.imageshack.us/img841/3063/67970442.png


Message édité par rotamtamki le 03-01-2012 à 15:37:15
mood
Publicité
Posté le 19-12-2011 à 22:39:01  profilanswer
 

n°2117527
rotamtamki
Posté le 20-12-2011 à 17:15:37  profilanswer
 

Voilà ce que j'ai trouvé :
Les requetes algébriques sont en rouge, les requetes sql sont en bleu

 
Requete 1 :

Matricule de Marcel Latour :
 
R1= SELECTION Technicien (Nom="Latour", Prénom="Marcel" )
R2= PROJECTION R1(matricule)

 
Requete 2 :
 
Néant
 
Requete 3:
 
nom du technicien dont le libellé du grade est "tech débutant":
 

R1= SELECTION Grade (libellé= "technicien débutant" )
R2= JOINTURE (R1,Technicien,R1.CodeGrade=Technicien.CodeGrade)
R3= PROJECTION (R2, nom)

 
SELECT nom
FROM Technicien T, Grade G
WHERE G.Codegrade=T.CodeGrade(#)
<---- On met un # ? jai vu ca dans un exo corrigé
AND libéllé="technicien débutant"
 
 
La on arrive dans des requêtes SQL un peu plus chaudes (pas sur du tout)
 
Requete 4 :
 
Nombre de techniciens dont le grade a pour code "TSB"
 

SELECT SUM (technicien) AS Nombretech
FROM technicien T, grade G
WHERE T.Code_Grade=G.Code_Grade
AND Code_GRade = "TSB"

 
Requete 5 :
 

Nom et prénom des techniciens ayant au moins une compétence dans le domaine dont le libellé est "hardware"

 
SELECT nom, prénom
FROM technicien T, qualifier Q
WHERE Q.libellé_Compétence=T.libellé_Compétence
AND Libellé_compétence="Hardware"

 
Requete 6 :
 
Nombre de compétences du technicien dont le matricule est 000217:

SELECT SUM(compétence) AS nbtechcompé
FROM technicien T,qualifier Q
WHERE Q.libellé_compétence=T.libellé_compétence
AND T.matricule="000217"

 
Requete 7 :
 
Noms et prénoms des techniciens ayant le meme grade que Samuel Vely
 

Néant

A venir


Message édité par rotamtamki le 03-01-2012 à 16:26:14
n°2119241
rotamtamki
Posté le 03-01-2012 à 16:26:46  profilanswer
 

up !
Exo mis à jour avec mes réponses !

n°2119246
Oliiii
Posté le 03-01-2012 à 16:48:12  profilanswer
 

Pour la Requete 4:
SELECT SUM (technicien) AS Nombretech
FROM technicien T
AND Code_Grade = "TSB"  
 
-> Pas besoin de jointure vu que tu as déja la valeure.
 
Requete 5 et Requete 6:
Il manque des infos, quelles sont les colonnes dans la table Qualifier (sur quoi on fais la jointure)?
 
 

n°2119248
rotamtamki
Posté le 03-01-2012 à 16:52:21  profilanswer
 

Oliiii a écrit :

Pour la Requete 4:
SELECT SUM (technicien) AS Nombretech
FROM technicien T
AND Code_Grade = "TSB"  
 
-> Pas besoin de jointure vu que tu as déja la valeure.
 
Requete 5 et Requete 6:
Il manque des infos, quelles sont les colonnes dans la table Qualifier (sur quoi on fais la jointure)?
 
 


Bonjour,
 
Merci de ta réponse
Pour la requete 4, on cherche à connaitre le nombre de technicien avec le grade TSB. Cest vrai qu'on cherche aucune infos sur le technicien en fait ! on veut juste compter le nombre de grade dont le code est TSB, c'est ce que tu veux dire ?
 
Pour la requete 5 et 6, cest toutes les infos que j'avais sur la page d'exos qu'on ma refilé
 
 
Edit : j'ai trouvé un cours sur le net qui explique que lorsque les cardinalités sont à N de chaque côté, la table du milieu prend les identifiants de chaque table qui l'entoure !
 
Soit un MLD qui ressemble à ca :  
 
Technicien (Matricule, Civilité, Nom, Prénom, #Code grade)
Grade (Code grade, Libellé grade)
Compétence (Code compétence, Libellé compétence, #Code domaine)
Domaine (Code domaine, Libellé domaine)
Qualifier (#Code compétence,#matricule)


Message édité par rotamtamki le 03-01-2012 à 16:55:43
n°2119309
rotamtamki
Posté le 03-01-2012 à 21:48:01  profilanswer
 

Up :)

n°2119339
Oliiii
Posté le 04-01-2012 à 09:06:42  profilanswer
 

Pour la requete 4 ce que je veux dire c'est que la clé etrangere te permet de faire ton WHERE sans avoir besoin de joindre une autre table.
 
Pour la requete 5:
SELECT T.nom, T.prénom
FROM technicien T
JOIN qualifier Q on T.Matricule = Q.Matricule
JOIN Compétence C on c.Code_compétance = Q.Code.competence
WHERE c.libellé_Compétence="Hardware"  
 
Requete 6:
SELECT SUM(Q.Code_compétence) AS nbtechcompé
FROM qualifier Q
WHERE Q.matricule="000217"

n°2119345
rotamtamki
Posté le 04-01-2012 à 09:43:13  profilanswer
 

Ok pour ces deux là,
je vais mettre à jour mon premier post avec tes rectifications. Tu as regardé le MLD ? même si c'est le plus simple, il te semble correct ?
 
merci
 
rotam


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MCD/MLD, req algébrique/ req SQL, exercice de base

 

Sujets relatifs
[MCD] Soucis de conception[analyse] transformer MCD vers UML
[MCD] Galerie photo + tags + CakePhpAnalyse d'un MCD
coup de pouce pour MCD[MCD] problème de conception : livraisons et colis
[MCD] multiples catégories de produitsproblème de modélisation MCD
Aide conception MCD et MLD 
Plus de sujets relatifs à : MCD/MLD, req algébrique/ req SQL, exercice de base


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR