81
Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Embed Size (px)

Citation preview

Page 1: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Abilità Informatiche A.A. 2010/2011

Lezione 8: Basi di Dati

Facoltà di Lingue e Letterature Straniere

Page 2: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Base di dati

(accezione generica, metodologica)

Insieme organizzato di dati utilizzati per il supporto allo

svolgimento delle attività di un ente (azienda, ufficio,

persona)

(accezione specifica, tecnologica)

insieme di dati gestito da un DBMS (Data Base

Management System)

2

Page 3: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Sistemi di gestione di basi di dati (DBMS)

DBMS = Sistema software in grado di gestire collezioni di dati che siano

(anche):

grandi: di dimensioni (molto) maggiori della memoria centrale dei

sistemi di calcolo utilizzati

persistenti: con un periodo di vita indipendente dalle singole

esecuzioni dei programmi che le utilizzano

condivise: utilizzate da applicazioni diverse

3

Page 4: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Caratteristiche di un DBMS

Un sistema DBMS deve garantire:

affidabilità (resistenza a malfunzionamenti hardware e software)

privatezza (con una disciplina e un controllo degli accessi).

Come ogni prodotto informatico, un DBMS deve essere

efficiente (utilizzando al meglio le risorse di spazio e tempo del sistema)

efficace (rendendo produttive le attività dei suoi utilizzatori).

4

Page 5: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Alcuni DBMS in commercio

Microsoft Access

IBM-DB2

Oracle

Informix

Sybase

Microsoft SQLServer

Ingres

MySql (open-source)

5

Page 6: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Sistemi per basi di dati

DATA BASE = Collezione omogenea di informazioni strutturate in sequenze di

dati che hanno tutti la stessa struttura (insieme di archivi a disposizione di più

utenti o applicazioni)

SISTEMI PER LA GESTIONE DI DATABASE (DBMS) = sistemi software che

gestiscono dati di un sistema informativo, assumendo il ruolo di interfaccia

verso i programmi utente.

6

Page 7: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Condivisione

Ogni organizzazione (specie se grande) è divisa in settori o comunque

svolge diverse attività. A ciascun settore o attività corrisponde un (sotto-)

sistema informativo (privato o porzione di un sistema più grande).

Possono esistere sovrapposizioni fra i dati di interesse dei vari settori.

Una base di dati è una risorsa integrata, condivisa fra i vari settori.

7

Page 8: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Un esempio

8

Page 9: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

9

Un esempio

Page 10: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Possibili problemi

Rischio di ridondanza: informazioni ripetute

Rischio di incoerenza: le due versioni possono non coincidere

10

Page 11: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Archivi e Basi di Dati

11

Page 12: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

I 3 livelli di astrazione di un DB

SCHEMA ESTERNO

SCHEMA LOGICO

SCHEMA CONCETTUALE

DATA BASE

SCHEMA ESTERNO SCHEMA ESTERNO

utenteutente

utenteutente

utenteutente

12

Page 13: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Architettura di un DBMS

13

Page 14: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

I 3 livelli di astrazione di un DB

Schema esterno: descrizione di una porzione della base di dati in un modello logico attraverso “viste” parziali, o derivate, che possono prevedere organizzazioni dei dati diverse rispetto a quelle utilizzate nello schema logico, e che riflettono esigenze e privilegi di accesso di particolari tipologie di utenti; ad uno schema logico si possono associare più schemi esterni

Schema logico: descrizione dell‟intera base di dati nel modello logico “principale” del DBMS, ad esempio la struttura delle tabelle

Schema concettuale: descrizione del tipo di dati che si voglionorappresentare, che prescinde dalla realizzazione fisica dei datiparticolari, ovvero identificazione degli oggetti che si voglionorappresentare, dei loro attributi e delle relazioni tra questi oggetti

Schema fisico: rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione, ovveri specifici files

14

Page 15: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Indipendenza Fisica e Logica

15

L‟utilizzo dei Data Base offre un vantaggio quale l‟indipendenza dei dati e dei programmi; é possibile modificare l‟organizzazione dei dati e dei programmi indipendenti l‟uno dall‟altro, vi sono due tipi di indipendenza:

Indipendenza fisica: la disposizione e l‟organizzazione fisica dei dati sui supporti di memoria di massa possono essere cambiate senza cambiare l‟organizzazione logica e consiste nella possibilità di modificare lo schema fisico (la struttura fisica) dei dati senza dover modificare i programmi applicativi che usano i dati.

