KNODA – la prima guida italiana - sicuramente

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