Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Slides:



Advertisements
Presentazioni simili
11/10/2001Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 1 Viste (relazioni derivate) Rappresentazioni diverse per gli stessi dati (schema esterno)schema.
Advertisements

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
Una convenzione e notazione alternativa per i join Nota: è sostanzialmente l'approccio usato in SQL Ignoriamo il join naturale (cioè non consideriamo implicitamente.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Join Proprietà Il join di r 1 e r 2 contiene un numero di tuple compreso fra zero e il prodotto di |r 1 | e |r 2 | se il join di r 1 e r 2 è completo allora.
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 4:SQL 24/09/2002.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
rielaborato da Atzeni-etal., Basi di dati, Capitolo 4
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Interrogazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
di Basi di Dati: Overview
Le operazioni relazionali (continua)
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
A. A – 2008 Basi di dati 1 Corso Prof
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
File con indice (sparso)
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
A.A Architetture di data integration
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
SQL per la modifica di basi di dati
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
Il modello relazionale
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Quantificazione Esistenziale ed Universale
Selezione e Proiezione
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.
Transcript della presentazione:

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Corso di Architetture Info Anno accademico 2009-2010 Prof. Carlo Batini 5.2.2 Richiami sul modello relazionale Le viste e l’outerjoin 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Cosa e’ una vista? Una vista e’ una relazione derivata a partire dalle relazioni definite nello schema di base di dati La derivazione e’ espressa per mezzo di una normale interrogazione SQL Sintassi di una vista CREATE VIEW <Nome View> AS Interrogazione SQL La relazione che costituisce la vista eredita i nomi degli attributi citati nella SELECT 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Viste e schemi esterni Le viste sono utilizzate anche per esprimere gli schemi esterni della architettura ANSI Schema logico Person (SSN, Country) Schema esterno: gli austriaci SELECT SSN FROM Person WHERE Country = “Austria”

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Esempio Professore (CFiscale, Nome, Cognome, Eta’ Area-di-Ricerca) Vogliamo definire una vista dei professori giovani e che fanno ricerca in basi di dati CREATE VIEW PROFESSOREGBD AS Select Nome, Cognome, Eta’, Area-di-Ricerca from Professore Where Eta’ < 40 and Area-di-Ricerca = “Basi di dati” 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Viste virtuali e materializzate Due tipi di relazioni derivate: viste materializzate relazioni virtuali (o viste) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Viste materializzate relazioni derivate memorizzate nella base di dati vantaggi: immediatamente disponibili per le interrogazioni svantaggi: ridondanti appesantiscono gli aggiornamenti non sono supportate dai DBMS 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Viste virtuali relazioni virtuali (o viste): sono supportate dai DBMS una interrogazione su una vista viene eseguita "ricalcolando" la vista 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Attenzione Qui e nel seguito le interrogazioni sono espresse in algebra relazionale, non in SQL 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Viste, esempio A Mori B Bruni Reparto Capo Rossi Neri Bianchi Impiegato Afferenza Direzione una vista: Supervisione = PROJ Impiegato, Capo (Afferenza JOIN Direzione) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Interrogazioni sulle viste Sono eseguite sostituendo alla vista la sua definizione: SELCapo='Leoni' (Supervisione) viene eseguita come SELCapo='Leoni'( PROJ Impiegato, Capo (Afferenza JOIN Direzione)) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Viste, motivazioni Sono un importante strumento di programmazione: si può semplificare la scrittura di interrogazioni: espressioni complesse e sottoespressioni ripetute Utilizzo di programmi esistenti su schemi ristrutturati Invece: L'utilizzo di viste non influisce sull'efficienza delle interrogazioni 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Viste come strumento di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: PROJ Impiegato (Afferenza JOIN Direzione) JOIN REN ImpR,RepR  Imp,Reparto ( SEL Impiegato='Rossi' (Afferenza JOIN Direzione)) Con la vista: PROJ Impiegato (Supervisione) JOIN REN ImpR,RepR  Imp,Reparto ( SEL Impiegato='Rossi' (Supervisione)) 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 L’utilizzo di viste permette di adottare un percorso piu’ semplice per esprimere interrogazioni in SQL Strategia Cercare di spezzare la interrogazione in passo, in modo tale che la relazione calcolata in un passo sia in input al passo successivi Esprimere ogni passo intermedio per mezzo di una vista, che viene quindi citata nel passo successivo. 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Richiami sull’ outer join 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Viste e aggiornamenti, attenzione Afferenza Direzione A Mori B Bruni Reparto Capo Rossi Neri Impiegato Verdi C Supervisione Vogliamo inserire, nella vista, il fatto che Lupi ha come capo Bruni; oppure che Belli ha come capo Falchi; come facciamo? 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3 Viste e aggiornamenti "Aggiornare una vista": modificare le relazioni di base in modo che la vista, "ricalcolata" rispecchi l'aggiornamento L'aggiornamento sulle relazioni di base corrispondente a quello specificato sulla vista deve essere univoco In generale però non è univoco! Ben pochi aggionamenti sono ammissibili sulle viste 11/10/2001 Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3

Esigenza di un nuovo Join il Join esterno Il join esterno estende, con valori nulli, le ennuple che verrebbero escluse da un join natuale o theta join Esiste in tre versioni: sinistro, destro, completo 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 3

Tipologie di Join esterno Sinistro  LEFT: mantiene tutte le ennuple del primo operando, estendendole con valori nulli, se necessario Destro  RIGHT: ... del secondo operando ... Completo  FULL: … di entrambi gli operandi ... 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 3

Esempio di Join esterno sinistro Impiegato Reparto Rossi A Neri B Bianchi Impiegati Reparto Capo B Mori C Bruni Reparti A Rossi C Impiegati JOINLEFT Reparti Neri B Mori Impiegato Reparto Capo Bianchi Rossi A NULL 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 3

Esempio di Join esterno destro Impiegato Reparto Rossi A Neri B Bianchi Impiegati Reparto Capo B Mori C Bruni Reparti A C Bruni Impiegati JOINRIGHT Reparti Neri B Mori Impiegato Reparto Capo Bianchi NULL C Bruni 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 3

Esempio di Join esterno “full” Impiegato Reparto Rossi A Neri B Bianchi Impiegati Reparto Capo B Mori C Bruni Reparti A Rossi C Bruni Impiegati JOINFULL Reparti Neri B Mori Impiegato Reparto Capo Bianchi Rossi A NULL NULL C Bruni 04/2007 adattato da Atzeni-etal., Basi di dati, Capitolo 3

Sintassi degli Outer join in SQL select paternita.figlio, padre, madre from maternita right outer join paternita on maternita.figlio = paternita.figlio from maternita left outer join paternita from maternita full outer join paternita 15/10/2001 rielaborato da Atzeni-etal., Basi di dati, Capitolo 4