SteLampi Blog

May 13, 2012

Corso Database Relazionali 1.2

Nuova Versione del Corso Database Relazionali.
In questa versione ho aggiunto le nozioni sulle tre forme di normalizzazione della Base Dati.

Scarica qui il pdf.

stelampi

March 29, 2012

Sviluppare con Android

Cosa serve.

Eclipse: è l'IDE di sviluppo per sviluppare in Java.

Android Development Tool (ADT): Contiene le classi e le librerie necessarie per poter sviluppare applicazioni Android.

SDK: è il Software Developemnet Kit che Android fornisce agli sviluppatori. Contiene moltissimi componenti necessari per lo sviluppo delle applicazioni.

Simulatore: è il componente più importante contenuto nel SDK che permette allo sviluppatore di testare direttamente sul proprio computer l'applicazione sviluppata simulando l'apparato fisico.

Java e XML: Java è il linguaggio di programmazione per Android. XML è un linguaggio di marcatura utilizzato principalmente per definire il posizionamento e il layout degli elementi grafici.

October 30, 2011

Linux Day 2011 - Blender 3D

Presentazione in pdf del software Blender al Linux Day 2011 preparata e presentata da me (come associazione Vastacom) e da Riccardo (come associazione Tlug).
Clicca qui.

July 30, 2011

July 26, 2011

Giochi 3D

Cominciamo con il prendere appunti:

Strumenti utilizzati:
- Gimp
- Blender
- JMonkeyEngine

1) Si crea un modello tridimesionale con Blender
2) Si scattano foto e/o si recuperano immagini.
3) Si "fotoritoccano" le immagini con Gimp.
4) Si passa all'applicazione di queste immagini sul modello tridimensionale precedentemente creato.
3) Si esporta il modello creato all'interno dell'ambiente di sviluppo, in questo caso ambiente Java con librerie lwjgl.


Link Utili per imparare:
Fotoritocco GIMP:
- http://gimp.linux.it/www/meta/gimp-it.pdf
Modellazione 3D:
- http://www.blendermagazineitalia.it
- http://www.blendercookie.com/getting-started-with-blender/
- http://gameprog.it/index.php?resource=1153
Ambiente di Sviluppo:
- http://jmonkeyengine.org
- http://www.lwjgl.org
- http://potatoland.org/code/gl/

July 25, 2011

Documentazione GIMP



Manualozzo del programma Open Source Gimp. E' prettamente un Manuale Tecnico di uso delle funzionalità.

Ci sono pochi contributi su come elaborare le foto a livello di tutorial.

Clicca qui

June 2, 2009

Lezione 1.3 - RDBMS: i database relazionali - 2^ parte

Se io prendo un documento tipo la fattura di una azienda emessa da un fornitore a fronte di una vendita di un prodotto abbiamo degli elementi, delle entità in relazione fra loro.
Queste entità sono il cliente, il fornitore, i prodotti, la fattura e mi fermo a questo livello di dettaglio.

Se io voglio registrare queste informazioni in un database posso costruire delle tabelle che tengono memorizzati i dati in questione.
Quindi costruirò una tabella clienti, una tabella fornitori, una tabella prodotti e una tabella fatture.
Queste tabelle come le entità rappresentate hanno delle relazioni fra di loro che permettono di tenere legate le informazioni cliente-fattura-prodotto-fornitore garantendo una buona organizzazione del database stesso.

Infatti il fornitore sarà legato al prodotto, la fattura sarà legata sia ai clienti, sia ai prodotti e sia ai fornitori, nel senso che per avere un senso informativo ha bisogno delle informazioni presenti nelle altre tabelle elencate.
Questa è la funzionalità relazionale che si costruisce fra le tabelle. Ossia il secondo punto della lista.


Possiamo immaginare i legami in questo modo:





( Lista dei Fornitori )
    |                  |
( Fatture ) – ( Lista dei Prodotti )
    |
( Lista dei Clienti )



Il terzo punto si collega molto ai precedenti poiché ne è il completamento.
Questo perché un insieme di tabelle non possono dirsi appartenenti ad un modello relazionale se non utilizzano i vincoli di integrità fra di loro.
I vincoli di integrità sono dei controlli che garantiscono che la fattura numero “9” sia relativa alla merce “z” del fornitore “gamma”.

Questo significa che legano i dati di tabelle differenti fra di loro in modo coerente senza mischiare la fattura “9” con il fornitore “beta” che magari fornisce la merce “xy”.

Tornando allo schema di prima:







( Fornitore “Gamma” )
    |                    |
( Fattura n° 9 ) – ( Prodotto “Z” )
    |
( Cliente “Pippo” )




Anche per questa volta è tutto.

A presto.

Lezione 1.3 - RDBMS: i database relazionali - 1^ parte

Finora abbiamo usato sigle come DB, DBMS che rappresentano in maniera più o meno estesa delle tipologie di database generici.
Dico questo poichè la struttura con cui può essere disegnata una base di dati non è univoca.
Dipende dalle nostre capacità di "architetti" ma anche dalle modalità con cui il DBMS ci permette di costruire le tabelle e le relazioni fra loro.

Tra le architetture che troviamo sul mercato possiamo annoverare i database di tipo gerarchico, relazionale, multidimensionale, object-oriented e, se ne parla da poco tempo, column-based.

Come avrete intuito dal titolo della pubblicazione proveremo ad addentrarci nei database relazionali.

