BASI di Dati: Fondamenti e modelli Maurizio Fermeglia [email protected] www.caslab.units.it Sistema Informatico porzione automatizzata del sistema informativo il sistema informatico è la parte del sistema informativo che gestisce informazioni per mezzo della tecnologia informatica. Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico Corso Di Basi di Dati 21 December, 2015 - slide 2 Gestione delle informazioni Nelle attività umane, le informazioni vengono gestite (registrate e scambiate) in forme diverse, a seconda delle necessità e capacità: idee informali linguaggio naturale (scritto o parlato, formale o colloquiale, in una lingua o in un’altra) disegni, grafici, schemi numeri codici (anche segreti) e su vari supporti, dalla memoria umana alla carta Ogni organizzazione ha bisogno di memorizzare e mantenere informazioni specifiche. Per esempio: Corso Di Basi di Dati Utenze telefoniche Conti correnti bancari Studenti iscritti a un corso di laurea Quotazioni di azioni nei mercati telematici 21 December, 2015 - slide 3 Gestione delle informazioni Nelle attività standardizzate dei sistemi informativi complessi, sono state introdotte col tempo forme di organizzazione e codifica delle informazioni. Ad esempio, nei servizi anagrafici si è iniziato con registrazioni discorsive e sono state poi introdotte informazioni via via più precise (e in un certo senso artificiali): nome e cognome; estremi anagrafici; codice fiscale I sistemi informativi organizzano e gestiscono le informazioni necessarie alle attività di un’organizzazione: Corso Di Basi di Dati Inizialmente non erano automatizzati (per esempio, gli archivi bancari) Informatica gestione automatica dei dati basi di dati Informazione memorizzata in modo rigoroso 21 December, 2015 - slide 4 Informazioni e dati Nei sistemi informatici (e non solo in essi), le informazioni vengono rappresentate in modo essenziale, spartano: attraverso i dati. informazione : notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere. dato : ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; (in informatica) elementi di informazione costituiti da simboli che debbono essere elaborati. (Vocabolario della lingua italiana, 1987) Corso Di Basi di Dati 21 December, 2015 - slide 5 Dati e informazioni Lun-Ven Sabato Festivo che cosa significano questi numeri? cartelli stradali, in Finlandia; sono orari ma la differenza? senza "interpretazione," il dato serve a ben poco Corso Di Basi di Dati 21 December, 2015 - slide 6 Dati e applicazioni I dati possono variare nel tempo (per esempio, importo conto corrente) Le modalità con cui i dati sono rappresentati in un sistema sono di solito stabili Le operazioni sui dati variano spesso (per esempio, ricerche) separare i dati dalle applicazioni che operano su essi 8 Corso Di Basi di Dati 21 December, 2015 - slide 8 Base di dati (accezione generica) collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione. (accezione specifica) collezione di dati gestita da un DBMS Corso Di Basi di Dati 21 December, 2015 - slide 9 Sistema di gestione di basi di dati DataBase Management System — DBMS Sistema (prodotto software) in grado di gestire collezioni di dati che siano (anche): grandi (di dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati) persistenti (con un periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano) condivise (utilizzate da applicazioni diverse) garantendo affidabilità (resistenza a malfunzionamenti hardware e software) e privatezza (con una disciplina e un controllo degli accessi). Come ogni prodotto informatico, un DBMS deve essere efficiente (utilizzando al meglio le risorse di spazio e tempo del sistema) ed efficace (rendendo produttive le attività dei suoi utilizzatori). Corso Di Basi di Dati 21 December, 2015 - slide 10 Condivisione Ogni organizzazione (specie se grande) è divisa in settori o comunque svolge diverse attività. A ciascun settore o attività corrisponde un (sotto-)sistema informativo (privato o porzione di un sistema più grande). Possono esistere sovrapposizioni fra i dati di interesse dei vari settori. Una base di dati è una risorsa integrata, condivisa fra i vari settori. Corso Di Basi di Dati 21 December, 2015 - slide 11 Condivisione (segue) L’integrazione e la condivisione permettono di ridurre la ridondanza (evitando ripetizioni) e, di conseguenza, le possibilità di incoerenza (o inconsistenza) fra i dati. Poiché la condivisione non è mai completa (o comunque non opportuna) i DBMS prevedono meccanismi di definizione della privatezza dei dati e di limitazioni all’accesso (autorizzazioni). La condivisione richiede un opportuno coordinamento degli accessi: controllo della concorrenza. Corso Di Basi di Dati 21 December, 2015 - slide 12 Efficienza Si misura (come in tutti i sistemi informatici) in termini di tempo di esecuzione (tempo di risposta) e spazio di memoria (principale e secondaria). I DBMS, a causa della varietà di funzioni, non sono necessariamente più efficienti dei file system. L’efficienza è il risultato della qualità del DBMS e delle applicazioni che lo utilizzano. Corso Di Basi di Dati 21 December, 2015 - slide 13 DBMS vs file system La gestione di insiemi di dati grandi e persistenti è possibile anche attraverso sistemi più semplici — gli ordinari file system dei sistemi operativi, che permettono di realizzare anche rudimentali forme di condivisione. Non esiste una linea netta di separazione fra DBMS e nonDBMS. I DBMS estendono le funzionalità dei file system, fornendo più servizi ed in maniera integrata (cfr. efficacia). I file system prevedono forme di condivisione, permettendo accessi contemporanei in lettura ed esclusivi in scrittura: se è in corso un’operazione di scrittura su un file, altri non possono accedere affatto al file. Nei DBMS, c’è maggiore flessibilità: si può accedere contemporaneamente a record diversi di uno stesso file o addirittura allo stesso record (in lettura). Corso Di Basi di Dati 21 December, 2015 - slide 14 DBMS vs file system (2) Nei programmi tradizionali che accedono a file, ogni programma contiene una descrizione della struttura del file stesso, con i conseguenti rischi di incoerenza fra le descrizioni (ripetute in ciascun programma) e i file stessi. Nei DBMS, esiste una porzione della base di dati (il catalogo o dizionario) che contiene una descrizione centralizzata dei dati, che può essere utilizzata dai vari programmi. Corso Di Basi di Dati 21 December, 2015 - slide 15 GESTIONE DI FILES Basati su File systems Logica di accesso ai dati contenuta nel codice (COBOL) Problemi di manutenzione Programma di Update Programma di Report File Dati Storico Programma di Controllo Corso Di Basi di Dati 21 December, 2015 - slide 16 Descrizioni dei dati nei DBMS Esistono descrizioni e rappresentazioni dei dati a livelli diversi, che permettono l’indipendenza dei dati dalla rappresentazione fisica: i programmi fanno riferimento alla struttura a livello più alto, e le rappresentazioni sottostanti possono essere modificate senza necessità di modifica dei programmi. Precisiamo attraverso il concetto di modello dei dati. Corso Di Basi di Dati 21 December, 2015 - slide 17 Modello dei dati insieme di costrutti utilizzati per organizzare i dati di interesse e descriverne la dinamica componente fondamentale: meccanismi di strutturazione (o costruttori di tipo) come nei linguaggi di programmazione esistono meccanismi che permettono di definire nuovi tipi, così ogni modello dei dati prevede alcuni costruttori ad esempio, il modello relazionale prevede il costruttore relazione, che permette di definire insiemi di record omogenei Corso Di Basi di Dati 21 December, 2015 - slide 20 Componenti di Data Base System DBS… Schemi: la struttura Istanze: i contenuti Dati disponibili su varie piattaforme hw monoutente o multi user dati contenuti in un singolo Data Base ma estendibili a più DB dati integrati eliminazione delle ridondanze dati su più tabelle dati condivisi condivisi da tanti utenti con accesso contemporaneo Hardware Corso Di Basi di Dati Dischi, I/O devices, CPU, RAM,.... 21 December, 2015 - slide 21 Personaggi e interpreti progettisti e realizzatori di DBMS progettisti della base di dati e amministratori della base di dati (DBA) progettisti e programmatori di applicazioni utenti utenti finali (terminalisti): eseguono applicazioni predefinite (transazioni) utenti casuali: eseguono operazioni non previste a priori, usando linguaggi interattivi Corso Di Basi di Dati 21 December, 2015 - slide 23 Database administrator (DBA) Persona o gruppo di persone responsabile del controllo centralizzato e della gestione del sistema, delle prestazioni, dell’affidabilità, delle autorizzazioni Le funzioni del DBA includono quelle di progettazione, anche se in progetti complessi ci possono essere distinzioni Corso Di Basi di Dati 21 December, 2015 - slide 24 Un Data Base è formato da DATI,DATI,DATI DatiPersistenti In contrapposizione ai dati transitori dati di Input: contenuti in una maschera dati di output: risposta del sistema DEFINIZIONE: Il Data Base è una collezione di dati persistenti che è usata dal sistema di una certa azienda (organizzazione tecnica, commerciale, scientifica) Corso Di Basi di Dati 21 December, 2015 - slide 25 Quindi … Data base I dati solo i dati e null’altro che i dati Valore per l’azienda Data Base Management System Il Sw che gestisce i dati Detto anche Motore Data Base Diversi vendors: IBM, Oracle, Sybase, Miscrosoft, … Data base system DB + DBMS Data bank Corso Di Basi di Dati Usato a sproposito …. Sinonimo di Data Base system Indica anche banche non necessariamente informatizzate 21 December, 2015 - slide 26 BENEFICI DELL’ USO DI DATA BASE Riduzione delle informazioni ridondanti Eliminando I files privati Eliminando I doppiono (Forme normali) Consistenza della informazioni Conseguenza del punto precedente (ridondanza) Se c’è ridondanza, allora il DB deve garantire consistenza Dati condivisi E’ possibile imporre standard aziendali (DBA e DA li impongono Sicurezza Integrità Corso Di Basi di Dati Legata alla ridondanza e consistenza Fondamentale in ambiente multiutente 21 December, 2015 - slide 28 VANTAGGI DELL’USO DI UN DATA BASE Caso dell’utente singolo Compattezza delle informazioni Velocità di estrazione Manutenzione dei files Possibilità di calcolo Caso della Multi utenza Stessi vantaggi di cui sopra esaltati dal fatto che il DB ha: Dimensioni maggiori Maggiore complessità Corso Di Basi di Dati Controllo centralizzato Consistenza ed integrità dei dati Sicurezza e riservatezza 21 December, 2015 - slide 29 Vantaggi e svantaggi di un DBMS Vantaggi I dati sono considerati come un risorsa comune La base di dati fornisce un modello unificato del business Permette un controllo centralizzato dei dati permettendo standardizzazione ed economie di scala Riduzione di ridondanze ed inconsistenze Indipendenza dei dati Svantaggi Corso Di Basi di Dati Costo e la complessità - investimenti Potrebbero fornire servizi ridondanti e non richiesti effettivamente 21 December, 2015 - slide 30 MA IL BENEFICIO MAGGIORE E’ L’ INDIPENDENZA DEI DATI Nei vecchi sistemi il modo in cui venivano organizzati i dati e le tecniche per accedervi facevano parte della logica e del codice del programma. Schema e istanza In ogni base di dati esistono: lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura (aspetto intensionale) es.: le intestazioni delle tabelle l’istanza, i valori attuali, che possono cambiare anche molto rapidamente (aspetto estensionale) es.: il “corpo” di ciascuna tabella Corso Di Basi di Dati 21 December, 2015 - slide 32 Due tipi (principali) di modelli modelli logici modelli concettuali Corso Di Basi di Dati 21 December, 2015 - slide 33 Modelli logici Adottati nei DBMS esistenti per l’organizzazione dei dati utilizzati dai programmi indipendenti dalle strutture fisiche esempi: relazionale, reticolare, gerarchico, a oggetti, basato su XML Corso Di Basi di Dati 21 December, 2015 - slide 34 Modelli concettuali Permettono di rappresentare i dati in modo indipendente da ogni sistema cercano di descrivere i concetti del mondo reale sono utilizzati nelle fasi preliminari di progettazione Il più diffuso è il modello Entity-Relationship Corso Di Basi di Dati 21 December, 2015 - slide 35 Architettura (semplificata) di un DBMS utente Schema logico Schema interno BD Corso Di Basi di Dati 21 December, 2015 - slide 36 Architettura semplificata di un DBMS: schemi schema logico: descrizione della base di dati nel modello logico (ad esempio, la struttura della tabella) schema interno (o fisico): rappresentazione dello schema logico per mezzo di strutture memorizzazione (file; ad esempio, record con puntatori, ordinati in un certo modo) Corso Di Basi di Dati 21 December, 2015 - slide 37 Indipendenza dei dati Il livello logico è indipendente da quello fisico: una tabella è utilizzata nello stesso modo qualunque sia la sua realizzazione fisica (che può anche cambiare nel tempo) Perciò in questo corso vedremo solo il livello logico e non quello fisico Corso Di Basi di Dati 21 December, 2015 - slide 38 INDIPENDENZA DEI DATI Esiste il concetto di VISTA del Data Base L’amministratore del DB può modificare la struttura interna dei dati senza toccare la visibilità esterna allo stesso IMMUNITA’ DELLE APPLICAZIONI A MODIFICHE DI STRUTTURA Corso Di Basi di Dati 21 December, 2015 - slide 39 Una vista Corsi Corso Basi di dati Sistemi Reti Controlli Docente Rossi Neri Bruni Bruni Aula DS3 N3 N3 G Aule Nome DS1 N3 G Edificio Ex-OMI Ex-OMI Pincherle Piano Terra Terra Primo CorsiSedi Corso Sistemi Reti Controlli Corso Di Basi di Dati Aula N3 N3 G Edificio Ex-OMI Ex-OMI Pincherle Piano Terra Terra Primo 21 December, 2015 - slide 40 Architettura standard (ANSI/SPARC) tre livelli per DBMS utente utente Schema esterno utente Schema esterno utente utente Schema esterno Schema logico Schema interno BD Corso Di Basi di Dati 21 December, 2015 - slide 41 Architettura ANSI/SPARC: schemi schema logico: descrizione dell’intera base di dati nel modello logico “principale” del DBMS schema esterno: descrizione di parte della base di dati in un modello logico (“viste” parziali, derivate, anche in modelli diversi) schema fisico: rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione. Corso Di Basi di Dati 21 December, 2015 - slide 42 Indipendenza dei dati conseguenza della articolazione in livelli: l’accesso avviene solo tramite il livello esterno (che può coincidere con il livello logico); due forme: fisica: il livello logico e quello esterno sono indipendenti da quello fisico; una relazione è utilizzata nello stesso modo qualunque sia la sua realizzazione fisica (che può anche cambiare nel tempo senza che debbano essere modificate le forme di utilizzo) logica: il livello esterno è indipendente da quello logico aggiunte o modifiche alle viste non richiedono modifiche al livello logico; modifiche allo schema logico che lascino inalterato lo schema esterno sono trasparenti Corso Di Basi di Dati 21 December, 2015 - slide 43 TIPI DI SISTEMI DI BASI DI DATI Sistemi basati sulla gestione di Files (FMS) Modelli Gerarchici Modelli Reticolari (Network) Modelli Relazionali Corso Di Basi di Dati 21 December, 2015 - slide 44 Modelli a Oggetti >> Un po’ di storia Un po’ di Storia: Anni ‘70 Anni ’70 DBMS gerarchici DBMS reticolari Modello di dati basato su alberi o grafi Dipendenza dal modello fisico Interrogazioni Corso Di Basi di Dati navigazioni del grafo 21 December, 2015 - slide 45 Modelli a Oggetti >> Un po’ di storia Un po’ di Storia: Anni ‘80 Anni ’80 Codd “A Relational Model for Large Shared Data Banks”, CACM, giugno 1970 DBMS relazionali Modello semplice ed elegante Caratteristiche del modello Corso Di Basi di Dati legami tra i dati basati sui valori I forma normale (domini elementari) indipendenza rispetto al modello fisico 21 December, 2015 - slide 46 Modelli a Oggetti >> Un po’ di storia Un po’ di Storia: Anni ‘80 Ottime prestazioni Servizi avanzati concorrenza, affidabilità, sicurezza Standard SQL-89, SQL-92 “intergalactic dataspeak” Architettura a tre livelli schemi esterni, schema logico, schema fisico Grande successo nei sistemi informativi Corso Di Basi di Dati dati gestionali 21 December, 2015 - slide 47 Modelli a Oggetti >> Un po’ di storia Un po’ di Storia Anni ’90 nuove applicazioni GIS, CAD, dati multimediali, documenti oggetti con struttura complessa Il mondo è fatto di oggetti, non di tabelle Il “garage” relazionale Corso Di Basi di Dati “per conservare la tua auto ti costringe a farla a pezzi e conservare ciascun pezzo in un cassettino” 21 December, 2015 - slide 48 Modelli a Oggetti >> Un po’ di storia Un po’ di Storia Tecnologia a oggetti sistema di tipi ricco classi di oggetti basati sui tipi ereditarietà e polimorfismo Tecnologia di successo nei linguaggi di programmazione (C++, Java) Sistemi per Basi di Dati Orientati agli Ogg. la soluzione finale ? NoSQL: NotOnly SQL Corso Di Basi di Dati Applicazioni: social networks 21 December, 2015 - slide 49 Modelli a Oggetti >> Un po’ di storia Un po’ di Storia Moltissima ricerca (e risultati interessanti) DBMS a Oggetti Commerciali O2, Objectstore, GemStone Standard ODMG-93 linguaggio OQL Scarso successo commerciale (nicchia) Corso Di Basi di Dati differenze notevoli tra i prodotti dipendenza dal linguaggio (Java ?) prestazioni inferiori 21 December, 2015 - slide 50 Modelli a Oggetti >> Un po’ di storia Complessità dei tipi di dato I Quadranti di Stonebraker DBMS Orientato agli Oggetti DBMS Relazionale a Oggetti Linguaggio di prog. + DBMS Relazionale File System Complessità delle interrogazioni Corso Di Basi di Dati 21 December, 2015 - slide 51 GESTIONE DI FILES Basati su File systems Logica di accesso ai dati contenuta nel codice (COBOL) Problemi di manutenzione Programma di Update Programma di Report File Dati Storico Programma di Controllo Corso Di Basi di Dati 21 December, 2015 - slide 52 DATA BASE GERARCHICI Struttura gerarchica dei dati (tipico di un file system) Utilizzato nelle industrie di manufatti (Automobili) Introduzione della relazione Padre-Figlio (puntatori fisici) Vantaggi Struttura semplice Eccellente per relazioni padre - figlio (A è parte di B oppure A contiene B) Performance: movimenti rapidi in virtù della struttura gerarchica Automobile Motore Porta sinistra Finestrino Corso Di Basi di Dati Carrozzeria Porta destra Motore elettrico Chassis Tetto Cofano Maniglia 21 December, 2015 - slide 53 DATA BASE RETICOLARI Modello gerarchico è poco flessibile (gestione ordini) Un record partecipa a relazioni padre-figlio multiple Il programmatore naviga nel data base dando anche le direzioni di movimento (ancora puntatori fisici) Vantaggi: Flessibilità e Performance Svantaggi: certa rigidezza dovuta alle relazioni definite a priori e necessità di aggiornamento del SW Clienti Prodotti Ordini Corso Di Basi di Dati 21 December, 2015 - slide 54 DATA BASE RELAZIONALI Liberarsi dei puntatori fisici