La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algebra relazionale (III). Interrogazioni con Algebra Relazionale Dato schema R(Y) di DB, un’interrogazione è una funzione che, per ogni istanza r di.

Presentazioni simili


Presentazione sul tema: "Algebra relazionale (III). Interrogazioni con Algebra Relazionale Dato schema R(Y) di DB, un’interrogazione è una funzione che, per ogni istanza r di."— Transcript della presentazione:

1 Algebra relazionale (III)

2 Interrogazioni con Algebra Relazionale Dato schema R(Y) di DB, un’interrogazione è una funzione che, per ogni istanza r di R(Y), produce una relazione su un dato insieme di attributi X Le espressioni di un linguaggio di interrogazione (per esempio, algebra relazionale), permettono di realizzare interrogazioni a un DB E(r): risultato dell’applicazione dell’espressione E al DB r E(r) è una relazione

3 Esempi di Interrogazioni: 1 MatrNomeEtàStip 101Mario Rossi342.000 103Mario Bianchi 231.750 104Luigi Neri383.050 105Nico Bini441.700 210Marco Celli493.000 231Siro Bisi503.000 252Nico Bini443.500 301Sergio Rossi343.500 375Mario Rossi503.250 CapoImpiegato 210101 210103 210104 231105 301210 301231 375252 ImpiegatiSupervisione

4 Esempi di Interrogazioni: 1 Trovare matricola, nome ed età degli impiegati che guadagnano più di 2.000  Matr,Nome,Età (  Stip>2.000 (Impiegati))

5 Esempi di Interrogazioni: 1 Trovare matricola, nome ed età degli impiegati che guadagnano più di 2.000 MatrNomeEtà 101Mario Rossi34 104Luigi Neri38 210Marco Celli49 231Siro Bisi50 252Nico Bini44 301Sergio Rossi34 375Mario Rossi50

6 Esempi di Interrogazioni: 2 Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo 1. Definire relazione R che lega (join) descrizione di impiegati a descrizione di capo Per non confondere gli attributi dell’impiegato e del capo bisogna ridenominare una delle due relazioni

7 Esempi di Interrogazioni: 2 Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo 2. Selezionare le tuple di R tali nelle quali lo stipendio dell’impiegato è superiore a quello del capo

8 Esempi di Interrogazioni: 2 Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo 3. Proiettare risultato su attributo Matr, Nome e Stip di impiegato e sui corrispettivi (ridenominati) di capo

9 Esempi di Interrogazioni: 2 1. Definire relazione R che lega descrizione di impiegati a descrizione di capo a) Definire relazione R1 che descrive gli impiegati di ciascun capo Schema: R1(Matr,Nome,Età,Stip,Capo,Impiegato) R1 = Impiegati  Matr=Impiegato Supervisione

10 Esempi di Interrogazioni: 2 R1 = Impiegati  Matr=Impiegato Supervisione MatrNomeEtàStipCapoImpiegato 101Mario Rossi342.000210101 103Mario Bianchi 231.750210103 104Luigi Neri383.050210104 105Nico Bini441.700231105 210Marco Celli493.000301210 231Siro Bisi503.000301231 252Nico Bini443.500375252 R1

11 Esempi di Interrogazioni: 2 1. b) Definire relazione R che descrive impiegati e capo: per non confondere gli attributi dell’impiegato e del capo ridenominare impiegati R2=  MatrC,NomeC,EtàC,StipC  Matr,Nome,Età,Stip (Impiegati) R = R1  Capo=MatrC R2

12 Esempi di Interrogazioni: 2 R2=  MatrC,NomeC,EtàC,StipC  Matr,Nome,Età,Stip (Impiegati) MatrCNomeCEtàCStipC 101Mario Rossi342.000 103Mario Bianchi 231.750 104Luigi Neri383.050 105Nico Bini441.700 210Marco Celli493.000 231Siro Bisi503.000 252Nico Bini443.500 301Sergio Rossi343.500 375Mario Rossi503.250 R2

