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)
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
ma il tema d'esame del 20 aprile 2004 dove l'hai preso?
grazie, guardo bene, cosa dici e ci sentiamo a breve.
i temi d'esame, sono nell'area "Filez" di basi di dati.
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?
( 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
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.
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???
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
?
scusate se mi intrometto...ho solo una curiosità...quanto tempo da per fare lo scritto?
Originally posted by pirlo21
scusate se mi intrometto...ho solo una curiosità...quanto tempo da per fare lo scritto?
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.