La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.

Presentazioni simili


Presentazione sul tema: "Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto."— Transcript della presentazione:

1 Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto NeriB BianchiB RepartoCapo BMori

2 Proiezioni e join: problemi NeriBMori ImpiegatoRepartoCapo BianchiBBruni VerdiABini NeriB ImpiegatoReparto BianchiB VerdiA BMori RepartoCapo BBruni ABini VerdiABini NeriBMori ImpiegatoRepartoCapo BianchiBBruni NeriBBruni BianchiBMori

3 Join e proiezioni R 1 (X 1 ), R 2 (X 2 ) PROJ X 1 (R 1 JOIN R 2 ) R 1 R(X), X = X 1 X 2 (PROJ X 1 (R)) JOIN (PROJ X 2 (R)) R

4 Join naturale ed equi-join ImpiegatoReparto Impiegati RepartoCapo Reparti Impiegati JOIN Reparti PROJ Impiegato,Reparto,Capo ( ) REN Codice Reparto (Reparti)Impiegati JOIN SEL Reparto=Codice ( ) ImpiegatoReparto Impiegati CodiceCapo Reparti

5 Interrogazioni (Query) Uninterrogazione è una funzione E(r) che applicata ad istanze di una base di dati r produce una relazione su un dato insieme di attributi X. Le interrogazioni su uno schema di base di dati R in algebra relazionale sono espressioni i cui atomi (le variabili) sono relazioni in R.

6 Esempi Impiegati NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Supervisione ImpiegatoCapo

7 Trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di 40 milioni SEL Stipendio>40 (Impiegati) NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Bianchi Neri Rossi Bruni Mori Lupi Rossi Bruni Mori Lupi

8 Trovare matricola, nome ed età degli impiegati che guadagnano più di 40 milioni PROJ Matricola, Nome, Età ( SEL Stipendio>40 (Impiegati)) NomeEtàStipendioMatricola Bianchi Rossi Bruni Neri Mori Lupi Bianchi Neri Rossi Bruni Mori Lupi Rossi Bruni Mori Lupi

9 Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJ Capo (Supervisione JOIN Impiegato=Matricola ( SEL Stipendio>40 (Impiegati)))

10 Esercizi Trovare nome e stipendio dei capi degli impiegati che guadagnano più di 40 milioni Trovare gli impiegati che guadagnano più del proprio capo, mostrando matricola, nome e stipendio dell'impiegato e del capo Trovare le matricole dei capi i cui impiegati guadagnano tutti più di 40 milioni

11 Equivalenza di espressioni Due espressioni sono equivalenti se: E 1 R E 2 se E 1 (r) = E 2 (r) per ogni istanza r di R (equivalenza dipendente dallo schema) Lequivalenza è importante in quanto consente di scegliere, a parità di risultato, loperazione meno costosa. E 1 E 2 se E 1 R E 2 per ogni schema R (equivalenza assoluta)

12 Equivalenze Atomizzazione delle selezioni F 1 F 2 (E) F 1 ( F 2 (E)) Idempotenza delle proiezioni X (E) X ( XY (E)) Anticipazione della selezione rispetto al join F (E 1 E 2 ) E 1 ( F (E 2 ) )

13 Equivalenze Anticipazione della proiezione rispetto al join: X 1 Y 2 (E 1 E 2 ) E 1 Y 2 (E 2 ) (se gli attributi in X 2 - Y 2 non sono coinvolti nel join) Allora: Y (E 1 F E 2 ) Y ( Y 1 (E 1 ) F Y 2 (E 2 ) ) dove Y 1 e Y 2 sono gli attributi di X 1 e X 2 compresi in Y o coinvolti nel join. Inglobamento di una selezione in un prodotto cartesiano a formare un join: F (E 1 E 2 ) E 1 F E 2

14 Equivalenze Distributività della selezione rispetto allunione: F (E 1 E 2 ) F (E 1 ) F (E 2 ) Distributività della selezione rispetto alla differenza: F (E 1 - E 2 ) F (E 1 ) - F (E 2 ) Distributività della proiezione rispetto allunione: X (E 1 E 2 ) X (E 1 ) X (E 2 ) NB La proiezione NON è distributiva rispetto alla differenza Tutti gli operatori binari eccetto la differenza godono delle proprietà associativa e commutativa.

15 Equivalenze Corrispondenze fra operatori insiemistici e selezioni complesse F 1 F 2 (R) F 1 (R) F 2 (R) F 1 F 2 (R) F 1 (R) F 2 (R) F 1 (R) F 2 (R) F 1 ¬F 2 (R) F 1 (R) - F 2 (R) Proprietà distributiva del join rispetto allunione: E (E 1 E 2 ) (E E 1 ) (E E 2 )

16 Algebra con valori nulli Estensione degli operatori logici ad una logica a 3 valori (VERO, FALSO, SCONOSCIUTO (U))

17 Algebra con valori nulli A IS NULL è vero su una tupla t se il valore di t su A è nullo; falso se è specificato. A IS NOT NULL è vero su una tupla t se il valore di t su A è specificato; falso se è nullo. Età>30 (Persone) restituisce le persone la cui età è nota e > 30 anni Età>30 Età IS NULL (Persone) restituisce le persone che potrebbero avere più di 30 anni

18 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno) Relazioni di base: contenuto autonomo Relazioni derivate: –relazioni il cui contenuto è funzione del contenuto di altre relazioni (definito per mezzo di interrogazioni)

19 Viste Relazioni Virtuali (Viste) Relazioni definite mediante funzioni o espressioni del linguaggio di interrogazione, non memorizzate ma utilizzabili come se lo fossero. Devono essere ricalcolate tutte le volte. Viste materializzate Relazioni virtuali effettivamente memorizzate nella base di dati. Immediatamente disponibili ma critiche per il mantenimento dellallineamento con le relazioni da cui derivano. Non sono supportate dai DBMS.

20 Viste Vantaggi Permettono di mostrare a un utente le sole componenti della base di dati che interessano Espressioni molto complesse possono essere definite come viste Sicurezza: è possibile definire dei diritti di accesso relativi ad una vista (e quindi ad una particolare porzione della base di dati) In caso di ristrutturazione della base di dati, le vecchie relazioni possono essere di nuovo ricavate mediante viste, consentendo luso di applicazioni che fanno riferimento al vecchio schema

21 Viste, esempio una vista: Supervisione = PROJ Impiegato, Capo (Afferenza JOIN Direzione) AMori BBruni RepartoCapoRossiA NeriB BianchiB ImpiegatoReparto BianchiBBBruni AfferenzaDirezione

22 Interrogazioni sulle viste Sono eseguite sostituendo alla vista la sua definizione: SEL Capo='Leoni' (Supervisione) viene eseguita come SEL Capo='Leoni' ( PROJ Impiegato, Capo (Afferenza JOIN Direzione))

23 Viste, motivazioni Schema esterno: ogni utente vede solo –ciò che gli interessa e nel modo in cui gli interessa, senza essere distratto dal resto –ciò che e' autorizzato a vedere (autorizzazioni) Strumento di programmazione: –si può semplificare la scrittura di interrogazioni: espressioni complesse e sottoespressioni ripetute Utilizzo di programmi esistenti su schemi ristrutturati Invece: L'utilizzo di viste non influisce sull'efficienza delle interrogazioni

24 Viste come strumento di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: PROJ Impiegato (Afferenza JOIN Direzione) JOIN REN ImpR,RepR Imp,Reparto ( SEL Impiegato='Rossi' (Afferenza JOIN Direzione)) Con la vista: PROJ Impiegato (Supervisione) JOIN REN ImpR,RepR Imp,Reparto ( SEL Impiegato='Rossi' (Supervisione))

25 Viste e aggiornamenti, attenzione Vogliamo inserire, nella vista, il fatto che Lupi ha come capo Bruni; oppure che Belli ha come capo Falchi; come facciamo? AfferenzaDirezione AMori BBruni RepartoCapo RossiA NeriB ImpiegatoReparto NeriB B BBruniB B B VerdiA BBruniB B B C Rossi Neri Impiegato Rossi Neri Rossi Neri Verdi Supervisione Mori Bruni Capo Mori Bruni Mori Bruni Mori

26 Viste e aggiornamenti "Aggiornare una vista": –modificare le relazioni di base in modo che la vista, "ricalcolata" rispecchi l'aggiornamento L'aggiornamento sulle relazioni di base corrispondente a quello specificato sulla vista deve essere univoco In generale però non è univoco! Ben pochi aggionamenti sono ammissibili sulle viste


Scaricare ppt "Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto."

Presentazioni simili


Annunci Google