sei sul sito di Giovanni Fraterno

ATTENZIONE che, per importanza sociale, subito dopo il legame affettivo che si instaura all'interno di una famiglia, viene quello che si instaura fra il professore e i suoi alunni, e che turbare entrambi i rapporti può essere carico di conseguenze (sabato 31° gennaio 2004, il professore).
2) Una generalizzabile analisi di un database
( 1 - 2 - 3 - 4 )

L’analisi di un database consiste nel determinarne il diagramma E/R e le annesse tabelle Microsoft Access.

 

A partire dalla mappa di navigazione ricavata in precedenza, vediamo allora quali sono precisamente le informazioni che vanno gestite tramite database, analizzando di che tipo sono e come devono essere collegate.

 

Intanto, per poter associare una news delle news correlate, o per poter associare un articolo della rassegna stampa, sia a diversi libri, che a diversi scrittori, è utile disporre:

 

- della cosiddetta tabella indice denominata nel nostro caso Tabella Index_news_libri e che appunto permette di creare una relazione molti a molti fra le news correlate e i libri

 



- della tabella indice denominata Tabella Index_news_scrittori e che appunto permette di creare una relazione molti a molti fra le news correlate e gli scrittori

 

- della tabella indice denominata Tabella Index_rassegna_libri e che appunto permette di creare una relazione molti a molti fra la rassegna stampa e i libri

 

- della tabella indice denominata Tabella Index_rassegna_scrittori e che appunto permette di creare una relazione molti a molti fra la rassegna stampa e gli scrittori.

 

Naturalmente, sempre attraverso le 4 precedenti tabelle indice, sarà anche possibile il procedimento inverso, ovvero visualizzare da scheda scrittore e da dettaglio del libro, solo le news correlate e la rassegna stampa inerenti.

 

Lo schema logico o diagramma E/R (diagramma entità-relazioni) che rappresenta i nostri dati è pertanto:

 


Precisato che è sempre bene inserire una chiave primaria in ogni tabella (in maniera tale da identificare univocamente i vari record), le tabelle ed i campi, con annesso formato e annesse dimensioni, del nostro database saranno:

 

Tabella Scrittori

Idscrittore                              contatore                   Chiave primaria

nome                                     testo                          255

cognome                               testo                          255

biografia                                memo            

foto_piccola                          testo                           50

foto_grande                          testo                           50

 

Tabella Libri

Idlibro                                    contatore                   Chiave primaria

Idscrittore                              numerico                   Chiave esterna                    

Idcategoria                            numerico                   Chiave esterna                    

titolo                                      testo                          255

abstract                                 memo            

anno                                     numerico                    4

foto_copertina                       testo                          50

 

Tabella Commenti

Idcommento                          contatore                   Chiave primaria

Idlibro                                    numerico                   Chiave esterna                    

nome                                     testo                          255

commento                             memo             

mail                                       testo                          255

 

Tabella Categorie_libro

Idcategoria                            contatore                  Chiave primaria

nome                                     testo                         255

 

Tabella News

Idnews                                   contatore                 Chiave primaria

data                                       Data/ora

titolo                                      testo                         255

abstract                                 memo                       

testo                                      memo                       

foto                                        testo                         50      

 

Tabella Index_news_libri

Idnews_libri                           contatore                  Chiave primaria

Idnews                                  numerico                   Chiave esterna                    

Idlibro                                    numerico                  Chiave esterna                     

 

Tabella Index_news_scrittori

Idnews_scrittori                    contatore                   Chiave primaria

Idnews                                  numerico                   Chiave esterna                    

Idscrittore                              numerico                  Chiave esterna                    

 

Tabella Rassegna_stampa

Idrassegna                            contatore                   Chiave primaria

testata                                   testo                          255

titolo                                      testo                          255

articolo                                  memo                       

autore                                   testo                          255

data                                      Data/ora                               

foto                                       testo                          50      

 

Tabella Index_rassegna_libri

Idrassegna_libri                   contatore                   Chiave primaria

Idrassegna                           numerico                   Chiave esterna                    

Idlibro                                   numerico                   Chiave esterna                    

 

Tabella Index_rassegna_scrittori

Idrassegna_scrittori             contatore                   Chiave primaria

Idrassegna                           numerico                   Chiave esterna                    

Idscrittore                             numerico                   Chiave esterna                    

 

Tabella Newsletter

Idnewsletter                          contatore                   Chiave primaria

nome                                     testo                          255

cognome                               testo                          255

mail                                       testo                          255

 

Si badi che:

 

- i campi creati con all’interno la parola foto, come ad esempio foto_copertina e foto_grande, sono campi che servono a conservare al loro interno il nome del file immagine abbinato ad un determinato record

 

- e che sebbene sia possibile un’altra soluzione, a quest’ultima si tende a rinunciarvi, e ciò perché aumentano a dismisura le dimensioni della base di dati, riducendone significativamente le prestazioni.

 

Insomma, la problematica dell’inserimento delle immagini all’interno di un database, viene risolta inserendo all’interno del database stesso solo il nome del file immagine, file che fisicamente risiede invece all’interno di una cartella apposita.

 

E’ bene precisare che la chiave esterna, presente anche in alcune tabelle del nostro database, differisce dalla chiave primaria per un semplice fatto, e cioè che la prima è una chiave univoca, ma solo all’interno di un’altra tabella.

 

Il motivo per cui la chiave esterna è presente in entrambe le tabelle e che serve appunto per mettere in relazione i dati delle due suddette differenti tabelle.

 

Ad esempio, Idcategoria è presente sia nella Tabella Categoria_libro e sia nella Tabella Libri, con ogni record della Tabella Libri che mantiene Idcategoria come chiave esterna, e ciò per segnare a quale categoria appartiene.

 

Insomma, esiste una relazione uno-a-molti fra Tabella Categoria_libro e Tabella Libri, nel senso che ogni categoria può avere molti libri, mentre un libro può appartenere ad una sola categoria.

 

A questo punto non rimane che popolare le suddette tabelle grazie a Microsoft Access, dando appunto vita al file editrice.mdb



utenti in questo momento connessi alla rete di siti web di Giovanni Fraterno: