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:

  1. Consistenza / coerenza – non devono esistere dati che si contraddicono a vicenda.
  2. Riservatezza / autenticazione – l'accesso è consentito solo alle persone autorizzate.
  3. Permanenza dei dati – backup e ripristino proteggono i dati da eventi distruttivi interni o esterni.
  4. 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:

  1. Analisi dei requisiti – il progettista raccoglie e analizza le richieste del committente.
  2. 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.
  3. 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.
  4. 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:

  1. Nome
  2. Tipo – numerico, stringa, data/ora
  3. Dimensione – numero di caratteri o cifre
  4. 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

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).

Esempio del PDF: l'entità Socio di un circolo sportivo può essere tennista (con attributi: numero tornei vinti, colpo) e/o calciatore (con attributi: numero goal, ruolo). Un tennista non ha ruolo né numero goal valorizzabili. Allora si creano le due sottoentità Tennista e Calciatore.Tennista e Calciatore sono entità figlie dell'entità padre Socio

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):

5. Tipi di associazioni e cardinalità

5.1 Per numero di entità coinvolte

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).

TipoSignificato
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

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.

Esempio del PDF:
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:

7.2 Chiavi

ConcettoDefinizione
SuperchiaveInsieme di attributi che identifica univocamente ogni riga. L'insieme di tutti gli attributi è sempre una superchiave.
Chiave candidataSuperchiave 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).

Esempio del PDF: nella tabella Studente, l'attributo Classe è una FK che punta alla PK Nome della tabella Classe. Il PDF mostra un caso di violazione: la classe "3T" appare in Studente ma non esiste nella tabella Classe.

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:

Esempio concreto del PDF (tabella Esame):
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:

  1. 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à.
  2. 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.
  3. 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

CasoCome 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).