bases relationnelles\les operateurs ensemblistes [help] - SQL/NoSQL - Programmation
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
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 ? |
tu penses qu il me resterait juste :
a @
b @
a $
a $
c ca que tu veux dire ???
Marsh Posté le 16-03-2003 à 12:30:12
oui, c'est ca
Je croyais qu'il fallait convertir les instructions en SQL
Pour la sélection dans K :
K1 | K2 | K3
____________
3 | 2 | B
5 | 2 | C
Marsh Posté le 16-03-2003 à 12:31:41
mrBebert a écrit : oui, c'est ca |
ok...nan c tres therique tu sais c juste a l'ecrit sur une feuille...sinon t'as une idée pour les autres???
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
Marsh Posté le 16-03-2003 à 12:35:03
mrBebert a écrit : oui, c'est ca |
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
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 : |
c ca sauf que il ne faut pas de doublon je pense...
Marsh Posté le 16-03-2003 à 12:38:25
niiico a écrit : |
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
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
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
Marsh Posté le 16-03-2003 à 12:54:48
ReplyMarsh 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
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?
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 |
C'est à dire les lignes ou TABLE_1.REF = TABLE_2.CONTACT
Marsh Posté le 16-03-2003 à 13:16:33
mrBebert a écrit : Faut pas garder tous les champs
|
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 ???
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.
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. |
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???
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.
Marsh Posté le 16-03-2003 à 15:16:36
mrBebert a écrit : Oui |
bon ben je dois y aller la...merci beaucoup pour ton aide...a bientot
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 alors si vous pouviez m'aider