Il pioniere del modello relazionale fu un certo Edgar F. Codd che elenco ben 12 regole per definire un vero e puro database relazionale.
Non ve le elencherò tutte ma solo quelle che per me sembrano importanti e adatte all'approfondimento di questo libro:


Quote


1) Il dato deve essere memorizzato in tabelle in maniera univoca (quindi una sola volta) sulle righe specificando nelle colonne i suoi diversi attributi.

2) Dotato di funzionalità relazionali di "parentela" fra le tabelle.

3) Vincoli di integrità tra le entità rappresentate in tabelle e relazioni.



Per quel che riguarda il primo punto abbiamo già parlato di tabelle nell'esempio della RUBRICA. Quel che rimane da dire che in un database relazionale dobbiamo limitare la ripetizione delle informazioni e cercare di unicizzare i dati in tabella. Questo significa che la riga in cui registriamo il signor Mario Rossi in rubrica sarà una sola in modo tale che io non abbia dubbi quando estraggo il dato che l'informazione che mi viene fornita sia unica.
Il sistema RDBMS mi viene incontro evitando di farmi inserire dati duplicati fornendo all'architetto del DB dei controlli che imposti sulle colonne riescono a evitare tale problema (vincoli di unicità, poi li vedremo).

Gli altri due punti li vediamo alla prossima puntata.
A presto

Lezione 1.2 - Cos'è un database - 3^ parte

Con il ragionamento fatto in questo paragrafo ho voluto semplicemente farvi entrare dentro la definizione del Database.

Ho cercato di portare allo scoperto le sue caratteristiche che possono ai nostri occhi apparire nascoste vedendo un software molto semplice come la nostra rubrica dell'esempio.

Con questo voglio anche dire che le definizioni del database che si possono trovare in giro o che si possono ascoltare nel linguaggio "tecnichese" spesso tendono ad incorporare nel termine "Database" un insieme di concetti differenti che poi sono gli strati / livello che vi ho mostrato.

Dal mio, modesto, punto di vista di apprendista-artigiano del software, a me preme fissare il concetto della differenziazione del motore che opera su una base dati rispetto all'organizzazione delle informazioni contenute nella base dati stessa.

Continuando con l'esempio della rubrica e paragonandolo ad una rubrica di carta dei tempi andati possiamo dire che:


Quote

1) la maschera utente corrisponde all'involucro, la rilegatura alle paginette, alla loro suddivisione ed ergonomia;
2) il motore DBMS corrisponde a noi stessi che cerchiamo, modifichiamo e inseriamo con la penna sulla carta le informazioni di rubrica;
3) il Data Base corrisponde a:


* dettaglio e informazioni predefinite che la rubrica cartacea ci permette di inserire: Nome, cognome, indirizzo, telefono, cellulare, etc.. etc.. (salute!!!)

* il dato vero e proprio che corrisponde alle informazioni inserite: ste, lampi, via le mani di qua 38, 555-*****, 335-879*****, etc.. etc.. (ri-salute!!!).




Per questo paragrafo è tutto.
Alla prossima.

Lezione 1.2 - Cos'è un database - 2^ parte

Come abbiamo visto nella 1^ parte abbiamo suddiviso l'Applicazione Rubrica in due strati.

Nel primo abbiamo solo il contenitore delle informazioni ed è quindi rappresentato da oggetti come tabelle (nel nostro caso la tabella tab_rubrica).
Nel secondo abbiamo raggruppato le parti applicative e funzionali del software Rubrica.

Io però voglio spaccare il pelo in tre.
Il mio obiettivo è suddividere in parti ben definite il software Rubrica.
Mi fermerò comunque alle tre parti principali e non vi tedierò ulteriormente.

Infatti il secondo strato può essere suddiviso ulteriormente in due parti ben definite:


Quote

1) Il motore del database. Questo rappresenta tutti quei metodi pubblici che possono essere utilizzati per inserire, modificare e interrogare il dato immaganizzato nel contenitore.
2) il software che usa questo motore. Questa è la parte che usa questi metodi per permettere ad un utente di inserire, modificare e visualizzare il dato immagazzinato nel contenitore.


Per fare un esempio pratico un utente medio del cellulare quando inserisce un nome in rubbrica usa una interfaccia grafica di inserimento (secondo strato).
L'interfaccia grafica sotto di se traduce quello che è inserito nella casella della rubrica in un linguaggio particolare (SQL che poi vedremo), lo trasferisce al motore (primo strato).
Il motore interpreta questo linguaggio e inserisce il dato nella tabella.

Quindi riassumendo gli strati partendo dal livello più vicino all'utente:


Quote

1) Maschera Utente: che ha in se una interfaccia grafica e la logica di trasformazione delle azioni impartite dall'utente in un linguaggio comprensibile al motore del database (SQL).
2) Motore del database (DBMS). Inserisce, modifica, interroga il database in base ai comandi che gli vengono impartiti dalla Maschera Utente.
3) Data Base o contenitore dei dati che accoglie le informazione passategli dai livelli superiori e le organizza in tabelle (DB).


Vediamo ora gli acronimi:

Quote

SQL = Structured Query Lamguage ossia linguaggio strutturato per fare interrogazioni e modifiche al database.
DB = Data Base ossia Base di Dati.
DBMS = Data Base Management System ossia Sistema per gestire un Data Base.


Per questa seconda parte è tutto.
Nella prossima tireremo le fila per concludere la lezione 1.2.
Alla prossima.