Cos’è un Database? è un Sistema utilizzato per registrare ed organizzare dati.

potremmo definirlo una sorta di archivio strutturato in modo da razionalizzare la gestione e la modifica dei dati registrati al suo interno.

all’interno di un Database i dati vengono suddivisi ed organizzati in tabelle, che possono essere messe in relazione tra loro: il fine di un Database è quello di cercare di rispecchiare la realtà per facilitare la ricerca, la gestione e la messa in relazione delle informazioni contenute.

con il termine database possiamo intendere sia la parte fisica che la parte logica:

il Database FISICO  è il sistema Hardware, ovvero i supporti di memorizzazione e il processore per l’elaborazione dei dati (DB server).

il Database LOGICO è il sistema Software, ovvero la struttura dei dati organizzata (DBMS = Database Management System). qui troviamo sia i dati che le informazioni sulla loro rappresentazione e le relazioni che li legano.

Gli utenti si interfacciano ai DB attraverso linguaggi di interrogazione, le QUERY: attraverso cui è possibile cercare i dati, aggiungerne di nuovi, modificarli o eliminarli.

Fogli di calcolo VS. database

Anche i Fogli di calcolo (come ad esempio EXCEL) sono utili per archiviare dati e organizzarli,ma vediamo quali sono le principali differenze tra fogli di calcolo e i Database:

FOGLI DI CALCOLO DATABASE
sono utili per un’analisi occasionale di dati o per un tracciamento rapido di un grafico. supportano dati per web app e applicazioni: rendendo veloce il reperimento delle informazioni e la loro archiviazione.
funzionano bene con una mole di dati ragionevoleriescono a gestire in poco tempo enormi quantità di dati.
facilità di utilizzo: chiunque può utilizzare i fogli
di calcolo per aggiungere, modificare o eliminare dati in un foglio di calcolo.
regole precise dei DB rendono sicuro
il mantenimento dell’integrità dei dati.

I fogli di calcolo sono una soluzione ideale per utenti singoli o in numero limitato che non devono eseguire molte delle complicatissime procedure di manipolazione dei dati.

I database, invece, sono destinati a contenere insiemi molto più estesi di informazioni organizzate, presenti talvolta in massicce quantità, consentono a più utenti contemporaneamente di accedere ai dati ed eseguirne query in modo rapido e sicuro mediante una logica e un linguaggio estremamente complessi.

Tipologie di database

Database relazionali. I database relazionali assumono un ruolo predominante negli anni ’80. Gli elementi di un database relazionale sono organizzati sotto forma di set di tabelle composte da colonne e righe. La tecnologia di questo tipo di database offre la soluzione più efficiente e flessibile per accedere alle informazioni strutturate.

Esempi di Database relazionali: Oracle, IBM, MySQL, ecc.

Database orientati agli oggetti. Le informazioni contenute in un database orientato agli oggetti vengono rappresentate sotto forma di oggetti, come avviene nella programmazione che ha la stessa denominazione.

Database NoSQL. Un database NoSQL, o non relazionale, consente di archiviare e manipolare dati non strutturati e semi-strutturati, a differenza di quanto accade con un database relazionale che definisce come devono essere composti tutti i dati inseriti nel database. La diffusione dei database NoSQL è aumentata notevolmente con la crescente disponibilità e complessità delle applicazioni Web.

Esempi di Database relazionali: Firestore, Redis, Mongo DB, ecc.

Focus on: database relazionale

Andiamo nello specifico a capire meglio cos’è un database relazionale: è un tipo di database di archiviazione che fornisce accesso a data points correlati tra loro. I database relazionali sono basati sul modello relazionale, un modo intuitivo e diretto di rappresentare i dati nelle tabelle. In un database relazionale ogni riga della tabella è un record con un ID univoco chiamato chiave. Le colonne della tabella contengono gli attributi dei dati e ogni record di solito ha un valore per ogni attributo, rendendo facile stabilire le relazioni tra i data points.

Per garantire che i dati siano sempre accurati e accessibili, i database relazionali seguono regole di integrità specifiche:

  • Ogni tabella ha un nome univoco.
  • ogni tabella può contenere più righe (RECORDS), ma ogni record è identificato da una chiave univoca (id).
  • non possono esistere più record con gli stessi valori (Ridondanti).
  • ogni colonna nella tabella ha un nome unico di attributo.

nel modello di database relazionale un ruolo importante lo assume la PRIMARY KEY: ovvero la chiave primaria che ha la funzione di identificare in maniera univoca i record in una tabella.

ogni tabella può avere una sola primary key, anche se può essere composta da più attributi (colonne) (COMPOSITE PRIMARY KEY).

DATABASE DESIGN

Si definisce DATABASE DESIGN il processo di definizione di un modello di Database: viene definita la struttura creando un modello dettagliato dei dati e degli attributi per ogni entità.

durante il processo di design del Database si va a rifinire quindi la LOGICA con cui vogliamo strutturare i dati e collegarli tra loro.

nei Database relazionali il design viene costituito attraverso la costruzione delle tabelle.

Processo di Design del DB:

1- DEFINIZIONE DEI DATI DA INSERIRE NEL DATABASE.

2- DEFINIZIONE DELLE RELAZIONI TRA I DIVERSI ATTRIBUTI DEI DATI

3- RAGGRUPPAMENTO DELLE INFORMAZIONI: ovvero definire i dati primari su cui sono memorizzate le informazioni e le relazioni.

è importante tenere presente nella creazione di un Database che la sua struttura deve essere facile da mantenere e da modificare, e le modifiche dei dati non devono andare ad influire su altre viste o tabelle.

Fasi della definizione del Design di un DB:

  1. Definire il fine di un Database. 
  2. Trovare e organizzare tutte le info necessarie.
  3. dividere le info in tabelle.
  4. trasformare le caratteristiche degli oggetti in attributi definendo le colonne.
  5. individuare le chiavi primarie.
  6. specificare le relazioni tra le tabelle.
  7. normalizzare i dati evitando ridondanze o dipendenze di dati.
  8. rifinire i dettagli del design.

Livelli di Modellazione del Database design

  • MODELLO CONCETTUALE 
  • MODELLO LOGICO
  • MODELLO FISICO

Il modello CONCETTUALE è la definizione generale del Database, ovvero individuare lo scopo e definire le entità che saranno inserite. 

è il livello più alto ed astratto della modellazione di un Database.

Il modello LOGICO è un po’ più specifico e va a descrivere i dati contenuti nel DB, individuando gli attributi delle entità e le loro relazioni.

Il modello FISICO diventa ancora più specifico andando a esplicitare oltre all’organizzazione dei file anche la struttura interna di memorizzazione e il tipo di dati.