LE BASI DI DATI Seconda parte – La progettazione di database Relazionali LIVELLI DI ASTRAZIONE LIVELLI DI ASTRAZIONE Quando si deve affrontare un problema complesso come quello del progetto di un database è conveniente scomporre il procedimento in 3 fasi, ovvero affrontare il problema in 3 livelli di astrazione, dal più astratto al più concreto. 2 I 3 LIVELLI DI ASTRAZIONE: Livello concettuale Livello logico Livello fisico 3 LIVELLO CONCETTUALE – ANALISI DEI REQUISITI La raccolta e l’analisi dei requisiti è la fase che precede la progettazione concettuale. I requisiti possono essere acquisiti attraverso le seguenti fonti: utenti (interviste, documentazione apposita) documentazione esistente modulistica LIVELLO CONCETTUALE – ANALISI DEI REQUISITI Di solito il problema della realizzazione di un database viene sottoposto da parte di un cliente, il quale cerca di descrivere a parole i suoi bisogni (il progettista procede come in un'intervista); bisogna tenere conto che il problema può essere descritto in forma vaga, o su un argomento su cui non si è competenti. 5 LA FAVOLA DEI CIECHI E L’ELEFANTE 6 LA FAVOLA DEI CIECHI E L’ELEFANTE Sebbene tutti avessero parzialmente ragione, ognuno di essi aveva colto solo un aspetto della realtà e quindi erano tutti in torto. Morale : La realtà è spesso più complessa di quella che ognuno di noi, in base alla propria limitata esperienza, si è rappresentata nella sua mente. 7 LIVELLO CONCETTUALE – ANALISI DEL PROBLEMA Per queste considerazioni, la prima analisi consiste nella ricerca, all'interno della descrizione del problema, dei termini più significativi, con gli eventuali sinonimi, che indicano quali sono i contenuti del database che si vuole costruire. È utile scrivere questi termini e spiegare il loro significato, come in una specie di vocabolario. 8 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Al termine della fase di analisi e raccolta dei requisiti, si passa alla progettazione concettuale. Lo scopo della progettazione concettuale è quello di rappresentare le specifiche informali in termini di una descrizione formale e completa. Il prodotto di questa fase si chiama “schema concettuale” e fa riferimento ad un modello concettuale di dati. 9 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE I modelli concettuali ci consentono di descrivere l’organizzazione dei dati ad un alto livello di astrazione. Esistono diversi modelli concettuali, quelli che attualmente sono maggiormente utilizzati sono : 1. 2. Modello E-R (Entity-Relation) Modello dei dati con linguaggio grafico UML (diagramma delle classi) 10 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Il modello E-R è stato considerato per lungo tempo, il modello più adatto per la rappresentazione grafica di un progetto concettuale. Principali costrutti: Costrutti Rappresentazione grafica Entità Associazione Attributi Entità con attributi 11 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE L’UML (Unified Modeling Language) è un linguaggio grafico per la modellazione di applicazioni software basate sulla programmazione ad oggetti che, negli ultimi anni, si è rapidamente affermato nell’ambito dell’ingegneria software. Si tratta di un formalismo molto ricco che consente di rappresentare attraverso una serie di diagrammi, tutti gli aspetti di un’applicazione software: dati, operazioni, processi e architetture 12 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE A causa del suo successo, UML è utilizzato in alternativa al modello E-R, per la rappresentazione concettuale di una base di dati. (In particolare, a tale scopo viene utilizzato il diagramma delle classi) Principali costrutti: Costrutti Rappresentazione grafica Entità (o classe) Associazione Entità con attributi 13 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Un semplice esempio: Testo del problema Si vuole realizzare il progetto di un database per un'istituto di scuola superiore che vuole immagazzinare nel computer i dati relativi ai propri alunni e alle classi a cui appartengono (anno, sezione e indirizzo). 14 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Soluzione del problema (per ora vediamo solo il livello concettuale) 1. Vocabolario dei termini Prima di tutto si crea un vocabolario dei termini significativi : il lettore è fortemente invitato a provare a leggere il testo, a sottolineare i termini che ritiene più significativi e a darne una brevissima descrizione: 15 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Istituto la scuola che commissiona il progetto: poichè non si devono registrare informazioni sulla scuola, questo termine è irrilevante per il progetto; non è una categoria; Alunno categoria che descrive tutti gli individui che sono iscritti a tale istituto, si può ipotizzare che possieda una matricola, oltre al nome e al cognome; 16 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Classe categoria che descrive gruppi di alunni omogenei, ogni classe è individuata da un numero, una lettera e un indirizzo di studio. Esiste un particolare legame con la precedente categoria: un alunno può appartenere ad una sola classe. 2. Schema concettuale In questo livello sono state individuate due categorie di argomenti e che saranno chiamate entità; ogni entità, a seconda del modello scelto, è rappresentata da un preciso simbolo (vedi costrutti delle pagine precedenti), qui ci saranno due rettangoli, chiamati: classe e alunno 17 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE N.B. : Nel livello concettuale i nomi delle categorie individuate devono essere espresse al singolare. All'interno del testo è sottinteso che le due categorie sono legate dal fatto che ogni alunno può appartenere ad una sola classe; il progettista deve rappresentare esplicitamente anche questo legame aggiungendo un'associazione 18 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Bisogna essere molto precisi e spiegare in che modo l'alunno è legato alla classe e viceversa. Per farlo è utile scrivere delle frasi, chiamate regole di lettura per ogni associazione e quindi anche per appartenenza , e cioè: ogni alunno appartiene ad una sola (1) classe ad ogni classe appartengono più (N) alunni 19 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Schema concettuale secondo il modello E-R: Ad una classe appartengono 1 o n alunni, un alunno appartiene ad una sola classe 20 LIVELLO CONCETTUALE – PROGETTAZIONE CONCETTUALE Schema concettuale secondo il modello di dati con UML: Un alunno appartiene ad una sola classe, ad una classe appartengono 1 o n alunni. 21 LIVELLO LOGICO In questa fase si parte dallo schema concettuale ottenuto nel livello precedente, per ottenere un altro schema, detto anche schema logico. Questo schema spiega concretamente come realizzare il vero e proprio database cioè gli archivi e i collegamenti tra gli archivi. 22 LIVELLO FISICO In questa fase il problema è individuare la forma migliore in cui salvare i dati che costituiscono gli archivi. Per fare ciò è necessario rispondere a domande come: Dove verranno salvati i dati? Che struttura avranno i dati nei file? Che file system si utilizzerà? Quest'ultima fase di solito è influenzata dal DBMS sul quale è caduta la scelta, e dal file system usato, e non sarà trattata. 23