Operazioni sui database



Похожие документы
Elementi di Algebra Relazionale

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Basi di Dati e Sistemi Informativi. Algebra Relazionale

Il linguaggio SQL: query innestate

Introduzione all Algebra Relazionale

DBMS (Data Base Management System)

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Istruzioni DML di SQL

Linguaggi per basi di dati

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Definizione di domini

SQL - Funzioni di gruppo

ALGEBRA RELAZIONALE RIEPILOGO

Il linguaggio SQL: viste e tabelle derivate

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

TEORIA sulle BASI DI DATI

Gli operatori relazionali

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

PROGRAMMA DI CLASSE 5AI

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Il Modello Relazionale

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

SQL IL LINGUAGGIO DI INTERROGAZIONE

Lezione V. Aula Multimediale - sabato 29/03/2008

Organizzazione degli archivi

Introduzione ai database relazionali

Secondo Compitino di Basi di Dati

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Database. Si ringrazia Marco Bertini per le slides

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

OSSIF WEB. Manuale query builder

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

MODULO 5 ACCESS Basi di dati. Lezione 4

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

LA NORMALIZZAZIONE. Introduzione

SQL prima parte 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 2011/12

SQL (STRUCTURED QUERY LANGUAGE)

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Le query di raggruppamento

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Access. P a r t e p r i m a

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

DATABASE RELAZIONALI

DATABASE. A cura di Massimiliano Buschi

Vincoli di integrità

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

OR true null false true true true true null true null null false true null false NOT

Normalizzazione. Relazionali

Il foglio elettronico. Excel PARTE

Database e Microsoft Access. Ing. Antonio Guadagno

SQL/OLAP. Estensioni OLAP in SQL

EUROPEAN COMPUTER DRIVING LICENCE / INTERNATIONAL COMPUTER DRIVING LICENCE Database Livello avanzato

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Tipi MULTISET: accesso

I database relazionali (Access)

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

EUROPEAN COMPUTER DRIVING LICENCE. Modulo AM5, Database Livello avanzato

Introduzione ai Sistemi di Gestione di Basi di Dati XML

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

1. Le macro in Access 2000/2003

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Capitolo 13. Interrogare una base di dati

Modello relazionale. ing. Alfredo Cozzi 1

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Basi Di Dati, 09/12/2003

SQL Server. Applicazioni principali

Basi di Dati: Corso di laboratorio

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 12 FEBBRAIO 2015 PARTE 1

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale

Le Basi di Dati. Le Basi di Dati

MAX, SUM, AVG, COUNT)

disponibili nel pacchetto software.

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

MODELLO RELAZIONALE. Introduzione

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Corso di Laboratorio di Basi di Dati

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Lorenzo Braidi. Database design. Libro_datadesign.indb :06:17

Транскрипт:

Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle informazioni (query)

Operazioni insiemistiche Le relazioni sono insiemi. I risultati debbono essere relazioni. E possibile applicare le operazioni sugli insiemi (unione, intersezione, differenza) a relazioni definite sugli attributi. Si considerino due relazioni R 1 e R 2 definite su di uno stesso schema con gli stessi attributi (ipotesi di compatibilità) allora

Operazioni insiemistiche Si definisce unione (Union) una nuova relazione ottenuta considerando le tuple di entrambi le relazioni R 1 e R 2. Si definisce intersezione (Intersection) una nuova relazione ottenuta considerando le tuple di R 1 che sono anche in R 2 e viceversa. Si definisce differenza (Minus) una nuova relazione ottenuta considerando le tuple di R 1 escluse quelle che appartengono anche ad R 2. Si definisce prodotto cartesiano (Cartesian Product) una nuova relazione contenente le tuple di R 1 concatenate con ciascuna tupla di R 2.