Indipendenza logica: la disposizione e l‟organizzazione logica dei dati può essere cambiata senza modificare le applicazioni non coinvolte direttamente e consiste nella possibilità di modificare lo schema concettuale senza dover modificare il software applicativo

Page 16: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Dalla realtà al modello fisico

Modello

Concettuale

Realtà

Modello

Logico

Modello

Fisico

È una rappresentazione astratta della realtà, organizzata in

forma grafica in modo da ottenere uno schema dei dati. E’

comprensibile da chiunque, anche senza conoscenze

informatiche. MODELLO TIPICO: Entità-Relazioni

Il modello logico dota i dati di una struttura utile per semplificare

ed ottimizzare le operazioni di Archiviazione, Interrogazione e

manipolazione dei dati. STRUTTURA TIPICA: Data Base

Il modello fisico è ottenuto dall’implementazione, attraverso

opportuni software, degli archivi e delle modalità di accesso.

Si tratta di file registrati su H.D. CASO TIPICO: uso del

software ACCESS di Microsoft e creazione del file *.mdb

16

Page 17: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Un semplice modello concettuale

17

RISULTATI_ESAMI

MatricolaMateriaDataVoto

STUDENTE

MatricolaCognome, NomeData di Nascita

Page 18: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Modellazione Logica

18

Una volta decisi quali sono i concetti importanti da

rappresentare e quali sono i loro attributi, occorre

pensare come e‟ possibile rappresentare questa

informazione usando una base di dati

Questo è il compito della modellazione logica

(attenzione: questa non esprime ancora proprietà di

dati specifici, ma delle loro proprietà e/o relazioni)

Esprimibile in diagrammi

Page 19: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Il modello concettuale E-R

Gli elementi che compongono il modello Entità-Relazioni

sono tre:

• Le Entità

• Le Associazioni (Relazioni)

• Gli Attributi

19

Page 20: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Entità (Entity)

L’entità è un oggetto concreto o astratto che ha un

significato all’interno del modello dei dati anche se

viene considerato isolato.

Di solito si definisce un tipo di entità attraverso un

nome e lo si rappresenta con un rettangolo.

Esempio:

Gli studenti di Ca’ Foscari sono

classificabili con il tipo di entità

studente.

Ciascun studente rappresenta quindi

un’istanza dell’entità studente.

Studente

20

Page 21: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Associazioni (Relationship)

È il legame che stabilisce un’interazione fra le entità

Ogni relazione ha due versi e per ogni verso esiste un’entità di

partenza e una di arrivo. L’associazione di solito è identificata da un

verbo e viene rappresentata nel modello da un rombo.

Esempio:

Tra le entità Persona e Automobile si può instaurare la relazione

possiede:

Una persona possiede un’automobile ( verso)

Una automobile è posseduta da una persona ( verso )

Persona Possiede Automobile

21

Page 22: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Attributi

Gli attributi descrivono le proprietà delle entità

Esempio:

Gli attributi dell’entità Automobile possono essere:

Produttore, Modello, Potenza, Cilindrata, PrezzoListino.

Gli attributi sono caratterizzati da:

• formato: è il tipo di formato assunto dall’attributo. Ad es. Stringa,

Numerico, DataOra …

• dimensione: è la quantità massima di cifre che occorrono per

rappresentarlo

• opzionalità: indica se è obbligatorio o facoltativo

22

Page 23: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Un esempio

Persona AutomobilePossiede

Produttore

Modello

Potenza

Cilindrata

PrezzoListino

Cognome

Nome

Titolo

Codice Fiscale

Notare la differenza fra PrezzoListino e PrezzoAcquisto

Entità

Attributi

Relazione

23

Page 24: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Associazione UNO a UNO

Ad ogni elemento dell’entità 1 corrisponde uno ed un solo elemento

dell’entità 2

Studente Diploma di

LaureaConsegue

1 1 E’ Conseguito da

Esempio:

All’università ciascun studente quando si laurea avrà un suo diploma

di laurea (solo suo!)

24

Page 25: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Associazione UNO a MOLTI

Ad ogni elemento dell’entità 1 possono corrispondere più elementi dell’entità 2, mentre ad ogni elemento dell’entità 2 ne corrisponde uno

solo dell’entità 1

Studente Prova di

esameSostiene

1 Valuta

Esempio:

