Introduzione alle Basi di Dati Overview Informazione contenuto

Introduzione alle Basi di Dati

Overview

Informazione = contenuto + struttura n Informazione non strutturata Molto contenuto, poca struttura n Un romanzo e il suo indice (magari solo capitoli numerati) n n Informazione strutturata Molta struttura, contenuto rigidamente codificato n I sistemi informativi delle organizzazioni, le basi di dati n

DBMS (database management system) n Obiettivo: gestione strutturata di dati, organizzati in modo omogeneo. n Base di dati: Collezione di dati organizzati in modo coerente (un insieme casuale di dati non è una base di dati !) n Modella alcuni aspetti del mondo reale n Costruito con funzionalità ben precise, note fin dall’inizio della progettazione. n

Basi di dati: operazioni n Definizione della base di dati quali informazioni (struttura) n quali relazioni tra le informazioni n n Manipolazione inserimento di dati n cancellazione di dati n aggiornamento (update) n interrogazione n n Protezione e sicurezza dei dati

Esempio di Tabella Nomi di Attributi Schema Nome tuple Cognome Telefono Mario Rossi 050 90… … Luigi Bianchi 06 499… … Guido La Vespa 02 009… … … Notazione: La tabella Rubrica è anche indicata con la notazione: Rubrica (Nome, Cognome, Telefono, …)

In ogni modello esistono n Lo schema: la descrizione della struttura n n stabile nel tempo L‘istanza: i valori (cioè i dati) n variabile nel tempo studenti Matricola 6554 8765 9283 3456 Cognome Pinco Neri Verdi Rossi Nome Pallino Paolo Luisa Maria Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978

Relazioni e Attributi: esempio studenti Matricola 6554 8765 9283 3456 Cognome Pinco Neri Verdi Rossi Nome Pallino Paolo Luisa Maria esami Studente 3456 9283 6554 corsi Codice 01 02 04 Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978 Voto 30 24 28 26 Corso 04 02 01 01 Titolo Docente Analisi Sempronio Chimica Bruni Chimica Verdi

Relazioni e Attributi: esempio…

Modello relazionale

Modello relazionale dei dati sono organizzati in “tabelle” n la tabella è un insieme di “record” (ennuple) n con un insieme di attributi n di tipi opportuni (numeri, stringhe, date …) n n i dati in tabelle diverse sono correlati sulla base dei valori (chiavi)

Modello relazionale Relazione su due insiemi A e B sottoinsieme del prodotto cartesiano Ax. B n Esempio n n sposato_con incluso in n Persone n figlio_di incluso in n Persone n x Persone vive_a incluso in n Persone x Città

Esempio di relazione n Persone= {Paolo, Luca, Mario} Città={Torino, Roma} n Personex. Città n Persone Città Paolo Luca Torino Roma n Vive_a Persone Città Paolo Luca Torino Roma

Relazioni e Attributi n Attributi: nomi che specificano un ruolo in una relazione, esempi: sposato_con(Marito, Moglie) n figlio_di(Figlio, Genitore) n vive_a(Nome, Citta, Provincia) n libro(N. Inv, Autore, Titolo, Anno_edizione, Casa_editrice, Collocazione) n n Gli attributi devono avere nomi differenti

Vincoli

Vincoli sulle relazioni n I valori contenuti nelle tabelle possono essere soggetti a vari tipi di vincoli che dipendono dalla ‘realtà’ che si vuole rappresantare: vincoli di dominio: valori dei singoli Attributi n vincoli di tupla: valori di attributi correlati in una tupla n vincoli di integrità valori di attributi in tuple diverse (anche in relazioni diverse) n

Vincoli di dominio n vincoli sui valori dei singoli attributi (vincoli di dominio), es: n dato ESAMI(Studente, Voto, Lode, Corso) deve essere: n Voto n >=18 AND Voto <=30 Vincoli sul valore di un attributo data

Vincoli di tupla n vincoli sui valori di attributi correlati, es n Data la relazione ESAMI come prima deve essere: n not n (Lode = Yes) OR Voto = 30 equivalente a n Lode= n No OR Voto = 30 Data la relazione PAGAMENTI(Data, Importo, Ritenute, Netto) deve essere: n Netto = Importo - Ritenute

Esempio complesso di vincoli n Supponiamo che STUDENTE contenga anche gli attributi n Borsa di Studio: valori {Yes, No} n Reddito (della famiglia): euro n Residente (nella città sede univ. ): {Yes, No} n Uno studente ha diritto ad una borsa se: n ha una media >= 27 e un reddito <= 20000, Oppure n non è residente e ha una media >= 25 e un reddito <=25000

Relazioni tra tabelle n In una base di dati relazionale le tabelle sono collegate tra loro tramite attributi comuni Esempio: n Il collegamento tra la relazione LIBRI e la relazione CASE_EDITRICI può essere espressa mediante l’ attributo “Numero di inventario”. n Uso di chiavi primarie per evitare replicazione di dati. n Tabelle organizzate per contenere dati omogenei di entità di informazioni ritenute interessanti (Persone, Comuni…).

Funzionalità DBMS

Funzionalità DBMS n Funzioni per: definizione della base di dati n inserimento / rimozione /aggiornamento di informazioni n n deve n soddisfare i vincoli! Interrogazione

Creazione tabelle: Chiavi primarie n CREATE TABLE Studenti ( Matricola integer, Cognome string, Nome string, Data di nascita integer, Primary Key (Matricola); );

Creazione Tabelle Chiavi primarie: esempio studenti Matricola Cognome Nome Data di nascita

