[help] bases relationnelles\les operateurs ensemblistes

bases relationnelles\les operateurs ensemblistes [help] - SQL/NoSQL - Programmation

Marsh Posté le 16-03-2003 à 12:06:00    

salut!
j'aurai besoin de votre aide pour un truc sur les bases de données que je commence a apprendre (donc ca sera certainement facile pour vous).
Donc voila mon probleme :  
j'ai ca :  
 
 
T1 | T2 | T3             K1 | K2 | K3
____________             ____________
 1 | a  | @               1 | 1  | A
 2 | b  | @               2 | 1  | A
 3 | a  | $               3 | 2  | B
 4 | a  | $               4 | 1  | B
                          5 | 2  | C
 
avec T1 clé primaire de T
     K1 clé primaire de K
     K2 clé étrangère
 
et plusieurs operateurs ensemblistes:
- projection
- sélection
- union
- intersection
- difference
- produit cartesien
- jointure naturelle
 
et y en que je sais pas faire et d'autres dont je suis pas sur...alors si vous pouviez m'aider et me corrigez si je me suis trompé
 
- projection sur T2 et T3 (je ne sais pas comment faire)
- selection dans K (ts les enregistrements tel que le champ K2 soit pair) (je ne sais pas comment faire)
- union de *projection de T sur T1
           et de *projection de K ur K2
 (je ne sais pas comment faire)
