79
Prof. Stefano Ceri Sistemi Informativi Aziendali (9651A) Lezione 1 (27 lucidi) Sistemi Informativi e Basi di Dati Sistema Informativo e' essenziale per il funzionamento dell'azienda e' fortemente integrato con il sistema organizzativo comprende risorse umane Insieme degli strumenti, risorse e procedure che consentono la gestione delle informazioni aziendali Sistema Informatico assicura la generazione, l'elaborazione, la circolazione e la memorizzazione delle informazioni su supporti informatici Insieme dei sistemi hardware e software presenti in una azienda Tipici esempi di sistemi informativi applicazioni gestionali classiche gestione ordini, personale, magazzino applicazioni finanziarie banche, borsa, carte di credito sistemi di prenotazione treni, aerei, alberghi, autonoleggi nuove applicazioni gestione dei progetti, del territorio commercio elettronico Dal dato all’informazione Dato : unita' elementare (grezza) di informazione Informazione : elaborazione dei dati per rispondere a esigenze specifiche dell'impresa

Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 1

(27 lucidi)

SistemiInformativi

e Basi di Dati

Sistema Informativo

• e' essenziale per il funzionamentodell 'azienda

• e' fortemente integrato con il sistemaorganizzativo

• comprende risorse umane

Insieme degli strumenti, risorse e procedure che consentono lagestione delle informazion i aziendali

Sistema Informatico

• assicura la generazione,

l'elaborazione, la circolazione e la

memorizzazione delle informazioni su

supp orti informatici

Insieme dei sistemi hardware e software presenti in un a azienda

Tipici esempi di sistemi informativi• applicazion i gestionali classiche gestione ordini, personale, magazzino

• app licazioni finanziarie banche, borsa, carte di credito

• sistemi di prenotazione treni, aerei, albergh i, autonoleggi• nuo ve applicazioni gestione dei progett i, del terr itorio commercio elett ron ico

Dal dato all’i nformazione

Dato :

unita' elementare (grezza) di informazioneInformazione : elaborazione dei dati per rispond ere a esigenze specifiche dell 'impresa

Page 2: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Compiti della tecnologiadell’i nformazione

(visione centrata sui dati)

• Immiss ione, Memorizzazione,Cancellazione dei dati

• Accesso, Elaborazione,Trasferimento : dai dati all 'informazione• Presentazione, Visualizzazione

dell 'informazione

Dai dati ai process i

PROCESSO :proceduraaziendale cherisponde ad unparticolare compitoapplicativo data

base

process i

utenti

Come analizzare i sistemiinformativi?

CRITERIO PRINCIPALE: STABILITA’ DAI DATI!

a partendo dai datib partendo d ai processi

Architettura che ne consegue

database

process i

utenti

databasemanagement

sys tem

Database Management System(DBMS)

• esistono sul mercato alcune centinaia di prodotti diversi - per uso personale - per server in un a rete - per mainframe

• sistemi software dedicati alla gestione dei dati

• principaledifferenza:gestione dei datiun itaria e

a piu' alto livello(tramitelingu aggispecializzati)

Confronto con architetturecon/senza DBMS

softwareapplicativo

sistemaoperativo

softwareapplicativo

DBMS

sistemaoperativo

file(distinti)

database(unico)

Page 3: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Principali caratteristiche• condivisione dei dati - assenza di replicazione nei file - concorrenza• quali ta' dei dati - vincoli di integrita'• eff icienza - caricamento, query, sort

• controllo dell'accesso - privatezza

• robustezza

Come si usa un DBMS ?

a definendo la struttura generale dei dati

b definendo le specifiche operazion i sui dati

STRUTTURA DEI DATI SUI CONTI CORRENTI

conto corrente di Giorgio Ross iconto corrente di Paolo Bianchi……………………………………….

schema

istanza

Architettura a livelli degli schemi

Schema esterno : descrizione per specifiche applicazion i

Schema logico : descrizione globale

Schema interno : descrizione dei meccanismi di gestione dei dati

Architettura a livelli degli schemi

Database

schemaesterno

applicazioni

schema logico

schema fisico

schemaesterno

applicazioni

schemaesterno

applicazioni

Perche' a tre livelli ?

Ind ipendenza logica : capacita' di offrire una visione dei dati differente ad utenti differenti

Ind ipendenza fisica: capacita' di astrarre completamente dai meccanismi di gestione dei dati

I linguaggi del DBMS

DATA DEFINITIONLANGUAGE (DDL) es: CREATE, DROP, ALTER

DATA MANIPULATIONLANGUAGE (DML) es: SELECT, INSERT, UPDATE, DELETE

Page 4: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Gli utenti del DBMS

Programmatori app licativi : programmano le app licazion i, usano il DML

Database administrator : programma il DDL

Utenti casuali : eseguono version i "amichevoli" del DML (query language, interfacce grafiche)Utenti finali (" terminalisti" ): eseguono le app licazion i

Gli utenti del DBMS

database

applicazioni

DBMS

utenti finali

databaseadministrator

programmatoriapplicativiutenti

casuali

I moduli del DBMS

dati

process oreDDL

databaseadministrator

programmatoreapplicativo

utentefinale

dizionariodati

utentecasuale

process oreDML

applicazione

piano d iesecuzione

query

suppo rtoesecuzione

DBMS

DBMS in uncontesto di rete

database

processoclient

utenti

databasemanagement

sys tem

retemiddleware

databaseserver

processoclient

utenti

Strumenti per realizzare applicazioni

REPORT GENERATOR : aiutano a produrre output - cartacei o su terminale - a caratteri o grafici

FORM MANAGER : aiutano a descrivere l'interazione con il database (FORM = MODULO)

APPLICATION GENERATOR(IV generation langu age) : aiutano a costruire semplici applicazioni

AMBIENTE CASE(Computer-Aided Software Engineering) : aiuta a progettare schemi e applicazioni

Struttura del corso

Parte I: Basi di dati relazionaliParte II: Progetto delle basi di datiParte III: Descrizione dei sistemi informativiParte IV: Esperienze

Page 5: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Obiettivi del corso

Descrizione architetturale - delle basi di dati - dei sistemi informatici - dei sistemi informativi

Per sapersi orientare - nel contesto tecnologico - negli standard industriali

Obiettivi del corso (2)

Insegnare due abilita’ di base (astratte) - progettare basi di dati - interrogare basi di dati

Il contesto tecnologico

• sistemi distribuiti su rete - facili ta' di accesso, interoperabili ta’

• sistemi multiprocessore paralleli - scalabilita' delle prestazion i

• sistemi interconness i da Internet - World-Wide-Web: la miglior interfaccia per accedere facilmente alle informazioni

• nuo ve tecnolog ie per la gestione dei dati - data warehou se, data mining

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 2

(29 lucidi)

Il modellorelazionale

dei dati

Cronologia dei modelliper la rappresentazione dei dati

• Modello gerarchico (ann i 60)

• Modello reticolare (ann i 70)

• Modello relazionale (anni 80)

• Modello a oggetti (ann i 90)

Page 6: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Cronologia del modellorelazionale

• Inventato da T. Codd , 1970 (IBM Research di Santa Teresa, Cal)

• Primi progetti: SYSTEM R (IBM), Ingres (Berkeley Un.)

• Principali scoperte tecnolog iche: 1978-1980• Primi sistemi commerciali : inizio ann i ‘80 (Oracle, IBM-SQL DS e DB2,

Ingres, Informix, Sybase)

• Successo commerciale: dal 1985.

Definizione informale

schema

istanza

studente

MATR

123

307

415

702

NOME

Carlo

Giovanni

Paola

Antonio

CITTA’

Bologn a

Milano

Torino

Roma

C-DIP

Inf

Log

Inf

Log

colonna schema

istanza

studente

MATR

123

307

415

702

NOME

Carlo

Giovanni

Paola

Antonio

CITTA’

Bologn a

Milano

Torino

Roma

C-DIP

Inf

Log

Inf

Log riga

schema

istanza

studente

MATR

123

307

415

702

NOME

Carlo

Giovanni

Paola

Antonio

CITTA’

Bologn a

Milano

Torino

Roma

C-DIP

Inf

Log

Inf

Log

• Prodo tto cartesiano su n do miniD1 x D2 x … Dn (non n ecessariamente

distinti): insieme delle n-ple (tuple)< d1 , d2 ,... dn >, con d i ∈∈ Di , 1 ≤≤ i ≤≤ n

Definizione formale

• Dominio D: un qu alunq ue insieme di valori

• Relazione R su D1 x D2 x... Dn : unqualunque sottoinsieme di

D1 x D2 x ... Dn .

Esempio

• D1 = (a,b)• D2 = (1,2,3)

• D1 x D2 = ( <a,1>, <b,1>, <a,2>, <b,2>, <a,3>, <b,3> )

• R1 = ( <a,1>, <b,3> )• R2 = ( <c,1>, <b,3>, <a,2> )• R3 = ( )• R4 = ( <a,1>, <b,1>, <a,2>, <b,2>,

<a,3>, <b,3> )

Proprieta'

• Grado della relazione: numero di domini (n)• Cardinali ta' della relazione: numero di tup le

• Att ributo: nome dato al dominio in un a relazione [I nomi di att ributo in un a relazione

devono essere tutti distinti fra loro]

Schema (di una relazione): tabella (att ributo1,… attributoN)[I nomi delle relazion i in uno schema devono

essere tutti distinti fra loro]

Aab

B13

Ccba

D132

R1(A,B) R2(C,D)

Proprieta'

Page 7: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Confronto della terminologia

DEFINIZIONE FORMALE

relazione

att ributo tupla, n-pla dominio cardinalita'grado

DEFINIZIONE INFORMALE

tabella

colonnarigatipo d i datonumero di righenumero di colonne

Una differenzasignificativa

DEFINIZIONEFORMALEassenzadi dup licatiDEFINIZIONEINFORMALEposs ibilidup licati

Esempio :gestione degli esami universitari

studente

MATR

123

415

702

NOME

Carlo

Paola

Anton io

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

Esempio :gestione degli esami universitari

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

Esempio :gestione degli esami universitari

esameMATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

Esempio :gestione degli esami universitaristudente

MATR

123

415

702

NOME

Carlo

Paola

Anton io

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

esameMATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

Interrogazioni• quali professori hanno esaminato Carlo?studente

MATR

123

415

702

NOME

Carlo

Paola

Anton io

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

esameMATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

Page 8: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Interrogazioni• quali studenti hanno preso 30 in matematica?studente

MATR

123

415

702

NOME

Carlo

Paola

Anton io

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

esameMATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

Esempio : gestione personale

impiegato

MATR

1

2

3

NOME

Piero

Giorgio

Giovanni

DATA-ASS

1-1-95

1-1-97

1-7-96

SALARIO

3 M

2,5 M

2 M

assegnamentoMATR

1

1

2

3

NUM-PROG

3

4

3

4

PERC

50

50

100

100

progettoTITOLO

Idea

Wide

TIPO

Esprit

Esprit

MATR-MGR

2

null

2

NUM-PROG

3

4

Interrogazioni

impiegato

MATR

1

2

3

NOME

Piero

Giorgio

Giovanni

DATA-ASS

1-1-95

1-1-97

1-7-96

SALARIO

3 M

2,5 M

2 M

assegnamentoMATR

1

1

2

3

NUM-PROG

3

4

3

4

PERC

50

50

100

100

progettoTITOLO

Idea

Wide

TIPO

Esprit

Esprit

MATR-MGR

2

null

2

NUM-PROG

3

4

• chi e' il manager di Piero?Interrogazioni

• in qu ali tipi di progetti lavora Giovanni?

impiegato

MATR

1

2

3

NOME

Piero

Giorgio

Giovanni

DATA-ASS

1-1-95

1-1-97

1-7-96

SALARIO

3 M

2,5 M

2 M

assegnamentoMATR

1

1

2

3

NUM-PROG

3

4

3

4

PERC

50

50

100

100

progettoTITOLO

Idea

Wide

TIPO

Esprit

Esprit

MATR-MGR

2

null

2

NUM-PROG

3

4

Esempio : gestione ordinicliente

COD-CLI INDIRIZZO P-IVA

COD-ORD COD-CLI DATA IMPORTO

COD-ORD COD-PROD QTA

COD-PROD NOME PREZZO

prodo tto

dettaglio

ordine

Interrogazioni

• quali ordini ha emesso Paolo?• quanti ordini ha emesso Paolo?• quante candele sono state ordinate il 5/7/93?• calcolare per ciascun cliente la somma degli importi di tutt i gli ordini• estrarre l'ordine di importo piu' alto

Page 9: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Rifless ioni

a differenza fra schema e istanza

b due att ivita' assai differenti: - progetto dello schema - gestione dell 'istanza

c passaggio dai dati all'informazione (Query langu age)

Come arr icchire lo schema?

VINCOLI DI INTEGRITA': escludono alcune istanze in quanto non rappresentano correttamente il mond o applicativo

- CHIAVI - VINCOLI SUI VALORI NULLI (POI) - INTEGRITA' REFERENZIALE (POI) - VINCOLI GENERICI (POI)

Nozione di chiave

Sottoinsieme degli att ributi delloschema che ha la proprieta' di un icita' eminimali ta'

un icita': non esistono due tuple con chiave ugu ale

minimali ta': sott raendo un qu alunq ue att ributo alla chiave si perde la proprieta' di unicita'

Chiavi nell 'esempio :gestione degli esami universitari

MATR COD-CORSO DATA VOTO

COD-CORSO TITOLO DOCENTE

studente

corso

esame

MATR NOME CITTA’ C-DIP

Chiavi nell 'esempio :gestione personale

MATR NUM-PROG PERC

NUM-PROG NOME PREZZO

impiegato

progetto

assegnamento

MATR NOME DATA-ASS SALARIO MATR-MIL

Chiavi nell 'esempio :gestione ordini

COD-CLI INDIRIZZO P-IVA

COD-ORD COD-CLI DATA IMPORTO

COD-ORD COD-PROD QTA

COD-PROD NOME PREZZO

cliente

prodo tto

dettaglio

ordine

Page 10: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Con molteplici chiavi:

una e' definita CHIAVE PRIMARIAle rimanenti chiavi sono SECONDARIE

CLIENTE(COD-CLIENTE,INDIRIZZO,P-IVA)

Chiave primaria: COD-CLIENTE Chiave secondaria: P-IVA

Sommario:

• Definizione formale e informale di relazione (o tabella)

• Descrizione informale di varie basi di dati relazionali e delle interrogazion i esprimibil i su d i esse

• Definizione e esempli ficazione della nozione di chiave

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 3

(34 lucidi)

Linguaggi diinterrogazione

Class ificazione

a linguaggi formali

SQL: Structured Query Langu age QBE: Query By Example

Algebra relazionale Calcolo relazionale Programmazione log ica

b lingu aggi programmativi

Algebra relazionale

• definita da Codd (70)

• molto u tile per imparare a formulare query

• insieme minimo d i 5 operazioni che danno l'intero po tere espress ivo del lingu aggio

Page 11: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Una visione d'insieme

operazion i

unarie

binarie

selezioneproiezioneunionedifferenzajoin

Esempio :gestione degli esami universitaristudente

MATR

123

415

702

NOME

Carlo

Paola

Anton io

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

esameMATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

Selezione

SELECT [NOME='Paola'] STUDENTE

MATR

415

NOME

Paola

CITTA’

Torino

C-DIP

Inf

e' una tabella (priva di nome) con

• schema : lo stesso schema di STUDENTE• istanza : le tup le di STUDENTE che sodd isfano il predicato d i selezione

Sintass i del predicato di selezione

espressione booleana di predicati semplici

operazioni booleane :• AND (P1 AND P2)• OR (P1 OR P2)• NOT (P1)predicati semplici :• TRUE, FALSE• termine

comparatoretermine

comparatore :• =, !=, <, <=, >, >=

termine :• costante, attribu to• espress ione

aritmetica dicostanti e attributi

SELECT [(CITTA'='Torino') OR ((CITTA'='Roma') AND NOT (C-DIP='log'))] STUDENTE

Esempio di selezione

MATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

Proiezione

NOME

Carlo

Paola

Antonio

C-DIP

Inf

Inf

Log

PROJECT [NOME,C-DIP] STUDENTE

e' una tabella (priva di nome) con• schema : gli att ributi NOME e C-DIP• istanza : la restrizione delle tup le sug li att ributi NOME e C-DIP

Page 12: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Proiezione e duplicati

• nel modello formale la proiezione elimina i dup licati

C-DIP

Inf

Log

PROJECT [C-DIP] STUDENTE

• nel modello informale (e nei sistemi) la eliminazione dei duplicati va richiesta esplicitamente

Assegnamento

• non fa parte delle operazioni algebriche

INFORMATICI =SELECT [C-DIP='Inf'] STUDENTI

