DB- Sistemi Informativi
Insieme di “strutture” in grado di acquisire,
elaborare, trasmettere ed archiviare
informazioni in genere ad uso di
un’organizzazione (azienda o istituzione).
Dato <> Informazione


I dati sono registrazioni della descrizione di
una qualsiasi caratteristica della realtà, su un
supporto che ne garantisca la conservazione,
la comprensibilità e la reperibilità.
L’ informazione produce variazioni nel
patrimonio conoscitivo di un soggetto.
Proviene dai dati, ma i dati devono essere
inseriti in un contesto interpretativo
DBMS
(Database Management System)
Obiettivo: gestione strutturata di dati, organizzati
in modo omogeneo.
Base di dati:
 Collezione di dati organizzati in modo coerente
(un insieme casuale di dati non è una base di
dati !)
 Modella alcuni aspetti del mondo reale
 Costruito con funzionalità ben precise, note fin
dall’inizio della progettazione.
Esempi di basi dati:







Rubrica telefonica personale
anagrafe
segreteria studenti dell’università
banca dati centrale del ministero delle finanze
archivio di una biblioteca, di un laboratorio
d’analisi mediche, di un museo
banca dati di una carta di credito
banca dati delle prenotazioni dei voli di una
compagnia aerea
Basi di dati: operazioni




Definizione della base di dati
– quali informazioni rappresentare
– quali relazioni tra le informazioni
Manipolazione
– inserimento di dati
– cancellazione di dati
– aggiornamento (update)
– interrogazione
Gestione di operazioni da parte di utenti multipli
Protezione e sicurezza dei dati
Livelli di rappresentazione




Livello fisico: come i dati sono memorizzati e
organizzati su uno o più supporti di memoria
secondaria
Livello logico: come i dati sono organizzati
secondo il modello logico adottato (relazionale,
gerarchico, ad oggetti etc.)
Livello concettuale: come i dati sono
organizzati secondo uno schema concettuale
Livello esterno: come i dati appaiono o
vengono presentati all’utente (possono essere
anche programmi)
Livelli di rappresentazione
Vista 1
Vista 2
Vista n
Livello concettuale
Livello logico
Livello fisico
Figure professionali (1)

DB designer
– schema concettuale (astratto) della base di
dati
– mapping su un modello dei dati
• gerarchico
• relazionale
• object oriented
• ...
Figure professionali (2)



DB programmer
(realizzazione della base di dati)
DB administrator (gestione della base dati)
Users
• utenti esperti (usano un linguaggio di
interrogazione)
• utenti naive (interazioni predeterminate,
forms)
• programmi
Modello relazionale



I dati sono organizzati in relazioni
le relazioni possono essere
interpretate/visualizzate come tabelle
un database è un insieme di relazioni
Rappresentazione tabellare dei dati:
esempio Libro
Esempio rubrica
COGNOME
NOME
TEL.
Tanzi
Rosario
095 89 ...
Federici
Susanna
011 55 ...
De Bernardi
Silvio
06 44 ...
Modello relazionale





Relazione su due insiemi A e B è un
sottoinsieme del prodotto cartesiano A x B
Esempio
sposato_con  Persone x Persone
figlio_di  Persone x Persone
vive_a  Persone x Città
Analogamente si possono considerare relazioni
tra molti insiemi: A1 x ….xAn
Esempio di relazione


Persone= {Paolo, Luca,Mario}
Città={Torino,Roma}
Persone x Città
Vive_a
Persone
Città
Paolo
Paolo
Luca
Luca
Mario
Torino
Roma
Torino
Roma
Torino
Mario
Roma
Persone
Città
Paolo
Luca
Mario
Torino
Torino
Roma
Figlio di (Persone x Persone)
Persone
Sono
relazioni
diverse!
Paolo
Carla
Mario
Persone
Persone
Anna
Luca
Flavio
Persone
Anna
Paolo
Luca
Flavio
Carla
Mario
Relazioni e Attributi
Attributi: nomi che specificano un ruolo in una
relazione, esempi:
 sposato_con(Marito, Moglie)
 figlio_di(Figlio, Genitore)
 vive_a(Nome,Citta,Provincia)
 libro(N.Inv, Autore, Titolo, Anno_edizione,
Casa_editrice, Collocazione)
 Gli attributi devono avere nomi differenti
