410 likes | 516 Views
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
E N D
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
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.
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
Esempio di Tabella Nomi di Attributi Schema tuple Notazione: La tabella Rubrica è anche indicata con la notazione: Rubrica (Nome, Cognome, Telefono, …)
studenti Matricola Cognome Nome Data di nascita 6554 9283 3456 8765 Pinco Neri Verdi Rossi Paolo Pallino Maria Luisa 03/11/1976 05/12/1978 01/02/1978 12/11/1979 In ogni modello esistono • Lo schema: la descrizione della struttura • stabile nel tempo • L‘istanza: i valori (cioè i dati) • variabile nel tempo
studenti Matricola Cognome Nome Data di nascita esami Studente Voto Corso 3456 30 04 6554 9283 8765 3456 Verdi Neri Rossi Pinco Pallino Luisa Maria Paolo 01/02/1978 05/12/1978 03/11/1976 12/11/1979 3456 24 02 9283 28 01 6554 26 01 corsi Codice Titolo Docente 01 Analisi Sempronio 02 Chimica Bruni 04 Chimica Verdi Relazioni e Attributi: esempio
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)
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à
Esempio di relazione • Persone= {Paolo, Luca,Mario} • Città={Torino,Roma} • PersonexCittà • Vive_a
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
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)
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
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
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
Relazioni tra tabelle • In una base di dati relazionale le tabelle sono collegate tra loro tramite attributi comuni Esempio: • 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…).
Funzionalità DBMS • Funzioni per: • definizione della base di dati • inserimento / rimozione /aggiornamento di informazioni • deve soddisfare i vincoli! • Interrogazione
Creazione tabelle:Chiavi primarie • CREATE TABLE Studenti ( Matricola integer,Cognome string, Nome string, Data di nascita integer, PrimaryKey (Matricola); );
Creazione Tabelle Chiavi primarie: esempio studenti Matricola Cognome Nome Data di nascita
Creazione tabelle:Chiavi primarie • CREATE TABLE Corsi ( Codice integer,Titolo string, Docente string, PrimaryKey (Codice); );
Creazione Tabelle Chiavi primarie: esempio studenti Matricola Cognome Nome Data di nascita corsi Codice Titolo Docente
Creazione tabelle:Chiavi primarie e chiavi esterne • CREATE TABLE Esami ( ID integer,Studente integer, Voto integer, Corso integer, PrimaryKey (ID), ForeignKey (Studente) references Studenti(Matricola),ForeignKey (Corso) references Corsi(Codice)); );
Creazione Tabelle Chiavi esterne: esempio studenti Matricola Cognome Nome Data di nascita Studente Voto Corso esami Id corsi Codice Titolo Docente
studenti Matricola Cognome Nome Data di nascita 6554 9283 8765 3456 Verdi Rossi Neri Pinco Pallino Luisa Maria Paolo 03/11/1976 12/11/1979 01/02/1978 05/12/1978 corsi Codice Titolo Docente 01 Analisi Sempronio 02 Chimica Bruni 04 Chimica Verdi Inserzione dati: esempio esami Studente Voto Corso Id 1135622 3456 30 04 1135623 3456 24 02 9283 28 01 1135624 1135623 6554 26 01
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”
Esempi di query • SELECT DocenteFROM CorsiWHERE Titolo=“Chimica” Qual’e’ il nome di tutti i docenti che insegnano chimica? corsi Codice Titolo Docente 01 Analisi Sempronio 02 Chimica Bruni 04 Chimica Verdi
9283 8765 Verdi Neri Luisa Paolo 12/11/1979 03/11/1976 Esempi di query Qual’e’ il nome e il cognome degli studenti con numero di matricola >7000 ? studenti Matricola Cognome Nome Data di nascita 6554 Pinco Pallino 05/12/1978 3456 Rossi Maria 01/02/1978
9283 8765 Verdi Neri Luisa Paolo 12/11/1979 03/11/1976 Esempi di query • SELECT Cognome, NomeFROM StudentiWHERE Matricola <7000 Qual’e’ il nome e il cognome degli studenti con numero di matricola >7000 ? studenti Matricola Cognome Nome Data di nascita 6554 Pinco Pallino 05/12/1978 3456 Rossi Maria 01/02/1978
Esempi di query • SELECT StudenteFROM EsamiWHERE Corso=01 AND Voto>27 Qual’e’ lo studente Che ha superato il corso 01 con voto >27 ? Voto Corso Id 1135622 3456 30 04 esami Studente 1135623 3456 24 02 28 01 1135624 1135623 6554 26 01 9283
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
8765 3456 6554 Rossi Pinco Neri Maria Pallino Paolo 05/12/1978 03/11/1976 01/02/1978 Join: Example • SELECT Studenti.Nome, Studenti.CognomeFROM Studenti, EsamiWHERE Studenti.Matricola=Esami.studenti AND Esami.corso=01 AND Esami.voto>27 studenti Matricola Cognome Nome Data di nascita 9283 Verdi Luisa 12/11/1979 esami Studente Voto Corso Id 1135622 3456 30 04 1135623 3456 24 02 9283 28 01 1135624 1135623 6554 26 01
CONTROLLO DEI DATI: LE TRANSAZIONI Definizione • 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.
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.
RIEPILOGO DEI VANTAGGI DEI DBMS • Indipendenza dei dati • Recupero efficiente dei dati • Integrità e sicurezza dei dati • Accessi interattivi, concorrenti e protetti dai malfunzionamenti • Amministrazione dei dati • Riduzione 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.