Corso di. Basi di Dati I. 4. Algebra relazionale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di. Basi di Dati I. 4. Algebra relazionale"

Transcript

1 Corso di Basi di Dati 4. Algebra relazionale A.A

2 Algebra relazionale L algebra relazionale è un insieme di operazioni che si effettuano su una base di dati relazionale. Lo scopo è quello di interrogare la base di dati, ottenendo un risultato sotto forma di relazioni, di solito derivate da quelle della base di dati. Si tratta di un linguaggio procedurale, in cui cioè si arriva al risultato voluto descrivendo i vari passaggi necessari ad ottenerlo in termini di operazioni semplici. Esistono anche altri metodi di interrogazione, ad es. il calcolo relazionale, che è un linguaggio dichiarativo, in cui cioè si arriva al risultato voluto descrivendo le sue proprietà, piuttosto che i passaggi necessari ad ottenerlo.

3 Algebra relazionale Le operazioni che vedremo sono: 1 operazioni insiemistiche tradizionali: unione, intersezione, differenza (si possono applicare alle relazioni, con qualche restrizione); 2 ridenominazione, proiezione, selezione; 3 join (in varie forme).

4 Unione, intersezione, differenza Considerando una relazione come un sottoinsieme R C 1... C n del prodotto cartesiano delle colonne C 1,..., C n, l unione di due relazioni è definita naturalmente, così come l intersezione e la differenza.

5 Unione, intersezione, differenza Più concretamente, consideriamo due relazioni R 1, R 2. Supponiamo abbiano lo stesso schema. Esempio: Laureati Cognome Età Residenza Rossi 34 Roma Bianchi 37 Roma Dirigenti Cognome Età Residenza Verdi 35 Milano Bianchi 37 Roma Possiamo definirne l unione, mettendo insieme le righe di entrambe: Laureati Dirigenti Cognome Età Residenza Rossi 34 Roma Bianchi 37 Roma Verdi 35 Milano (il DBMS provvede automaticamente ad eliminare le eventuali ripetizioni!)

6 Unione, intersezione, differenza Allo stesso modo possiamo definire l intersezione: Esempio: Laureati Cognome Età Residenza Dirigenti Cognome Età Residenza Rossi 34 Roma Verdi 35 Milano Bianchi 37 Roma Bianchi 37 Roma Laureati Dirigenti Cognome Età Residenza Bianchi 37 Roma (qui non c è rischio di ripetizioni)

7 Unione, intersezione, differenza E la differenza: Esempio: Laureati Cognome Età Residenza Rossi 34 Roma Bianchi 37 Roma Laureati Dirigenti Cognome Età Residenza Rossi 34 Roma Dirigenti Cognome Età Residenza Verdi 35 Milano Bianchi 37 Roma (anche qui non c è rischio di ripetizioni) (ma qui l ordine conta!) Dirigenti Laureati Cognome Età Residenza Verdi 35 Milano

8 Unione, intersezione, differenza Ripetiamo: Per queste operazioni è necessario che le relazioni siano sullo stesso schema. Se questo non è verificato, possiamo voler definire operazioni simili, ma dovremmo essere più precisi nello specificare cosa vogliamo. Ad esempio, che colonne dovrebbe avere l unione di due relazioni che hanno attributi diversi? Selezioniamo solo le colonne comuni? oppure Mettiamo anche le colonne che figurano in una sola delle relazioni? Vedremo che tali operazioni (più complesse) sono possibili, ma non si chiamano unione, intersezione, differenza (vedi: join).

9 Ridenominazione La ridenominazione è usata per cambiare gli attributi (cioè i nomi delle colonne) in una relazione. La rappresentiamo come un operatore, con il simbolo ρ, e la notazione è la seguente: Esempio: Paternità Padre Figlio Adamo Caino Adamo Abele Abramo Isacco Abramo Ismaele ρ Nuovo nome Vecchio nome (Relazione). Attenzione: i dati della tabella non cambiano! ρ Genitore Padre (Paternità) Genitore Figlio Adamo Caino Adamo Abele Abramo Isacco Abramo Ismaele

10 Ridenominazione Cambiare nome a delle colonne più volte, una dopo l altra, si indica naturalmente concatenando gli operatori: Esempio: ρ Parente Genitore (ρ Genitore Padre (Paternità)) Parente Figlio Adamo Caino Adamo Abele Abramo Isacco Abramo Ismaele

11 Ridenominazione e operatori insiemistici La ridenominazione è utile quando si vogliono applicare gli operatori insiemistici (unione, intersezione, differenza) a tabelle con attributi diversi. Esempio: sarebbe naturale voler unire le tabelle Paternità Maternità Padre Figlio Madre Figlio Adamo Caino Eva Caino Adamo Abele Eva Set Però non si può unirle immediatamente, cioè Paternità Maternità non è permesso, perché le tabelle non hanno gli stessi attributi.

12 Ridenominazione e operatori insiemistici Ma gli attributi Padre e Madre possono essere raggruppati insieme come Genitore. Allora prima va usata la ridenominazione: Paternità Padre Figlio Adamo Caino Adamo Abele ρ Genitore Padre (Paternità) Genitore Figlio Adamo Caino Adamo Abele Maternità Madre Figlio Eva Caino Eva Set ρ Genitore Madre (Maternità) Genitore Figlio Eva Caino Eva Set

13 Ridenominazione e operatori insiemistici e poi si può usare l unione: ρ Genitore Padre (Paternità) Genitore Figlio Adamo Caino Adamo Abele ρ Genitore Madre (Maternità) Genitore Figlio Eva Caino Eva Set ρ Genitore Padre (Paternità) ρ Genitore Madre (Maternità) Genitore Figlio Adamo Caino Adamo Abele Eva Caino Eva Set Osservazione: il nome stesso della nuova tabella contiene la traccia di tutte le operazioni usate per ottenerla. Possiamo darle anche un nuovo nome: Genitorialità = ρ Genitore Padre (Paternità) ρ Genitore Madre (Maternità)

14 Proiezione e selezione La proiezione e la selezione si usano per selezionare (rispettivamente) solo alcune colonne e solo alcune righe di una relazione. La proiezione è la più semplice: bisogna solo indicare esplicitamente quali colonne si vogliono mantenere. Si usa la notazione π Colonne da mantenere (Relazione)

15 Proiezione Esempio: Studenti Nome Cognome Matricola Data di nascita Corso Fabio Rossi Matematica Giulia Bianchi Fisica Marco Rossi Chimica Giulia Verdi Fisica π Nome,Cognome (Studenti) Nome Cognome Fabio Rossi Giulia Bianchi Marco Rossi Giulia Verdi

16 Proiezione Altro esempio: Studenti Nome Cognome Matricola Data di nascita Corso Fabio Rossi Matematica Giulia Bianchi Fisica Marco Rossi Chimica Giulia Verdi Fisica π Nome,Corso (Studenti) Nome Corso Fabio Matematica Giulia Fisica Marco Chimica Giulia Fisica Anche qui il DBMS elimina automaticamente eventuali ripetizioni!

