Informatica quinto anno: Cosa sono i data base?

Un database (o base di dati) è un sistema organizzato per raccogliere, archiviare, e gestire dati in modo che possano essere facilmente accessibili, gestiti e aggiornati. Può essere visto come una raccolta di informazioni strutturate in modo che gli utenti o le applicazioni possano manipolarle e consultarle rapidamente.

Componenti principali di un database:

  1. Tabelle: Un database è generalmente composto da tabelle, che sono strutture organizzate in righe e colonne. Ogni riga rappresenta un record (un’istanza di dati), e ogni colonna rappresenta un campo (un attributo del record).
    Ad esempio, una tabella di clienti potrebbe avere colonne come “Nome”, “Cognome”, “Indirizzo” e “Email”, e ogni riga rappresenta un cliente con i suoi dati.
  2. Record (o Tupla): Ogni riga in una tabella è chiamata record o tupla. Un record è una raccolta di valori, ognuno dei quali corrisponde a un attributo definito dalla colonna.
  3. Campi (o Colonne): Ogni colonna in una tabella rappresenta un tipo di dato specifico, come numeri, date o stringhe di testo. I campi definiscono le caratteristiche dei dati che vengono archiviati in una tabella. Ogni record nella tabella avrà un valore per ciascun campo.
  4. Chiavi: Una chiave è un campo o un insieme di campi che identificano univocamente ogni record in una tabella. Esistono vari tipi di chiavi:
    • Chiave primaria: È il campo (o insieme di campi) che identifica univocamente ogni record in una tabella. Non può avere valori duplicati o NULL.
    • Chiave esterna: È un campo che collega una tabella con un’altra, creando una relazione tra i dati. Si riferisce alla chiave primaria di un’altra tabella.
  5. Indici: Gli indici sono strutture speciali che velocizzano la ricerca dei dati. Permettono di accedere rapidamente a specifici record basandosi su una o più colonne.
  6. Relazioni: I database relazionali (i più comuni) organizzano i dati in tabelle e definiscono relazioni tra di esse. Le relazioni possono essere:
    • Uno a uno: Un record in una tabella è associato a uno e solo uno record in un’altra tabella.
    • Uno a molti: Un record in una tabella è associato a più record in un’altra tabella.
    • Molti a molti: Più record in una tabella sono associati a più record in un’altra tabella (solitamente gestito tramite una tabella intermedia).

Tipi di database:

  1. Database Relazionale (RDBMS – Relational Database Management System):
    Questi database organizzano i dati in tabelle e sono basati su un linguaggio di query chiamato SQL (Structured Query Language). Esempi di RDBMS includono:
    • MySQL
    • PostgreSQL
    • Oracle Database
    • Microsoft SQL Server
  2. Database NoSQL:
    I database NoSQL (Not Only SQL) sono progettati per gestire grandi quantità di dati non strutturati o semi-strutturati, spesso usati per applicazioni moderne come quelle web e mobile. Esempi includono:
    • MongoDB (documento)
    • Cassandra (colonne)
    • Redis (chiave-valore)
    • Neo4j (grafico)
  3. Database a Grafo:
    Questi database sono ottimizzati per rappresentare e navigare attraverso reti di dati interconnessi. Ad esempio, Neo4j è un database grafico che gestisce dati come reti sociali o mappe di collegamenti.
  4. Database In-Memory:
    Questi database memorizzano i dati direttamente nella memoria RAM per una velocità di accesso più rapida. Ad esempio:
    • Redis (utilizzato per caching e operazioni veloci)
    • Memcached (utilizzato per memorizzare oggetti in memoria)

Funzionalità principali di un database:

  • Creazione: I dati vengono immagazzinati creando tabelle e definendo le strutture necessarie per l’archiviazione.
  • Lettura: I dati possono essere letti e consultati tramite query.
  • Aggiornamento: I dati possono essere modificati o aggiornati, ad esempio, inserendo nuovi record o aggiornando quelli esistenti.
  • Cancellazione: I dati possono essere eliminati quando non sono più necessari.

Linguaggio di Query SQL:

Il linguaggio di query standard per i database relazionali è SQL (Structured Query Language). Con SQL, è possibile:

  • SELECT: estrarre dati.
  • INSERT: inserire nuovi dati.
  • UPDATE: aggiornare dati esistenti.
  • DELETE: eliminare dati.

Perché usare un database?

  • Organizzazione: I database consentono di archiviare i dati in modo strutturato e organizzato, facilitando la gestione.
  • Efficienza: Con un buon sistema di gestione del database (DBMS), è possibile ottenere prestazioni elevate nella gestione di grandi quantità di dati.
  • Integrità dei dati: I database garantiscono la consistenza e la validità dei dati attraverso vincoli (come le chiavi primarie e le chiavi esterne).
  • Scalabilità: I database possono crescere facilmente con l’aumento dei dati, soprattutto i sistemi NoSQL che sono progettati per scalare orizzontalmente (su più server).