Sei qui: Home » Guide » MySQL » Guida di base a MySQL » La struttura di un database

La struttura di un database

Come per qualsiasi altro database anche MySQL segue una logica che è caratterizzata dalla catalogazione delle strutture che contengono i dati. Il livello più alto di questa struttura è il database che rappresenta il "contenitore" delle tabelle. Ogni database ha un proprio nome che, ovviamente, deve essere univoco e inoltre dovrebbe non contenere punti nel proprio nome. Le tabelle sono, gerarchicamente, contenute all'interno di un database e rappresentano un contenitore che al cui interno trovano posto un insieme di campi. Possiamo pensare alle tabelle come degli elementi propri del database che contengono dei dati che hanno in comune delle determinate caratteristiche. Un campo è l'elemento più piccolo, dal punto di vista della gerarchia, di tutto il database e rappresenta l'elemento che descrive e contiene i valori. Un insieme di campi forma un recordset.

Esempio di organizzazione di un database

Questo esempio non vale esclusivamente per MySQL in quanto tutti i database razionali seguono lo schema database->tabella->recordset(campo). Pensiamo ad un database che serve ad una banca per tenere l'archivio dei clienti ed i movimenti sul conto corrente per tipologia. Il database che chiameremo banca avrà le tabelle clienti, che contengono l'anagrafica e l'identificativo dei clienti, i tipi di movimento (prelievo, versamento, bonifico) ed i movimenti con i rispettivi indicativi. È importante sapere che, in genere, si rende necessario identificare ogni singolo recordset mediante un ID univoco, ovvero mediante un identificatore che non può essere assegnato ad altri recordset. Riepilogando il nostro database dovrebbe avere le seguenti tabelle: Costruiamo adesso l'ipotetica tabella clienti per illustrare meglio l'identificativo:

 

ID NOME COGNOME TELEFONO DATA_APERTURA_CONTO TIPO_CONTO
1 Fabrizio Rossi 123456789 15/06/2003 family
2 Roberta Bianchi 005112233 01/07/2003 family
3 Giorgio Verdi 00468478 15/09/1999 family
4 Ideal Service srl 1567531 30/01/2004 impresa

 

Come vediamo esiste un campo (ID) che contiene un numero univoco che identifica il cliente. Questo torna utile qualora volessimo operare delle modifiche al cliente oppure volessimo individuarlo mediante il suo identificativo personale. Da notare che l'insieme di ID, nome, cognome, telefono, data_apertura_conto, tipo_conto rappresentano, per ogni singolo cliente, un recordset. La tabella tipi_movimento descrive i vari movimenti che un cliente può fare. Possiamo ipotizzare i versamenti di contante, versamenti di assegni, bonifici in uscita, bonifici in entrata e via dicendo. Potremmo realizzare la struttura in questo modo:

 

Tabella tipi_movimento
ID tipo descrizione
1 entrata Assegno riscosso
2 entrata Versamento contanti
3 entrata Bonifico in entrata
4 uscita Assegno emesso
5 uscita Prelievo in contanti
6 uscita Bonifico emesso

 

La tabella "tipi_movimento" descrive, pertanto, esclusivamente la tipologia del movimento. Ogni singola transazione va memorizzata in una tabella a parte che potremmo chiamare movimenti. La struttura, con qualche record di esempio, potrebbe essere la seguente:

Tabella movimenti
ID ID_cliente tipo data valuta
1 1 2 16/07/2009 500.00
2 1 4 22/08/2009 250.00
3 2 1 23/08/2009 1000.00
Ricerca
News
giu 3, 2010
È stato appena rilasciato, dalla società JetBrains, un nuovo IDE per la creazione rapida di progetti Web/PHP/MySQL.

tag: phpstorm, IDE, php

apr 3, 2010
Rilasciato JQuery UI in versione stabile. La release 1.8, oltre a numerosi bugfix, possiede due interessanti Widgets.

tag: jquery

mar 12, 2010
È stato da poco rilasciato il famoso forum SMF in versione 2.0RC3; tanti bugfix e un'aspetto più consolidato.

tag: smf, vbulletin, forum

mar 11, 2010
Un articolo "passo-passo" che spiega come configurare Google Apps con un qualsiasi tipo di pacchetto TopHost. Un'accoppiata vincente!

tag: TopHost, Google Apps

mar 9, 2010
Inserita la guida completa a PHP

tag: howtoprog

mar 8, 2010
Il sito è in fase di restyling; ci scusiamo per gli eventuali disagi ma, come vedrete a breve, vale la pena pazientare qualche giorno!