TORINESI =SELECT [CITTA'='Torino '] STUDENTI

• serve per dare un no me al risultato d i una espressione algebrica

Unione

TABELLA1 UNION TABELLA2

con lo stesso gradooppu re (nei sistemi)con do mini ordinatamente dello stesso tipo

si puo ' fare se TABELLA1 e TABELLA2sono compatibili

Unione

MATR

123

415

NOME

Carlo

Paola

CITTA’

Bologn a

Torino

C-DIP

Inf

Inf

INFORMATICI UNION TORINESI

e' una tabella (priva di nome) con• schema : lo schema di INFORMATICI• istanza : la un ione delle tuple di INFORMATICI e TORINESI

Differenza

TABELLA1 MINUS TABELLA2

si puo ' fare se TABELLA1 e TABELLA2sono compatibili

Differenza

e' una tabella (priva di nome) con

MATR

123

NOME

Carlo

CITTA’

Bologn a

C-DIP

Inf

attenzione:non e'commutativa

INFORMATICI MINUS TORINESI

• schema : lo schema di INFORMATICI

• istanza : la differenza delle tup le di INFORMATICI e TORINESI

Page 13: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

JoinSTUDENTE JOIN [MATR=MATR] ESAME

STUDENTE.MATR

123

123

702

NOME

Carlo

Carlo

Anton io

CITTA’

Bologn a

Bologn a

Roma

C-DIP

Inf

Inf

Log

ESAME.MATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

e' una tabella (priva di nome) con• schema : la concatenazione degli schemi di STUDENTE e ESAME

• istanza: le tuple ottenute concatenando qu elle tuple di STUDENTE e di ESAME che soddisfano il predicato

Sintass i del predicato di join

espressione congiuntiva di predicatisemplici: ATTR1 comp ATTR2

ove ATTR1 appartiene a TAB1 ATTR2 appartiene a TAB2 comp: =, !=, <, <=, >, >=

att ributi omonimi sono resi non ambigu iusando la notazione “ pun tata” : ESAME.MATR, STUDENTE.MATR

Equi-join e Join naturale

EQUI-JOIN :soli confronti di ugu aglianza

MATR

123

123

702

NOME

Carlo

Carlo

Anton io

CITTA’

Bologn a

Bologn a

Roma

C-DIP

Inf

Inf

Log

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

JOIN NATURALE :equi-join di tutt i gli att ributi omonimi

STUDENTE JOIN ESAME

Join naturale di tre tabelle

STUDENTE JOIN ESAME JOIN CORSO

MATR

123

123

702

NOME

Carlo

Carlo

Anton io

CITTA’

Bologn a

Bologn a

Roma

C-DIP

Inf

Inf

Log

COD-CORSO

1

2

3

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

DOCENTE

barozzi

meo

meo

TITOLO

matem

infor

infor

Espressioni algebriche

• Esprimono interrogazion i in modo formale

• Concatenazione di piu' operazioni algebriche

• Consentono di estrarre informazion i dai dati

Selezione e proiezione

NOME

Carlo

Paola

• quali studenti sono iscritti al diploma di informatica?

MATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

PROJECT [NOME] SELECT [C-DIP='Inf'] STUDENTE

Page 14: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Selezione e proiezioneMATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

• quali studenti di Logistica non sono di Milano?

PROJECT [NOME] SELECT [C-DIP='Log' AND CITTA’ != 'Milano '] STUDENTE

NOME

Antonio

Esempio :gestione degli esami universitaristudente

MATR

123

415

702

NOME

Carlo

Paola

Anton io

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

esameMATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

Selezione, proiezione e join

• quali studenti hanno preso 30 in matematica?

MATR

123

123

702

NOME

Carlo

Carlo

Anton io

CITTA’

Bologn a

Bologn a

Roma

C-DIP

Inf

Inf

Log

COD-CORSO

1

2

3

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

DOCENTE

barozzi

meo

meo

TITOLO

matem

infor

infor

Selezione, proiezione e join

• quali studenti hanno preso 30 in matematica?

NOME

Carlo

PROJECT [NOME] SELECT [VOTO=30 AND TITOLO='matematica'] (STUDENTE JOIN ESAME JOIN CORSO)

Equivalenza di espress ioni• quali studenti hanno preso 30 in matematica?

PROJECT [NOME] ( STUDENTE JOIN (SELECT [VOTO=30] ESAME) JOIN (SELECT [TITOLO='matematica'] CORSO))

PROJECT [NOME] SELECT [VOTO=30 AND TITOLO='matematica'](STUDENTE JOIN ESAME JOIN CORSO)

Selezione, proiezione e join

PROJECT [DOCENTE] SELECT [NOME = 'Anton io'] (STUDENTE JOIN ESAME JOIN CORSO)

DOCENTE

Meo

• quali professori hanno esaminato Anton io?

Page 15: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Equivalenza di espress ioni

PROJECT [DOCENTE] SELECT [NOME = 'Anton io'] (STUDENTE JOIN ESAME JOIN CORSO)

PROJECT [DOCENTE] (CORSO JOIN (ESAME JOIN SELECT [NOME = 'Anton io'] STUDENTE))

Espressioni con unione e differenza

( PROJECT [MATR] SELECT [CITTA'='Roma'] STUDENTE)UNION( PROJECT [MATR] (STUDENTE JOIN SELECT [DATA=8-1-98] ESAME))

MATR

702

MATR

123UNION

MATR

702

123

• estrarre la matricola degli studentiromani oppure degli studenti che hannosostenuto un esame il giorno 8-1-98

Espressioni con unione e differenza

(PROJECT [MATR] SELECT [VOTO>=28] ESAME) MINUS (PROJECT [MATR] SELECT [VOTO<25] ESAME)

MATR

702

MATR

123MINUS MATR

123

• estrarre la matricola degli studenti chehanno preso almeno un voto superiorea 28 e non sono mai sces i sotto il 25

Esercizi

• Riprendere le basi di dati per la gestione del personale e degli ordini e esprimere in forma algebrica le interrogazion i : - in quali tipi di progetti lavora Giovanni? - chi e' il manager di Piero? - quali ordini ha emesso Paolo? - quali prodotti sono ordinati da un cliente di Milano? - quali prodotti hanno prezzo inferiore a L. 5000 e non sono presenti in nessun ordine?

Esempio : gestione personale

impiegato

MATR

1

2

3

NOME

Piero

Giorgio

Giovanni

DATA-ASS

1-1-95

1-1-97

1-7-96

SALARIO

3 M

2,5 M

2 M

assegnamentoMATR

1

1

2

3

NUM-PROG

3

4

3

4

PERC

50

50

100

100

progettoTITOLO

Idea

Wide

TIPO

Esprit

Esprit

MATR-MGR

2

null

2

NUM-PROG

3

4

Esempio : gestione ordinicliente

COD-CLI INDIRIZZO P-IVA

COD-ORD COD-CLI DATA IMPORTO

COD-ORD COD-PROD QTA

COD-PROD NOME PREZZO

prodo tto

dettaglio

ordine

Page 16: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 4

(29 lucidi)

Dichiarazionedegli schemi

in SQL

Storia di SQL

• Definito nell 'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976

• Nome originario: SEQUEL

• Adottato progress ivamente da tutti i sistemi commerciali

• Standardizzato da ANSI e ISO

Composizione di SQL

• Data Definition Langu age (DDL) definizione di: domini, tabelle, ind ici autorizzazioni, viste, vincoli, procedure, trigger

• Data Manipu lation Language (DML) lingu aggio di query, linguaggio d i modifica, comandi transazionali

Standardizzazione di SQL

• Progress ione dello standard per estensioni quasi-compatibili

• In SQL-2: - entry SQL (piu' o meno equivalente a SQL-89) - intermediate SQL - full SQL

- prima versione nel 1986 (SQL-1) - modifica alla prima versione nel 1989 (SQL-89) - seconda versione nel 1992 (SQL-2, SQL-92) - terza versione attesa per il 1998 (SQL-3)

Potere espress ivo di standard e sistemi commerciali

SQL-2

SQL-1

SQL-89

SQL-3

un tipicosistema

commerciale

Page 17: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Domini elementari in SQL-2

a stringh e

CHAR (N)

VARCHAR (N)

BIT (N)

VARBIT (N)

b numerici esatt i

NUMERIC (N)

DECIMAL (N)

INTEGER

SMALLINT

Altri domini elementari in SQL-2

c numerici appross imati

FLOAT(N) N=2, 0.172E04 = 1700

REAL

DOUBLE PRECISION

b domini speciali

DATE YYYYMMDD

TIME(N) HHMMSS.NNNN

TIMESTAMP

INTERVAL

Il valore "null "

null e' un valore po limorfico(che appartiene a tutti i domini)col significato d i valore non no to

Il valore "null "

il valore esiste in realta'ma e' igno to al database(es.: data di nascita)

il valore e' inapp licabile(es.: numero patente per minorenni)

Vincoli di integrita' di dominioNOT NULL esclude il valore nu lloPRIMARY KEY chiave primaria (implica NOT NULL)

UNIQUE chiave secondaria (non implica NOT NULL)

CHECK predicato che deve ess ere sodd isfatto (POI)

CREATE DOMAIN PrezzoQuotidianiAS INTEGER DEFAULT 1500 NOT NULL

Definizione dei domini applicativi

CREATE DOMAIN OreLezioneAS SMALLINT DEFAULT 40

Definizione delle tabelle

CREATE TABLE STUDENTE ( MATR CHAR(6) PRIMARY KEY

NOME VARCHAR (30) NOT NULL

CITTA' VARCHAR (20)

C-DIP CHAR (3) )

Page 18: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Definizione delle tabelle (2)

CREATE TABLE ESAME ( MATR CHAR(6) COD-CORSO CHAR(6) DATA DATE NOT NULL VOTO SMALLINT NOT NULL PRIMARY KEY(MATR,COD-CORSO) )

CREATE TABLE CORSO ( COD-CORSO CHAR(6) PRIMARY KEY TITOLO VARCHAR(30) NOT NULL DOCENTE VARCHAR(20) )

Integrita' referenziale

• Esprime un legame gerarchico (padre- figlio) fra tabelle

• Alcuni attributi della tabella figlio sono d efiniti FOREIGN KEY

• I valori contenuti nella FOREIGN KEY devono essere sempre presenti nella tabella padre

Esempio: studente - esame

MATR

123

415

702

MATR

123

123

702

studente

esame

Il problema degli orfani

MATR

123

415

702

MATR

123

123

702

studente

esame

orfani:tuple che restano prive dipadre a causa di cancellazionie modifiche della tabella padre

Gestione degli orfani:cancellazione

Cosa succede degli esami se si cancellanogli studenti?

a CASCADE (si cancellano anche gli esami) b SET NULL c SET DEFAULT d NO ACTION

Gestione degli orfani:modifica

Cose succede degli esami se si modifica lamatricola nella tabella STUDENTE?

a CASCADE (si modifica la FOREIGN KEY anche nei corr ispondenti esami) b SET NULL c SET DEFAULT d NO ACTION

Page 19: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Definizione : nella tabella figlio

CREATE TABLE ESAME ( .... .... FOREIGN KEY MATR REFERENCES STUDENTI ON DELETE CASCADE ON UPDATE CASCADE )

E' lecito essere figli di piu' padriCREATE TABLE ESAME ( .... PRIMARY KEY(MATR,COD-CORSO)

FOREIGN KEY MATR REFERENCES STUDENTI ON DELETE CASCADE ON UPDATE CASCADEFOREIGN KEY COD-CORSO REFERENCES CORSO ON DELETE NO ACTION ON UPDATE NO ACTION )

Una istanza scorretta

MATR

123

415

702

NOME CITTA’ C-DIP

MATR

123

123

123

702

702

714

COD-CORSO

1

2

2

2

1

1

DATA

7-9-97

8-1-98

1-8-97

7-9-97

NULL

7-9-97

VOTO

30

28

28

20

NULL

28

esame

viola la chiave

viola il NULLviola la integrita' referenziale

Una istanza corretta

MATR

123

415

702

NOME CITTA’ C-DIP

esameMATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

Esempio : gestione ordinicliente

COD-CLI INDIRIZZO P-IVA

COD-ORD COD-CLI DATA IMPORTO

COD-ORD COD-PROD QTA

COD-PROD NOME PREZZO

prodo tto

dettaglio

ordine

Definizione della tabella CLIENTE

CREATE TABLE CLIENTE ( COD-CLI CHAR(6) PRIMARY KEY INDIRIZZO CHAR(50) P-IVA CHAR(12) UNIQUE )

Page 20: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Definizione della tabella ORDINE CREATE TABLE ORDINE ( COD-ORD CHAR(6) PRIMARY KEY COD-CLI CHAR(6) NOT NULL DEFAULT='999999' DATA DATE IMPORTO INTEGER

FOREIGN KEY COD-CLI REFERENCES ORDINE ON DELETE SET DEFAULT ON UPDATE SET DEFAULT)

Definizione della tabella DETTAGLIO CREATE TABLE DETTAGLIO ( COD-ORD CHAR(6) COD-PROD CHAR(6) QTA SMALLINT PRIMARY KEY(COD-ORD,COD-PROD) FOREIGN KEY COD-ORD REFERENCES ORDINE ON DELETE CASCADE ON UPDATE CASCADE FOREIGN KEY COD-PROD REFERENCES PRODOTTO ON DELETE NO ACTION ON UPDATE NO ACTION)

Definizione della tabella PRODOTTO

CREATE TABLE PRODOTTO ( COD-PROD CHAR(6) PRIMARY KEY NOME CHAR(20) PREZZO SMALLINT )

Esercizio

Riprendere le basi di dati per la gestione del personale (seconda lezione) ed esprimere in SQL la dichiarazione dello schema.

Esempio : gestione personale

impiegato

MATR

1

2

3

NOME

Piero

Giorgio

Giovanni

DATA-ASS

1-1-95

1-1-97

1-7-96

SALARIO

3 M

2,5 M

2 M

assegnamentoMATR

1

1

2

3

NUM-PROG

3

4

3

4

PERC

50

50

100

100

progettoTITOLO

Idea

Wide

TIPO

Esprit

Esprit

MATR-MGR

2

null

2

NUM-PROG

3

4

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 5

(31 lucidi)

Page 21: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Interrogazioniin SQL

Dichiarativita' di SQL

• In SQL l'utente specifica QUALEinformazione e' di suo interesse manon COME estrarla dai dati

• il sistema costruisce una strategia diaccesso (QUERY OPTIMIZATION)

• e’ l'aspetto piu' quali ficante delle basidi dati relazionali

Struttura di SQL

• Basata sulla composizione di blocchi (SELECT FROM WHERE)

• Ogni blocco ha il potere espress ivo di una qualunqu e combinazione di selezion i, proiezion i e join

Esempio :gestione degli esami universitaristudente

MATR

123

415

702

NOME

Carlo

Paola

Anton io

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

esameMATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-97

8-1-98

7-9-97

VOTO

30

28

20

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

MATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologn a

Torino

Roma

C-DIP

Inf

Inf

Log

Interrogazione semplice

SELECT * FROM STUDENTE

Interrogazione semplice

SELECT NOME FROM STUDENTE WHERE C-DIP = 'Log'

MATR NOME CITTA’ C-DIP

INTERPRETAZIONE ALGEBRICA (a meno dei duplicati) PROJECT [NOME] SELECT [C-DIP='Log '] STUDENTE

STUDENTE

Page 22: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Sintass i nella clausola SELECT

SELECT *SELECT NOME, CITTA'SELECT DISTINCT CITTA'SELECT CITTA' AS LUOGO-DI-RESIDENZASELECT REDDITO-CATASTALE * 0.05 AS TASSA-ICISELECT SUM(SALARIO)

Sintass i della clausola FROM

FROM STUDENTEFROM STUDENTE AS XFROM STUDENTE, ESAMEFROM STUDENTE JOIN ESAME ON STUDENTE.MATR=ESAME.MATR

Sintass i della clausola WHERE

• Espress ione Booleana di predicatisemplici (come in algebra)

• Alcuni predicati aggiuntivi:

– LIKE:C-DIP LIKE 'log%'

TARGA LIKE 'MI_777_8%'

– BETWEEN: DATA BETWEEN 1-1-90 AND 31-12-99

Duplicati

SELECTDISTINCT C-DIPFROM STUDENTE

SELECT C-DIPFROM STUDENTE

C-DIP

Inf

Log

C-DIP

Inf

Inf

Log

Interrogazioni e valori nulli

SELECT *FROM STUDENTEWHERE CITTA' IS [NOT] NULL

attenzione :se CITTA' ha valore NULL(CITTA' = 'Milano ') ha valore 'UNKNOWN'

Predicati e valori nulli

• P = (CITTA' IS NOT NULL) AND (C-DIP LIKE 'Inf%')

• log ica a tre valori (V,F,U)

V AND U = U V OR U = V

F AND U = F F OR U = U

NOT U = U

CITTA’

Milano

Milano

NULL

Milano

C-DIP

Inf

NULL

Inf

Log

P

V

U

F

F

TUPLA SELEZ

si

no

no

no

Page 23: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

SELECT NOMEFROM STUDENTE, ESAME

Interrogazione semplicecon due tabelle

WHERE STUDENTE.MATR = ESAME.MATR AND C-DIP LIKE 'Lo%’ AND VOTO = 30

NOME

Carlo

Estrarre il nome degli studenti di “ Logistica”che hanno p reso almeno un 30.

Interpretazione algebrica(a meno di dup licati e includendo n ell 'algebra

il match parziale)

PROJECT [NOME]SELECT [(C-DIP LIKE 'Lo%') AND (VOTO=30)] (STUDENTE JOIN ESAME)

SELECT NOMEFROM STUDENTE, ESAMEWHERE STUDENTE.MATR = ESAME.MATR

AND C-DIP LIKE 'Lo%’ AND VOTO = 30

Join di due tabelle(variante sintatt ica)

SELECT NOMEFROM STUDENTE JOIN ESAME ON STUDENTE.MATR = ESAME.MATRWHERE C-DIP LIKE 'Lo%' AND VOTO > 30

SELECT NOMEFROM STUDENTE, ESAMEWHERE STUDENTE.MATR = ESAME.MATR

AND C-DIP LIKE 'Lo%’ AND VOTO = 30

SELECT NOMEFROM STUDENTE, ESAME, CORSOWHERE STUDENTE.MATR = ESAME.MATR AND CORSO.COD-CORSO = ESAME.COD-CORSO AND TITOLO LIKE 'mat%' AND VOTO = 30

Interrogazione semplicecon tre tabelle

PROJECT [NOME]SELECT [(TITOLO LIKE 'mat%') AND (VOTO=30)] (STUDENTE JOIN ESAME JOIN CORSO)

Estrarre il nome degli studenti di “ Matematica”che hanno preso almeno un 30.

Interrogazione semplice convariabili relazionali

impiegato

MATR

1

2

3

NOME

Piero

Giorgio

Giovanni

DATA-ASS

1-1-95

1-1-97

1-7-96

SALARIO

3 M

2,5 M

2 M

MATR-MGR

2

null

2

CHI SONO I DIPENDENTI DI GIORGIO?

Chi sono i dipendenti di Giorgio?

SELECT X.NOMEFROM IMPIEGATO AS X, IMPIEGATO AS YWHERE X.MATR-MGR = Y.MATR AND Y.NOME = “ Giorgio”

X.MATR-MGR

2

2

X.NOME

Piero

Giovanni

Y.NOME

Giorgio

Giorgio

Y.MATR

2

2

Page 24: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Blocchi SQL per la modifica

tre operazion i elementari

• inserzione• cancellazione• modifica

Inserzione

INSERT INTO STUDENTE VALUES ('456878', 'Giorgio Rossi', 'Bologn a', 'Logistica e Produzione')

INSERT INTO BOLOGNESI (SELECT * FROM STUDENTE WHERE CITTA' = 'Bologna')

Cancellazione

DELETE FROM STUDENTEWHERE MATR = '678678'

Modifica

UPDATE ESAMESET VOTO = 30WHERE DATA = 1-4-97

UPDATE ESAMESET VOTO = VOTO + 1WHERE MATR = '787989'

Esercizi

• Riprendere le basi di dati per la gestione del personale e esprimere in SQL le interrogazion i seguenti: - in quali tipi di progett i lavora Giovanni? - chi e' il manager di Piero? - in quali progett i lavora Piero? - quali i mpiegati lavorano nel progetto “ IDEA” ? - quali i mpiegati lavorano al 100% del loro tempo nel progetto “ WIDE” ?

Esercizi

• Riprendere le basi di dati per la gestione del personale e esprimere in SQL le modifiche seguenti: - inserire la tupla <4,Luca,1-1-97,2M,1> - modificare il salario d i Piero assegnandolo

a 4M - aumentare il salario d i Giorgio del 5% - cancellare i dati di Giovanni

Page 25: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Esempio : gestione personale

impiegato

MATR

1

2

3

NOME

Piero

Giorgio

Giovanni

DATA-ASS

1-1-95

1-1-97

1-7-96

SALARIO

3 M

2,5 M

2 M

assegnamentoMATR

1

1

2

3

NUM-PROG

3

4

3

4

PERC

50

50

100

100

progettoTITOLO

Idea

Wide

TIPO

Esprit

Esprit

MATR-MGR

2

null

2

NUM-PROG

3

4

Esercizio 1• in quali tipi di progetti lavora Giovanni?

TIPO

Esprit

PROJECT [TIPO] SELECT [NOME=’Giovanni'] (IMPIEGATO JOIN ASSEGNAMENTO JOIN PROGETTO)

Esercizio 1• in quali tipi di progetti lavora Giovanni?

SELECT TIPO FROM IMPIEGATO AS I, ASSEGNAMENTO AS A, PROGETTO AS P WHERE I.MATR=A.MATR

AND A.NUM-PROG=P.NUM-PROGAND NOME='Giovanni'

Esercizio 2• chi e' il manager di Piero?

SELECT Y.NOME FROM IMPIEGATO AS X, IMPIEGATO AS Y WHERE X.MATR-MGR=Y.MATR

AND X.NOME='Piero'

Esercizio 3• modificare il salario di Piero assegnandolo a 4M

UPDATE IMPIEGATO SET SALARIO = 4M WHERE NOME='Piero'

Esercizio 4• aumentare il salario d i Giorgio del 5%

UPDATE IMPIEGATO SET SALARIO = SALARIO * 1.05 WHERE NOME='Giorgio'

Page 26: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 6

(39 lucidi)

Interrogazionicomplesse

Class ificazione delleinterrogazioni complesse

• Query con ordinamento• Query con aggregazioni• Query con raggrupp amento• Query binarie• Query nidificate

Esempio : gestione ordinicliente

COD-CLI INDIRIZZO P-IVA

COD-ORD COD-CLI DATA IMPORTO

COD-ORD COD-PROD QTA

COD-PROD NOME PREZZO

prodo tto

dettaglio

ordine

Istanza di ordine

ordine

COD-ORD

1

2

3

4

5

6

COD-CLI

3

4

3

1

1

3

DATA

1-6-97

3-8-97

1-9-97

1-7-97

1-8-97

3-9-97

IMPORTO

50.000.000

8.000.000

5.500.000

12.000.000

1.500.000

27.000.000

Query con ordinamentoSELECT *FROM ORDINEWHERE IMPORTO > 100.000ORDER BY DATACOD-ORD

1

4

5

2

3

6

COD-CLI

3

1

1

4

3

3

DATA

1-6-97

1-7-97

1-8-97

3-8-97

1-9-97

3-9-97

IMPORTO

50.000.000

12.000.000

1.500.000

8.000.000

1.500.000

5.500.000

Page 27: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Order by COD-CLI

COD-ORD

4

5

1

6

3

2

COD-CLI

1

1

3

3

3

4

DATA

1-7-97

1-8-97

1-6-97

3-9-97

1-9-97

3-8-97

IMPORTO

12.000.000

1.500.000

50.000.000

5.500.000

1.500.000

27.000.000

Order by COD-CLI asc, DATA desc

COD-ORD

5

4

6

3

1

2

COD-CLI

1

1

3

3

3

4

DATA

1-8-97

1-7-97

3-9-97

1-9-97

1-6-97

3-8-97

IMPORTO

1.500.000

12.000.000

5.500.000

1.500.000

50.000.000

27.000.000

Query aggregate

Utili zzano le funzion i aggregate:

SUM sommatoriaAVG mediaMIN minimoMAX massimoCOUNT cardinali ta'

Query con mass imo

SELECT MAX(IMPORTO) AS MAX-IMPFROM ORDINE

MAX-IMP

50.000.000

• Selezionare l’i mporto massimo degliordini.

Query con sommatoria

SELECT SUM(IMPORTO) AS SOMMA-IMPFROM ORDINEWHERE COD-CLIENTE = 1

SOMMA-IMP

13.500.000

• Selezionare la somma degli i mporti degliordini relativi al cliente numero 1.

Query con raggruppamento

si aggiungon o le clausoleGROUP-BY (raggrupp amento)HAVING (selezione dei gruppi)

SELECT …..FROM …..WHERE …..GROUP BY …..HAVING …..

Page 28: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Query con raggruppamento

• Selezionare la somma degli i mporti degliordini successivi al 10-6-97 per quei clientiche hanno emesso almeno 2 ordini.

SELECT COD-CLI, SUM (IMPORTO)FROM ORDINEWHERE DATA > 10-6-97GROUP BY COD-CLIHAVING COUNT (IMPORTO) >= 2

Passo 1: Valutazione WHERE

COD-ORD

2

3

4

5

6

COD-CLI

4

3

1

1

3

DATA

3-8-97

1-9-97

1-7-97

1-8-97

3-9-97

IMPORTO

8.000.000

5.500.000

12.000.000

1.500.000

27.000.000

Passo 2 : Raggruppamento

COD-ORD

4

5

3

6

2

COD-CLI

1

1

3

3

4

DATA

1-7-97

1-8-97

1-9-97

3-9-97

3-8-97

IMPORTO

12.000.000

1.500.000

1.500.000

5.500.000

8.000.000

si valuta la clausola GROUP-BY

Passo 3 : Calcolo degli aggregati

si calcolano SUM (IMPORTO) e COUNT(IMPORTO) per ciascun g ruppo

COD-CLI

1

3

4

SUM (IMPORTO)

13.500.000

32.500.000

5.000.000

COUNT (IMPORTO)

2

2

1

Passo 4 : Estrazione dei gruppi

si valuta il predicatoCOUNT (IMPORTO) >=2

COD-CLI

1

3

4

SUM (IMPORTO)

13.500.000

32.500.000

5.000.000

COUNT (IMPORTO)

2

2

1

Passo 5 : Produzione del risultato

COD-CLI

1

3

SUM (IMPORTO)

13.500.000

32.500.000

Page 29: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Query con raggruppamento eordinamento

• E’ poss ibile ordinare il risultato delle querycon raggruppamento

SELECT …..FROM …..[ WHERE ….. ]GROUP BY …..[ HAVING ….. ]ORDER BY ….

Raggruppamento e ordinamento• Selezionare la somma degli i mporti degli

ordini successivi al 10-6-97 per quei clientiche hanno emesso almeno 2 ordini, inordine decrescente di somma di importo.SELECT COD-CLI, SUM (IMPORTO)FROM ORDINEWHERE DATA > 10-6-97GROUP BY COD-CLIHAVING COUNT (IMPORTO) >= 2ORDER BY SUM(IMPORTO) DESC

Risultato dopo la clausola diordinamento

COD-CLI

3

1

SUM (IMPORTO)

32.500.000

13.500.000

Doppio raggruppamento

SELECT COD-CLI, COD-PROD, SUM(QTA)FROM ORDINE AS O, DETTAGLIO AS DWHERE O.COD-ORD = D.COD-ORDGROUP BY COD-CLI, COD-PRODHAVING SUM(QTA) > 50

• Selezionare la somma delle quantita' deidettagli degli ordini emessi da ciascuncliente per ciascun p rodotto, purche' lasomma superi 50.

Situazione dopo il join e ilraggruppamento

ordine

ORDINE.COD-ORD

3

4

3

5

3

1

2

6

COD-CLI

1

1

1

1

2

3

3

3

DETTAGLIO.COD-ORD

3

4

3

5

3

1

2

6

COD-PROD

1

1

2

2

1

1

1

1

dettaglio

QTA

gruppo 1,1

gruppo 1,2

gruppo 2,1

gruppo 3,1

30

20

30

10

60

40

30

25

Estrazione del risultato

si valuta la funzione aggregataSUM(QTA) e il predicato HAVING

SUM(QTA)

50

40

60

95

COD-PROD

1

2

1

1

COD-CLI

1

1

2

3

Page 30: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Query binarie

Costruite concatenando du e query SQLtramite operatori insiemistici:

UNION unioneINTERSECT intersezioneEXCEPT (MINUS) differenza

(si eliminano i dup licati)

Unione

SELECT COD-ORDFROM ORDINEWHERE IMPORTO > 500.000 UNIONSELECT COD-ORDFROM DETTAGLIOWHERE QTA > 1000

• Selezionare i cod ici degli ordini i cuiimporti superano 500.000 li re oppurepresenti in qu alche dettaglio con quantita'superiore a 1000.

Differenza

SELECT COD-ORDFROM ORDINEWHERE IMPORTO > 500.000 EXCEPTSELECT COD-ORDFROM DETTAGLIOWHERE QTA > 1000

• Selezionare i cod ici degli ordini i cuiimporti superano 500.000 li re ma nonpresenti in nessun d ettaglio con quantita'superiore a 1000.

Intersezione

SELECT COD-ORDFROM ORDINEWHERE IMPORTO > 500.000 INTERSECTSELECT COD-ORDFROM DETTAGLIOWHERE QTA > 1000

• Selezionare i cod ici degli ordini i cuiimporti superano 500.000 li re e che sonopresenti in qu alche dettaglio con quantita'superiore a 1000.

Query nidificate

Costruite concatenando du e query SQLnel predicato where:

[NOT] IN appartenenza[DOES NOT] EXISTS esistenzacomp ANY, ALL quantificatori

comp: =, !=, <, <=, >, >=

Query nidificate

SELECT COD-CLI FROM ORDINE WHERE IMPORTO > 10.000.000

• Selezionare nome e indirizzo dei clienti chehanno emesso qualche ordine di importosuperiore a 10.000.000.

SELECT NOME, INDIRIZZOFROM CLIENTEWHERE COD-CLI IN

Page 31: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Equivalenza fra IN e query semplici

SELECT NOME, INDIRIZZOFROM CLIENTEWHERE COD-CLI IN SELECT COD-CLI FROM ORDINE WHERE IMPORTO > 10.000.000

equivale (a meno d i duplicati) a:SELECT NOME, INDIRIZZOFROM CLIENTE JOIN ORDINE ON CLIENTE.COD-CLI = ORDINE.COD-CLIWHERE IMPORTO > 10.000.000

SELECT COD-ORD FROM DETTAGLIO WHERE COD-PROD IN

• Selezionare nome e indirizzo dei clienti chehanno emesso qualche ordine i cui dettaglicomprendono il prodotto “ Pneumatico” .

SELECT COD-PROD FROM PRODOTTO WHERE NOME = 'Pneumatico'

SELECT COD-CLI FROM ORDINE WHERE COD-ORD IN

SELECT NOME, INDIRIZZOFROM CLIENTEWHERE COD-CLI IN

La query equivalente

equivale (a meno d i duplicati) a:

SELECT NOME, INDIRIZZOFROM CLIENTE AS C, ORDINE AS O, DETTAGLIO AS D, PRODOTTO AS PWHERE C.COD-CLI = O.COD-CLI AND O.COD-ORD = D.COD-ORD AND D.COD-PROD = P.COD-PROD AND IMPORTO > 10.000.000

Uso di IN nelle modifiche• aumentare di L. 5000 l’ importo d i tutti gli ordini che comprendono il prodotto 456

UPDATE ORDINE SET IMPORTO = IMPORTO + 5000 WHERE COD-ORD IN

SELECT COD-ORDFROM DETTAGLIOWHERE COD-PROD = '456'

Query con NOT IN

SELECT COD-CLI FROM ORDINE WHERE IMPORTO > 10.000.000

• Selezionare nome e indirizzo dei clienti chenon hanno emesso nessun ordine diimporto superiore a 10.000.000.

SELECT NOME, INDIRIZZOFROM CLIENTEWHERE COD-CLI NOT IN

La query con ANY e ALL

SELECT COD-ORDFROM ORDINEWHERE IMPORTO > ANY SELECT IMPORTO FROM ORDINE

SELECT COD-ORDFROM ORDINEWHERE IMPORTO >= ALL SELECT IMPORTO FROM ORDINE

COD-ORD

1

2

3

IMPORTO

50.000

300.000

90.000

ANY

F

V

V

ALL

F

V

F

Page 32: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Esercizi

• Riprendere le basi di dati per la gestione del personale e degli ordini ed esprimere in SQL le interrogazion i : - quale impiegati lavorano in un progetto in cui non lavora il loro manager? - quanti ordini ha emesso Paolo? - quante candele sono state ordinate il 5/7/97? - calcolare per ciascun cliente la somma degli i mporti di tutt i gli ordini - estrarre l'ordine di importo piu' alto

Esercizio 1 (lezione precedente)• in quali tipi di progetti lavora Giovanni?

SELECT TIPO FROM IMPIEGATO WHERE MATR IN

SELECT MATR FROM ASSEGNAMENTO

WHERE NUM-PROG INSELECT NUM-PROG

FROM PROGETTOWHERE NOME='Giovanni'

Esercizio 2 (lezione precedente)• chi e' il manager di Piero?

SELECT NOME FROM IMPIEGATO WHERE MATR-MGR IN SELECT MATR

FROM IMPIEGATOWHERE NOME='Piero'

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 7

(32 lucidi)

Aspetti evolutinella definizione

degli schemi

Aspetti evoluti del DDL

• Creazione di indici• Modifica degli schemi• Gestione di viste• Autorizzazioni d'accesso• Vincoli di integrita’ (poi)• Procedure e regole att ive (poi)

Page 33: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Creazione di indiciINDICI:meccanismi di accesso efficiente ai dati(spiegati po i)

CREATE UNIQUE INDEXes.: CREATE UNIQUE INDEX ORD-KEY ON ORDINI (ORD-COD)

CREATE INDEXes.: CREATE INDEX DATA-IX ON ORDINI (DATA)

Comandi di modifica degli schemi

• Necessari per garantire l’evoluzionedella base di dati a fronte di nuoveesigenze

• E’ poss ibile: CREARE NUOVI OGGETTI (CREATE) MODIFICARE OGGETTI PREESISTENTI (ALTER) CANCELLARE OGGETTI (DROP)

Cancellazione degli oggett i

DROP(domini, tabelle, indici, view,

asserzion i, procedure, trigger)

es.: DROP INDEX DATA-IX

OPZIONI RESTRICT e CASCADERESTRICT: impedisce drop se gli oggetti comprendono istanzeCASCADE: applica drop agli oggetti

collegati

es.: DROP TABLE ORDINI

Modifica degli oggett i

ALTER(domini, tabelle)

es.: ALTER TABLE ORDINI ADD COLUMN NUM-FATT CHAR(6)

es.: ALTER TABLE ORDINI ALTER COLUMN IMPORTO ADD DEFAULT 0es.: ALTER TABLE ORDINI DROP COLUMN DATA

Viste relazionali• Offrono la "visione" di tabelle virtuali (schemi esterni)

• Classificate in:

• SEMPLICI (Selezione e proiezione su una sola tabella)• COMPLESSE

Sintass i delle viste relazionali

• Le query possono include al loro interno viste definite in precedenza

• CREATE VIEW <Nome> AS <QUERY>

• CREATE VIEW <Nome> ( <Nome-attributi>) AS <QUERY>

Page 34: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Esempio di vista semplice

ordini

146

313

1-6-961-7-973-9-97

50.000.00012.000.00027.000.000

VISTA :ordini principali

CREATE VIEW ORDINI-PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > 10.000.000

• Ordini di importo superiore a 10.000.000

Uso della vista per query

Composizione della vista con la query: SELECT NUM-CLI FROM ORDINI WHERE IMPORTO > 10.000.000

Vista: CREATE VIEW ORDINI-PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > 10.000.000

Query: SELECT NUM-CLI FROM ORDINI-PRINCIPALI

Modifiche tramite le viste

Composizione della vista con la modifica: UPDATE ORDINI SET IMPORTO = IMPORTO * 1.05 WHERE NUM-CLI = 3 AND IMPORTO > 10.000.000

Vista: CREATE VIEW ORDINI-PRINCIPALI AS SELECT * FROM ORDINI WHERE IMPORTO > 10.000.000

Modifica: UPDATE ORDINI-PRINCIPALI SET IMPORTO = IMPORTO * 1.05 WHERE NUM-CLI = 3

Esempio di vista complessa

CREATE VIEW CLI-PRO (CLIENTE,PRODOTTO)AS SELECT COD-CLI, COD-PROD FROM ORDINE JOIN DETTAGLIO ON ORDINE.COD-ORD = DETTAGLIO.COD-ORD

Vista complessa (JOIN)

CLIENTE

12

PRODOTTO

45

COD-CLI

12

COD-ORD

33

COD-ORD

33

COD-PROD

45

….. …..

JOIN

Interrogazionesulla vista complessa

Composizione della vista con la query:SELECT COD-CLIFROM ORDINE JOIN DETTAGLIO ON ORDINE.COD-ORD = DETTAGLIO.COD-ORDWHERE COD-PROD = 45

Query:SELECT CLIENTEFROM CLI-PRODWHERE PRODOTTO = 45

Page 35: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Modifiche sulla vista complessa

• Non e' poss ibile modificare le tabelle di base tramite la vista perche' la interpretazione e' ambigua

• es.: UPDATE CLI-PROD SET PRODOTTO = 43 WHERE CLIENTE = 12

a il cliente ha cambiato l'ordine b il codice del prodotto e' cambiato

Vista complessa (JOIN)

PRODOTTO

45

COD-CLI

12

COD-ORD

33

COD-ORD

33

COD-PROD

45

….. …..

JOIN

CLIENTE

12 42

45

45 42

42

Autorizzazioni d’access o

• PRIVATEZZA: protezione selettiva dellabase di dati in modo da garantire l’accessosolo agli utenti autorizzati.

• Meccanismi per identificare l’utente(tramite PAROLA CHIAVE o PASSWORD):– Quando si collega al sistema informatico– Quando accede al DBMS

• UTENTI ind ividuali e GRUPPI di utenti

Autorizzazioni d’access o

• Si att ribu iscono agli UTENTI deiPRIVILEGI DI ACCESSO alle RISORSE

utenti: identificati tramite password risorse: tabelle, view (e altre)

GRANT <privilegi> ON <risorse> TO <utenti>

Principali privilegi di access o

• SELECT [ATTRIBUTI]• UPDATE [ATTRIBUTI]• INSERT• DELETE• ALL PRIVILEGES

Esempio

GRANT ALL PRIVILEGES ON ORDINE TO User1GRANT UPDATE(IMPORTO) ON ORDINE TO User2GRANT SELECT ON ORDINE TO User2, User3

Page 36: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

• Il creatore di una risorsa ha tutti i privilegi

Concess ione dei privilegi

• Spesso l'utente DATABA SE ADMINISTRATORcrea l'intera base di dati

• Chi detiene un privilegio puo' concederlo conGRANT OPTION

GRANT ALL PRIVILEGES ON ORDINE TO User1WITH GRANT OPTION

Esempio di uso, grant option

1 Database administrator GRANT ALL PRIVILEGES ON ORDINE TO User1 WITH GRANT OPTION

2 User1 GRANT SELECT ON ORDINE TO User2 WITH GRANT OPTION

3 User2 GRANT SELECT ON ORDINE TO User3

Revoca dei privilegiREVOKE <privilegi> ON <risorsa> FROM <utente>

Revoca dei privilegi con casc ata

REVOKE <privilegi> ON <risorsa> FROM <utente>CASCADE

es:REVOKE UPDATE ON ORDINE FROM User1REVOKE SELECT ON ORDINE FROM User3

Revoca di un previlegio con casca ta

DBA

User1

User2

Revoca di un privilegio con casca ta

1 Database administrator GRANT SELECT ON ORDINE TO User1 WITH GRANT OPTION2 User1 GRANT SELECT ON ORDINE TO User23 Database administrator REVOKE SELECT ON ORDINE FROM User1 CASCADE

Viste e autorizzazioni di access o

Viste = unita’ di autorizzazione• Consentono la gestione ottimale della

privatezza

Page 37: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Esempio: gestione dei conti correnti

fil iale 1

rete

Banca

fil iale 2 fil iale 3

CONTO-CORRENTE(NUM-CONTO, FILIALE, CLIENTE, COD-FISC, DATA-APERTURA, SALDO)

TRANSAZIONE(NUM-CONTO, DATA, PROGR, CAUSALE, AMMONTARE)

Requisiti di access oconto-corrente

NUM-CONTO

x

y

z

SALDON.FILIALE

1

1

1

transazioneNUM-CONTO

x

x

y

...

fil iale1

fil iale1

funzionari1

cassieri1

cassieri2

funzionari1

cassieri1

cassieri2,3

all previleges

select

select

update saldo, select

all previleges

sele

ct

Viste relative alla prima fili ale

DEFINE VIEW CONTO1 AS( SELECT * FROM CONTO-CORRENTE WHERE FILIALE = 1)

DEFINE VIEW TRANSAZIONE1 AS( SELECT * FROM TRANSAZIONE WHERE NUM-CONTO IN ( SELECT NUM-CONTO FROM CONTO1 ) )

Autorizzazioni relative ai datidella prima fili ale

GRANT ALL PRIVILEGES ON CONTO1 TO FUNZIONARI1GRANT UPDATE(SALDO) ON CONTO1 TO CASSIERI1GRANT SELECT ON CONTO1 TO CASSIERI1, CASSIERI2, CASSIERI3

GRANT SELECT ON TRANSAZIONE1 TO FUNZIONARI1GRANT ALL PRIVILEGES ON TRANSAZIONE1 TO CASSIERI1GRANT SELECT ON TRANSAZIONE1 TO CASSIERI2, CASSIERI3

Esercizi• Riprendere le basi di dati per la gestione del personale ed esprimere:

- i comandi per modificare la tabella IMPIEGATO aggiung endo il campo COD-FISC- una vista complessa che contiene il nomi degli i mpiegati che lavorano ai

vari progett i - la vista che seleziona gli IMPIEGATI che lavorano al progetto “ Wide” - le istruzioni che consentono all’utente MGR-WIDE il pieno controllo sulla vista

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 8

(28 lucidi)

Page 38: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Vincoli,procedure

e regole attivein SQL

Quali ta' dei dati

• Quali ta' dei dati: correttezza, completezza, attualita'.

• In molte applicazioni reali i dati sono d iscarsa quali ta' (5% - 40% di dati scorretti).

• Per aumentare la quali ta' dei dati:• Regole di integrita'• Manipolazione dei dati tramite

programmi predefiniti (procedure etrigger)

Esempio : gestione magazzino

magazzino

COD-PROD

1

3

4

5

QTA-DISP

150

130

170

500

QTA-RIORD

100

80

50

150

riordino

COD-PROD DATA QTA-ORD

Vincoli di integrita' generici

• Predicati che devono essere veri sevalutati su istanze corrette (legali )

della base di dati

• Espress i in du e modi: - negli schemi delle tabelle

- come asserzioni separate

Vincoli associati alle tabelle

Si utili zza la clausola: CHECK (PREDICATO) associata ai vari att ributi oppure espressa al termine della dichiarazione della tabella

Esempio: definizione di MAGAZZINO

CREATE TABLE MAGAZZINO AS ( COD-PROD CHAR(2) PRIMARY KEY QTA-DISP INTEGER NOT NULL QTA-RIORD INTEGER NOT NULL

)

CHECK(QTA-DISP>10)

CHECK (QTA-RIORD>10) CHECK (QTA-DISP>QTA-RIORD)

Page 39: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Asserzioni

CREATE ASSERTION Ordini-Limitati AS CHECK( 1000 <=

SELECT COUNT(COD-PROD) FROM RIORDINO)

• Predicati espress i separatamente dalladefinizione delle tabelle, che devonoessere veri se valutati su istanze corrette

(legali)

Significato dei vincoli

La verifica dei vincoli puo ' essere:

S1 S2 S fS0 S1

a immediate (immediata): la loro violazione annulla l'ultima modifica

b deferred (differita): la loro violazione annulla l'intera applicazione

V

Modifica dinamica del significato dei vincoli

• Ogni vincolo e' definito d i un tipo (normalmente " immediate" )

• L'app licazione puo ' modificare il tipo iniziale dei vincoli: - set constraints immediate - set constraints deferred• Tutti i vincoli vengono comunq ue verificati, prima o po i.

Procedure

• Moduli di programma che svolgono unaspecifica attivita' di manipolazione dei dati

• Due momenti: - dichiarazione (DDL) - invocazione (DML)

• Con architettura client-server sono: - invocate dai client - memorizzate e eseguite presso i server

• Non standard in SQL-2 ma presenti neiprincipali sistemi relazionali

Esempio : prelievo dal magazzino

magazzino

COD-PROD

1

3

4

5

QTA-DISP

150

130

170

500

QTA-RIORD

100

80

50

150

riordino

COD-PROD DATA QTA-ORD

Specifica• L’utente indica un p relievo dando il

cod ice del prodo tto e la quantita' daprelevare

• Se la quantita' dispon ibile in magazzinonon e' sufficiente la procedura si arrestacon un a eccezione

• Se la quantita' dispon ibile in magazzino e'inferiore alla quantita' di riordino sipredispone un nuo vo ordine d'acquisto.

• Viene eseguito il prelievo, modificando la quantita' disponibile in magazzino

Page 40: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Interfacc ia

COD-PROD

4

QTA-DISP

170

QTA-RIORD

50

PRELIEVO(4,150)

PROCEDURE PRELIEVO ( PROD INTEGER , QUANT INTEGER)

Invocazione

Stato iniziale nella base di dati

Realizzazione della procedura

2. LETTURA DELLO STATO

1. DICHIARAZIONE VARIABILI

3. SE LA QUANTITA' DISPONIBILE E'INSUFFICIENTE: ECCEZIONE

4. AGGIORNAMENTO DELLO STATO

5. SE LA NUOVA QUANTITA' DISPONIBILEE` INFERIORE ALLA QUANTITA' DIRIORDINO: EMISSIONE DI UN ORDINE

ProceduraPROCEDURE PRELIEVO (PROD INTEGER, QUANT INTEGER) ISQ1, Q2 INTEGERX EXCEPTIONBEGIN

END

SELECT QTA-DISP, QTA-RIORD INTO Q1, Q2 FROM MAGAZZINO WHERE COD-PROD = PROD;

IF Q1 < QUANT THEN RAISE(X); UPDATE MAGAZZINO SET QTA-DISP = QTA-DISP - QUANT WHERE COD-PROD = PROD;

IF Q1 - QUANT < Q2 THEN INSERT INTO RIORDINO VALUES(PROD, SYSDATE, Q2)

Esempio di invocazione

SELECT QTA-DISP, QTA-RIORD INTO Q1, Q2 FROM MAGAZZINO WHERE COD-PROD = PROD;

COD-PROD

4

QTA-DISP

170

QTA-RIORD

50

PRELIEVO(4,150)

Q1 = 170, Q2 = 50

PROD=4, QUANT=150

Invocazione (continua)

IF Q1 < QUANT THEN RAISE(X) non scatta

COD-PROD

4

QTA-DISP

20

QTA-RIORD

50

Q1 - QUANT < Q2 e' vero: INSERT INTO RIORDINO VALUES(PROD, SYSDATE, Q2)

COD-PROD

4

DATA

10-10-97

QTA-RIORD

50

UPDATE MAGAZZINOSET QTA-DISP = QTA-DISP - QUANTWHERE COD-PROD = PROD

Regole att ive (trigger)

• Modu li di programma che svolgonouna specifica att ivita' di manipolazionedei dati

• Simili alle procedure, ma l'invocazionee' automatica

• Seguono il paradigmaEVENTO-CONDIZIONE-AZIONE

• Non standard in SQL-2 ma presenti neiprincipali sistemi relazionali

Page 41: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Paradigma evento -condizione - azione (ECA)

• evento: modifica alla base di dati

• informalmente: - quando accade l'evento - se la condizione e' vera - allora si esegue l'azione

• cond izione: predicato

• azione: modifica alla base di dati, segnalazioni agli utenti

2. CONDIZIONE: LA NUOVA QUANTITA' DISPONIBILE E' INFERIORE ALLA

(NUOVA) QUANTITA' DI RIORDINO:NEW.Q-DISP < NEW.Q-RIORD

1. EVENTO:UPDATE(QDISP) IN MAGAZZINO

3. AZIONE:– SE LA QUANTITA' DISPONIBILE E '

INSUFFICIENTE: ECCEZIONE– EMISSIONE DI UN ORDINE

Esempio: gestione automaticadel riordino

Regola att iva (trigger)

CREATE TRIGGER GESTIONE-RIORDINOAFTER UPDATE OF QTA-DISP ON MAGAZZINOWHEN (NEW.QTA-DISP < NEW.QTA-RIORD)

IF NEW.QTA-DISP < 0 THEN RAISE(X);

FOR EACH ROWX EXCEPTIONBEGIN

END

INSERT INTO RIORDINO VALUES(NEW.COD-PROD, SYSDATE, NEW.QTA-RIORD)

Esecuzione dell 'applicazione

UPDATE MAGAZZINO SET QTA-DISP = QTA-DISP - 150 WHERE COD-PROD = 4

COD-PROD

4a

QTA-DISP

20

QTA-RIORD

50

Esecuzione del triggerevento : UPDATE(QTA-DISP) ON MAGAZZINO

COD-PROD

4

DATA

10-10-97

QTA

50

condizione : VERA

azione : IF NEW.QTA-DISP < 0 THEN RAISE(X) non scatta

INSERT INTO RIORDINO VALUES (NEW.COD-PROD, SYSDATE, NEW.QTA-RIORD)

Problemi di progettoper procedure e trigger

• Decomposizione modulare delle app licazioni

• Paradigma di invocazione: - esplicita (procedure) - implicita (trigger)• Aumento d i: - efficenza - controllo - riuso

Page 42: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Conseguenze dell’ usodi procedure e trigger

• Aumenta la respon sabili ta' dell'amministratore della base di dati (rispetto al programmatore app licativo)

• Si sposta "conoscenza" dalle app licazion i allo schema della base di dati (independenza di conoscenza)

• (per saperne di piu': sito internet www .elet.po limi.it/idea)

Esercizi• Riprendere le basi di dati per la gestione degli ordini ed esprimere:

- un vincolo d i integrita' che impedisce la presenza di piu' di 100 dettagli per ciascun o rdine.

- una procedura che elimina tutt i gli ordini e i relativi dettagli di un particolare cliente

- un trigger che scatta quando viene cancellato un cliente ed elimina tutt i gli ordini e i relativi dettagli di quel cliente

Un breve ripasso

• MODELLO RELAZIONALE• ALGEBRA RELAZIONALE - SELEZIONE, PROIEZIONE, UNIONE, DIFFERENZA, JOIN• SQL - DATA DEFINITION - CREATE DOMAIN, TABLE, INDEX, VIEW, ASSERTION, PROCEDURE, TRIGGER - DROP, ALTER - GRANT, REVOKE• SQL - DATA MANIPULATION - SELECT - INSERT, UPDATE, DELETE

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 9

(35 lucidi)

Tecnologiadei sistemiinformativi

Architettura dei sistemi informatici

MAN

WAN

LAN

uff icio citta’ distribuzionegeografica

Page 43: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Paradigma client-server

• Tecnica per strutturare sistemi software

servizi

richiestidal CLIENT

svolti daiSERVER

• Due tipo logie di sistemi: CLIENT richiedono i servizi SERVER forniscono i servizi

• Viene resa "pubb lica" una " interfaccia di servizi"

Client-servernei sistemi informativi

• Separazione funzionale ideale CLIENT : presentazione dell 'informazione SERVER : gestione dei dati

• SQL : il li nguaggio ideale per separare gli ambienti CLIENT : formula query, elabora risultati SERVER : esegue query RETE : trasferisce i comandi di att ivazione (es: di procedure SQL) e i risultati

Architettura client-serverclass ica

CLIENTcompon e richieste

in SQL

esegue richiestein SQL

SERVER

Architettura con serverapplicativo

CLIENT

compon e richiestein SQL

SERVERAPPLICATIVO

DATABA SESERVER

esegue richiestein SQL

CLIENTCLIENTrichiedeapplicazion i

Parallelismo nei server

• Uso d i macchinemultiprocessore

process ori

dischi

DATABA SE SERVER

con p arallelismo

base di datiparallela

• Elaborazioneidentica su ciascunprocessore

• Obiett ivo :prestazion i

Distribuzione dei dati

• NON SOLO presenza di molteplici basi di dati

DATABA SESERVER 1

DATABA SESERVER 2

CLIENT

applicazione

base di datidistribu ita

• MA ANCHE presenza di app licazioni che

usano dati provenientida piu' fonti

Page 44: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Replicazione dei dati

• Motivazione: maggior disponibil ita', efficienza, differente trattamento dei dati, affidabil ita'

copiaprincipale

cop iasecond aria

cop iasecond aria

base di dati replicata

Separazione funzionali degliambienti

• Ambiente operativo: gestione " in linea" dei dati, finalizzato alla

gestione delle transazion i di modifica

• Ambiente di analisi: gestione " fuori linea" dei dati, finalizzato ad

interrogazioni e analisi statistiche

On Line Transaction Processing (OLTP)

On Line Analytical Processing (OLAP)

Ambiente per l'analisi :data warehouse

• DATA WAREHOUSE: descrizione organizzata di tutt i i dati

necessari per una analisi strategica delcomportamento dell 'impresa

• Tecniche: analisi multidimensionale, data mining

Interazione fra OLTP e OLAP

CLIENTOLTP

CLIENTOLAP

DATABA SESERVER

DATABA SESERVER

DATAWAREHOUSE

Sistemi "LEGACY "

• Sistemi realizzati su architetture basate suMAINFRAME (grande calcolatore centrale)cui si collegano terminali poco sofisticati(spesso con interfaccia a caratteri)

• Normalmente obsoleti, ma spesso preziosi(assicurano la gestione operativa diapp licazion i importanti, ad esempiofinanziarie, fiscali, prenotazion i aeree, etc…)

Sistemi "LEGACY "

terminale 1

terminale 4

terminale 2

terminale 3

terminale 5

DATABA SE

linea telefon icaMODEM MODEM

MAINFRAME

sistema legacy

Page 45: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Molti sistemi LEGACY sonotecnologicamente superati

• Scelta dell 'hardware• Scelta del software (COBOL, DL/1)• Su archivi separati (senza DBMS)

Pero' sono sistemi aff idabil i in operativita'il cui funzionamento continuo e’ind ispensabile

Evoluzione dei sistemi legacy

• DOWNSIZING: - trasformazione verso architetture client-server

• INCAPSULAMENTO: - definizione di funzion i server di alto li vello richiamabil i tramite interfacce standard che mascherano la reale struttura del software

Interoperabili ta'

• Capacita' di interazione fra sistemieterogenei

- diverso sistema operativo - diverso protocollo d i comunicazione

- diverso software di gestione dei dati

Soluzioni per l’i nteroperabili ta'

1 STANDARD (adozione di standard commerciali )

2 GATEWAY (emulazione di un ambiente in un altro)

Tipo log ie di sistemi informatici

1 SISTEMI APERTI (utili zzano standard commerciali tali da

garantire interoperabil ita')

2 SISTEMI PROPRIETARI (con componenti hardware/software offerti

da un solo costruttore)

Vantaggi dei sistemi aperti

2 Uso di prodo tt i offerti da venditori diversi - maggior competizione - soluzion i piu' econo miche - si evita una realizzazione ad-hoc - maggior diffusione fra gli utenti delle soluzion i informatiche dominanti

1 Ind ipendenza dal vend itore

Page 46: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Svantaggi dei sistemi aperti

2 Complessita' degli standard - su do mini non esclusivi - documentati poco e male - realizzati solo in parte

1 Lentezza del processo di standardizzazionee della trasformazione degli standard inprodo tt i

(specie se ufficiali, cioe' ISO o ANSI)

Standard un mond o complicatiss imo e in perenne evoluzione

a Software di costruzione delle app licazion i(ODBC)

b Software di gestione dei dati(SQL)

c Software di gestione delle reti(TCP-IP)

d Software di base (sistema operativo)(UNIX, WINDOWS-NT)

Open Database Connectivity (ODBC)

• Consente l’interazione fra DBMS diversiusando SQL come lingu aggio standard d iinterazione

• Propo sto da Microsoft (1991)

• E’ una interfaccia per programmi app licativi (Application Program Interface, API)

Open Database Connectivity (ODBC)

Interfacc ia ODBC (driver manager)

DriverOracle

DriverDB2

DriverSQL Server

APPLICAZIONE APPLICAZIONE APPLICAZIONE

DataSource

Componenti di ODBC

• APPLICAZIONE: chiama le funzion i di ODBC

• DRIVER: adatta ed elabora le richieste,sottomette query SQL alle basi di dati,restituisce i risultati all’ app licazione.

• DATA SOURCE: integra <database, sistemaoperativo, software di rete>

• DRIVER MANAGER: carica i driver

Open Database Connectivity (ODBC)

Interfacc ia ODBC (driver manager)

DriverDB2

DriverOracle

DriverSQL Server

APPLICAZIONE APPLICAZIONE APPLICAZIONE

<Oracle,Windows/NT,Novell>

Page 47: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Caratteristiche dell’i nterfacc iaODBC

• E’ una LIBRERIA di procedure checonsentono la conn essione al DBMS,l’esecuzione di programmi SQL el’estrazione dei risultati

• Le stringh e SQL po ssono essere parte delcod ice sorgente o costruite a tempo d iesecuzione

• E’ basata sug li standard SQL Access Group(1991) e X/Open

• Sono standardizzati anche i cod ici di errore

Compiti dell’ applicazione

• Richiede una CONNESSIONE (sessione) conuna data source

• Definisce le aree di memoria e i formati peracquisire (leggere) i risultati delle query

• Invia richieste SQL tramite una funzionedell’ interfaccia ODBC

• Richiede i risultati progressivamente (manmano che divengo no d ispon ibili ); senecessario, gestisce le condizion i di errore

• Termina la conn essione

Compiti del driver manager

• E’ un p rodo tto Microsoft

• Verifica la correttezza e la progressionedelle chiamate ricevute dalle applicazioni

• E’ responsabile di inizializzare leconn essioni verso le data source e dicaricare i driver r ichiesti da una app licazione

Compiti dei driver

• E' fornito d irettamente dai costruttoriinteressati (ad esempio, Oracle e/o Novell )

• Opera le necessarie conversione di formatoe di lingu aggio

• Invia le richieste alla propria data source

• Riceve i risultati della propria data source

Configurazioni

• Multiple-tier: - Applicazione, Driver e Driver Manager sul Client - Data Source sul Server

• Sing le-tier: - Driver e Data Source su un unico computer (con funzionalita' ridotte)

• Multiple-tier con gateway: - Gateway: riceve una richiesta e la trasmette ad un a data source

Gateway

• Opera le necessarie conversioni (dilinguaggio e di formato)

• Fornisce le funzionali ta' di server nelsistema di input e quelle di client nelsistema di output

• E' un sistema software in grado d i trasferirerichieste da un contesto (in inpu t) ad unaltro (in output)

Page 48: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Uso dei GATEWAY

• tra sistemi relazionali• verso LEGACY SYSTEM

MAINFRAMESISTEMARELAZIONALE

DATABA SERELAZIONALE

(INPUT)RELAZIONALE

(OUTPUT)LEGACY

DATABA SELEGACY

UTENTERELAZIONALE

gateway

Sommario

• Concett i e prob lemi– Sistema aperti / sistemi proprietari– Interoperabilita'

• Standard– ODBC

• Elementi architetturali– Architettura Client-Server– Database Distribuito, Parallelo, Replicato– OLAP e Data Warehouse– Sistemi legacy– Gateway

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 10

(32 lucidi)

Sistemitransazionali e

controllodi concorrenza

Esempio di sistema informativo

GESTIONEIMPIANTI

ELENCHIABB ONATI

IMMISSIONE DIORDINI DISERVIZIO

GESTIONERETE

AMMINISTRAZIONE

GESTIONEELENCHIABB ONATI

CLIENTI

BOLLETTECOMMUTAZIONE

RISORSE EMANUTENZIONE

Esempio di transazione

ELENCHIABB ONATI

GESTIONEIMPIANTI

IMMISSIONE DIORDINI DISERVIZIO

GESTIONERETE

AMMINISTRAZIONE

GESTIONEELENCHIABB ONATI

CLIENTI

BOLLETTECOMMUTAZIONE

RISORSE EMANUTENZIONE

1

3

2

6

5

8

7

11

10

9

4

Page 49: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Il concetto di transazione

Una un ita' di elaborazione che god e di4 proprieta' (ACIDE)

• Atomicita'• Consistenza• Isolamento• Durata (persistenza)

Transazione "ben formata"

BEGIN TRANSACTIONcodice con manipolazione dei dati(letture e scritture)COMMIT WORK - ROLLBACK WORKcodice privo di manipolazione di datiEND TRANSACTION

S0 S1W1

S2W2

S3W3

SrW4

Atomicita'

Comportamenti poss ibili :

S1 S3 SrS0 S2

UNDO UNDO UNDO REDO

La transazione e' una trasformazione atomicadallo stato iniziale a quello finale.

b rollback work o errore prima del commit : undo

a commit work : successo

c guasto dopo il commit : redo

Consistenza

La transazione rispetta i vincoli di integrita'

Come conseguenza:se lo stato iniziale e' correttoanche lo stato finale e' corretto

Isolamento

La transazione non risente degli effettidelle altre transazioni concorrenti

Come conseguenza:non espon e i suo i stati intermediSi evita l' "effetto domino"

Persistenza

Gli effett i di un commit workdureranno "per sempre"

(ind ipendentemente dai guasti del sistema)

Page 50: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Per garantire le proprieta' acide

• Controllo d i affidabili ta' : atomicita', persistenza

• Controllo d i concorrenza : isolamento

• Controllo d i esecuzione : consistenza

Controllodi concorrenza

I vantaggi della concorrenza

T1

T2

T3

T4

T5t

B C E

B C E

B C E

B C E

B C E

Problemi dovuti alla concorrenza

T1 : UPDATE CC SET SALDO = SALDO + 3 WHERE CLIENTE = Stefano Ceri

T2 : UPDATE CC SET SALDO = SALDO + 6 WHERE CLIENTE = Stefano Ceri

memoriacentrale

Meccanismo di input/output inassenza di controllo di concorrenza

pagina x’

pagina x x

x

memoriadi massa

Esecuzione con perdita di update

S(SC)=100

1 R(T1): S(SC) V12 V1 = V1 + 33 R(T2): S(SC) V24 V2 = V2 + 65 W(T1): V1 S(SC) S(SC)=1036 W(T2): V2 S(SC) S(SC)=106

Page 51: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Sequenza di azioni di i/o che produce l'errore

R(T1) R(T2) W(T1) W(T2)

R(T1) R(T2) W(T2) W(T1)

oppure

Altro prob lema: lettura "sporca"

S(SC)=100

1 R(T1): S(SC) V12 V1 = V1 + 33 W(T1): V1 S(SC) S(SC)=1034 R(T2): S(SC) V25 ROLLBACK(T1)6 V2 = V2 + 67 W(T2): V2 S(SC) S(SC)=109

Causa delle anomalie

Entrambe le anomalie non si sarebberoverificate con una esecuzionesequenziale (seriale) delle transazion i

pero' imporre una esecuzionesequenziale e' ecces sivo!

Criterio di correttezza

Si deve garantire che una esecuzioneconcorrente sia equ ivalente ad unaesecuzione sequenziale (seriale):

SERIALIZZABILITA'

Teoria del controllo di concorrenza

• Teoria molto ricca di risultati, con un atecnolog ia prevalente (usata su tutti iDBMS):

LOCKING A DUE FASI

Primitive di lock

PRIMITIVE:r-lock: lock in letturaw-lock: lock in scritturaunlock

STATO DI UN OGGETTO:liberor-locked (bloccato da un lettore)w-locked (bloccato da uno scrittore)

Page 52: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Transazioni ben formate

• Ogni READ di un og getto preceduto da r-lock seguito da un lock

• Ogni WRITE di un ogg etto preceduto da w-lock seguito da un lock

Tabella dei confli tt i

SI : blocco della risorsa,il programma procedeNO : il programmava in attesa chela risorsa venga sbloccata

libera r-locked w-locked

SI OK NO

SI NO NO

r-lock

w-lock

OK: contatore dei lettorir-lockr-coun ter = r-counter + 1unlockr-coun ter = r-counter - 1

Lock ing a due fasi

Una azione di unlocknon puo ' precedere una azione di lock

numerodi risorsebloccate

da T

t

i

fasecrescente

fasecalante

Assunzioni

a Transazion i ben formateb Poli tica dei conflitti (come da tabella)c Locking a due fasi

Implicano la SERIALIZZABILITA'

Realizzazione del lock ing

locka li vello d i:filepagina fisicatup lavalore di un

att ributo d iuna tup la

file

pagina

tup la

valore

Granularita'ridotta

maggioreconcorrenza

Problema: deadlock

T1 :W-LOCK(D1)W-LOCK(D2)lettura e scritturadi D1 e D2UNLOCK(D1)UNLOCK(D2)

T2 :W-LOCK(D2)W-LOCK(D1)lettura e scritturadi D1 e D2UNLOCK(D2)UNLOCK(D1)

Page 53: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Insorgenza del deadlock

T1 esegue W-LOCK(D1)T2 esegue W-LOCK(D2)

T1 attende una risorsa controllata da T2T2 attende una risorsa controllata da T1

T1 T2

Tecniche risolutive del deadlock

• Time-out: un 'attesa eccessiva e' interpretata come deadlock• Prevenzione: evitare alcune condizion i di attesa• Determinazione: ricerca dei cicli sul grafo di attesa

TECNICA PIU' USATA : TIME-OUT

Lock ing nei sistemi commerciali

E' poss ibile ridurre i controlli i n lettura:

• Committed read: si evitano letture sporche• Cursor stabili ty: stabili ta' dei programmi che usano il database• Repeatable read: a due fasi

Sommario

• Concett i e prob lemi– Proprieta' acide delle transazioni– Inconsistenze di transazioni concorrenti

– Serializzabili ta'– Deadlock e loro gestione

• Tecniche– Gestione dei lock– Gestione dei deadlock

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 11

(34 lucidi)

Controllo diaffidabili ta'

Page 54: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Argomenti

• Persistenza della memoria e back-up• Gestione del buffer• Gestione aff idabile delle transazion i• Gestione del giornale• Ripristino dop o i guasti (recovery)

Persistenza delle memorie

• Memoria centrale :non e' persistente

• Memoria di massa :e' persistente ma puo ' danneggiarsi

• Memoria stabile :memoria che non puo ' danneggiarsi

(e' una astrazione)

Come garantire la memoria stabile

replicazione on-line: mirroring di due dischi

DISK DRIVE 2

DISK 1 DISK 2

BUS 1

BUS 2

CPU 1

CPU 2

UNITA’MULTIPROCESSORE

DISK DRIVE 1

Come garantire la memoria stabile

replicazione off-line : un ita' nastro (backup)

DATABA SESERVER

DATABA SE

BACKUP

DUMP

Gestione della memoria centrale

Razionale:• Riuso dei dati nel buffer• Scrittura differita della base di dati

disco buffer di memoria centrale

i/o

pagina x

pagina y

memoriacentrale

buffer poo l

Uso della memoria centrale

y

x

Page 55: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Gestione del bufferSi basa sull’uso d i quatt ro primitive:

FIX allocazione di una nuo va pagina nel buffer a una transazioneUSE utili zzo d i una pagina presente nel bufferUNFIX de-allocazione di una paginaFORCE scrittura in modo sincrono delle pagine dalla memoria centrale alla base di dati

Uso del buffer (transazioni)Avviene secondo lo schema: FIX repeat USE until (fine della transazione) UNFIX

Le pagine vengono scritte dal buffer in modo asincrono:

FLUSH primitiva controllata dal gestore del buffer, scrive in modo asincrono la pagina dalla memoria centrale alla base di dati

Esecuzione di una primitiva FIXRICERCA DELLA PAGINA TARGET• Si cerca una pagina libera• Altrimenti si cerca una pagina de-allocata, che se necessario e’ cop iata sul disco• Altrimenti (se po litica STEAL) si sott rae una pagina ad una transazione attiva, che viene copiata sul disco• Altrimenti (se po litica NO STEAL) la ricerca falli sceLETTURA• Se esiste una pagina target, viene letta dal database al buffer di memoria centrale

Poli tiche di gestione del buffer

a STEAL (pagine sottratte a una transazione att iva) NO STEAL

normalmente :NO-STEAL, NO-FORCE

b FORCE (pagine scritte al commit-work) NO FORCE

Poli tiche di gestione del buffer

a PRE-FETCHING (anticipa la lettura delle pagine, utile specie nelle letture sequenziali )

b PRE-FLUSHING (anticipa la scrittura delle pagine de-allocate, utile per accelerare il FIX delle pagine)

Ricordiamo i requisiti di atomicita'

Comportamenti poss ibili :

S1 S3 SrS0 S2

UNDO UNDO UNDO REDO

La transazione e' una trasformazione atomicadallo stato iniziale a quello finale.

b rollback work o errore prima del commit : undo

a commit work : successo

c guasto dopo il commit : redo

Page 56: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Giornale delle transazioni

File sequenziale di record che descrivono leazion i svolte dalle transazion i (top = istante corrente)

B(T1) U(T1) U(T1) C(T1)

Top d elgiornaleRecord delle transazion i T1

Principale funzione del giornale ditransazione

Registra in memoria stabile le azion i svoltedalla transazione sotto forma di transizionidi stato

se UPDATE (U)trasforma O dal valore O1 al valore O2

registrazione sul giornale:

BEFORE-STATE(U) = O1AFTER-STATE(U) = O2

Uso del giornale

DOPO : rollback-work oppure guasto UNDO T1: O = O1

DOPO : guasto dopo commit REDO T1: O = O2

Idempotenza di undo e redo:UNDO(T) = UNDO(UNDO(T))REDO(T) = REDO(UNDO(T))

Tipi di record nel giornale

• Record relativi ai comandi transazionali:

BEGIN, COMMIT, ABORT

• Record relativi alle operazioni:

INSERT, DELETE, UPDATE

• Record relativi alle azioni di recovery:

DUMP, CHECKPOINT

Tipi di record nel giornale• Record relativi ai comandi transazionali:

B(T), C(T), A(T)• Record relativi alle operazioni:

I(T,O,AS), D(T,O,BS), U(T,O,BS,AS)

• Record relativi alle azioni di recovery:DUMP, CKPT(T1,T2,…Tn)

• Campi dei record: T identificatore di transazione O identificatore di oggetto BS, AS: before state, after state

Regole di scrittura del giornale

a Write-Ahead-Log : si scrive il giornale (parte before) prima del database consente di disfare le azion i

b Commit Rule: si scrive il giornale (parte after) prima del commit consente di rifare le azioni

Page 57: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Scritture del log e della base di dati

t

BEGIN COMMITUPDATE X UPDATE Y

WRITE X WRITE Y

• Scrittura del database prima del commit(richiede scritture per realizzare l’abort)

Scritture del log e della base di dati

t

BEGIN COMMITUPDATEX

UPDATE Y

WRITE X WRITE Y

• Scrittura del database dopo il commit(non richiede scritture per realizzarel’abort)

Scritture del log e della base di dati

t

BEGIN COMMITUPDATEX

UPDATE Y

WRITE X WRITE Y

• Scrittura del database in un istantearbitrario (consente di ottimizzare lagestione del buffer)

In caso di guasto

a Guasto soft perdita di memoria centrale richiede una RIPRESA A CALDO

b Guasto hard danneggiamento della memoria richiede una RIPRESA A FREDDO

Modello fail -stop

attivo

stop

ripresa

FAIL BOOT

FAIL

START

Checkpoint

Istante di tempo "consistente"(in cui tutte le transazioni scrivono i lorodati dal buffer al disco)

top d elgiornale

checkpoint

Si registrano le transazioni att ive

Page 58: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Dump

Istante di tempo in cui viene effettuata unacopia completa della base di dati(tipicamente di notte oppu re alla fine dellasett imana); si registra la presenza dellacop ia di DUMP

top d elgiornale

dump

Ripresa a ca ldo

• Si leggon o le registrazion i del giornale a partire dal checkpoint

• Si separano le transazioni in: INSIEME UNDO (da disfare) INSIEME REDO (da rifare)

• Si eseguono le azion i di UNDO e REDO

Ripresa a ca ldo

UNDO :transazioni att iveprima del commitREDO :transazioni att ivedopo il commit

1. ultimocheckpoint

2. lettura dellog

Ripresa a ca ldo

3. ritorno alla piu’vecc hia transazioneattiva

4. esecuzione delleazion i di UNDO eREDO

Esempio di ripresa a ca ldo• B(T1)• B(T2)• U(T1,O1,B1,A1)• I(T1,O2,A2)• U(T2,O3,B3,A3)• B(T3)• U(T3,O4,B4,A4)• D(T3,O5,B5)• CKPT(T1,T2,T3)• C(T2)• B(T4)• U(T4,06,B6,A6)• A(T4)• guasto

• UNDO=(T1,T2,T3) REDO=( )

• UNDO=(T1,T3,T4) REDO=(T2)

Esempio di ripresa a ca ldo• B(T1)• B(T2)• U(T1,O1,B1,A1)• I(T1,O2,A3)• U(T2,O3,B3,A3)• B(T3)• U(T3,O4,B4,A4)• D(T3,O5,B5)• CKPT(T1,T2,T3)• C(T2)• B(T4)• U(T4,06,B6,A6)• A(T4)• guasto

• O1 = B1• DELETE(O2)• O3 = A3

• O4 = B4• O5 = B5

• O6 = B6

RESTART

UNDO=(T1,T3,T4) REDO=(T2)

Page 59: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Ripresa a freddo

• Si ripristinano i dati a partire dal backup

• Si eseguono le operazion i registrate sul giornale fino all 'istante del guasto

• Si esegue una ripresa a caldo

Sommario

• Concett i e prob lemi– Memoria stabile– Tecniche di scrittura del buffer– Poli tiche di gestione ott imale del buffer– Modello fail -stop– Tecniche di recovery a freddo e a caldo

• Elementi architetturali– Buffer– Giornale

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 12

(43 lucidi)

Basi di datidistribuite

Motivazioni delladistribuzione dei dati

• Natura intrinsecamente distribu ita delle organizzazion i

• Evoluzione degli elaboratori - aumento della capacita' elaborativa - riduzione di prezzo

• Standard d i interoperabilita'

• Evoluzione della tecnolog ia dei DBMS

Tipo log ie di basi di dati distribuite

a RETE : LAN (Local Area Network) WAN (Wide Area Network)

SYBASE ORACLE DB2

CLIENT

b DBMS : Sistema omogeneo Sistema eterogeneo

Page 60: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Tipici esempi di applicazioni

LAN WAN

OMOGENEO

ETEROGENEO

Applicazion igestionalie finanziarie

Sistemi diprenotazione,applicazion ifinanziarie

Applicazion igestionaliinterfunzionali

Sistemi diprenotazioneintegrati, sistemiinterbancari

Problemi dellebasi di dati distribuite

• Autonomia e cooperazione• Trasparenza• Efficienza• Aff idabili ta'

Autonomia e cooperazioneL'esigenza di autonomia:- Una reazione ai ''Centri EDP'' - Portare competenze e controllo laddove vengo no gestiti i dati- Rendere la maggior parte delle app licazioni NON distribuite (!)

L'esigenza di cooperazione:- Alcune applicazioni sono intrinsecamente distribuite e richiedono l'accesso a piu' basi di dati

Frammentazione dei dati

Scomposizione delle tabelle in modo da consentire la loro d istribuzione

proprieta': - Completezza - Ricostruibil ita'

Frammentazione orizzontale

FRAMMENTI: insiemi di tuple

FR1

FR2

FR3COMPLETEZZA: presenza di tutte le tup le

RICOSTRUZIONE: unione

Frammentazione verticale

FRAMMENTI: insiemi di attributi

COMPLETEZZA: presenza di tutt i gli att ributi

RICOSTRUZIONE: join sulla chiave

FR1 FR2 FR3

Page 61: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Esempio: conti correnti bancari(lezione 7)

CONTO-CORRENTE (NUM-CC,NOME,FILIALE,SALDO)TRANSAZIONE (NUM-CC,DATA,PROGR,AMMONTARE,

CAUSALE)

CENTRO

FILIALE1 FILIALE2 FILIALE3

Frammentazione orizzontaleprincipale

Fi = SELECT[Pi] R

esempio:CONTO1 = SELECT [FILIALE=1] CONTO-CORRENTECONTO2 = SELECT [FILIALE=2] CONTO-CORRENTECONTO3 = SELECT [FILIALE=3] CONTO-CORRENTE

Frammentazione orizzontalederivata

Fi = PROJECT [ATTR(S)] S JOIN Ri

esempio:TRANS1 = PROJECT[ATTR(TRANSAZIONE)] TRANSAZIONE JOIN CONTO1TRANS2 = PROJECT[ATTR(TRANSAZIONE)] TRANSAZIONE JOIN CONTO2TRANS3 = PROJECT[ATTR(TRANSAZIONE)] TRANSAZIONE JOIN CONTO3

Allocazione dei frammenti

Rete : 3 siti periferici, 1 sito centrale

Allocazione: locale centrale

Allocazione dei frammenti

CONTO1

CONTO2

CONTO3

TRANS1

TRANS2

TRANS3

CENTRO

CONTO1

TRANS1

FILIALE 1

CONTO2

TRANS2

FILIALE 2

CONTO3

TRANS3

FILIALE 3

Livelli di trasparenza

Modali ta’ per esprimere interrogazion iofferte dai DBMS commerciali :

LIVELLI: FRAMMENTAZIONEALLOCAZIONELINGUAGGIO

Page 62: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Trasparenza di frammentazione

SELECT SALDO FROM CONTO-CORRENTE WHERE NUM-CC=45

QUERY :estrarre il saldo d el conto corrente 45

Trasparenza di allocazione

SELECT SALDO FROM CONTO1 WHERE NUM-CC=45

IPOTESI :Conto corrente 45 presso la Fili ale 1

(locale)

Trasparenza di allocazione

SELECT SALDO FROM CONTO1 WHERE NUM-CLI=45IF (NOT FOUND) THEN( SELECT SALDO FROM CONTO2 WHERE NUM-CLI=45 UNION SELECT SALDO FROM CONTO3 WHERE NUM-CLI=45 )

IPOTESI :Allocazione incerta, probabilmente alla

fili ale 1

Trasparenza di li nguaggio

SELECT SALDO FROM CONTO1@1 WHERE NUM-CLI=45IF (NOT FOUND) THEN( SELECT SALDO FROM CONTO2@C WHERE NUM-CLI=45 UNION SELECT SALDO FROM CONTO3@C WHERE NUM-CLI=45 )

Trasparenza di frammentazione

SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO-CORRENTE AS C JOIN TRANSAZIONE AS T ON C.NUM-CC=T.NUM-CC WHERE SALDO < 0

QUERY :estrarre i movimenti dei conti con saldonegativo

Trasparenza di allocazione(join distribuito)

SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO1 JOIN TRANS1 ON …... WHERE SALDO < 0UNIONSELECT CC-NUM, PROGR, AMMONTARE FROM CONTO2 JOIN TRANS2 ON …... WHERE SALDO < 0UNIONSELECT CC-NUM, PROGR, AMMONTARE FROM CONTO3 JOIN TRANS3 ON …... WHERE SALDO < 0

Page 63: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Trasparenza di li nguaggio

SELECT CC-NUM, PROGR, AMMONTARE FROM CONTO1@1 JOIN TRANS1@1 ON …... WHERE SALDO < 0UNIONSELECT CC-NUM, PROGR, AMMONTARE FROM CONTO2@C JOIN TRANS2@C ON …... WHERE SALDO < 0UNIONSELECT CC-NUM, PROGR, AMMONTARE FROM CONTO3@C JOIN TRANS3@C ON …... WHERE SALDO < 0

Trasparenza di frammentazione

UPDATE CONTO-CORRENTE SET FILIALE = 2 WHERE NUM-CC=45 AND FILIALE=1

UPDATE :sposta il cliente 45 dalla fili ale 1 alla fili ale 2

Trasparenza di allocazione(e replicazione)

INSERT INTO CONTO2 SELECT * FROM CONTO1 WHERE NUM-CC=45

INSERT INTO TRANS2 SELECT * FROM TRANS1 WHERE NUM-CC=45

DELETE FROM CONTO1 WHERE NUM-CC=45

DELETE FROM TRANS1 WHERE NUM-CC=45

Trasparenza di li nguaggioINSERT INTO CONTO2@2 SELECT * FROM CONTO1 WHERE NUM-CC=45INSERT INTO CONTO2@C SELECT * FROM CONTO1 WHERE NUM-CC=45

INSERT INTO TRANS2@2 SELECT * FROM TRANS1 WHERE NUM-CC=45INSERT INTO TRANS2@C SELECT * FROM TRANS1 WHERE NUM-CC=45

(in modo analogo: 2 coppie di DELETE)

Eff icienza

• Ottimizzazione delle query• Modali ta' di esecuzione - seriale - parallela

Esecuzione seriale

CONTO2

CONTO3

CENTRO

CONTO1

FILIALE1

CLIENT

Page 64: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Esecuzione parallela

CLIENT

CONTO1

FILIALE1

CONTO3

FILIALE3

CONTO2

FILIALE2

Transazioni distribuite

BEGIN TRANSACTION UPDATE CONTO1@1 SET SALDO=SALDO + 500.000 WHERE NUM-CLI=45; UPDATE CONTO2@2 SET SALDO=SALDO - 500.000 WHERE NUM-CLI=35;COMMIT-WORKEND TRANSACTION

Transazioni distribuite

CLIENT

FILIALE1

45 + 500.000

FILIALE2

35 - 500.000

Proprieta' acidedell’ esecuzione distribuita

• Isolamento

se c iascunasottotransazione e' a duefasi la transazione e'globalmente serializzabile

• Consistenza

se c iascunasottotransazionepreserva l'integrita'locale i dati sonoglobalmente consistenti

• Persistenza

se c iascunasottotransazione gestiscecorrettamente i log, i datisono globalmentepersistenti

• Atomicita'

e' il principale problemadelle transazionidistribuite

Guasti in un sistema distribuito

• Caduta di nod i

MSG

• Perdita di messaggi

• Interruzione della rete

Protocolli distribuitie perdita di messaggi

A: SEND(B,MSG)

B: RECEIVE(MSG)SEND(A,ACK)

A: RECEIVE(ACK)

Page 65: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Commit a due fasi

Protocollo per garantire l'atomicita' disotto-transazioni distribu ite

Come un matrimonio - fase uno: dichiarazione di intenti - fase due: dichiarazione del matrimonio

Protagonisti - un coordinatore - molti partecipanti

Record nel log del coordinatore

a PREPARE: identita' dei partecipantib GLOBAL COMMIT/ABORT: decisionec COMPLETE: termine del protocollo

Record nel log del partecipante

a READY: dispon ibili ta' al commitb LOCAL COMMIT/ABORT: decisione ricevuta

Fase 1

C: WRITE-LOG(PREPARE) SET TIME-OUT SEND (Pi,PREPARE)

Pi: RECEIVE(C,PREPARE) IF OK THEN WRITE-LOG(READY) MSG=READY ELSE MSG=NO SEND (C,READY)

Fase 2C: RECEIVE(Ci,MSG) IF TIME-OUT OR ONE(MSG)=NO THEN WRITE-LOG(GLOBAL-ABORT) DECISION=ABORT ELSE WRITE-LOG(GLOBAL-COMMIT) DECISION=COMMIT SEND(Pi,DECISION)

Pi: RECEIVE(C,DECISION) IF COMMIT THEN WRITE-LOG(COMMIT) ELSE WRITE-LOG(ABORT) SEND (C,ACK)

C: RECEIVE(Pi,ACK) WRITE-LOG(COMPLETE)

Diagramma del commit a due fasi

coordinatore

partecipante

t

t

PREPARE GLOBALDECISION

READY LOCALDECISION

PREPARE MSG DECISION

COMPLETE

ACK

Standardizzazione del protocollo

Standard X-open

- interfacc ia TM: definisce i servizi del coordinatore offerti ad un client per eseguire il commit di partecipanti eterogenei

- interfacc ia XA: definisce i servizi di partecipanti passivi che rispondon o a chiamate del coordinatore (offerta da molti DBMS sul mercato)

Page 66: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Compless ita' del protocollo

Deve poter gestire tutt i i guasti:- caduta del coordinatore- caduta di uno o piu' partecipanti- perdite di messaggi

Recovery del protocollo 2PC

coordinatore

partecipante

t

t

PREPARE GLOBALDECISION

READY LOCALDECISION

PREPARE MSG DECISION

COMPLETE

ACK

Sommario

• Concett i e prob lemi– Trasparenza– Efficienza

– Atomicita' distribuita

• Elementi architetturali– Frammentazione

• Protocollo– Commit a due fasi

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 13

(37 lucidi)

Basi di datiparallele

Scalabili ta' delle applicazioni

• Carico: insieme di tutte le applicazioni (query)

• Scalabili ta': abili ta' di conservare prestazioni elevate al crescere del carico

• Dimension i di crescita : - numero delle query - complessita' delle query

Page 67: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Due tipologie di carico

• Transazionale carico: transazioni brevi misura: tps (transazion i per secondo ) tempo d i risposta: pochi secondi

• Analisi dei dati carico: query SQL complessa tempo d i risposta: variabile

Parallelismo

• Ottenuto tramite molti processori che cooperano in un a un ica architettura informatica

• Due tipi di parallelismo

inter-query ciascuna query affidata ad un solo processore (per carichi transazionali)

intra-query ciascuna query affidata a molti processori (per carichi di analisi dei dati)

Architetture a confronto

SHARED-NOTHING

rete veloce

DISCOMEMORIA

PROCESSORE

DISCOMEMORIA

PROCESSORE ……

Architetture a confronto

SHARED-MEMORY

PROCESSORE ……PROCESSORE

MEMORIADISCO DISCO….

Architetture a confronto

SHARED-DISKS

……

DISCO DISCO….

MEMORIA

PROCESSORE

MEMORIA

PROCESSORE

Benchmark

• standardizzazione: 1 del database 2 del carico - codice transazioni - modali ta' di invio - frequenza di arrivo 3 della modalita' di misurazione

• varie tipolog ie di carico tpc-a: transazionale tpc-b: misto tpc-c: analisi dei dati

Metodi per confrontare le prestazion i disistemi diversi (in competizione)

Page 68: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Curva di speed-up

Misura il crescere di efficienza al crescere delnumero d i processori

tps

numero diprocess ori

curvareale

..

.

Curva di sca le-up

Misura il crescere di costo unitariocomplessivo per transazione al crescere delnumero d i processori

costounitario

numero diprocess ori

curvareale. . .

Join distribuito

E' l'operazione di analisi dei dati piu'onerosa

consideriamo:

conto corrente

JOIN

transazione

Join distribuito

UNIONE

CONTO1

TRANS1

JOIN

CONTO2

TRANS2

JOIN

CONTO3

TRANS3

JOIN

Requisiti per il join distribuito

I domini degli attributi di join devonoessere partizionati e ogn i partizioneassegnata ad un a copp ia di frammenti(ad esempio su valori numerici tra1 e 300000:• da 1 a 100000• da 100000 a 200000• da 200000 a 300000)

In molti sistemi paralleli i dati vengonoinizialmente ridistribuiti sui dischi perottenere questa distribuzione

Basi di datireplicate

Page 69: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Replicazione dei dati

E' un ingrediente fondamentale deisistemi informativi

motivazion i:• eff icienza• aff idabili ta'• autonomia

Modali ta’ di replicazione

• Asimmetrica

COPIAPRIMARIA

COPIASECONDARIA

propagazione

modifiche

Modali ta’ di replicazione

• Simmetrica

COPIA 1 COPIA 2

modifiche modifiche

Modali ta’ di trasmiss ionedelle variazioni

• Trasmissione asincrona

COPIA 2

propagazione

transazione dialli neamento

COPIA 1

transazionemaster

Modali ta’ di trasmiss ionedelle variazioni

• Trasmissione sincrona

COPIA 1 COPIA 2

transazionemaster

Modali ta’ di alli neamento

• Refresh

COPIA 1 COPIA 2

INTEROCONTENUTODELLA COPIA 1

• Allineamento: - periodico - a comando - ad accumulo d i variazione

Page 70: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Modali ta’ di alli neamento

COPIA 1 COPIA 2

DELTA-PLUSDELTA-MINUS

• Incrementale

• Allineamento: - periodico - a comando - ad accumulo d i variazione

Meccanismi per la replicazioneasimmetrica, asincrona e incrementale

Prodotto: Replication Manager- con due moduli : CAPTURE, APPLY

COPIA 1 COPIA 2

modifiche

DELTA-PLUSDELTA-MINUS

CAPTURE APPLY

Trigger di replicazione

catturano le variazion i ai dati nelletabelle DELTA-PLUS e DELTA-MINUSin modo trasparente alle app licazioni

Trigger di replicazioneCREATE TRIGGER CAPTURE-INSAFTER INSERT ON PRIMARYFOR EACH ROWINSERT INTO DELTA-PLUS VALUES (NEW.*)

CREATE TRIGGER CAPTURE-DELAFTER DELETE ON PRIMARYFOR EACH ROWINSERT INTO DELTA-MINUS VALUES (OLD.*)

CREATE TRIGGER CAPTURE-UPDAFTER UPDATE ON PRIMARYFOR EACH ROWBEGININSERT INTO DELTA-PLUS VALUES (NEW.*)INSERT INTO DELTA-MINUS VALUES (OLD.*)END

Un caso particolare:replicazione in computer mobili

• Computer mobili : saltuariamente collegati ad una rete

• Copie disconnesse per ore o g iorni intere, po i riconnesse (riconcili azione)

• Applicazione : agenti di vendita mobili

Alli neamento di copie disconnesse

• Richiede spesso la replicazione simmetrica

COPIA DELVENDITORE

COPIACENTRALE

modifiche modifiche

(con riconcil iazione)

Page 71: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Datawarehouse

Data warehouse

• Un ambiente per l'analisi dei dati

• La principale innovazione architetturale dei sistemi informativi

• Consente di separare: - on-line transaction process ing (OLTP) - on-line analytical process ing (OLAP)

Architettura compless ivacon OLTP e OLAP

DATABASE

TERMINALISTImodifiche in linea

ambiente OLTP

DATAWAREHOUSE

ANALISTIquery complesse

ambiente OLAP

Motivazioni della separazionedegli ambienti

• Tipo log ia di utenza differente

• Organizzazione dei dati differente

• Tecniche completamente innovative - tipo d i query e di interazione - uso del parallelismo

Moduli i n una data warehouse

EXPORTEXPORT EXPORT

EXPORT

ANALISI

IMPORTDATAWAREHOUSE

SISTEMI PRODUTTORI DI DATI

Altri moduli

• Dizionario dati (elenco dei dati e dei loro tipi, ma anche confronti, definizion i di compatibilita', etc)

• Ambiente di progettazione (strumenti per estrarre i dati, verificare il contenuto, caricare la warehouse)

Page 72: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Differenze fra data warehouse eDBMS tradizionale

a Modali ta' d'uso - funzionamento "normale" : query di sola lettura - aggiornamento: lunghi programmi batch

b Progetto fisico dei dati - supporto accesso sequenziale - ind ici sparsi, strutture dati " invertite" - clusterizzazion i e raggruppamenti predefiniti - parallelismo intra-query

c Ambiente di sviluppo - orientati ad u tenti finali non informatici

Problemi di progetto

• Miglioramento della quali ta' dei dati - filtro d i dati scorrett i - integrazione di dati da plurime fonti

• Definizione delle modali ta' di acquisizione - uso dei "replication manager"

• Definizione dei requ isiti - individuazione dei principali prob lemi decisionali per l’i mpresa• Scelta dei dati - individuazione delle "data source" coinvolte

Sommario

• Concett i e prob lemi– Benchmark (valutazione delle prestazioni)

– Replicazione sincrona e asincrona– Criteri di progetto della data warehouse

• Tecniche– Parallelismo dei dati (benchmark, join distribuito)– Replicazione dei dati (varie modali ta', trigger di replicazione)– Data warehouse (moduli di sistema)

Prof. Stefano CeriSistemi Informativi Aziendali

(9651A)Lezione 14

(44 lucidi)

Modelli e linguaggiper l'analisi

dei dati

Il problema

• Limitazion i della tecno log ia relazionale - Diff icolta' d'uso - Rigidita'

• Conseguenze - Uso op erativo: buono - Uso strategico: scarso

• Reazione: modelli , linguaggi e tecniche per On-Line Analytical Processing (OLAP)

Page 73: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Obiettivi di OLAP

• Definire una versione consistente, pubb lica, di quali ta' dei dati aziendali

• Facili tare l'accesso ai dati per uso strategico

• Supporto alle decision i e business plann ing (finanze, marketing, vendite)

Applicazioni di OLAP

Argomenti

• Modello multi-dimensionale dei dati• Data cube• Data mining

Modello multidimensionale

• E' una struttura entita'-relazion i semplificata sui cui fare interrogazion i standard

• Database strutturato in: - Fatt i - Dimension i di analisi

Un esempio : gestione vendite

vendite(fatti)

prodo tt i

promozionisupermercato

tempo

(0,N) (1,1) (1,1) (0,N)

(0,N)

(1,1)

(1,1)

(0,N)

Un altro esempio : gestione rimborsi

rimborsi(fatti)

polizze

problemiclienti

tempo

(0,N) (1,1) (1,1) (0,N)

(0,N)

(1,1)

(1,1)

(0,N)

Un altro esempio : gestione terapie

terapia(fatti)

paziente

patologiamedico

ospedale

(0,N) (1,1) (1,1) (0,N)

(0,N)

(1,1)

(1,1)

(0,N)

Page 74: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Torniamo a : gestione vendite

vendite(fatti)

prodott i

promozion isupermercato

tempo

(0,N) (1,1) (1,1) (0,N)

(0,N)

(1,1)

(1,1)

(0,N)

Le esigenze dell’i mpresa

I responsabili dei supermercati vog lionopoter indagare sui fattori che influenzano le vendite: - tipo log ia dei prodo tt i - istante di tempo in cui avviene la vendita - caratteristiche del supermercato - promozioni

Fatt i

COD-PROD COD-MAGAZ COD-TEMPO COD-PROMO RICAVO-GLOBALE QUANTITA'-VENDUTA RICAVO-UNITARIO

Dimensione dei prodotti

COD-PROD CATEGORIA SOTTO-CATEGORIA MARCA IMBALLO PESO INGOMBRO FORNITORE

Dimensione dei supermercati COD-MAGAZ NOME INDIRIZZO CITTA' REGIONE DISTRETTO-DI-VENDITA TELEFONO FAX NOME-MGR DIMENSIONI LOGISTICA

Dimensione del tempo

COD-TEMPO GIORNO-SETTIMANALE GIORNO-MENSILE GIORNO-ANNUALE SETTIMANA-MENSILE SETTIMANA-ANNUALE MESE-ANNUALE STAGIONE FLAG-PREFESTIVO FLAG-FESTIVO

Page 75: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Dimensione delle promozioni COD-PROMO NOME-PROMO TIPO-SCONTO SCONTO PUBBLICITA' ALLESTIMENTO FLAG-COUPON DATA-INIZIO DATA-FINE COSTO AGENZIA

Esempio di query con browser

promozionepaghi 2 prend i 3offerta 40%offerta 20%omaggio (...)…..

zonanordestcentro....

periodogennaiofebbraiomarzo....

osservazionericavo-totalequantita'-vendu taricavo-unitario

somma(ricav i)somma(quantita')

febbraio/ pasta aprile

prodo ttolattepanepasta....

La stessa query in SQL

SELECT C1, C2, AGGR(C3), AGGR(C4)FROM FATTI, DIM1, DIM2WHERE JOIN-PRED(FATTI,DIM1) AND JOIN-PRED(FATTI,DIM2) AND SELECT-PRED(DIM1) AND SELECT-PRED(DIM2)GROUP BY C1, C2ORDER BY C1, c2

Risultato

mesefebbraiomarzoaprile

Sommaammontare130.000.000140.000.000135.000.000

prodo ttopastapastapasta

Sommaquantita'

45.00050.00051.000

• Presentazione: - fog lio elett ron ico (spreadsheet) - forma grafica

Drill -down: aggiunta di unadimensione

• Drill -down sulla zona

mesefebbraiofebbraiofebbraiomarzomarzomarzoaprileaprileaprile

zonanordestcentronordestcentronordestcentro

prodo ttopastapastapastapastapastapastapastapastapasta

Sommaquantita'

15.00017.00013.00018.00018.00014.00018.00017.00016.000

Roll -up: eliminazione di unadimensione

• Roll -up sul mese

zonanordestcentro

prodo ttopastapastapasta

Sommaquantita'

51.00052.00043.000

Page 76: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Query aggregate

Esempi:• Totale delle vendite per categoria di prodo tto per supermercato per giorno• Totale delle vendite mensil i di prodo tt i per supermercato• Totale delle vendite mensil i per categoria per supermercato• Media delle vendite mensili per categoria su tutti i supermercati

Problema di progetto

• Scelta di alcune aggregazion i da materializzare (mantenere) in modo da favorire le query relative

modifiche

FATTI

aggregazione

AGGREGATI

query

modifiche

Tipiche dimensionidella data warehouse

tempo: 730 giornimagazzini: 300prodo tt i: 30.000vendite quo tidiane: 3.000promozion i: non piu' di una per prodo tto vendutovendite: 730 x 300 x 3000 x 1 = 657 mili oni.dimension i: 657 mil ion i x 6 attributi x 4 byte = 16gb.

Aggregazione in SQL : data cube

• Esprime tutte le aggregazioni possibili delle tuple di una tabella

• Utili zza il nuo vo valore po limorfo ALL

Data cube in SQL

SELECT MODELLO, ANNO, COLORE, SUM(VENDITE)FROM VENDITEWHERE MODELLO IN {'Fiat','Ford'} AND COLORE = 'Rosso' AND ANNO BETWEEN 1994 and 1995GROUP BY MODELLO, ANNO, COLOREWITH CUBE

Fatt i rilevanti

modellofiatfiatford

colorerossorossorosso

anno199419951994

vendite508580

Page 77: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Dati nel data cubemodello

fiatfiatfiatfiatfiatfiatfordfordfordfordALLALLALLALLALLALL

colore

rossorossoALLALLrossoALLrossoALLrossoALLrossorossorossoALLALLALL

anno

1994199519941995ALLALL19941994ALLALL19941995ALL19941995ALL

sum (vendite)

50855085

13513580808080

13085

21513085

215

Visualizzazione del data cube

fiat

.

.

1995

1994

ford. .

rosso.

.

. .

. .

.

.ALLALLALL

Roll up

SELECT MODELLO, ANNO, COLORE, SUM(VENDITE)FROM VENDITEWHERE MODELLO IN {'Fiat','Ford'} AND COLORE = 'Rosso' AND ANNO BETWEEN 1994 and 1995GROUP BY MODELLO, ANNO, COLOREWITH ROLL UP

Dati nel roll up

modello

fiatfiatfordfiatfiatfordfiatfordALL

colore

rossorossorossoALLALLALLALLALLALL

anno

199419951994199419951994ALLALLALL

sum(vendite)

508580508580

13580

215

Data mining

• Obiettivo: estrarre informazione nascosta nei dati in modo d a consentire decision i strategiche

• Una materia interdisciplinare: - statistica, algoritmica, reti neurali, geometria frattale

Applicazioni del data mining

- Analisi di mercato: prodotti acqu isiti insieme o in sequenza - Analisi di comportamento: ind ividuare usi ill eciti di credit card - Previsione: prevedere il costo delle cure mediche - Controllo: errori di produzione

Page 78: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Applicazione : analisi delle vendite

Trans

11222344

Data

12/17/9512/17/9512/18/9512/18/9512/18/9512/18/9512/19/9512/19/95

Oggetto

pantalon i-sc iscarponimagliettagiaccastivaligiaccamagliettagiacca

Quantita'

11111131

Prezzo

140.000180.000 25.000300.000 70.000300.000 25.000300.000

Regole di associazione

• Ricercano rego larita' nei dati: quando si acquistano scarponi, si acqu istano sci

• Strutturate come: - corpo: premessa della rego la. - testa: conseguenza della rego la.

Caratteristiche delleregole di associazione

• Suppo rto: probabilita' che siano presenti in una transazione entrambi gli elementi di una rego la• Confidenza: probabilita' che sia presente in una transazione la testa di una rego la, essendo presente il corpo• Formulazione del prob lema: estrarre tutte le rego le con suppo rto e confidenza superiori a valori prefissati

Esempi di regole di associazione

Corpo

pantalon i-sc iscarpon imagliettemagliettestivalistivaligiacchegiacche {magliette,stivali} {magliette,giacche} {stivali , giacche}

Testa

scarpon ipantalon i-sc istivaligiacchemagliettegiacchemagliettestivaligiacchestivalimagliette

Confidenza

110.510.510.660.3310.51

Suppo rto

0.250.250.250.250.250.250.50.250.250.250.25

Regole di associazione in SQL

MINE RULE OGGETTI-VENDUTI-ASSIEME ASSELECT DISTINCT OGGETTO AS BODY, OGGETTO AS HEAD, SUPPORT, CONFIDENCEFROM VENDITEGROUP BY TRANSEXTRACTING RULES WITH SUPPORT: 0.1 CONFIDENCE: 0.2

Altri esempi

• Oggett i vendu ti nella stessa promozione• Oggett i vendu ti ass ieme d'estate ma non d'inverno• Oggett i vendu ti ass ieme in quanto disposti in modo p articolare• Oggett i acqu isiti in sequenza dallo stesso cliente

Page 79: Sistemi - polito.it · 2000. 10. 15. · • e' essenziale per il funzionamento dell'azienda • e' fortemente integrato con il sistema ... gestione ordini, personale, magazzino •

Discretizzazione

Rappresentazione di un do minio continuotramite oppo rtun i valori discreti

vantagg i:• Rappresentazione compatta dei valori• Determinazione di valori critici• Facili tazione della analisi dei dati successiva

Class ificazione

Catalogazione di un fenomeno particolare inuna classe predefinita

• Fenomeno p resentato sotto forma di fatt i elementari (tup la)• Costruzione del class ificatore a partire da un set di dati di prova (training set)• Classificatori rappresentati come alberi di decisione

Esempio di classificatore :individuazione di polizze a rischio POLIZZA(NUM-PATENTE, ETA', TIPO-AUTO)

ETA' < 23

TIPO AUTO = sportiva

TIPO AUTO = camion

rischioelevato

rischioelevato

rischioelevato

rischiobasso

vero falso

vero falso

vero falso

Sintesi dei vari aspett ipresenti nella analisi dei dati

ambiente:• data warehou se

modello:• multidimensionale

estension i di SQL• data cube• mine rule

tecnolog ie di base:• distribuzione• parallelismo• replicazione

tecnolog ie specifiche:• browser (e visualizzatori)• data mining - associazione - discretizzazione - class ificazione