Algebra e Calcolo relazionale (parliamone) Clicca QUI per vedere il messaggio nel forum |
Von Neumann |
Apro questo thread perché penso di non essere il solo ad avere parecchi dubbi su questi due argomenti.
Vediamo se riusciamo a mettere un po' insieme le idee (o a confonderci ulteriormente, distruggendo vicendevolmente le nostre certezze...)
Allego anche un FILE di esercizi da prendere come riferimento.
Prima di tutto:
è obbligatorio operare una proiezione ogni qualvolta vado ad operare una selezione?
ad esempio per l'esercizio (b)i del primo schema relazionale viene proposta la soluzione
∏Titolo(∏Collocazione(σCliente='Paolo Rossi' NOLEGGIA) JOIN VIDEO)
ma la proiezione di Collocazione a me pare inutile considerando che l'attributo finale di nostro interesse è Titolo.
Se facessimo
∏Titolo((σCliente='Paolo Rossi' NOLEGGIA) JOIN VIDEO)
non sarebbe implicito che la selezione dove Cliente='Paolo Rossi' su NOLEGGIA viene fatta prendendo tutti gli attributi dai quali alla fine viene estratto Titolo (dopo aver fatto il JOIN NATURALE con VIDEO)? |
valix85 |
Si in teoria se non fai la proiezione si prende tutti i campi in automatico...l'avevo visto su una slide, per il fatto della proiezione su collocazione..bha mi sembra inutile dato che non la includi sul risultato esterno... |
Svarions |
la proiezione in mezzo non è necessaria, serve solo per accellerare i calcoli di un calcolatore quindi il prof essendo un pò pignolo la fa. è molto + veloce joinare un attributo con una tabella piuttosto che una tabella con una tabella |
Von Neumann |
Originally posted by Svarions
la proiezione in mezzo non è necessaria, serve solo per accellerare i calcoli di un calcolatore quindi il prof essendo un pò pignolo la fa. è molto + veloce joinare un attributo con una tabella piuttosto che una tabella con una tabella
claro, però è più leggibile senza
Secondo voi le tre interrogazioni del secondo schema relazionale possono essere valide anche nel seguente modo:
i)∏CodCli,Nome(∏CodCli(∏NOrdine(σProdotto='Brie' INFOO) JOINData>='01/01/99' Λ Data<='31/12/99' ORDINE) JOINIndirizzo='Genova' CLIENTE)
INTERSEZIONE
∏CodCli,Nome(∏CodCli(∏NOrdine(σProdotto='Camembert' INFOO) JOINData>='01/01/99' Λ Data<='31/12/99' ORDINE) JOINIndirizzo='Genova' CLIENTE)
ii) ∏Prodotto(FORNISCE) - ρNomeF,Prezzo,Prodotto<--N,P,Pz (σP=Prodotto Λ (N<>NomeF Λ Pz<>Prezzo) FORNISCE)
iii) ∏CodCli,Nome (∏CodCli(∏NOrdine (INFOO) JOIN ORDINE) JOINIndirizzo='Genova' CLIENTE)
:
ρCodCli,Nome<--C,N(∏CodCli(∏NOrdine (σProdotto='Brie'INFOO) JOIN ORDINE) JOINC=CodCli CLIENTE)
Inoltre ho un dubbio su una cosa:
La ridenominazione (ρ ) opera automaticamente anche una proiezione?
P.S: Io ho fatto questo es° considerando che sia così |
Voodoo |
Originally posted by Von Neumann
Inoltre ho un dubbio su una cosa:
La ridenominazione (ρ ) opera automaticamente anche una proiezione?
Che io sappia no,la ridenominazione rinomina,la proiezione proietta :D |
Von Neumann |
Originally posted by Voodoo
Che io sappia no,la ridenominazione rinomina,la proiezione proietta :D
In tal caso l'es ii e iii sono come segue:
ii) ∏Prodotto(FORNISCE) - ∏P(ρNomeF,Prezzo,Prodotto<--N,P,Pz (σP=Prodotto Λ (N<>NomeF Λ Pz<>Prezzo) FORNISCE))
iii) ∏CodCli,Nome (∏CodCli(∏NOrdine (INFOO) JOIN ORDINE) JOINIndirizzo='Genova' CLIENTE)
:
∏C,N(ρCodCli,Nome<--C,N(∏CodCli(∏NOrdine (σProdotto='Brie'INFOO) JOIN ORDINE) JOINC=CodCli CLIENTE)) |
Voodoo |
Ma che tu sappia Pelasca metterà anche il calcolo relazionale negli appelli a venire? |
Gomez |
boh!...
Però gli esercizi di AlgebRel dell'appello del 3 luglio mi sembravano fattibili--- più semplici rispetto agli esercizi proposti nelle slide ma fatti in modo che lui capisca bene se le sai fare.. a meno di "copy&paste" da qualche compagno!... |
Von Neumann |
Originally posted by Gomez
boh!...
Però gli esercizi di AlgebRel dell'appello del 3 luglio mi sembravano fattibili--- più semplici rispetto agli esercizi proposti nelle slide ma fatti in modo che lui capisca bene se le sai fare.. a meno di "copy&paste" da qualche compagno!...
Si... avendo il tempo li avrei anche fatti |
|
|
|