![]() |
Pages (2): [1] 2 » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ informatica triennale (http://www.dsy.it/forum/forumdisplay.php?forumid=211)
-- dubbio su esercizio E-R (http://www.dsy.it/forum/showthread.php?threadid=39756)
dubbio su esercizio E-R
Ciao ragazzi, spero che qualcuno possa essermi di aiuto...sto guardando un po di esercizi nei temi d'esame passati e non mi è chiara una cosa: nell'esercizio sottostante, per esempio, come faccio a determinare che tipo di cardinalità ha l'associazione R1 al lato destro?

E, un'altra cosa, per l'associazione R2 come faccio a scegliere quale delle due opzioni preferire:
1) mettere A11 come chiave esterna in E2
2) mettere A21 e A22 come chiave esterna in E1
grazie in anticipo per le risposte ![]()
sembra più una dimenticanza nel testo dell'esrcizio, ma da qualche parte avevo letto che la cardinalità di default è 0,N..
e poi io metterei in E1 come fk A21 e A22, perchè la relazione R2 è 1 a N e quindi la chiave esterna va aggiunta alla relazione con cardinalità max = 1..
Però non sono sicurissimo.. ![]()
Se ti può interessare, qua la traduzione da ER a relazionale è spiegata abbastanza bene:
http://www.di.unito.it/~damiani/DID...nfoApp66-78.pdf
E cmq aspetto conferma da qualcuno con le idee più chiare
...
confermo che sia una dimenticanza....
ah bene quindi il primo dubbio è andato ![]()
Si, cmq dieguito anche io avevo pensato la stessa cosa riguardante il punto 2...inoltre io mettere la fk (A21,A22) con l'asterisco (*) che sta ad indicare che puo' essere nulla dato che la cardinalità minima è = 0
Voi che dite?
credo di sì.. io l'* per indicare che un attributo può essere nullo nel relazionale l'ho scoperto 10 minuti fa .
..
come avete risolto gli esercizi di algebra relazionale dello stesso tema d'esame?
magari possiamo confrontare le soluzioni.. questi sono gli esercizi che mi preoccupano di più...
guarda altri esercizi di quel tema d'esame non li ho fatti e ora sono abbastanza cotto...
ma domani mi becco online con altri per fare un po di esercizi, volendo ci si puo beccare su una chat oppure fare un wave....oppure scriviamo man mano le soluzioni qui sopra ![]()
Domani dalle 10.30 circa iniziamo a farne un po ![]()
Come avete risolto il primo esercizio di algebra relazionale del tema del 10/4/2006? io fatto l'intersezione tra l'insieme dei numeri di telefono di quelli che avevano ordinato pizza margherita e l'insieme di quelli che avevano ordinato pizza marinara.. Secondo voi può andare?
Originally posted by Spr1gg4N
ah bene quindi il primo dubbio è andato
Si, cmq dieguito anche io avevo pensato la stessa cosa riguardante il punto 2...inoltre io mettere la fk (A21,A22) con l'asterisco (*) che sta ad indicare che puo' essere nulla dato che la cardinalità minima è = 0
Voi che dite?

__________________
...e la mia giustizia calerà sopra di loro con grandissima vendetta e furiosissimo sdegno su coloro che si proveranno ad ammorbare ed infine a distruggere i miei fratelli. E tu saprai che il mio nome è quello del Signore quando farò calare la mia vendetta sopra di te (Ezechiele 25.17)
Originally posted by dieguito
Come avete risolto il primo esercizio di algebra relazionale del tema del 10/4/2006? io fatto l'intersezione tra l'insieme dei numeri di telefono di quelli che avevano ordinato pizza margherita e l'insieme di quelli che avevano ordinato pizza marinara.. Secondo voi può andare?
Ma gli attributi A21 e A22 vanno messi in E1 due volte?? cioè una per la traduzione di R1 e un'altra per la traduzione di R2?
si...anch'io l'ho pensata cosi 
__________________
...e la mia giustizia calerà sopra di loro con grandissima vendetta e furiosissimo sdegno su coloro che si proveranno ad ammorbare ed infine a distruggere i miei fratelli. E tu saprai che il mio nome è quello del Signore quando farò calare la mia vendetta sopra di te (Ezechiele 25.17)
Originally posted by dieguito
Come avete risolto il primo esercizio di algebra relazionale del tema del 10/4/2006? io fatto l'intersezione tra l'insieme dei numeri di telefono di quelli che avevano ordinato pizza margherita e l'insieme di quelli che avevano ordinato pizza marinara.. Secondo voi può andare?
code:
∏ Nr.Telefono(∏ Nr.Telefono( ∏ Codice-Pizza( σ nome = 'margherita' PIZZA ) * (∏ Nr.Telefono, Codice-Pizza ORDINE)) ∩ ∏ Nr.Telefono(∏ Nr.Telefono( ∏ Codice-Pizza( σ nome = 'marinara' PIZZA ) * (∏ Nr.Telefono, Codice-Pizza ORDINE)))
code:
((∏ Nr.Telefono ORDINE) - (∏ Nr.Telefono ( σ data = 'gennaio 2006' ORDINE))) * (∏ Nr.Telefono, Nome CLIENTE)
Per quanto riguarda le SELECT dello stesso testo di esame come avete fatto? Io così ma nn sono tanto convinto della seconda:
1)
code:
SELECT Codice-Pizza, Codice-Operatore, SUM(Costo) FROM Ordine GROUP BY Codice-Pizza, Codice-Operatore;
code:
SELECT Nome FROM Cliente WHERE Nr.Telefono IN ( SELECT Nr.Telefono, COUNT DISTINCT(Codice-Operatore) FROM Ordine GROUP BY Nr.Telefono HAVING COUNT DISTINCT(Codice-Operatore) >= 2);
Nella seconda devi levare la count nella select della subquery, perché oltre a non servirti, fa fallire la query, perché vuole ci dev'essere un solo campo nella select.
Ps: la sintassi della count distinct è: COUNT(DISTINCT campo)
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
si hai ragione infatti avevo il dubbio che desse errore "too many columns".... ma togliendo il count dalla select e, ovviamente, mettendo la count distinct con la sintassi corretta (
) va bene la la query?
Non ho il testo davanti, ma deduco tu voglia estrarre i nomi delle persone che hanno effettuato 2 o più ordini... in tal caso è corretta.
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
| All times are GMT. The time now is 04:07. | Pages (2): [1] 2 » Show all 28 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.