Autore |
Discussione  |
|
AlartZero
Ill.mo Dispre.mo Capo FN
   

Regione: Puglia
Prov.: Bari
Città: Molfetta
|
Inserito il - 18/06/2007 : 20:40:05
|
allora lo faccio qua cosi puo essere utile per tutti (premetto che non faccio basi di dati da un poketto quindi sono un po arruginito)
allora mi riferisco a questa serie di esercizi http://www.laureateci.it/Public/data/AlartZero/200761320839_200546164143_Basi_Dati.pdf
pagina 2 esercizio 1
t = r |X| (A>E) s <--- secondo me è A = E in quanto non credo che delle lettere possano essere maggiori di altre quindi svolgero l'esercizio seguendo t=r |X|(A=E) s
r| A B C D _|________ _| a a a a _| b a b a _| c b c b _| d c d c _| e n a d
s| E F G _|______ _| b b b _| c c c _| n a b _| d b a
t| A B C D E F G _|______________ _| b a b a b b b _| c b c b c c c _| d c d c d b a _| a a a a n n n _| e n a d n n n _| n n n n n a b
allora spiego cosa ho fatto. Questa è una operazione di equijoin (cioe una prodotto cartesiano con una selezione) includendo una sola volta i risultati i join che hanno la A dello schema r uguale ai valori dell'attributo E di s allora in quel caso metto in comune (vedi le prime 3 tuple) e poi ho messo le altre tuple con i valori nulli che non vanno in join (vedi a a a a che non ha corrispondenze di A=E con s e quindi si aggiungono i valori null (n)) l'equijoin e un operazione che mette in comune le tuple della prima relazione che hanno i valori degli attributi uguali a quelli della seconda relazione pero vedendo la condizione di equijoin (nel nostro caso A = E) e poi mette i restanti risultati che non sono in join (dalla quarta alla sesta tupla dello schema t) con valori null
Esercizio 3 a sempre della stessa pagina Dato lo schema R(ABCDEFG) e l'insieme di DF f={B->F, CE->AB, DE->C, F->DE} determinare se (B->A)€f+
allora cosa vuol dire?? vuol dire che se la dipendenza funzionale B->A appartiene alla chiusura delle dipendenze quindi dobbiamo verificare se da B->A possiamo generare tutto lo schema seguendo l'algoritmo che non ricordo come si chiama (mi sa al capitolo 10) iniziamo il nostro insieme per adesso genera {B}U{A} in quanto B genera A andiamo a controllare le latre dipendenze che possiamo generare con B, con A o con BA (AB) ok con B generiamo F (B->F) e quindi la chiusura viene incrementata con n nuovo elemento {B}U{A}U{F} continuiamo con F generiamo DE e quindi {B}U{A}U{F}U{D}U{E} con DE generiamo C {B}U{A}U{F}U{D}U{E}U{C} e basta qui si ferma l'algoritmo perche se proviamo a vedere altre dipendenze otteniamo lo stesso risultato
a questo punto controlliamo i valori ottenuti {B}U{A}U{F}U{D}U{E}U{C} /€ (non appartiene) a f+ in quanto manca la G (B->A)/€f+
spero di aver fatto tutto giusto e di aver spiegato qualcosina che a mio tempo per fortuna mia feci bene in maniera decente
buona lavoro
|
Citazione: Messaggio inserito da pbolo Gli occhi vedono solo quello che vogliono vedere e non i feedback che dovrebbero aiutare a migliorarsi!
|
|
john84
Utente medio
 
Regione: Puglia
Prov.: Bari
Città: noci
|
Inserito il - 19/06/2007 : 09:05:56
|
ciao senti potresti fare l'esercizio 3) b)? non ho capito che significa il delta1 = [R1,R2,R3,R4,R5] e delta2 = [R2,R3,R4,R6].
CIAO |
 |
|
AlartZero
Ill.mo Dispre.mo Capo FN
   

