IL MODELLO RELAZIONALE

Documenti analoghi
Il modello relazionale

SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Alessandra Raffaetà. La costruzione di una base di dati

Interrogare una base di dati: Algebra relazionale e SQL. Gaetano Anastasi Davide Barcelli Massimo Emiliano Ciaramello Giacoma Monreale

Le implementazioni nei vari DBMS relazionali commerciali

IL MODELLO RELAZIONALE. Patrizio Dazzi a.a

Basi di dati I Esercizi proposti il 24 ottobre 2016

Basi di dati I Prova di autovalutazione 1 novembre 2016 Soluzioni

Structured Query Language

Consideriamo lo schema relazionale

Basi di dati I 8 settembre 2011 Tempo a disposizione: un ora e trenta minuti. Libri chiusi.

BD: prima prova di verifica del 5/11/2012

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

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

IL LINGUAGGIO SQL LE BASI

Mirco Nanni ISTI CNR, Pisa. CdL in Lettere A.A. 2007/2008

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

Basi di Dati. Sistemi per Basi di Dati Relazionali: Modello Logico. Concetti Fondamentali. Concetti Fondamentali

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

Equivalenza di Espressioni Algebriche

Lezioni di Laboratorio sui Data Base

Basi di Dati. Dettagli e Approfondimenti

Interrogazioni semplici

Basi di dati. Selezione, proiezione e join. Linguaggi di interrogazione. Selezione, proiezione e join. Equivalenza di espressioni

Scopo Laboratorio di Informatica

Basi di dati. Linguaggi di interrogazione

SQL: RAGGRUPPAMENTI, QUANTIFICAZIONE, METODO. Patrizio Dazzi a.a

Fondamenti di Teoria delle Basi di Dati

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio

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

Alessandra Raffaetà. Esempio: Compagnia di trasporti

Scopo. Informatica. Sistema informativo. Sistema informatico

ALGEBRA RELAZIONALE. DB -Algebra Relazionale 1

SQL: SCRIVERE INTERROGAZIONI E ANNIDARLE. Patrizio Dazzi a.a

Informatica per le Scienze Umane. Introduzione al corso: programma

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

SQL: ALTRE FORME DI JOIN, FUNZIONI AGGREGATIVE, ESPRESSIONI. Patrizio Dazzi a.a

Prima prova di verifica del 8/11/2006

BASE DI DATI. Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste. Informatica Umanistica Università di Pisa

Algebra Relazionale. Concetti Fondamentali

Algebra relazionale: operazioni

Prima prova di verifica del 4/11/2009

Parte III. L algebra relazionale

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Informatica Grafica. Basi di dati parte 2

Alessandra Raffaetà. Qualificazione: notazione con il punto

Basi di dati (database)

Parte III L algebra relazionale

Sistemi di Elaborazione delle Informazioni

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Basi di Dati. Concetti Avanzati

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

Modello relazionale dei dati Prof.Alfredo Pulvirenti

Linguaggio SQL: fondamenti D B M G

Fondamenti di Teoria delle Basi di Dati

Basi di dati e Relazioni

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

Fondamenti di Informatica e Programmazione

ALGEBRA'RELAZIONALE'

Algebra Relazionale.

Aggiornamenti e Interrogazioni

Modello Relazionale/1

Slide del corso (da cui queste sono tratte) Enrolment Key: BD_online

Alessandra Raffaetà. Schemi a oggetti -> Schemi relazionali

Vincoli di Integrità Referenziale

Elena Baralis 2007 Politecnico di Torino 1

Modello relazionale e algebra relazionale

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa)

Basi di dati Algebra relazionale Figure ed esempi

Basi di dati 30 gennaio 2015 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Mirco Nanni ISTI-CNR, Pisa. CdL in Lettere A.A. 2007/2008

Lezione 6. Algebra e Calcolo Relazionale

Linguaggi di interrogazione. linguaggi interrogazione 1

Basi di dati I 11 luglio 2019 Tempo a disposizione: un ora e 45 minuti. Cognome: Nome: Matricola:

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

ISBN Titolo CasaEd AnnoEd

SQL Esercizi DML Blocco 1

