5E e 5I: Guida Completa ai Database: Storia, Definizione, Entità, Istanze e Relazioni
I database (o basi di dati) sono il motore invisibile del mondo digitale. Ogni volta che apri WhatsApp, cerchi un video su YouTube, fai acquisti su Amazon o consulti il registro elettronico a scuola, stai interagendo con un database.
In questa lezione guidata scopriremo cos'è un database, come si è evoluto nel tempo e come si progettano i dati attraverso i concetti chiave di Entità, Istanza e Relazione.
1. Cos'è un Database? (Definizione Semplice)
Un Database (in italiano Base di Dati) è un archivio digitale di informazioni organizzate in modo strutturato, progettato per consentire l'inserimento, la ricerca, la modifica e la gestione dei dati in modo rapido, sicuro e senza duplicazioni.
La metafora dell'Archivio Cartaceo
Immagina un grande armadio pieno di faldoni ordinati per ordine alfabetico:
Se vuoi cercare la scheda di un cliente, sai esattamente in quale cassetto guardare.
Se l'armadio non fosse ordinato, dovresti sfogliare migliaia di fogli uno per uno.
Un database fa la stessa cosa, ma in modo digitale, istantaneo e gestito da un software speciale chiamato DBMS (Database Management System), come MySQL, PostgreSQL o Oracle.
2. Un po' di Storia: L'Evoluzione dei Database
La gestione dei dati non è sempre stata semplice come oggi. L'evoluzione dei database si può dividere in 4 grandi tappe storiche:
📜 Anni '50 e '60: Le Schede Perforate e i File System
Prima dei database, le informazioni venivano salvate su schede di cartoncino perforate e poi su nastri magnetici.
Il problema: Ogni programma al computer salvava i propri dati in un file separato. Se una persona cambiava indirizzo di casa, bisognava aggiornare manualmente decine di file diversi. I dati erano spesso duplicati e pieni di errori.
🌳 Anni '60: Database Gerarchici e a Rete
Per superare i limiti dei file singoli, nascono i primi database organizzati con strutture rigide:
Gerarchici: I dati erano disposti come i rami di un albero (un elemento "padre" poteva avere più elementi "figli").
A Rete: I dati potevano avere collegamenti multipli.
Il problema: Erano sistemi molto complessi da programmare: per cercare un dato bisognava conoscere esattamente il "percorso" tra i rami.
💡 Anni '70 e '80: La Rivoluzione del Modello Relazionale (Edgar F. Codd)
Nel 1970, un matematico e informatico della IBM di nome Edgar F. Codd propose un’idea rivoluzionaria: organizzare i dati in tabelle collegate tra loro da relazioni matematiche.
Nasce il Modello Relazionale, lo standard usato ancora oggi.
Negli anni '80 viene creato il linguaggio SQL (Structured Query Language), una lingua comune che permette agli sviluppatori di fare domande al database (es. "Mostrami tutti gli studenti promossi con 10").
☁️ Anni 2000 - Oggi: Big Data, NoSQL e Cloud
Con la nascita dei social network, dello streaming e degli smartphone, la quantità di dati nel mondo è esplosa (i cosiddetti Big Data).
I database relazionali tradizionali non bastavano più per gestire miliardi di foto, messaggi e post non strutturati.
Sono nati i database NoSQL (es. MongoDB), capaci di gestire enormi volumi di informazioni flessibili e distribuite sul Cloud.
3. I Mattoni Fondamentali della Progettazione
Prima di creare un database al computer, bisogna disegnarne la struttura logica (Modello E-R: Entità-Relazione).
📦 A) L'Entità (Il "Modello Generale")
L'Entità rappresenta una categoria generica di oggetti, persone o eventi di cui vogliamo salvare i dati. Risponde alla domanda: "Di che cosa stiamo raccogliendo le informazioni?"
💡 Come riconoscerla: Nel linguaggio comune corrisponde a un sostantivo singolare.
Esempi di Entità:
STUDENTE
DOCENTE
CORSO
PRODOTTO
👤 B) L'Istanza (L' "Esempio Concreto")
L'Istanza è un singolo elemento reale che appartiene a un'Entità. Risponde alla domanda: "Qual è il dato specifico inserito nel sistema?"
💡 Analogia: Se l'Entità è la scheda vuota da compilare, l'Istanza è la scheda compilata con i dati reali.
Esempi di Istanza:
Per l'Entità STUDENTE $\rightarrow$ l'Istanza è Marco Rossi (nato il 15/03/2006).
Per l'Entità CORSO $\rightarrow$ l'Istanza è Informatica Base.
Per l'Entità PRODOTTO $\rightarrow$ l'Istanza è Smartphone Modello X.
🏷️ C) Gli Attributi e la Chiave Primaria
Gli Attributi sono le singole caratteristiche o proprietà che descrivono un'Entità.
Prendiamo ad esempio l'Entità STUDENTE. I suoi attributi saranno:
Nome (es. Marco)
Cognome (es. Rossi)
Data di nascita (es. 15/03/2006)
Email (es. marco.rossi@email.it)
🔑 La Chiave Primaria (Primary Key - PK)
In un database non possono esistere due istanze identiche. Se in una scuola ci sono due studenti di nome "Marco Rossi", come fa il computer a distinguerli?
Si usa la Chiave Primaria: un attributo speciale che identifica in modo univoco e inequivocabile ogni singola istanza.
Esempi di Chiave Primaria:
Il Codice Fiscale per una Persona.
La Matricola per uno Studente.
L'IBAN per un Conto Corrente.
L'ID Ordine per un acquisto online.
4. Le Relazioni tra le Entità
Le Entità non vivono isolate: sono collegate tra loro da Relazioni (o Associazioni). Una relazione descrive il legame logico tra due entità ed è espressa da un verbo d'azione.
[ ENTITÀ A ] ────── ( VERBO ) ────── [ ENTITÀ B ]
Esempio: L'Entità STUDENTE e l'Entità CORSO sono collegate dalla relazione "FREQUENTA".
Esempio: L'Entità DOCENTE e l'Entità MATERIA sono collegate dalla relazione "INSEGNA".
5. I Tipi di Relazione (La Cardinalità)
La cardinalità stabilisce quante istanze di un'entità si possono collegare alle istanze dell'altra. Esistono 3 tipi principali di relazione.
1️⃣ Relazione Uno a Uno (1 : 1)
Regola: Un'istanza della prima entità si lega a UNA SOLA istanza della seconda entità, e viceversa.
Esempio: CITTADINO e CARTA_D_IDENTITA (Relazione: POSSIEDE)
Un Cittadino possiede una sola Carta d'Identità valida.
Una Carta d'Identità appartiene a un solo Cittadino.
2️⃣ Relazione Uno a Molti (1 : N)
Regola: Un'istanza della prima entità può legarsi a MOLTE istanze della seconda. Ogni istanza della seconda entità si lega però a UNA SOLA della prima.
Esempio: SQUADRA e GIOCATORE (Relazione: TESSERA)
Una Squadra tessera molti Giocatori.
Un Giocatore appartiene a una sola Squadra alla volta.
Altro esempio: REGIONE e COMUNE (Relazione: CONTIENE)
Una Regione contiene molti Comuni.
Un Comune si trova in una sola Regione.
3️⃣ Relazione Molti a Molti (N : M)
Regola: MOLTE istanze della prima entità si legano a MOLTE istanze della seconda entità.
Esempio: STUDENTE e CORSO (Relazione: ISCRITTO)
Uno Studente può essere iscritto a molti Corsi.
Un Corso può avere molti Studenti iscritti.
Altro esempio: ATTORE e FILM (Relazione: RECITA IN)
Un Attore recita in molti Film.
Un Film vede la partecipazione di molti Attori.
6. Vincoli di Partecipazione: Cardinalità Minima e Massima
Per definire se un collegamento è obbligatorio o facoltativo, usiamo le coppie di numeri (minimo, massimo):
Minimo = 0 (Facoltativo): L'istanza può esistere anche senza essere collegata all'altra entità.
Minimo = 1 (Obbligatorio): L'istanza deve essere collegata ad almeno un'altra istanza.
Esempio Pratico: CLIENTE ed ORDINE (Relazione: EFFETTUA)Lato CLIENTE (0, N):
Minimo 0: Un cliente può registrarsi al sito senza aver ancora fatto ordini (facoltativo).
Massimo N: Un cliente può fare molti ordini nel tempo.
Lato ORDINE (1, 1):
Minimo 1: Un ordine deve essere collegato obbligatoriamente a un cliente.
Massimo 1: Un singolo ordine appartiene a un solo cliente.
7. Caso di Studio Completo: Piattaforma E-Learning
Mettiamo insieme tutti i concetti analizzando la struttura di un sito di corsi online.
Le Entità individuate:UTENTE
Attributi: ID_Utente (Chiave Primaria), Nome, Cognome, Email.
CORSO
Attributi: ID_Corso (Chiave Primaria), Titolo, Prezzo.
CERTIFICATO
Attributi: ID_Certificato (Chiave Primaria), Data_Rilascio, Punteggio.
Le Relazioni individuate:UTENTE - CORSO $\rightarrow$ Relazione: ACQUISTA
Tipo: Molti a Molti (N : M).
Spiegazione: Un Utente acquista più Corsi; un Corso è acquistato da più Utenti.
CORSO - CERTIFICATO $\rightarrow$ Relazione: RILASCIA
Tipo: Uno a Uno (1 : 1).
Spiegazione: Un Corso rilascia uno specifico Certificato finale; quel Certificato appartiene a quel singolo Corso.
8. Mappa di Sintesi e Ripasso Rapido🗄️ Database: Archivio digitale ordinato e gestito da un software (DBMS).
📜 Storia: Dalle schede perforate anni '50 $\rightarrow$ al Modello Relazionale di Codd (1970) $\rightarrow$ fino ai dati NoSQL e Cloud di oggi.
📦 Entità: Il modello generale / la classe di dati (es. AUTO).
👤 Istanza: L'oggetto singolo e concreto (es. La Fiat 500 targata AB123CD).
🏷️ Attributo: La caratteristica dell'entità (es. Colore, Cilindrata).
🔑 Chiave Primaria: L'identificativo unico (es. Numero di Targa).
🔗 Relazione: Il legame espresso da un verbo (es. GUIDA).
🔢 Cardinalità: La quantità di collegamenti (1:1, 1:N, N:M).
9. Verifica le tue Conoscenze!
Prova a rispondere a queste brevi domande di ripasso:
Chi ha proposto per primo il Modello Relazionale basato su tabelle collegate nel 1970?
Risposta: Edgar F. Codd (ricercatore IBM).
Il numero di Matricola di uno studente è un'Entità, un'Istanza o una Chiave Primaria?
Risposta: È una Chiave Primaria, perché identifica univocamente ogni studente.
Che tipo di relazione c'è tra l'Entità AUTORE e l'Entità LIBRO?
Risposta: Molti a Molti (N : M), poiché un autore può scrivere più libri e un libro può avere più co-autori.
Esempio: L'Entità STUDENTE e l'Entità CORSO sono collegate dalla relazione "FREQUENTA".
Esempio: L'Entità DOCENTE e l'Entità MATERIA sono collegate dalla relazione "INSEGNA".
5. I Tipi di Relazione (La Cardinalità)
La cardinalità stabilisce quante istanze di un'entità si possono collegare alle istanze dell'altra. Esistono 3 tipi principali di relazione.
1️⃣ Relazione Uno a Uno (1 : 1)
Regola: Un'istanza della prima entità si lega a UNA SOLA istanza della seconda entità, e viceversa.
Esempio: CITTADINO e CARTA_D_IDENTITA (Relazione: POSSIEDE)
Un Cittadino possiede una sola Carta d'Identità valida.
Una Carta d'Identità appartiene a un solo Cittadino.
2️⃣ Relazione Uno a Molti (1 : N)
Regola: Un'istanza della prima entità può legarsi a MOLTE istanze della seconda. Ogni istanza della seconda entità si lega però a UNA SOLA della prima.
Esempio: SQUADRA e GIOCATORE (Relazione: TESSERA)
Una Squadra tessera molti Giocatori.
Un Giocatore appartiene a una sola Squadra alla volta.
Altro esempio: REGIONE e COMUNE (Relazione: CONTIENE)
Una Regione contiene molti Comuni.
Un Comune si trova in una sola Regione.
3️⃣ Relazione Molti a Molti (N : M)
Regola: MOLTE istanze della prima entità si legano a MOLTE istanze della seconda entità.
Esempio: STUDENTE e CORSO (Relazione: ISCRITTO)
Uno Studente può essere iscritto a molti Corsi.
Un Corso può avere molti Studenti iscritti.
Altro esempio: ATTORE e FILM (Relazione: RECITA IN)
Un Attore recita in molti Film.
Un Film vede la partecipazione di molti Attori.
6. Vincoli di Partecipazione: Cardinalità Minima e Massima
Per definire se un collegamento è obbligatorio o facoltativo, usiamo le coppie di numeri (minimo, massimo):
Minimo = 0 (Facoltativo): L'istanza può esistere anche senza essere collegata all'altra entità.
Minimo = 1 (Obbligatorio): L'istanza deve essere collegata ad almeno un'altra istanza.
Esempio Pratico: CLIENTE ed ORDINE (Relazione: EFFETTUA)Lato CLIENTE (0, N):
Minimo 0: Un cliente può registrarsi al sito senza aver ancora fatto ordini (facoltativo).
Massimo N: Un cliente può fare molti ordini nel tempo.
Lato ORDINE (1, 1):
Minimo 1: Un ordine deve essere collegato obbligatoriamente a un cliente.
Massimo 1: Un singolo ordine appartiene a un solo cliente.
7. Caso di Studio Completo: Piattaforma E-Learning
Mettiamo insieme tutti i concetti analizzando la struttura di un sito di corsi online.
Le Entità individuate:UTENTE
Attributi: ID_Utente (Chiave Primaria), Nome, Cognome, Email.
CORSO
Attributi: ID_Corso (Chiave Primaria), Titolo, Prezzo.
CERTIFICATO
Attributi: ID_Certificato (Chiave Primaria), Data_Rilascio, Punteggio.
Le Relazioni individuate:UTENTE - CORSO $\rightarrow$ Relazione: ACQUISTA
Tipo: Molti a Molti (N : M).
Spiegazione: Un Utente acquista più Corsi; un Corso è acquistato da più Utenti.
CORSO - CERTIFICATO $\rightarrow$ Relazione: RILASCIA
Tipo: Uno a Uno (1 : 1).
Spiegazione: Un Corso rilascia uno specifico Certificato finale; quel Certificato appartiene a quel singolo Corso.
8. Mappa di Sintesi e Ripasso Rapido🗄️ Database: Archivio digitale ordinato e gestito da un software (DBMS).
📜 Storia: Dalle schede perforate anni '50 $\rightarrow$ al Modello Relazionale di Codd (1970) $\rightarrow$ fino ai dati NoSQL e Cloud di oggi.
📦 Entità: Il modello generale / la classe di dati (es. AUTO).
👤 Istanza: L'oggetto singolo e concreto (es. La Fiat 500 targata AB123CD).
🏷️ Attributo: La caratteristica dell'entità (es. Colore, Cilindrata).
🔑 Chiave Primaria: L'identificativo unico (es. Numero di Targa).
🔗 Relazione: Il legame espresso da un verbo (es. GUIDA).
🔢 Cardinalità: La quantità di collegamenti (1:1, 1:N, N:M).
9. Verifica le tue Conoscenze!
Prova a rispondere a queste brevi domande di ripasso:
Chi ha proposto per primo il Modello Relazionale basato su tabelle collegate nel 1970?
Risposta: Edgar F. Codd (ricercatore IBM).
Il numero di Matricola di uno studente è un'Entità, un'Istanza o una Chiave Primaria?
Risposta: È una Chiave Primaria, perché identifica univocamente ogni studente.
Che tipo di relazione c'è tra l'Entità AUTORE e l'Entità LIBRO?
Risposta: Molti a Molti (N : M), poiché un autore può scrivere più libri e un libro può avere più co-autori.

Commenti
Posta un commento