.dsy:it.
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)
-- Soluzione Appelli Castano (http://www.dsy.it/forum/showthread.php?threadid=37060)


Posted by Gimmy on 01-12-2008 16:13:

Soluzione Appelli Castano

Qualcuno ha per caso le soluzioni degli appelli presenti sul sito della prof Castano? Ossia Giugno 2005, Luglio 2005, Gennaio 2006 e Aprile 2006?

Grazie anticipatamente :)


Posted by Gimmy on 10-12-2008 11:30:

Vabè...

Qualcuno almeno sa dirmi come risolvere l'esercizio 2 dell'appello del 12 luglio 2005? Non so proprio da dove partire...

Grazie...


Posted by R1cky` on 08-01-2009 13:19:

Ciao,
Anche io sto guardando i temi d'esame della castano e alcuni esercizi anche io li trovo un po' "strani", difatti non saprei rispondere nemmeno io a quello.

Per caso tu sai rispondere alla domanda "illustrare tutti i possibili casi di traduzione di associazioni 1:1 nel passaggio da uno schema ER a uno relazionale, discutendone l'applicabilità rispetto alle possibli cardinalità" (è la domanda 1 del 14/6/05).

Grazie

Ciao


Posted by Gimmy on 08-01-2009 13:31:

Si, i tre modi possibili sono:
- traduzione mediante chiavi esterne: consiste nel copiare la chiave primaria della relazione con partecipazione parziale in quella con partecipazione totale (caso (0,1)-->(1,1))
- relazione fusione: consiste nel fodnere le due entitàin una sola relaizone (caso (1,1)-->(1,1))
- relazione associazione: consiste nel creare una nuova tabella che ha come chiave primaria e come chiave esterna l'unione delle due chiavi primari delle due rispettive tabelle (più indicata che associazioni M-->N)

Le trovi cmq sul libro a pagina 235.

Cmq per l'esercizio 2 dell'appello del 12 luglio 2005 ho trovato i metodi di risoluzione(mantenimento entità padre, mantenimento entità figli, traduzione mediante associazione) ma non ho capito bene come fare... cioè se si possono usare tutte indipendentemente l'una dal''altra...


Posted by R1cky` on 08-01-2009 13:49:

Ti ringrazio per la risposta, sei stato molto gentile.

Io purtroppo non posso darti una mano poichè quella parte non l'ho ancora ben assorbita.. :(

Grazie ancora


Posted by Gimmy on 08-01-2009 13:50:

Ok, nel caso scopri qualcosa di nuovo fammi sapere... ;)


Posted by number15 on 08-01-2009 19:17:

Originally posted by Gimmy
Vabè...

Qualcuno almeno sa dirmi come risolvere l'esercizio 2 dell'appello del 12 luglio 2005? Non so proprio da dove partire...

Grazie...


Prova a buttare un occhio al pdf "08Prog-logica-08", nella parte "ELIMINAZIONE GERARCHIE DI GENERALIZZAZIONE" (slide 12).


Posted by Gimmy on 08-01-2009 19:36:

si avevo gia visto, ma quello che volevo sapere era come mettere insieme le varie traduzioni delle generalizzazioni, cioè l'esercizio dice "mostrare lo schema ER con la gerarchia ristrutturata secondo ciascuna possibile alternativa"; cioè devo fare ogni possibile traduzione di scienze e ciascuna di queste associarla a ogni possibile traduzione di docente?


Posted by number15 on 08-01-2009 22:23:

Guarda, questo non l'ho capito onestamente.... l'importante è che tu sappia come si ristrutturano gli schemi... poi se ti esce questo esercizio, chiedi al prof cosa vuole sapere di preciso.
In questo caso si avrebbero 3 possibili traduzioni della generalizzazione docente e 2 di scienze (non è del tipo t.e. quindi il "mantenimento delle sole entità sottoclasse" non è applicabile): se dovessi fare tutte i possibili incroci di ristrutturazioni, ti verrebbero fuori 8 schemi.....

__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com


Posted by Gimmy on 08-01-2009 22:33:

esatto è proprio questo il problema che ho...! mi sembra strano che si debbano fare cosi tanti schemi i quali poi nel punto successivo debbano essere tutti tradotti in schema relazione...
un po lunghino... xD
magari c'è qualche altra regola boh...