Interrogazioni con Raggruppamenti

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

Basi di dati 8 novembre 2010 Prova parziale Compito A

Modulo 2 Data Base 3

Basi di dati 30 gennaio 2015 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi. Possibili soluzioni

Elena baralis 2007 Politecnico di Torino 1

D B M G. Sistemi informativi. Modello relazionale e algebra relazionale. Modello relazionale. Algebra relazionale

Fondamenti di Teoria delle Basi di Dati

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

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base

ALGEBRA RELAZIONALE. L algebra relazionale

Modello relazionale e algebra relazionale

Interrogazioni complesse. SQL avanzato 1

SQL /10/2016 Basi di dati - SQL 1

Linguaggi per basi di dati e SQL

Transcript:

IL MODELLO RELAZIONALE!1 Definizione: I meccanismi per definire una base di dati con il modello relazionale sono l ennupla e la relazione: int, real, boolean e string sono tipi primitivi; se T 1,..., T n sono tipi primitivi, e A 1,..., A n sono etichette distinte, dette attributi, allora (A 1 :T 1,..., A n :T n ) è un tipo ennupla di grado n. L ordine degli attributi non è significativo. se T è un tipo ennupla, {T} è il tipo relazione e R:{T} è lo schema della relazione R; lo schema di una base di dati è un insieme di schemi di relazione Ri:{Ti}; un istanza di uno schema R:{T} è un insieme finito di ennuple di tipo T. Per brevità invece di R:{T} si scriverà R(T).

ATTENZIONE!2 Due schemi di relazioni: R(A :int, B :string) e S(B :string, A :int) Quando due tipi ennupla, due ennuple, due tipi relazioni o due relazioni sono uguali? Due tipi ennupla sono uguali se e solo se hanno uguale grado, gli attributi e il tipo degli attributi con lo stesso nome. Due ennuple dello stesso tipo sono uguali se e solo se hanno lo stesso insieme di coppie (Attributo, Valore) Due tipi relazioni sono uguali se hanno lo stesso tipo ennupla. Due relazioni dello stesso tipo sono uguali se hanno ennuple uguali.

ESEMPI!3 Due schemi di relazioni: R(A :int, B :string) e S(B :string, A :int) Tipo ennupla di R? (A :int, B :string) Tipo di R? {(A :int, B :string)} Tipo ennupla di S? (B :string, A :int) Tipo di S? {(B :string, A :int)} Tipo ennupla di R = Tipo ennupla di S? Tipo di R = Tipo di S? Una ennupla di R? (A := 3, B := caio ) Una ennupla di S? (B := caio, A := 3) (A := 3, B := caio ) = (B := caio, A := 3)? { (A := 3, B := caio ), (A := 4, B := tizio ) } = { (B := tizio, A := 4), (B := caio, A := 3)}?

ISTANZA DI RELAZIONE!4 Schema di relazione: R(A :int, B :string) Un istanza di R è un insieme finito di ennuple di tipo (A :int, B :string) R = { (A := 10, B := Mario ), (A := 18, B := Giovanna ), (A := 77, B := Luca ), (A := 18, B := Francesco ), (A := 14, B := Carla ) } R A B 10 Mario 18 Giovanna 77 Luca 18 Francesco 14 Carla

CHIAVI ED ASSOCIAZIONI!5 Chiave Chiave primaria: una delle chiavi, in genere con meno attributi Studenti(Matricola :int, Nome :String, Indirizzo :string) Esempi di chiavi: (Matricola) e (Nome,Indirizzo) Chiave esterna Esami(Materia :string, Candidato* :int, Voto :int, Data :string) più precisamente Esami(Materia :string, Candidato *Studenti :int, Voto :int, Data :string) Associazioni?

ESEMPIO Studenti HaSostenuto Esami!6 Schema: Studenti(Nome :string, Matricola :int, Provincia :string, AnnoNascita :int) Esami(Materia :string, Candidato* :int, Voto :int, Data :string) Relazioni Studenti Nome Matricola Provincia AnnoNascita Isaia 171523 PI 1982 Rossi 167459 LU 1980 Studenti Bianchi 179856 LI 1981 Bonini 175649 PI 1982 Candidato Esami Esami Materia Candidato Voto Data BD 171523 20 12/01/05 ALG 167459 30 15/09/05 MP 171523 30 25/10/05 IS 167459 20 10/10/05

