Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli...

45
M. Tomaiuolo – Fondamenti di informatica M. Tomaiuolo – Fondamenti di informatica Dip. Ingegneria dell'informazione – UniPR Dip. Ingegneria dell'informazione – UniPR http://www.ce.unipr.it/people/tomamic/ http://www.ce.unipr.it/people/tomamic/ Basi di dati Fondamenti di informatica Michele Tomaiuolo [email protected] http://www.ce.unipr.it/people/tomamic

Transcript of Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli...

Page 1: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Basi di dati

Fondamentidi informatica

Michele [email protected]

http://www.ce.unipr.it/people/tomamic

Page 2: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Sistema informativo

Insieme di programmi concorrenti:

Ogni programma opera su un certo insieme di dati

Certi dati possono essere condivisi da alcuni programmi

Nei casi più semplici, ogni programma del sistema gestisce separatamente i suoi dati

In altri casi, si interpone un sistema di gestione tra i programmi e i dati

Page 3: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Ridondanza e inconsistenza: più copie dello stesso dato; copie modificate diversamente

Riservatezza e integrità: dati riservati accessibili a persone non autorizzate;operazioni sbagliateo incomplete sui dati

Concorrenza: accessoe aggiornamento datinon sincronizzato traprogrammi differenti

Gestione distinta dei dati

Dati1Dati1 Dati2Dati2 Dati3Dati3

Dati4Dati4 Dati5Dati5 Dati6Dati6

Prog1Prog1 Prog2Prog2 Prog3Prog3

Page 4: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Gestione condivisa dei dati

DatiDati

Prog1Prog1 Prog2Prog2 Prog3Prog3

DBMSDBMS

Tutte le azioni sui dati vengono mediate dal DBMS (DataBase Management System)

Dati in formato standard, con backup/ripristino

Controlli su:

Ridondanza, consistenza,distribuzione

Riservatezza, integrità

Accesso concorrente

Ma risorse hw/sw (stesso DBMS)

Page 5: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Basi di dati con DBMS

Da preferire quando:

Dati organizzati secondo modelli predefiniti

Grandi: fino e oltre TByte, memoria secondaria

Condivisi: accesso da app. ed utenti diversi

Persistenti: tempo di vita > esecuzione app.

Da evitare quando:

Insieme dati piccolo e semplice, con poche modifiche nel tempo, non condiviso

Prestazioni in tempo reale

Page 6: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Creano problemi al mantenimento della congruenza dei dati condivisi

Es. prelievo da un conto corrente come sequenza operazioni

1. Verifica disponibilità

2. Sottrazione importo prelevato

VerificaCC ≥ 1000 ?

VerificaCC ≥ 1000 ?

VerificaCC ≥ 1000 ?

VerificaCC ≥ 1000 ?

Sottrazione1000 €

Sottrazione1000 €

Sottrazione1000 €

Sottrazione1000 €

t

Stesso CC, disponibilità 1000 €Alla fine CC = -1000€!

Accessi concorrenti

Page 7: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Transazione

Insieme di operazioni non decomponibili

Eseguite completamente, prima che stessi dati siano nuovamente disponibili

ACID (atomicity, consi-stency, isolation, durability)

Es. precedente:

1. Verifica disponibilità

2. Sottrazione importo

Unica transazione!

VerificaCC ≥ 1000 ?

VerificaCC ≥ 1000 ?

VerificaCC ≥ 1000 ?

VerificaCC ≥ 1000 ?

Sottrazione1000 €

Sottrazione1000 €

Sottrazione1000 €

Sottrazione1000 €

t

Stesso CC, disponibilità 1000 €Permessa solo 1a transaz.: OK!

Page 8: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Architettura a tre livelli

DatiDati

Applicazioni utenteInterrogazioni

Applicazioni utenteInterrogazioni

DBMSDBMS

Gestioneinterrogazioni

Accesso ai dati

MetadatiMetadati

Schema esternoDati come visti da un certo utenteo da una classe di utenti

Schema logico (o concettuale)Struttura di ciascun dato ecollegamenti tra dati diversi

Schema interno (o fisico)Dati come un insieme di file su disco

Livelli di astrazione

Indipendenzalogica

Indipendenzalogica

Indipendenzafisica

Indipendenzafisica

Page 9: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Linguaggi DDL e DML

DDL (Data Definition Language), intensionale

Usato dal DBA (amministratore)

Definire lo schema dati, secondo il modello concettuale: gerarchico, relazionale ecc.

Definire tabelle, campi, chiavi ecc.

DML (Data Manipulation Lang.), estensionale

Usato all'interno delle applicazioni

CRUD (INSERT, SELECT, UPDATE, DELETE)

~ 4 verbi HTTP (POST, GET, PUT, DELETE)

Page 10: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Modelli dei dati

Caratterizza livello concettuale e esterno DBMS

Definito da regole precise, per esprimere sia le proprietà statiche che quelle dinamiche dei dati

Evoluzione dei modelli:

Gerarchico (anni 1960)

Reticolare (anni 1970)

Relazionale (anni 1970)

Object-relational, object-oriented (anni 1980)

Page 11: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Modello relazionale

Codd - 1970; DBMS reali - 1981

Si basa sul concetto matematico di relazione

Relazioni rappresentate da familiari tabelle

Successo anche per semplicità di utilizzo

A ciascun dominio è associato un nome (attributo), unico nella relazione

Il nome “descrive” il ruolo del dominio

Attributi usati come intestazioni delle colonne

Informazioni inserite nelle righe della tabella

Page 12: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Definizione di relazione

Relazione R: insieme di n-uple ordinate(d

1 … d

n) tali che d

1 ϵ D

1 ... d

n ϵ D

n

Cioè R è sottoinsieme del prodotto cartesianoD

1 × D

2 × … × D

n

Insiemi D1 … D

n (anche non distinti) detti domini

Valore n detto grado di R

Il numero di n-uple in R è detto cardinalità di R

Page 13: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

StudenteStudente

Database universitario

MatricolaMatricola CognomeCognome NomeNome CorsoCorso NascitaNascita

2765527655 RossiRossi MarioMario Ing.Inf.Ing.Inf. 1978-12-051978-12-05

7876378763 RossiRossi MarioMario Ing.Inf.Ing.Inf. 1976-11-031976-11-03

6543265432 NeriNeri PieroPiero Ing. Mecc.Ing. Mecc. 1979-07-101979-07-10

8765487654 NeriNeri MarioMario Ing. Inf.Ing. Inf. 1976-11-031976-11-03

6765367653 RossiRossi PieroPiero Ing. Mecc.Ing. Mecc. 1978-12-051978-12-05

EsameEsame

StudenteStudente InsegnamentoInsegnamento VotoVoto

7876378763 0404 3030

6543265432 0202 2424

6543265432 0101 2828

2765527655 0101 2626

InsegnamentoInsegnamento

CodiceCodice TitoloTitolo DocenteDocente

0101 AnalisiAnalisi ChiariChiari

0202 ChimicaChimica BruniBruni

0404 ChimicaChimica VerdiVerdi

Page 14: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Studente

Terminologia

Matricola Cognome Nome Corso Nascita27655 Rossi Mario Ing.Inf. 1978-12-0578763 Rossi Mario Ing.Inf. 1976-11-0365432 Neri Piero Ing. Mecc. 1979-07-1087654 Neri Mario Ing. Inf. 1976-11-0367653 Rossi Piero Ing. Mecc. 1978-12-05

Schem

a

Riga /

Tupla

/ Rec

ord

Colonna / Attributo / Campo

Tabella / Relazione / File

Page 15: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Dominio di un attributo

Tuple di una relazione definite dall'insieme dei valori corrispondenti agli attributi

Dominio di un attributo: insieme di tutti e soli i valori che quell'attributo può assumere

Es. Dominio dei codici fiscali

Formato dalle stringhe di 16 caratteri che rispettano con precisione le regole di generazione dei codici fiscali

Page 16: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Modello E-R

Si creano associazioni tra entità distinte, tramite condivisione di attributi

Le righe di diverse tabelle hanno domini in comune

Es. Database universitario

Studenti ed esami sono associati con gli attributi matricola e studente

Insegnamenti ed esami con attributi insegnamento e codice

Semplicità: forza del modello relazionale!

Page 17: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Una tabella (relazione) non dovrebbe contenere due righe identiche

Sempre possibile scegliere un sottoinsieme di campi di una tabella, in maniera da identificare univocamente ciascuna riga della tabella

La chiave primaria (primary key, PK) di una tabella è il minimo sottoinsieme di campi che permette di identificare univocamente le righe della tabella

Chiave primaria

Page 18: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Le chiavi candidate sono gli attributi in una relazione con la proprietà di poter essere la chiave primaria:

Tra le chiavi candidate deve essere scelta la chiave primaria

Le chiavi escluse si dicono chiavi alternative

Le righe di una tabella rappresentano “entità” del mondo reale

La chiave primaria rappresenta il modo con cui è possibile distinguere queste entità

Chiave candidata

Page 19: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Le informazioni presenti in tabelle diverse possono essere associate tra loro perché tali tabelle hanno dei domini in comune

Quando il dominio di un campo K che è chiave primaria in una tabella A è presente anche in un’altra tabella B...

Allora questo campo K è detto chiave esterna (foreign key, FK) verso la tabella A

Chiave esterna

Page 20: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Studente

Concetto e tipo di chiave

Matricola Cognome Nome Corso Nascita27655 Rossi Mario Ing.Inf. 1978-12-0578763 Rossi Mario Ing.Inf. 1976-11-0365432 Neri Piero Ing. Mecc. 1979-07-1087654 Neri Mario Ing. Inf. 1976-11-0367653 Rossi Piero Ing. Mecc. 1978-12-05

Esame

Studente Insegnam Voto78763 04 3065432 02 2465432 01 2827655 01 26

Insegnamento

Codice Titolo Docente01 Analisi Chiari02 Chimica Bruni04 Chimica Verdi

PK

PK

PK

FK FK

Page 21: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Normalizzazione

Processo di organizzazione dei dati per evitare ridondanza, anomalie, inefficienza

Stessa informazione in più copie → svantaggi

Maggior uso di memoria

Modifiche ripetute della stessa informazione

Inconsistenza dei dati, se aggiornati in modo indipendente; la stessa informazione potrebbe assumere valori diversi

Page 22: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Prima forma normale

La relazione rispetta il modello relazionale

Le tuple hanno un numero fisso di attributi definiti su domini elementari

Non ci sono righe uguali

Atomicità: ogni attributoè elementare

Non ci sono attributi ripetitivi

AcquistoAcquisto

CarrelloClienteProdottoCategorieQuantità

CarrelloClienteProdottoCategorieQuantità

AcquistoAcquisto

NumCarrelloDataCodFiscClienteNomeClienteCognomeClienteIndirizzoClienteCodProdottoNomeProdottoMarcaPrezzoQuantita

NumCarrelloDataCodFiscClienteNomeClienteCognomeClienteIndirizzoClienteCodProdottoNomeProdottoMarcaPrezzoQuantita

ProdCatProdCat

CodProdottoCategoriaCodProdottoCategoria

Es. Frutta,Sud America

Es. Frutta,Sud America

Spesaa casa

Page 23: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Seconda forma normale

Non ci sono attributi non-chiave che dipendono parzialmente dalla chiave

AcquistoAcquisto

NumCarrelloCodProdottoQuantita

NumCarrelloCodProdottoQuantita

ProdCatProdCat

CodProdottoCategoriaCodProdottoCategoria

CarrelloCarrello

NumCarrelloDataCodFiscaleNomeCognomeIndirizzo

NumCarrelloDataCodFiscaleNomeCognomeIndirizzoProdottoProdotto

CodProdottoNomeMarcaPrezzo

CodProdottoNomeMarcaPrezzo

AcquistoAcquisto

NumCarrelloDataCodFiscClienteNomeClienteCognomeClienteIndirizzoClienteCodProdottoNomeProdottoMarcaPrezzoQuantita

NumCarrelloDataCodFiscClienteNomeClienteCognomeClienteIndirizzoClienteCodProdottoNomeProdottoMarcaPrezzoQuantita

ProdCatProdCat

CodProdottoCategoriaCodProdottoCategoria

**

** **

Page 24: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Terza forma normale

Non ci sono attributi non-chiave che dipendono transitivamente dalla chiave

Ossia dipendenti da campi non-chiave

ClienteCliente

CodFiscaleNomeCognomeIndirizzo

CodFiscaleNomeCognomeIndirizzo

**