17 Proiezione In generale il numero di righe di π Colonne da mantenere (Relazione) è il numero di righe di Relazione. Il numero è uguale se e solo se le colonne da mantenere sono una superchiave di Relazione.

18 Selezione La selezione si usa per selezionare alcune righe di una relazione. Le righe da mantenere si indicano specificando un criterio, che ciascuna di esse deve (singolarmente) rispettare. La notazione è la seguente: σ Criterio (Relazione)

19 Selezione Esempio: Esami Studente Voto Lode Corso no Analisi sì Geometria no Algebra no Fisica no Algebra no Fisica σ Voto 28 (Esami) Studente Voto Lode Corso sì Geometria no Algebra no Fisica

20 Selezione Altro esempio: Esami Studente Voto Lode Corso no Analisi sì Geometria no Algebra no Fisica no Algebra no Fisica σ Corso=Fisica (Esami) Studente Voto Lode Corso no Fisica no Fisica

21 Selezione Attenzione: Normalmente in un DBMS è possibile solo specificare condizioni che riguardano la singola riga. Non è possibile descrivere il sottoinsieme delle righe volute in modo più generale. Per tali operazioni più complesse è necessaria un implementazione ad-hoc.

22 Join L operazione di join permette di combinare più relazioni in modo simile agli operatori insiemistici, combinando caratteristiche sia dell unione sia dell intersezione. Si può applicare a relazioni che non hanno gli stessi attributi. Ne vedremo diverse varianti, e anche operatori da esso derivati: il join naturale, il join n-ario, il join esterno, il self-join, il theta-join e l equi-join. Queste varianti esistono perché ci sono diversi possibili modi di trattare il fatto che le relazioni non hanno gli stessi attributi, è conveniente combinare join con se stesso e con altre operazioni.

23 Join naturale Definiamo il join naturale di due relazioni R 1 ed R 2, definite rispettivamente sugli schemi S 1 ed S 2 (ricordiamo: sono i loro insiemi degli attributi). Il join, denotato come è una relazione sullo schema R 1 R 2 S 1 S 2 cioè uniamo le colonne delle due relazioni. Le righe del join R 1 R 2 sono definite nel modo seguente: R 1 R 2 contiene una riga r R 1 ha una riga r 1 che coincide con r sugli attributi S 1, e R 2 ha una riga r 2 the coincide con r sugli attributi S 2.

24 Join naturale Osservazione: i due schemi S 1 ed S 2 possono avere attributi in comune! Esempio: R 1 R 2 Impiegato Reparto Reparto Piano Rossi Vendite Produzione 2 Neri Produzione Vendite 1 Bianchi Produzione R 1 R 2 Impiegato Reparto Piano Rossi Vendite 1 Neri Produzione 2 Bianchi Produzione 2

25 Join naturale vs. ridenominazione + unione Confrontiamo il join naturale con la composizione di ridenominazione ed unione. Paternità Maternità Padre Figlio Madre Figlio Adamo Caino Eva Caino Adamo Abele Eva Set ρ Genitore Padre (Paternità) ρ Genitore Madre (Maternità) Genitore Figlio Adamo Caino Adamo Abele Eva Abele Eva Set

26 Join naturale vs. ridenominazione + unione Confrontiamo il join naturale con la composizione di ridenominazione ed unione. Paternità Maternità Padre Figlio Madre Figlio Adamo Caino Eva Caino Adamo Abele Eva Set Paternità Maternità Padre Madre Figlio Adamo Eva Caino

27 Join naturale: proprietà Il numero di righe di R 1 R 2 è minore o uguale a n 1 n 2, dove n i è il numero di righe di R i. Non è detto che tutte le righe di R 1 (o tutte le righe di R 2 ) contribuiscano a qualche riga di R 1 R 2. Se sì, il join si dice completo. All estremo opposto, è anche possibile che il join sia vuoto! Questo accade quando nessuna riga di R 1 è combinabile con alcuna riga di R 2 (ricordiamo: le righe devono coincidere negli attributi comuni a R 1 ed R 2 ).

28 Join naturale e vincoli di integrità referenziale Supponiamo che due relazioni abbiano un vincolo di integrità referenziale, e che le colonne corrispondenti abbiano tutte lo stesso nome. Esempio: Infrazioni(Prov., Numero) Veicoli Allora il join Infrazioni Veicoli ha esattamente tante righe quante ne ha Infrazioni. (Domanda: Perché?)

29 Join naturale e vincoli di integrità referenziale Esempio: Infrazioni Codice Data Agente Prov. Numero RM 4E MI 8D1526 Veicoli Prov. Numero Marca FI 2B5881 Ford RM 4E5432 Fiat MI 8D1526 Audi Infrazioni Veicoli Codice Data Agente Prov. Numero Marca RM 4E5432 Fiat MI 8D1526 Audi

30 Join naturale, intersezione e prodotto cartesiano Consideriamo il join R 1 R 2 di due relazioni R 1, R 2 sullo schema rispettivamente S 1, S 2, e con rispettivamente n 1, n 2 righe. Se S 1 = S 2, allora R 1 R 2 = R 1 R 2 Infatti R 1 R 2 è sullo schema S 1 S 2 = S 1 = S 2, e contiene esattamente le righe di R 1 che coincidono con qualche riga di R 2. All estremo opposto, supponiamo S 1 S 2 =. Allora R 1 R 2 contiene n 1 n 2 righe, ottenute combinando ogni riga di R 1 con ogni riga di R 2 senza restrizioni. Abbiamo cioè un prodotto cartesiano di R 1 ed R 2.

31 Join n-ario Il join, considerato come operazione fra relazioni, è commutativo: ed associativo: R 1 R 2 = R 2 R 1 (R 1 R 2 ) R 3 = R 1 (R 2 R 3 ) Quindi si può scrivere anche un join di più di due relazioni, senza parentesi: o in generale di n relazioni: R 1 R 2 R 3 R 1 R 2... R n = n i=1 R i Questo si chiama join n-ario.

32 Join esterni Il join R 1 R 2 non include in generale tutte le righe di R 1 ed R 2. Esistono varianti che invece le includono tutte: i join esterni. Con essi, se una riga di una relazione non è compatibile con alcuna riga dell altra, viene estesa mettendo NULL negli attributi mancanti, e viene inclusa nel join. Esistono tre versioni: join esterno sinistro: che estende solo le righe di R 1, join esterno destro: che estende solo le righe di R 2, join esterno completo: R 1 left R 2 R 1 right R 2 R 1 full R 2 che estende le righe di entrambe R 1 ed R 2.

33 Join esterni Esempio: Paternità Padre Figlio Adamo Caino Adamo Abele Maternità Madre Figlio Eva Caino Eva Set Paternità Maternità Padre Madre Figlio Adamo Eva Caino Paternità left Maternità Padre Madre Figlio Adamo Eva Caino Adamo NULL Abele

34 Join esterni Esempio: Paternità Padre Figlio Adamo Caino Adamo Abele Maternità Madre Figlio Eva Caino Eva Set Paternità Maternità Padre Madre Figlio Adamo Eva Caino Paternità right Maternità Padre Madre Figlio Adamo Eva Caino NULL Eva Set

35 Join esterni Esempio: Paternità Padre Figlio Adamo Caino Adamo Abele Maternità Madre Figlio Eva Caino Eva Set Paternità Maternità Padre Madre Figlio Adamo Eva Caino Paternità full Maternità Padre Madre Figlio Adamo Eva Caino Adamo NULL Abele NULL Eva Set

36 Join esterni e valori NULL Attenzione: I join esterni introducono spesso valori NULL. Vedremo in seguito come vengono definiti gli operatori dell algebra relazionale in presenza di tali valori.

37 Self-join Il join R R di una relazione R con se stessa è uguale... ad R. Ma può essere utile dopo una ridenominazione! Si chiama allora self-join.

38 Self-join Esempio: Genitori Genitore Luca Maria Giorgio Silvia Enzo Figlio Elena Elena Luca Maria Maria ρ (Nonno,Genitore) (Genitore,Figlio) (Genitori) Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sono nonni di Elena.

39 Self-join Esempio: Genitori Genitore Luca Maria Giorgio Silvia Enzo Figlio Elena Elena Luca Maria Maria ρ (Nonno,Genitore) (Genitore,Figlio) (Genitori) Nonno Genitore Luca Elena Maria Elena Giorgio Luca Silvia Maria Enzo Maria Da questa relazione deduciamo che Giorgio, Silvia ed Enzo sono nonni di Elena. ρ (Nonno,Genitore) (Genitore,Figlio) (Genitore) Genitore Nonno Genitore Figlio Giorgio Luca Elena Silvia Maria Elena Enzo Maria Elena

40 Theta-join Come nell esempio precedente, il join è spesso utile in combinazione con altri operatori. Si possono definire allora altri operatori da esso derivati. Ad esempio il theta-join, che è la composizione di selezione e join: La notazione è: theta-join = selezione join Criterio = σ Criterio Attenzione: In molti DBMS il theta-join è definito invece come composizione di selezione e prodotto cartesiano: theta-join = selezione prodotto cartesiano (ricordiamo: il prodotto cartesiano è il join di due relazioni senza attributi in comune)

41 Theta-join Esempio: Infrazioni Codice Data Agente Prov. Numero RM 4E MI 8D1526 Veicoli Prov. Numero Marca FI 2B5881 Ford RM 4E5432 Fiat MI 8D1526 Audi Infrazioni Veicoli Codice Data Agente Prov Numero Marca RM 4E5432 Fiat MI 8D1526 Audi

42 Theta-join Esempio: Infrazioni Codice Data Agente Prov. Numero RM 4E MI 8D1526 Veicoli Prov. Numero Marca FI 2B5881 Ford RM 4E5432 Fiat MI 8D1526 Audi Infrazioni Data = Veicoli Codice Data Agente Prov. Numero Marca MI 8D1526 Audi

43 Equi-join Spesso il criterio C di un theta-join R 1 C R 2 fra due relazioni R 1, R 2 è del tipo valore in un attributo di R 1 = valore in un attributo di R 2 In questo caso il theta-join si chiama equi-join. L esempio tipico di equi-join è il join di due relazioni che si vuole abbiano colonne in comune, ma dove i nomi non corrispondono. Invece di 1 ridenominare gli attributi, e poi 2 usare il join, si può usare l equi-join.

44 Equi-join Esempio: Infrazioni Codice Data Agente Prov. Numero RM 4E MI 8D1526 Agenti Matricola Nome 081 Rossi 102 Neri 277 Bianchi Infrazioni Agente=Matricola Agenti Codice Data Agente Prov. Numero Matricola Nome RM 4E Bianchi MI 8D Neri Si possono poi elminare le colonne doppie con una proiezione.

45 Equi-join e join naturale Alcuni DBMS non conservano i nomi delle colonne correlando relazioni diverse: vi aggiungono il nome della relazione di partenza. Esempio: Se viene usata Impiegati(Nome, Cognome, Dipartimento), i suoi attributi diventano Impiegati.Nome, Impiegati.Cognome, Impiegati.Dipartimento In questi casi join naturale non esiste, in quanto colonne provenienti da relazioni diverse non avranno mai lo stesso attributo. Viene quindi sostituito dall equi-join. Esempio Il join di Impiegati(Nome, Dipartimento) e Edifici(Indirizzo, Dipartimento) si fa come Impiegati(Nome, Dipartimento) Impiegati.Dipartimento = Edifici.Dipartimento Edifici(Indirizzo, Dipartimento)

46 Equivalenza di espressioni algebriche L algebra relazionale permette di formulare espressioni fra loro equivalenti, cioè che producono lo stesso risultato. L equivalenza può essere assoluta, se è vera sempre indipendentemente dagli schemi delle relazioni coinvolte. Si scrive Relazione Altra relazione relativa, se è vera solo su un certo schema. Si scrive Relazione schema Altra relazione

47 Equivalenza di espressioni algebriche Esempi: Per ogni relazione R e qualsiasi scelta di criteri C 1, C 2 per la selezione σ, l equivalenza è sempre vera. σ C1 AND C 2 (R) σ C1 (σ C2 (R)) Consideriamo due relazioni R 1, R 2 su schemi rispettivamente S 1, S 2, e supponiamo A, B, C S 1 S 2 con A S 1 S 2 e B C =. L equivalenza π A B (R 1 ) π A C (R 2 ) S π A B C (R 1 R 2 ) è vera se e solo se S 1 S 2 = A. Perché a sinistra il join avviene su relazioni che hanno in comune solo A, mentre a destra R 1 ed R 2 possono avere più colonne in comune, e allora il join in generale sarà diverso.

48 Equivalenza di espressioni algebriche Tali equivalenze sono utili in pratica, perché alcune operazioni richiedono più risorse (tempo e spazio) di altre. Eseguendo una serie di operazioni, è molto utile ridurre le dimensioni delle relazioni che vengono create nei passi intermedi, o almeno far sì che le operazioni più onerose (es. il join) vengano eseguite su relazioni piccole. Le equivalenze servono ad ottimizzare i vari passaggi in questo senso.

49 Equivalenza di espressioni algebriche Alcune equivalenze utili: Atomizzazione delle selezioni: che abbiamo già visto. Idempotenza delle proiezioni: σ C1 AND C 2 (R) σ C1 (σ C2 (R)) π A (R) π A (π A B (R)) dove A e B sono sottoinsiemi degli attributi di R. Anticipazione della selezione rispetto al join: σ C (R 1 R 2 ) R 1 σ C (R 2 ) che vale solo se il criterio di selezione C fa riferimento solo ad attributi di R 2 e non di R 1.

