Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Basi di dati ~ comunicazione digitale
 
[ComDig - Help] - Divisione in algebra relazionale
Clicca QUI per vedere il messaggio nel forum
Gomez
Dear all,

scusate ma non l'ho proprio capita. Qualcuno riesce ad illuminarmi??

P.S. Com'è stato il compito stamattina?

Ciao e grazie

BodomChild
Menomale che il primo appello doveva essere il piu' semplice... era molto complesso.. speravo che fosse semplice come il primo dell'anno scorso...

Svarions
Ciao, secondo me l'esame era facile. L'unica cosa è che era veramente lunghissimo, tipo l'ER avrà avuto 7-8 entità e 10 - 15 relazioni perciò era sbatti da fare. Per quel che riguarda la divisione funziona così:
1 - inanzi tutto bisogna capire quando va usata, in generale la forma della domanda è del tipo trova tutti gli A che sono in relazione con tutti i B tali che C è uguale a d. (es. trova tutti gli Studenti che hanno seguito tutti i Corsi tenuti dal Professor Strambus).
2 - A questo punto si calcola tutti gli A in relazione con tutti i B (es. proiezione di Matr e IdCorso in una tabella opportunamente creata spesso tramite i natural join)
3 - ora si calcolano tutti i B tali che C è uguale d (es. proiezioni di IdCorsi della selezione di NomeProf=Strambus in una tabella opportunamente creata spesso tramite i natural join).
4 - Per concludere si divide la prima equazioni in algebra relazionale (con schema ovviamente R(A, B)) per la seconda equazione che abbiamo calcolato nel passo 3 (con schema R1(B)). La divisione restituische solo gli attributi del dividendo che non sono nel divisore (in questo caso R2(A). si ricordi che per fare la divisione deve quindi sempre essere che U di R1 deve essere un sottoinsieme proprio di U di R (nel caso in cui facciamo R : R1).

12321
non ho capito niente. Mi rispieghi la divisione ?

Voodoo
è un'operazione derivata non commutativa,introdotta per rispondere ad una famiglia di queries che si verficano comunemente. E' un'operazione binaria su R(X) e S(Y) tali che lo schema di R include quello di S e lo schema di S non sia nullo. Denotiamo con Z la parte dello schema di R che non è in S (X-Y). Possiamo vedere una tupla come divisa in due parti,una che contiene gli attributi di R che non stanno anche in S (z-tupla,attributi di Z per l'appunto) e la parte che invece hanno in comune (y-tupla). La divisione produce una relazione tale che è costituita dalle z-tuple tali che per ogni y-tupla di S,la tupla a1...an è in R (dove una tupla di R ha la forma A1...Az,Az+1...An.).



Vediamo che lo schema di S è un sottoinsieme di quello di R poiché C e D sono attributi condivisi da entrambi ed R ha molti più attributi. Inoltre verifichiamo immediatamente che lo schema di S non è nullo. Definiamo Z come la differenza degli schemi R-S,quindi Z={A,B}. Il quoziente è una relazione che è definita sullo schema Z (avrà gli attributi di R ma non quelli di S) con le z-tuple di R tali che per ogni y-tupla di S,la combinazione A1..An che ottengo è una tupla di R. Ecco i passaggi:

  • a1-b1 di R lo posso predere se a1-b-c1-d1 e a1-b1-c2-d2 (combinazione con tuple di S) sono tuple di R; poiché ciò è verificato prendo la z-tupla a1-b1;
  • a2-b2 di R la posso prendere se a2-b2-c1-d1 e a2-b2-c2-d2 appartengono a R. Siccome ciò è verificato solo per la seconda combinazione (e la proprietà della divisione ci impone che valga per ogni combinazione) NON posso prendere la z-tupla a2-b2;
  • a3-b3 verifica le stesse condizioni di a1-b1 per cui posso prederla;
  • nell'ultimo caso abbiamo già preso a1-b1 per cui è irrilevante;

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate