1 / 40

Introduzione alle Basi di Dati

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

Download Presentation

Introduzione alle Basi di Dati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduzione alleBasi di Dati

  2. Overview

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

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

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

  6. Esempio di Tabella Nomi di Attributi Schema tuple Notazione: La tabella Rubrica è anche indicata con la notazione: Rubrica (Nome, Cognome, Telefono, …)

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

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

  9. Relazioni e Attributi: esempio…

  10. Modello relazionale

  11. 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)

  12. 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à

  13. Esempio di relazione • Persone= {Paolo, Luca,Mario} • Città={Torino,Roma} • PersonexCittà • Vive_a

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

  15. Vincoli

  16. 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)

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

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

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

  20. 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…).

  21. Funzionalità DBMS

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

  23. Creazione tabelle:Chiavi primarie • CREATE TABLE Studenti ( Matricola integer,Cognome string, Nome string, Data di nascita integer, PrimaryKey (Matricola); );

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

  25. Creazione tabelle:Chiavi primarie • CREATE TABLE Corsi ( Codice integer,Titolo string, Docente string, PrimaryKey (Codice); );

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

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

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

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

  30. 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”

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

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

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

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

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

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

  37. Conclusioni

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

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

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

More Related