Operazioni di modifica del database Inserimento di una tupla (Insert): permette di inserire una nuova tupla in una relazione. Cancellazione di una tupla (Delete): elimina una tupla da una relazione. Modifica di una tupla (Update): cambia i valori di uno o più attributi all interno della tupla. Queste operazioni potrebbero violare i vincoli di integrità. Pertanto le operazioni di aggiornamento potrebbero propagarsi e causare altri aggiornamenti in modo automatico.

Operazioni di modifica del database Nel caso un operazione di aggiornamento di una relazione violi un vincolo di integrità, si possono intraprendere alcune azioni: Annullare l operazione che causa la violazione (Reject). Eseguire l operazione, informando l utente della violazione. Far partire ulteriori aggiornamenti in modo da correggere la violazione (opzione Cascade, opzione Set Null). Eseguire una routine specificata dall utente per correggere la violazione

Operazioni sulle relazioni L insieme principale delle operazioni per il modello relazionale è l algebra relazionale. Le operazioni dell algebra consentono all utente di specificare le interrogazioni (query) fondamentali. Il risultato di un interrogazione è una nuova relazione, che può essere stata formata a partire da una o più relazioni. Le operazioni dell algebra, quindi, producono nuove relazioni, che possono essere ulteriormente manipolate usando le operazioni della stessa algebra.

Operazioni sulle relazioni Nelle operazioni relazionali è possibile applicare gli operatori aritmetici e logici classici: Operatori matematici (/, *, +, -). Operatori di confronto (>, <, =, <=, >=, <>). Operatori logici (AND, OR, NOT). NULL (indica un campo vuoto).

Operazioni sulle relazioni Le operazioni possono essere di due tipi: unarie e binarie Le principali sono: proiezione selezione join Altre operazioni sono: ridenominazione funzioni aggregate e di raggruppamento

Proiezione (Project) L operazione di proiezione seleziona alcuni attributi (colonne) da una relazione (tabella) e scarta gli altri. Può essere vista come una partizione verticale della relazione in due relazioni: una con gli attributi richiesti, contenente il risultato dell operazione, e l altra con quelli non richiesti. Rimuove eventuali duplicati delle tuple, in modo che il risultato dell operazione sia un insieme di tuple, e quindi una relazione, valida.

Un esempio di proiezione Applicata ad una certa relazione, costruisce una nuova relazione formata da un sottoinsieme definito di attributi. impiegato progetto funzione rossi spazio-1 produzione giordano spazio-2 progettazione neri spazio-3 marketing franco spazio-1 produzione franco giardini produzione barbareschi spazio-2 progettazione milo spazio-1 progettazione milo giardini spa produzione Fornire gli impiegati ed i progetti in cui sono impegnati impiegato progetto rossi spazio-1 giordano spazio-2 neri spazio-3 Proietta gli attributi franco spazio-1 franco giardini impiegato e progetto barbareschi spazio-2 milo spazio-1 C. milo Marrocco giardini spa Università degli Studi

Selezione (Select) L operazione di selezione è usata per selezionare un sottoinsieme di tuple di una relazione che soddisfano una determinata condizione. È una sorta di filtro che trattiene solo quelle tuple che soddisfano una condizione qualificante. Può essere vista come una partizione orizzontale della relazione in due insiemi di tuple: quelle che soddisfano la condizione vengono selezionate e quelle che non la soddisfano e vengono scartate

Un esempio di selezione Applicata ad una certa relazione, costruisce una nuova relazione formata dalle tuple che soddisfano una particolare condizione. impiegato progetto funzione rossi spazio-1 produzione giordano spazio-2 progettazione neri spazio-3 marketing franco spazio-1 produzione franco giardini produzione barbareschi spazio-2 progettazione milo spazio-1 progettazione milo giardini spa produzione impiegato progetto funzione giordano spazio-2 progettazione barbareschi spazio-2 progettazione m ilo spazio-1 progettazione Fornire gli impiegati ed i progetti in cui gli impiegati hanno funzione di progettazione Seleziona le tuple aventi attributo funzione con valore progettazione