Regione: Puglia
Prov.: Bari
Città: Molfetta
|
Inserito il - 19/06/2007 : 09:48:56
|
riproviamo con il join non additivo allora il primo delta comprende R1 = (BF) R2 = (ABCE) R3 = (CDF) R4 = (DEF) R5 = (AG)
dovremmo quindi verificare se c'e qualche decomposizione che genera tutto la relazione (ABCDEFG) con le dipendenze funzionali date di prima (f={B->F, CE->AB, DE->C, F->DE})
costruiamo la tabella mettendo delle x in corrispondenza dei punti sicuri (i puntini sono spazi vuoti)
___|A B C D E F G ___|______________ R1 | . x . . . x . R2 | X X X . X . . R3 | . . X X . X . R4 | . . . X X X . R5 | X . . . . . X
come si procede? allora in base alle dipendenze funzionali dovremmo mettere una croce sugli spazi vuoti se c'e una DF (parte sinistra) sulla decomposizione che vorremmo genererare e se la parte destra generata da questa dipendenza funzionale esiste (cioe c'e una x) in un'altra decomposizione all'infuori della decomposizione che stiamo sviluppando
in poche parole prendiamo B -> F in R2. Cosa succede? allora in R2 abbiamo la B pero non abbiamo la F e vorremmo generarla. dobbiamo trovare un altra relazione che contenga sia la B sia la F (nel nostro caso R1). se c'e possiamo mettere una X alla F in R2 in questo modo
___|A B C D E F G ___|______________ R1 | . x . . . x . R2 | X X X . X X . R3 | . . X X . X . R4 | . . . X X X . R5 | X . . . . . X
facciamo pure F -> DE in R2 e R3. come prima troviamo un'altra decomposizione che contenga F, D ed E (R4). poiche c'e possiamo aggiungere la x alla D in R2 e la X alla E in R3
___|A B C D E F G ___|______________ R1 | . x . . . x . R2 | X X X X X . . R3 | . . X X X X . R4 | . . . X X X . R5 | X . . . . . X
ora verifichiamo tutte le altre dipendenze (non ti sto a fare il ragionamento su tutte le dipendenze perche è uguale)
(DE -> C) ___|A B C D E F G ___|______________ R1 | . x . . . x . R2 | X X X X X X . R3 | . . X X X X . R4 | . . X X X X . R5 | X . . . . . X
(CE -> AB) ___|A B C D E F G ___|______________ R1 | . x . . . x . R2 | X X X X X X . R3 | X X X X X X . R4 | X X X X X X . R5 | X . . . . . X
abbiamo terminato il join non additivo in quanto non possiamo andare piu avanti e nessuna decomposizione verifica la proprieta di join non additivo in quanto nessuna genera tutto R
in base a questo prova a fare delta 2 che ha R2 = (ABCE) R3 = (CDF) R4 = (DEF) R6 = (BFG)
(se ti puo essere d'aiuto per gli esercizi svogli anche l'esercizio proposto da Aka che ho sempre risolto io http://www.laureateci.it/forum/topic.asp?TOPIC_ID=9011 )
se non ti è chiaro qualcosa posta qui che tanto ogni tanto una passata la faccio e ti potrei dare una mano (sempre se ricordo bene :D) |
Citazione: Messaggio inserito da pbolo Gli occhi vedono solo quello che vogliono vedere e non i feedback che dovrebbero aiutare a migliorarsi!
|
Modificato da - AlartZero in data |
 |
|
john84
Utente medio
 
Regione: Puglia
Prov.: Bari
Città: noci
|
Inserito il - 19/06/2007 : 12:07:40
|
#65279;(11) È dato il db universitario con il seguente schema di relazioni STUDENTE (S#, Snome, Facoltà, CorsoDiLaurea, …) DOCENTE (D#, Dnome, Qualifica, Dipartimento#, DirettoreDelDipartimento#) CORSO (C#, Cnome, Semestre, CF) ESAME (Matr#, Corso#, Docente#, Voto, Lode, Data) TESI (D#, S#, Argomento, Titolo)
quando mi dice almeno a cosa devo stare attento nelle seguenti?
potresti risolvere queste: q1) gli studenti che hanno superato almeno un esame con voto diverso da 18.
q2) gli studenti che non hanno preso alcun 18.
q5) per ciascun docente, il codice e il nome del docente e quelli del direttore del suo dipartimento.
q6) le coppie di studenti omonimi (target: matricole e nome). Se <x,y,nomex> appare nel risultato, allora non devono apparire nel risultato <y,x,nomey>, <x,x,nomex>, <y,y,nomey>.
q9) gli studenti (target: matricola e nome) che hanno superato (almeno) gli esami superati dallo studente con matricola S# = 12345.
(d) In riferimento all’espressione E data in risposta al quesito q9, qual è il query set (tuple della relazione risultato) prodotto da E nel caso in cui la matricola 12345 non abbia sostenuto alcun esame ?
(e) (*) Considerando che se la matricola 12345 non ha sostenuto alcun esame allora tutti gli studenti (relazione STUDENTE) risultano aver sostenuto (almeno) gli stessi esami di 12345, verificare se l’espressione E scritta per il quesito q9 soddisfa tale considerazione. Se non la soddisfa, qual è una possibile espressione E' che la soddisfa (cioè, che sia corretta sia nel caso che 12345 abbia fatto qualche esame sia nel caso che 12345 non abbia fatto alcun esame) ?
(12) (*) Si abbia una relazione r = R(X,A) dove dom(A) sia un insieme di valori ordinati (ad es., numeri, oppure stringhe, oppure date). Senza far uso di funzioni aggregate, determinare l’espressione di A.R. che produce la relazione unaria con un’unica tupla contenente il valore maxA(r ).
grazie ciao |
 |