cmq i casi totali incrociando le ristrutturazioni non dovrebbero essere 6?


Posted by number15 on 09-01-2009 15:01:

Si scusa, errore mio. 2x3 e non 2^3 :D

__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com


Posted by marchinkus on 10-01-2009 10:56:

se la generalizzazione è te (totale esclusivo) puoi eliminare il padre e tenere solo le 2 specializzazioni.
Per quella pe (parziale esclusiva) è obbligatorio mantenere il padre


Posted by R1cky` on 10-01-2009 12:10:

Originally posted by marchinkus
se la generalizzazione è te (totale esclusivo) puoi eliminare il padre e tenere solo le 2 specializzazioni.
Per quella pe (parziale esclusiva) è obbligatorio mantenere il padre


In linea di massima il mantenimento della superclasse e il mantenimento di tutte le entità è applicabile a tutte le gerarchie mentre il mantenimento delle sole sottoclassi è applicabile solo alle gerarchie di tipo te, anche se c'è da dire dire che una gerarchia di tipo pe è trasformabile in te andando a creare dei tipi di entità per ciascun caso.

cmq i casi totali incrociando le ristrutturazioni non dovrebbero essere 6?


In realtà sono 5 perchè se vai a notare il tipo di gerarchia tra scienze e le due sottoclassi, la partecipazione è di tipo parziale sovrapposta, percui il mantenimento delle sottoclassi non è applicabile.

Mi sono visto ora la videolezione dove parla di questa cosa e della domanda che avevo posto qualche post in sù :D


Posted by Gimmy on 12-01-2009 14:36:

In realtà sono 5 perchè se vai a notare il tipo di gerarchia tra scienze e le due sottoclassi, la partecipazione è di tipo parziale sovrapposta, percui il mantenimento delle sottoclassi non è applicabile.


infatti, 3 possibili traduzioni per docente e 2 possibili traduzioni per scienze, quindi 3x2= 6 totali


Posted by R1cky` on 13-01-2009 14:45:

Mi scuso, ammetto di aver parlato per niente, non avevo letto correttamente quando scritto in precedenza :(


Posted by Gimmy on 13-01-2009 16:23:

Mi scuso, ammetto di aver parlato per niente, non avevo letto correttamente quando scritto in precedenza :(


no problem ;)

Oggi ho rifatto tutte le query in sql degli appelli, posto qui il file, fatemi sapere se sono corrette o meno, anche se su mysql non ho avuto errori...


Posted by Counter65 on 14-01-2009 20:18:

esercizio 2, aprile 2006

E2(a21,a22 ,a23,a11(chiave esterna),ar1) di questo non sono sicuro...
r2(a11(chiave esterna),a21,a22(insieme fanno chiave esterna) )
r3(a11(chiave esterna),a21,a22 ,ar3)
e1(a11 ,12)

Qualcuno lo puo fare e dirmi se c'è qualcosa di sbagliato?


Posted by R1cky` on 14-01-2009 21:33:

Per quanto riguarda E2 secondo me va bene così come l'hai fatta.
Volendo minimizzare il numero di relazioni, l'associazione R3 si potrebbe evitare di trasformarla in relazione e scrivere la relazione nel seguente modo:

E1(a11,a12, a21,a22,ar3)

Ovviamente facendo le dovute considerazioni sui valori che a21, a22 e ar3 possono assumere all'interno di E1 poichè se la partecipazione è rara (percui si avrebbero molti valori nulli) è conveniente la soluzione che hai proposto te :)

Aspetto un tuo parere.

Ciao


Posted by Gimmy on 14-01-2009 21:39:

io l'ho risolto così (chiavi primarie sottolineate e chiavi esterne in grassetto):

E1(A11,A12,A21,A22,AR3)
E2(A21,A22,A23,A11,AR1)
R2(A11,A21,A22)

doivrebbe essere = a quello di counter65 con la modifica che ha detto r1cky...

mentre l'esercizio 2 del 14 giugno 2006 l'ho risolto cosi:

E1(A11,A12,A13,A14,AR1,A21,A22)
E2(A21,A22,A23)
E3(A11,A31)

è giusto?


Posted by Counter65 on 15-01-2009 08:00:

avete ragione vanno minimizzate le relazioni.

per quello di giugno, non ho capito perchè non è scritta la partecipazione di E2 in R1 e ho solo un dubbio su E3, ci va la chiave esterna su A11?

il 2 del gennaio 06:

1,N - 3,N
0,N - 0,6
1,10- 2,N

non sono sicuro ovviamente... :)


Posted by Gimmy on 15-01-2009 15:31:

si l'ho fatto uguale a te, solo che nell'ultimo ho messo (2,2) invece che (2,n), perchè nel testo dice "ogni articolo deve avere due esperti revisori", senza specificare altro... pero bo, non so se sia giusto o meno...


Posted by Counter65 on 15-01-2009 17:47:

potresti dirmi se nell'ultimo esercizio che hai fatto va messo A11 come chiave secondaria di E3? e se no perchè?

grazie


Posted by Gimmy on 15-01-2009 18:59:

si hai ragione, A11 va messo anche come chiave esterna, perchè la relazione è 1-N, quindi copi la chiave primaria di E1 in E3 che diventa chiave esterna


Posted by Pennywise on 16-01-2009 08:57:

Originally posted by Gimmy
io l'ho risolto così (chiavi primarie sottolineate e chiavi esterne in grassetto):

E1(A11,A12,A21,A22,AR3)
E2(A21,A22,A23,A11,AR1)
R2(A11,A21,A22)

doivrebbe essere = a quello di counter65 con la modifica che ha detto r1cky...

mentre l'esercizio 2 del 14 giugno 2006 l'ho risolto cosi:

E1(A11,A12,A13,A14,AR1,A21,A22)
E2(A21,A22,A23)
E3(A11,A31)

è giusto?


Non ne sono sicuro.
Io credo che così hai risolto R1 ma non R2.
Siccome su E2 verso E1 passando per R1 la cardinalità non è specificata assumiamo sia 1,1
Quindi possiamo spostare in E2 la chiave di E1, e anche l'attributo AR1
In E1 manteniamo si la chiave di E2 (non AR1) ma per risolvere la relazione R2, in funzione di quella cardinalità 0,1 su E1.


Posted by Gimmy on 16-01-2009 16:25:

quindi la cardinalità non è specificata di proposito?
Io ho assunto che sia 0,1 e quindi ho agito di conseguenza...
Cmq se non è specificata si assume sempre che sia 1,1 ?


Posted by morte2097 on 17-01-2009 10:50:

io l'esercizio del 14 l'ho fatto così
E1(A11,A12,A13*,A14,A21*,A22*) A11 C.P A21,A22 C.E R2 assorbita
E2(A21,A22,A23,A11,AR1) A21,A22 C.P A11 C.E R1 assorbita
E3(A31,A11) entrambe C.P


Posted by R1cky` on 17-01-2009 11:41:

Io l'ho fatto in un altro modo ( ChiavePrimaria ChiaveEsterna )

E1(A11,A31,A12,A13*,A14)
La combinazione della chiave primaria A11 e di A31 a formare la chiave esterna riguardano la relazione R3
E2(A21,A22,A23,A11*, A11,AR1)
La chiave sterna A11 opzionale riguarda la relazione R2, che prevede appunto una partecipazione opzionale, mentre A11 chiave esterna obbligatoria e AR1 riguardano la relazione R1
E3(A31,A11)

Scusate ma quando la cardinalità non è specificata cos'è di default?
E' lecito che la chiave esterna di E3 in E1 possa essere scritta in quel modo?
Che ne pensate della mia soluzione?

PS: Ho dato un occhio veloce alle query che hai postato, io la query 1 del 18/1/06 l'ho fatta in questo modo: http://pastebin.com/m7d01f7d2


Posted by Gimmy on 17-01-2009 12:04:


Io l'ho fatto in un altro modo ( ChiavePrimaria ChiaveEsterna )

E1(A11,A11,A12,A13*,A14)
E2(A21,A22,A23,A11*, A11,AR1)
La chiave sterna A11 opzionale riguarda la relazione R2, che prevede appunto una partecipazione opzionale, mentre A11 chiave esterna obbligatoria e AR1 riguardano la relazione R1
E3(A31,A11)

Scusate ma quando la cardinalità non è specificata cos'è di default?
E' lecito che la chiave esterna di E3 in E1 possa essere scritta in quel modo?
Che ne pensate della mia soluzione?


Allora secondo me...
E1 deve avere per forza A21 e A22 come chiavi esterne, assorbite tramite l'associazione R2.
Perche in E2 hai scritto 2 volte A11? Basta scriverlo una volta sola quando risolvi R1.
Per la chiave esterna di E3 non so, di sicuro A11 è chiave primaria di E3 con A31, pero non so se A11 sia anche chiave esterna, in teoria dovrebbe esserlo...


Secondo me, assumendo che quando la cardinalità non è espressa sia di default (1,1), la soluzione dovrebbe essere la seguente(chiave primaria, chiave esterna):

E1(A11,A12,A13,A14*,(A21,A22)*)
E2(A21,A22,A23,AR1,A11*)
E3(A11,A31)

R1 viene assorbita da E2, R2 viene assorbita da E1 ed R3 viene assorbita da E3.
Non sono sicuro pero se A11 in E3 debba essere anche chiave esterna oltre che chiave primaria, visto che la cardinalità è (1,1) dovrei copiare la chiave primaria di E1 in E3...

Per il resto volevo chiedere: se avessi accorpato R1 in E1 invece che in E2, avrei dovuto riscrivere le chiavi A21 e A22 in E1 oltre che a AR1?


Posted by R1cky` on 17-01-2009 12:19:

Originally posted by Gimmy
Allora secondo me...
E1 deve avere per forza A21 e A22 come chiavi esterne, assorbite tramite l'associazione R2.
Perche in E2 hai scritto 2 volte A11? Basta scriverlo una volta sola quando risolvi R1.


No è vero, hai ragione, ho avuto una defaiance sulla risoluzione delle 1:N, spero di non fare ste cazzate durante l'esame :oops:
In definitiva lo schema verrebbe fuori come quello che hai scritto, solo che se presumi che la cardinalità non specificata sia (1,1), a quel punto la chiave esterna di E2 in E1 non è opzionale. O sbaglio?


Per il resto volevo chiedere: se avessi accorpato R1 in E1 invece che in E2, avrei dovuto riscrivere le chiavi A21 e A22 in E1 oltre che a AR1?


Eh sì, per forza perchè per definizione devi mettere l'insieme di attributi che è identificatore dell'entità.


Posted by Gimmy on 17-01-2009 13:02:

In definitiva lo schema verrebbe fuori come quello che hai scritto, solo che se presumi che la cardinalità non specificata sia (1,1), a quel punto la chiave esterna di E2 in E1 non è opzionale. O sbaglio?


mmm non ho capito cosa intendi dire... :?


Posted by R1cky` on 17-01-2009 13:07:

Mi spiego meglio: Hai detto che la cardinalità di default è 1:1, percui ogni tupla di e2 deve essere in relazione con relativa di e1 e di conseguenza la chiave esterna (i due campi A21 e A22 che hai in E1) non può essere nulla. O no?
Sono stato spiegato? :stralol:


Posted by Gimmy on 17-01-2009 13:24:

ah ok, intendi per il fatto che ho messo A21 e A22 nulli in E1 giusto? Lì li ho messi a causa di R2, non R1. Per R1 penso che bisogna copiare la chiave primaria di E1 in E2 o vicreversa(sempre ammesso che la cardinalità sia (1,1)).


Posted by morte2097 on 17-01-2009 13:50:

scusa ma come fai ad accorpare E3 in E1, c'è una dipendenza 1:N.


Posted by morte2097 on 17-01-2009 14:01:

scusate, ho letto male!!!!!!!


Posted by R1cky` on 17-01-2009 14:05:

Ragazzi sto facendo gli esercizi di algebra relazionale dei temi d'esame, chi di voi è così gentile da dirmi cosa ne pensa? :D
La mi scrittura è veramente penosa, ho cercato di scrivere il meglio possibile. :asd:
Grazie




Posted by R1cky` on 17-01-2009 14:54:

Scusate, il doppio post, ma perchè non si può allegare un file alla modifica del post???


Posted by irene on 17-01-2009 15:06:

esercizio 3 - luglio 2005

Ciao, secondo voi e' corretto cosi'? Il tempo 100 , mi trae un po' in inganno...
grazie.

a) Bianchi -->(15) Rossi --> (35) Verdi ------------> (45) Neri
|--> (25) Gialli ------------^ (55) |----> (65) Viola

neri non delega nulla a marroni x' non ha la G.O.

b) Revoke all on a from verdi;

c) dalla tabella sysauth viene eliminata l'occorrenza
verdi, rossi, a, r,35, y

il nuovo grafo e' così..
Bianchi -->(15) Rossi
|----> (25) Gialli ---> (55) Verdi ----> (65) Viola


Posted by R1cky` on 17-01-2009 15:21:

Si anche io l'avrei fatto così, solo che però non capisco perchè dici che neri non delega marroni: è marroni che non ha la grant option percui è lui che non può delegare a sua volta qualcuno. O sbaglio?


Posted by irene on 17-01-2009 15:39:

hai ragione tu .. la grant option indica se i privilegi sono delegabili.. quindi in questo caso Marroni non puo' delegare la select a nessuno.

il grafo a) non e' completo, manca la freccia da Neri a Marroni al tempo 75 ( Neri ----> (75) Marroni )

il grafo c) invece e' corretto x' in ogni caso Neri ha ricevuto la grant solo da Verdi.

Dico bene?
Grazie 1000.


Posted by morte2097 on 17-01-2009 15:54:

ho dato un okkiata agli esercizzi sull'algebra relazionale, la parte seconda "determinare i pc dell......"
non capisco xkè fai la concatenzaione delle tabelle con la moltiplicazione e non col join naturale, così non riski di unire alla tabella dei pc DELL i pc ke hanno fatto una manutenzione hardware ma ke non sono della dell?


Posted by R1cky` on 17-01-2009 16:02:

Originally posted by morte2097
non capisco xkè fai la concatenzaione delle tabelle con la moltiplicazione e non col join naturale, così non riski di unire alla tabella dei pc DELL i pc ke hanno fatto una manutenzione hardware ma ke non sono della dell?


No scusa tutti quegli scarabocchi che sembrano asterischi sono dei join naturali, prodotti cartesiani non ne ho usati :)

hai ragione tu .. la grant option indica se i privilegi sono delegabili.. quindi in questo caso Marroni non puo' delegare la select a nessuno. il grafo a) non e' completo, manca la freccia da Neri a Marroni al tempo 75 ( Neri ----> (75) Marroni ) il grafo c) invece e' corretto x' in ogni caso Neri ha ricevuto la grant solo da Verdi. Dico bene? Grazie 1000.


Io il grafo l'ho fatto così, mi convfermi che equivale a quello che hai scritto te?


Posted by irene on 17-01-2009 16:20:

il mio e' identico.

ho appena fatto l'esercizio 3 di aprile 2006, quello sul reverse eng.. provo ad allegare lo schema er che ho creato.. credi sia corretto?
grazie.


Posted by Gimmy on 17-01-2009 17:42:

c) dalla tabella sysauth viene eliminata l'occorrenza verdi, rossi, a, r,35, y


scusa ma dalla tabella di sysatuth non vengono cancellate le righe
Neri verdi A R 45 Y
Marroni Neri A R 75 N
oltre a quella che hai detto tu?

ho appena fatto l'esercizio 3 di aprile 2006, quello sul reverse eng.. provo ad allegare lo schema er che ho creato.. credi sia corretto? grazie.


si, io l'ho fatto uguale, volevo chiedere invece se le cardinalità (1,n) le hai messe "a caso" e quindi andava bene anche mettere (0,n) oppure per un motivo particolare... perche io ad esempio ho messo (1,n) solo nella cardinalità che va da fattura a prodotto e da fattura a negozio, negli altri ho messo (0,n)...


Posted by morte2097 on 17-01-2009 17:43:

1 cosa, solo x kiarimento,sulle cardinalità , se il negozio e la fattura sono obbligati a effettuare spedizioni è giusto,se per ogni negozio/fattura nn c'è l'obbligo della spedizione sarebbe (0,n) giusto? poi il resto mi sembra tutto ok.


Posted by R1cky` on 17-01-2009 17:59:

Io credo che visto che non ci sono attributi opzionali nelle chiavi esterne tutte le le entità hanno la partecipazione obbligatoria all'associazione alle rispettive associazioni. O no?


Posted by Gimmy on 17-01-2009 18:04:

Ragazzi sto facendo gli esercizi di algebra relazionale dei temi d'esame, chi di voi è così gentile da dirmi cosa ne pensa? :D


12 luglio 2005
perche nella prima fai una sottrazione? non basta fare una proiezione+selezione(costo<500) da manutenzione?

14 giugno 2005
nella prima io ho usato una left outer join fra percorrenza e treno, di modo da far saltar fuori i valori nulli...

10 aprile 2006
nella seconda non è possibile fare una selezione(data <> '2006-01')?

poi volevo chiedere, è possibile usare un carattere per sottointenderne un gruppo? per esempio in quest'ultimo esercizio scrivere: selezione(data <> '2006-01-%') di modo da raggruppare tutti i giorni di gennaio e di sonseguenza tutto il mese?


Posted by Gimmy on 17-01-2009 18:07:

Originally posted by R1cky`
Io credo che visto che non ci sono attributi opzionali nelle chiavi esterne tutte le le entità hanno la partecipazione obbligatoria all'associazione alle rispettive associazioni. O no?


bo, dipende molto dalle entità in gioco, cmq il tuo ragionamento è giusto anche se nell'esercizio non specifica la presenza o meno di valori nulli degli attrbuti.
Cmq penso che le cardinalità minime in questo caso abbiamo un ruolo marginale in un esercizio del genere... l'importante credo sia capire se sono uno a uno, uno a molti o molti a molti...


Posted by R1cky` on 17-01-2009 18:16:

Originally posted by Gimmy
12 luglio 2005
perche nella prima fai una sottrazione? non basta fare una proiezione+selezione(costo<500) da manutenzione?


Non credo perchè in questo modo tiri fuori anche quelli che in un'altra operazione di manutenzione hanno speso più di 500.

Originally posted by Gimmy
14 giugno 2005
nella prima io ho usato una left outer join fra percorrenza e treno, di modo da far saltar fuori i valori nulli...


Non è che puoi scrivermela? L'idea è giusta però non capisco come dopo che hai fatto il left join togli quelli che percorrono delle linee.

Originally posted by Gimmy

10 aprile 2006
nella seconda non è possibile fare una selezione(data <> '2006-01')?

poi volevo chiedere, è possibile usare un carattere per sottointenderne un gruppo? per esempio in quest'ultimo esercizio scrivere: selezione(data <> '2006-01-%') di modo da raggruppare tutti i giorni di gennaio e di sonseguenza tutto il mese?


Penso di si, ma non credo sia un problema come tu scrivi il confronto. Per formulare un' espressione sulla data bisognerebbe sapere come è memorizzata, ma visto che non è specificato uno fa come vuole :asd:


Posted by Gimmy on 17-01-2009 18:35:

Non credo perchè in questo modo tiri fuori anche quelli che in un'altra operazione di manutenzione hanno speso più di 500.


eh infatti, ma nel testo non dice di prendere solo quello con manutenzione meno costosa, cioè non c'è nessula clausula

Non è che puoi scrivermela? L'idea è giusta però non capisco come dopo che hai fatto il left join togli quelli che percorrono delle linee.


in pratica ho fatto una left outer join fra percorrenza e treno, prioettando su treno codice e tipo, e su percorrenza cf,id-treno e citta, poi sul risultato del join una selezione con nomelina= NULL e infine una proiezione su id-treno e tipo.

Penso di si, ma non credo sia un problema come tu scrivi il confronto. Per formulare un' espressione sulla data bisognerebbe sapere come è memorizzata, ma visto che non è specificato uno fa come vuole :asd:


eh infatti perche in genere la data e memorizzata con date che ha protocollo yyyy-mm-dd, quindi volevo sapere se era sintatticamente giusto scrivere % per indicare un qualsiasi carattere...


Posted by R1cky` on 17-01-2009 23:08:

eh infatti, ma nel testo non dice di prendere solo quello con manutenzione meno costosa, cioè non c'è nessula clausula


come no scusa? Il testo dice di "trovare il codice dei dispositivi hw che non hanno subito manutenzioni con costo superiore a 500" credo significhi "trovare il codice dei dispositivi il cui prezzo di tutte le manutenzioni effettuate è inferiore a 500", e difatti la mia espressione da proprio quello: prende quelli che hanno fatto manutenzioni con prezzo inferiore, poi toglie gli stessi che hanno fatto anche manutenzioni da più di 500.

