MODELLAZIONE DEI DATI
MODELLAZIONE DEI DATI Un modello di dati consiste in una rappresentazione astratta delle strutture dei dati di un database. L’atto di creazione del modello prende il nome di modellazione dei dati. Le strutture dei dati sono tutti gli oggetti del database e le regole che gestiscono le operazioni tra i dati. Il modello dei dati è indipendente dall’hardware o dal linguaggio con cui viene sviluppata l’applicazione e, serve per tradurre i dati dal mondo reale al mondo informatico. Ci sono due modi per modellare i dati: Modello Entità-Relazione; Modello a oggetto. N.B. la maggioranza delle applicazioni fa uso di un approccio entità relazione.
Progettare un database significa progettare le strutture prima logiche e poi fisiche di un database, in modo che possano accogliere i dati di cui un utente ha bisogno. È composto da diversi steps: Analisi del problema; Progettazione concettuale del database (modello E-R); Progettazione logica del database (schema logico); Progettazione fisica e implementazione; Realizzazione delle applicazioni. I 5 steps sono divisibili in due gruppi, infatti, le prime tre fasi possono essere considerate la vera modellazione dei dati (progettazione concettuale- logica), mentre le ultime due possono essere considerate come la modellazione funzionale dell’applicazione.
Il modello concettuale descrive cosa deve essere rappresentato; Il modello logico descrive come sono organizzati i dati. Modellazione dei datiprogettazione delle tabelle Modellazione funzionaleimplementazione tabelle e creazione di funzioni che accedono ai dati
ANALISI E PROGETTAZIONE CONCETTUALE Il frutto della modellazione dei dati consiste nel diagramma entità-relazione che rappresenta in modo grafico e leggibile le strutture dei dati ed è indipendente dal linguaggio scritto e parlato; permette quindi di comunicare agevolmente la struttura del database. La fase di modellazione dei dati è sicuramente una delle più difficili e lunghe. Lo scopo della modellazione dei dati (in particolare il modello E-R) consiste nel rendere in modo grafico tutti gli oggetti che fanno parte di un database in modo che il flusso delle informazioni possa essere seguito e verificato prima di sviluppare l’applicazione. Il modello E-R può essere anche usato dagli sviluppatori per creare il database fisico e tutti gli oggetti di quest’ultimo. N.B. Una cattiva modellazione può rendere il flusso dei dati completamente inutilizzabili, per questo è importante eseguirla al meglio.
Un buon progetto concettuale è caratterizzato da : Correttezza: uso corretto degli strumenti; Completezza: tutti gli aspetti rilevanti della realtà devono essere modellati; Chiarezza: il modello deve essere leggibile e rappresentare le informazioni in maniera comprensibile; Indipendenza dallo strumento informatico che verrà utilizzato
MODELLAZIONE LOGICA Una volta realizzato il modello concettuale si procede con la definizione del modello logico dei dati che consiste in uno schema realizzato in funzione delle caratteristiche del sistema di gestione del database che si intende utilizzare Il modello logico deve essere: Indipendente dalla strutture fisiche; Utilizzato dai programmi applicativi. In ordine cronologico i modelli logici sono: Gerarchico: rappresentabile tramite un albero (anni ‘60); Reticolare: rappresentabile tramite un grafo (anni ‘60); Relazionale: rappresentabile tramite tabelle e relazioni tra esse (anni ‘70); A oggetti: estensione alle basi di dati del paradigma ‘‘Object Oriented’’ (anni ‘80); XML: utilizzato come strumento per l’esportazione di dati tra diverse applicazioni.
IMPLETAZIONE E REALIZZAZIONE In questa fase viene fisicamente realizzato il database sul computer e consiste nel: Completamento dello schema logico in funzione dell’organizzazione fisica dei dati e dei meccanismi per operare su di essi; Progetto e realizzazione delle procedure atte a soddisfare le richieste specificate nel progetto utilizzando strumenti informatici di alto livello.
Modello gerarchico dei database È stato il primo modello ad affermarsi sul mercato e i dati sono organizzati secondo strutture ad albero che rappresentano la gerarchia degli elementi presenti nell’archivio. La radice è il record principale da cui partono uno o più sottoalberi ad esso simili (il numero dei figli è variabile). Ogni elemento prende il nome di segmento e il modello gerarchico permette di rappresentare i dati sfruttando la relazione tra segmenti padre e segmenti figli= relazione 1 a N cioè relazione uno-a-molti ogni padre può avere molti figli, ma ogni figlio può avere un solo padre. Svantaggi: Tra lo schema logico e la realizzazione fisica esiste una dipendenza stretta; Le operazioni di ricerca non sono efficienti in quanto sono visite ad alberi generici e solo nel caso siano di tipo gerarchico sarebbero di semplice realizzazione.
Modello reticolare dei database Alla base del modello reticolare ci sono le strutture dati a grafo in cui mediante puntatori è possibile accedere ai dati più facilmente. Il modello reticolare è quindi un’estensione del modello gerarchico, dove non esiste radice ma ogni nodo può essere il punto di partenza per raggiungere un determinato campo. Nel modello reticolare ogni elemento è costituito da un record che può connettersi con altri N record: è possibile quindi stabilire relazioni N:N (impossibili nel modello gerarchico). Per realizzare connessioni tra record diversi vengono utilizzati i record connettori. Svantaggi: I link sono realizzati con i puntatori (spreco spazio per memorie esterne) Per realizzare due reticoli indipendenti è necessario duplicare i dati introducendo un’inutile ridondanza Se i dati non sono tra loro connessi la loro ricerca è difficoltosa È estremamente rigido in caso di modifiche successive alla sua creazione
Modello relazionale Il modello relazionale è stato definito da Edgar F. Codd all’inizio degli anni ‘70 con l’obbiettivo di non duplicare inutilmente le informazioni. Questo modello consiste in un insieme di tabelle che possono essere connesse tra loro mediante relazioni. Alla base del modello c’è il concetto matematico di relazione tra insiemi e usa come struttura dati la relazione (o tabella). Ogni tabella è composta da righe e colonne: Le colonne sono i diversi campi (proprietà); Ogni riga corrisponde a un record. Vantaggi: Indipendenza dei dati; La rappresentazione logica dei dati non fa alcun riferimento a quella fisica; L’informazione è contenuta nei campi e non in strutture fisiche come i puntatori N.B. tra i DB relazionali ricordiamo MySQL, SAPDB, Firebird, Access, Oracle
Per indipendenza dei dati si intende: Indipendenza dalla struttura fisica: modifiche alla rappresentazione fisica dei dati non comportano modifiche ai programmi applicativi esistenti Indipendenza dalla struttura logica: modifiche apportate alla rappresentazione logica dei dati non devono comportare modifiche alle applicazioni esistenti che operano sul database.
Modello a oggetti dei database I database a oggetti sono la nuova frontiera nella ricerca dei database: hanno la possibilità di definire nuovi tipi di dati e comportamenti che vengono inglobati nell’oggetto/classe. Prendono il nome di odbms (Object dbms) o oodbms (Object Oriented dbms), quest’ultimi si fondano sugli stessi principi della programmazione a oggetti e quindi memorizzano nel database i dati e anche le operazioni che possono essere eseguite sugli stessi.
Modello xml Non è proprio un modello di database ma è divenuto uno strumento fondamentale per effettuare lo scambio delle informazioni tra dbms diversi. È un linguaggio simile all’ HTML con il quale condivide i tag ma quest’ultimi nel modello XML sono liberi e descrivono quanto racchiuso dalle parentesi. Con l’XML è possibile definire i tag a seconda delle esigenze. ESEMPIO:
CONCLUSIONI N.B. per quanto riguarda la sicurezza i dbms adottano un’architettura basata su 3 differenti livelli: Autenticazione (richiesta password segreta e personale) Autorizzazione (il sistema assegna i diritti all’utente alla lettura, scrittura ecc.) Auditing (integrità informazioni e riconoscimento di possibili abusi) Un database è un sistema software che gestisce efficientemente grandi quantità di dati, persistenti e condivisi. Un database deve avere: La capacità di gestire dati non volatili; La capacità di accedere in modo efficiente a grandi quantità di dati. E deve garantire: La consistenza dei dati: i dati devono essere utilizzabili nelle applicazioni aziendali ; La sicurezza dei dati: impedire che il database si danneggi; La segretezza e confidenzialità: i dati devono poter essere consultati e/o modificati da chi è autorizzato; L’integrità dei dati: garantire la conservazione dei dati senza perdite.