ESEMPIO: ALTRE SOLUZIONI!7 Studenti(Nome :string, Matricola :int, Provincia :string, AnnoNascita :int) Esami(Numero :int, Materia :int, Candidato* :int, Data :string, Voto :int) Studenti(Nome :string, Matricola :int, Provincia :string, AnnoNascita :int, Esame* :int) Esami(Numero :int, Materia :string, Data :string, Voto :int) Studenti(Nome :string, Matricola :int, Provincia :string, AnnoNascita :int) Esami(Numero :int, Materia :string, Data :string, Voto :int) StudentiEsami(Esame* :int, Candidato*:int) Quale preferire?

TRASFORMAZIONE DI SCHEMI A OGGETTI IN RELAZIONALI!8 Editori Libri Prestiti Autori Utenti Editori Libri Prestiti Autori-Libri Autori Utenti

LE SOTTOCLASSI!9 Persone CF <<PK>> Nome AnnoNascita Studenti Matricola <<PK>> CdL Diventa Persone CF <<PK>> Nome AnnoNascita Studenti CF <<PK1>> <<FK(Persone)>> Matricola <<PK2>> CdL Oppure Persone CF <<PK>> Nome AnnoNascita ÈStudente Matricola CdL Oppure Persone CF <<PK>> Nome AnnoNascita Studenti CF <<PK1>> Nome AnnoNascita Matricola <<PK2>> CdL

GLI ATTRIBUTI MULTIVALORE!10 Persone CF <<PK>> Nome LingueParlate: seq string CF Nome Persone <<PK>> CF Lingua LingueParlate <<PK>> <<FK(Persone)>> <<PK>> CF Nome Persone <<PK>> CF Lingua LingueParlate <<PK>> <<FK(Persone)>> <<PK>> <<FK(Lingue)>> Lingue Lingua <<PK>>

AZIENDA: SCHEMA CONCETTUALE!11 Afferisce Impiegati Codice <<PK>> NomeCognome Sesso AnnoNascita Familiari : seq [ Nome Sesso AnnoNascita RelazioneParentela ] Partecipa Impegno Direttori AnnoDiNomina Dipendenti Responsabili AnnoDiNomina Dirige CoordinatoDa Dipartimenti Numero <<PK>> Nome Città Gestisce Progetti NumeroP <<PK>> NomeP

Afferisce Impiegati Codice <<PK>> NomeCognome Sesso AnnoNascita Familiari : seq [ Nome Sesso AnnoNascita RelazioneParentela ] Partecipa Impegno AZIENDA: SCHEMA LOGICO!12 Dirige Direttori AnnoDiNomina Dipartimenti Numero <<PK>> Nome Città Dipendenti Gestisce CoordinatoDa Responsabili AnnoDiNomina Progetti NumeroP <<PK>> NomeP Afferisce Impiegati Codice <<PK>> NomeCognome Sesso AnnoNascita Afferisce <<FK(Dipartimenti)>> Codice Direttori Codice <<PK>> <<FK(Impiegati)>> AnnoDiNomina Dirige <<FK(Dipartimenti)>> Dirige Codice Responsabili Codice <<PK>> <<FK(Impiegati)>> AnnoDiNomina Codice Dipendenti Codice <<PK>> <<FK(Impiegati)>> CoordinatoDa <<FK(Responsabili)>> Capo Famiglia Impiegato Familiari CapoFamiglia <<PK>> <<FK(Impiegati)>> Nome <<PK>> Sesso AnnoNascita RelazioneParentela CoordinatoDa Partecipazioni Impiegato <<PK>> <<FK(Impiegati)>> Progetto <<PK>> <<FK(Progetti)>> Impegno Progetto Dipartimenti Numero <<PK>> Nome Città Progetti GestitoDa NumeroP <<PK>> A. Albano, NomeP G. Ghelli, R.Orsini Fondamenti GestitoDa di basi <<FK(Dipartimenti)>> di dati, Zanichelli, 2005

