La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.

Presentazioni simili


Presentazione sul tema: "Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema."— Transcript della presentazione:

1 Algebra relazionale

2 Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema Modifica, aggiunta, rimozione tuple Interrogazione a DB: funzione che, dato un DB, produce una relazione su un dato schema (non necessariamente uno degli schemi definiti nel DB)

3 Accesso ai dati di un DB Aggiornamento e interrogazione vengono effettuati usando specifici linguaggi Per esempio: algebra relazionale

4 Algebra relazionale Linguaggio procedurale di accesso a DB Si specificano operazioni complesse descrivendo procedimento da usare per ottenere soluzione Interrogazioni: espressioni complesse

5 Algebra relazionale Algebra relazionale: basata su insieme di operatori Definiti su relazioni Producono relazioni come risultati Operatori Insiemistici: unione, intersezione, differenza Specifici: ridenominazione, selezione, proiezione, join

6 Operatori insiemistici Relazioni: insiemi di tuple omogenee, cioè definite sigli stessi attributi Insiemi: ha senso usare operatori insiemistici Insiemi di tuple omogenee: usare operatori insiemistici solo su relazioni definite sugli stessi attributi Altrimenti, si ottengono insiemi di tuple disomogenee, che non rappresentano relazioni

7 Unione di relazioni Date due relazioni r1(X) e r2(X) definite sullo stesso insieme di attributi X r1  r2: relazione su X che contiene tuple appartenenti a r1 oppure a r2 oppure a entrambe

8 Unione di relazioni MatricolaCognomeEtà 9297Neri56 7432Neri39 9824Verdi38 MatricolaCognomeEtà 7274Rossi37 7432Neri39 9824Verdi38 MatricolaCognomeEtà 7274Rossi37 7432Neri39 9297Neri56 9824Verdi38 Laureati Dirigenti Laureati  Dirigenti

9 Differenza di relazioni Date due relazioni r1(X) e r2(X) definite sullo stesso insieme di attributi X r1-r2: relazione su X che contiene tuple appartenenti a r1 ma non a r2

10 Differenza di relazioni MatricolaCognomeEtà 9297Neri56 7432Neri39 9824Verdi38 MatricolaCognomeEtà 7274Rossi37 7432Neri39 9824Verdi38 MatricolaCognomeEtà 7274Rossi37 Laureati Dirigenti Laureati - Dirigenti

11 Intersezione di relazioni Date due relazioni r1(X) e r2(X) definite sullo stesso insieme di attributi X r1  r2: relazione su X che contiene tuple appartenenti sia a r1 che a r2

12 Intersezione di relazioni MatricolaCognomeEtà 9297Neri56 7432Neri39 9824Verdi38 MatricolaCognomeEtà 7274Rossi37 7432Neri39 9824Verdi38 MatricolaCognomeEtà 7432Neri39 9824Verdi38 Laureati Dirigenti Laureati  Dirigenti

13 Operatori di manipolazione di relazioni Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) Permettono di manipolare relazioni per creare nuove relazione Ridenominazione Selezione Proiezione Join

14 Operatori di manipolazione di relazioni Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) Permettono di manipolare relazioni per creare nuove relazione Ridenominazione Selezione Proiezione Join

15 Ridenominazione di relazioni Cambia il nome di un attributo di relazione lasciandone inalterata l’istanza (modifica solo intestazione di relazione) Utile per applicare operatori insiemistici a relazioni con attributi di nome diverso

16 Ridenominazione di relazioni Per esempio: PadreFiglio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele MadreFiglio EvaCaino EvaSet SaraIsacco AgarIsmaele Paternità Maternità Paternità  Maternità ?

17 Ridenominazione di relazioni Una ridenominazione: PadreFiglio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele GenitoreFiglio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele Paternità  Genitore  Padre (Paternità)

18 Ridenominazione di relazioni Una ridenominazione: PadreFiglio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele GenitoreFiglio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele Paternità  Genitore  Padre (Paternità)

19 Ridenominazione di relazioni Una ridenominazione: PadreFiglio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele GenitoreFiglio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele Paternità  Genitore  Padre (Paternità)

20 Ridenominazione di relazioni Un’altra ridenominazione: MadreFiglio EvaCaino EvaSet SaraIsacco AgarIsmaele GenitoreFiglio EvaCaino EvaSet SaraIsacco AgarIsmaele Maternità  Genitore  Madre (Maternità)