|
john84
Utente medio
 
Regione: Puglia
Prov.: Bari
Città: noci
|
Inserito il - 19/06/2007 : 12:14:46
|
ciao potresti fare dall'eserciziario di lefons vol 2, l'esercizio 3) ? grazie tante.
ciao |
 |
|
AlartZero
Ill.mo Dispre.mo Capo FN
   

Regione: Puglia
Prov.: Bari
Città: Molfetta
|
Inserito il - 19/06/2007 : 13:41:11
|
allora vediamo se ricordo come si fanno le query. almeno significa che ci possono essere 1 o piu quindi se dice almeno un esame piu di 18 vuol dire che ci possono essere 1 o piu esami >18
q1) SELECTmatr#(voto>18)[ESAME]
q2) SELECT(matr@)(Voto>18 V voto<18) [ESAME] <--- stessa cosa di prima pero metto tutti i voti tranne 18
q5) per ciascun docente, il codice e il nome del docente e quelli del direttore del suo dipartimento <--- non so se la vuoi in sql o in mysql (per il lab)
PROJECT(D@,Dnome,DirettoreDelDipartimento#) [DOCENTI] oppure SELECT DH, Dnome, DirettoreDelDipartimento# FROM DOCENTI GROUP BY Dnome;
q6) non ho idea di come si faccia
q9) ti dico come si fa mi rmpo a pensare a farla (selezionare gli esami di 12345 e fare gli esami di tutti DIVISO gli esami di 12345 da ESAMI poi mandare in join con STUDENTI e proiettare nome e matricola)
d) dovrebbe credo dare tutto il set di risposte cosi come stanno cioe non dovrebbe modificare niente e quindi la tabella ESAMI rimmarrebbe tale e quale
e) e 12) non le so fare anche perche non le chiese mai (neanche la d se per questo) |
Citazione: Messaggio inserito da pbolo Gli occhi vedono solo quello che vogliono vedere e non i feedback che dovrebbero aiutare a migliorarsi!
|
 |
|
john84
Utente medio
 
Regione: Puglia
Prov.: Bari
Città: noci
|
|
AlartZero
Ill.mo Dispre.mo Capo FN
   

Regione: Puglia
Prov.: Bari
Città: Molfetta
|
Inserito il - 19/06/2007 : 14:44:00
|
Siano r,s e q relazione sugli schemi AB, BC e CD Determinare se la seguente eguaglianza è vera: prBCD ( q JOIN (A=a) (r JOIN s)) = prBCD ( q JOIN pr(B) (A=a) (r)) JOIN s)
sono esercizi di eguaglianze che purtroppo dell'aquila non fece.
non so spiegarteli purtroppo
se non erro pero dovrebbero essere diversi (ma non ne sono per niente certo quindi non ti fidare) |
Citazione: Messaggio inserito da pbolo Gli occhi vedono solo quello che vogliono vedere e non i feedback che dovrebbero aiutare a migliorarsi!
|
Modificato da - AlartZero in data |
 |
|
|
Discussione  |
|
|
|