disign.it | Basi di dati | a digital sign for a best design!
A digital sign for a best design
Programmazione 2.075 visualizzazioni

Basi di dati

18/07/2011

Una base di dati è una "collezione di dati utilizzati per rappresentare le informazioni d'interesse per un sistema informativo".
All'interno di una base di dati , i dati sono organizzati secondo dei modelli (modelli di dati) che rappresentano un insieme di concetti utilizzati per organizzarli e descriverne una struttura che sia comprensibile ad un elaboratore: di conseguenza un modello di dati deve fornire meccanismi di strutturazione per i dati stessi. I più usati, attualmente, sono:
•    modello relazionale;
•    modello gerarchico;
•    modello reticolare;
•    modello ad oggetti.
In questo corso prendiamo in esame solo il modello relazionale, perché il più utilizzato nelle applicazioni Web.
I concetti che permettono di progettare, realizzare e verificare la consistenza di un DB sono:
•    tabella;
•    campi e record;
•    tipi di dati e loro dimensione;
•    chiavi primarie ed indici;
•    relazioni.

Tabella
È l'oggetto fondamentale di un DB: è il contenitore dei dati su cui vogliamo operare. Tipicamente un DB è composto da 1 a N tabelle ognuna delle quali contiene dati "omogenei" fra loro: omogenei significa che, in qualche modo, tutti insieme rappresentano un'informazione distinta ed esaustiva, o una parte di essa, del problema che stiamo analizzando.

Campi e record
Ogni tabella è composta di campi (colonne) e record (righe): i campi hanno la proprietà di contenere dati di identico formato, i record contengono dati di formato diverso. Il formato scelto per un campo è il "tipo di dato" più adatto a rappresentare il dato in questione.

Tipi di dato e loro dimensioni
Esistono 4 tipi fondamentali di dato a cui sono riconducibili tutti gli altri:
•    carattere;
•    numerico;
•    data;
•    binario.
Tutti i database relazionali possiedono questi tipi di dato.

•    Carattere. I dati in questo formato possono contenere qualsiasi valore alfanumerico, ossia stringhe o letterali stringa. Una stringa può anche contenere un numero (vedi il codice fiscale di una persona) ma non è possibile eseguire operazioni aritmetiche su di essa. La lunghezza del dato identifica,  il sottotipo carattere.
•    Numerico. I dati in questo formato possono contenere solo numeri, da 0 9, con o senza valori decimali. Il numero e la sua "precisione" definiscono il sottotipo numerico (byte, integer, long, double, ...). Su di essi è possibile eseguire operazioni matematiche.
•    Data. In effetti il tipo di dato "data" è un numero: il fatto che vediamo una data nel formato gg/mm/aaaa è solo per una visualizzazione migliore del dato.  Nel valore della data non sono memorizzati solo "giorno", "mese" e "anno" ma anche "ore", "minuti", "secondi". Su di esse è possibile eseguire operazioni matematiche.
•    Binario. I campi binari servono solo a memorizzare nel DB degli oggetti, quali documenti, immagini o altro.

L'esistenza di diversi tipi di dato è legata all'ottimizzazione del DB: ogni dato possiede una sua dimensione e questa "pesa" in termini di "byte" una volta memorizzata nel DB. Se non fosse possibile stabilire "quanto spazio deve occupare un dato" ci ritroveremmo con DB enormi e poco efficienti.
Sapere quanto può essere lungo un datoinoltre ci protegge dagli errori: il codice fiscale è di 16 caratteri e quindi un campo lungo 16 mi evita di "inserire per sbaglio" un carattere in più.
Dunque, l'ottimizzazione è fondamentale per la realizzazione di un DB efficiente e snello.

Chiavi primarie e indici
•    Chiavi primarie. In ciascuna tabella, un record deve essere identificabile univocamente: in altre parole, ogni riga deve possedere almeno un campo in cui sia inserito un valore unico. Tale valore unico si chiama appunto chiave primaria.
L'inserimento di una chiave primaria evita errori di input e ricerca; migliora la ricerca di informazioni in DB molto grandi ed articolati.
•    Indici. Se le ricerche all'interno di un DB devono essere fatte anche per campi che non sono chiavi primarie, è possibile indicizzare questi campi per aumentare le prestazioni. Il DB deve memorizzare questi indici a scapito delle dimensioni. Maggiore indicizzazione, maggiore spazio richiesto su disco.
Relazioni
Le relazioni rappresentano il legame tra le varie tabelle di un DB.

La progettazione di un DB efficiente è essenziale per un progetto: un DB costruito male genera problemi nel reperire le informazioni oppure è troppo "lento" nel rispondere alle interrogazioni degli utenti, con tutto quello che comporta sul Web.

← Formati di salvataggio (e compressione) dei file di immagini Approccio a PHP →

Invia una domanda o un commento sull'articolo

I campi obbligatori sono segnalati *

*

*



 

© 2009 - 2017 Impronte digitali di Luca Frassineti. Tutti i diritti riservati.