KNODA – la prima guida italiana - sicuramente (MS Access per GNU/Linux?) Augusto Scatolini ([email protected]) Ver. 1.0 Aprile 2010 Introduzione Prerequisiti Database Creare un nuovo DataBase con KNODA Aprire un DataBase esistente Biblioteca Database Relazionale Maschere – Schede (Forms) La maschera m_gen_lin_aut Il pulsante “Chiudi” La maschera Autore La maschera libro in sola lettura La maschera libro operativa La maschera Menu Stampa Introduzione Dopo la presentazione di OpenOffice.org Base e di KEXI, andiamo a vedere un'altra valida alternativa a MS Access per GNU/Linux ovvero KNODA KNODA è l'acronimo di Knorr's Datenbank (la banca dati di Knorr) l'autore si chiama infatti Horst Knorr KNODA è un'interfaccia di database per KDE, quindi solo per GNU/Linux, ma funziona anche se KDE non è installato, per esempio usando GNOME. E' basato sulle classi HK ed è rilasciato sotto GNU General Public License (GPL). Knoda permette di: * definire e cancellare database (archivi); * creare, modificare e cancellare tabelle e indici; * aggiungere, modificare e cancellare dati nelle tabelle; * definire, eseguire e salvare query sql; * definire, eseguire e salvare query tramite l'interfaccia grafica QBE "Query By Example"; * creare, modificare e cancellare viste; * importare e esportare dati nel formato CSV; * definire e usare maschere; * definire e stampare report; e * scrivere proprie estensioni usando l'interprete integrato Python quale linguaggio di scripting La sua architettura di driver permette di connettersi a diversi server database (Dbase/Xbase, Firebird, MS Access/Mdbtools, Mysql , Paradox, Postgresql, SQLite or ODBC). Home page: http://www.knoda.org/ Prerequisiti Dato che in questo esempio utilizzeremo KNODA con un archivio MySQL, oltre, ovviamente ad avere una macchina GNU/Linux anche senza KDE installato, è necessario avere installato il server Mysql Quindi tramite Synaptic, per esempio, installiamo i pacchetti • mysql-server • mysql-admin • mysql-query-browser poi sempre da Synaptic installiamo il pacchetto KNODA Database Creare un nuovo DataBase con KNODA All'apertura di Knoda appare la seguente finestra Premendo il pulsante “Connetti” si apre il pannello di connessione ( a destra), dopo aver scelto mysql come Database e aver premuto OK appare il pannello KNODA (in basso) dove si può creare un nuovo archivio database agendo sul menu File → nuovo Database digitiamo ad esempio “primodatabase” Ora dopo averlo selezionato il database attivo è “primodatabase” Aprire un DataBase esistente Verosimilmente il database esistente da aprire è stato creato direttamente con Mysql, quindi apriamo MySQL Administrator e previa autenticazione ci connettiamo (figura a destra). Questo in basso è il pannello di MySQL. Dal menu “Catalogs” si possono aprire, modificare o cancellare gli archivi database che qui si chiamano “Schema” Quindi cliccando con il tasto destro del mouse nel riquadro Schema si potrà creare un nuovo database Digitiamo per esempio TEST Così avremo il nuovo database TEST nel riquadro degli SCHEMI. Quindi, apriamo KNODA e premiamo su connetti Invece di indicare mysql come database da aprire scriviamo TEST e potremo così lavorare con KNODA sul database TEST Biblioteca Analogamente a quanto mostrato con le guide di OpenOffice.org Base e di KEXI anche in questo caso useremo come esempio l'archivio “Biblioteca” Creiamo con KNODA l'archivio Biblioteca o apriamolo dopo averlo creato con MySQL. Il database prevede 4 tabelle: autore, genere, lingua e libro Iniziamo a creare (tasto destro su Tabella) la prima tabella “autore” i campi di esempio della tabella autore sono: • • • • • • • id_autore autore nato_il nato_a morto_il morto_a foto tipo: Autoincremento: Si chiave primaria: Si non nullo: Si tipo: Testo dimensione: 50 tipo: Data tipo: Testo dimensione: 10 tipo: Data tipo: Testo dimensione: 10 tipo: binario poi creiamo la tabella genere i campi di esempio della tabella genere sono: • • id_genere tipo: Autoincremento: Si chiave primaria: Si non nullo: Si genere tipo: Testo dimensione: 50 poi creiamo la tabella lingua i campi di esempio della tabella lingua sono: • • id_lingua tipo: Autoincremento: Si chiave primaria: Si non nullo: Si lingua tipo: Testo dimensione: 50 infine creiamo la tabella libro i campi di esempio della tabella libro sono: • • • • • id_libro titolo autore genere lingua tipo: Autoincremento: Si chiave primaria: Si non nullo: Si tipo: Testo dimensione: 50 tipo: Intero dimensione 20 tipo: Intero dimensione 20 tipo: Intero dimensione 20 Database relazionale Il DataBase Relazionale serve a risolvere il problema della Ridondanza inutile e pericolosa. La Tabella dove verranno registrate le informazioni dei libri sarà qualcosa come questo: In questa Tabella c'è un campo di tipo Contatore id_libro (il primo) che è automatico e quindi non va digitato, c'è il campo titolo che è diverso per ogni libro e quindi va digitato poi ci sono informazioni (campi) come autore, genere e lingua che sono ripetitivi. Nessuno ci impedisce di scriverli ogni volta (per ogni libro) ma oltre alla perdita di tempo può accadere di commettere degli errori per cui una volta si scrive “italiano” e un'altra “italiana”. Questo comporterà errori nelle future analisi dell'archivio perché (in questo esempio) la lingua italiana verrebbe conteggiata due volte. E' più funzionale, come abbiamo fatto, creare una tabella per i libri e delle Tabelle specifiche per gli autori, per il genere e per la lingua e metterle in relazione in modo tale il dato dell'autore (per esempio) non deve essere digitato ma selezionato dalla relativa Tabella o Query, lo stesso per il genere e per la lingua. In questo modo si ha anche un altro enorme vantaggio: supponiamo di aver registrato nella Tabella lingua la lingua “INDI”, poi supponiamo di registrare 3.000 o 4.000 libri in lingua “INDI” e poi supponiamo di scoprire che invece di “INDI” avremmo dovuto scrivere “HINDI” E' sufficiente aprire la Tabella lingua e modificare la parola INDI in HINDI, automaticamente – per via della relazione – tutti i 3000 o 4000 libri avrebbero la parola INDI sostituita con HINDI. Quindi ora che abbiamo creato le tabelle vediamo le relazioni da un punto di vista teorico: • • • • • id_libro titolo autore genere lingua tipo: Autoincremento: Si chiave primaria: Si non nullo: Si tipo: Testo dimensione: 50 tipo: Intero dimensione 20 ------> relazione con -----> id_autore tab autore tipo: Intero dimensione 20 ------> relazione con -----> id_genere tab genere tipo: Intero dimensione 20 ------> relazione con -----> id_lingua tab lingua creazione delle relazioni da un punto di vista pratico Il primo passo è quello di creare delle viste delle tabelle da mettere in relazione con libro Cliccando con il destro su Viste si può creare una nuova vista, ad esempio q_lingua: Agendo sulla penultima icona (con la croce gialla) si può aggiungere la tabella lingua nel pannello della vista Si posiziona il campo id_lingua sulla prima colonna e il campo lingua sulla seconda colonna. L'unica modifica da fare prima di salvare la vista (che poi è una query di ordinamento) è ordinare (appunto) il campo lingua come Crescente. L'equivalente comando SQL avrò la seguente sintassi: Dopo aver inserito nella tabella un paio di valori come “italiano” e “arabo” questo a destra è il risultato ----------------------------------------> Se invece si apre la vista (query) q_lingua si vedranno gli stessi valori ma ordinati alfabeticamente -------------------------------> La stessa identica procedura deve essere fatta per tabella genere -----> vista q_genere e tabella autore ------> vista q_autore A questo punto torniamo sulla tabella libro, in modalità visualizza (icona azzurra dopo la matita che rappresenta la struttura) e clicchiamo sull'icona “Griglia di riepilogo” la quartultima. Selezioniamo il campo autore e nella scheda Casella Combinata (a destra) selezioniamo Vista come Datasource, q_autore come casella combinata, id_autore come campo della casella combinata e autore come Campo mostrato Ripetuto l'analogo procedimento per i campi genere e lingua (volendo anche per foto) nei campi relazionati della tabella libro appariranno dei menu a tendina dai quali si potrà selezionare (non digitare) il valore desiderato da un elenco ORDINATO ALFABETICAMENTE Maschere – Schede (Forms) In questo capitolo vedremo come costruire cinque Maschere, il menu, la maschera libro di lavoro, la maschera libro di sola visualizzazione, la maschera autore e la maschera autore-genere-lingua Prima di disegnare la Maschera Menu è necessario disegnare le altre maschere La maschera m_gen_lin_aut Cliccando con il destro su Scheda si può creare una nuova scheda in modalità struttura. Inseriamo una casella di riepilogo con il pulsante n. 9 da destra Agendo sul pulsante con i tre puntini si apre il pannello per scegliere il datasource (sorgente) Una volta selezionato come tipo Tabella e come tabella autore si clicca su aggiungi A questo punto dal menu a tendina Datasource si può selezionare autore. Quello a destra è il risultato: una tabella dentro una maschera Analogamente si può inserire la vista della tabella dentro la maschera ma come si può vedere risulterà di sola lettura Per decorare la maschera è sufficiente cliccare prima sullo sfondo e poi selezionare un colore nella scheda Formato il pulsante “Chiudi” Si disegna un pulsante sulla maschera tramite il comando si inserisce il testo nel campo etichetta della scheda Data e dopo aver eventualmente personalizzato il colore tramite la scheda Formato si passa alla scheda Evento. Nel menu a tendina Azione (Evento) si sceglie “Chiusura Scheda (Form)” Dopo aver inserito nella maschera anche la tabella lingua e genere si salva la maschera con il nome m_gen_lin_aut Scheda Autore Si crea una nuova maschera in struttura, si disegnano 6 campi utilizzando il comando campo e il riquadro per la foto dell'autore con il comando immagine poi come mostrato prima si sceglie come datasource la tabella autore e si associa ogni oggetto sulla maschera con il rispettivo campo della tabella Questo sarà il risultato, ovviamente le immagini degli autori devono essere presenti sul disco per poterli selezionare cliccandoci con il tasto destro del mouse Scheda Libro in sola lettura Si crea la solida Scheda, si può aggiungere un titolo e altre indicazioni con il pulsante (casella di testo) poi si inseriscono 2 campi (per il contatore e per il titolo) e tre caselle combinate una per l'autore una per il genere e una per la lingua. Infine si aggiunge una sottomaschera (SubForm) collegata con il campo autore che mostrerà la maschera autore che sarà Questa maschera (molto bella) ha solo una specificità: è di sola lettura, si possono ricercare determinati libri ma non si possono inserire nuovi libri. Scheda Libro operativa Per creare una maschera libro “operativa” è sufficiente copiare la maschera precedente e cancellare la sottomaschera o subform In fondo alla maschera si può notare il pulsante aggiungi record attivo La scheda menu La scheda menu altro non è che una collezione di pulsanti che aprono Tabelle, Query (Viste) e Maschere più un pulsante che chiude l'applicazione KNODA. Come mostrato nella sezione “Il pulsante chiudi” ad ogni pulsante si può associare un particolare evento come “apri Tabella” o “apri query” o “apri Maschera” o “chiudi l'applicazione” Stampa Per la stampa veloce del registro dei libri, o di una qualunque tabella o Query, visto che la sezione Report di KNODA non è molto affidabile si può usare il pulsante “stampa” che è associabile all'azione “Preview” che quando selezionato mostrerà qualcosa come questo FINE Questo documento è rilasciato con licenza Copyleft (tutti i rovesci sono riservati) altre miniguide http://www.comunecampagnano.it/gnu/miniguide.htm