LINGUAGGI RELAZIONALI!13 Algebra relazionale: insieme di operatori su relazioni che danno come risultato relazioni. Non si usa come linguaggio di interrogazione dei DBMS ma come rappresentazione interna delle interrogazioni. Calcolo relazionale: linguaggio dichiarativo di tipo logico dal quale è stato derivato l'sql.

ALGEBRA RELAZIONALE Proiezione senza duplicati (π): π A1,A 2,...,A n (R) Semantica!14 Qual è il tipo del risultato? {(A 1 :T 1, A 2 :T 2,..., A n :T n )} Se R ha n elementi quanti ne ha il risultato? Proiezione generalizzata π Exp1 AS A 1,Exp 2 AS A 2,...,Exp n AS A n (R) Qual è il tipo del risultato?

ESEMPI: Proiezione!15 Studenti Nome Matricola Provincia AnnoNascita Isaia 171523 PI 1982 Rossi 167459 LU 1980 Bianchi 179856 LI 1981 Bonini 175649 PI 1982 Trovare il nome, la matricola e la provincia degli studenti π Nome, Matricola, Provincia (Studenti) Nome Matricola Provincia Isaia 171523 PI π Provincia, (Studenti)? Rossi 167459 LU Bianchi 179856 LI Qual è il tipo dei risultati? Bonini 175649 PI

ALGEBRA RELAZIONALE: (cont.)!16 Restrizione (selezione) (σ): Semantica σ Condizione (R) Qual è il tipo del risultato? Se R ha n elementi quanti ne ha il risultato?

ESEMPI: Restrizione!17 Studenti Nome Matricola Provincia AnnoNascita Isaia 171523 PI 1982 Rossi 167459 LU 1980 Bianchi 179856 LI 1981 Bonini 175649 PI 1982 Trovare i dati degli studenti di Pisa: σ Provincia = PI' (Studenti) Nome Matricola Provincia AnnoNascita Isaia 171523 PI 1982 Qual è il tipo del risultato? Bonini 175649 PI 1982