50 Equivalenza di espressioni algebriche Anticipazione della proiezione rispetto al join: Siano R 1, R 2 relazioni definite sugli schemi risp. S 1, S 2. Sia T 2 S 2 con T 2 S 1 S 2. Allora nel join solo le colonne di T 2 vengono confrontate con colonne di S 1, e vale π S1 T 2 (R 1 R 2 ) R 1 π T2 (R 2 ) Combinando l equivalenza precedente con l idempotenza delle proiezioni otteniamo: π X (R 1 C R 2 ) π X (π T1 (R 1 ) C π T2 (R 2 )) che vale sotto le seguenti ipotesi: R 1, R 2 sono relazioni su risp. S 1, S 2, il criterio C di theta-join coinvolge sottoinsiemi J 1 di S 1 e J 2 di S 2, con J i S 1 S 2, T 1 = (S 1 X ) J 1, T 2 = (S 2 X ) J 2 Cioè: facendo una proiezione dopo un theta-join, possiamo eliminare sin dall inizio le colonne che non compaiono dopo la proiezione e che non sono coinvolte nel theta-join.

51 Equivalenza di espressioni algebriche Esempio: Vediamo come queste equivalenze vengono usate in pratica. Consideriamo due relazioni: Impiegati(Matricola, Nome, Cognome, Età, Stipendio), Supervisione(Capo, Impiegato). Supponiamo di voler elencare i capi degli impiegati che hanno meno di 30 anni. Dobbiamo prima costruire una relazione che contenga le informazioni di entrambe le tabelle: Impiegati Supervisione Poi imponiamo: Impiegato di Supervisione si riferisce a Matricola di Impiegati (vincolo di integrità referenziale), vogliamo solo gli impiegati che hanno meno di 30 anni. Quindi: σ Età<30 AND Matricola=Impiegato (Impiegati Supervisione)

52 Equivalenza di espressioni algebriche Infine vogliamo solo il campo Capo : π Capo (σ Età<30 AND Matricola=Impiegato (Impiegati Supervisione)) È un espressione poco efficiente, perché coinvolge pochi attributi delle due tabelle, ma crea subito un prodotto cartesiano, il cui numero di righe è il prodotto del numero di righe di Impiegati e di Supervisione. Per ottimizzarla, spezziamo prima le selezioni in passi elementari: π Capo (σ Età<30 (σ Matricola=Impiegato (Impiegati Supervisione))) Poi possiamo usare l equi-join al posto della selezione e join: π Capo (σ Età<30 (Impiegati Matricola=Impiegato Supervisione))

53 Equivalenza di espressioni algebriche Questa che abbiamo ottenuto π Capo (σ Età<30 (Impiegati Matricola=Impiegato Supervisione)) è già un espressione migliore, perché un equi-join di solito è implementato internamente in modo più efficiente di un prodotto cartesiano seguito da una selezione. Ad esempio il DBMS non ha bisogno di immagazzinare tutti i dati del prodotto cartesiano prima di iniziare a fare la selezione, può applicarla di riga in riga mentre crea il prodotto cartesiano, registrando effettivamente la riga solo se il criterio è rispettato. (Questo dipende chiaramente dal DBMS.)

54 Equivalenza di espressioni algebriche Continuiamo da: π Capo (σ Età<30 (Impiegati Matricola=Impiegato Supervisione)) Notiamo che nell equi-join: ci interessano comunque solo gli impiegati con meno di 30 anni, solo l attributo Matricola viene coinvolto nell equi-join, e poi nessun attributo di Impiegati rimane dopo la proiezione finale. Usiamo allora l ultima equivalenza vista, ottenendo: π Capo (π Matricola (σ Età<30 (Impiegati)) Matricola=Impiegato Supervisione) Questa espressione è ancora migliore: l equi-join viene fatto su relazioni probabilmente più piccole di quelle di partenza.

55 Equivalenza di espressioni algebriche Vediamo altre equivalenze. Distributività della selezione rispetto all unione: σ C (R 1 R 2 ) σ C (R 1 ) σ C (R 2 ) e lo stesso con intersezione ( ) e differenza ( ). Distributività della proiezione rispetto all unione: π X (R 1 R 2 ) π X (R 1 ) π X (R 2 ) Attenzione: La proiezione non è distributiva rispetto alla differenza, né all intersezione! Cioè in generale π X (R 1 R 2 ) π X (R 1 ) π X (R 2 ), π X (R 1 R 2 ) π X (R 1 ) π X (R 2 ). Ad esempio, se una riga r 1 di R 1 coincide con una riga r 2 di R 2 su X, ma r 1 ed r 2 non coincidono su altri attributi, allora r 1 comparirà in π X (R 1 R 2 ) ma non in π X (R 1 ) π X (R 2 ).

56 Equivalenza di espressioni algebriche Infine: la selezione con più criteri, legati logicamente con AND, OR, NOT, è legata agli operatori insiemistici: σ C1 OR C 2 (R) σ C1 (R) σ C2 (R) σ C1 AND C 2 (R) σ C1 (R) σ C2 (R) σ C1 AND NOT C 2 (R) σ C1 (R) σ C2 (R) l unione e l intersezione sono commutative ed associative, distributività del join rispetto all unione: R (R 1 R 2 ) = (R R 1 ) (R R 2 ) il theta-join e l equi-join non sono associativi!

57 Algebra relazionale con valori NULL Finora abbiamo visto gli operatori dell algebra relazionale ipotizzando che non siano presenti valori NULL. In pratica però tali valori vanno ammessi, ed è necessario che il comportamento del DBMS in loro presenza sia ben specificato, ad es. di fronte ad operazioni di confronto. Esempio: Persone Nome Età Rossi 31 Neri 28 Bianchi NULL Come interpretare l espressione in questa relazione? Età 30

58 Algebra relazionale con valori NULL Vediamo vari modi di dare una risposta. In ogni caso partiamo dal presupposto che NON consideriamo la disuguaglianza NULL 30 come VERA, visto che nella relazione il dato NULL nel dominio Età vuol dire chiaramente che l età della persona non è nota, quindi non si può affermare con certezza che sia 30. Esempio:Una selezione sceglie le righe su cui il criterio è VERO. Allora qui abbiamo σ Età 30 (Persone) Nome Età Rossi 31

59 Algebra relazionale con valori NULL Questo presupposto è ragionevole, però va formalizzato precisamente per evitare risultati inaspettati. Esempio: La relazione σ Età 30 (Persone) σ Età<30 (Persone) dovrebbe essere uguale a...persone, ma non lo è in presenza di valori NULL! Infatti abbiamo σ Età 30 (Persone) σ Età<30 (Persone) Nome Età Rossi 31 Neri 28 Bianchi NULL

60 Algebra relazionale con valori NULL Un modo di formalizzare la nostra scelta è di usare una logica a tre valori: vero, falso, sconosciuto. Gli operatori logici NOT, AND, OR con questi tre valori sono i seguenti: NOT V F S F V S AND V F S V V F S F F F F S S F S OR V F S V V V V F V F S S V S S

61 Algebra relazionale con valori NULL Una logica a tre valori come questa può essere usata per formulare l algebra relazionale con valori NULL in modo formalmente corretto. Ma non rende più intuitivi risultati come l esempio precedente: la relazione σ Età 30 (Persone) σ Età<30 (Persone) rimane diversa da Persone. Con espressioni eventualmente molto più complicate, il rischio di inserire operatori aspettandosi un risultato diverso è alto.

62 Algebra relazionale con valori NULL Una formalizzazione migliore (adottata in SQL) consiste nel 1 aggiungere gli operatori IS NULL, IS NOT NULL, 2 considerare automaticamente FALSA ogni condizione logica se coinvolge dati NULL, come se si aggiungesse sempre implicitamente AND IS NOT NULL. Esempio: L espressione va letta come Età 30 (Età 30) AND (Età IS NOT NULL)

63 Algebra relazionale con valori NULL In questo modo non sorprende che σ Età 30 (Persone) σ Età<30 (Persone) Persone perché in realtà va letta come σ Età 30 AND Età IS NOT NULL Avremo invece (Persone) σ Persone Età<30 AND Età IS NOT NULL (Persone) σ Età 30 (Persone) σ Età<30 (Persone) σ Età IS NULL (Persone) = Persone

64 Algebra relazionale con valori NULL Discutiamo il comportamento dei singoli operatori che abbiamo visto, in presenza di valori NULL. Attenzione: Unione, intersezione, differenza si comportano come prima, cioè come se NULL fosse un valore come gli altri. P Nome Età Rossi 31 Neri 28 Bianchi NULL Q Nome Età Rossi 31 NULL 31 Bianchi NULL P Q P Q P Q Nome Età Nome Età Nome Età Rossi 31 Rossi 31 Neri 28 Neri 28 Bianchi NULL Bianchi NULL NULL 31

65 Algebra relazionale con valori NULL La proiezione si comporta allo stesso modo: P π Età (P) Nome Età Età Rossi Neri NULL NULL Bianchi NULL E la selezione si comporta come abbiamo visto (aggiungendo cioè sempre AND IS NOT NULL ).

66 Algebra relazionale con valori NULL Il join è uguale ad un equi-join dove si richiede uguaglianza su tutti gli attributi comuni. Quindi si aggiunge come sopra AND IS NOT NULL quando si confrontano le righe sulle colonne comuni. La conseguenza è che due righe non sono compatibili se hanno valori NULL su colonne comuni, anche se coincidono su tutti i valori noti.

67 Algebra relazionale con valori NULL Esempio: Infrazioni Codice Data Agente Prov. Numero RM 4E NULL 8D1526 Veicoli Prov. Numero Marca FI 2B5881 Ford RM 4E5432 Fiat MI 8D1526 Audi Infrazioni Veicoli Codice Data Agente Prov. Numero Marca RM 4E5432 Fiat

68 Algebra relazionale con valori NULL Attenzione: Con valori NULL, il join di due relazioni con gli stessi attributi non è uguale alla loro intersezione! Esempio: P Q Nome Età Nome Età Rossi 31 Neri 28 Bianchi NULL Rossi 31 NULL 31 Bianchi NULL P Q Nome Età Rossi 31 Bianchi NULL P Q Nome Età Rossi 31

Corso di. Basi di Dati I. 3. Vincoli di integrità

Corso di. Basi di Dati I. 3. Vincoli di integrità Corso di Basi di Dati 3. Vincoli di integrità A.A. 2016 2017 Vincoli di integrità In una base di dati è spesso necessario porre delle restrizioni, o vincoli, sui dati inseriti, affinché essi possano rappresentare

Dettagli

Aggiornamenti e Interrogazioni

Aggiornamenti e Interrogazioni Aggiornamenti e Interrogazioni Aggiornamento: inserimento o modifica di dati (una funzione che, data un istanza di basi di dati ne produce un altra) Interrogazione: estrazione di informazioni (una funzione

Dettagli

Operatori derivati dagli insiemi

Operatori derivati dagli insiemi Operatori derivati dagli insiemi Unione L unione fra due relazioni r 1 e r 2 definite sullo stesso schema X si indica con r 1 r 2 ed è una relazione su X contenente le tuple appartenenti a r 1, a r 2 o

Dettagli

Parte III L algebra relazionale

Parte III L algebra relazionale Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2017-2018 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

Dettagli

Il theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti:

Il theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti: Join Per correlare attributi con nome diverso (se cioè X 1 X 2 è vuoto) è possibile fare il theta-join, definito come un prodotto cartesiano seguito da una selezione r 1 F r 2 = F (r 1 r 2 ) dove F è la

Dettagli

Linguaggi per basi di dati e SQL

Linguaggi per basi di dati e SQL Linguaggi per basi di dati e SQL Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento

Dettagli

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere la soluzione. Operatori: unione intersezione

Dettagli

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione Linguaggi per basi di dati e SQL Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento

Dettagli

Parte III. L algebra relazionale

Parte III. L algebra relazionale Parte III L algebra relazionale asi di dati - prof. Silvio Salza - a.a. 2014-2015 III - 1 Linguaggi di interrogazione Dichiarativi: specificano le proprietà del risultato ("che cosa") Procedurali: specificano

Dettagli

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere la soluzione. Operatori: unione intersezione

Dettagli

Linguaggi per basi di dati

Linguaggi per basi di dati Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento Linguaggi di interrogazione per

Dettagli

Dichiarativi : specificano le proprietà del risultato ("che cosa") Procedurali specificano le modalità di generazione del risultato ("come")

Dichiarativi : specificano le proprietà del risultato (che cosa) Procedurali specificano le modalità di generazione del risultato (come) Linguaggi per basi di dati operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione ("query") aggiornamento Linguaggi di interrogazione per

Dettagli

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida Introduzione all algebra relazionale Prof. Giovanni Giuffrida Esempio di interrogazione Studenti Nome Matricola Indirizzo Telefono Mario Rossi 456 Via Roma 1 095 111 Ugo Bianchi 567 Via Etnea 154 095 222

Dettagli

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie: lgebra relazionale Il linguaggio per interrogare ed aggiornare la base di dati fa parte del modello di questi ultimi. Un operazione di aggiornamento può essere vista come una funzione che, data un istanza

Dettagli

Linguaggi per Basi di Dati - 1. Algebra Relazionale. Algebra Relazionale. Linguaggi per Basi di Dati - 2. Operatori Insiemistici.

Linguaggi per Basi di Dati - 1. Algebra Relazionale. Algebra Relazionale. Linguaggi per Basi di Dati - 2. Operatori Insiemistici. Linguaggi per Basi di Dati - 1 Università degli Studi di Trieste Corso di Laurea in Informatica D. Gubiani marzo 2008 Distinguiamo due classi di linguaggi per basi di dati : - linguaggi di definizione,

Dettagli

Modulo 2 Data Base 3

Modulo 2 Data Base 3 Modulo 2 Data Base 3 Università degli Studi di Salerno Corso di Laurea in Scienze della comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Proiezione Dati una relazione r(x) e un

Dettagli

Equivalenze di espressioni. Equivalenze. Equivalenze. Atomizzazione delle selezioni ( F 2 (E)) Idempotenza delle proiezioni

Equivalenze di espressioni. Equivalenze. Equivalenze. Atomizzazione delle selezioni ( F 2 (E)) Idempotenza delle proiezioni 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 E1 E2 se E1 R E2 (equivalenza assoluta per ogni schema R L

Dettagli

Basi di dati Algebra relazionale Figure ed esempi

Basi di dati Algebra relazionale Figure ed esempi asi di dati Algebra relazionale Figure ed esempi 1 Laureati Matricola 7274 Nome Rossi Età 42 7432 9824 Verdi 54 45 Unione Laureati È Specialisti Specialisti Matricola 9297 7432 9824 Matricola Nome Età

Dettagli

Interrogazioni (Query) Esempi. Esempi. Esempi

Interrogazioni (Query) Esempi. Esempi. Esempi Interrogazioni (Query Un interrogazione è una funzione E(r che applicata ad istanze r di una base di dati produce una relazione su un dato insieme di attributi X. Le interrogazioni su uno schema di base

Dettagli

SQL QUERY: Le interrogazioni del database

SQL QUERY: Le interrogazioni del database Appunti della lezione di Database del 20 ottobre 2016 (mattina) Studenti: D Amuri Giuseppe, De Luca Federico Professore: Mario Bochicchio SQL QUERY: Le interrogazioni del database Per effettuare un interrogazione

Dettagli

Algebra Relazionale. Dario Allegra Data Management 1 1

Algebra Relazionale. Dario Allegra Data Management 1 1 Algebra Relazionale 1 Unione, Intersezione, Differenza Laureati Matricola Cognome Età 7274 Rossi 37 7432 Neri 39 9824 Verdi 38 Dirigenti Matricola Cognome Età 9297 Neri 56 7432 Neri 39 9824 Verdi 38 2

Dettagli

Basi di dati e Relazioni

Basi di dati e Relazioni Basi di dati e Relazioni Studenti (Matricola,Cognome,Nome,DataNascita) Corsi (Codice,Titolo,Docente) Esami (Studente,Voto,Corso) Studenti Corsi Esami contiene dati su un insieme di studenti contiene dati

Dettagli

Accesso ai dati di un DB. Algebra relazionale. Accesso ai dati di un DB. Algebra relazionale

Accesso ai dati di un DB. Algebra relazionale. Accesso ai dati di un DB. Algebra relazionale Accesso ai dati di un DB Algebra relazionale Aggiornamento del DB: funzione che, data un istanza del DB, produce un altra istanza del DB, sullo stesso schema Modifica, aggiunta, rimozione tuple Interrogazione

Dettagli

ALGEBRA RELAZIONALE. DB -Algebra Relazionale 1

ALGEBRA RELAZIONALE. DB -Algebra Relazionale 1 ALGEBRA RELAZIONALE DB -Algebra Relazionale 1 ESEMPIO DI QUERY NOME MATRICOL INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 333333 Teo Verdi 345678 Via Enna 3 444444

Dettagli

L algebra relazionale in RA

L algebra relazionale in RA L algebra relazionale in RA Gianluca Cima Anno accademico 2018/2019 RA: Un interprete per l Algebra Relazionale Coloro che vogliono scaricare l interprete dell algebra relazionale RA possono accedere al

Dettagli

Corso di. Basi di Dati I. 2. Il modello relazionale

Corso di. Basi di Dati I. 2. Il modello relazionale Corso di Basi di Dati 2. Il modello relazionale A.A. 2016 2017 Il modello relazionale Il modello relazionale prevede che una base di dati sia organizzata essenzialmente in forma di tabelle. Il punto di

Dettagli

Equivalenza di Espressioni Algebriche

Equivalenza di Espressioni Algebriche Equivalenza di Espressioni Algebriche Basi di dati e sistemi informativi 1 Equivalenza di Espressioni Algebriche Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Equivalenza

Dettagli

Basi di dati. Linguaggi di interrogazione

Basi di dati. Linguaggi di interrogazione Basi di dati Linguaggi di interrogazione Algebra relazionale Definita da Codd (70) Molto utile per imparare a formulare query Insieme minimo di 5 operazioni che danno l'intero potere espressivo del linguaggio

Dettagli

Modello relazionale e algebra relazionale (lucidi integrativi del corso)

Modello relazionale e algebra relazionale (lucidi integrativi del corso) Modello relazionale e algebra relazionale (lucidi integrativi del corso) Prof. Andrea Schaerf Basi di dati Dip. di Ingegneria Elettrica, Gestionale e Meccanica Università di Udine Anno Accademico 2014-15

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati L Algebra Relazionale Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ L algebra relazionale è un linguaggio (procedurale) di interrogazione per basi di dati relazionali.

Dettagli

Lezione 6. Algebra e Calcolo Relazionale

Lezione 6. Algebra e Calcolo Relazionale Lezione 6 Algebra e Calcolo Relazionale 1 Sommario Esempio di Applicazione con Database (AZIENDA) Algebra Relazionale Operazioni Relazionali Unarie Operazioni dell Algebra Relazionale dalla teoria degli

Dettagli

Modulo 8 I data base Unità 5 Le Query

Modulo 8 I data base Unità 5 Le Query Modulo 8 I data base Unità 5 Le Query Prof. Antonio Scanu 1 Le operazioni relazionali: In questa lezione focalizziamo l attenzione sulle operazioni che consentono di interrogare una base di dati relazionale.

Dettagli

Algebra Relazionale.

Algebra Relazionale. Algebra Relazionale c.vallati@iet.unipi.it Sommario Introduzione all algebra relazionale I costrutti principali dell algebra relazionale Esempi Esercitazione Basi di dati Ciclo di vita Finita la fase di

Dettagli

Scopo. Informatica. Sistema informativo. Sistema informatico

Scopo. Informatica. Sistema informativo. Sistema informatico BASI DI DATI 1 BASI DI DATI 2 Scopo Informatica Elaborazione di dati: Basi di dati Gestione dell informazione Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione in

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 D1.2 Selezione e proiezione 1 Prerequisiti Elementi di teoria degli insiemi Composizione di operazioni 2 1 Introduzione Oltre alle operazioni insiemistiche, può capitare

Dettagli

Precorsi di matematica

Precorsi di matematica Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono

Dettagli

Linguaggi per basi di dati. Interrogazione delle basi di dati. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Linguaggi per basi di dati. Interrogazione delle basi di dati. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione Interrogazione delle basi di dati Linguaggi per basi di dati Algebra Relazionale operazioni sullo schema DDL: data definition language operazioni sui dati DML: data manipulation language interrogazione

Dettagli

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Algebra Relazionale 1 Linguaggi di interrogazione relazionale Linguaggi di interrogazione: permettono la manipolazione e il reperimento di dati da una base di dati Il modello relazionale supporta LI semplici

Dettagli

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check

Dettagli

Algebra relazionale D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Algebra relazionale D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13 Algebra relazionale D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2012/13 Riepilogo operatori algebra Operatori insiemistici Applicabili SOLO a relazioni con lo stesso schema: BASE

Dettagli

Scopo Laboratorio di Informatica

Scopo Laboratorio di Informatica Corso di laurea triennale in Chimica - Laboratorio di Informatica 1 Corso di laurea triennale in Chimica - Laboratorio di Informatica 2 Scopo Laboratorio di Informatica Gestione dell informazione per la

Dettagli

BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI 1 Algebra relazionale Definizione L'algebra relazionale è un insieme di operazioni (query) che servono

Dettagli

Operazioni nel Modello Relazionale

Operazioni nel Modello Relazionale Elaborazione Automatica dei Dati ALGEBA ELAZIONALE Enrico Cavalli Anno Accademico 2012-2013 Operazioni nel Modello elazionale Algebra elazionale Le operazioni dell algebra relazionale permettono di manipolare

Dettagli

ALGEBRA RELAZIONALE. Linguaggi di interrogazione relazionale

ALGEBRA RELAZIONALE. Linguaggi di interrogazione relazionale ALGEBRA RELAZIONALE Linguaggi di interrogazione relazionale! Linguaggi di interrogazione (LI) permettono la manipolazione e il reperimento di dati da una base di dati! Il modello relazionale supporta LI

Dettagli

Lezione 5. Algebra relazionale

Lezione 5. Algebra relazionale Lezione 5 Algebra relazionale Pag.1 Linguaggi di interrogazione relazionale Linguaggi di interrogazione: permettono la manipolazione e il reperimento di dati da una base di dati Il modello relazionale

Dettagli

3 Algebra Relazionale

3 Algebra Relazionale Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2016/2017 Tiziana Catarci Ultimo aggiornamento : 22/02/2017 I linguaggi di interrogazione e aggiornamento

Dettagli

Basi di dati e Relazioni

Basi di dati e Relazioni Matricola Cognome Nome Data di nascita Studenti (Matricola,Cognome,Nome,DataNascita) Corsi (Codice,Titolo,Docente) Esami (Studente,Voto,Corso) Studenti contiene dati su un insieme di studenti Corsi contiene

Dettagli

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali Scopo Informatica Gestione dell informazione per le lauree triennali LEZIONE 9 Elaborazione di dati: Basi di dati Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione

Dettagli

Informatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB

Informatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB Informatica II Basi di Dati (07/08) Parte 2 Gianluca Torta Dipartimento di Informatica dell Università di Torino torta@di.unito.it, 0116706782 4 Accesso ai dati di un DB SQL Accesso ai dati di un DB Aggiornamento

Dettagli

Il Modello Relazionale e le operazioni

Il Modello Relazionale e le operazioni Il Modello Relazionale e le operazioni Prof. Giuseppe Di Capua UD 5 Modello Logico Nello sviluppo della teoria dei database sono emersi quattro tipi diversi di modelli per le basi di dati: 1. Modello gerarchico

Dettagli

(Lezione SQL 3) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova

(Lezione SQL 3) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione. Università degli Studi di Padova Università degli Studi di Padova Corso di Laurea Magistrale in Bioingegneria A.A. 2010-20112011 INFORMATICA SANITARIA (Lezione SQL 3) Barbara Di Camillo Dipartimento di Ingegneria dell Informazione Università

Dettagli

QL (Query Language) Alice Pavarani

QL (Query Language) Alice Pavarani QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione

Dettagli

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità Informatica II Basi di Dati (07/08) Parte 2 Gianluca Torta Dipartimento di Informatica dell Università di Torino torta@di.unito.it, 0116706782 Instanze inconsistenti Non tutte le tuple rappresentano informazione

Dettagli

Riconoscere e formalizzare le dipendenze funzionali

Riconoscere e formalizzare le dipendenze funzionali Riconoscere e formalizzare le dipendenze funzionali Giorgio Ghelli 25 ottobre 2007 1 Riconoscere e formalizzare le dipendenze funzionali Non sempre è facile indiduare le dipendenze funzionali espresse

Dettagli

BASI DATI: algebra relazionale

BASI DATI: algebra relazionale BASI DATI: algebra relazionale BIOINGEGNERIA ED INFORMATICA MEDICA 1 Algebra relazionale Definizione L'algebra relazionale è un insieme di operazioni (query) che servono per manipolare relazioni (tabelle).

Dettagli

Informatica. per laurea triennale di area non informatica. 1 Le basi di dati

Informatica. per laurea triennale di area non informatica. 1 Le basi di dati 1 Informatica per laurea triennale di area non informatica LEZIONE 7 - 2 Scopo Gestione dell informazione Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione in diversi

Dettagli

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini Elementi di Informatica LB Basi di Dati Anno accademico 2007/2008 Prof. Stefano Contadini Elementi di Informatica LB Il Modello Relazionale Introduzione: 1. 1 Il modello Relazionale Proposto da E. F.Codd

Dettagli

Il modello relazionale

Il modello relazionale Il modello relazionale Studenti Nome Matricola Provincia AnnoNascita Isaia 071523 PI 1982 Rossi 067459 LU 1984 Bianchi 079856 LI 1983 Bonini 075649 PI 1984 Esami Materia Candidato* Data Voto BD 071523

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : ALGEBRA E CALCOLO RELAZIONALE Esempi Impiegati Matricola Nome Età Stipendio 7309 Rossi 34 45 5998 Bianchi 37 38 9553 Neri 42 35 5698

Dettagli

<Nome Tabella>.<attributo>

<Nome Tabella>.<attributo> Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 4.2 e proiezione 1 Prerequisiti Creazione e gestione tabelle Uso ambiente SQL Concetto di schema Operazioni di algebra relazionale 2 1 Introduzione In questa Unità

Dettagli

Algebra relazionale (versione formale )

Algebra relazionale (versione formale ) Algebra relazionale (versione formale ) algebra relazionale (2) Selezione L operatore di selezione, σ, permette di selezionare un sottoinsieme delle tuple di una relazione, applicando a ciascuna di esse

Dettagli

L algebra relazionale

L algebra relazionale L algebra relazionale Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Algebra.pdf Sistemi Informativi L-A Linguaggi di manipolazione (DML)

Dettagli

Basi di dati. Gabriella Trucco

Basi di dati. Gabriella Trucco Basi di dati Gabriella Trucco gabriella.trucco@unimi.it Algebra relazionale Definizione: insieme di operazioni (query) che servono per manipolare relazioni (tabelle). Formalizzazione matematica del modo

Dettagli

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

Dettagli

Basi di dati (database)

Basi di dati (database) Basi di dati (database) 1 Scopo Gestione dell informazione Informazione: difficile da definire ma a tutti è chiara l importanza della sua gestione in diversi tipi di attività Esempi: aziende, banche, anagrafi,

Dettagli

Fondamenti di Teoria delle Basi di Dati

Fondamenti di Teoria delle Basi di Dati Fondamenti di Teoria delle Basi di Dati Riccardo Torlone Parte 8: Teoria delle dipendenze Vincoli di integrità Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni

Dettagli

Queries su più tabelle

Queries su più tabelle Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

Dettagli

Logica Proposizionale

Logica Proposizionale Intelligenza rtificiale I Logica Proposizionale Introduzione Marco Piastra Intelligenza rtificiale I -.. 28-29 29 Introduzione al corso ] lgebre di Boole Definizione Una collezione di oggetti X su cui

Dettagli

ALGEBRA'RELAZIONALE'

ALGEBRA'RELAZIONALE' ALGEBRA'RELAZIONALE'! 2 Definizioni'! Algebra Relazionale! Insieme di operatori di base del modello relazionale! Espressioni in Algebra relazionale! Sequenza di operazioni in algebra relazionale! Calcolo

Dettagli

Elementi di teoria degli insiemi

Elementi di teoria degli insiemi ppendice Elementi di teoria degli insiemi.1 Introduzione Comincia qui l esposizione di alcuni concetti primitivi, molto semplici da un punto di vista intuitivo, ma a volte difficili da definire con grande

Dettagli

Teoria degli Insiemi

Teoria degli Insiemi Teoria degli Insiemi Angelica Malaspina Dipartimento di Matematica, Informatica ed Economia Università degli Studi della Basilicata, Italy angelica.malaspina@unibas.it Generalità Il concetto di insieme

Dettagli

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale. Algebra relazionale Algebra relazionale Introduzione Selezione e proiezione Prodotto cartesiano e join Natural join, theta-join e semi-join Outer join Unione e intersezione Differenza e antijoin Divisione

Dettagli

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z.

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z. Università di Roma La Sapienza Laurea in Ingegneria Informatica Basi di Dati Anno Accademico 2003/2004 Canale M-Z Diego Calvanese Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di

Dettagli

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

SQL. SQL: storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. standard di fatto SQL SQL: "storia Sviluppato nella metà degli anni settanta (194) presso il laboratorio di ricerca IBM di S.Josè Dal 1983 ca. "standard di fatto" E il linguaggio di riferimento per l interrogazione di DBMS

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML

Dettagli

L algebra relazionale

L algebra relazionale L algebra relazionale Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Algebra.pdf Sistemi Informativi L-A Linguaggi di manipolazione (DML)

Dettagli

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY)

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY) SQL SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY) Esempio 1 Madre Maternita Figlio Nome Eta Andrea 27 Aldo 25 Maria 55 Anna 50 Filippo 26 50 60 Olga 30 Sergio 85 Luisa 75 Persone Reddito

Dettagli

Algebra Relazionale. Interrogazione Basi di Dati. Algebra relazionale. Algebra relazionale. Unione. Algebra relazionale

Algebra Relazionale. Interrogazione Basi di Dati. Algebra relazionale. Algebra relazionale. Unione. Algebra relazionale Interrogazione Basi di Dati Algebra Relazionale Interrogare un DB signifia estrarre le informazioni desiderate dal DB stesso In genere le informazioni desiderate si possono estrarre da una singola tabella

Dettagli

Basi di dati 8 novembre 2010 Prova parziale Compito A

Basi di dati 8 novembre 2010 Prova parziale Compito A Basi di dati 8 novembre 2010 Prova parziale Compito A Cognome: Nome: Matricola: Domanda 1 (15%) Si supponga di voler rappresentare in una base di dati relazionale le informazioni relative al calendario

Dettagli

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a 1 ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a. 2014-2015 Algebra Relazionale Linguaggio di interrogazione o query language è un linguaggio tramite il quale è possibile richiedere le informazioni contenute

Dettagli

Informatica Grafica. Basi di dati parte 2

Informatica Grafica. Basi di dati parte 2 Informatica Grafica Corso di Laurea in Ingegneria Edile Architettura Basi di dati parte 2 Michele Lombardi su materiale originario di Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica

Dettagli

SQL: "storia" 31/05/2006 2

SQL: storia 31/05/2006 2 SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali, non i dettagli

Dettagli

IL MODELLO RELAZIONALE. Patrizio Dazzi a.a

IL MODELLO RELAZIONALE. Patrizio Dazzi a.a IL MODELLO RELAZIONALE Patrizio Dazzi a.a. 2017-2018 COMUNICAZIONE AI MIEI CARI STUDENTI! La mail che mandate per la Mailing List deve avere come Oggetto/Subject [BDD-INFUMA-2017-18] e come contenuto:

Dettagli

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento Operatori aggregati In algebra relazionale le espressioni vengono valutate sulle singole tuple in successione. Talvolta però possono essere necessarie informazioni derivabili dall esame di tutte le tuple

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 27 Sommario 1 Join di Tabelle 2 3 2 / 27 Lo Statement JOIN Join espliciti di tabelle nella clausola FROM In SQL e possibile scrivere

Dettagli

Basi di dati (continua)

Basi di dati (continua) Progettazione logica Basi di dati (continua) Schema logico teoria e pratica con Microsoft Access 42 Modello Relazionale (fine anni 60) Base di dati come insieme di tabelle Si basa sul concetto matematico

Dettagli

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a. 2016-2017 ALGEBRA RELAZIONALE Linguaggio di interrogazione o query language è un linguaggio tramite il quale è possibile richiedere informazioni contenute

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Luca Martini Università di Pisa 16 aprile 2010 Riepilogo sugli operatori aggregati Sintassi SELECT A t t r i b u t o 1, MAX( A t t r i b u t o 2 ),... FROM Tabella1, Tabella2,...

Dettagli

RISOLVERE EQUAZIONI DI PRIMO GRADO INTERE

RISOLVERE EQUAZIONI DI PRIMO GRADO INTERE Prof. Di Caprio 1 RISOLVERE EQUAZIONI DI PRIMO GRADO INTERE Introduzione In questa lezione impareremo a risolvere equazioni di primo grado intere. Esse sono molto utili principalmente per risolvere alcune

Dettagli

Basi di dati IL MODELLO RELAZIONALE

Basi di dati IL MODELLO RELAZIONALE Basi di dati IL MODELLO RELAZIONALE I modelli logici dei dati Tre modelli logici tradizionali gerarchico reticolare relazionale Più recenti a oggetti (poco diffuso) basato su XML ("complementare" a quello

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : SQL (3) Tabelle multiple, variabili, operatori di aggregazione QUERIES SU PIU TABELLE Queries su più tabelle 17 mar 010 Dia 3 17 mar 010 Dia 4 Per formulare un interrogazione su più tabelle, la clausola

Dettagli

Tornando all esempio..

Tornando all esempio.. Tornando all esempio.. gli impiegati hanno un unico stipendio Impiegato Stipendio i progetti hanno un unico bilancio Progetto Bilancio in ciascun progetto, un impiegato svolge una sola funzione Impiegato

Dettagli

Algebra Relazionale.

Algebra Relazionale. Algebra Relazionale foglia@iet.unipi.it Sommario Introduzione all algebra relazionale I costrutti principali dell algebra relazionale Esempi Esercitazione Basi di dati Ciclo di vita Finita la fase di progettazione

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 46 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 3 Funzioni d aggregazione La Clausola GROUP BY La Clausola HAVING

Dettagli