21 Ridenominazione di relazioni GenitoreFiglio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele EvaCaino EvaSet SaraIsacco AgarIsmaele  Genitore  Padre (Paternità)   Genitore  Madre (Maternità) Corretta applicazione di unione relazioni

22 Ridenominazione di relazioni CognomeAgenziaStipendio RossiRoma45 NeriMilano53 Imp

23 Ridenominazione di relazioni CognomeAgenziaStipendio RossiRoma45 NeriMilano53 CognomeFabbricaSalario VerdiLatina33 BruniMonza32 ImpOp

24 Ridenominazione di relazioni CognomeSedeRetribuzione RossiRoma45 NeriMilano53 VerdiLatina33 BruniMonza32 CognomeAgenziaStipendio RossiRoma45 NeriMilano53 CognomeFabbricaSalario VerdiLatina33 BruniMonza32 ImpOp  Sede,Retribuzione  Agenzia,Stipendio (Imp)   Sede,Retribuzione  Fabbrica,Salario (Op)

25 Ridenominazione di relazioni Sia r(X) è la schema di una relazione r definita su insieme X={A1,…,Ak} … e sia Y un insieme di attributi Y={B1,…,Bk} La ridenominazione  B1,..,Bk  A1,…,Ak (r) contiene una tupla t’ per ogni tupla t in r, così definita: t’ è una tupla su Y, e t’[Bi]=t[Ai] per 1  i  k

26 Ridenominazione di relazioni Di solito, si indicano nelle ridenominazione solo attributi ridenominati (quelli per cui Ai  Bi)  Genitore  Padre (Paternità): omesso Figlio

27 Ridenominazione di relazioni Che cos’è Studenti   Matricola  Numero (Docenti)? CognomeMatricola Rossi32 Neri56 Studenti CognomeNumero Bianchi78 Neri23 Docenti

28 Operatori di manipolazione di relazioni Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) Permettono di manipolare relazioni per creare nuove relazione Ridenominazione Selezione Proiezione Join

29 Selezione Data relazione r su insieme di attributi X, selezione  F (r) produce relazione su attributi X che contiene tuple di r che soddisfano la condizione di selezione F A B C Selezione secondo F  F (r) A B C

30 Selezione F formula proposizionale: condizione di selezione formata da Operatori booleani:   (AND),   (OR),   (NOT)

31 Selezione F formula proposizionale: condizione di selezione formata da Operatori booleani Condizione atomiche: termine che possono contenere  Confronti fra attributi (per esempio, Stipendio>Tasse, dove Stipendio e Tasse sono attributi)  Confronti fra attributi e constanti (per esempio, Età  60, dove Età è un attributo)

32 Selezione CognomeNomeEtàStipendio RossiMario251.000,00 NeriLuca401.500,00 VerdiNico362.250,00 RossiMarco401.900,00 Impiegati CognomeNomeEtàStipendio VerdiNico362.250,00  Età>30  Stipendio>2.000,00 (Impiegati)

33 Selezione CognomeNomeEtàStipendio RossiMario251.000,00 NeriLuca401.500,00 VerdiNico362.250,00 RossiMarco401.900,00 Impiegati CognomeNomeEtàStipendio VerdiNico362.250,00  Età>30  Stipendio>2.000,00 (Impiegati)

34 Selezione CognomeNomeEtàStipendio RossiMario251.000,00 NeriLuca401.500,00 VerdiNico362.250,00 RossiMarco401.900,00 Impiegati Che cos’è  Età>30 (Impiegati)?

35 Selezione CognomeNomeEtàStipendio RossiMario251.000,00 NeriLuca401.500,00 VerdiNico362.250,00 RossiMarco401.900,00 Impiegati Che cos’è  Cognome=“Rossi”  (  Nome=“Nico”) (Impiegati)?

36 Operatori di manipolazione di relazioni Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) Permettono di manipolare relazioni per creare nuove relazione Ridenominazione Selezione Proiezione Join

37 Proiezione Data relazione r su insieme di attributi X e un sottoinsieme Y di X, la proiezione  Y (r) è l’insieme di tuple su Y ottenute dalle tuple di r considerando solo i valori su Y  Y (r) = {t[Y] | t  r} A B C Proiezione su Y  Y (r) A B

38 Proiezione Per esempio: Impiegati(Cognome,Nome,Reparto,Capo)  Cognome,Nome (Impiegati) ha attributi Cognome, Nome Relazioni non devono contenere tuple ripetute Tuple uguali collassano in una sola