Uno stesso studente sostiene più prove di esame, una per ciascun

insegnamento del suo piano di studi. Ciascun esame registrato si

riferisce ad un singolo studente.

25

Page 26: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Associazione MOLTI a MOLTI

Ad ogni elemento dell’entità 1 possono corrispondere più elementi dell’entità 2 e viceversa

Studente MateriaStudia

E’ studiata da

Esempio:

Ogni studente studia più materie (quelle del suo piano di studi) e per

ogni materia ci sono vari studenti che la studiano.

26

Page 27: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Un esempio di schema logico: FILM

27

Diagramma Entità-Relazione (Chen 1970)

Entità

Relazioni tra entità

Attributi di entità

Page 28: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Schema logico (E-R)

28

Con cardinalità delle relazioni (MIN,MAX)

Page 29: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Schema Logico (gerarchie )

29

Page 30: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Schema logico (gerarchie)

30

Page 31: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Schema logico (completo)

31

Page 32: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Modelli di rappresentazione dei dati

32

A partire dagli anni Settanta il modello dominante è stato il quello relazionale, proposto da Edgard F. Coddnel 1970

Per certi tipi di applicazioni (in particolare per basi didati accessibili via Web) si fa molto uso di XML (vediprossime lezioni)

Page 33: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Il modello relazionale

33

L‟informazione è rappresentata nelle basi di dati sotto

forma di relazioni

r(x,y,z,w)

Due tipi di relazioni rappresentate

Relazioni rappresentate con tabelle che rappresentano un oggetto ed i

suoi attributi

risultato_esame(IUB,4/2/2008,112233,29)

Relazioni tra le tabelle

Per esempio, tra tabella studente e tabella risultato_esame

Page 34: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

DB Relazionali. Tabelle

34

Un database relazionale è formato da un insieme di tabelle

(o relazioni)

Ogni tabella è composta da righe, una diversa dall‟altra.

Esempio: in un elenco telefonico ogni riga è composta di

un cognome, un nome, un indirizzo, un numero di

telefono.

Il tipo dei dati (stringa o numero), il loro significato

(cognome o numero di telefono) e la loro posizione

(prima il cognome, poi il nome, ecc) sono prefissati.

Page 35: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Tabelle che rappresentano Relazioni

35

RECORD

ATTRIBUTO

Page 36: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Racord e campi

36

Ogni riga di una tabella è

strutturalmente identica alle

altre, e viene detta record.

Ogni record è composto da

valori di tipo diverso, detti

campi.

I campi sono definiti una volta

per tutte in uno schema della

tabella.

Page 37: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Tabelle (o Relazioni)

37

Una tabella è relativa ad una entità.

Ogni riga della tabella corrisponde ad un‟istanza di questa entità.

Page 38: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Esempio

38

Materia Data Matr. Voto Lode?

IDUL 4/2/10 112233 29 no

IUC 4/2/10 114422 30 si

RECORD

ATTRIBUTO

risultato_esame(IDUL,4/2/2010,112233,29)

VALORE (o CAMPO)SCHEMA della RELAZ.

Page 39: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Un altro esempio

39

MATRICOLA COGNOME NOME DATA

NASCITA

….

112233 Rossi Mario 11/11/1973

….

STUDENTE

studente(112233,Rossi,Mario,11/11/1973)

Page 40: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

L’organizzazione dei dati

40

Page 41: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Schema e istanze

41

In ogni base di dati esistono:

lo schema, sostanzialmente invariante nel tempo, che ne descrive

la struttura (aspetto intensionale); nell‟esempio, le intestazioni

delle tabelle

l‟istanza, costituita dai valori attuali, che possono cambiare molto

e molto rapidamente (aspetto estensionale); nell‟esempio, il

“corpo” di ciascuna tabella.

Page 42: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Il concetto di relazione

42

D1, D2, …, Dn (n insiemi anche non distinti)

il prodotto cartesiano D1 ×D2 ×…×Dn , è l‟insieme di tutte le n-uple ordinate (d1, d2, …, dn) tali che d∈D1,

d2∈D2 , …, dn∈Dn.

una relazione matematica su D1, D2, …, Dn è un

sottoinsieme del prodotto cartesiano D1 × D2 × … × Dn.

D1, D2, …, Dn sono i domini della relazione.

Il numero di n-uple è la cardinalità della relazione. Nelle

applicazioni reali, la cardinalità è sempre finita.

