Introduzione alle Basi di Dati

40
Introduzione alle Basi di Dati

description

Introduzione alle Basi di Dati. Overview. Informazione = contenuto + struttura. Informazione non strutturata Molto contenuto, poca struttura Un romanzo e il suo indice (magari solo capitoli numerati) Informazione strutturata Molta struttura, contenuto rigidamente codificato - PowerPoint PPT Presentation

Transcript of Introduzione alle Basi di Dati

Page 1: Introduzione alle Basi di Dati

Introduzione alleBasi di Dati

Page 2: Introduzione alle Basi di Dati

Overview

Page 3: Introduzione alle Basi di Dati

Informazione = contenuto + struttura Informazione non strutturata

Molto contenuto, poca struttura Un romanzo e il suo indice (magari

solo capitoli numerati) Informazione strutturata

Molta struttura, contenuto rigidamente codificato

I sistemi informativi delle organizzazioni, le basi di dati

Page 4: Introduzione alle Basi di Dati

DBMS (database management system)

Obiettivo: gestione strutturata di dati, organizzati in modo omogeneo.

Base di dati: Collezione di dati organizzati in modo

coerente (un insieme casuale di dati non è una base di dati !)

Modella alcuni aspetti del mondo reale Costruito con funzionalità ben precise,

note fin dall’inizio della progettazione.

Page 5: Introduzione alle Basi di Dati

Basi di dati: operazioni

Definizione della base di dati quali informazioni (struttura) quali relazioni tra le informazioni

Manipolazione inserimento di dati cancellazione di dati aggiornamento (update) interrogazione

Protezione e sicurezza dei dati

Page 6: Introduzione alle Basi di Dati

Esempio di Tabella

Nome Cognome

Telefono

Mario Rossi 050 90…

Luigi Bianchi 06 499…

Guido La Vespa

02 009…

Nomi di AttributiSchema

tuple

Notazione:La tabella Rubrica è anche indicata con la notazione:

Rubrica (Nome, Cognome, Telefono, …)

Page 7: Introduzione alle Basi di Dati

In ogni modello esistono

Lo schema: la descrizione della struttura stabile nel tempo

L‘istanza: i valori (cioè i dati) variabile nel tempo

Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Page 8: Introduzione alle Basi di Dati

Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente01 Analisi Sempronio02 Chimica Bruni04 Chimica Verdi

corsi

Studente Voto Corso3456 30 043456 24 029283 28 01

esami

6554 26 01

Relazioni e Attributi: esempio

Page 9: Introduzione alle Basi di Dati

Relazioni e Attributi: esempio…

Page 10: Introduzione alle Basi di Dati

Modello relazionale

Page 11: Introduzione alle Basi di Dati

Modello relazionale dei dati

i dati sono organizzati in “tabelle”

la tabella è un insieme di “record” (ennuple) con un insieme di attributi di tipi opportuni (numeri, stringhe,

date …) i dati in tabelle diverse sono

correlati sulla base dei valori (chiavi)

Page 12: Introduzione alle Basi di Dati

Modello relazionale

Relazione su due insiemi A e B sottoinsieme del prodotto cartesiano A x B

Esempio sposato_con incluso in

Persone x Persone figlio_di incluso in

Persone x Persone vive_a incluso in

Persone x Città

Page 13: Introduzione alle Basi di Dati

Esempio di relazione

Persone= {Paolo, Luca,Mario} Città={Torino,Roma}

Persone

Città

Paolo Torino

Luca Roma

PersonexCittà Vive_aPersone Città

Paolo Torino

Paolo Roma

Luca Torino

Luca Roma

Page 14: Introduzione alle Basi di Dati

Relazioni e Attributi

Attributi: nomi che specificano un ruolo in una relazione, esempi: sposato_con(Marito, Moglie) figlio_di(Figlio, Genitore) vive_a(Nome,Citta,Provincia) libro(N.Inv, Autore, Titolo,

Anno_edizione, Casa_editrice, Collocazione)

