• Non ci sono risultati.

Corso di Basi di Dati

N/A
N/A
Protected

Academic year: 2021

Condividi "Corso di Basi di Dati"

Copied!
24
0
0

Testo completo

(1)

Corso di Basi di Dati

Progettazione

di Basi di Dati: Overview

Home page del corso:

http://www.cs.unibo.it/~difelice/dbsi/

(2)

Progettazione di DB

Negli esempi visti fin’ora, abbiamo studiato come implementare una base di dati in SQL, a partire da uno schema relazionale già definito.

CREATE TABLE IMPIEGATO(

CODICE SMALLINT PRIMARY KEY

… .. …

Codice Nome Cognom e

Dipartimen to

Cap o

IMPIEGATO UFFICI

Dipartimen to

Sed e

(3)

Progettazione di DB

Q. Come procedere se dobbiamo realizzare da zero un nuovo sistema informativo?

Es. Progettazione di un sistema informativo per gestire i dati di un reparto ospedaliero (anagrafica pazienti, anagrafica medici, cartelle cliniche, etc).

… In questo caso, partire direttamente con l’implementazione delle tabelle SQL può essere complesso se non impossibile (vedi dopo)

(4)

Progettazione di DB

PROBLEMA1: Dimensionamento del problema.

Negli esempi proposti fin qui, uno schema di un

DB era composto da max 5 tabelle…

In pratica, un DB di un sistema informativo di medie dimensioni può contenere decine di tabelle …

Es. rete SOLE, gestione integrata del fascicolo sanitario

(5)

Progettazione di DB

PROBLEMA2: Analisi dei requisiti

 Quali sono le specifiche del sistema che si vuole realizzare?

 Quali sono i dati d’interesse nel modello?

 Quali sono le operazioni sui dati da gestire?

Nella pratica, capire le richieste dei clienti è un processo solo apparentemente

semplice …

(6)

Progettazione di DB

PROBLEMA3: Traduzione nel modello relazionale

Q. Supponendo di aver chiarito cosa si deve

realizzare, ed i dati da gestire, come passare da una specifica informale dei dati ad un schema relazionale?

Il sistema deve gestire i dati relativi ai ricoveri di ciascun paziente, tenendo traccia delle terapie mediche giornaliere somministrate, degli esami

di laboratorio effettuati, etc

SPECIFICHE

PAZIENTE

...

RICOVERO

...

TERAPIA

? ?

(7)

Progettazione di DB

PROBLEMA3: Traduzione nel modello relazionale

RICOVERI

CodRecover

o Nome Cogno

me Reparto Nome Primar io

Cognom e

Primario 1236565 Mario Rossi P.

Soccorso Davide Bianchi 4545327 Marco Rossi P.

Soccorso Davide Bianchi 3423423 Maria Rossi P.

Soccorso

Davide Bianchi

5435345 Michele Verdi P.

Soccorso Davide Bianchi

Queste informazioni sono ridondanti …

 Senza una buona progettazione, possono emergere anomalie ed errori nella fase di traduzione nel modello relazionale …

(8)

Progettazione di DB

PROBLEMA3: Traduzione nel modello relazionale

 Senza una buona progettazione, possono emergere anomalie ed errori nella fase di traduzione nel modello relazionale …

Es. Si vogliono modellare le informazioni dei conti correnti di un ente di credito. Ogni conto può essere intestato a più clienti.

Ogni cliente può disporre di più di un conto.

NumClien

te Nome Cognome NumCont

o

CLIENTI

NumCont

o TipoConto Credito

CONTI

(9)

Progettazione di DB

Come procedere?

 Esistono tecniche e metodologie consolidate per progettare una

“buona” base di dati a partire dai suoi requisiti.

In generale, la progettazione è un solo uno dei componenti del ciclo di vita di un sistema informativo (vedi prossima slide …)

DB

REQUISITI

PROGETTAZIONE

SQL

(10)

Studio di fattibilità Raccolta/analisi

requisiti

Progettazione Implementazione

Validazione Funzionamento

Ciclo di vita di un sistema Informativo

Oggetto

{

di studio del modulo corrent

e

Modulo precedent

e

Progettazione di DB

(11)

Studio/analisi dei requisiti

Progettazione concettuale

Progettazione logica Progettazione fisica

SCHEMA CONCETTUALE

SCHEMA LOGICO

SCHEMA FISICO

Fasi della progettazione

Risultati

Analisi dei requisiti e progettazione in dettaglio …

Progettazione di DB

(12)

Esempio: Progettazione di una base di dati per un ente che eroga corsi di formazione.

Si vuole progettare una base di dati per una società che eroga corsi, di cui si vogliono rappresentare i dati dei

docenti e dgli studenti. Per gli studenti, identificati da un codice, si vuole tenere traccia del codice fiscale,

cognome, età, sesso, e corsi che stanno seguendo/hanno seguito. I corsi hanno un codice, un titolo e possono avere varie edizioni con date di inizio/fine e numero degli

studenti. Per gli insegnanti, si vuole memorizzare il codice, il cognome, l’afferenza, il nome del corso che insegnano/hanno insegnato.

SPECIFICA dei REQUISITI sui DATI

Progettazione di DB

(13)

Esempio: Progettazione di una base di dati per un ente che eroga corsi di formazione.

 Inserimento di un nuovo studente (in media, ogni mese)

 Inserimento di un nuovo docente (in media, ogni anno)

 Inserimento di un nuovo corso (in media, ogni anno)

 Stampa di tutti i corsi attivi (ogni giorno)

 Stampa di tutti igli studenti dell’ultimo anno

 …

 …

SPECIFICA delle OPERAZIONI sui DATI

Progettazione di DB

(14)

Studio/analisi dei requisiti

Progettazione concettuale

Progettazione logica Progettazione fisica

SCHEMA CONCETTUALE

SCHEMA LOGICO

SCHEMA FISICO

Fasi della progettazione

Risultati

Analisi dei requisiti e progettazione in dettaglio …

Progettazione di DB

(15)

Progettazione di DB

In questo corso, vedremo una metodologia “classica” di progettazione basata su 3 fasi …

ANALISI REQUISITI

Tabella 2

Tabella 1

Tabella N

PROGETTAZIONE CONCETTUALE

PROGETTAZIONE LOGICA PROGETTAZIONE FISICA

FILE 1

FILE 2

FILE n

Cosa si rappresenta

Come lo si rappresenta

(16)

Progettazione di DB

Ogni fase della progettazione produce una rappresentazione della base di dati attraverso uno schema:

 Progettazione Concettuale 

 Progettazione Logica 

 Progettazione Fisica 

SCHEMA CONCETTUALE

SCHEMA LOGICO

SCHEMA FISICO

(dipendente dal modello dei dati)

(dipendente dal DBMS in uso)

(17)

Studio/analisi dei requisiti

Progettazione concettuale

Progettazione logica Progettazione fisica

SCHEMA CONCETTUALE

SCHEMA LOGICO

SCHEMA FISICO

Fasi della progettazione

Risultati

Analisi dei requisiti e progettazione in dettaglio …

Progettazione di DB

(18)

In questa fase, ci si focalizza sul contenuto informativo dei dati ad alto livello di astrazione, senza focalizzarsi sull’implementazione.

In output, si produce un modello concettuale:

 indipendente dallo schema logico

(relazionale)

 indipendente dal DBMS in uso

Utilità della progettazione concettuale:

 Creare un’astrazione completa dei dati da rappresentare

 Capire le relazioni tra i dati del modello

 Fornire una documentazione della base di dati

Progettazione di DB

(19)

Sono disponibili molti modelli concettuali per la progettazione di basi di dati.

MODELLO ENTITA’

-RELAZIONE (ER) UNIFIED MODELING LANGUAGE (UML)

Progettazione di DB

(20)

Studio/analisi dei requisiti

Progettazione concettuale

Progettazione logica Progettazione fisica

SCHEMA CONCETTUALE

SCHEMA LOGICO

SCHEMA FISICO

Fasi della progettazione

Risultati

Analisi dei requisiti e progettazione in dettaglio …

Progettazione di DB

(21)

In questa fase, si rappresenta la base di dati nello schema logico del DMBS (nel nostro caso, nello schema relazionale).

La progettazione logica comprende:

 Traduzione dello schema concettuale

 Ottimizzazione dello schema logico ottenuto

Tabella 2

Tabella 1

Tabella N

Progettazione di DB

(22)

Una volta ottenuto lo schema logico, è necessario analizzare la qualità del prodotto finale:

 Rimozione delle ridondanze (normalizzazione)

 Analisi delle prestazioni

In base alle operazioni previste sui dati, lo schema prodotto è efficiente dal punto di vista delle prestazioni?

Attribut

o1 Attribut

o2 Attributo

N

Attribut

o1 Attributo

m

Attribut

o1 Attributo m

Progettazione di DB

(23)

Studio/analisi dei requisiti

Progettazione concettuale

Progettazione logica Progettazione fisica

SCHEMA CONCETTUALE

SCHEMA LOGICO

SCHEMA FISICO

Fasi della progettazione

Risultati

Analisi dei requisiti e progettazione in dettaglio …

Progettazione di DB

(24)

In questa fase, si descrivono le strutture per la memorizzazione dei dati su memoria secondaria, e l’accesso (efficiente) ai dati.

NomeCorso Codic

e Docente Basi di dati 0121 M. Di Felice Programmazion

e 1213 C. Laneve

Sistemi

Operativi 1455 D. Sangiorgi

00010 00 11101

0 10111

0

FILE1.dat

 Struttura sequenziale

 Struttura ad accesso calcolato (hash)

 Struttura ad albero

Progettazione di DB

Riferimenti

Documenti correlati

Ogni fase della progettazione produce una rappresentazione della base di dati attraverso uno schema:. ➢ Progettazione

•  "tradurre" lo schema concettuale in uno schema logico che rappresenti.. gli stessi dati in maniera corretta

Prenotazione(CodTes, CodE, Data, Ora, Costo, Urgente) RuolodelMedico(CodFisc, DataInizio, DataFine*, Ruolo). Traduzione della relazione

Ridondanza e Anomalie In tutte le righe in cui compare uno studente è ripetuta la sua

Una decomposizione conserva le dipendenze se ciascuna delle dipendenze funzionali dello. schema originario è presente in una delle

Il personale del reparto è identificato attraverso il codice fiscale; sono noti inoltre il nome, il cognome e l’indirizzo di domicilio. Tra il personale, nel caso dei medici

Prima forma normale (1NF), basata sulla definizione di relazione Seconda forma normale (2NF), terza forma normale (3NF) e. forma normale di Boyce-Codd (BCNF), tutte basate sulla

 lo schema concettuale e una rappresentazione delle classi dei dati di interesse e delle loro correlazioni, in modo indipendente da ogni aspetto realizzativo (poi, la