Join E la sequenza di un operazione di prodotto cartesiano seguita da una di selezione, ed è usata molto comunemente per identificare e selezionare tuple correlate da due relazioni. È un operatore binario che permette di correlare dati contenuti in relazioni diverse, confrontando i valori contenuti in esse. Ci sono due tipi di join: theta-join e join naturale.

Theta - Join impiegato progetto funzione rossi spazio-1 produzione giordano spazio-2 progettazione neri spazio-3 marketing franco spazio-1 produzione franco giardini produzione barbareschi spazio-2 progettazione milo spazio-1 progettazione milo giardini spa produzione N 1 ruolo stip. produzione 1800 progettazione 1900 marketing 2000 Applicato a due relazioni, il theta-join costruisce la relazione formata dalle tuple ottenute combinando le tuple degli operandi per cui è soddisfatta una condizione definita sui valori dei rispettivi attributi. Le tuple i cui attributi di join sono NULL non compaiono nel risultato. Per questo l operazione di join non conserva necessariamente tutte le informazioni presenti nelle relazioni partecipanti.

Un esempio di Theta-Join Fornire l elenco degli impiegati, i progetti su cui sono impegnati, la funzione svolta e lo stipendio percepito impiegato progetto funzione rossi spazio-1 produzione giordano spazio-2 progettazione neri spazio-3 marketing franco spazio-1 produzione franco giardini produzione barbareschi spazio-2 progettazione milo spazio-1 progettazione milo giardini spa produzione ruolo stip. produzione 1800 progettazione 1900 marketing 2000 Theta-join delle relazioni (impiegato, progetto, funzione) e (ruolo, stipendio) con i valori degli attributi funzione e ruolo uguali impiegato progetto funzione ruolo stip. rossi spazio-1 produzione produzione 1800 giordano spazio-2 progettazione progettazione 1900 neri spazio-3 marketing marketing 2000 franco spazio-1 produzione produzione 1800 franco giardini produzione produzione 1800 barbareschi spazio-2 progettazione progettazione 1900 milo spazio-1 progettazione progettazione 1900 milo giardini spa produzione produzione 1800

Equi Join L uso piu comune delle operazioni di join utilizza condizioni di sola uguaglianza. Questo tipo particolare di theta-join, in cui l unico operatore di comparazione usato è =, viene chiamata equi-join. Nel risultato di un equijoin si avranno sempre una o piu coppie di attributi con valori identici in ciascuna tupla.

Join Naturale (Natural Join) Poiché uno degli attributi nelle coppie con valori identici è superfluo, è stata introdotta una nuova operazione, chiamata join naturale. Applicato a due relazioni, costruisce la relazione formata dalle tuple ottenute combinando le tuple degli operandi con valori uguali sugli attributi comuni.

Un esempio di Join Naturale Fornire l elenco degli impiegati, i progetti su cui sono impegnati, la funzione svolta e lo stipendio percepito Join naturale delle relazioni (impiegato, progetto, funzione) e (funzione, stipendio) impiegato progetto funzione rossi spazio-1 produzione giordano spazio-2 progettazione neri spazio-3 marketing franco spazio-1 produzione franco giardini produzione barbareschi spazio-2 progettazione milo spazio-1 progettazione milo giardini produzione funzione stip. produzione 1800 progettazione 1900 marketing 2000 spa E possibile applicare il join naturale perché gli attributi hanno lo stesso nome. impiegato progetto funzione stip. rossi spazio-1 produzione 1800 ndio giordano spazio-2 progettazione 1900 neri spazio-3 marketing 2000 franco spazio-1 produzione 1800 franco giardini produzione 1800 barbareschi spazio-2 progettazione 1900 milo spazio-1 progettazione 1900 milo giardini produzione 1800 spa

Join Esterno (Outer Join) Nel join naturale, le tuple senza corrispondenze (dangling tuple) sono eliminate dal risultato dell operazione così come le tuple con valori NULL. Ciò può causare perdita di informazione. Un insieme di operazioni, cosiddetto join esterno, può essere usato quando si vuole tenere nel risultato di una join tutte le tuple di una delle due relazioni oppure quelle di entrambe le relazioni, anche nel caso in cui non si abbiano corrispondenze negli attributi su cui si crea il join.

Join Esterno (Outer Join) L operazione di join esterna sinistra (Left Outer Join) mantiene tutte le tuple della prima relazione (di sinistra). Se non c è una corrispondenza con una tupla di R 2, gli attributi di R 2 del risultato di join vengono riempiti con valori NULL. Un operazione analoga, join esterna destra (Right Outer Join), mantiene tutte le tuple della seconda relazione (di destra) R 2. Una terza operazione, join esterna totale (Full Outer Join), mantiene tutte le tuple di entrambe le relazioni.

Avendo a disposizione gli operatori visti, è possibile trasformare una qualunque interrogazione sul database in una combinazione di operatori applicati sulle relazioni definite nel database. impiegato telefono Esempio Trovare nomi e telefoni degli impiegati impegnati nel progetto spazio-1 Un esempio di query rossi 814 giordano 978 neri 312 franco 223 barbareschi 370 milo 899 progetto descrizione progetto spazio-1 realizzazione componenti per la stazione spaziale spazio-2 progettazione componenti per la stazione spazio-3 spaziale analisi marketing giardini spa realizzazione zappe per giardini funzione stip. produzione 1800 progettazione 1900 marketing 2000 impiegato progetto funzione rossi spazio-1 produzione giordano spazio-2 progettazione neri spazio-3 marketing franco spazio-1 produzione franco giardini produzione barbareschi spazio-2 progettazione milo spazio-1 progettazione milo giardini produzione spa

Un esempio di query Join naturale delle relazioni (impiegato, progetto, funzione) e (impiegato, telefono) Seleziona le tuple aventi attributo progetto con valore spazio-1 Proietta gli attributi impiegato e telefono impiegato progetto funzione telefono rossi spazio-1 produzione 814 giordano spazio-2 progettazione 978 neri spazio-3 marketing 312 franco spazio-1 produzione 223 franco giardini produzione 223 barbareschi spazio-2 progettazione 370 milo spazio-1 progettazione 899 milo giardini spa produzione 899 impiegato progetto funzione telefono rossi spazio-1 produzione 814 franco spazio-1 produzione 223 milo spazio-1 progettazione 899 impiegato telefono rossi 814 franco 223 milo 899

Ridenominazione (Rename) Quando si vogliono eseguire più operazioni di algebra relazionale una di seguito all altra, è possibile applicare un operazione alla volta e creare relazioni contenenti i risultati intermedi. In quest ultimo caso occorre dare un nome alle relazioni intermedie. In generale in un operazione di Rename si può avere: una relazione ridenominata con attributi ridenominati; una relazione ridenominata che non specifica i nomi degli attributi; una relazione con attributi ridenominati che non specifica il nome della relazione.

Funzioni di aggregazione Un tipo di interrogazione che non può essere espressa in termini di algebra relazionale di base consiste nello specificare funzioni aggregate matematiche su collezioni di valori del database. Esempi di queste funzioni prevedono il recupero di valori medi o somme complessive, oppure il numero totale delle tuple di una relazione. Queste funzioni vengono usate in semplici interrogazioni statistiche che riassumono le informazioni provenienti dalla tuple del database. Funzioni comuni applicate a collezioni di valori numerici sono Sum, Average, Maximum, Minimum, Count.

Funzioni di raggruppamento Alcune query potrebbero richiedere di raggruppare i risultati in base a determinati valori degli attributi. E possibile raggruppare le tuple di una relazione in sottoinsiemi caratterizzati da uno stesso valore di un particolare attributo (Group By). E possibile specificare delle condizioni logiche che devono essere verificate sul sottoinsieme di tuple che vengono raggruppate (Having).