Page 43: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Proprietà di una relazione

43

In base alle definizione, una relazione matematica è un insieme di n-

uple ordinate: (d1, d2, …, dn) tali che d1∈D1 , d2∈D2 , …, dn∈Dn .

Una relazione è un insieme, quindi:

non è definito alcun ordinamento fra le n-uple;

le n-uple di una relazione sono distinte l‟una dall‟altra;

Dentro a ciascuna n-upla c‟è un ordine! .L‟i-esimo valore di ciascuna

proviene dall‟i -esimo dominio, ovvero è definito un ordinamento fra

i domini.

Page 44: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Esempio

44

string × string × integer × integer

Ciascuno dei domini ha un ruolo distinto, distinguibile attraverso la posizione: il primo e il terzo dominio si riferiscono a nome e reti della squadra ospitante; il secondo e il quarto a nome e reti della squadra ospitata.

La struttura è posizionale

Page 45: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Tabelle e relazioni

45

Una tabella rappresenta una relazione se

i valori di ciascuna colonna sono fra loro omogenei (dallo stesso

dominio)

le righe sono diverse fra loro

le intestazioni delle colonne sono diverse tra loro

Inoltre, in una tabella che rappresenta una relazione

l‟ordinamento tra le righe è irrilevante

l‟ordinamento tra le colonne è irrilevante

Page 46: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Chiave primaria

46

Ogni riga di ogni tabella (cioè ogni rappresentazione

di un oggetto) deve avere almeno un campo che

permetta di identificare quella riga in modo univoco

non deve dunque esserci un altro record con lo

stesso valore per quell‟attributo, anche se il valore

può apparire in altri attributi

Tale attributo è chiamato chiave primaria

Page 47: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Chiave primaria, un esempio

47

MATRICOLA COGNOME NOME DATA

NASCITA

….

112233 Rossi Mario 11/11/1973

….

STUDENTE

Page 48: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Chiave primaria multipla

48

NOME COGNOME ESAME APPROVATO?

Carlo Rossi IUB si

Mario Rossi IUB no

Carlo Bianchi IUC si

A volte la chiave è definita da più campi insieme.

Page 49: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Chiavi artificiali

49

ID MATERIA DATA MATRICOLA VOTO

1 ….

2 IUB 4/2/2008 112233 29

3 ….

RISULTATO_ESAME

Tipicamente, numeri consecutivi, uno per record

Page 50: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Valori nulli (NULL)

50

NOME Età PADRE

Matusalemme 968 Enoch

Eva NULL NULL

….

PERSONAGGI BIBLICI

Il valore NULL può essere dato a campi il cui valore non si conosce, o per casi in cui il valore non è definito (a volte i due casi sono distinti)

Page 51: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Vincoli di integrità

51

Page 52: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Vincolo di integrità

52

Proprietà che deve essere soddisfatta dalle istanze che rappresentano

informazioni corrette per l‟applicazione

Ogni vincolo può essere visto come una funzione booleana (o un predicato)

che associa ad ogni istanza il valore VERO o FALSO.

Tipi di vincoli:

vincoli intrarelazionali;

casi particolari:

vincoli su valori (o di dominio)

vincoli di ennupla

vincoli interrelazionali

Page 53: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Vincoli di ennupla

53

Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle

altre ennuple.

Una possibile sintassi: espressione booleana (con AND, OR e NOT) di atomi

che confrontano valori di attributo o espressioni aritmetiche su di essi.

Un vincolo di ennupla è un vincolo di dominio se coinvolge un solo attributo

Esempi:

(Voto >=18) AND (Voto <=30)

(Voto =30) OR NOT (Lode = “e lode”)

Lordo = (Ritenute - Netto)

Page 54: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Relazioni tra tabelle

54

Una base di dati relazionale permette di specificare, oltre

che informazioni su attributi di oggetti, informazioni sulle

relazioni tra oggetti

Per esempio, che un particolare risultato di esame è stato

ottenuto dallo studente Mario Rossi

Page 55: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Relazioni tra tabelle

55

MATRICOLA COGNOME NOME DATA

NASCITA

….

112233 Rossi Mario 11/11/1973

….

ID MATERIA DATA MATRICOLA VOTO

….

456789 IUB 4/2/2008 112233 29

….

Page 56: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Operazioni su un Database relazionale

56

Operazioni tipiche su un database relazionale

DEFINIRE nuove tabelle e nuove relazioni

AGGIUNGERE dati

RITROVARE un sottoinsieme delle righe

Possibilmente restringendo il ritrovamento ad un sottoinsieme delle

colonne

VISUALIZZARE un sottoinsieme dei dati per scopi particolari

Page 57: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Proiezione e Selezione

57

PROIEZIONE (πtest): estrazione di una serie di colonne

(attributi) da un DB

SELEZIONE (σtest): estrazione di una serie di righe

(record)

Dove test è un test che, se ha successo, aggiunge la

colonna/riga sotto esame alla proiezione/selezione

(rispettivamente)

Page 58: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Esempio: DataBase film (1)

58

Page 59: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Esempio: DataBase film (2)

59

Selezione su titolo ed anno

Proiezione su selezione per valore dell‟attributo

“nazione”

Page 60: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Esempio: DataBase film (3)

60

Intersezione (⋂) tra gli attori di film diversi

attori NON presenti in un film (differenza, - )

Page 61: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Da E-R a database relazionale

61

La progettazione nello schema E-R contiene costrutti che vanno

“tradotti” nel sistema relazionale. Ciò comporta:

La eliminazione delle gerarchie, riportando le informazioni su

nodo padre.

La traduzione delle entità come tabelle, i cui valori saranno i

valori dei singoli individui appartenenti a quella entità

La connessione tra le tabelle così stabilite

Page 62: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

DBMS Relazionali

62

Praticamente tutti i DATABASE MANAGEMENT

SYSTEMS (DBMS) moderni sono basati sul modello

relazionale

E.g., Oracle, Access, MySQL, PostgreSLQ (open source)

Disponibili per i principali sistemi operativi (Windows,

UNIX)

Page 63: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Una tabella in Access

63

Page 64: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Relazioni tra tabelle

64

Page 65: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Gerarchie come relazioni

65

Page 66: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Gerarchie come relazioni

66

‘‘Distribuzione o Produzione’’

Page 67: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Entità come Relazioni

67

In un diagramma ER, le entità sono collezioni di individui, ciascuno

dotato di attributi con valori.

Rese come tabelle:

EDIZIONE(codice, titolo, nazione, durata, lingua, vietato)

FILM(codice, titolo, durata, anno, nazione)

Page 68: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Collegare Tabelle

68

EDIZIONE(codice, titolo, nazione, durata, lingua, vietato)

FILM(codice, titolo, durata, anno, nazione)

Come specificare che una edizione è l‟edizione di un certo film?

Aggiungendo alla tabella EDIZIONE una chiave esterna (qui, il numero di codice del

film).

La chiave si specifica aggiungendo ai valori di EDIZIONE il nome della relazione

che contiene la chiave:

EDIZIONE(codice, titolo, nazione, durata, lingua, vietato, film)

Impossibile fare il contrario, visto che un film ha tipicamente molte edizioni:

un campo può contenere un solo valore!

Page 69: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Collegare Tabelle con relazioni di tipo N-a-N

69

Come specificare che un film ha la relazione di CAST con molti attori,

ed una PERSONA ha spesso recitato in molti FILM?

E‟ necessario indicarlo in maniera indiretta, tramite una nuova relazione (qui,

CAST), che conterrà DUE chiavi esterne:

PERSONA(nome, nazione, data_di_nascita)

FILM(codice, titolo, durata, anno, nazione)

CAST(persona, film, personaggio)

Page 70: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Regole di derivazione:

dai diagrammi ER alle tabelle1. Ogni ENTITA’ diventa una tabella

2. Ogni istanza di un’entità sarà perciò un record della tabella

3. Ogni ATTRIBUTO di un’entità diventa un campo di ciascuno dei record della

tabella e ne eredita le caratteristiche

4. L’identificatore univoco di un’entità diventa Chiave Primaria (Primary Key) del

record della tabella

5. L’associazione UNO a UNO diventa una tabella contenente gli attributi di

entrambe le entità

6. L’associazione UNO A MOLTI si traduce in due tabelle, uno per ciascuna delle

entità della relazione

7. L’identificatore univoco dell’entità di partenza nell’associazione UNO A MOLTI

diventa Chiave Esterna (Foreign Key) dell’entità di arrivo, cioè l’attributo che è

Chiave Primaria del primo archivio diventa un campo dei record del secondo

archivio

8. L’associazione MOLTI A MOLTI diventa una nuova tabella in aggiunta alle due