ESEMPIO DATABASE ESAMI

Prima idea: un’unica tabella:
ESAME(Nome,Cognome,Matricola,Titolo,
Docente,Voto,Lode)
Nome
Giorgio
Anna
Cognome Matricola
Rossi
st1234507
Bianchi
st3234508
Alberto
Anna
Giovanni
Verdi
Bianchi
Neri
st5534507
st3234508
st2534599
Titolo
Informatica
Storia
dell'Arte
Informatica
Biologia I
Storia
dell'Arte
Docente Voto
Olivetti 28
Ferrero 24
Lode
NO
NO
Olivetti
Monti
Ferrero
SI
NO
SI
30
25
30
Organizzazione Inefficiente!
Il database contiene informazione
ridondante:
 per ogni esame sostenuto si ripetono
tutti i dati dello studente
 per ogni corso si ripetono titolo e
docente
Organizzazione migliore:



STUDENTE(Nome,Cognome,Matricola,Data
di Nascita)
CORSI(Titolo,Docente,Codice Corso)
ESAMI(Codice Corso,Voto,Lode,Matricola)
Terminologia

DOMINIO: insieme di valori degli attributi
– es. Nomi di persona, Nomi di città, Numeri interi,
stringhe di al più 80 caratteri

FORMATO: rappresentazione degli elementi di un
dominio
– es. tre cifre decimali per i reali

SCHEMA DI RELAZIONE R(A1, …, A_n)
• R relazione
• Ai attributi

ISTANZA DI RELAZIONE (o semplicemente
relazione )
r(R) = {<v1, v2, …, vn>}
t=<v1, v2, …, vn > : n-tupla

I singoli valori vi appartengono al dominio dell’attributo Ai

Istanza di relazione = insieme non ordinato di tuple
– Non ci possono essere tuple ripetute
– l’ordine delle tuple non conta

Database = insieme di istanze di relazioni
Terminologia alternativa:
– tuple: records
– attributi: campi
La tabella rubrica
Rubrica(Cognome,Nome,Tel)
schema
tuple
nomi degli attributi
COGNOME
NOME
TEL.
Tanzi
Rosario
095 89 ...
Federici
Susanna
011 55 ...
De Bernardi
Silvio
06 44 ...
Informazione incompleta: Valori Nulli
Il valore speciale “null” aggiunto a tutti i domini,
per indicare assenza di valore indica:
 valore mancante, oppure
 valore sconosciuto
Esempio
PERSONE(Cognome,Nome,Indirizzo,Telefono)
Il valore di Telefono potrebbe essere null.

Vincoli sulle Relazioni




I valori contenuti nelle tabelle possono essere
soggetti a vari tipi di vincoli che dipendono dalla
‘realtà’ che si vuole rappresantare:
vincoli di dominio: valori dei singoli attributi
vincoli di tupla: valori di attributi correlati in una
tupla
vincoli di integrità valori di attributi in tuple
diverse (anche in relazioni diverse)
Vincoli di dominio
vincoli sui valori dei singoli attributi (vincoli di
dominio), es:
 dato ESAMI(Studente,Voto, Lode,Corso)
deve essere
Voto >=18 AND Voto <=30
 Vincoli sul valore di un attributo data
Vincoli di tupla
vincoli sui valori di attributi correlati, es:
 Data la relazione ESAMI come prima
deve essere
not (Lode = Yes) OR Voto = 30
equivalente a
Lode= No OR Voto = 30
 Data la relazione