AcquistoAcquisto

NumCarrelloCodProdottoQuantita

NumCarrelloCodProdottoQuantita

ProdCatProdCat

CodProdottoCategoriaCodProdottoCategoria

CarrelloCarrello

NumCarrelloDataCodFiscaleNomeCognomeIndirizzo

NumCarrelloDataCodFiscaleNomeCognomeIndirizzoProdottoProdotto

CodProdottoNomeMarcaPrezzo

CodProdottoNomeMarcaPrezzo **

** **

AcquistoAcquisto

NumCarrelloCodProdottoQuantita

NumCarrelloCodProdottoQuantita

ProdCatProdCat

CodProdottoCategoriaCodProdottoCategoria

CarrelloCarrello

NumCarrelloDataCodFiscale

NumCarrelloDataCodFiscale

ProdottoProdotto

CodProdottoNomeMarcaPrezzo

CodProdottoNomeMarcaPrezzo

**

** **

Page 25: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Base teorica per i linguaggi di interrogazione delle basi di dati relazionali

Operano su intere tabelle considerate come insiemi, piuttosto che record per record

Prendono in input tabelle

Generano in output nuove tabelle

Unione, intersezione, differenza (op. insiemistici, applicabili a relazioni definite sugli stessi attributi)

Selezione, proiezione (un solo operando)

Join, prodotto cartesiano (più operandi)

Operatori relazionali

Page 26: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Operatori insiemistici

LaureatiLaureati

MatricolaMatricola NomeNome EtàEtà

72747274 RossiRossi 4242

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

QuadriQuadri

MatricolaMatricola NomeNome EtàEtà

92979297 NeriNeri 3333

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

RepartiReparti

RepartoReparto CapoCapo

AA MoriMori

BB BruniBruni

Page 27: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Unione

LaureatiLaureati

MatricolaMatricola NomeNome EtàEtà

72747274 RossiRossi 4242

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

QuadriQuadri

MatricolaMatricola NomeNome EtàEtà

92979297 NeriNeri 3333

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

Laureati U QuadriLaureati U Quadri

MatricolaMatricola NomeNome EtàEtà

72747274 RossiRossi 4242

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

92979297 NeriNeri 3333

Page 28: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Intersezione

LaureatiLaureati

MatricolaMatricola NomeNome EtàEtà

72747274 RossiRossi 4242

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

QuadriQuadri

MatricolaMatricola NomeNome EtàEtà

92979297 NeriNeri 3333

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

Laureati ∩ QuadriLaureati ∩ Quadri

MatricolaMatricola NomeNome EtàEtà

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

Page 29: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Differenza

LaureatiLaureati

MatricolaMatricola NomeNome EtàEtà

72747274 RossiRossi 4242

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

QuadriQuadri

MatricolaMatricola NomeNome EtàEtà

92979297 NeriNeri 3333

74327432 NeriNeri 5454

98249824 VerdiVerdi 4545

Laureati - QuadriLaureati - Quadri

MatricolaMatricola NomeNome EtàEtà

72747274 RossiRossi 4242

Page 30: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Selezione e proiezione

Selezione

Proiezione

Applicata ad un'unica relazione

Sottoinsieme orizzontale delle righe

Selezionate quelle che soddisfanouna condizione sugli attributi

Applicata ad un'unica relazione

Sottoinsieme orizzontale delle righe

Selezionate quelle che soddisfanouna condizione sugli attributi

Applicata ad un'unica relazione

Sottoinsieme verticale degli attributi

Rimosse inoltre eventualirighe duplicate

Applicata ad un'unica relazione

Sottoinsieme verticale degli attributi

Rimosse inoltre eventualirighe duplicate

Page 31: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Selezione

ImpiegatiImpiegati

MatricolaMatricola NomeNome FilialeFiliale

73097309 RossiRossi RomaRoma

59985998 NeriNeri MilanoMilano

95539553 VerdiVerdi MilanoMilano

StipendioStipendio

5555

6464

4444

56985698 NeriNeri NapoliNapoli 6464

SEL Stipendio > 50 (Impiegati)SEL Stipendio > 50 (Impiegati)

MatricolaMatricola NomeNome FilialeFiliale

73097309 RossiRossi RomaRoma

59985998 NeriNeri MilanoMilano

StipendioStipendio

5555

6464

56985698 NeriNeri NapoliNapoli 6464

SEL Stipendio>50 AND Filiale='Milano' (Impiegati)SEL Stipendio>50 AND Filiale='Milano' (Impiegati)

MatricolaMatricola NomeNome FilialeFiliale

59985998 NeriNeri MilanoMilanoStipendioStipendio

6464

Page 32: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Proiezione

ImpiegatiImpiegati

MatricolaMatricola NomeNome FilialeFiliale

73097309 RossiRossi RomaRoma

59985998 NeriNeri MilanoMilano

95539553 VerdiVerdi MilanoMilano

StipendioStipendio

5555

6464

4444

56985698 NeriNeri NapoliNapoli 6464

PROJ Matricola, Nome (Impiegati)PROJ Matricola, Nome (Impiegati)

MatricolaMatricola NomeNome

73097309 RossiRossi

59985998 NeriNeri

95539553 VerdiVerdi

56985698 NeriNeri

Page 33: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Join

ImpiegatiImpiegati

NomeNome RepartoReparto

RossiRossi AA

NeriNeri BB

BianchiBianchi BB

RepartiReparti

RepartoReparto CapoCapo

AA MoriMori

BB BruniBruni

Impiegati JOIN RepartiImpiegati JOIN Reparti

NomeNome RepartoReparto

RossiRossi AA

NeriNeri BB

BianchiBianchi BB

CapoCapo

MoriMori

BruniBruni

BruniBruni

ImpiegatiImpiegati

NomeNome RepartoReparto

RossiRossi AA

NeriNeri BB

BianchiBianchi BB

RepartiReparti

RepartoReparto CapoCapo

BB MoriMori

BB BruniBruni

Impiegati JOIN RepartiImpiegati JOIN Reparti

NomeNome RepartoReparto

RossiRossi AA

NeriNeri BB

NeriNeri BB

CapoCapo

ChiariChiari

MoriMori

BruniBruni

AA ChiariChiari

BianchiBianchi BB

BianchiBianchi BBMoriMori

BruniBruni

Due relazioni con attributo comune

Congiunte le righe delle due relazioni,quando hanno lo stesso valore per

l'attributo comune

Due relazioni con attributo comune

Congiunte le righe delle due relazioni,quando hanno lo stesso valore per

l'attributo comune

Page 34: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Prodotto cartesiano

ImpiegatiImpiegati

NomeNome RepartoReparto

RossiRossi AA

NeriNeri BB

BianchiBianchi BB

RepartiReparti

CodiceCodice CapoCapo

AA MoriMori

BB BruniBruni

Impiegati × RepartiImpiegati × Reparti

NomeNome RepartoReparto

RossiRossi AA

RossiRossi AA

NeriNeri BB

NeriNeri BB

BianchiBianchi BB

BianchiBianchi BB

CodiceCodice CapoCapo

AA MoriMori

BB BruniBruni

AA MoriMori

BB BruniBruni

AA MoriMori

BB BruniBruni

Join senza uso di attributi in comune

Risultato con numero di n-uple pari alprodotto delle cardinalità degli operandi

(le n-uple sono tutte combinabili)

Join senza uso di attributi in comune

Risultato con numero di n-uple pari alprodotto delle cardinalità degli operandi

(le n-uple sono tutte combinabili)

Page 35: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Proiezione + selezione

ImpiegatiImpiegati

MatricolaMatricola NomeNome FilialeFiliale

73097309 RossiRossi RomaRoma

59985998 NeriNeri MilanoMilano

95539553 VerdiVerdi MilanoMilano

StipendioStipendio

5555

6464

4444

56985698 NeriNeri NapoliNapoli 6464

PROJ matricola, Nome (SEL Stipendio > 50 (Impiegati))PROJ matricola, Nome (SEL Stipendio > 50 (Impiegati))

MatricolaMatricola NomeNome

73097309 RossiRossi

59985998 NeriNeri

56985698 NeriNeri

Raffinare la ricerca di informazionida una singola relazione

Raffinare la ricerca di informazionida una singola relazione

Page 36: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Join + selezione

ImpiegatiImpiegati

NomeNome RepartoReparto

RossiRossi AA

NeriNeri BB

BianchiBianchi BB

RepartiReparti

RepartoReparto CapoCapo

AA MoriMori

BB BruniBruni

SEL Capo = Bruni (Impiegati JOIN Reparti)SEL Capo = Bruni (Impiegati JOIN Reparti)

NomeNome RepartoReparto

NeriNeri BB

BianchiBianchi BB

CapoCapo

BruniBruni

BruniBruni

Raffinare la ricerca di informazionida più relazioni

Raffinare la ricerca di informazionida più relazioni

Page 37: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

Join + proiezione

ImpiegatiImpiegati

NomeNome RepartoReparto

RossiRossi AA

NeriNeri BB

BianchiBianchi BB

RepartiReparti

PROJ Nome, Capo (Impiegati JOIN Reparti)PROJ Nome, Capo (Impiegati JOIN Reparti)

NomeNome

RossiRossi

NeriNeri

NeriNeri

CapoCapo

ChiariChiari

MoriMori

BruniBruni

BianchiBianchi

BianchiBianchiMoriMori

BruniBruni

RepartoReparto

BB

BB

AA

CapoCapo

MoriMori

BruniBruni

ChiariChiari

Raffinare la ricerca di informazionida più relazioni

Raffinare la ricerca di informazionida più relazioni

Page 38: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

SQL: riferimento per manipolazione e interrogazione di basi di dati relazionali

Deriva da una prima proposta di linguaggio di Ibm chiamato Sequel (1974)

Prime implementazioni di Ibm e Oracle (1981)

Da 1983 “standard di fatto”

Evoluzione corrispondente ad aggiornamenti delle specifiche (1986, 1989, 1992, 1999...)

Structured Query Language

Page 39: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

create table Table ( Attribute Domain [Constraints], Attribute Domain [Constraints] … [OtherConstraints])

select Attribute, Attribute … from Table, Table … [where Conditions]

Create, select

Page 40: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

insert into Table [(Attributes)] values(Values)

insert into Table [(Attributes)] select …

update Table set Attribute = <Expression | select … | null | default> [where Condition]

delete from Table [where Condition]

Insert, update, delete

Page 41: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

create table Employee ( Id character(6) primary key, Name character(20) not null, Surname character(20) not null, Location character(15), Salary numeric(9) default 0, City character(15), foreign key(Location) references Department(DepName), unique (Surname, Name))

Es. Tabella impiegati

Page 42: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

create table Person ( Name character(20) primary key, Age numeric(3), Income numeric(9));create table Paternity ( Father character(20), Child character(20) unique);create table Maternity ( Mother character(20), Child character(20) unique);

Es. Tabelle parentele

Page 43: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

-- Tell me name and income of people less than 30 yo

select Name, Income from Person where Age < 30

-- Tell me everything of people less than 30 yo

select * from Person where Age < 30

-- Fathers of people earning more than 50

select Paternity.Father from Person join Paternity on Paternity.Child = Person.Name where Person.Income > 50

Es. Ricerche semplici

Page 44: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

-- Tell me name, income and fathers' age of people earning more than their father

select C.Name, C.Income, F.Age from Person C join Paternity P on C.Name = P.Child join Person F on F.Name = P.Father where C.Income > F.Income;

-- Tell me the name of each person's mother and father

select Paternity.Child, Father, Mother from Paternity join Maternity on Paternity.Child = Maternity.Child

Es. Ricerche complesse

Page 45: Basi di dati - unipr.itBasi di dati con DBMS Da preferire quando: Dati organizzati secondo modelli predefiniti Grandi: fino e oltre TByte, memoria secondaria Condivisi: accesso da

M.

To

mai

uo

lo –

Fo

nd

amen

ti d

i in

form

atic

aM

. T

om

aiu

olo

– F

on

dam

enti

di

info

rmat

ica

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

Dip

. In

geg

ner

ia d

ell'i

nfo

rmaz

ion

e –

Un

iPR

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

htt

p:/

/ww

w.c

e.u

nip

r.it

/peo

ple

/to

mam

ic/

insert into Persons values('Mario', 25, 52);

insert into Persons(Name, Age) values('Pino', 25);

delete from Persons where Age < 18;

update Persons set Income = 45 where Name = 'Piero';

update Persons set Income = Income * 1.1 where Age < 30;

Es. Manipolazione dati