Progettaz. e sviluppo Data Base ! Introduzione ai Database ! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos’è un Database Cos’e un Data Base Management System (DBMS) Architettura di un DBMS Renato Vicinanza www.marscenter.it Cos’è un Database " Un Data Base (DB o base di dati) si puo’ definire come un insieme integrato di dati elementari e omogenei che vengono memorizzati da un sistema di elaborazione dati. " La dimensione puo’ variare da pochi Megabyte (gestibile, quindi, da Personal Computer di fascia bassa) a molti Terabyte (per la cui gestione sono richieste piattaforme H/W e S/W di piu’ alto livello.) Renato Vicinanza www.marscenter.it Cos’è un Database " L’approccio convenzionale alla gestione dei dati sfrutta la presenza di archivi o file per memorizzare i dati in modo persistente sulla memoria di massa. " Un file consente di memorizzare e ricercare dati , ma consente solo semplici meccanismi di accesso e condivisione. Inoltre, programmi diversi che hanno bisogno di accedere a informazioni comuni, non potrebbero farlo se non duplicando i dati, con problemi di ridondanza e possibilita’ di incoerenza. " I DB sono stati concepiti principalmente per superare questi limiti. Renato Vicinanza www.marscenter.it Cos’è un Database " Il costo e il tempo necessari per la realizzazione di un DB possono essere modesti o molto elevati a seconda della complessita’ del sistema e della quantita’ dei dati: oltre all’H/W e al S/W necessari, infatti, bisogna opportunamente considerare tempi e costi necessari alla catalogazione e memorizzazione dei dati stessi, nonche’, in alcuni casi, al reperimento delle informazioni, che puo’ essere molto complesso (si pensi, ad esempio, a basi dati conteneti informazioni sul patrimonio artistico di un paese o di una nazione). Renato Vicinanza www.marscenter.it Caratteristiche principali di un DB " Un DB deve essere condivisibile: applicazioni e utenti diversi debbono poter accedere, secondo opportune modalita’, a dati comuni. "In questo modo si riduce la ridondanza dei dati perche’ si evitano ripetizioni e, conseguentemente, si riduce anche la possibilita’ di inconsistenze: se esistono varie copie degli stessi dati, e’ possibile che esse, in qualche momento non siano uguali; viceversa, se ogni dato e’ memorizzato in modo univoco non e’ possibile incorrere in disallineamenti. Renato Vicinanza www.marscenter.it Caratteristiche principali di un DB " Un DB deve essere persistente: esso, cioe’, ha un tempo di vita che non e’ limitato a quello alle singole esecuzioni dei programmi che li utilizzano. (In contrasto ricordiamo che i dati gestiti da un programma in memoria centrale hanno una vita che inizia e termina con l’esecuzione del programma stesso; tali dati, quindi, non sono persistenti.) Renato Vicinanza www.marscenter.it Cos’è un DBMS " Col termine di Data Base Management System (DBMS) indichiamo l’insieme degli strumenti S/W necessari per la gestione e manutenzione generale di un Data Base. "Tutte le operazioni di creazione, aggiornamento, consultazione, ecc. di un DB possono essere effettuate utilizzando le funzionalita’ di un DBMS. "Un DBMS non e’ mai orientato ad uno specifico dominio applicativo. Renato Vicinanza www.marscenter.it Cos’è un DBMS " Un DBMS, quindi, puo’ essere definito come l’insieme dei programmi, in genere dotati di interfacce “user friendly”, rivolti alla gestione dei dati memorizzati in un DB (es: MS Access). "Ovviamente tra DB e DBMS esiste una forte interazione: il DBMS e’ il sistema attivo e il DB e’ l’oggetto passivo sul quale il DBMS opera. Renato Vicinanza www.marscenter.it DB, DBMS e Applicazioni specifiche " Oltre all’uso diretto dei tools messi a disposizione dal DBMS, un altro modo di accedere ai dati contenuti in un DB e’ quello di sviluppare e/o utilizzare applicazioni specifiche, progettate per risolvere problemi legati ad uno specifico dominio (es. Contabilita’ Generale di una Azienda, Gestione di una Biblioteca, ecc.). " A tale scopo e’ necessario utilizzare linguaggi di programazione per la realizzazione di programmi che, interfacciandosi con il DBMS, ne utilizzano le funzionalita’. Renato Vicinanza www.marscenter.it Caratteristiche di un DBMS " Un DBMS garantisce affidabilita’ , cioe’ la capacita’ di conservare intatto il contenuto della base di dati (o almeno di permetterne la ricostruzione) in caso di malfunzionamento H/W o S/W. A questo scopo i DBMS forniscono specifiche funzionalita’ di salvataggio e ripristino (backup e restore). Renato Vicinanza www.marscenter.it Caratteristiche di un DBMS " Un DBMS garantisce la privatezza dei dati : ciascun utente, identificabile univocamente mediante un nome utente all’atto di interagire con il DBMS, viene abilitato a svolgere solo determinate azioni sui dati, attraverso appositi meccanismi di autorizzazione. Renato Vicinanza www.marscenter.it Caratteristiche di un DBMS " Un DBMS deve essere efficiente ed efficace: efficiente in quanto capace di svolgere le operazioni richieste utilizzando un insieme di risorse (tempo e spazio) che sia accetabile per gli utenti. Questa caratteristica dipende sia dalle tecniche utilizzate nell’implementazione del DBMS sia dalla bonta’ della realizzazione del DB da parte dei suoi pogettisti. Inoltre bisogna considerare l’adeguato dimensionamento del sistema informatico complessivo sul quale il DBMS e’ installato. efficace in quanto capace di rendere produttive le attivita’ dei suoi utenti. Renato Vicinanza www.marscenter.it Architettura di un DBMS Renato Vicinanza www.marscenter.it Architettura di un DBMS 1. Livello Fisico 2. Livello Logico 3. Livello Esterno Renato Vicinanza www.marscenter.it Architettura di un DBMS Livello fisico Renato Vicinanza www.marscenter.it Architettura di un DBMS Livello Logico Renato Vicinanza www.marscenter.it Architettura di un DBMS Livello Logico " E’ la componente di principale utilizzo da parte dell’Amministratore del DB (DBA – Data Base Administrator) per descrivere: "I tipi di dati contenuti; "Le loro proprieta’; "Le associazione i dati; "I vincoli di integrita’ ( per garantire la consistenza tra i dati del DB) Renato Vicinanza www.marscenter.it Architettura di un DBMS Livello Esterno Renato Vicinanza www.marscenter.it Architettura di un DBMS Livello Esterno " E’ la componente che supporta l’interfacciamento verso programmi applicativi, scritti in linguaggi di programmazione convenzionali, che effettuano chiamate al DBMS per accedere ai dati del DB. Renato Vicinanza www.marscenter.it Architettura di un DBMS Indipendenza dei Dati " La struttura a livelli consente di introdurre il concetto di “Indipendenza dei Dati” " Piu’ specificatamente con il concetto di “Indipendenza Logica” si intende la possibilita’ di modificare il livello logico senza dover modificare il livello esterno e, quindi, senza dover riscrivere i programmi applicativi. Renato Vicinanza www.marscenter.it Tipologie di DB Gerarchici Reticolari Relazionali Object oriented Renato Vicinanza www.marscenter.it Tipologie di Database " La piu’ diffusa classificazione dei Data Base e’ basata sul “modello dei dati” che esso supporta. " Quando parliamo di “modello dei dati” ci riferiamo all’insieme dei concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in un modo comprensibile ad un calcolatore. " E’ importante segnalare che il modello dei dati e’ implementato all’interno del livello logico (precedentemente descritto) di un DBMS. Renato Vicinanza www.marscenter.it Tipologie di Database " I modelli sui quali ci soffermeremo sono: " Gerarchico: anni 60. " Reticolare: inizio anni 70. " Relazionale: fine anni 70 inizio anni 80; e’ ancora oggi il piu’ diffuso. " a Oggetti: anni 80 Renato Vicinanza www.marscenter.it Tipologie di Database Modello Gerarchico " Il modello gerarchico e’ basato sull’uso di strutture ad albero (e quindi gerarchie, da cui il nome). " A partire da un dato padre, si accede a dati figli che da esso dipendono. " A loro volta questi dati possono essere padri di altri figli. " Definito durante la prima fase di sviluppo dei DBMS (anni 60) e’ tuttora ampiamente diffuso, soprattutto in ambito mainframe. Renato Vicinanza www.marscenter.it Tipologie di Database Modello Gerarchico Renato Vicinanza www.marscenter.it Tipologie di Database Modello Gerarchico Renato Vicinanza www.marscenter.it Tipologie di Database Modello Gerarchico Renato Vicinanza www.marscenter.it Tipologie di Database Modello Reticolare " Il modello reticolare (detto anche CODASYL dal nome del comitato di standardizzazione che lo defini’ con precisione) e’ basato sull’uso di grafi. " Si tratta di un modello poco diffuso a causa della complessita’ di gestione e della difficolta’ di progetto per ottenere un’organizzazione efficiente dei dati. Renato Vicinanza www.marscenter.it Tipologie di Database Modello Reticolare Renato Vicinanza www.marscenter.it Tipologie di Database Modello Reticolare Renato Vicinanza www.marscenter.it Tipologie di Database Modello Reticolare Renato Vicinanza www.marscenter.it Tipologie di Database Modello Relazionale Renato Vicinanza www.marscenter.it Tipologie di Database Modello Relazionale Renato Vicinanza www.marscenter.it Tipologie di Database Modello Relazionale " La maggior parte dei sistemi di basi dati oggi sul mercato si fonda sul modello relazionale. " Per questo tale modello sara’ opportunamente approfondito piu’ avanti. Renato Vicinanza www.marscenter.it Tipologie di Database Modello a oggetti " Il modello a oggetti nasce come evoluzione del modello relazionale estendendo alle basi di dati il paradigma di programmazione ad oggetti. Renato Vicinanza www.marscenter.it Tipologie di Database " I modelli elencati sono tutti effettivamente disponibili su DBMS commerciali; essi sono detti logici per sottolineare il fatto che le strutture utilizzate da questi modelli, pur essendo astratte, riflettono una particolare organizzazione (ad albero, a grafi, a tabelle o a oggetti). Renato Vicinanza www.marscenter.it Tipologie di Database " Piu’ recentemente sono stati introdotti altri modelli di dati, detti concettuali, utilizzati per descrivere i dati indipendentemente dalla scelta del modello logico. "Il loro nome deriva dal fatto che tendono a descrivere i concetti del mondo reale, piuttosto che i dati utili a rappresentarli. Renato Vicinanza www.marscenter.it Tipologie di Database " Essi vengono utilizzati nella fase preliminare del processo di progettazione di base dati, per analizzare nel modo migliore la realta’ di interesse, senza “contaminazioni” di tipo realizzativo. " Uno dei modelli concettuali piu’ diffusi ed utilizzati e’ il modello Entita’-Relazioni. Renato Vicinanza www.marscenter.it