Indice generale. Teoria dei database



Documenti analoghi
Organizzazione degli archivi

Database. Si ringrazia Marco Bertini per le slides

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Progettazione di Basi di Dati

MODELLO RELAZIONALE. Introduzione

Introduzione alla teoria dei database relazionali. Come progettare un database

TEORIA sulle BASI DI DATI

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

BASI DI DATI - : I modelli di database

Introduzione al data base

Le Basi di Dati. Le Basi di Dati

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

DBMS (Data Base Management System)

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Progettaz. e sviluppo Data Base

Il database management system Access

Sistemi Informativi e Basi di Dati

Il Modello Relazionale

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Lezione V. Aula Multimediale - sabato 29/03/2008

Facoltà di Farmacia - Corso di Informatica

Strutturazione logica dei dati: i file

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Access. P a r t e p r i m a

Progettazione concettuale

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

DATABASE RELAZIONALI

Operazioni sui database

LA NORMALIZZAZIONE. Introduzione

Introduzione all Algebra Relazionale

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Lezione 1. Introduzione e Modellazione Concettuale

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di Dati Relazionali

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Normalizzazione. Relazionali

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Sistemi centralizzati e distribuiti

database: modello entityrelationship

Il Sistema Operativo: il File System

BASE DI DATI: sicurezza. Informatica febbraio ASA

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Dispensa di database Access

Ottimizzazione delle interrogazioni (parte I)

Base di dati e sistemi informativi

Data Base. Prof. Filippo TROTTA

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

La Progettazione Concettuale

Rappresentazione grafica di entità e attributi

IL SISTEMA INFORMATIVO

Capitolo 13. Interrogare una base di dati

Alessandra Raffaetà. Basi di Dati

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Progettaz. e sviluppo Data Base

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Organizzazione delle informazioni: Database

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

La Metodologia adottata nel Corso

I database relazionali (Access)

Corso di Amministrazione di Reti A.A. 2002/2003

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

1. BASI DI DATI: GENERALITÀ

Coordinazione Distribuita

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Il Modello Relazionale

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Cosa è un foglio elettronico

Al giorno d oggi, i sistemi per la gestione di database

Corso di Informatica (Basi di Dati)

Il sistema C.R.M. / E.R.M.

CHIUSURE di MAGAZZINO di FINE ANNO

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Lezione 8. La macchina universale

MODULO 5 Appunti ACCESS - Basi di dati

Linguaggi e Paradigmi di Programmazione

Introduzione al corso

Corso di Basi di Dati e Conoscenza

Modello relazionale. ing. Alfredo Cozzi 1

Informatica (Basi di Dati)

Archivi e Basi di Dati

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Progetto di basi di dati Laboratorio di diagnosi mediche

Progettazione di un Database

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

I Sistemi Informativi

Transcript:

Indice generale PREMESSA...1 INTRODUZIONE...1 CRITERI DI PROGETTAZIONE DELL' ORGANIZZAZIONE FISICA...5 L 'INFORMAZIONE IN UNA BASE DATI...6 MODELLI DI DATI...9 I LINGUAGGI PER LA MANIPOLAZIONE DEI DATI E IL MODELO RELAZIONALE...13 SCHEMI RELAZIONALI DI BASI DI DATI...14 PROGETTAZIONE MODELLI DI BASE DATI...19 PROGETTAZIONE...22 PROGETTAZIONE CONCETTUALE...23 PROGETTAZIONE LOGICA...24 PROGETTAZIONE FISICA...25 ESEMPI DI RPOGETTAZIONE...26 PRENOTAZIONI AD ALBERGHI...26 PROGETTAZIONE DI UN DATABASE AZIENDA...30 Teoria dei database PREMESSA Questa relazione vuole esporre i concetti alla base dei quali sono realizzati e progettati i database relazionali. Non è un documento che tratta l' argomento in tutta la sua complessità ma può essere utile per chiarire le idee per poi approfondire lo studio della teoria dei database con dei testi dedicati. Si è deciso di realizzare il testo in modo schematico per aumentare la chiarezza e renderlo più sintetico. INTRODUZIONE In questa prima parte si introdurranno la definizione di archivio e la nomenclatura relativa. Inoltre sono descritte anche le operazioni che un utente può eseguire su un archivio. Si definisce archivio o file l'insieme di tutte le informazioni Ogni insieme unitario di informazione è detto record. Un record è costituito da un insieme di campi ciascuno dei quali contiene una parte dell'informazione. Ad ogni campo è associato un nome che serve per indicare la porzione d' informazione contenuta in quel campo. Un archivio è un insieme di record. La struttura di un record è la specificazione dei campi che lo costituiscono. L'insieme dei campi utilizzati per identificare un record di un file è detto chiave. Si definisce metodo della chiave implicita utilizza per chiave una parte dell'informazione. Si definisce metodo della chiave mediante tabella quel metodo che utilizza per determinare la chiave del record una tabella che associa all'informazione un codice.

Si definisce metodo della chiave mediante regole logiche quel metodo che determina la chiave mediante l'applicazione di regole predefinite ad una parte dell'informazione. I record di un file si dicono omogenei se contengono tutti le stesse informazioni nello stesso ordine altrimenti si dicono non omogenei. Nel caso si utilizzano record non omogenei è necessario inserire un campo per l'identificazione del tipo di record. Si definisce lunghezza di un informazione il numero di caratteri che la compongono. Si definisce lunghezza di un record il numero di byte utilizzati per rappresentare l' informazione che esso contiene. Un record può essere a lunghezza fissa o variabile. In caso di record a lunghezza variabile si devono utilizzare degli indicatori di inizio e fine e questo rende l' utilizzo di questi tipi di record più oneroso. Si definiscono in un sistema gestione degli archivi le seguenti operazioni: creazione di un file operazioni di aggiornamento di un file ricerca di un record operazioni globali sui record L' organizzazione di un file determina la realizzazione del sistema gestione. L' insieme dei file e delle informazioni necessarie alla loro elaborazione è detta directory. Le directory sono utilizzate dal sistema in modo trasparente all'utente ma quest'ultimo può avere informazioni sulle directory mediante particolari interrogazioni del archivio. Si definisce ricerca per posizione l' operazione con cui si individua un record specificandone il numero d' ordine all'interno del file. Si definisce ricerca per chiave l'operazione mediante cui si individua il record specificando il valore della chiave del record da ricercare. Si definiscono operazioni di aggiornamento di un file le seguenti: inserzione cancellazione modifica la modifica del file è l' operazione con cui si cambia il contenuto di uno o più campi di un record. La modifica avviene in memoria centrale e poi si trasferisce il file modificato nella memoria ausiliaria nuovamente(hard Disk). La cancellazione si effettua logicamente associando ad ogni record cancellato un tag detto di cancellazione. Quindi l' operazione di cancellazione non comporta una reale perdita dell'informazione e conseguente liberazione dello spazio di memoria. L' inserimento può avvenire secondo la modalità di sovrapposizione o ampliamento. Il metodo di sovrapposizione sostituisce un record cancellato con il record che si vuole inserire, mentre il metodo di ampliamento inserisce il record alla fine del file facendo aumentare le dimensioni del file. La modifica di un record se non comporta la variazione del campo chiave è condotta con la sostituzione del record da modificare con quello modificato, mentre se la modifica coinvolge anche il valore del campo chiave si cancella

il record iniziale e si inserisce il record modificato. Si definisce struttura di un file l' insieme dei seguenti parametri: specificazione delle informazioni memorizzate scelta dell'organizzazione fisica L'organizzazione fisica dei file deve essere determinata in funzione del tipo di elaborazioni che devono essere effettuate su quelle informazioni. Le organizzazioni fisiche sono: sequenziali casuali miste Organizzazione sequenziale E' adatta a file che richiedono la stessa elaborazione su tutti i record. Permette la ricerca sia per posizione La ricerca richiede tempi lunghi e variabili a seconda di dove e collocata l' informazione Organizzazione casuale Permette la ricerca sia per posizione che per chiave I tempi di ricerca sono ridotti Prevede una procedura per l'identificazione del record in modo univoco in funzione del valore della chiave Organizzazione mista Permette la ricerca sequenziale dei file così consentendo le operazioni globali Consente mediante un indice di norma l'accesso diretto alla posizione dei file che contiene il record così la ricerca non è veloce come quella casuale ma più veloce di quella sequenziale. Il frazionamento dell'informazione risponde ad un esigenza di miglioramento in quanto riduce il tempo di trasferimento dell'informazione e un ottimizzazione dello spazio di memoria occupato. Di seguito si definisco i metodi di frazionamento dell'informazione: Metodo della suddivisione delle informazioni: Il metodo prevede la divisione delle informazioni in tanti file quante sono le elaborazioni possibili. Se una stessa informazione è richiesta in diverse elaborazioni essa deve essere ripetuta nei diversi file. Le informazioni ripetute possono rappresentare la chiave per tutti i file così da individuare i record logicamente uniti. Metodo del collegamento fra informazioni Il metodo definisce un file principale con tutte le informazioni necessarie per tutte l' elaborazioni. In seconda istanza si definiscono un numero di file secondari pari al numero di elaborazioni possibili. Ad ogni record del file principale è associato un record dei file secondari Per il metodo del collegamento è necessario definire una procedura per associare ad ogni record del file principale uno dei file secondari o se necessario si aggiunge nel file principale un campo che contiene un riferimento ai record dei file

secondari. Caratteristiche dell'informazione I parametri che caratterizzano un informazione per essere memorizzata sono: definibilità individuabile senza ambiguità rappresentabile codificabilità ossia deve poter essere associata ad un codice alfanumerico L'esattezza delle informazioni acquisite in un archivio sono garantite dalle seguenti operazioni: acquisizione rappresentazione immissione e controllo validazione L' operazione d'immissione può comportare i seguenti errori: errori impliciti o errori di misura errori di rappresentazione errori di trascrizione Validazione Si definisce validazione il controllo finale dei dati per la verifica del loro significato. Si possono definire degli algoritmi auto controllanti per verificare l' esattezza delle informazioni contenute nei campi.

CRITERI DI PROGETTAZIONE DELL' ORGANIZZAZIONE FISICA. L' organizzazione fisica di un archivio considera le tecniche di memorizzazione dell'informazione. In questo capitolo sono presi in considerazioni gli aspetti che distinguono e permettono di migliorare l'organizzazione fisica di un archivio. I criteri di valutazione delle performance di un database sono legati al tempo impiegato per la ricerca dell'informazione. I criteri di valutazione dell'occupazione di memoria si dividono in due tipologie : - compattamento dell'informazione - collegamento dell'informazioni a dati comuni (riduzione della ridondanza dei dati) I Criteri di compattamento dell'informazione si distinguono in: 1. Riduzione dello spazio riservato ad ogni informazione 2. Eliminazione delle informazioni non utili o opzionali Un campo è detto opzionale se può contenere informazioni nulle. La gestione dei campi opzionali può avvenire tramite le tabelle di bits o le tabelle di codici. Le tabelle di bits sono delle tabelle in cui si memorizzano un bit per ogni campo opzionale. Il bit che indica il campo opzionale è posto a uno se il corrispondente campo contiene informazione. 0 1 1 Campo 1 opzionale vuoto Campo 2 opzionale con informazione Corrispondenza bit /campo Campo 3 opzionale con informazione Il metodo delle tabelle dei codici definisce un codice per ogni campo opzionale. In caso di presenza del campo opzionale il campo in questione è preceduto dal codice corrispondente 010 campo2 010 campo 1 011 campo 3 Il criterio di collegamento a dati comuni è utilizzato per ridurre lo spazio impiegato per la memorizzazione di dati comuni a più record. Per la riduzione dei dati comuni si utilizzano due le seguenti metodologie: - Collegamento tramite rinvio - Collegamento tramite gerarchia Il collegamento tramite rinvio utilizza una tabella per associare ad ogni valore del dato comune un codice. I records che utilizzano il dato comune riporteranno al posto del dato il codice ad esso associato. Il collegamento tramite gerarchia raggruppa i record che utilizzano una stessa informazione e si memorizza il dato comune seguito da tutte le informazioni contenute nei record raggruppati.

L 'INFORMAZIONE IN UNA BASE DATI Un dato è la rappresentazione di una informazione ottenuta per mezzo di alcune caratteristiche dell'informazione stessa. Una corrispondenza tra due insiemi A e B di dati è una legge che associa ad ogni dato dell'insieme A un sottoinsieme, anche vuoto, dei dati dell'insieme B. Una base dati può essere vista come un magazzino d' informazioni memorizzate su un elaboratore e utilizzata per mezzo di un sistema per la gestione di una base dati. Una transazione su una base dati è l'esecuzione, da parte del sistema di gestione della base dati, di una richiesta dell'utente. Un sistema per la gestione di una base dati deve permettere ad un utente di definire, secondo regole ben precise e tipiche del sistema stesso, le caratteristiche delle informazioni e delle corrispondenze che costituiscono la base dati che l' utente vuole utilizzare. Una base dati deve garantire le seguenti caratteristiche: L' indipendenza dei dati deve permettere all'utente di considerare la base dati in termini astratti ossia deve svincolare l 'utente dalla conoscenza di come e dove i dati sono memorizzati nell'elaboratore. La Sicurezza di una base dati deve permettere l 'accesso ad una informazione solo agli utenti abilitati e deve impedire la consultazione e modifica delle informazioni agli utenti non abilitati. L' integrità è assicurata dalla definizione dei vincoli di consistenza. I vincoli di consistenza sono le proprietà che devono essere rispettate dai dati memorizzati nella base dati per non comportare perdita o deformazione dell'informazione. Un sistema di gestione di base dati deve presentare sincronizzazione in quanto l'esecuzione di alcune operazioni di aggiornamento simultaneo non devono mai generare inconsistenza della base dati. Un sistema per la gestione della base deve prevedere delle operazioni di ripristino dati quindi deve prevedere le procedure per la realizzazione di backup periodici della base dati e procedure per il ripristino della base dati partendo dal backup. Il sistema per assicurare il perfetto ripristino deve memorizzare le transizioni che hanno modificato la base dati dall'ultimo backup. Livelli d' astrazione. Si definiscono per la gestione di un sistema di base dati i livelli d' astrazione fisico, logico ed esterno. Il livello fisico è il più vicino all'elaboratore ed è il livello che gestisce la reale disposizione dei dati in memoria. Lo schema fisico di una base dati è dato dalla descrizione delle caratteristiche e dei files usati per rappresentare la base dati logica. Il livello esterno è il livello più vicino all'utente e gestisce le viste dei dati. Si definiscono viste la descrizione astratta di una parte dello schema logico di una base di dati. Il livello logico è il livello d'astrazione collocato tra il livello fisico e quello esterno. Il livello logico gestisce l'organizzazione dei dati. Si distinguono tra i modelli logici i modelli relazionali, modelli gerarchici e modelli reticolari. I modelli relazionali permettono di descrivere sia i dati che le corrispondenze fra i dati sotto forma di un unica struttura di dati chiamata relazione. Nel modello gerarchico la struttura di dati usata per rappresentare l' informazione è un albero, dove un nodo rappresenta una informazione e i figli di un nodo sono associati al loro padre da una corrispondenza esistente nella base dati. Nei modelli reticolari vengono utilizzati records per rappresentare le informazioni e

connettori per rappresentare le corrispondenze tra le informazioni.

Per ogni vista esiste una corrispondenza schema esterno(vista)/schema logico e tale corrispondenza permette l' indipendenza logica dei dati. Esiste una corrispondenza schema logico/schema fisico in modo da specificare a quali informazioni si fa riferimento a livello fisico per rappresentare le informazioni a livello logico. Vantaggi dell'indipendenza L'indipendenza fisica dei dati implica che i l 'amministratore può modificare lo schema fisico della base dati senza alterare lo schema logico e le viste. L'indipendenza logica implica che lo schema logico può essere modificato senza modificare le viste degli utenti L'indipendenza fisica e logica permettono di realizzare dei programmi che non tengano conto dell'organizzazione fisica dei dati e delle tecniche d'accesso ai dati. Base di dati fisica Base di dati logica Vista 1 Vista 2 La progettazione delle viste, dello schema logico e dello schema fisico di una base dati è fatta dall'amministratore della base dati. L 'amministratore definisce: Lo schema logico della base dati e i sottoschemi logici ai quali dovranno fare riferimento gli utenti Lo schema fisico che è utilizzato per implementare lo schema logico Le corrispondenze che esistono tra gli oggetti definiti a livello logico e gli oggetti definiti a livello fisico. Una volta che la base dati è realizzata l' amministratore è responsabile delle attività di gestione della base dati: Contenuto informativo della base dati. L' amministratore della base dati deve identificare le entità che sono interessanti per l' applicazione e determinare le informazioni relative a queste entità che devono essere memorizzate. Collegamento con gli utenti. Deve essere sempre assicurata la disponibilità dei dati per gli utenti. Controllo di autorizzazione e procedure di validazione. L' accesso ai dati deve essere consentito solo ad alcuni utenti. I dati prima di essere memorizzati devono essere sottoposti ad un azione di controllo. Strategia di sostegno e ripristino. Devono essere definite delle procedure per il ripristino e il recupero del contenuto della base dati anche in caso di danneggiamento della base dati. Controllo delle prestazioni. Devono essere definite degli strumenti per il controllo in modo automatico delle prestazioni del sistema e per il miglioramento dell'efficienza dell'organizzazione adottata. Strumenti d'amministrazione. Il sistema per la gestione di una base dati deve fornire all'amministratore i seguenti strumenti: 1. programmi di ripristino per ricreare la base dati in caso di crash 2. programmi di riorganizzazione per l' ottimizzazione dell'occupazione di memoria 3. programmi di diario per la memorizzazione di tutte le transizioni eseguite e dell'utente che le ha compiute

4. programmi di analisi statistica per poter monitorare le prestazioni della base dati 5. dizionario dei dati che è una base dati che contiene la descrizione sugli oggetti su cui opera la base dati Concludendo l' utilizzo di una base dati consente: La riduzione della ridondanza (ripetizione degli stessi dati in più punti) Controllo dell'inconsistenza dei dati Spartizione dei dati in modo che una nuova applicazione possa visualizzare le informazioni senza creare nuovi files Rafforzamento degli standars in virtù della centralizzazione delle informazioni Applicazione delle norme di sicurezza

MODELLI DI DATI un modello di dati è un formalismo utilizzato da ogni utente per la gestione dei dati e per descrivere la realtà con cui vuole interagire. esistono tre tipi di modelli per la gestione dei dati: modello relazionale modello gerarchico modello reticolare Modello gerarchico Nel modello gerarchico le corrispondenze sono rappresentate da una struttura ad albero. Gli alberi sono detti occorrenze gerarchiche. Il record che appare sopra ad altri record dell'albero è detto di tipo ascendente o superiore. Il record che appare nella parte inferiore ad altri record è detto discendente o inferiore o dipendente. Il record situato nella parte superiore di un albero è detto radice. Una radice può avere un numero indeterminati di records dipendenti di diverso tipo. Esempio di gerarchia radice Nodo 1 Nodo 2 Un record può essere contemporaneamente ascendente e discendente. Le operazioni in un modello gerarchico sono complesse in quanto non è sufficiente individuare la corrispondenza tra i records ma occorre anche indicare il livello del record con le parole under o upper. Per localizzare un record quindi occorre specificare la corrispondenza con la condizione where e il contesto ascendente o discendente. Get <ascendente / discendente> where <condizione> In un modello gerarchico non è possibile inserire un record di tipo discendente se non si inserisce prima un record di tipo ascendente ad esso collegato. In un modello gerarchico se si cancella una corrispondenza è necessario cancellare anche i record collegati. In un modello gerarchico la cancellazione di un record ascendente impone la cancellazione di tutti i record dipendenti del record cancellato.

In un modello gerarchico quando si eseguono delle modifiche in un record discendente è opportuno cercare ogni occorrenza delle informazioni modificate nell'albero per non creare inconsistenza.

Modello Reticolare In un modello reticolare le corrispondenze sono rappresentate da records connettori che collegano i records con i dati. Una rete è una struttura più complessa di una gerarchia in quanto un record può avere un numero indeterminato di records superiori e inferiori. Il modello reticolare permette di rappresentare le corrispondenze molti a molti cosa che non è possibile nel modello gerarchico e in quello relazionale. Esempio: Fornitore1 Fornitore2 Fornitore3 Fornitura 1 Fornitura 2 Fornitura 3 Prezzo 1 Prezzo 2 Prezzo 3 Il modello gerarchico permette una maggiore simmetria rispetto a quello reticolare ma a costo di una maggiore complicazione delle interrogazioni del modello. La selezione di un record necessita oltre all'individuazione del connettore anche di un ulteriore parametro che indichi se ci interessa il record superiore o inferiore. Get <tipo record> over <tipo di connettore> Modello relazionale Le tabelle nel modello relazionale sono rappresentate da dei files sequenziali dove le righe corrispondono ai recors e le colonne ai campi dei records. Le tabelle sono dette relazioni, le righe sono dette tuple e le colonne sono gli attributi. Si definisce dominio l 'insieme di valori che costituiscono una colonne di una relazione. In un modello relazionale la corrispondenza tra le tuple è rappresentata solo per mezzo degli attributi (valori) contenuti nello stesso dominio (colonna). In un modello relazionale tutte le informazioni sia dati che corrispondenze sono rappresentate in modo uniforme cioè sotto forma di relazioni (tabelle). Esempio di modello relazionale Fornitore Prezzo Forniture

poiché in un modello relazionale sia dati che corrispondenze sono rappresentati in una ed una sola forma è sufficiente avere uno ed un solo operatore per le operazioni fondamentali (inserzione, cancellazione, selezione) che si vogliono eseguire Operazione di ricerca get <nome relazione> where <condizione> Operazioni di aggiornamento insert <tupla> into <relazione> delete from <relazion> where <condizione> modify <relazione> where <condizione> Un operatore relazionale è un operatore che agisce su relazioni e produce ancora delle relazioni. Quindi la ricerca in una base dati relazionale è un procedimento di costruzione di relazioni che soddisfano le condizioni imposte dalla ricerca. Si definiscono i seguenti operatori relazionale: SELEZIONE PROIEZIONE JOIN NATURALE La selezione costruisce una nuova relazione estraendo un sottoinsieme orizzontale da una relazione esistente. ossia si definisce una tuple costituito da alcuni campi delle tuple della tabella (relazione) originaria. La proiezione costruisce una relazione estraendo un sottoinsieme verticale da una relazione esistente ossia si selezionano un certo numero di tuple della tabella (relazione) considerata. La join naturale è una nuova relazione nella quale ciascuna tupla è realizzata concatenando due tuple delle relazioni tra cui si realizza la join. Per le interrogazioni dei modelli reticolari si possono utilizzare i linguaggi : ALPHA e QUEL detti di calcolo relazionale SEQUEL(SQL) e SQUARE detti di mapping QBE e CUPID che sono linguaggi grafici.

I LINGUAGGI PER LA MANIPOLAZIONE DEI DATI E IL MODELLO RELAZIONALE Ogni utente di un sistema di gestione di una base dati può interagire, interrogare,modificare le informazioni in esso memorizzate esclusivamente utilizzando il linguaggio fornito dal sistema. I linguaggi per la modifica della base dati si distinguono nei seguenti tipi: Calcolo relazionale dove si specifica un predicato che deve essere soddisfatto dalle tuple che costituiscono la relazione desiderata. algebrici o procedurali dove la domanda è espressa mediante espressioni costituite da operatori. I linguaggi algebrici permettono di definire le interrogazioni al sistema utilizzando degli operatori (unione, intersezione, differenza, prodotto cartesiano, proiezione, selezione, join, join naturale, divisione e ridenominazione)che agiscono su un insieme specifico di relazioni in modo da ottenere le informazione desiderate. Una interrogazione (query) Q può essere considerata una funzione che applicata ad un insieme di relazioni R produce ancora una relazione D Q : R D Analizziamo gli operatori utilizzati nei linguaggi algebrici. Si definisce unione date due relazioni R e S con lo stesso schema la relazione costituita da tutte le tuple che appartengono in R o in S o in entrambe. Si definisce intersezione date due relazioni R e S con lo stesso schema la relazione costituita da tutte le tuple che appartengono sia in R che in S. Si definisce differenza date le due relazioni R e S con lo stesso schema la relazione costituita da tutte le tuple di R che non appartengono in S. Si definisce prodotto cartesiano date le due tuple R e S la relazione costituita da tutte le possibili coppie (r,s) tali che r è una tupla di R e s è una tupla di S. Si definisce concatenazione di una tupla r con una tupla s la tupla t = (r,s). Si definisce proiezione data una relazione R e X un sottoinsieme degli attributi dello schema di R. la relazione T che ha lo schema T(X) ossia le tuple di T che sono costituiti dai valori che appaiono nelle tuple di R in corrispondenza degli attributi contenuti in X. Le tuple uguali ottenute dall'operazione di proiezione non sono considerate. Si definisce selezione data una relazione R e F un predicato la relazione che ha lo schema di R e costituita dalle tuple che soddisfano il predicato F. Il predicato è composto da uno o più predicati semplici collegati tra loro dagli operatori logici and, or,not e tali che ogni predicato opera su un attributo di R. Si definisce join date le due relazioni R e S e dato P un predicato che opera una relazione tra un attributo di R e uno di S mediante un operatore di confronto, la relazione costituita dalle tuple (r,s) del prodotto cartesiano RxS tali che il predicato P sia soddisfatto. Si definisce join naturale date due relazioni R e S con schema R(a 1, a 2,..a i,...a n ) e S(b 1, b 2,...b i,...b m ) e tali che gli attributi a 1, a 2,..ai siano uguali a b 1, b 2,...b i la relazione T costituita dalle tuple concatenate di R e di S (r,s) che hanno gli stessi valori negli attributi analoghi a 1 =b 1 a 2 =b 2 a i =b i. Le tuple della join naturale hanno lo schema T(a 1, a 2,...a i, a i+1, a i+2,...b i+1, b i+2,...b m ) Si definisce divisione date le relazioni R e S tali che tutti gli attributi di S siano anche attributi di R la relazione costituita dalle tuple t tali che r = (t,s) ossia dalle tuple costituite dagli attributi di R che non appartengono a S. Si definisce ridenominazione l' operazione con cui si cambia il nome agli attributi di una relazione

SCHEMI RELAZIONALI DI BASI DI DATI La progettazione di una base di dati inizia con l 'osservazione del processo che si vuol rappresentare. Dall'analisi del processo si ottiene l 'individuazione delle entità e degli attributi. Si definiscono entità gli oggetti principali che costituiscono un database (tabelle). L'entità rappresenta un gruppo omogeneo d' informazioni. Le singole informazioni sono gli attributi dell'entità. Dopo avere determinato l 'entità e gli attributi che ci consentono di descrivere il processo analizzato occorre definire le relazioni che costituiranno la base dati ossia lo schema della base dati. Lo schema relazionale di una base di dati è la lista degli schemi di tutte le relazioni che costituiscono la base di dati stessa. Lo schema di una base di dati relazionale è la descrizione delle informazioni memorizzate in essa. Data una realtà esistono infiniti schemi che permettono la sua rappresentazione ma occorre individuare gli schemi che non presentano anomalie. La progettazione dello schema di una base di dati è il processo che permette la scelta di uno schema adeguato. La progettazione dello schema inizia con l' individuazione delle dipendenze funzionali (vincoli) imposti dalle relazioni tra le informazioni della base dati e successivamente si procede con il processo di normalizzazione. Sia R(A) uno schema di una relazione e siano X e Y due sottoinsiemi dell'insieme degli attributi A, si dice che Y dipende funzionalmente da X se per ogni relazione r che abbia lo schema R(A) non è possibile che siano presenti due tuple che hanno gli stessi valori degli attributi appartenenti all' insieme X e che abbiano valori differenti in una o più degli attributi appartenenti all' insieme Y. Una chiave costituisce sempre una dipendenza funzionale con gli attributi della relazione. Data una relazione R(A) e F un insieme di dipendenze funzionali per lo schema R(A) si definisce dipendenza derivata ogni dipendenza di X su Y non contenuta in F. Si definisce chiusura di un insieme di dipendenze F l'insieme di tutte le dipendenze funzionali implicate da F. L'insieme delle dipendenze F si dice completo se coincide con l 'insieme delle chiusure ossia contiene tutte le dipendenze implicate da essa. Si definisce attributo semplice un attributo costituito da un valore atomico ossia unico e indivisibile. Si definisce attributo strutturato un attributo costituito da un insieme di valori. Si definisce attributo multivalore un attributo strutturato e non semplice. La ridondanza dei dati in un database è dovuta sostanzialmente alla ripetizione d' informazioni. La ridondanza può essere la conseguenza di attributi ripetuti ad esempio considerando una libreria l' autore di un libro non può variare indipendentemente da dove è collocato il libro. La ridondanza può essere presente anche in un unico attributo infatti ricorrendo ancora all'esempio della libreria non è corretto che nell'attributo utilizzato per indicare il libro si riportino anche l'autore del libro in quanto è sufficiente il nome di quest'ultimo per individuare in modo univoco anche l 'autore. In ultimo è presente anche la ridondanza dovuta ad attributi con lo stesso dominio ad esempio, dovendo memorizzare i voti degli esami superati da un ragazzo non è

opportuno prevedere gli attributi esame1, esame2,...esame n. La situazione descritta si risolve meglio realizzando una tabella con un riferimento ai dati del ragazzo (chiave) e un campo esame. In tale tabella si riporterà una tupla in corrispondenza di ogni esame superato. La soluzione proposta presenta uno schema indipendente dal numero di esami conseguiti dal ragazzo. esempio con ridondanza Nome Cognome Esame1 Esame2 Esame3 Conversione senza ridondanza Id Nome cognome Id Esame Una relazione è un insieme ordinato di zero o più tuple e ogni tupla della relazione deve essere individuabile in modo univoco. Per ogni tupla deve esistere un attributo o un insieme di attributi che la identificano e questo insieme è detto chiave. Se una chiave è formata da un unico attributo si definisce chiave semplice altrimenti si dice composta. Una chiave deve essere irriducibile ossia non deve essere possibile eliminare dagli insiemi degli attributi che la compongono un singolo attributo senza che la chiave perda validità. La normalizzazione è l'operazione che permette di decomporre uno schema che presenta anomalie in uno schema il più possibile immune da anomalie di gestione dei dati. Si definisce schema in prima forma normale uno schema della relazione R(A), con A insieme degli attributi, costituito da attributi semplici. Quindi una forma normale evita che si verifichi una ridondanza di dati. La decomposizione di uno schema R(A) in uno schema corrispondente in prima forma normale consiste nel sostituire la relazione originale R(A) con una collezione di relazioni S= [R 1 (A 1 ) R 2 (A 2 ) R k (A k )] tali che A 1 U A 2 U..A k =A. che presentino solo attributi semplici. Si dimostra che se uno schema R(A) è decomposto nei due schemi R 1 (A 1 ) e R 2 (A 2 ) allora la decomposizione gode delle proprietà del join senza perdita se e solo se gli attributi comuni ai due insiemi A 1 e A 2 della composizione sono chiavi per una delle due relazioni. Decomposizione in prima forma normale. Normalizzare una relazione il cui schema R(A) non sia in prima forma normale significa riportare la relazione ad una equivalente in prima forma normale. Le procedura di normalizzazione sono quelle riportate di seguito 1 Tutti gli attributi strutturati devono essere sostituiti da tanti attributi quanti sono i valori che appaiono nell'attributo. 2 tutti gli attributi strutturati diventano attributi semplici e la tupla è rappresentata per mezzo di tante tuple quanti sono i valori contenuti nell'attributo. La prima forma normale elimina le seguenti anomalie:

1 Ridondanza dei dati 2 Anomalia da modifica. La modifica di un valore deve essere altrimenti riportata in ogni attributo che contiene quel valore 3 Anomalia da inserzione. L' impossibilità di inserire un attributo fin tanto non si è in possesso di tutti i valori che costituiscono quel attributo. 4 Anomalia da cancellazione. La cancellazione di un valore comporta la cancellazione di tutto l' attributo quindi anche di altre informazioni. Una dipendenza funzionale X Y è detta completa se per lo schema R(A) non esiste alcuna dipendenza funzionale Z Y dove Z è un qualunque sottoinsieme di X. Una dipendenza funzionale è detta parziale se non è completa. Un attributo di una relazione R(A) è detto primo se fa parte di una chiave di R(A) altrimenti è detto non primo.

Una relazione è in seconda forma normale se è in prima forma normale e se tutti gli attributi sono dipendenti dall'intera chiave ossia non sono presenti dipendenze parziali degli attributi non primi dalle chiavi. Una dipendenza Z si definisce dipendente transitivamente da X se si verificano le seguenti condizioni dove indicano le dipendenze funzionali : X Y e Y X Y Z e Z Y X Z Z non appartiene ne a X ne a Y Una relazione è in terza forma normale se è in seconda forma normale e se tutti gli attributi che non sono chiavi sono mutuamente indipendenti ossia ogni attributo di A non dipende in modo transitivo da ogni chiave di A Si definisce forma normale Boyce Codd lo schema R(A) se è in terza forma normale e se ogni dipendenza funzionale X Y e tale che X contiene una superchiave di R(A). Tutti gli attributi primi sono dipendenti solo dagli attributi primi e le uniche dipendenze funzionali sono quelle generate dalle chiavi verso uno o più attributi. Una dipendenza è detta multivalore X Y se prese due tuple di una relazione R(A) che abbiano gli stessi valori associati agli attributi di A t(x) = s(x) è possibile scambiare alcuni valori di t e s ed ottenere altre due tuple che stanno ancora in R. Si definisce quarta forma normale quando per ogni relazione di dipendenza funzionale molti a molti X Y, X sia una superchiave. Decomposizione in seconda forma normale. Riporto di seguito le fasi che permettono di scomporre uno schema in seconda forma normale. 1 Si individua il sottoinsieme Z di X per il quale esiste la dipendenza funzionale Z Y che rende X Y parziale. 2 Si definisce un nuovo schema S(U) dove U è costituito dagli attributi di Z e dagli attributi di Y e gli attributi di Z costituiscono chiave di S= Y U Z Si eliminano dallo schema R(A) gli attributi di Y Esempio: FORNITURE [Nome Forniture, Indirizzo, Città, Nome Pezzi, Peso, Data, Quantità, Prezzo] DIPENDENZE FUNZIONALI nome fornitura Indirizzo Città Nome fornitura, Nome Pezzo, Data Indirizzo, Città Nome Pezzo Peso DIPENDENZE CHE RENDONO LA DIPENDENZA X Y PARZIALE Nome Fornitura Indirizzo, Città (1) Nome fornitura, Nome Pezzo, Data Indirizzo, Città (2) Nome Pezzo Peso (3)

Nome fornitura, Nome Pezzo, Data Peso (4) DECOMPOSIZIONE Per eliminare la dipendenza parziale (1) e (2) si considera il nuovo schema [Nome fornitura, Indirizzo, Città] e si cancellano gli attributi Indirizzo e Città dallo schema iniziale. In modo analogo per eliminare la dipendenza parziale (3) e (4) si definisce lo schema [Nome Pezzo, Peso]e si cancellano l' attributo Peso dallo schema iniziale. Lo schema equivalente decomposto in seconda forma normale è il seguente [Nome Fornitura, Nome Pezzo, Data, Qualità, Prezzo] [Nome Fornitura, Indirizzo, Città] [Nome Pezzo, Peso] Decomposizione in terza forma normale. Riporto di seguito le fasi che permettono di scomporre uno schema in terza forma normale. 1 Dato lo schema R(A) per ogni dipendenza transitiva si determina una dipendenza funzionale X Y, Y Z dove X è una chiave di R(A) e Y è costituito da attributi non primi. 2 Si definisce uno schema S(U) dove U è costituito dagli attributi di Y e dagli attributi di Z e gli attributi di Y costituiscono la chiave di S 3 Si eliminano dallo schema R(A) gli attributi di Z ESEMPIO: Consideriamo lo schema AUOTOMBILI [Targa, Marca, Data, Colore, Modello, Cilindrata, Freni_Anteriori, Freni_Posteriori] INDIVIDUIAMO LE SEGUENTI DIPENDENZE TRANSITIVE Targa Modello (1) X Y Modello Cilindrata, Freni_Anteriori, Freni_Posteriori (2) Y Z Targa Cilindrata, Freni_Anteriori, Freni_Posteriori (3) X Z DECOMPOSIZIONE Si definisce la nuova relazione S(U) [Modello, Cilindrata, Freni_Anteriori, Freni_Posteriori] = Y U Z e la relazione ottenuta da R(A) eliminando gli attributi di Z [Targa, Marca, Data, Colore, Modello] = A Z

Esempi: Scomposizione in prima forma normale La relazione che segue non è in prima forma normale: NOME Rossi & C. s.p.a Martini s.n.c. Paoli s.a.s. INDIRIZZO Via Verdi, 5 Roma Via Centrale, 4 Milano P.za Libertà, 12 Pisa In quanto l attributo INDIRIZZO non è atomico: può essere suddiviso in Indirizzo e Città. La relazione si normalizza trasformandola in: NOME INDIRIZZO CITTA' Rossi & C. s.p.a Via Verdi, 5 Roma Martini s.n.c Via Centrale, 4 Milano Paoli s.a.s. P.za Libertà, 12 Pisa Scomposizione in seconda forma normale Abbiamo una relazione che rappresenta delle scrivanie da ufficio prodotte da una azienda industriale, la chiave primaria è data Tipo_tavolo e Tipo_legno. Tipo_tavolo Tipo_legno Tipo_finitura Manager Mogano Ottone Manager Ciliegio Acciaio inox Montecarlo Noce Sughero Montecarlo Mogano Ottone Top Noce Sughero Tipo_finitura è dipendente funzionalmente da un sottoinsieme della chiave primaria, ovvero da Tipo_legno, dunque la tabella non è in 2NF. La relazione funzionale è Z Y dove: Z =[Tipo_legno] e Y=[Tipo_finitura] da cui per le decomposizioni viste la relazione decomposta risulta la seguente: S= Y U Z =[Tipo_finitura, Tipo_legno] A = X Y =[Tipo_tavolo, Tipo_legno] Tipo_tavolo Manager Manager Montecarlo Montecarlo Tipo_legno Mogano Ciliegio Noce Mogano

Top Noce Tipo_legno Mogano Ciliegio Noce Tipo_finitura Ottone Acciaio inox Sughero

Scomposizione in terza forma normale: Consideriamo la seguente relazione: Fattura= [codice_fattura, data, importo, codice_cliente, nome_cliente] La relazione è in prima forma normale in quanto non è composta da attributi non semplici. È in seconda forma normale perché non contiene dipendenze parziali degli attributi non primi dalle chiavi. La relazione Fattura non è in terza forma normale perchè contiene la dipendenza transitiva seguente: codice_fattura codice cliente codice_cliente nome_cliente codice_fattura codice_cliente nome_cliente Per ottenere la nuova relazione definiamo gli insiemi: S = Y U Z = [codice_cliente, nome_cliente] S2 = A Z =[ codice_fattura, data, importo, codice_cliente] X Y Y Z X Z Possiamo quindi definire l' equivalente relazione in terza forma normale Fattura = [ codice_fattura, data, importo, codice_cliente]; e Cliente =[ codice_fattura, data, importo, codice_cliente];

PROGETTAZIONE MODELLI DI BASE DATI La progettazione di una base dati si divide in due fasi. La prima fase di progetto riguarda l' analisi del processo che si vuol rappresentare e la definizione di uno schema concettuale della base dati, mentre la seconda fase riguarda la realizzazione della base dati quindi la definizione dello schema della base dati e la realizzazione fisica della base dati. Schema concettuale La definizione della rappresentazione dello schema concettuale della base dati può essere ottenuta con Il modello semantico o le metodologie di progettazione di basi dati. Ci soffermeremo alla descrizione del modello semantico in quanto è il procedimento per l' analisi concettuale più utilizzato. Modelli Semantici Un modello semantico è un insieme di regole che permette di definire lo schema concettuale di una base di dati ad un livello intermedio tra la realtà e il modello di dati utilizzato per implementare la base di dati. Il modello semantico permette di ottenere prima una descrizione formale della realtà e poi converte tale descrizione nel modello di dati utilizzato dal sistema di gestione della base dati che si ha a disposizione. Il Modello semantico utilizza per la rappresentazione del processo studiato le entità, gli attributi e le corrispondenze. Un entità come già visto è un oggetto che esiste e che è indistinguibile (tabella) mentre gli attributi sono le proprietà che distinguono quell'entità dalle altre (campi). Le proprietà d'altro canto descrivono il significato dei dati che corrispondono all'entità. il primo step della progettazione dello schema della base dati è la scelta dell'entità e degli attributi che costituiscono ciascuna entità. Durante la fase di progettazione si devono anche determinare per ogni entità le chiavi che permette d' individuare l' entità in modo univoco. Spesso si ricorre alla definizione di un attributo che non ha informazioni ma ha l 'unico compito di realizzare la chiave. La chiave esterna è quella chiave che non ha un evidente rapporto concettuale con l' entità, ma ha motivo d' esistenza unicamente per permettere l 'associazione tra entità distinte. Le entità tra cui esiste una relazione si dicono partecipanti, ed il numero di partecipanti indica il grado della corrispondenza unaria, binaria, ternaria,... La partecipazione di un entità ad un associazione ( corrispondenza) può essere classificata totale o parziale a seconda del fatto che l'entità possa esistere o meno senza partecipare all'associazione stessa. Si indica con la cardinalità il numero massimo di istanze della stessa entità che possono partecipare con una o più istanze di un' altra entità. Uno a Uno Uno a Molti Molti a Molti Più semplicemente la cardinalità indica il numero di records di una tabella che corrispondono ai records di un altra tabella quando tra le due tabelle esiste una corrispondenza.

Corrispondenza Uno a Uno Si definisce una corrispondenza uno a uno se ad ogni elemento dell'insieme di entità A 1 x A 2 x A i è associato al più un elemento dell'insieme di entità B1 x B2 x..b j e se ad ogni entità dell'insieme B1 x B2 x..b j è associato al più un elemento dell'insieme di entità A1 x A2 x Ai. Ricordiamo che l' insieme di entità sono le tabelle. Corrispondenza Uno a Molti Si definisce una corrispondenza uno a molti se ad ogni elemento dell'insieme A1 x A2 x Ai è associato un insieme, anche vuoto, di elementi di B1 x B2 x..b j e se ad ogni elemento dell'insieme B1 x B2 x..b j è associato al più un elemento di A 1 x A 2 x A i Corrispondenza Molti a Molti Si definisce una corrispondenza molti a molti se ad ogni elemento di A 1 x A 2 x A i è associato un insieme, anche se vuoto, di elementi di B 1 x B 2 x..b j e se ad ogni elemento di B 1 x B 2 x..b j è associato un insieme, anche se vuoto, di elementi di A 1 x A 2 x A i Corrispondenza Molti a Uno Si definisce una corrispondenza molte a uno se in una corrispondenza molti a molti ad ogni elemento di B 1 x B 2 x..b j è associato al più un elemento di A 1 x A 2 x A i Corrispondenza is a Una corrispondenza si definisce is a se A è un tipo particolare di B Entità deboli Un insieme di entità B si dice debole se esiste una corrispondenza da un altro insieme di entità A e l'esistenza di ogni entità B è legata all'esistenza di una entità di A. In un entità debole si possono aggiungere entità solo se esistono le corrispondenti entità dell'insieme A Se si cancella un entità da un insieme si devono cancellare anche tutte le entità deboli ad essa collegate.

Diagramma Entità corrispondenze il diagramma entità corrispondenza è la rappresentazione dello schema di una base dati realizzato con il modello entità-corrispondenza il diagramma per la rappresentazione utilizza le seguenti convenzioni Entità Nome entità Entità deboli Nome entità Attributi semplici Nome entità Nome Attr. Attributi non semplici Nome Attr. Nome entità Corrispondenze Nome entità Nome entità La cardinalità della corrispondenza è indicata con un numero nel punto in cui la linea che individua la corrispondenza incontra l' entità. 1 Corrispondenza 1 a 1 1 Corrispondenza 1 a Molte 1 M

M Corrispondenza molte a molte 0 Corrispondenza zero a molte N N PROGETTAZIONE Per realizzare una progettazione del sistema di gestione della base dati occorre realizzare le seguenti analisi preliminari: Determinazione della specifica informale. La specifica informale è un documento che raggruppa la descrizione dei dati e delle proprietà dei processi che devono utilizzare la base dati e delle esigenze degli utenti. Definizione del sistema di gestione della base dati. Progetto dello schema. Configurazione hardware e del sistema informatico per la gestione del sistema. Specifica informale Definizione del sistema Di gestione della base dati Configurazione hardware del sistema informatico Progetto Schema logico Struttura di memorizzazione Sottoschemi utente Specifica dei programmi applicativi

