Menù del sito:

Base di Dati e SQL

 

In informatica, il termine base di dati o banca dati (abbreviato con la sigla DB dall'inglese "Data Base"), indica un insieme di dati, omogeneo per contenuti e per formato, memorizzati in un elaboratore elettronico e interrogabili via terminale. Le informazioni contenute in una base di dati sono strutturate e collegate tra loro secondo un particolare modello logico scelto dal progettista, esempio è quello che abbiamo studiato noi quest'anno ovvero il modello relazionale.
Gli utenti si interfacciano con le base dati attraverso i cosiddetti query language (query di ricerca o interrogazione, inserimento, cancellazione, aggiornamento) e grazie a particolari applicazioni software dedicati (DBMS). Nelle basi di dati più moderne, ovvero quelle basate sul modello relazionale, i dati vengono suddivisi per argomenti(Tabelle) e poi tali argomenti vengono suddivisi per categorie (Campi) con tutte le possibili operazioni di cui sopra.
La funzionalità di una base di dati dipende in modo essenziale dalla sua progettazione: la corretta individuazione degli scopi della base di dati e quindi delle tabelle, da definire attraverso i loro campi e le relazioni che le legano, permette poi una estrazione dei dati più veloce e, in generale, una gestione più efficiente. Nell'ambito dell'utilizzo/amministrazione della base di dati, una qualunque operazione sulla base di dati da parte dell'utente/amministratore su DBMS è ottenibile tramite un opportuno linguaggio attraverso un DBMS manager ad interfaccia grafica o ad interfaccia a riga di comando.
In generale è possibile distinguere più linguaggi per basi di dati (ciascuno con lessico e sintassi che definiscono tutte le istruzioni possibili) a seconda del loro utilizzo o finalità a partire dalla creazione/progettazione, gestione, ristrutturazione, sicurezza, fino all'interrogazione della base di dati stessa. Il linguaggio attualmente più utilizzato nonchè quello visto quest'anno è SQL, un linguaggio testuale iterattivo. SQL(Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS) progettato per:

Con SQL si leggono, modificano, cancellano dati e si esercitano funzioni gestionali ed amministrative sul sistema dei database. La maggior parte delle implementazioni dispongono di interfaccia alla riga di comando per l'esecuzione diretta di comandi.

DML-Manipolazione dei dati

Abbiamo accennato prima che con SQL e possibile, oltre a diverse operazioni, manipolare i dati attraverso comandi per inserire, modificare ed eliminare i dati all'interno delle tabelle di un database:

Quando si parla di Interrogare una base di dati si parla di DQL(Data Query Language) e si parla di comandi per leggere ed elaborare i dati presenti in un database:

Le Transazioni

Una transazione è un blocco di istruzioni che sono strettamente correlate tra loro. Nel caso in cui per qualsiasi motivo (un errore interno al DBMS, un errore nelle istruzioni SQL, un errore di sistema) una delle istruzioni non arrivi a compimento, l'intera transazione verrà annullata. Si dice quindi che una transazione è un'operazione che gode delle proprietà A-C-I-D:

Una transazione per iniziare esplicitamente utilizza il comando BEGIN TRANSACTION [transaction_name]. Alla fine di una transazione ci si divide in due tipi di conclusione della transazione, ovvero, in caso di annullamento o errore si stabilisce il ROLLBACK [TRANSACTION] [transaction_name].
Mentre per confermare una transazione quando questa và a buon fine si utilizza il COMMIT [TRANSACTION] [transaction_name].

 

Vincolo di Integrità dei dati.

Un vincolo di integrità dei dati è una proprietà che deve essere soddisfatta dalle istanze di una base di dati. Ogni vincolo può essere visto come un predicato che può assumere il valore vero o falso: l'istanza soddisfa il vincolo se il predicato assume il valore vero, viceversa se assume valore falso.
Esistono due grandi tipologie di vincoli: quelli intrarelazionali che interessano una sola tabella e quelli interrelazionali che definiscono legami tra due o più tabelle:

Vincolo di Integrità Referenziale.

Nell'ambito dei RDBMS, l'integrità referenziale è un vincolo di integrità di tipo interrelazionale ovvero una proprietà dei dati che, se soddisfatta, richiede che ogni valore di un attributo (colonna) di una relazione (tabella) esista come valore di un altro attributo in un'altra o nella stessa relazione.
Meno formalmente, nei database relazionali, affinché sia rispettata l'integrità referenziale, ogni campo in una tabella che sia stato dichiarato come foreign key può contenere solo valori della chiave primaria o chiave candidata di una tabella "madre" relazionata. Per esempio, cancellare un record che contiene un valore a cui fa riferimento una foreign key di un'altra tabella violerebbe l'integrità relazionale.

 

Normalizzazione di una base di dati

La normalizzazione è un procedimento volto all'eliminazione della ridondanza dei dati e conseguente rischio di incoerenza del database, esistono tre livelli (forme normali) per la qualità della base di dati:

Il processo di normalizzazione si basa sul fatto che se una relazione contiene più concetti tra loro indipendenti, la si suddivide in relazioni più piccole. Questo processo deve essere applicato in modo che non comporti perdita di informazioni, in modo da garantire la ricostruzione originaria giusta, e conservi le dipendenze, ovvero i vincoli di integrità.