Creazione tabelle: Chiavi primarie n CREATE TABLE Corsi ( Codice integer, Titolo string, Docente string, Primary Key (Codice); );

Creazione Tabelle Chiavi primarie: esempio studenti Matricola Cognome corsi Nome Codice Data di nascita Titolo Docente

Creazione tabelle: Chiavi primarie e chiavi esterne n CREATE TABLE Esami ( ID integer, Studente integer, Voto integer, Corso integer, Primary Key (ID), Foreign Key (Studente) references Studenti(Matricola), Foreign Key (Corso) references Corsi(Codice)); );

Creazione Tabelle Chiavi esterne: esempio studenti Matricola esami Cognome Id corsi Nome Data di nascita Studente Voto Corso Codice Titolo Docente

Inserzione dati: esempio studenti Matricola 6554 8765 9283 3456 esami Cognome Pinco Neri Verdi Rossi Nome Pallino Paolo Luisa Maria Studente Id 1135622 3456 1135623 3456 9283 1135624 1135623 6554 corsi Codice 01 02 04 Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978 Voto 30 24 28 26 Corso 04 02 01 01 Titolo Docente Analisi Sempronio Chimica Bruni Chimica Verdi

Interrogazioni n Linguaggio SQL Produce come risultato una tabella n Agisce su insiemi (di tuple) e restituisce insiemi (di tuple). n n Per tale motivo le interrogazioni possono essere annidate. n Clausola Base n SELECT “Lista di attributi” FROM “Elenco relazioni” WHERE “Condizione”

Esempi di query n SELECT Docente FROM Corsi WHERE Titolo=“Chimica” Qual’e’ il nome di tutti i docenti che insegnano chimica? corsi Codice 01 02 04 Titolo Docente Analisi Sempronio Bruni Chimica Verdi

Esempi di query Qual’e’ il nome e il cognome degli studenti con numero di matricola >7000 ? studenti Matricola 6554 8765 9283 3456 Cognome Pinco Neri Verdi Rossi Nome Pallino Paolo Luisa Maria Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978

Esempi di query n SELECT Cognome, Nome FROM Studenti WHERE Matricola <7000 Qual’e’ il nome e il cognome degli studenti con numero di matricola >7000 ? studenti Matricola 6554 8765 9283 3456 Cognome Pinco Neri Verdi Rossi Nome Pallino Paolo Luisa Maria Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978

Esempi di query n SELECT Studente FROM Esami WHERE Corso=01 AND Voto>27 Qual’e’ lo studente Che ha superato il corso 01 con voto >27 ? esami Studente Id 1135622 3456 1135623 3456 9283 1135624 1135623 6554 Voto 30 24 28 26 Corso 04 02 01 01

Join n Join: combinare le tuple di più tabelle i cui valori per attributi correlati soddisfano una condizione di confronto Il join di due relazioni è il sottoinsieme del loro prodotto cartesiano specificato dalla condizione di selezione Relazioni tra tabelle e Join n Le relazioni tra tabelle sono espresse da valori comuni di attributi correlati

Join: Example n SELECT Studenti. Nome, Studenti. Cognome FROM Studenti, Esami WHERE Studenti. Matricola=Esami. studenti AND Esami. corso=01 AND Esami. voto>27 studenti Matricola 6554 8765 9283 3456 esami Cognome Pinco Neri Verdi Rossi Nome Pallino Paolo Luisa Maria Studente Id 1135622 3456 1135623 3456 9283 1135624 1135623 6554 Data di nascita 05/12/1978 03/11/1976 12/11/1979 01/02/1978 Voto 30 24 28 26 Corso 04 02 01 01

Conclusioni

CONTROLLO DEI DATI: LE TRANSAZIONI Definizione n Una transazione è una sequenza di azioni di lettura e scrittura in memoria permanente e di elaborazioni di dati in memoria temporanea, con le seguenti proprietà: n Atomicità: Le transazioni che terminano prematuramente (aborted transactions) sono trattate dal sistema come se non fossero mai iniziate; pertanto eventuali loro effetti sulla base di dati sono annullati. n Consistenza: i vincoli vengono rispettati. n Serializzabilità (isolation): Nel caso di esecuzioni concorrenti di più transazioni, l’effetto complessivo è quello di una esecuzione seriale. n Persistenza (durability): Le modifiche sulla base di dati di una transazione terminata normalmente sono permanenti, cioè non sono alterabili da eventuali malfunzionamenti.

FUNZIONALITÀ DEI DBMS: MECCANISMI PER IL CONTROLLO DEI DATI n Una caratteristica molto importante dei DBMS è il tipo di meccanismi offerti per garantire le seguenti proprietà di una base di dati: n Integrità, sicurezza e affidabilità. n Integrità: mantenimento delle proprietà specificate in modo dochiarativo nello schema (vincoli d’integrità) n Sicurezza: protezione dei dati da usi non autorizzati n Affidabilità: protezione dei dati da malfunzionamenti hardware o software (fallimenti di transazione, di sistema e disastri) e da interferenze indesiderate dovute all’accesso concorrente ai dati da parte di più utenti.

RIEPILOGO DEI VANTAGGI DEI DBMS n Indipendenza dei dati n Recupero efficiente dei dati n Integrità e sicurezza dei dati n Accessi interattivi, concorrenti e protetti dai malfunzionamenti n Amministrazione dei dati n Riduzione dei tempi di sviluppo delle applicazioni n La riduzione dei costi della tecnologia e i possibili tipi di DBMS disponibili sul mercato facilitano la loro diffusione.
- Slides: 40