Visitatori: 1669
Al fine di effettuare la progettazione logica dei dati è necessario utilizzare un modello logico.
Il modello logico adottatto maggiormente oggi è il modello relazionale che si basa sui concetti di relazioni e tabelle.
Per capire cosa si intende per relazione consideriamo due insiemi D1 e D2, viene detto prodotto cartesiano fra D1 e D2, l’insieme delle coppie ordinate di tutti gli elementi dei due insiemi. D1 e D2 vengono detti domini della relazione.
Una rappresentazione grafica della relazione è quella sotto forma tabulare. In queste tabelle il numero di colonne viene detto grado della relazione, mentre il numero delle n-uple, ovvero delle righe (una riga viene anche detta tulpa), viene detto cardinalità della relazione.
Infine, all’interno delle relazioni viene assegnato un attributo a ciascun campo; questo non è altro che una descrizione della colonna, e quindi sarà il nome del campo nella rappresentazione tabulare. La chiave è invece un attributo che identifica univocamente le righe della tabella.
Le caratteristiche fondamentali del modello relazionale sono:
- tutte le righe hanno lo stesso numero di colonne;
- gli attributi sono informazioni elementari;
- i valori assunti dai campi/colonne sono dello stesso tipo;
- ciascuna riga è identificata da una chiave primaria;
- le n-uple non sono necessariamente ordinate (per un campo).
Gli operatori che consentono di eseguire le interrogazioni sulle basi di dati sono dette operatori relazionali; i principali sono:
- selezione, dà come risultato una relazione costituita dalle sole n-uple che soddisfano una data condizione;
- proiezione, il risultato è una nuova relazione costituita dalle colonne corrispondenti agli attributi prefissati;
- join, il risultato è la combinazione di due relazioni che hanno in comune due o più attributi.
Se le tabelle su cui si opera hanno una struttura tabulare omogenea si possono effettuare anche altre operazioni:
- unione, il cui risultato è una nuova tabella contenente le righe della prima e seconda tabella con eliminazione delle ripetizioni;
- intersezione, la quale genera una nuova tabella contenente le sole righe comuni;
- differenza, che produce una nuova tabella contenente le sole righe della prima tabella non contenute nella seconda.
L’obiettivo della progettazione logica è quello di costruire uno schema logico in grado di descrivere, in maniera corretta ed efficiente, tutte le informazioni contenute nello schema E/R prodotto nella fase di progettazione concettuale.
Non si tratta di una semplice traduzione da un modello ad un altro perché, prima di passare allo schema logico, lo schema E/R deve essere ristrutturato.
Mentre la progettazione concettuale ha come obiettivo la rappresentazione accurata e naturale dei dati di interesse dal punto di vista del significato che hanno nelle applicazioni, la progettazione logica costituisce la base per l’effettiva realizzazione e deve tener conto, per quanto possibile, delle prestazioni del sistema che si andrà a realizzare: questa necessità può portare ad una ristrutturazione dello schema concettuale che renda più efficiente l’esecuzione delle operazioni previste, trascurando alcune regole della progettazione logica. (Ad esempio la ridondanda dei dati che teoricamente parlando dovrebbe essere assolutamente evitata, si rivela spessi necessaria per velocizzare l'esecuzione di alcune query su database complessi).
Pertanto, la ristrutturazione dello schema E/R comprende le seguenti fasi:
- Analisi delle ridondanze. Si decide se eliminare o mantenere eventuali ridondanze presenti nello schema.
- Eliminazione delle generalizzazioni. Tutte le generalizzazioni presenti nello schema vengono analizzate e sostituite da altri costrutti.
- Partizionamento/Accorpamento di entità ed associazioni. Si decide se è opportuno partizionare concetti dello schema (entità e/o relazioni) in più concetti o, viceversa, accorpare concetti separati in un unico concetto.
- Scelta degli identificatori primari. Si seleziona un identificatore per quelle entità che ne hanno più di uno.
Durante la ristrutturazione dello schema concettuale si è scelto di eliminare l’entità Keyword. A tal fine si è aggiunto un nuovo attributo alla tabella Articoli e cioè “Parole_chiave”.
Lo schema E/R risultante è rappresentato in Figura
Tuttavia è necessaria un’ulteriore modifica, infatti la relazione “relativo” che dovrebbe contenere l’identificatore dell’articolo e quello della rivista, creerebbe dati ridondanti. La soluzione migliore è quella di inserire l’identificatore della rivista ID_RIVISTA come attributo della tabella articoli.
A partire dallo schema E/R ristrutturato analizzato precedentemente è possibile costruire lo schema relazionale della realtà di interesse. Questo è di seguito riportato
- AUTORE (ID, Nome, Cognome, Centro);
- SCRIVE (ID_AUTORE, ID_ARTICOLO);
- ARTICOLO (ID, Titolo, Parole_chiave, Sommario, pdf_file, ID_RIVISTA);
- RIVISTA (ID, Anno, Numero, Volume);
Tanto uno schema E/R quanto una schema relazionale non riescono a documentare i vincoli di integrità di dati. Pertanto ai suddetti schemi, in particolare a quello relazionale, va aggiunta una opportuna tabella il cui scopo è specificare tali vincoli.
Nel Prossimo Articolo approfondiremo la Progettazione di un'applicazione basata sul nostro esempio e introdurremo il concetto di Diagrammi di Flusso.

|