PAGAMENTI(Data,Importo,Ritenute,Netto)
deve essere
Netto = Importo - Ritenute
Connettivi booleani: tavole di verità
Negazione
A Not A
Vero Falso
Falso Vero
Congiunzione
A
Vero
Vero
Falso
Falso
B
Vero
Falso
Vero
Falso
A And B
Vero
Falso
Falso
Falso
Disgiunzione
A
Vero
Vero
Falso
Falso
B
Vero
Falso
Vero
Falso
A Or B
Vero
Vero
Vero
Falso
Relazioni boolene




not (A and B) = not (A) or not(B)
not (A or B) = not (A) and not(B)
La funzione imp (implica)
A imp B =def not(A) or B
La funzione XOR (OR esclusivo)
A xor B =def (A or B) and not(A and B)
Implicazione
Sono logicamente equivalenti:
 Se A allora B
 A solo se B
 A implica B
Esempio:

Se Mario viene alla festa Anna viene alla festa

Mario viene alla festa solo se Anna viene alla festa

Mario viene alla festa implica che Anna viene alla festa
Tutte vengono rappresentate con
not(A) or B
o equivalentemente con A imp B
Esempio Vincolo (complesso)
Supponiamo che STUDENTE contenga anche
gli attributi
 Borsa di Studio: valori {Yes, No}
 Reddito (della famiglia): euro
 Residente (nella città sede univ.): {Yes, No}
Uno studente ha diritto ad una borsa se/solo se
– ha una media >= 27 e un reddito <= 20000,
oppure
– non è residente e ha una media >= 25 e un
reddito <=25000
Codifica del Vincolo
(media >= 27) AND (reddito <= 20000) OR
((residente = NO) AND (media >= 25)
AND (reddito <=25000))
Vincoli di chiave
superchiave: sottoinsieme SK di attributi di una
relazione per cui
se i  j allora ti[SK]  tj[SK]
Una superchiave identifica un’entità in modo
univoco in una relazione


CHIAVE PRIMARIA = superchiave minimale
non ci possono essere righe diverse con la
stessa chiave primaria
(Indichiamo in modo sottolineato gli attributi che
formano la chiave primaria)
VINCOLI DI INTEGRITA’

sull’entità : chiave primaria  null

integrità referenziale: consistenza tra tuple di
due relazioni

integrità semantica: vincoli che dipendono dalla
realtà rappresentata (altro es. numero di libri in
prestito a ciascun utente < 5, in una relazione
in cui ogni prestito compaia come una tupla
separata)
Vincoli di Integrità referenziali


In un database relazionale le tabelle sono
collegate tra loro tramite i valori di attributi
correlati (o comuni)
Esempio
– Il collegamento tra la relazione ESAMI e
STUDENTI puo’ essere espresso
dall’attributo comune Matricola
– Il collegamento tra la relazione CORSI e
ESAMI puo’ essere espresso dall’attributo
comune Codice Corso

Un vincolo di integrità referenziale tra un
insieme di attributi X di una relazione R1 e una
relazione R2 è soddisfatto se: i valori di ciascuna
tupla di R1 per gli attributi X esistono come
valori della chiave primaria di R2

In questo caso si dice anche che X è una chiave
esterna di R1
ESEMPIO: Vincoli di Integrità
referenziale
STUDENTE(Nome,Cognome,Matricola,Data
di Nascita)
 CORSI(Titolo,Docente,Codice Corso)
 ESAMI(Codice Corso,Voto,Lode,Matricola)
Vincolo referenziale: tra Matricola di ESAMI e
STUDENTE: i valori di Matricola di Esami
devono esistere come valori della chiave
primaria (Matricola di STUDENTE)

Funzionalità del DBMS relazionale


Funzioni per
– definizione della base di dati
– inserimento / rimozione /aggiornamento di
informazioni
• deve soddisfare i vincoli!
– Interrogazione
Access DBMS relazionale in ambiente Office
Scarica

Dato