Gli attributi devono avere nomi differenti

Page 15: Introduzione alle Basi di Dati

Vincoli

Page 16: Introduzione alle Basi di Dati

Vincoli sulle relazioni

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 vincoli di tupla: valori di attributi

correlati in una tupla vincoli di integrità valori di attributi

in tuple diverse (anche in relazioni diverse)

Page 17: Introduzione alle Basi di Dati

Vincoli di dominio

vincoli sui valori dei singoli attributi (vincoli di dominio), es: dato ESAMI(Studente,Voto,

Lode,Corso) deve essere: Voto >=18 AND Voto <=30

Vincoli sul valore di un attributo data

Page 18: Introduzione alle Basi di Dati

Vincoli di tupla

vincoli sui valori di attributi correlati, es Data la relazione ESAMI come

prima deve essere: not (Lode = Yes) OR Voto = 30

equivalente a Lode= No OR Voto = 30

Data la relazione PAGAMENTI(Data,Importo,Ritenute,Netto)deve essere:

Netto = Importo - Ritenute

Page 19: Introduzione alle Basi di Dati

Esempio complesso di vincoli

Supponiamo che STUDENTE contenga anche gli attributi

Borsa di Studio: valori {Yes, No} Reddito (della famiglia): euro Residente (nella città sede univ.): {Yes,

No} Uno studente ha diritto ad una borsa

se: ha una media >= 27 e un reddito <=

20000,Oppure non è residente e ha una media >= 25 e

un reddito <=25000

Page 20: Introduzione alle Basi di Dati

Relazioni tra tabelle

In una base di dati relazionale le tabelle sono collegate tra loro tramite attributi comuniEsempio: Il collegamento tra la relazione LIBRI e la

relazione CASE_EDITRICI può essere espressa mediante l’ attributo “Numero di inventario”.

Uso di chiavi primarie per evitare replicazione di dati.

Tabelle organizzate per contenere dati omogenei di entità di informazioni ritenute interessanti (Persone, Comuni…).

Page 21: Introduzione alle Basi di Dati

Funzionalità DBMS

Page 22: Introduzione alle Basi di Dati

Funzionalità DBMS

Funzioni per: definizione della base di dati inserimento / rimozione

/aggiornamento di informazioni deve soddisfare i vincoli!

Interrogazione

Page 23: Introduzione alle Basi di Dati

Creazione tabelle:Chiavi primarie

CREATE TABLE Studenti (Matricola integer,Cognome string, Nome string, Data di nascita integer, Primary Key (Matricola); );

Page 24: Introduzione alle Basi di Dati

Matricola Cognome Nome Data di nascitastudenti

Creazione TabelleChiavi primarie: esempio

Page 25: Introduzione alle Basi di Dati

Creazione tabelle:Chiavi primarie

CREATE TABLE Corsi (Codice integer,Titolo string, Docente string, Primary Key (Codice); );

Page 26: Introduzione alle Basi di Dati

Matricola Cognome Nome Data di nascitastudenti

Codice Titolo Docentecorsi

Creazione TabelleChiavi primarie: esempio

Page 27: Introduzione alle Basi di Dati

Creazione tabelle:Chiavi primarie e chiavi esterne

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)););

Page 28: Introduzione alle Basi di Dati

Matricola Cognome Nome Data di nascitastudenti

Codice Titolo Docentecorsi

Studente Voto Corsoesami

Creazione TabelleChiavi esterne: esempio

Id

Page 29: Introduzione alle Basi di Dati

Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Codice Titolo Docente01 Analisi Sempronio02 Chimica Bruni04 Chimica Verdi

corsi

Studente Voto Corso3456 30 043456 24 029283 28 01

esami

6554 26 01

Inserzione dati: esempio

Id1135622

113562311356241135623

Page 30: Introduzione alle Basi di Dati

Interrogazioni

Linguaggio SQL Produce come risultato una tabella Agisce su insiemi (di tuple) e

restituisce insiemi (di tuple). Per tale motivo le interrogazioni

possono essere annidate. Clausola Base

SELECT “Lista di attributi”FROM “Elenco relazioni”WHERE “Condizione”

Page 31: Introduzione alle Basi di Dati

Esempi di query

SELECT DocenteFROM CorsiWHERE Titolo=“Chimica”

Docente01 Analisi Sempronio

Bruni

Codice Titolo

02 Chimica04 Chimica Verdi

corsi

Qual’e’ il nome di tutti i docenti che insegnano chimica?

Page 32: Introduzione alle Basi di Dati

Esempi di query

Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/1978

3456 Rossi Maria 01/02/1978

8765 Neri Paolo 03/11/19769283 Verdi Luisa 12/11/1979

studenti

Qual’e’ il nome e il cognome degli studenti

con numero di matricola >7000 ?

Page 33: Introduzione alle Basi di Dati

Esempi di query

SELECT Cognome, NomeFROM StudentiWHERE Matricola <7000

Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/1978

3456 Rossi Maria 01/02/1978

8765 Neri Paolo 03/11/19769283 Verdi Luisa 12/11/1979

studenti

Qual’e’ il nome e il cognome degli studenti

con numero di matricola >7000 ?

Page 34: Introduzione alle Basi di Dati

Esempi di query

SELECT StudenteFROM EsamiWHERE Corso=01

AND Voto>27

Studente

9283

esami3456 30 043456 24 02

1135622

1135623

Voto Corso

28 01

Id

11356246554 26 011135623

Qual’e’ lo studenteChe ha superato il corso 01

con voto >27 ?

Page 35: Introduzione alle Basi di Dati

Join

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 Le relazioni tra tabelle sono espresse da

valori comuni di attributi correlati

Page 36: Introduzione alle Basi di Dati

Join: Example

SELECT Studenti.Nome, Studenti.CognomeFROM Studenti, EsamiWHERE Studenti.Matricola=Esami.studenti

AND Esami.corso=01 AND Esami.voto>27

Matricola Cognome Nome Data di nascita6554 Pinco Pallino 05/12/19788765 Neri Paolo 03/11/1976

3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979

studenti

Studente Voto Corso3456 30 043456 24 029283 28 01

esami

6554 26 01

Id1135622

113562311356241135623

Page 37: Introduzione alle Basi di Dati

Conclusioni

Page 38: Introduzione alle Basi di Dati

CONTROLLO DEI DATI: LE TRANSAZIONIDefinizione 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à: 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.

Consistenza: i vincoli vengono rispettati. Serializzabilità (isolation): Nel caso di esecuzioni

concorrenti di più transazioni, l’effetto complessivo è quello di una esecuzione seriale.

Persistenza (durability): Le modifiche sulla base di dati di una transazione terminata normalmente sono permanenti, cioè non sono alterabili da eventuali malfunzionamenti.

Page 39: Introduzione alle Basi di Dati

FUNZIONALITÀ DEI DBMS:MECCANISMI PER IL CONTROLLO DEI DATI

Una caratteristica molto importante dei DBMS è il tipo di meccanismi offerti per garantire le seguenti proprietà di una base di dati: Integrità, sicurezza e affidabilità.

Integrità: mantenimento delle proprietà

specificate in modo dochiarativo nello

schema (vincoli d’integrità) Sicurezza: protezione dei dati da usi non

autorizzati 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.

Page 40: Introduzione alle Basi di Dati

RIEPILOGO DEI VANTAGGI DEI DBMSIndipendenza dei datiRecupero efficiente dei dati Integrità e sicurezza dei datiAccessi interattivi, concorrenti e

protetti dai malfunzionamenti Amministrazione dei datiRiduzione dei tempi di sviluppo delle

applicazioni La riduzione dei costi della tecnologia

e i possibili tipi di DBMS disponibili sul mercato facilitano la loro diffusione.