Riassunto del PDF
Database – Modello E-R – Modello Logico Relazionale
Fonte: DatabaseModelloErModelloLogico.pdf (31 pagine)
1. Dato, informazione e sistemi
Il PDF inizia distinguendo dato da informazione. Un dato è un semplice valore alfanumerico privo di contesto (ad esempio "100"). Un'informazione è invece un dato a cui viene associato un contesto, che gli dà significato e lo trasforma in conoscenza.
Tre livelli di sistema vengono poi definiti:
Organizzazione
L'entità più esterna: comune, scuola, azienda.
Sistema organizzativo
L'insieme delle risorse usate dall'organizzazione per le proprie attività.
Sistema informativo
Sottosistema che gestisce i dati: inserimento, modifica, cancellazione, consultazione e sicurezza.
Sistema informatico
Sottosistema del sistema informativo che impiega dispositivi elettronici di elaborazione.
2. Il database e le sue caratteristiche
Un database è una raccolta strutturata di dati progettata per agevolarne l'uso da parte di un'organizzazione. Deve possedere quattro proprietà fondamentali:
- Consistenza / coerenza – non devono esistere dati che si contraddicono a vicenda.
- Riservatezza / autenticazione – l'accesso è consentito solo alle persone autorizzate.
- Permanenza dei dati – backup e ripristino proteggono i dati da eventi distruttivi interni o esterni.
- Efficienza – uso ottimale delle risorse e tempi di accesso adeguati.
Le quattro fasi di progettazione
La creazione di un database segue un percorso a cascata in cui l'output di ogni fase è l'input della successiva:
- Analisi dei requisiti – il progettista raccoglie e analizza le richieste del committente.
- Progettazione concettuale – si astrae la realtà di interesse (detta minimondo) e si produce uno schema grafico chiamato modello concettuale. È indipendente dal tipo di database usato. In genere il progettista lo illustra al committente.
- Traduzione in modello logico – il modello concettuale viene convertito in uno schema che adotta le strutture del tipo di database prescelto. Il risultato è il modello logico, ancora indipendente dall'implementazione fisica.
- Creazione del modello fisico – si realizza la memorizzazione concreta dei dati sulle memorie di massa. Si parla di implementazione fisica e il risultato è lo schema fisico(didatticamente parlando il file SQL che contengono le istruzioni per creare il database).
3. Il modello concettuale E-R (Entity-Relationship)
Il modello concettuale adottato è il modello E-R (Entità-Associazione). Si basa su quattro costrutti:
3.1 Entità
Un'entità è un'astrazione che rappresenta una categoria di oggetti della realtà con caratteristiche comuni. Ha un nome (iniziale maiuscola, singolare) ed esistenza autonoma. Esempi: Studente, Classe, Docente, Auto, Libro.
Un'istanza di un'entità è un oggetto concreto ottenuto assegnando valori ai suoi attributi. Ad esempio, "Marco Rossi M3567" è un'istanza dell'entità Studente.
L'identificatore è l'attributo (o l'insieme di attributi) che individua univocamente ogni istanza. Non possono esistere due istanze diverse con lo stesso valore dell'identificatore.
Un'entità si dice debole quando non possiede un identificatore autonomo. Il suo identificatore si costruisce combinando attributi propri con l'identificatore di un'altra entità. Esempio: Studente è debole perché l'identificatore è composto da matricola + nome dell'università, dove matricola è un attributo dell'entità studente e nome è l'identificatore dell'entità Università. Posizione (in una biblioteca) è debole perché l'identificatore è numero ripiano + numero scaffale + nome della biblioteca , ove numero ripiano e numero scaffale sono attributi dell'entità Posizione e nome è l'identificatore dell'entità Biblioteca .
3.2 Attributo
Un attributo è una caratteristica di un'entità. È definito da quattro aspetti:
- Nome
- Tipo – numerico, stringa, data/ora
- Dimensione – numero di caratteri o cifre
- Opzionalità – se è obbligatorio o meno che l'attributo abbia un valore
3.3 Associazione
Un'associazione è il legame logico tra due o più entità. Ha un nome e può possedere attributi propri. Le associazioni non hanno mai un identificatore.
3.4 Convenzioni grafiche del modello E-R
- Entità → rettangolo con il nome all'interno
- Associazione → rombo con il nome all'interno, collegato alle entità da segmenti
- Attributo → segmento che parte dall'entità e termina con un pallino vuoto e il nome
- Identificatore → pallino pieno (anziché vuoto)
4. Generalizzazione e specializzazione
Quando un'entità ha attributi valorizzabili solo per un sottoinsieme delle sue istanze, conviene introdurre delle sottoentità (o entità figlie). L'entità principale si chiama generalizzazione (o entità padre), le sottoentità si chiamano specializzazioni (o entità figlie).
Le entità figlie ereditano tutti gli attributi del padre (compreso l'identificatore) e le sue associazioni. Possono inoltre avere attributi e associazioni propri.
Quando esiste una sola entità figlia, si parla di sottoinsieme.
Copertura di una generalizzazione
La copertura è espressa da una coppia (t/p, e/s):
- Primo elemento – unione: totale (t) se ogni istanza del padre appartiene ad almeno una figlia; parziale (p) se esistono istanze del padre che non appartengono a nessuna figlia.
- Secondo elemento – intersezione: esclusiva (e) se un'istanza non può appartenere a più figlie; sovrapposta (s) se può appartenere a più figlie contemporaneamente.
5. Tipi di associazioni e cardinalità
5.1 Per numero di entità coinvolte
- Binaria – collega due entità.
- Ternaria – collega tre entità. Ogni istanza di un'entità è legata a una coppia di istanze delle altre due. Esempio del PDF: il venditore V1 fornisce la stampante Samsung S100 al dipartimento Amministrazione.
- N-aria – collega n entità.
- Ricorsiva – collega istanze della stessa entità (utile per rappresentare gerarchie). Esempio: l'entità Persona con l'associazione "Genitore" (una persona può essere padre/madre di un'altra persona).
5.2 Cardinalità delle associazioni binarie
Nel modello E-R, le cardinalità sono espresse con due coppie di numeri (minimo, massimo), una per ciascuna entità. Indicano quante istanze dell'altra entità possono essere collegate a un'istanza dell'entità considerata. — Attenzione: il termine «cardinalità» è usato anche nel modello logico relazionale ed in questo caso indica il numero di righe di una tabella (vedi sezione 7.1).
| Tipo | Significato |
|---|---|
1:1 (uno a uno) |
Ogni istanza della prima entità è legata al più a un'istanza della seconda, e viceversa. Esempio del PDF: Stato ↔ Presidente (una monarchia non ha presidente → partecipazione non obbligatoria). |
1:n (uno a molti) |
Un'istanza della prima entità è legata al più a un'istanza della seconda, ma esiste almeno un'istanza della seconda collegata a più istanze della prima. |
n:m (molti a molti) |
Esiste almeno un'istanza della prima entità collegata a più istanze della seconda, e viceversa. |
6. Attributi: tipi e dominio
- Atomico – non può essere scomposto ulteriormente.
- Composto – può essere suddiviso in attributi più semplici con significato autonomo nel minimondo.
- Multivalore – può assumere più valori per la stessa istanza dell'entità. Ha una cardinalità (coppia di numeri: numero minimo e massimo di valori che l'attributo può assumere).
- Singolo – attributo non multivalore; la sua cardinalità è sottintesa e può non essere indicata.
Il dominio di un attributo è l'insieme di tutti i possibili valori che l'attributo può assumere.
7. Il modello logico relazionale
Il modello logico è uno schema non grafico che rappresenta il database usando le strutture del tipo di database scelto. Il PDF adotta il modello relazionale, ideato da E.F. Codd (IBM) nel 1970, fondato sul concetto matematico di relazione.
7.1 Relazione e prodotto cartesiano
Dati i domini D1, D2, ..., Dn, una relazione è un qualunque sottoinsieme del prodotto cartesiano D1 × D2 × ... × Dn.
D1 = {FIAT, FORD, OPEL}
D2 = {TIPO, PUMA, CORSA}
Prodotto cartesiano = {(FIAT,TIPO), (FIAT,PUMA), ..., (OPEL,CORSA)} – 9 coppie totali.
Relazione R = {(x1,x2) : x2 è un modello di x1} = {(FIAT,TIPO), (FORD,PUMA), (OPEL,CORSA)}.
Le relazioni si rappresentano in forma tabellare. Nella tabella:
- Ogni riga è un'istanza della relazione.
- L'intestazione di ogni colonna è un attributo.
- La cardinalità della relazione è il numero di righe.
- Il grado della relazione è il numero di colonne.
- L'ordine di righe e colonne non ha importanza.
- Tutti i valori di una colonna sono dello stesso tipo.
- Non possono esistere due righe identiche.
7.2 Chiavi
| Concetto | Definizione |
|---|---|
| Superchiave | Insieme di attributi che identifica univocamente ogni riga. L'insieme di tutti gli attributi è sempre una superchiave. |
| Chiave candidata | Superchiave minimale: nessun suo sottoinsieme proprio è ancora una superchiave. Un'entità può averne più d'una (es. codice fiscale e telefono per Dipendente). |
| Chiave primaria (PK) | La chiave candidata scelta dal progettista per identificare le righe. I suoi valori non possono ripetersi. |
| Chiave esterna (FK) | Attributo (o insieme di attributi) di una tabella A che è chiave primaria di una tabella B. Serve a collegare due tabelle. I suoi valori possono ripetersi. |
7.3 Tabella referenziale e referenziata
La tabella che contiene la chiave esterna è detta tabella referenziale (o slave). La tabella a cui la FK fa riferimento è la tabella referenziata (o master).
7.4 Vincoli di integrità
Il vincolo di integrità referenziale impedisce di inserire in una FK un valore che non esiste tra le PK della tabella collegata.
I vincoli si dividono in due categorie:
- Vincolo interrelazionale – coinvolge più tabelle (es. integrità referenziale).
- Vincolo intrarelazionale – riguarda una sola tabella. Si suddivide in:
- Vincolo di dominio – su un singolo attributo (es. voto < 31).
- Vincolo di tupla – su due o più attributi della stessa riga (es. voto = 30 OR lode = "NO").
• Errore 1 (riga 4): Voto = 32 → viola il vincolo di dominio
voto < 31.• Errore 2 (riga 5): Voto = 28 e Lode = "Sì" → viola il vincolo di tupla
voto = 30 OR lode = "NO".Nota: il vincolo di dominio (
voto < 31) evita l'errore 1 (voto 32) e il vincolo di tupla (voto = 30 OR lode = "NO") evita l'errore 2 (voto 28 con lode).
7.5 Notazione del modello logico
Le tabelle si scrivono nella forma:
NomeTabella(Attributo1(PK), Attributo2, ..., AttributoN(FK))
Esempio: Esame(IdEsame(PK), Data, Voto, Lode, NumeroEsame, Matricola(FK))
8. Traduzione dal modello E-R al modello logico
Il PDF illustra due regole fondamentali per convertire un modello concettuale E-R in un modello logico relazionale.
Regola 1 – Eliminare i costrutti non presenti nel modello logico
Durante questa fase si ristruttura il modello E-R per eliminare ciò che non ha un corrispettivo diretto nel modello relazionale, ottimizzando anche spazio, ridondanza e tempi di accesso.
1a. Eliminazione dell'attributo composto
L'attributo composto viene sostituito dai suoi attributi atomici.
1b. Eliminazione dell'attributo multivalore
L'attributo multivalore viene trasformato in una nuova entità, collegata all'entità originale tramite un'associazione 1:n o n:n.
1c. Eliminazione delle generalizzazioni
Tre metodi alternativi:
- Eliminare l'entità padre – possibile solo con copertura totale, preferibile se anche esclusiva. Le associazioni del padre vanno ripetute per ogni figlia. Vantaggio: meno dati nulli. Svantaggio: maggiore complessità.
- Eliminare le entità figlie – sempre possibile. Si incorporano le figlie nel padre, eventualmente aggiungendo un attributo che indichi l'appartenenza alle sottoentità figlie (es. razza con valori "cane" o "gatto"). Vantaggio: semplicità. Svantaggio: più dati nulli e query più complesse.
- Sostituire la generalizzazione con associazioni 1:1 – si mantiene l'entità padre e si crea un'associazione uno-a-uno per ciascuna entità figlia.
Regola 2 – Rappresentare le associazioni nel modello logico
| Caso | Come si traduce |
|---|---|
| 1:n | Si inserisce una chiave esterna nella tabella dal lato (1,1) (la tabella referenziante). Esempio del PDF: Studente(Matricola(PK), Nome, Cognome, nomeClasse(FK)) e Classe(nomeClasse(PK), numeroAula). |
| n:m | Si crea una nuova tabella ponte con: nome = nome dell'associazione; PK = chiave composta dalle due PK delle entità collegate; le due PK sono anche FK; eventuali attributi dell'associazione diventano colonne della tabella ponte. Esempio del PDF: Svolgimento(PK(Matricola, IdEsame), FK(Matricola), FK(IdEsame), Voto, Data). |
| 1:1 | Due strategie: Strategia 1: unire le due entità in un'unica tabella contenente gli attributi di entrambe (sconsigliata se crea molti attributi non valorizzabili). Esempio: Persona(Telefono(PK), Nome, Cognome, CF, DataScadenza).Strategia 2: inserire la FK nella tabella con meno attributi non valorizzabili. Esempio: Stato(Nome(PK), NumAbitanti) e Presidente(PK(Nome, Cognome), NomeStato(FK)). |
Associazione ricorsiva nel modello logico
Si ottiene il modello logico considerando le due entità individuabili dall'associazione e l'associazione tra di esse.
9. Quadro riepilogativo
Dato → Informazione
Il contesto trasforma il dato in informazione dotata di significato.
Database
Raccolta strutturata, coerente, riservata, permanente ed efficiente.
Modello E-R
Schema grafico concettuale con entità, attributi, associazioni, identificatori, generalizzazioni.
Modello logico
Schema non grafico: tabelle, PK, FK, vincoli di dominio, tupla e integrità referenziale.
Traduzione
Regola 1: eliminare composti, multivalore, generalizzazioni. Regola 2: 1:n → FK, n:m → tabella ponte, 1:1 → unione o FK.
Vincoli
Interrelazionali (integrità referenziale) e intrarelazionali (dominio, tupla).