- intersection (de comme ds l'union) (je ne sais pas comment faire)
- différence T1 - K2 ca je sais : ca donne  
3
4
- produit cartésien de la projection T1 T2 avec la prjection K2 K3 (je ne sais pas comment faire)
- jointure T(+)K
           T1=K2 et ca je suis pas sur...
 
je sais je sais pas faire grand chose :sweat:  alors si vous pouviez m'aider :ange:  

Reply

Marsh Posté le 16-03-2003 à 12:06:00   

Reply

Marsh Posté le 16-03-2003 à 12:23:26    

La projection, c'est pas juste de prendre certaines colonnes et pas d'autres ?
Donc, pour la projection : SELECT T2, T3 FROM T


Message édité par mrbebert le 16-03-2003 à 12:23:34
Reply

Marsh Posté le 16-03-2003 à 12:26:06    

mrBebert a écrit :

La projection, c'est pas juste de prendre certaines colonnes et pas d'autres ?
Donc, pour la projection : SELECT T2, T3 FROM T


 
tu penses qu il me resterait juste :
a @
b @
a $
a $
c ca que tu veux dire ???

Reply

Marsh Posté le 16-03-2003 à 12:30:12    

oui, c'est ca :)  
Je croyais qu'il fallait convertir les instructions en SQL :whistle:
 
Pour la sélection dans K :
K1 | K2 | K3
____________
3 | 2  | B
5 | 2  | C


Message édité par mrbebert le 16-03-2003 à 12:31:38
Reply

Marsh Posté le 16-03-2003 à 12:31:41    

mrBebert a écrit :

oui, c'est ca :)  
Je croyais qu'il fallait convertir les instructions en SQL :whistle:  


 
ok...nan c tres therique tu sais c juste a l'ecrit sur une feuille...sinon t'as une idée pour les autres???

Reply

Marsh Posté le 16-03-2003 à 12:34:24    

Pour l'union, je sais pas trop. Je dirais qu'il suffit de mettre à la suite les colonnes T1 et K2, mais je suis très loin d'être sur :
1
2
3
4
1
1
2
1
2
 
Dans la même logique, l'intersection, ce serait les chiffres qui sont dans les 2 colonnes :
1
2


Message édité par mrbebert le 16-03-2003 à 12:35:26
Reply

Marsh Posté le 16-03-2003 à 12:35:03    

mrBebert a écrit :

oui, c'est ca :)  
Je croyais qu'il fallait convertir les instructions en SQL :whistle:
 
Pour la sélection dans K :
K1 | K2 | K3
____________
3 | 2  | B
5 | 2  | C
 


 
donc pour l'union :
- la projection de T sur T1 c'est :  
1
2
3
4
- la projection de K sur K2 c'est :  
1
1
2
1
2
donc l'union ce serait  
1
2
3
4 c ca ???
 
et alors l'intersection serait :  
1
2

Reply

Marsh Posté le 16-03-2003 à 12:35:38    

mrBebert a écrit :

Pour l'union, je sais pas trop. Je dirais qu'il suffit de mettre à la suite les colonnes T1 et K2, mais je suis très loin d'être sur :
1
2
3
4
1
1
2
1
2


c ca sauf que il ne faut pas de doublon je pense...

Reply

Marsh Posté le 16-03-2003 à 12:38:25    

niiico a écrit :


c ca sauf que il ne faut pas de doublon je pense...


 
merci tu m'as bien aidé en fait c vraiment pas compliqué j'ai trouvé pour le produit cartésien...mon seul pb c'est la joiture : T(+)K
          T1=K2

Reply

Marsh Posté le 16-03-2003 à 12:41:52    

En SQL, la jointure consiste à créer toutes les lignes possibles constituée d'une ligne de chacune des tables. Ca donnerait ca :
T1 | T2 | T3 | K1 | K2 | K3
---------------------------
1  | a  | @  | 1  | 1  | A
1  | a  | @  | 2  | 1  | A
1  | a  | @  | 3  | 2  | B
1  | a  | @  | 4  | 1  | B
1  | a  | @  | 5  | 2  | C
 
...
...
 
4  | a  | $  | 1  | 1  | A
4  | a  | $  | 2  | 1  | A
4  | a  | $  | 3  | 2  | B
4  | a  | $  | 4  | 1  | B
4  | a  | $  | 5  | 2  | C

Reply

Marsh Posté le 16-03-2003 à 12:41:52   

Reply

Marsh Posté le 16-03-2003 à 12:50:45    

okay...merci...j'ai un exo d'application (la premiere question) je vais essayer d'y repondre et ca serait sympa si tu pouvais me dire si c bon ou pas...
http://www.chez.com/futuramazone/exo2.gif


Message édité par niiico le 16-03-2003 à 12:52:24
Reply

Marsh Posté le 16-03-2003 à 12:54:18    

L'URL marche pas :/

Reply

Marsh Posté le 16-03-2003 à 12:54:48    

mrBebert a écrit :

L'URL marche pas :/  


2 secondes j'essaye de faire marcher...

Reply

Marsh Posté le 16-03-2003 à 12:56:14    

bon je te donne l'adresse de la page c'est le tout dernier exo ou la premiere question parle de jointure...
http://www.sm.u-bordeaux2.fr/MI2S/ [...] blex61.pdf

Reply

Marsh Posté le 16-03-2003 à 12:59:25    

pour le 1a ce serait
14
11
11
15
24
21
..
..
51
55
pour le 1b
sabac sabac
sabac bnpso
sabac sabac
sabac agen&co
agent&co sabac
...
...
c ca?

Reply

Marsh Posté le 16-03-2003 à 13:09:38    

Faut pas garder tous les champs :??:  
Pour la 1a, je dirais plutot

TABLE_1              | TABLE_2
------------------------------------
1 | Jean | ... | ... | 2 | BNPSO | 1
1 | Jean | ... | ... | 3 | ...   | 1
4 | ...  | ... | ... | 1 | ...   | 4
5 | ...  | ... | ... | 4 | ...   | 5


C'est à dire les lignes ou TABLE_1.REF = TABLE_2.CONTACT


Message édité par mrbebert le 16-03-2003 à 13:10:38
Reply

Marsh Posté le 16-03-2003 à 13:16:33    

mrBebert a écrit :

Faut pas garder tous les champs :??:  
Pour la 1a, je dirais plutot

TABLE_1              | TABLE_2
------------------------------------
1 | Jean | ... | ... | 2 | BNPSO | 1
1 | Jean | ... | ... | 3 | ...   | 1
4 | ...  | ... | ... | 1 | ...   | 4
5 | ...  | ... | ... | 4 | ...   | 5


C'est à dire les lignes ou TABLE_1.REF = TABLE_2.CONTACT


 
la je comprend vraiment pas...ca veut dire quoi alors on identifie ref et contact??? et dans la 1ere colonne c'est pas 1 2 4 5 ???

Reply

Marsh Posté le 16-03-2003 à 13:53:37    

Par défaut, une jointure, ca consiste à constituer toutes les lignes possible faites avec une ligne de la 1ère table et une ligne de la 2ème. Ici, on a 4 lignes dans la 1ère et 5 dans la 2ème, le résultat aurait donc 4*5 = 20 lignes.
Mais on ne garde que les couples "qui vont bien", c'est à dire ceux dont TABLE_2.CONTACT = TABLE_1.REF.

Reply

Marsh Posté le 16-03-2003 à 14:50:11    

mrBebert a écrit :

Par défaut, une jointure, ca consiste à constituer toutes les lignes possible faites avec une ligne de la 1ère table et une ligne de la 2ème. Ici, on a 4 lignes dans la 1ère et 5 dans la 2ème, le résultat aurait donc 4*5 = 20 lignes.
Mais on ne garde que les couples "qui vont bien", c'est à dire ceux dont TABLE_2.CONTACT = TABLE_1.REF.

okay c bon...sinon t'en pense quoi du tout premier exo de la page? tu pourrais y jeter un oeil??? moi je pense que le pb c que y a pas besoin d'afficher la rue ville etc puisu'il ny a que 2 fournisseurs alors y faudrait creer une table 'fournisseur' avec adresse et tout et tout???

Reply

Marsh Posté le 16-03-2003 à 15:06:04    

Oui
Dans la table, certaines infos sont répétées inutilement. Mieux vaudrait une table regroupant les fournisseurs (chancun ayant un identifiant).
Dans la table des produits, il n'y aurait que l'identifiant, le nom, et l'identifiant du fournisseur.

Reply

Marsh Posté le 16-03-2003 à 15:16:36    

mrBebert a écrit :

Oui
Dans la table, certaines infos sont répétées inutilement. Mieux vaudrait une table regroupant les fournisseurs (chancun ayant un identifiant).
Dans la table des produits, il n'y aurait que l'identifiant, le nom, et l'identifiant du fournisseur.


bon ben je dois y aller la...merci beaucoup pour ton aide...a bientot :hello:

Reply

Marsh Posté le 16-03-2003 à 15:21:09    

:hello:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed