.dsy:it. Pages (5): « 1 2 3 4 [5]
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)
-- Appello 20/01/2009 (http://www.dsy.it/forum/showthread.php?threadid=37280)


Posted by b.elite on 16-02-2009 10:03:

a scrivere l'interrogazione così non si capisce niente quindi te lo spiego a parole:

prima devi preparare le tabelle proiettando solo gli attributi che ti servono
venditore: coidce, citta
vendita codicevend, codcli
cliente:codicecli, cittàcli

queste le unisci con due equijoin (tieni presente che l'equijoin a differenza del join naturale prende entrambi gli attributi della condizione)
fino ad ottenere una tabella così
(codicevend,città,codicecli,cittàcli)
da questa selezioni per città=cittàcli e poi proietti codicevend.
così si trova il codice dei venditori che hanno venduto a clienti della propria città.

per trovare i codice dei venditori che venduto SOLO a clienti della propria città devi fare

(query scritta sopra) - (query scritta sopra con condizione città<>cittacli)

spero di aver scritto in maniera comprensibile:D

ma il tema d'esame del 20 aprile 2004 dove l'hai preso?


Posted by irene on 16-02-2009 10:30:

grazie, guardo bene, cosa dici e ci sentiamo a breve.

i temi d'esame, sono nell'area "Filez" di basi di dati.


Posted by irene on 16-02-2009 10:51:

scusa, ma non ho ben capito il meccanismo dell'ar!

L'operazione da fare "sarebbe" cosi':

P codvend ( P codice, citta ( VENDITORE ) ) eq codice=codvend
( P codiceVend, citta (VENDITA) ) eq ( P codcli, cittacli (CLIENTE ) )
-
P codvend ( P codice, citta ( VENDITORE ) ) eq codice=codvend
( P codiceVend, citta (VENDITA) ) eq ( P codcli, cittacli (CLIENTE ) )

??? dove metto la selezione citta <> cittacl


grazie!
Hai trovato i temi d'esami?


Posted by b.elite on 16-02-2009 11:01:

( P codice, citta ( VENDITORE ) ) eq codice=codvend
( P codiceVend,codcli (VENDITA) ) eq ( P codcli, cittacli (CLIENTE ) )

a tutta questa roba applichi la selezione cittàcli=città
e poi proietti il codice



a tutto questo sottrai la stessa interrogazione con la condizione cittàcli<>città


ps. ci sarebbe la storia dell'algebra ottimizzata e del fatto che l'equijoin prende entrambi gli attributi, ma è una sottigliezza non penso sia molto rilevante

temi d'esame trovati grazie:cool:


Posted by irene on 16-02-2009 11:24:

l'esercizio di aprile sarebbe cosi':

P citta ( P matricola, citta ( MEDICO ) ) eq matricola=medico
( P medico,paziente (CURA) ) eq ( P codice, citta (PAZIENTE ) )

Mi serve ridenominare la citta del paziente? ( cittap ) e poi applicare la selezione cittàp=città

E poi devo sottrarre la stessa interrogazione con la condizione cittàp<>città

grazie.


Posted by b.elite on 16-02-2009 12:23:

secondo me quella di trovare le città in cui risiedono solo medici
è come avevi detto tu:

p(citta) medico - p(città)paziente

però effettivamente sembra strano sia così semplice...
qualcuno la sa???


Posted by kalbiz on 16-02-2009 14:53:

sullo stesso tem di esame come avete risolto la parte sql ?

determinare le matricole dei medici che curano solo pazienti della loro stessa città.

select m.matricola
from paziente p, medico m, cura c
where p.codice = c.paziente
and m.matricola = c.medico
and p.citta = m.citta
except
select m.matricola
from paziente p, medico m, cura c
where p.codice = c.paziente
and m.matricola = c.medico
and p.citta <> m.citta

dovrebbe essere lo stesso concetto, trovo tutti i medici con citta = citta paziente e sottraggo tutti quelli di cui citta <> citta paziente
?


Posted by pirlo21 on 16-02-2009 17:42:

scusate se mi intrometto...ho solo una curiosità...quanto tempo da per fare lo scritto?


Posted by b.elite on 16-02-2009 18:01:

Originally posted by pirlo21
scusate se mi intrometto...ho solo una curiosità...quanto tempo da per fare lo scritto?


penso 2h


Posted by cinghio on 17-02-2009 21:45:

ragazzi scusate ma non riesco a capire bene e poi dopo il lavoro e lo studio per l'esame di reti mi rimane solo il tempo per dormire! :)
Posso dire che per algebra ottimizzata si intende (scusate l'italiano) che prima di fare join e/o operazioni sugli insiemi (intersect, union, minus, divisione) bisogna proiettare le due relazioni.
Esempio del libro (più o meno): Dipendenti(ssn, cognome, nome) e Lavora_Su(ssn_i, id_prj, ore).
Trovare i dipendenti che lavorano a tutti progetti per cui lavora il lavoratore ssn=5
1) dip5 <-- P snn ( O ssn=5(Dipedenti) ) = selezione del dip5 + proiezione
2) prj5 <-- P id_prj ( Lavora_Su * dip5 ) = join naturale su ssn + proiezioni per trovare a qual prj il dip5 lavora
3) LavPrj <-- P ssn, id_prj (Lavora_Su) = proiezione di tutti i dipendenti e i progetti per cui lavorano
4) ListDip <-- LavPrj / prj5 = divisione che soddisfa la tesi e dà come attributo risultante per ListDip solo snn (come da definizione della operazione di divisione)
5) ...join per decodificare il risultato...

tutte le proiezioni (da fare dove si possono fare) sono ottimizzazioni.
anche l'ordine delle operazioni è importante, ad esempio non si puo' fare la divisione se prima non hai fatto le proiezioni degli attributi utili e le selezioni preliminari per il raggiungimento del risultato.
io ho studiato sulle slide di ferrara e della castano.
direi che sono veramente chiare e complete.
capire in profondità quelle garantisce un'ottima base per il superamento dell'esame.
a me è andato abbastanza bene. :)

ciao


All times are GMT. The time now is 18:12. Pages (5): « 1 2 3 4 [5]
Show all 70 posts from this thread on one page

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