34 907
contributi
m (Robot: Automated text replacement (-<i>(.*?)</i> +''\1'')) |
|||
== Tipologie di strutture dati ==
== Principi base per la costruzione e la gestione di un database ==
Il miglior modo per comprendere come impostare una corretta struttura di un database è provare a crearne una.
Un esempio classico di una base di dati può essere un elenco di persone di cui vogliamo memorizzarne il nome, il cognome, l'indirizzo, il telefono, l'età e il numero di computer posseduti.
=== Visualizzazione tabulare dei dati: campi e record ===
Il più diffuso modo di visualizzare una base di dati è inserirli in una griglia di questo tipo:
{| BORDER="1" CELLSPACING="0" CELLPADDING="2"
Abbiamo quindi visualizzato i dati in una struttura a tabella dove in ogni cella è memorizzato un valore corrispondente ad un aspetto (campo) di una persona (record).
=== Capire il tipo di dati che si sta organizzando ===
Per strutturare correttamente dei dati, il primo passo è capire di che tipo sono, specialmente in relazione all'uso che se ne dovrà fare.
|}
=== Definire regole di convalida, maschere di input e campi obbligatori ===
Esiste la possibilità di bloccare l'inserimento di dati che non rispettino regole predefite, come ad esempio impedire l'inserimento di date di nascita superiori a quelle del giorno corrente o anche superiori a quelle di esattamente 18 anni fa, volendo per esempio dati di sole persone maggiorenni; per ogni regola di convalida è consigliabile, se si è in grado, far comparire un messaggio per l'operatore che inserisce il dato con la spiegazione dell'errore di inserimento eventualmente commesso.
Un'altra esigenza spesso fondamentale è rendere obbligatorio l'inserimento del valore in un determinato campo, prima di memorizzare un nuovo record; pensiamo ad un database indirizzario, usato per stampare etichette per fini postali: il campo o i campi che formano l'indirizzo completo devono essere obbligatori, in quanto non indicare nessun indirizzo equivarebbe a rendere inutile la stampa di un'etichetta.
=== Chiavi per identificare univocamente ogni record ===
Un esigenza primaria in un database è consentire l'identificazione univoca di un record, il fisco italiano ad esempio per non confondere la dichiarazione dei redditi di due persone con nome e cognome uguale ha ideato il codice fiscale (un codice di tipo posizionale, dove cioè ogni carattere prende senso a seconda della posizione che occupa; in grado di memorizzare 3 lettere del nome, 3 lettere del cognome, le ultime 2 cifre dell'anno di nascita, un codice legato alla città di nascita e il genere maschile o femminile) confidando nel fatto che non esistano due persone con lo stesso nome, cognome, data e luogo di nascita.
|}
=== I database relazionali ===
Si definiscono database realazionali i database che consentono di creare relazioni tra i record di più tabelle, tali relazioni saranno definite per due tabelle alla volta, utilizzando la chiave univoca della prima tabella per riferire i dati del record così identificato ad uno o più record della seconda tabella; vediamo con un esempio pratico come realizzare una relazione e quali vantaggi danno questi tipi di database.
il vantaggio più evidente è quello di dover scrivere una volta sola i dati delle ditte, risparmando tempo ed evitando errori di battitura; basterà predisporre, nella tabella delle persone, un campo destinato a contenere solo le chiavi univoche dei record della tabella delle ditte; la possibilità di inserire in questo campo solo il valore di una precisa chiave univoca di una ditta garantisce il corretto riferimento di ogni persona all'esatta ditta per cui lavora.
=== Tipi di relazioni e strutture che ne conseguono ===
Esistono due tipi di relazioni: le relazioni '''uno a uno''' e le relazioni '''uno a molti'''; vediamo che differenza c'è con due esempi: riferiamo ad ogni persona i dati del suo reddito e riferiamo ad ogni ditta i dati dei suoi dipendenti.
==== La relazione "molti a molti" ====
La relazione molti a molti tra due tabelle si può realizzare ma in maniera non diretta, creando una tabella in grado associare con molteplici combinazioni le chiavi univoche di due tabelle; per fare un esempio pratico e capire l'utilizzo di questa relazione possiamo immaginare una tabella per memorizzare film e attori, ovviamente un film viene interpretato da più attori ed un attore nella sua carriera può aver partecipato a più film; creeremo quindi una tabella degli attori:
Incappiamo però nell'inconveniente già precedentemente analizzato della creazione di campi che saranno spesso vuoti o peggio ancora della non possibilità di inserire un quinto film altrettanto importante quanto i primi quattro inseriti.
=== L'integrità referenziale ===
Possiamo immaginare l'integrità referenziale come un insieme di regole che garantiscono l'integrità dei dati quando si hanno relazioni associate tra loro attraverso una chiave esterna: queste regole sevono per rendere valide le associazioni tra le tabelle e per eliminare gli errori di inserimento, cancellazione o modifica di dati collegati tra loro.
== Il linguaggio SQL ==
=== Premessa ===
La sigla SQL sta per Structured Query Language ovvero si tratta di un linguaggio strutturato per interrogare i database. In origine era chiamato SEQUEL (Structured English QUEry Language).
=== Definizione dei dati ===
=== Definizioni di schemi, tabelle, vincoli e primary key ===
=== Creazione database e tabelle ===
=== Interrogare un database: istruzione SELECT ===
La sintassi del comando
SELECT
{,
FROM
{,
[WHERE
==== Join ====
La sintassi di interrogazione prevista per implementare al suo interno le condizioni di
SELECT
{,
FROM
{,
[WHERE
==== Ordinamento ====
Durante un'interrogazione dei dati presenti nel nostro database, utilizzando la clasula
SELECT
{,
FROM
{,
[WHERE
[ORDER BY
{,
==== Operatori aggregati ====
==== Interrogazioni con raggruppamento ====
==== Interrogazioni di tipo insiemistico ====
==== Interrogazioni nidificate ====
==== Sintassi completa del comando SELECT ====
Possiamo, ora, scrivere una sintassi più completa per l'interrogazione del nostro database tramite il comando
SELECT
{,
FROM
{,
[WHERE
[ORDER BY
{,
[GROUP BY
[HAVING
=== Modifiche di schemi di tabelle: istruzione ALTER TABLE ===
=== Manipolazione dei dati: INSERT, DELETE, UPDATE ===
==== Inserimento righe ====
Il comando che permette di popolare il database è <I>INSERT</i>. La sua sintassi più utilizzata è la seguente:
INSERT INTO
VALUES (
In alternativa si può anche usare:
INSERT INTO
(
La quale permette di inserire nella tabella tutte quelle righe che sono il risultato del costrutto
==== Eliminazione righe ====
Per eliminare righe da una tabella si usa il comando <I>DELETE</i>:
DELETE FROM
==== Modificare le righe ====
Con il comando
UPDATE
SET
<
{,
<
[WHERE <I>Condizione</i>]
=== Sicurezza: l'uso dei privilegi ===
== Manuali d'utilizzo dei software di gestione dei database ==
=== Microsoft Access (versioni 97 e superiori) ===
==== Le tabelle ====
==== Le query ====
==== Le maschere ====
==== I report ====
==== Le macro ====
==== I moduli ====
=== OpenOffice.org Base ===
=== MySQL ===
=== PostgreSQL ===
== Link correlati ==
|
contributi