Parte IV Introduzione alle basi di dati Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1 e 11, 2015 Elisabetta Ronchieri IV alle basialle di datibasi di dati Elisabetta Ronchieri IVIntroduzione Introduzione Argomenti • • • • • • Sistema Informativo vs Automazione Basi di dati Modello relazionale Operazioni sulle relazioni SQL Integrità Elisabetta Ronchieri IV Introduzione alle basi di dati Sistema Informativo Elisabetta Ronchieri IV Introduzione alle basi di dati Cosa è un sistema informativo • E’ un sistema di gestione delle informazioni che sono necessarie al funzionamento di una organizzazione. – Con il termine organizzazione si intende un insieme di uomini, strumenti, attività coordinate per il raggiungimento di obiettivi comuni. – Esempi di organizzazioni sono aziende, ospedali, biblioteche, Università e studi professionali. • Tra le attività di gestione si trovano: – raccolta, registrazione, elaborazione, conservazione e comunicazione. • La sua esistenza è indipendente dalla sua automazione visto che è presente da prima della invenzione dei calcolatori. Elisabetta Ronchieri IV Introduzione alle basi di dati Tipo di Informazione • Il sistema informativo raccoglie informazioni di tipo omogeneo. – Il sistema informativo della Università contiene informazioni relative agli studenti, docenti, aule, esami ed insegnamenti. – Il sistema informativo di uno studio commerciale contiene informazioni sui clienti, aziende, liberi professionisti e bilancio. – Il sistema informativo di una grande azienda contiene informazioni sui dipendenti, inventario, vendita, buste paga e clienti. • Tra diversi sistemi informativi possono esistere delle correlazioni. – Nel caso del sistema informativo della Università esistono correlazioni tra insegnamenti e aule, insegnamenti e docenti. Elisabetta Ronchieri IV Introduzione alle basi di dati Cosa è un sistema informatico • E’ la parte del sistema informativo che viene automatizzata tramite l’uso di tecnologie informatiche per migliorarne l’efficienza. – Gli strumenti informatici includono calcolatori, software di base, software applicativi. • Recupera informazioni di diversa complessità. • Esempio: – nel sistema informativo di un conservatorio è possibile individuare le opere tradotte dal tedesco a partire da una certa data. – nel sistema informativo di una Università è possibile estrarre informazioni statistiche sugli studenti che hanno passato il primo appello di matematica, determinare quanti studenti si sono iscritti e laureati in un certo anno. Elisabetta Ronchieri IV Introduzione alle basi di dati Sistema informatico • Rappresenta le informazioni tramite dati su archivi o file. • Gestisce l’inserimento, la cancellazione, la modifica e il reperimento dei dati su di un archivio (file). • Interpreta i dati che rappresentano le informazioni. • Un dato è ciò che è noto prima di ogni elaborazione: – Mario e Rossi sono due dati che possono non significare niente senza un’adeguata elaborazione. • Un dato opportunamente interpretato fornisce la informazione che consente di avere conoscenza, più o meno esatta, di fatti, situazioni o modi di essere. – Dicendo che il Signor Rossi si chiama Mario, arricchiamo la nostra conoscenza interpretando i dati singoli Mario e Rossi. Elisabetta Ronchieri IV Introduzione alle basi di dati Archivio di dati – File • La informazione è memorizzata su file. • Il file è logicamente organizzato in record e campi: – i campi contengono informazioni complesse, quali nomi e indirizzi; – i record contengono campi con informazioni correlate. • Le operazioni previste sono: – aggiunta o cancellazione di record; – aggiornamento di campi in record esistenti; – reperimento di campi e valori corrispondenti nei record. Elisabetta Ronchieri IV Introduzione alle basi di dati Campi e record • I campi contengono informazioni di tipo diverso quali numeri, testo, date. – Sono le colonne del file dati. • I record contengono le informazioni correlate. – Sono le righe del file dati CAMPO a CAMPO b Record 1 Dato 1 Dato 2 Record 2 Dato 3 Dato 4 Elisabetta Ronchieri IV Introduzione alle basi di dati Svantaggi dell’archivio di dati • Duplicazione dei dati. – Se ogni programma usa propri file per memorizzare dati, questi ultimi vengono replicati su più file. • Inconsistenza dei dati. – La duplicazione dei dati implica che gli aggiornamenti dei dati stessi vengono registrati su tutti i file in cui sono replicati e questo può non avvenire sempre uniformemente. • Maggiore occupazione di memoria. – A seguito della duplicazione. • Difficoltà nella protezione dei dati. – Non è possibile proteggere singoli campi o singoli record in modo differenziato ma solo file interi. Elisabetta Ronchieri IV Introduzione alle basi di dati Accesso al file • Accesso sequenziale: il sistema informatico legge il file sequenzialmente dall’inizio alla fine come se le informazioni fossero scritte su di una sola riga. – Il file è detto sequenziale. – La fine di un file sequenziale è detta EOF o End of File o fine del file – Esempio di file sequenziale: File audio e video, e documenti di testo. Elisabetta Ronchieri IV Introduzione alle basi di dati Accesso al file • Accesso diretto o random: il sistema informatico si posiziona in un record ben determinato del file. – Il record può essere ottenuto ricercando la corrispondente chiave nell’indice del file. • Il file è detto indicizzato. • L’indice contiene un elenco di chiavi ciascuna delle quali contiene l’indicazione di dove è archiviato il record. • Esempio: Scheda dipendenti di una azienda. Elisabetta Ronchieri IV Introduzione alle basi di dati Accesso al file • Accesso diretto o random: il sistema informatico si posiziona in un record ben determinato del file. – Il record può essere ottenuto ricercando la posizione direttamente nella chiave. • Il file è detto hash. • Lo spazio di memorizzazione dei dati è divisa in sezioni detta bucket o secchio. • Ciascuna sezione può contenere diversi record. • La funzione hash converte i valori chiave in numero di bucket in cui viene archiviato l’elemento. Elisabetta Ronchieri IV Introduzione alle basi di dati Basi di dati o database Elisabetta Ronchieri IV Introduzione alle basi di dati Cosa si intende per base di dati o database • Definizione generica: è una collezione di dati organizzata per reperire le informazioni necessarie allo svolgimento delle attività di una organizzazione. – Rientra nella definizione di sistema informativo. • Definizione specifica: è una collezione di dati gestita da un particolare software che prende il nome di DataBase Management System (DBMS) o sistema di gestione della base di dati. – Rientra nella definizione di sistema informatico. • Non tutti i sistemi informatici sono basi di dati. Elisabetta Ronchieri IV Introduzione alle basi di dati Esempio di sistema informativo: non base di dati • Agenda telefonica su carta o calcolatore – Archivio: specifica i cognomi e i numeri telefonici con prefisso. – Possibili difetti: • è specificato al posto del cognome una diversa informazione, come casa o comune. • è specificato direttamente il numero di telefono senza prefisso. Elisabetta Ronchieri IV Introduzione alle basi di dati Esempio di sistema informativo: non base di dati • Due archivi gestiti da due uffici distinti della stessa Università – Archivio 1 è gestito dall’ufficio A: contiene l’orario delle lezioni, l’aula in cui si svolgerà la lezione, il nome del docente e l’insegnamento del docente. – Archivio 2 è gestito dall’ufficio B: contiene l’orario di ricevimento dei docenti, il nome del docente e l’insegnamento del docente. – Possibili difetti: • Ridondanza delle informazioni (come l’insegnamento del docente). • Incoerenza delle informazioni (come riportare sui due archivi un insegnamento diverso per lo stesso docente). Elisabetta Ronchieri IV Introduzione alle basi di dati Perchè serve una base di dati • Ogni organizzazione è divisa in settori e svolge diverse attività. • Ogni settore ha un proprio sistema informativo, come quello per i dipendenti, inventario, vendita, buste paga e clienti. • Possono esistere sovrapposizioni tra i dati di interesse dei vari settori. • E’ quindi necessario creare una risorsa di informazione integrata e condivisa tra i vari settori di un’organizzazione. Elisabetta Ronchieri IV Introduzione alle basi di dati Base di dati o database • E’ un insieme di dati multidimensionali. • Contiene collegamenti interni tra gli elementi che permettono di accedere alle informazioni da diverse prospettive. • Struttura le informazioni in modo da: – garantirne la qualità dei dati; – consentirne interrogazioni efficienti. • Si differenzia dal file di dati tradizionale per due ragioni: 1. i file memorizzano dati monodimensionali; 2. le informazioni contenute in un file sono presentate in un solo modo. Elisabetta Ronchieri IV Introduzione alle basi di dati Base di dati • In un file tradizionale possiamo memorizzare sequenzialmente una lista di opere ordinate per autore. • In una base di dati con le stesse informazioni possiamo ottenere: – i lavori di un dato musicista, – i compositori che hanno scritto un certo tipo di musica. Elisabetta Ronchieri IV Introduzione alle basi di dati Base di dati • Il sistema informativo orientato ai file ha le applicazioni con i dati ridondati. • Il sistema informativo orientato alla base di dati ha le applicazioni che condividono i dati, centralizzati e integrati, riducendo la ridondanza e la possibilità di inconsistenze. Elisabetta Ronchieri IV Introduzione alle basi di dati Caratteristiche qualificanti di un database • • • • • Condivisione dei dati Coerenza dei dati Integrità Affidabilità Sicurezza Elisabetta Ronchieri IV Introduzione alle basi di dati Condivisione e coerenza dei dati • Pemette: – l'indipendenza dei dati dal software di gestione, quindi il database può essere condiviso; – l'accesso ai dati da parte di programmi applicativi e utenti; – di non duplicare i dati; – di aggiornare i dati con un'unica operazione; – di eliminare il pericolo di incoerenza tra i dati. Elisabetta Ronchieri IV Introduzione alle basi di dati Integrità • Il database contiene tendenzialmente solo dati corretti. • Il controllo centralizzato da parte del DBMS facilita il rispetto di determinati vincoli. • Nel caso si debba inserire la data va inserito il controllo per esempio a livello: – di giorno che non sia maggiore di 31; – di mese che non sia maggiore di 12. Elisabetta Ronchieri IV Introduzione alle basi di dati Affidabilità • Nel database i dati restano intatti anche in caso di malfunzionamenti di hardware e/o di software. • Il DBMS periodicamente memorizza una copia completa della base di dati (operazione di backup). • Il DBMS in caso di perdita o deterioramento dei dati sostituisce la copia originale (operazione di recovery): – possono andare persi gli ultimi aggiornamenti. Elisabetta Ronchieri IV Introduzione alle basi di dati Sicurezza • Nel database possono essere previste autorizzazioni di accesso ai dati differenziate: – sola lettura; – lettura e scrittura; – possibilità di modifica o cancellazione. • L'accesso può essere negato. • L'accesso differenziato può interessare sia gli utenti che devono accedere ma anche i dati che compongono l'informazione. Elisabetta Ronchieri IV Introduzione alle basi di dati Base di dati • Richiede: – meccanismi di autorizzazione per la protezione dei dati condivisi in modo che l'accesso avvenga solo da parte di soggetti autorizzati e secondo modalità prestabilite; – meccanismi di controllo della concorrenza per la gestione contemporanea dell'accesso ai dati condivisi da parte di più soggetti. • Una base di dati necessita di un particolare sistema di gestione detto DBMS. Elisabetta Ronchieri IV Introduzione alle basi di dati Livelli concettuali della implementazione di una base di dati • Un sistema di base di dati si compone di più livelli software. • I livelli principali sono due: – Software applicativo: gestisce la comunicazione con l’utente e non manipola direttamente la base di dati. – DBMS: gestisce la base di dati operando su di essa in risposta alle richieste del software applicativo. Elisabetta Ronchieri IV Introduzione alle basi di dati DBMS • E’ un software in grado di creare e gestire collezioni di dati, ossia database o basi di dati. • Consente di avere visioni diverse degli stessi dati in base alle esigenze dell'utente che vi accede. • Controlla l’accesso alla base di dati • Supporta: – database distribuito: un database distribuito su più computer, nascondendo questo dettaglio implementativo agli utenti. – l’indipendenza dai dati: la capacità di cambiare l'organizzazione di un database senza cambiare le applicazioni software che la usano. Elisabetta Ronchieri IV Introduzione alle basi di dati DBMS • Garantisce: – dati consistenti e non ridondati: uno stesso dato non è mai ripetuto più volte in un database e questo lo rende consistente; il dato non può assumere valori differenti in punti differenti del database stesso. – privatezza dei dati: i vari utenti o programmi possono accedere ai dati solo se in possesso di adeguate credenziali di accesso; – integrità dei dati: il valore di un dato può essre vincolato nel suo ambito di variazione e il DBSM controlla che non violi tali vincoli; – accesso concorrente ai dati: quando due utenti o programmi vogliono accedere allo stesso dato (per una modifica ad esempio), il DBMS sequenzializza gli accesi in modo da garantirne la certezza sul valore del dato in ogni istante. Elisabetta Ronchieri IV Introduzione alle basi di dati Schemi, sottoschemi e istanze • Uno schema descrive la struttura di un intero database, usata dal DBMS per mantenere la base di dati, sostanzialmente invariante nel tempo. • Un sottoschema descrive una porzione della base di dati relativa alle esigenze di una certa categoria di utenti. – Il sottoschema consente di evitare che dati sensibili siano acceduti da persone non autorizzate. • L'istanza o stato del database identifica la parte variabile nel tempo, costituita dai valori effettivi dei dati. Elisabetta Ronchieri IV Introduzione alle basi di dati Schemi, sottoschemi e istanze • Per rappresentare i corsi attivati e i docenti relativi si può usare il seguente schema invariante nel tempo: – Corso, Nome Docente. • L’istanze dello schema precedente possono variare nel tempo: – Matematica, Ronzi – Diritto, Azzurri Elisabetta Ronchieri IV Introduzione alle basi di dati Modello relazionale Elisabetta Ronchieri IV Introduzione alle basi di dati Modello dei dati • I protagonisti di una base di dati sono i dati relativi ad una certa realtà, quali quelli di un'azienda e di un'Università. • La base di dati permette il reperimento dei dati che descrivono tale realtà. • Un modello dei dati è un insieme di concetti utilizzati per descrivere e rappresentare i dati propri di una realtà di interesse e descriverne la struttura. • Il modello di dati denisce la struttura del database. Elisabetta Ronchieri IV Introduzione alle basi di dati Livelli di modellizzazione • I livelli di modellizzazione dei dati di una certa realtà di interesse di una base di dati sono tre: – livello concettuale o modelli concettuali: vista dei dati come sono organizzati per la fruizione da parte di utenti o classi di utenti. – livello logico o modelli logici: organizzazione dei dati in termini della loro struttura e dei legami logici tra i vari tipi di dati definiti. – livello fisico o modelli fisici: organizzazione fisica dei dati in file, distribuzione sui supporti di memoria e modalità di memorizzazione. Elisabetta Ronchieri IV Introduzione alle basi di dati Livello logico • Al livello logico si modellizzano i dati relativi ad una certa realtà al fine di descrivere la loro organizzazione nella base di dati. • I modelli logici offrono i concetti e i costrutti che permettono di organizzare i dati nella base di dati in modo indipendente dalle strutture fisiche effettivamente utilizzate per memorizzare i dati sul calcolatore. • I modelli logici usati per le basi di dati sono: – modello relazionale per le basi di dati relazionali e relativo DBMS; – modello gerarchico per le basi di dati gerarchici e relativo DBMS; – modello reticolare per le basi di dati reticolari e relativo DBMS; – modello ad oggetti per le basi di dati ad oggetti e relativo DBMS. Elisabetta Ronchieri IV Introduzione alle basi di dati Modello relazionale • Il modello relazionale è il modello logico più diffuso per organizzare i dati di una base di dati. • Utilizza il costrutto di relazione inteso come concetto matematico proveniente dalla teoria degli insiemi. • Organizza i dati secondo relazioni. • Una relazione può essere interpretata come una tabella a struttura fissa. • Una base di dati relazionale organizza logicamente i dati in tabelle. Elisabetta Ronchieri IV Introduzione alle basi di dati Modello relazionale • La relazione è una tabella rettangolare. • Questo modello prevede relazioni tra le tabelle contenente dati. • Una tabella raccoglie informazioni su un'entità. • I nomi dei campi o field individuano gli attributi dell'entità, ossia le colonne della tabella. • La tupla o record è una riga della tabella. Elisabetta Ronchieri IV Introduzione alle basi di dati Esempio di relazione • Relazione sui DIPENDENTI: – Ciascuna tupla contiene informazioni relative ad un singolo dipendente; – Le colonne descrivono una caratteristica dell’entità rappresentata dalla tupla. Elisabetta Ronchieri IV Introduzione alle basi di dati Esempio di relazione • Relazione sugli studenti: – Ciascuna tupla corrisponde ad uno studente – Ogni colonna corrisponde alle informazioni associate ai vari studenti, quali Matricola, Cognome, Nome e Nascita. Elisabetta Ronchieri IV Introduzione alle basi di dati Campo chiave • E’ un campo utile per individuare i singoli record. • La chiave primaria è l'attributo o insieme di attributi che definisce univocamente un record. • Esempio: – Nell'esempio della base di dati relazionale di un'Università, la chiave è espressa dal numero di matricola grazie alla sua univocità. – Nessuno studente ha un numero di matricola uguale all'altro. Elisabetta Ronchieri IV Introduzione alle basi di dati Confronto tra database relazionale e archivio su file • Duplicazione dei dati nell'archivio unico, mentre no nel database relazionale. • Coerenza dei dati nel database relazionale richiedendo eventualmente 1 solo aggiornamento, mentre l'archivio unico può necessitare di più modiche. • Sicurezza dei dati nel databse relazione e gestita l'autorizzazione degli accessi, mentre nell'archivio unico si deve interdire l'intero file. Elisabetta Ronchieri IV Introduzione alle basi di dati Progettare relazioni • Significa progettare uno schema. • Evitando di catturare piu concetti con la stessa relazione: – per evitare la ridondanza dei dati; – per evitare di cancellare delle informazioni necessarie ma non collegate. • E’ possibile effettuare: – Decomposizione: dividere le colonne di una relazione in due o più relazioni, duplicando le colonne necessarie per mantenere la relazione. – Decomposizione senza perdita di dati: una decomposizione corretta che non perde informazione. Elisabetta Ronchieri IV Introduzione alle basi di dati Tipi di relazioni tra due tabelle • 1:1 (uno-a-uno) in cui le due chiavi primarie delle tabelle si scambiano. – Si ha univocità del record in entrambe le tabelle. • 1:N (uno-a-molti) in cui la chiave primaria del lato 1 viene inserita come chiave esterna nel lato N, aggiungendo eventuali attributi della relazione. – Si ottiene una nuova chiave primaria dal lato N fatta dalla chiave primaria originale e dalla chiave esterna. – Ogni record si riferisce ad una coppia di istanze delle due entità originarie. – La relazione 1:1 è un caso particolare di quella 1:N. • N:M (molti-a-molti) in cui viene costruita una tabella di appoggio che ha una chiave privata costituita da due chiavi esterne provenienti rispettivamente dal lato N e dal lato M, aggiungendo eventuali attributi della relazione. Elisabetta Ronchieri IV Introduzione alle basi di dati Scomposizione della relazione Relazione scomposta Elisabetta Ronchieri IV Introduzione alle basi di dati Esempio di base di dati 1. Relazione DIPENDENTE 2. Relazione INCARICO 3. Relazione ASSEGNAZIONE che contiene – – il numero di Matricola della relazione DIPENDENTE l’identificativo di Incarico della relazione INCARICO Elisabetta Ronchieri IV Introduzione alle basi di dati Esempio di base di dati • A partire dalle relazioni specificate: – determinare il Reparto in cui ha lavorato il dipendente con Matricola 34Y70 • Dalla relazione ASSEGNAZIONE estrarre IdIncarico per poi recuperare il Reparto. Elisabetta Ronchieri IV Introduzione alle basi di dati Modello ad oggetti • Consiste di ogetti collegati l’uno all’altro per riflettere le loro relazioni. • Data la relazione dipendenti, la base dei dati secondo il modello object-oriented conterrà tre classi: – Dipendente – Incarico – Assegnazione • I collegamenti sono gestiti dal DBMS. Elisabetta Ronchieri IV Introduzione alle basi di dati Operazioni sulle relazioni Elisabetta Ronchieri IV Introduzione alle basi di dati Operazioni sulle relazioni • Select opera sulle tuple (righe della tabella). • Project opera sulle colonne. • Join combina le informazioni tra due o più relazioni. Elisabetta Ronchieri IV Introduzione alle basi di dati Operazione SELECT • La relazione NUOVA contiene sola la informazione che soddisfa la condizione di uguaglianza. Elisabetta Ronchieri IV Introduzione alle basi di dati Operazione PROJECT • La relazione POSTA contiene solo le informazioni relative alle colonne Nome e Indirizzo della relazione DIPENDENTE. Elisabetta Ronchieri IV Introduzione alle basi di dati Operazione JOIN • • • • • • La relazione C è data dall’unione delle relazioni A e B tale per cui la condizione è rispettata. La relazione C è costruita applicando la condizione ad ogni cella della relazione A che è confrontata con il valore della cella della relazione B. Terminate le righe nella relazione A, termina la operazione di confronto. La prima riga della relazione C è ottenuta combinando la prima riga della relazione A con la terza riga della relazione B: – A.W = B.X = 2 La seconda riga della relazione C è ottenuta combinando la seconda riga della relazione A con la seconda riga della relazione B: – A.W = B.X = 4 La terza riga della relazione C è ottenuta combinando la seconda riga della relazione A con la quarta riga della relazione B: – A.W = B.X = 4 Elisabetta Ronchieri IV Introduzione alle basi di dati Operazione JOIN • • • • La relazione C è data dall’unione delle relazioni A e B tale per cui la condizione è rispettata. La relazione C è costruita applicando la condizione ad ogni cella della relazione A che è confrontata con il valore della cella della relazione B. Terminate le righe nella relazione A, termina la operazione di confronto. La prima riga della relazione C è ottenuta combinando la prima riga della relazione A con la seconda riga della relazione B: – – • La seconda riga della relazione C è ottenuta combinando la prima riga della relazione A con la quarta riga della relazione B: – – • A.W = 2 < B.X = 4 La prima riga della relazione B viene scartata non soddisfacendo la condizione. A.W = 2 < B.X = 5 La terza riga della relazione B viene scartata non soddisfacendo la condizione. La terza riga della relazione C è ottenuta combinando la seconda riga della relazione A con la quarta riga della relazione B: – – A.W = 4 < B.X = 5 Le prime tre righe della relazione B vengono scartate perchè non soddisfano la condizione. Elisabetta Ronchieri IV Introduzione alle basi di dati Operazione JOIN • • La relazione NUOVA1 è data dall’unione delle relazioni ASSEGNAZION E e INCARICO tale per cui la condizione è rispettata. Il valore della colonna IdIncarico nelle due relazioni specificate deve combaciare. Elisabetta Ronchieri IV Introduzione alle basi di dati SQL Elisabetta Ronchieri IV Introduzione alle basi di dati Structured Query Language (SQL) • Costituisce l’ossatura per i sistemi di interrogazione delle basi di dati relazionali. • La implementazione più diffusa è quella MySQL. • L’istruzione SQL descrive le informazioni desiderate. • Operazioni per manipolare le tuple sono: – – – – inserimento aggiornamento cancellazione estrazione di nuove relazioni ottenute come combinazione di quelle esistenti con l'utilizzo di SELECT, PROJECT e JOIN. Elisabetta Ronchieri IV Introduzione alle basi di dati Relazioni su cui applicare le operazioni SQL • Date tre relazioni: – la relazione IMPIEGATO con i campi IDimpiegato, Nome e Indirizzo; – la relazione ASSEGNAMENTO con i campi IDimpiegato, IDlavoro, DataIniziale e DataFinale; – la relazione LAVORO con i campi IDlavoro, TitoloLavoro, Codice e Dipartimento. Elisabetta Ronchieri IV Introduzione alle basi di dati Eseguire estrazione • Relazione ASSEGNAMENTO, LAVORO e IMPIEGATO SELECT IDimpiegato, Dipartimento FROM ASSEGNAMENTO, LAVORO WHERE ASSEGNAMENTO.IDlavoro = LAVORO.IDlavoro AND ASSEGNAMENTO.DataFinale = "*"; Elisabetta Ronchieri IV Introduzione alle basi di dati Eseguire inserimento • Relazione IMPIEGATO INSERT INTO IMPIEGATO VALUES('43212, 'R. Bartolo', 'Via degli Esposti, 52'); Elisabetta Ronchieri IV Introduzione alle basi di dati Eseguire cancellazione • Relazione IMPIEGATO DELETE FROM IMPIEGATO WHERE Nome = 'P. Rossi' Elisabetta Ronchieri IV Introduzione alle basi di dati Eseguire aggiornamento • Relazione IMPIEGATO UPDATE IMPIEGATO SET Indirizzo = 'Via Raffaeli, 52' WHERE Nome = 'R. Bartolo'; Elisabetta Ronchieri IV Introduzione alle basi di dati Eseguire estrazione • Relazione IMPIEGATO • I campi: ID, Nome, DataNascita, FasciaPaga, OreLavorate, Paga • Estrarre tutti i dati relativi all'impiegato 'E. Arturi' avente ID pari a 10. • 1 modo: SELECT * FROM IMPIEGATO WHERE ID=10; • 2 modo: SELECT ID, Nome, DataNascita, FasciaPaga, OreLavorate, Paga FROM IMPIEGATO WHERE Nome='E. Arturi'; • In entrambi i casi la nuova relazione contiene solo le informazioni dell'impiegato 'E. Arturi'. Elisabetta Ronchieri IV Introduzione alle basi di dati Eseguire estrazione • Relazione IMPIEGATO • I campi: ID, Nome, DataNascita, FasciaPaga, OreLavorate, Paga • Estrarre nomi e stipendi ordinati per ID. SELECT Nome, Paga FROM IMPIEGATO ORDER BY ID; • La nuova relazione contiente solo le informazioni Nome e Paga estratte da IMPIEGATO e ordinate per ID. Elisabetta Ronchieri IV Introduzione alle basi di dati Eseguire estrazione • Relazione IMPIEGATO • I campi: ID, Nome, DataNascita, FasciaPaga, OreLavorate, Paga • Estrarre nomi e stipendi per gli impiegati con più di 100 ore di lavoro. SELECT Nome, OreLavorate, Paga FROM IMPIEGATO WHERE OreLavorate>100; • La nuova relazione contiene solo le informazioni Nome, OreLavorate e Paga estratte da IMPIEGATO che rispettono la condizione. Elisabetta Ronchieri IV Introduzione alle basi di dati Eseguire estrazione • • • • • Relazione IMPIEGATO I campi: ID, Nome, DataNascita, FasciaPaga, OreLavorate, Paga Relazione POLICY I campi: PianoTipo, Descrizione, Costo La tabella ASSICURAZIONE e una relazione tra le tabelle POLICY e IMPIEGATO, costruita sfruttando due chiavi esterne ID di IMPIEGATO e PianoTipo di POLICY. • I campi: ID, PianoTipo, DataStipula • Estrarre il PianoTipo dell'assicurazione per un certo impiegato. SELECT IMPIEGATO.Nome, ASSICURAZIONE.PianoTipo FROM IMPIEGATO, ASSICURAZIONE WHERE ((IMPIEGATO.Nome='E. Arturi') AND (ASSICURAZIONE.ID=IMPIEGATO.ID)); • La nuova relazione contiene il Nome dell'impiegato e il codice del PianoTipo. Elisabetta Ronchieri IV Introduzione alle basi di dati Integrità Elisabetta Ronchieri IV Introduzione alle basi di dati Protocollo di commit e roll-back • La transazione è una sequenza di operazioni che devono essere eseguite tutte insieme. – Esempio: trasferimento di danaro da un conto bancario ad un altro • Log (registro) delle transazioni registra, su memoria non volatile, le attività di tutte le transazioni. – Prima che la transazione alteri la base di dati, il log registra la modifica da eseguire. – Contiene una registrazione permanente delle azioni relative a ogni transazione. • Punto di commit o di affidamento è il punto in cui la transazione è stata registrata nel log. • Roll-back è il processo di annullare una transazione. Elisabetta Ronchieri IV Introduzione alle basi di dati Protocollo di Lock • Il protocollo di lock contrassegna con degli indicatori gli elementi di una base di dai usati da una transazione. • Gli indicatori sono detti lock. • Gli elementi contrassegnati sono detti locked (bloccati). • I lock condivisi o accesso condiviso previsto per una transazione che non modifica i dati. – Altre transazioni possono visualizzare i dati. • I lock esclusivi o accesso esclusivo previsto per una transazione che modifica i dati. Elisabetta Ronchieri IV Introduzione alle basi di dati Protocollo di Wound-wait • Il protocollo di wound-wait (colpisci/attendi) assicura che a ogni transazione sarà consentito completare il suo compito. • Le vecchie transazioni colpiscono quelle recenti che aspettano le vecchie. • Permette di dare priorità alle transazioni più vecchie. Elisabetta Ronchieri IV Introduzione alle basi di dati Referenza • Glenn Brookshear, Informatica una panoramica generale, 11-esima versione, Pearson, Cap 9. Elisabetta Ronchieri IV Introduzione alle basi di dati