39 Proiezione CognomeNomeRepartoCapo RossiMarioVenditeDe Rossi NeriLucaVenditeDe Rossi VerdiNicoPersonaleBaldi RossiMarcoPersonaleBaldi RepartoCapo VenditeDe Rossi PersonaleBaldi Impiegati  Reparto,Capo (Impiegati)

40 Proiezione CognomeNomeRepartoCapo RossiMarioVenditeDe Rossi NeriLucaVenditeDe Rossi VerdiNicoPersonaleBaldi RossiMarcoPersonaleBaldi Impiegati Che cos’è  Cognome, Nome (Impiegati)?

41 Proiezione CognomeNomeRepartoCapo RossiMarioVenditeDe Rossi NeriLucaVenditeDe Rossi VerdiNicoPersonaleBaldi RossiMarcoPersonaleBaldi Impiegati Che cos’è  Capo (Impiegati)?

42 Tuple di una proiezione Una proiezione  Y (r) contiene al più tante tuple quante r Se Y è una superchiave di r, allora  Y (r) contiene tante tuple quante r Questo può accadere comunque anche se Y non è la chiave primaria (basta che le tuple su Y siano “casualmente” tutte diverse tra loro) Vice versa: se  Y (r) contiene tante tuple quante r, allora Y è una superchiave di r

43 Operatori di manipolazione di relazioni Specifici dell’algebra relazionale (non derivano dalle teoria degli insiemi) Permettono di manipolare relazioni per creare nuove relazione Ridenominazione Selezione Proiezione Join

44 Operatore che permette di correlare dati contenuti in relazioni diverse confrontando i valori delle tuple (modello relazionale basato su valori) Join Naturale Theta-Join

45 Join Naturale Permette di correlare dati contenuti in relazioni diverse confrontando attributi con stesso nome Produce una relazione definita su unione di insiemi di attributi delle due relazioni su cui opera Tuple del risultato: ottenute combinando le tuple dei due operandi con valore uguale su attributi comuni

46 Join Naturale Date r1(X) e r2(Y), r1  r2 è relazione su X  Y: r1  r2={t su X  Y | t[X]  r1 e t[Y]  r2}

47 Join Naturale ImpiegatoReparto RossiVendite NeriProduzione BianchiProduzione RepartoCapo ProduzioneMori VenditeDe Rossi Rel1Rel2 Rel1(Impiegato,Reparto)Rel2(Reparto,Capo) X Y

48 Join Naturale ImpiegatoRepartoCapo RossiVenditeDe Rossi NeriProduzioneMori BianchiProduzioneMori ImpiegatoReparto RossiVendite NeriProduzione BianchiProduzione RepartoCapo ProduzioneMori VenditeDe Rossi Rel1Rel2 Rel1  Rel2

49 Join Naturale ImpiegatoRepartoCapo RossiVenditeDe Rossi NeriProduzioneMori BianchiProduzioneMori ImpiegatoReparto RossiVendite NeriProduzione BianchiProduzione RepartoCapo ProduzioneMori VenditeDe Rossi Rel1Rel2 Rel1  Rel2

50 Join Naturale Se relazioni da combinare definite su stesso insieme di attributi, r1(X), r2(X) … r1  r2 = r1  r2 Cioè il join coincide con intersezione: combina tuple con stessi valori di attributi su r1 e r2

51 Join Naturale RepartoCapo VenditeDe Rossi ProduzioneMori RepartoCapo AcquistiBaldi ProduzioneMori VenditeDe Rossi RepartoCapo ContabilitàTilli ProduzioneMori VenditeDe Rossi Rel1Rel2 Rel1  Rel2

52 Join Naturale RepartoCapo VenditeDe Rossi ProduzioneMori RepartoCapo AcquistiBaldi ProduzioneMori VenditeDe Rossi RepartoCapo ContabilitàTilli ProduzioneMori VenditeDe Rossi Rel1Rel2 Rel1  Rel2

53 Join Naturale Se relazioni da combinare definite su insiemi di attributi disgiunti, r1(X), r2(Y) con X  Y=  … condizione di corrispondenza tra tuple è sempre vera … r1  r2=r1xr2 (prodotto cartesiano) Combina tutte le tuple di r1 con tutte quelle di r2

54 Join Naturale RepartoCapoImpiegatoProgetto AcquistiBaldiMoriP123 AcquistiBaldi R124 ProduzioneMori P123 ProduzioneMoriBianchiR124 RepartoCapo AcquistiBaldi ProduzioneMori ImpiegatoProgetto MoriP123 BaldiR124 Rel1Rel2 Rel1  Rel2


Scaricare ppt "Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema."

Presentazioni simili


Annunci Google