INTRODUZIONE • • • • • • Accesso ai dati tramite DBMS Livelli di astrazione Modello dei dati: schema / istanza / metadati Alcuni modelli dei dati Linguaggi per DBMS Architettura di base di un DBMS cesarini - BDSI introduzione 1 Data Base Management Systems evoluzione tecniche gestione dati Applicazione 1 Applicazione k ….. SO archivio1 cesarini - BDSI archiviok introduzione 2 Gestione dati senza DBMS • Ogni applicazione gestisce i propri dati • Archivio1 rappresenta l’insieme dei file gestiti da Applicazione1, … • Se due applicazioni fanno riferimento agli stessi dati, questi sono duplicati • Le applicazioni sono sviluppate con linguaggi di programmazione: COBOL, C, C++, … • I dati sono gestiti con le modalità offerte dal sist.op. cesarini - BDSI introduzione 3 Data Base Management Systems evoluzione tecniche gestione dati applicazione1 applicazionek vista 1 vista k DBMS S. O. cesarini - BDSI Schema logico dei dati Data Base introduzione 4 Gestione dati con DBMS • • • • Data base: tutte le applicazioni fanno riferimento alla stessa collezione di dati memorizzata su disco Schema logico dei dati: tramite il DBMS è possibile “vedere” i dati in modo astratto, per es. organizzati in tabelle, indipendentemente dai file in cui sono archiviati Vista: di tutti i dati che il DBMS gestisce, una applicazione può “vederne” solo una parte, magari riorganizzata secondo propri criteri, per es. sottotabelle o tabelle con altre colonne appositamente calcolate Le applicazioni sono costruite con le modalità offerte dal DBMS cesarini - BDSI introduzione 5 Obbiettivi di un DBMS • Modalità di accesso generale ad archivi integrati security • Sicurezza dei dati – meccanismi di protezione (es. chiavi di accesso) • Integrità dei dati integrity – vincoli di consistenza (condizioni che devono essere soddisfatte) • Accesso concorrente ai dati concurrency – modifiche in mutua esclusione • Ripristino dei dati recovery – backup (salvataggio) – giornale, log (diario di tutte le modifiche fatte a partire dall’ultimo backup) cesarini - BDSI introduzione 6 Livelli di astrazione CODASYL Data Base Task Group 1971 Applic 1 Vista 1 Applic N …... Vista N Data Base livello esterno livello logico logico livello fisico Data Base cesarini - BDSI fisico introduzione 7 Livelli di astrazione • Livello logico gerarchico, reticolare, relazionale, a oggetti… – modello di dati – schema logico: descrizione della struttura dei dati secondo il modello utilizzato – es. modello relazionale: descrizione della struttura delle tabelle • Livello fisico – schema fisico, descrizione dei file utilizzati per la memorizzazione dei dati – esempio: descrizione degli indici costruiti • Livello esterno – vista (sottoschema): sottoparte del database logico o astrazione di una sottoparte • Il livello esterno può coincidere con il livello logico – la vista non è stata definita – l’applicazione vede direttamente lo schema logico (es. tutte le tabelle così come sono state originariamente definite) cesarini - BDSI introduzione 8 Livelli di astrazione indipendenza logica e fisica dei dati • Indipendenza fisica – deriva dall’uso di un modello logico dei dati – gli utenti e le applicazioni interagiscono con il data base secondo la sua struttura logica – è possibile cambiare la struttura fisica senza modificare l’applicazione • ad es. è possibile aggiungere o togliere un indice al data base senza cambiare il programma di interrogazione dei dati • Indipendenza logica – deriva dall’uso delle viste – se un’applicazione interagisce con il data base attraverso le viste è possibile modificare il livello logico senza modificare l’applicazione purché le viste rimangano inalterate • Ad es. è possibile suddividere una tabella in due tabelle purché per l’applicazione sia definita una vista che vede una unica tabella cesarini - BDSI introduzione 9 Modello dei dati • modello dei dati – insieme di concetti per organizzare i dati di interesse e descriverne la struttura • es: concetto di tabella (con tutte le sue caratteristiche) nel modello relazionale – insieme di costruttori che permettono di definire nuovi tipi a partire da tipi elementari • schema – descrizione della organizzazione dei dati di interesse in accordo al modello considerato • es: descrizione delle tabelle che vogliamo usare in accordo al modello relazionale • istanza – contenuto corrente della base di dati • es: contenuto effettivo delle tabelle cesarini - BDSI introduzione 10 Modello dei dati • dizionario dei dati / metadati – il sistema mantiene un catalogo di tutte le strutture definite nel data base con le loro caratteristiche • es: elenco di tutte le tabelle definite, ognuna con i nomi delle colonne che la compongono • es: elenco di tutti gli indici definiti – il dizionario è strutturato secondo il modello logico • es: strutturato in tabelle (tabella che contiene tutti i nomi delle tabelle definite, …) – Il dizionario è accessibile con gli stessi strumenti con cui si accede ai dati • es: con una query SQL si può avere l’elenco dei nomi delle tabelle definite cesarini - BDSI introduzione 11 Modelli dei dati • modello gerarchico basato su alberi – primi DBMS anni ‘60 • modello reticolare basato su grafi – CODASYL 1973 – nasce come estensione del COBOL • modello relazionale Relational DBMS primi DBMS commerciali inizi ‘80 – Codd 1970 – relazione: insieme di record (tuple) a struttura fissa – tabelle e relazioni tra tabelle (vincoli integrità referenziale) cesarini - BDSI introduzione 12 Modelli dei dati • modelli semantici – – – – fine anni ‘70 vogliono superare i limiti del modello relazionale non DBMS commerciali modello Entity Relationship • Chen 1976 • progettazione concettuale di basi di dati cesarini - BDSI introduzione 13 Modelli dei dati • modello a oggetti Object Oriented DBMS seconda metà anni ‘80 1989: Bancilhon et al. “manifesto delle basi dati a oggetti” oggetti: identificatore, valore, metodi associati valore: costruttori di insieme e di tupla applicati ricorsivamente a partire da valori base e oggetti – classe, tipo della classe, sottoclasse, ereditarietà – Cattel et al “The Object Data Base Standard: ODMG 2.0” 1997 • Object Definition Language, Object Query Language – – – – cesarini - BDSI introduzione 14 Modelli dei dati • modello relazionale a oggetti ORDBMS – integrazione di alcuni aspetti del mondo a oggetti nel modello relazionale – RDBMS: elemento della tabella di tipo elementare – ORDBMS: definizione di tipi astratti • tabelle di tabelle, etc. – identificatore, gerarchie, ereditarietà, funzioni – Stonebraker et al. “ Third Generation Database System Manifesto” 1990 – SQL-3 compatibile con SQL-2 cesarini - BDSI introduzione 15 Modelli dei dati • dati semistrutturati – dati autodescriventi <persona><nome>Francesca Cesarini<fine nome> <professione>professore associato<fine professione>…<fine persona> dati rappresentati da grafi strutture senza vincoli nel nesting non si parla di schema e istanza flusso di byte che descrivono contestualmente i dati e il loro significato (la loro struttura) - XML – trasferimento di dati su WEB – – – – cesarini - BDSI introduzione 16 Modelli dei dati • XML Extensible Markup Language – W3C (World Wide Web Consortium) • http://www.w3.org – Document Type Definition • descrizione delle regole da seguire nel generare i documenti • si riprende debolmente il concetto di schema – proposte pubblicate da w3C • XML - schema linguaggio di interrogazione • XML - QL – mapping XML ↔ RDBMS • strumenti che consentono di trasformare dati XML in tabelle e viceversa cesarini - BDSI introduzione 17 Linguaggi per basi di dati • Data Definition Language DDL – definizione dello schema logico – definizione schema fisico, schema esterno (viste) – linguaggio dichiarativo • es: SQL • Data Manipulation Language DML – inserimento, modifica, cancellazione, reperimento di dati – opera sulla istanza di una base di dati – query language • es: SQL (è un linguaggio che offre le due funzionalità) cesarini - BDSI introduzione 18 Linguaggi per basi di dati • linguaggio ospite -host language – es. linguaggio C con possibilità di inserire nei programmi comandi SQL dati locali data base riferimenti a variabili locali comandi DML programma applicativo cesarini - BDSI data base calls introduzione 19 Accesso ai dati • linguaggi di sviluppo ad hoc – es: PL/SQL per ORACLE • interfacce user friendly – finestre, menu, icone… • dati su WEB – Open Database Connectivity ODBC • interfaccia proposta da Microsoft 1991 • sottoinsieme del linguaggio SQL – Java Data Base Connectivity JDBC • protocollo per accedere a basi dati relazionali da Java cesarini - BDSI introduzione 20 Architettura DBMS query utente programma applicativo query language processor database manager file manager schema database compilatore DDL metadati autorizzazione concorrenza recovery database fisico cesarini - BDSI introduzione 21 Architettura DBMS • Data Base Manager – Visualizza il “cuore” del DBMS – Accetta comandi per la gestione effettiva dei dati – Interagisce con tutte le informazioni memorizzate su disco (dati e metadati) tramite il gestore dei file – Gestisce i dati conoscendone la struttura rappresentata nei metadati (es. aggiorna lo stipendio di un impiegato sapendo quale è la colonna della tabella impiegato che rappresenta tale informazione) – Mantiene informazioni interne che mappano le strutture logiche in quelle fisiche (es. descrizione del/dei file che memorizzano la tabella impiegato) cesarini - BDSI introduzione 22 Architettura DBMS • Compilatore DDL / Query Language Processor – La definizione e la gestione effettiva dei dati sono attività separate e possono essere effettuate tramite interfacce differenti – Lo schema della base di dati è definito interfacciandosi con un modulo che produce una descrizione dello schema (metadati) secondo le modalità volute dal database manager – La gestione dei dati può essere effettuata con comandi immessi direttamente dall’utente oppure tramite programmi applicativi appositamente costruiti – Un sistema generalmente supporta più QLP (es. modulo per interfaccia grafica e modulo per interfaccia SQL) – Il modulo QLP genera comandi per il database manager cesarini - BDSI introduzione 23 Architettura DBMS • Ricordiamo che un DBMS deve prevedere – meccanismi per gestire la privatezza dei dati (autorizzazione degli accessi) – meccanismi per il salvataggio e ripristino dei dati – nel caso di accesso concorrente, meccanismi per il mantenimento della consistenza dei dati cesarini - BDSI introduzione 24