Una base di dati (o database) è una raccolta organizzata di dati strutturati, solitamente memorizzata elettronicamente in un sistema informatico. Le basi di dati sono gestite attraverso sistemi di gestione di basi di dati (DBMS – Database Management Systems).
Componenti di una Base di Dati
- Dati: Il contenuto effettivo della base di dati, organizzato in tabelle, record, campi, ecc.
- DBMS: Software che gestisce le operazioni sulla base di dati. Esempi includono MySQL, PostgreSQL, Oracle, e Microsoft SQL Server.
- Schema: La struttura della base di dati che definisce come i dati sono organizzati e come le relazioni tra i dati sono gestite.
Tipi di Basi di Dati
- Relazionali: Basate sul modello relazionale, dove i dati sono organizzati in tabelle collegate tra loro tramite chiavi. Esempi: MySQL, PostgreSQL, SQLite.
- NoSQL: Progettate per gestire dati non strutturati o semi-strutturati e per fornire scalabilità orizzontale. Tipologie includono documenti (MongoDB), colonne (Cassandra), chiave-valore (Redis), e grafi (Neo4j).
- In-Memory: Conservano i dati principalmente nella memoria principale (RAM) per velocizzare le operazioni di lettura e scrittura. Esempio: Redis.
- Temporali: Gestiscono dati che cambiano nel tempo e memorizzano lo storico delle modifiche. Esempio: Oracle 12c.
Operazioni Fondamentali
Le operazioni fondamentali su una base di dati sono spesso riassunte nell’acronimo CRUD:
- Create: Inserimento di nuovi dati.
- Read: Lettura e recupero dei dati esistenti.
- Update: Aggiornamento dei dati esistenti.
- Delete: Eliminazione dei dati.
Modello Relazionale
Il modello relazionale è uno dei più comuni e si basa su tabelle. Ogni tabella è composta da righe (record) e colonne (attributi):
- Tabella: Rappresenta una collezione di entità dello stesso tipo.
- Riga (Record): Rappresenta un’istanza di un’entità.
- Colonna (Campo): Rappresenta un attributo dell’entità.
Chiavi
- Chiave Primaria (Primary Key): Un attributo o un insieme di attributi che identifica univocamente ogni record in una tabella.
- Chiave Esterna (Foreign Key): Un attributo o un insieme di attributi in una tabella che si riferisce alla chiave primaria in un’altra tabella, creando una relazione tra le tabelle.
Linguaggi di Interrogazione
Il linguaggio più comune per interagire con le basi di dati relazionali è il SQL (Structured Query Language), che permette di eseguire operazioni CRUD, oltre a operazioni di amministrazione e controllo.
Normalizzazione
La normalizzazione è il processo di organizzazione dei dati in una base di dati per ridurre la ridondanza e migliorare l’integrità dei dati. Si divide in varie forme normali (NF – Normal Forms), ognuna con criteri specifici per la struttura delle tabelle.
Sicurezza delle Basi di Dati
I database come raccolta organizzata di dati devono essere protetti da accessi non autorizzati e da perdite di dati. Alcuni metodi comuni includono:
- Controllo degli Accessi: Regolamentazione di chi può accedere a cosa.
- Crittografia: Protezione dei dati attraverso la cifratura.
- Backup e Ripristino: Creazione di copie di sicurezza dei dati per evitare perdite in caso di guasti.