13 Esempi di Interrogazioni: 2 R = R1  Capo=MatrC R2 MatrNomeEtàStipCapoImpiegatoMatrCNomeCEtàCStipC 101Mario Rossi342.000210101210Marco Celli493.000 103Mario Bianchi 231.750210103210Marco Celli493.000 104Luigi Neri383.050210104210Marco Celli493.000 105Nico Bini441.700231105231Siro Bisi503.000 210Marco Celli493.000301210301Sergio Rossi343.500 231Siro Bisi503.000301231301Sergio Rossi343.500 252Nico Bini443.500375252375Mario Rossi503.250 R

14 Esempi di Interrogazioni: 2 1. b) Definire relazione R che descrive impiegati e capo: per non confondere gli attributi dell’impiegato e del capo ridenominare impiegati R2=  MatrC,NomeC,EtàC,StipC  Matr,Nome,Età,Stip (Impiegati) R = R1  Capo=MatrC R2 (Impiegati  Matr=Impiegato Supervisione)  Capo=MatrC  MatrC,NomeC,EtàC,StipC  Matr,Nome,Età,Stip (Impiegati)

15 Esempi di Interrogazioni: 2 2. Selezionare tuple in R in cui lo stipendio dell’impiegato è superiore a quello del capo:  Stip>StipC (R) MatrNomeEtàStipCapoImpiegatoMatrCNomeCEtàCStipC 104Luigi Neri383.050210104210Marco Celli493.000 252Nico Bini443.500375252375Mario Rossi503.250

16 Esempi di Interrogazioni: 2 2. Selezionare tuple in R in cui lo stipendio dell’impiegato è superiore a quello del capo:  Stip>StipC (R)  Stip>StipC ((Impiegati  Matr=Impiegato Supervisione)  Capo=MatrC  MatrC,NomeC,EtàC,StipC  Matr,Nome,Età,Stip (Impiegati))

17 Esempi di Interrogazioni: 2 3. Proiettare  Stip>StipC (R) su attributi richiesti:  Matr,Nome,Stip,MatrC,NomeC,StipC (  Stip>StipC (R)) MatrNomeStipMatrCNomeCStipC 104Luigi Neri3.050210Marco Celli3.000 252Nico Bini3.500375Mario Rossi3.250

18 Esempi di Interrogazioni: 2 3. Proiettare  Stip>StipC (R) su attributi richiesti:  Matr,Nome,Stip,MatrC,NomeC,StipC (  Stip>StipC (R))  Matr,Nome,Stip,MatrC,NomeC,StipC (  Stip>StipC ((Impiegati  Matr=Impiegato Supervisione)  Capo=MatrC  MatrC,NomeC,EtàC,StipC  Matr,Nome,Età,Stip (Impiegati)))

19 Esempi di Interrogazioni: 2  Matr,Nome,Stip,MatrC,NomeC,StipC (  Stip>StipC ((Impiegati  Matr=Impiegato Supervisione)  Capo=MatrC  MatrC,NomeC,EtàC,StipC  Matr,Nome,Età,Stip (Impiegati))) Trovare gli impiegati che guadagnano più del loro capo, mostrando matricola, nome e stipendio di ciascuno di essi e del capo

20 Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 2.000 1. Tutti gli impiegati? Selezionare capi che hanno impiegati con stipendio < 2.000  Capo (Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati)))

21 Esempi di Interrogazioni: 3  Capo (Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati))) MatrNomeEtàStip 103Mario Bianchi 231.750 105Nico Bini441.700 MatrNomeEtàStipCapoImpiegato 103Mario Bianchi 231.750210103 105Nico Bini441.700231105 Capo 210 231  Stip<2.000 (Impiegati) Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati))  Capo ( Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati)))

22 Esempi di Interrogazioni: 3 2. Sottrarre tali capi all’insieme di tutti i capi  Capo (Supervisione) –  Capo (Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati)))

