DB- Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed...

Post on 02-May-2015

212 views 0 download

transcript

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 logico

Livello fisico

Livello concettuale

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

N.Inv Autore

Titolo Anno_ed. Casa ed.

Colloc.

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

Mario

Mario

Persone Città

Paolo

Paolo

Luca

Luca

Torino

Torino

Torino

Roma

Roma

Roma

Città

Persone

Paolo

LucaMario Roma

Torino

Torino

Figlio di (Persone x Persone)

PersonePersone

Paolo

Carla

Mario Flavio

Luca

Anna

PersonePersone

Anna

Luca

Flavio Mario

Carla

Paolo

Sono relazioni diverse!

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 Cognome Matricola Titolo Docente Voto LodeGiorgio Rossi st1234507 Informatica Olivetti 28 NOAnna Bianchi st3234508 Storia

dell'ArteFerrero 24 NO

Alberto Verdi st5534507 Informatica Olivetti 30 SIAnna Bianchi st3234508 Biologia I Monti 25 NOGiovanni Neri st2534599 Storia

dell'ArteFerrero 30 SI

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 Inefficiente!

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 rubricaRubrica(Cognome,Nome,Tel)

COGNOME NOME TEL.

Tanzi Rosario 095 89 ...

Federici Susanna 011 55 ...

De Bernardi Silvio 06 44 ...

schema nomi degli attributi

tuple

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à

A Not AVero FalsoFalso Vero

A B A And BVero Vero VeroVero Falso FalsoFalso Vero FalsoFalso Falso Falso

A B A Or BVero Vero VeroVero Falso VeroFalso Vero VeroFalso Falso Falso

Negazione

Congiunzione

Disgiunzione

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