Northwind è un database (è un insieme di dati ed oggetti, contiene tabelle, query, maschere, report, pagine, macro e moduli) e un progetto (è un file connesso ad un database di Microsoft Sql Server per creare applicazioni client/server) di Access nel quale sono contenuti i dati relativi alle vendite della Northwind Traders, impresa fittizia che importa ed esporta specialità alimentari in tutto il mondo. Dalla visualizzazione degli oggetti del database Northwind si possono trarre spunti per realizzare database personalizzati per le proprie necessità.
Operativamente: per creare un nuovo Db le operazioni non sono state troppo difficili. L'esercizio prevedeva la costruzione di Database Access con i dati relativi alle iscrizioni circa le immatricolazioni e le iscrizioni all'Università la Sapienza.
File-->nuovo; DB-->vuoto; nominato con il mio nome e quindi salvato; crea tabella in visualizzazione struttura (o crea tabella con creazione guidata o crea tabella con immissione diretta dei dati). Ho così elaborato su Access una tabella a doppia entrata. Nella quale è bene codificare ogni elemento: *)facoltà= SdC codice 1; Stat codice 2; Sap codice 3.
*)anno= 2207-2008 codice 1; 2008-2009 codice 2; 2009-2010 codice 3. ..l'obiettivo è eliminare le ridondanze per poter analizzare/modificare in modo coerente i dati, in questo caso si permette un'analisi sia per anno che per facoltà. Con Northwind si possono creare relazioni tra i diversi dati delle varie tabelle, ma si deve ricordare che i dati "splittati" nelle differenti tabelle devono essere uniti da un codice (relazione tra Primary Key e Foreign Key. La relazione è 1 a n tra la primary key e tutte le foreign keys).
La Normalizzazione
Col termine normalizzazione si indica il processo di organizzazione dei dati nel database. Si creano tabelle e si definiscono le relazioni tra queste sulla base di regole progettate per proteggere i dati e rendere il database flessibile tramite l'eliminazione della ridondanza e delle dipendenze incoerenti.
La presenza di dati ridondanti comporta uno spreco di spazio su disco e problemi di manutenzione del Db. È più agevole apportare una modifica relativa all'indirizzo/al telefono di uno studente se gli studenti sono tutti memorizzati nella stessa tabella e con una certa modalità.
E' importante tenere a mente che cos'è una dipendenza incoerente perchè di sicuro è intuitivo per un utente cercare nella tabella Studenti l'indirizzo di uno studente specifico, ma può non avere senso cercare in tale tabella informazioni sul titolo di studio dei genitori di quello studente. Un'informazione del genere è correlata allo studente ma sarà posta in un'altra tabella collegata alla prima da un codice che le giunti.
La DenormalizzazioneOperativamente: per creare un nuovo Db le operazioni non sono state troppo difficili. L'esercizio prevedeva la costruzione di Database Access con i dati relativi alle iscrizioni circa le immatricolazioni e le iscrizioni all'Università la Sapienza.