in pratica ho fatto una left outer join fra percorrenza e treno, prioettando su treno codice e tipo, e su percorrenza cf,id-treno e citta, poi sul risultato del join una selezione con nomelina= NULL e infine una proiezione su id-treno e tipo.


Dovrebbe funzionare... diciamo che l'abbiama pensata in modo diverso :)


Posted by irene on 18-01-2009 09:11:

grande Ricky, hai ragione, vengono cancellate anche le righe
Neri verdi A R 45 Y
Marroni Neri A R 75 N
avevo guardato un esercizio del prof e all'inizio cancella solo la riga incriminata, invece... ho guardato l'esercizio sulla sicurezza disponibile su dsy, e la tabella viene aggiornata cancellando tutte le righe necessarie.

per l'esercizio di reverse eng. ho messo cardinalita' 1..n perche' nella traccia non metteva nessuna limitazione... 0..n, 1..n in questo caso non fa differenza.

continuo a fare esercizi per l'esame... magari ci sentiamo piu' tardi se sei loggato.

Buona domenica.


Posted by R1cky` on 18-01-2009 11:33:

Originally posted by irene
grande Ricky, hai ragione, vengono cancellate anche le righe
Neri verdi A R 45 Y
Marroni Neri A R 75 N


E' stato Gimmy a suggerirtelo, non mi prendo meriti altrui :asd:
Anche perchè non avevo visto che c'era da riscrivere la tabella aggiornata, io mi ero limitato a rifare il grado :asd:


Posted by Gimmy on 18-01-2009 11:38:

come no scusa? Il tempo "trovare il codice dei dispositivi hw che non hanno subito manutenzioni con costo superiore a 500" credo significhi "trovare il codice dei dispositivi il cui prezzo di tutte le manutenzioni manutenzioni effettuate è inferiore a 500".


Bo secondo me "trovare il codice dei dispositivi hw che non hanno subito manutenzoni con costo superiore a 500" è diverso dal scrivere "trovare il codice dei dispositivi hw che hanno subito SOLO manutenzoni con costo inferiore a 500". Nella prima se il dispositivo ha subito manutenzione con costo < a 500 ma magari ne ha subite altre con costo > a 500 va bene lo stesso, nella seconda invece devono essere presi solo quelli con costo manutenzione < 500.

Bo vabè se capita una roba del genere all'esame chiederò :-D


E' stato Gimmy a suggerirtelo, non mi prendo meriti altrui :asd: Anche perchè non avevo visto che c'era da riscrivere la tabella aggiornata, io mi ero limitato a rifare il grado :asd:

ahah grazie :D


Posted by R1cky` on 18-01-2009 11:46:

Originally posted by Gimmy
Bo secondo me "trovare il codice dei dispositivi hw che non hanno subito manutenzoni con costo superiore a 500" è diverso dal scrivere "trovare il codice dei dispositivi hw che hanno subito SOLO manutenzoni con costo inferiore a 500". Nella prima se il dispositivo ha subito manutenzione con costo < a 500 ma magari ne ha subite altre con costo > a 500 va bene lo stesso, nella seconda invece devono essere presi solo quelli con costo manutenzione < 500.


Ma scusa nel momento in cui ti dice "che non hanno subito manutenzioni con costo superiore a 500" mi sembra palese che se hanno subito manutenzioni con costo superiore a 500 non vanno bene. o no?

PS: Ho editato quello che avevo scritto ieri sera.. era leggermente incomprensibile :asd:


Posted by Gimmy on 18-01-2009 11:57:

mmm... è che secondo me non essendoci la parolina "solo" non implica che se un dispositivo hw che ha subito manutenzione sia con costo < 500 sia con costo > 500 non debba essere ammesso...

bè in ogni caso se è come dici tu l'hai risolta nel modo giusto ;)


Posted by R1cky` on 18-01-2009 12:01:

Vabbuò dai ricordiamoci che in caso di domanda ambigue è meglio chiedere alla prof :asd:

Tra oggi e domani forse mi conviene rivedermi la teoria che più ci penso e più non so una mazza :sad:


Posted by Gimmy on 18-01-2009 12:03:

si io di teoria so le domande degli appelli e qualcosa sugli argomenti inerenti... speriamo non chieda cose troppo specifiche!


Posted by darkshadow on 18-01-2009 21:34:

Originally posted by R1cky`
come no scusa? Il testo dice di "trovare il codice dei dispositivi hw che non hanno subito manutenzioni con costo superiore a 500" credo significhi "trovare il codice dei dispositivi il cui prezzo di tutte le manutenzioni effettuate è inferiore a 500", e difatti la mia espressione da proprio quello: prende quelli che hanno fatto manutenzioni con prezzo inferiore, poi toglie gli stessi che hanno fatto anche manutenzioni da più di 500.