ESEMPI: Restrizione!18 Studenti Nome Matricola Provincia AnnoNascita Isaia 171523 PI 1982 Rossi 167459 LU 1980 Bianchi 179856 LI 1981 Bonini 175649 PI 1982 Trovare il nome, la matricola e l anno di nascita degli studenti di Pisa: π Nome,Matricola,AnnoNascita (σ Provincia = PI' (Studenti)) Nome Matricola AnnoNascita Isaia 171523 1982 Qual è il tipo del risultato? Bonini 175649 1982

ESERCIZIO!19 Studenti Nome Matricola Provincia AnnoNascita Isaia 171523 PI 1982 Rossi 167459 LU 1980 Bianchi 179856 LI 1981 Bonini 175649 PI 1982 Trovare il nome degli studenti di Pisa: π Nome (σ Provincia = PI' (Studenti)) è equivalente a: σ Provincia = PI' (π Nome (Studenti))? è equivalente a: σ Provincia = PI' (π Nome,Provincia (Studenti))? è equivalente a: π Nome (σ Provincia = PI' (π Nome,Provincia (Studenti)))?

ALGEBRA RELAZIONALE (cont.)!20 Unione ( ): R S Con R e S dello stesso tipo Semantica Differenza ( ): R S Con R e S dello stesso tipo Semantica Qual è il tipo del risultato? Se R e S hanno n elementi quanti ne ha il risultato? Se t 1 è un'ennupla non in R, allora R =(R {t 1 }) {t 1 })

ALGEBRA RELAZIONALE: (cont.)!21 Prodotto ( ): R S R (A 1 :T 1,..., A n :T n ) e S(B 1 :T 1,..., B m :T m ) con attributi diversi Semantica a A b B a1 A1 b1 B1 a A b B a1 A1 b2 B2 a1 a2 A1 A2 b1 B1 = b2 B2 b3 B3 a1 A1 b3 B3 a2 A2 b1 B1 a2 A2 b2 B2 a2 A2 b3 B3 Qual è il tipo del risultato? {(a :T 1, A :T 2, b :T 3, B :T 4 )} Se R e S hanno n e m elementi, quanti ne ha il risultato?

ALGEBRA RELAZIONALE (cont.)!22 Qual è il risultato di Studenti Esami? Trovare il nome degli studenti che hanno superato l esame di BD con 30 π Nome (σ Materia = BD Voto = 30 (σ Matricola = Candidato (Studenti Esami) )) meglio usare la giunzione: σ R.A = S.D (R S) = R S R.A = S.D π Nome (σ Materia = BD Voto = 30 (Studenti Matricola=Candidato Esami))

ALGEBRA RELAZIONALE (cont.)!23! Ridenominazione Intersezione! δ A B (R) R S Giunzione naturale!! R S

ALGEBRA RELAZIONALE (cont.)!24 Raggruppamento (γ): A 1,A 2,...,A n γ f1,f 2,...f k (R) dove gli {A 1, A 2,..., A n } sono un sottoinsieme degli attributi di R e le f i sono funzioni di aggregazione (min, max, count, sum, avg,...) Qual è il tipo del risultato? {(A 1 :T 1, A 2 :T 2,..., A n :T n, f 1 :T f1, f 2 :T f2,..., f k :T fk )} Se R ha n elementi, quanti ne ha il risultato? Raggruppamento generalizzato A 1,A 2,...,A n γ f1 AS F 1,f 2 AS F 2,...,f k AS F k (R)

SEMANTICA DEL RAGGRUPPAMENTO (γ)!25 S = A1,A 2,...,A n γ f1,f 2,...f k (R) R A 1,A 2,...,A n γ... (R)...γ f1,f 2,...f k (R) S S(A 1, A 2,..., A n, f 1, f 2,... f k )

ESECUZIONE DEL RAGGRUPPAMENTO!26 Trovare per ogni candidato il numero degli esami, il voto minimo, massimo e medio Candidatoγ COUNT(*),MIN(Voto),MAX(Voto),AVG(Voto) (Esami) Materia Candidato Voto Data BD 171523 20 12/01/05 ALG 167459 30 15/09/05 MP 171523 30 25/10/05 IS 167459 20 10/10/05 Materia Candidato Voto Data ALG 167459 30 15/09/05 IS 167459 20 10/10/05 BD 171523 20 12/01/05 MP 171523 30 25/10/05 Candidato COUNT(*) MIN(Voto) MAX(Voto) AVG(Voto) 167459 2 20 30 25 171523 2 20 30 25

OPERATORI NON DELL ALGEBRA!27 Proiezione con duplicati (multiinsiemistica) b A 1,A 2,...,A n (R) Ordinamento A1,A 2,...,A n (R) Operano su {T} e ritornano un multinsieme: {{T}} (altra notazione: seq T ) Si usano solo sulla radice dell albero logico

TRASFORMAZIONI ALGEBRICHE!28 Basate su regole di equivalenza fra espressione algebriche Consentono di scegliere diversi ordini di join e di anticipare proiezioni, restrizioni. Alcuni esempi con le relazioni R(A, B, C), S(A, D, E), T(D, F, G): π A (π A,B (R)) π A (R) σ C1 (σ C2 (R)) σ C1 C 2 (R) σ CR C S (R S) σ CR (R) σ CS (S) R (S T ) (R S) T (R S) (S R) σ CX ( X γ F (R)) X γ F (σ CX (R))

ALBERI LOGICI E TRASFORMAZIONI ALGEBRICHE!29 Consideriamo le relazioni R(A, B, C, D) e S(E, F, G) e l'espressione: π A,F (σ A=100 F>5 (R A=E S)) π A,F σ A=100 F >5 π A,F A = E A = E π A π E,F R S σ A=100 σ F >5 R S

ALBERI LOGICI!30 τ A (π A,M (σ C>3 ( A γ COUNT ( ) AS C,MAX(B) AS M (σ A=100 F >5 (R A=E S))))) τ A π A,M σ C>3 Aγ COUNT ( ) AS C,MAX(B) AS M σ A=100 F >5 A = E R S