File-->nuovo; DB-->vuoto; nominato con il mio nome e quindi salvato; crea tabella in visualizzazione struttura (o crea tabella con creazione guidata o crea tabella con immissione diretta dei dati). Ho così elaborato su Access una tabella a doppia entrata. Nella quale è bene codificare ogni elemento: *)facoltà= SdC codice 1; Stat codice 2; Sap codice 3.
*)anno= 2207-2008 codice 1; 2008-2009 codice 2; 2009-2010 codice 3. ..l'obiettivo è eliminare le ridondanze per poter analizzare/modificare in modo coerente i dati, in questo caso si permette un'analisi sia per anno che per facoltà. Con Northwind si possono creare relazioni tra i diversi dati delle varie tabelle, ma si deve ricordare che i dati "splittati" nelle differenti tabelle devono essere uniti da un codice (relazione tra Primary Key e Foreign Key. La relazione è 1 a n tra la primary key e tutte le foreign keys).
La Normalizzazione
Col termine normalizzazione si indica il processo di organizzazione dei dati nel database. Si creano tabelle e si definiscono le relazioni tra queste sulla base di regole progettate per proteggere i dati e rendere il database flessibile tramite l'eliminazione della ridondanza e delle dipendenze incoerenti.
La presenza di dati ridondanti comporta uno spreco di spazio su disco e problemi di manutenzione del Db. È più agevole apportare una modifica relativa all'indirizzo/al telefono di uno studente se gli studenti sono tutti memorizzati nella stessa tabella e con una certa modalità.
E' importante tenere a mente che cos'è una dipendenza incoerente perchè di sicuro è intuitivo per un utente cercare nella tabella Studenti l'indirizzo di uno studente specifico, ma può non avere senso cercare in tale tabella informazioni sul titolo di studio dei genitori di quello studente. Un'informazione del genere è correlata allo studente ma sarà posta in un'altra tabella collegata alla prima da un codice che le giunti.
Dal discorso sinora fatto sembra quindi che la qualità di un Db è direttamente proporzionale all'aumentare della suddivisione dei dati in relazioni. La questione è però più complessa poiché allo splitter dei dati in relazioni segue il compito di ricostruzione delle informazioni originarie.
Si parla di denormalizzazione, l'operazione che porta ad accorpare attributi appartenenti a relazioni diverse in un'unica relazione per garantire prestazioni migliori alle ricerche effettuate sulla base di dati.Un caso di denormalizzazione si ha con la creazione di attributi che contengono dati ricavati da altre relazioni. Questo può essere realizzato attraverso le query: l'interrogazione di un database in modo da ottenere dei dati contenuti in uno o più database. Solitamente una query viene passata al Dbms in linguaggio SQL (Structured Query Language). E' quindi il comando che si invia al dbms e che richiede una tabella denormalizzata! Se consideriamo il nostro database con facoltà e studenti iscritti, per sapere a quale facoltà è scritto uno studente dovremmo ogni volta contare le tuple dalla relazione facoltà associate al particolare studente. ** Soluzione alternativa potrebbe essere quella di memorizzare tale numero direttamente nella relazione "studenti", incrementandolo ogni nuovo anno quando conferma o meno la sua iscrizione a qualla facoltà.
In questo modo l'accesso a tale informazione sarebbe immediato. Ma si sa, tutto ha un costo! La denormalizzazione aumenta la complessità del software che utilizza il database, poiché sarà direttamente responsabile dell'aggiornamento dei dati, e di conseguenza aumentano i rischi di inconsistenza dei dati conservati.
**(Una tupla è un generico elemento di una relazione con attributi in un database relazionale. Essa rappresenta l'entità base che deve essere memorizzata nella base di dati. es: studenti ='Marta Zappalà', 'Massimo Bianchi', 'Flavio Rossi'. La variabile studentisi riferisce ad una tupla di elementi (valori)).
Si parla di denormalizzazione, l'operazione che porta ad accorpare attributi appartenenti a relazioni diverse in un'unica relazione per garantire prestazioni migliori alle ricerche effettuate sulla base di dati.Un caso di denormalizzazione si ha con la creazione di attributi che contengono dati ricavati da altre relazioni. Questo può essere realizzato attraverso le query: l'interrogazione di un database in modo da ottenere dei dati contenuti in uno o più database. Solitamente una query viene passata al Dbms in linguaggio SQL (Structured Query Language). E' quindi il comando che si invia al dbms e che richiede una tabella denormalizzata! Se consideriamo il nostro database con facoltà e studenti iscritti, per sapere a quale facoltà è scritto uno studente dovremmo ogni volta contare le tuple dalla relazione facoltà associate al particolare studente. ** Soluzione alternativa potrebbe essere quella di memorizzare tale numero direttamente nella relazione "studenti", incrementandolo ogni nuovo anno quando conferma o meno la sua iscrizione a qualla facoltà.
In questo modo l'accesso a tale informazione sarebbe immediato. Ma si sa, tutto ha un costo! La denormalizzazione aumenta la complessità del software che utilizza il database, poiché sarà direttamente responsabile dell'aggiornamento dei dati, e di conseguenza aumentano i rischi di inconsistenza dei dati conservati.
**(Una tupla è un generico elemento di una relazione con attributi in un database relazionale. Essa rappresenta l'entità base che deve essere memorizzata nella base di dati. es: studenti ='Marta Zappalà', 'Massimo Bianchi', 'Flavio Rossi'. La variabile studentisi riferisce ad una tupla di elementi (valori)).
Nessun commento:
Posta un commento