diciamo che tira fuori le cose giuste pero.... ci sono delle ridondanze.

Mettiamo che abbiamo questo nella tabella MANUTENZIONE:

Codice   Data ....  Costo
   A        d1   ....  100
   B        d1   ....  100
   A        d2   ....  600
   C        d1   ....  10
   C        d2   ....  100
   C        d3   ....  400
   D        d4   ....  10



applicando la tua soluzione si ottiene:

B
C
C
C
D

che tira fuori si quelli con costo di manutenzione <= 500 pero alcuni codici sono ripetuti.

stavo cercando un modo per togliere i codici ripetuti. avete qualche suggerimento?

ciao.

__________________
by Ð@rk§h@ÐØw


Posted by R1cky` on 18-01-2009 21:44:

Con le operazioni in algebra relazionale a differenza di quanto avviene con le query sql non ottieni relazioni che hanno tuple distinte ma uguali ;)


Posted by darkshadow on 19-01-2009 12:29:

SQL - vincoli di integrità referenziale

 
ciao.

qualcuno ha idea di come si possono implementare i vincoli di integrità referenziale del esercizio 3 del tema d'esame del 18/01/06.


non so se si possa mettere nella parte references (column) on delete qualcosa con il check??



grazie in anticipo.

__________________
by Ð@rk§h@ÐØw


Posted by Gimmy on 19-01-2009 12:33:

penso che dopo aver dichiarato la chiave esterna, debba mettere di fianco il vincolo, quindi er esempio:

foreign key(codvend) refernces venditore(codice) on delete no action

dovrebbe essere cosi...


Posted by Metteus on 19-09-2009 09:49:

Originally posted by Counter65
avete ragione vanno minimizzate le relazioni.

per quello di giugno, non ho capito perchè non è scritta la partecipazione di E2 in R1 e ho solo un dubbio su E3, ci va la chiave esterna su A11?

il 2 del gennaio 06:

1,N - 3,N
0,N - 0,6
1,10- 2,N

non sono sicuro ovviamente... :)


Ho un dubbio sull'ultima, io ho messo 0,10 e 2,2 perche dice " un esperto revisiona non piu di 10 articoli " non specifica che ne debba revisionare almeno 1, come invece dice nella prima .."deve effettuare revisioni..." NOn vi pare ?!

thx


Posted by Metteus on 19-09-2009 10:35:

Originally posted by morte2097
io l'esercizio del 14 l'ho fatto così
E1(A11,A12,A13*,A14,A21*,A22*) A11 C.P A21,A22 C.E R2 assorbita
E2(A21,A22,A23,A11,AR1) A21,A22 C.P A11 C.E R1 assorbita
E3(A31,A11) entrambe C.P


anche secondo me è cosi pero l'ultima ho fatto cosi :

E3(a11,a31) dove la coppia a11,a31 è chiave primaria e a11 è chiave esterna.


Posted by Metteus on 19-09-2009 10:51:

Originally posted by Gimmy
io l'ho risolto così (chiavi primarie sottolineate e chiavi esterne in grassetto):

E1(A11,A12,A21,A22,AR3)
E2(A21,A22,A23,A11,AR1)
R2(A11,A21,A22)

doivrebbe essere = a quello di counter65 con la modifica che ha detto r1cky...

mentre l'esercizio 2 del 14 giugno 2006 l'ho risolto cosi:

E1(A11,A12,A13,A14,AR1,A21,A22)
E2(A21,A22,A23)
E3(A11,A31)

è giusto?


nella e1 io ho messo che a21 e a22 possono assumere valori nulli, poiche il vincolo di cardinalita minima è 0.
nella r2 invece va messo anche a11 chiave esterna e coppia a21,a22 chiave esterna.
Che ne dite ?


All times are GMT. The time now is 11:51.
Show all 64 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.