archivi derivate dalle due entità legate dall’associazione. Questa nuova tabella

sarà formata da record che contengono le chiavi primarie delle due tabelle più

gli eventuali attributi dell’associazione

70

Page 71: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Tabella da associazione UNO a UNO

Studente Diploma di

laureaConsegue

1 1 E’ Conseguito da

Nome

Cognome

Matricola

TipoDiploma

Anno

Voto

L’archivio che deriva è dato dalla sola

tabella DIPLOMATI che contiene come

campi tutti gli attributi di Studente e tutti

quelli di Diploma

71

Page 72: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Archivio Campo Chiave Tipo

Laureati

Nome String*25

Cognome String*25

Matricola PK Long Int

TipoLaurea String*50

Anno Integer

Voto Integer

Tabella Laureati

72

Page 73: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Tabella da associazione UNO a MOLTI

Studente Prova di

EsameSostiene

1 Valuta

Nome

Cognome

Matricola

Classe

Materia

TipoEsame

Voto

DataSvolgim

IDVerifica

L’archivio che deriva è formato da 2 tabelle:

Studenti con campi: Nome,Cognome,Matricola (PK)

Verifiche con campi: Materia, TipoVerifica, Voto, DataSvolgim

e MatricolaStudente (FK)

73

Page 74: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Tabelle Studenti ed Esami

74

Archivio Campo Chiave Tipo

Studenti

Nome String *25

Cognome String *25

Matricola PK Long Int

Prove di Esame

Materia String*25

TipoVerifica String*25

Voto Real

DataSvolgim Date

IDVerifica PK Long Int

MatricolaStudente FK Long Int

Page 75: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Archivio da associazione MOLTI a MOLTI

Docente CorsoInsegna

E’ tenuto da

Docente CorsoModulo

NumeroOre Sigla

NumeroAlunni

Aula

CognomeNome

ID

Materia

Qualifica

diventa

1 1

75

Page 76: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Archivi Docenti, Classi, Insegna

Archivio Campo Chiave Tipo

Docenti

CognomeNome String*50

ID PK Integer

Materia String*25

Qualifica String*15

ClasCorsosi

Sigla PK String*5

NumeroAlunni Integer

Aula Integer

Modulo

IDdoc PK Integer

SiglaModulo PK String*5

NumeroOre Integer

Regole di derivazione

76

Page 77: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Il linguaggio SQL

per interrogare un database

77

Le informazioni in una base di dati possono essere ritrovate

mediante INTERROGAZIONI

In un database relazionale moderno le interrogazioni sono fatte

utilizzando un linguaggio di interrogazione chiamato SQL (Simple

Query Language)

Page 78: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Sintassi di SQL

78

Diversi tipi di comandi:

DDL (Data Definition Language: comandi per la creazione e

l‟update del DB)

DML (Data Manipulation Language: comandi per la

interrogazione del DB)

Create TABLE persona (Nome varchar(50) PRIMARY KEY,Nazione varchar(50),Data_Nascita date);

SELECT nome, nazione, data_nascitaFROM personaWHERE nazione = ‘Italia’;

Page 79: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Creare una tabella con SQL

79

CREATE TABLE persona (

Codice integer PRIMARY KEY,

Titolo varchar(50), NOT NULL,

Anno varchar(4),

Durata integer,

Nazione varchar(50), DEFAULT „Italia‟,

);

Page 80: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Creare una associazione tra tabelle con SQL

80

CREATE TABLE cast (

persona varchar(50), REFERENCES persona(nome),

film integer, REFERENCES film(codice),

personaggio varchar(50),

PRIMARY KEY (persona, film)

);

Page 81: Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Datimace/web/Teaching/InformaticaVE2011/08-DataBase… · ed ottimizzare le operazioni di Archiviazione, Interrogazione e

Popolare un DB con SQL

81

Comandi INSERT, UPDATE, DELETE

1. INSERT INTO film VALUES (5, „Il sesto senso‟, 1999, 107, „USA‟);

2. INSERT INTO film(codice, titolo, anno) VALUES (5, „Il sesto senso‟, 1999);

3. UPDATE film SET durata = 130 WHERE titolo = „Il senso senso‟;

4. DELETE FROM persona WHERE nazione = „Italia‟;

Il secondo comando inserisce valori NULL per gli attributi non specificati; Il

quarto comando distrugge un‟intera tupla (record) della tabella persona se

sono verificate le condizioni indicate