Database
Appunti di Amaranto Oronzo e Giancane Diego
Lezione dell’Ing. Lucia Vaira 24/04/2014
Cos'è un database?
È una struttura di dati composta da tabelle a loro volta composte da campi.
Caratteristiche principali
•
Il database contiene una collezione di dati eterogenei ma correlati tra loro
•
Minimondo: la parte reale in cui si contestualizza il dato
•
Contiene il DBMS (DataBase Management System) ossia il software che supporta
la creazione e la gestione dei database (come per esempio: Microsoft Access, Microsoft
SQL Server, MySQL ed Oracle.
La progettazione di un database avviene su tre livelli:
•
Livello concettuale: non riporta dettagli di livello fisico o implementativo, ma
serve per intendersi con il committente.
•
Livello logico: riporta i dettagli tecnici relativi al modo in cui i dati sono
memorizzati.
•
Livello fisico: fornisce concetti al fine di essere compresi dagli utenti finali, ma
ancora lontani dal modo in cui sono organizzati nel database.
La rappresentazione dei dati invece avviene tramite schemi concettuali
o schemi logici:
•
Modello concettuale: diagrammi ER (Entity/Relationship)
Rappresentazione grafica degli oggetti gestiti dal sistema e delle relazioni tra di essi
•
Modello logico: modello relazionale
Rappresentazione dei dati tramite la descrizione della loro organizzazione
Modello Entità-Relazione
Il modello ER è uno dei piu diffusi modelli concettuali e i suoi costrutti
principali sono:
•
•
•
•
•
Es.:
Entità
Relazioni
Attributi
Identificatori
Specializzazioni
[CLIENTE]------------>[ACQUISTA]------------>[PRODOTTO]
“Cliente” e “Prodotto” rappresentano un tipo di entità e “Acquista” un tipo di relazione.
Ad ognuno di essi sono associati degli attributi (per es.: nome, cognome, codice fiscale
per Cliente; data, quantità, prezzo d'acquisto per Acquista)
Entità
•
Sono classe di oggetti (reali o concettuali) che hanno proprietà comuni ed esistenza
autonoma come per es. Studente, Docente, Corso, Facoltà…
•
Ogni entità ha una sua istanza come per es. Facoltà di Ingegneria
•
Inoltre ogni entità ha un nome e un attributo che la identifica univocamente nello
schema ER
Infine vi sono le entità deboli che sono tipi di entità che non hanno propri attributi chiave.
Un’entità debole è tale perché la sua esistenza dipende da un’altra entità .
Es. un reparto di un negozio non ha un’esistenza indipendente dal negozio nel quale è
contenuto.
In caso di eliminazione dell’istanza di riferimento le istanze delle entità deboli ad essa
collegate devono essere eliminate.
Per questo un tipo di entità debole ha sempre vincolo di partecipazione totale
(dipendenza di esistenza) relativo alla sua relazione identificante.
 A specificare se l’esistenza di un’entità dipende dal suo essere correlata a un’altra entità
attraverso una relazione sono i Vincoli di partecipazione che possono essere totali o
parziali:
Es totale:
[Impiegato]------------>[lavora per]------------>[Dipartimento]
L’entità “impiegato” può esistere solo se partecipa a un’istanza di
relazione “lavora per” e la sua partecipazione alla relazione è detta totale
Es parziale:
[Impiegato]------------>[dirige]------------>[Dipartimento]
La partecipazione dell’entità “impiegato” al tipo di relazione
“dirige” è parziale, nel senso che alcune entità “impiegato” sono correlate a un’entità
“dipartimento” attraverso la relazione “dirige”, ma non tutte.
Relazione
•
Si tratta di un legame logico fra due o più entità con uno specifico significato
•
Grado della relazione: numero dei tipi di entità che vi partecipano (relazioni binarie,
ternarie, quaternarie,…)
•
Istanza di relazione: n-upla di istanze di entità, una per ciascuna entità coinvolta. La
coppia (Mario Rossi, Basi di Dati) è un’istanza della relazione Esame se:
-Mario Rossi è un’istanza dell’entità Studente
-Basi di Dati è un’istanza dell’entità Corso
•
Una relazione può essere rircorsiva, ossia una relazione fra un’entità e se stessa e
nel caso in cui la relazione non è simmetrica, occorre definire i due ruoli dell’entità
Attributi
•
Descrivono proprietà elementari di entità e relazioni
•
Ogni attributo associa a ciascuna istanza un valore appartenente al dominio
dell’attributo
Es.
[Impiegato]------------>SSN, Nome, Data_nascita, Indirizzo, Tipo lavoro
Ogni attributo può essere:
•
Semplice (es. nome, cognome…)
•
Multivalore (es. telefono…)
•
Composto (es. indirizzo…)
•
Calcolato (es. incasso totale…)
Cardinalità delle relazioni
Per ogni partecipazione di un’entità ad una relazione si specificano il numero minimo e il
massimo cui un’istanza dell’entità può partecipare
[E1]------(m,M)------>[R]------(p,P)------>[E2]
•
•
Es.
•
•
•
•
Ogni istanza di E1 partecipa ad almeno m e al più a M istanze di R
Ogni istanza di E2 partecipa ad almeno p e al più P istanze di R
[Impiegato]------(1,5)------>[assegnazione]------(0,50)------>[Incarico]
  Ad ogni impiegato è assegnato almeno 1 incarico
  Ogni impiegato ha al più 5 incarichi
  Un incarico può anche non essere ricoperto
  Ad un incarico possono essere assegnati al massimo 50 impiegati
Tipi di cardinalità: 
Cardinalità minima
•
•
0 – la partecipazione alla relazione è opzionale (parziale)
1 – la partecipazione alla relazione è obbligatoria (totale)
  Cardinalità massima
•
•
1 – rappresenta una funzione che associa una sola istanza dell’altra entità
N – rappresenta un’associazione con un numero arbitrario di istanze dell’altra entità
Identificatori delle entità
•
  Permettono di identificare in modo univoco le istanze di entità
•
  Identificatore interno (chiave primaria): si tratta di una chiave su cui sono vietati i
valori nulli e si può utilizzare un attributo dell’entità
 
Ogni entità deve avere almeno un identificatore:
Es
[Automobile]---------->[Colore; Modello; Targa]
Specializzazione
Indicata come lettera all’interno di un cerchio nel diagramma ER:
d: Disjoint, pone una scelta, o l’una o l’altra.
o: Overlapping, sovrapposizione, l’una e l’altra.
C: Inclusione, l’entità sottostante oltre ad avere i propri attributi, eredita anche quelli della
classe sovrastante.
Modello relazionale
Adottato dai DBMS definisce l’organizzazione dei dati, non la loro memorizzazione e
gestione a livello tecnico.
Mapping ER: traduce in diagramma il modello relazionale