La progettazione della base dati è realizzata seguendo a sua volta le quattro fasi sotto riportate: Analisi dei requisiti Progettazione concettuale Progettazione logica Progettazione fisica L' analisi dei requisiti è l' operazione di determinazione delle richieste degli utenti del sistema che ci accingiamo a progettare. La progettazione concettuale è la descrizione integrata dei dati e delle operazioni d'interesse per i diversi sottoinsiemi La progettazione logica è la definizione dello schema logico della base dati e degli sottoschemi. In questa fase si traducono le operazioni di estrazione delle informazioni in funzione dello schema definito. La progettazione fisica è la scelta della struttura di memorizzazione dei dati PROGETTAZIONE CONCETTUALE La progettazione concettuale è la fase in cui si crea uno schema concettuale ossia una descrizione sotto forma di dati, processi e vincoli. La realizzazione della progettazione concettuale è effettuata mediante il modello entità corrispondenze. La progettazione concettuale è divisa in due fasi: modellizzazione degli schemi utente. Analisi e integrità degli schemi La modellizzazione degli schemi di utente è la progettazione di tanti schemi utente. Lo schema utente è ottenuto come descrizione limitata e parziale del complesso d' informazioni che costituiscono la base di dati senza considerare eventuali relazioni o dipendenze tra essi. L' analisi ed integrità degli schemi utente è la fase in cui è definito uno schema concettuale unico risultato dei diversi schemi utente. In questa fase si individuano eventuali conflitti tra i diversi schemi utente. Conflitti tra gli schemi utente: Si riporta di seguito una descrizione delle cause che determinano conflitti tra gli schemi

utente.

Conflitti espliciti sono quei conflitti di tipo o di proprietà dei dati. a Si generano conflitti di tipo se esistono attributi di tipo differente con lo stesso nome b Si generano conflitti di proprietà dei dati si generano quando la corrispondenza tra due entità è differente a seconda dello schema utente considerato. I conflitti espliciti in generale si sono determinati da due utenti che hanno esigenze differenti sugli stessi dati che si traducono in differenti formalizzazioni dei dati o delle corrispondenze. I Conflitti impliciti sono i sinonimi o gli omonimi. I sinonimi si determina quando una stessa informazione è rappresentata con nomi differenti nella base dati Gli omonimi si generano quando con lo stesso nome si indicano informazioni differenti della stessa realtà Solo dopo che sono stati risolti tutti i conflitti si procede con l 'integrazione degli schemi utente per ottenere lo schema concettuale nella forma di modello semantico. In questa fase si procede anche alla determinazione di uno schema concettuale delle operazioni che si ipotizza saranno effettuate sulla base dati. Dopo avere completata la progettazione dello schema concettuale si procede con le verifiche. Le verifiche che si attuano sullo schema concettuale sono le seguenti: Verifica di completezza con cui si dimostra che gli schemi progettati sono capaci di soddisfare le esigenze delle applicazioni. Verifica sulla frequenza d' utilizzo dei dati permette di controllare l' efficienza dello schema Progetto iniziale dei programmi applicativi PROGETTAZIONE LOGICA Con la progettazione logica lo schema concettuale dei dati e quello utente sono tradotti in uno schema logico (capitolo 3) espresso in termini del modello di dati al quale fa riferimento il sistema di gestione della base dati che si realizza. Durante la fase di progettazione logica si studiano anche proprietà che caratterizzeranno il funzionamento del sistema di gestione dei dati. L' integrità è garantita se i dati contenuti nella base di dati rispettano in ogni momento i vincoli esposti nella fase di analisi dei requisiti (vincoli desiderati dagli utenti) La consistenza è garantita se ogni utente riceve le stesse informazioni se interroga nello stesso modo la base dati a patto che non siano stati modificati i dati

Le procedure di ripristino devono garantire gli utenti da qualunque tipo di malfunzionamento Il sistema deve impedire accessi non autorizzati per il rispetto delle norme di sicurezza. La progettazione logica deve essere realizzata mediante le tre fasi di seguito riportate: Traduzione canonica Progettazione sottoschemi Prima progettazione Di principio dei programmi Traduzione canonica è la traduzione dello schema concettuale in uno schema logico equivalente in termini del modello di dati utilizzato ( relazionale, gerarchico, reticolare) Progettazione dei sottoschemi equivalenti agli schemi utente. Progettazione delle specifiche dei programmi applicativi ossia delle operazioni che permetteranno ai programmi di accedere alle informazioni di loro interesse. PROGETTAZIONE FISICA La progettazione fisica riguarda gli aspetti più hardware e realizzativi del sistema di gestione della base di dati. Di seguito si riportano alcuni degli aspetti analizzati e definiti durante la progettazione fisica. Tecniche di organizzazione degli archivi Dimensionamento delle aree di overflow Tecniche di allocazione degli archivi sulle memorie di massa Scelta del fattore di blocco per i diversi archivi Definizione dei puntatori utilizzati negli archivi Scelta degli indici di manutenzione e efficienza per il monitoraggio del sistema.

ESEMPI DI RPOGETTAZIONE PRENOTAZIONI AD ALBERGHI Descrizione informale del processo Il database deve rappresentare le prenotazioni fatte da clienti ad un albergo. Si vogliono mantenere informazioni sui clienti e sulle prenotazioni. Dei clienti si vogliono mantenere dati identificativi. Si vogliono mantenere dati identificativi dell'albergo, il numero di camere (suddivise in singole, doppie, triple) Delle prenotazioni si vogliono mantenere le informazioni riguardo a chi l'ha fatta e per quale albergo, la data di arrivo e quella presunta di partenza (o il numero presunto dei giorni prenotati), quale tipo di stanza un cliente ha prenotato. Ogni cliente può' prenotare più' stanze nello stesso periodo. Si voglia mantenere dati riguardo lo stato di occupazione reale dell'albergo mediante registrazioni Progettazione concettuale mediante i modelli entità-corrispondenze utente. Schema Utente 1 Schema Utente 2 cliente cliente 1 1 N prenotazione 1 Schema Logico cliente 1 1 N prenotazione 1 1 Registrazione 1 Registrazione 1 1 Registrazione Nei due schemi utente ottenuti abbiamo definito tre entità: Clienti Prenotazioni Registrazioni Dettaglio delle entità: Clienti[Nome, Cognome, Indirizzo, Recapito] Prenotazione[Data, giorni, nome_cliente, Recapito_Cliente, Stanza, Tipo, Prezzo] Registrazione[Data_registrazione, Cliente, recapito_cliente, Camera]