23 Esempi di Interrogazioni: 3  Capo (Supervisione) –  Capo (Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati))) Capo 210 231 301 375  Capo (Supervisione)  Capo (Supervisione) –  Capo (Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati))) Capo 301 375

24 Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 2.000  Matr,Nome (Impiegati  Matr=Capo (  Capo (Supervisione) –  Capo (Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati)))))

25 Esempi di Interrogazioni: 3 Impiegati  Matr=Capo (  Capo (Supervisione) –  Capo (Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati)))) MatrNomeEtàStipCapo 301Sergio Rossi343.500301 375Mario Rossi503.250375

26 Esempi di Interrogazioni: 3  Matr,Nome (Impiegati  Matr=Capo (  Capo (Supervisione) –  Capo (Supervisione  Matr=Impiegato (  Stip<2.000 (Impiegati))))) MatrNome 301Sergio Rossi 375Mario Rossi

27 Algebra con valori nulli Come applicare espressioni di algebra relazionale in presenza di tuple con valori nulli? Per esempio:  Età>30 (Impiegati) Se in relazione Impiegati non si conosce età di alcune persone: tuple 104 e 219 devono essere selezionate? MatrNomeEtàStip 101Mario Rossi342.000 103Mario Bianchi 231.750 104Luigi NeriNULL3.050 105Nico Bini441.700 210Marco CelliNULL3.000

28 Algebra con valori nulli Logica a 3 valori per il trattamento di valori veri, falsi, sconosciuti: V, F, U (unknown) Un predicato assume valore U quando uno dei termini del confronto ha valore nullo Tabelle di verità dei connettivi: AND, OR, NOT ANDVUF VVUF UUUF FFFF ORVUF VVVV UVUU FVUF NOT VF UU FV

29 Algebra con valori nulli Poiché ragionare su valori nulli è complesso, adottiamo approccio semplificato al trattamento del valore nullo nelle espressioni dell’algebra relazionale Definiamo due nuove condizioni atomiche di selezione: dato attributo A A IS NULL: vera su tupla t se il valore di t su A è nullo; falsa se valore specificato A IS NOT NULL: vera su t se valore di t su A specificato, falsa altrimenti

30 Algebra con valori nulli Interpretiamo le condizioni di selezione in modo restrittivo, escludendo da selezione le tuple con valore U, a meno che non sia espicitamente incluso nella selezione

31 Algebra con valori nulli Per esempio:  Età>30 (Impiegati) – le tuple con Età null non vengono selezionate (su di esse la condizione Età>30 assume valore U)  Età>30  Età IS NULL (Impiegati) – si includono anche le tuple con Età sconosciuta (104, 210 in relazione Impiegati)

32 Viste Relazioni derivate definite su relazioni di schema logico Viste materializzate (con tuple memorizzate in DB) Relazioni virtuali, o viste (memorizzate in DB mediante espressioni del linguaggio di interrogazione, senza memorizzazione di tuple)

33 Viste DBMS offrono solo relazioni virtuali (no ridondanza dati) Interrogazioni che utilizzano viste sono risolte sostituendo la definizione delle viste alle loro occorrenze

34 Viste Per esempio: R1(A,B,C), R2(C,D,E), R3(E,G) Vista: R =  A>D (R1  R2) Interrogazione:  B=G (R  R3) risolta così:  B=G (  A>D (R1  R2)  R3)

35 Viste Viste utile per: Permettere ad applicazioni di utilizzare relazioni che contengono solo le informazioni di interesse Se schema di DB viene ristrutturato, ricreare relazioni eliminate per evitare di modificare le applicazioni che le usavano  Per esempio: R(A,B,C) sostituita in DB da R1(A,B), R2(B,C), e definiamo vista R= R1  R2


Scaricare ppt "Algebra relazionale (III). Interrogazioni con Algebra Relazionale Dato schema R(Y) di DB, un’interrogazione è una funzione che, per ogni istanza r di."

Presentazioni simili


Annunci Google