|
Dettagli.... Sarà meglio, prima di continuare, spiegare un po' meglio le scelte fatte nella creazione della struttura degli archivi. Per prima cosa notate la modalità con cui MySqlCC mostra la struttura di una Tabella. Accanto al nome di campo, una "chiave" indica la Chiave Primaria (Primary Key), un pallino gli altri campi indicizzati (di colore verde per gli indici multipli, rosso per gli indici univoci). La colonna "Type" indica il tipo di campo; "Null" informa sulla possibilità di memorizzare valori nulli nel campo. "Key" indica il tipo di Indice, "Default" il valore predefinito, "Extra" altre informazioni sul campo. TbMedia è la nostra tabella principale; possiede un campo "MId" (intero ad incremento automatico) che rappresenta la chiave primaria; i campi "MDes" (Descrizione) e "MUbic" (Ubicazione) sono di tipo varchar; abbiamo scelto una lunghezza massima di 100 caratteri, ma anche 50 magari poteva andare bene. "MDes" è indicizzato, perché probabilmente vorremo eseguire ricerche ed ordinamenti sulla Descrizione. Per quanto non sia il massimo dell'efficienza avere un indice "varchar" di 100 caratteri, in questo caso è indispensabile. I campi "ArgId" e "SuppId" sono le chiavi esterne per le Tabelle TbArgomenti e TbSupporti, cioè i riferimenti in TbMedia ai valori di descrizione presenti "fuori" di TbMedia. Nella tabella principale sono associati ad indice multiplo, nelle tabelle esterne rappresentano la chiave primaria. Notate la scelta dello stesso nome di campo: in database complessi, anche il solo nome di campo può indicare che esiste una connessione logica tra due tabelle, quindi è buona norma usare questa abitudine. TbArgomenti e TbSupporti sono le tabelle che contengono le descrizioni degli argomenti e dei supporti del nostro Archivio; entrambe hanno una chiave primaria di tipo "intero ad incremento automatico" ed abbiamo scelto campi "varchar" non troppo lunghi. Questi campi ("ArgDes" e "SuppDes") sono indicizzati, perchè nell'immissione dei valori nell'archivio useremo delle caselle a discesa ordinate appunto per descrizione (questo sarà più chiaro più avanti). TbUtenti è la tabella dei nostri utenti dei prestiti. Anche qui un campo "intero ad incremento automatico" per chiave primaria ("UtId"), ed un campo "Denominazione" di tipo "varchar" indicizzato. Ho di proposito usato pochi campi, ma questa tabella è ampliabile a piacere con tutte le informazioni che vi servono (numero di telefono, posta elettronica etc.). Infine TbPrestiti, l'elenco dei prestiti effettuati, con un campo "DataPr" che indica la data del prestito, ed uno "PreDataR" che indica la data di restituzione. Anche qui abbiamo degli indici sulle chiavi esterne, cioè "MId" per la tabella dei media, e "UtId" per la tabella degli Utenti. Notate infine che in tutte le tabelle è presente un campo di tipo "timestamp", che viene aggiornato automaticamente dal motore di Db. Questa struttura di archivio è volutamente semplificata, e non pretende affatto essere un modello per una reale gestione, ad esempio, di una Biblioteca. Piuttosto i principi generali sono applicabili nella pratica a TUTTE le procedure di gestione archivi, e quindi su queste basi ognuno potrà ampliare la struttura delle tabelle secondo le proprie esigenze. Ma è arrivato il momento di passare (finalmente...) ad OpenOffice. Finalmente OOo.... Come OpenOffice si collega ai Database OOo permette la consultazione, la modifica e l'integrazione nei documenti dei Db attraverso apposite interfacce che il programma chiama "sorgenti dati". In pratica, quando vogliamo usare i dati di un Db, dobbiamo prima creare una apposita "sorgente dati", che indica ad OpenOffice come "dialogare" col Db stesso. Una volta stabilita questa connessione, il programma integra alcuni interessanti strumenti che permettono di ottenere risultati notevoli anche senza conoscere (quasi) nulla del motore di Db utilizzato. Si possono creare vari tipi di "sorgenti dati", ma in questa sede ci occuperemo in dettaglio di quelle che usano ODBC per l'accesso ai Db. Infatti, come abbiamo già detto, questa modalità di interfaccia è in definitiva quella che ci permette di usare MySql, ma anche qualunque Db abbia un driver ODBC. Dunque è in generale la più flessibile ed usata. Abbiamo già visto come installare in Windows e Linux il driver ODBC per MySql, ma altri drivers possono già essere installati e funzionanti nel sistema. Prima però di creare una sorgente dati, è necessario un ulteriore passaggio. Lo standard ODBC prevede, per l'accesso ad uno specifico Database, la creazione di un "DSN", o "Data Source Name". In pratica si tratta di una interfaccia di configurazione che contiene informazioni sull'Archivio a cui bisogna collegarsi. Infatti i server di Db, come MySql, possono gestire contemporaneamente molti Database diversi, ed è quindi necessario indicare, oltre al tipo di "motore" che vogliamo usare, anche esattamente "a cosa" vogliamo avere accesso. Se volessimo schematizzare questa situazione, potremmo ad esempio usare il diagramma in figura: 
Fig. 4 Come OpenOffice si collega ai Database Generazione del DSN in Windows In Windows, i DSN vengono gestiti da un apposito programma presente nel Pannello di Controllo, nella voce "Strumenti di Amministrazione": "Origine Dati ODBC". Alla partenza, il modulo mostra una finestra come quella in figura:  Fig. 5 Generazione del DSN in Windows Come si vede, esistono tre tipi di DSN: "utente", "di sistema" e "su file". Tralasciando l'ultimo (poco importante ai nostri fini), è importante notare la differenza tra i primi due. Il "DSN Utente" ha valore solo per l'utente che lo crea, mentre quello "di sistema" vale per tutti gli utenti del Computer. Per il resto la procedura da seguire è assolutamente identica. Assicuriamoci che il Server MySql sia attivo e premiamo il pulsante "Aggiungi...". Ci verrà chiesto di selezionare un Driver tra quelli disponibili sul sistema; scegliamo "MySql ODBC 3.51 Driver" e premiamo il pulsante "Fine". Otterremo una finestra come quella in figura. Assegnamo il nome "Mediateca" al nostro DSN, ed una descrizione a piacere al campo "Description". Nei parametri di connessione dobbiamo specificare il nome o l'indirizzo IP del Server ("localhost" se gira sulla nostra stessa macchina), il nome del Database (che deve essere lo stesso usato nella creazione eseguita con MySqlCC), l'utente (nel nostro caso root) e l'eventuale password, la porta (3306 è quella di default e di solito non va modificata). Il pulsante "options" permette di specificare molti ulteriori parametri per la connessione, ma di solito il DSN funziona egregiamente con i valori di default. Per ultimo possiamo testare la nostra connessione con l'apposito pulsante: un messaggio di conferma ci informa che va tutto per il meglio. Confermiamo, ed ora il nostro DSN dovrebbe comparire, col nome di Mediateca, nell'elenco dei DSN utente.  Fig. 6 Generazione del DSN in Windows Generazione del DSN in Linux In Linux è disponibile un programma abbastanza simile per la gestione dei DSN. Posto che anche il pinguino fa la stessa differenza tra DSN "utente" e "di sistema", in SUSE 9.0 il programma può essere richiamato con "Sistema->Configuration->unixODBC Configuration". Dal Tab "User DSN" si sceglie il pulsante "Add..." e si aggiungono i parametri come in figura. Nella casella "server" va immesso l'indirizzo IP (oppure il nome) del server MySql, e nella casella successiva, "Database", il nome del Db creato sul server. A questo punto il DSN è disponibile per tutte le applicazioni che dialogano con i Db tramite ODBC. Tips  Fig. 7 Generazione del DSN in Linux Per quanto sia possibile creare sorgenti dati MySql di sistema, non mi è riuscito, per qualche misterioso motivo, di collegare poi questo tipo di DSN ad Openoffice. Consiglio quindi di utilizzare solo DSN di tipo "utente".
|