1 Sigda - Database

29
SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA dott. ing. Francesco Guerra [email protected]

description

 

Transcript of 1 Sigda - Database

Page 1: 1 Sigda - Database

SISTEMI INFORMATIVI PER LA GESTIONE DELL’AZIENDA

dott. ing. Francesco [email protected]

Page 2: 1 Sigda - Database

dott. ing. Francesco Guerra 2SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

DB e DBMS

L’attenzione alle basi di dati ha caratterizzato le applicazioni informatiche fino dalle origini: i primi software risalgono agli anni ’60.

Molte applicazioni scritte con il linguaggio COBOL sono tuttora utilizzate anche se si devono ritenere come applicazioni legacy

L’approccio convenzionale sfrutta la presenza di archivi per memorizzare i dati in modo persistente sulla memoria di massa.

Un file fornisce solo semplici meccanismi di accesso e di condivisione

Un sistema di gestione di basi di dati (DBMS-Data Base Management System) e’ un sistema software per gestire grandi quantita’ di dati grandi condivise e persistenti, assicurando affidabilita’ e privatezza.

Page 3: 1 Sigda - Database

dott. ing. Francesco Guerra 3SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

DB e DBMS

Le basi di dati sono grandi nel senso che possono contenere Terabyte di dati. Devono essere scalabili perche’ gli archivi possono essere anche di poche migliaia di byteI db sono condivisi: applicazioni e utenti diversi devono potereaccedere secondo opportune modalita’ a dati comuni.

Questa proprieta’ determina la riduzione della ridondanza per evitare la possibilita’ di inconsistenzeImplementazione di un sistema di controllo di concorrenza

Le basi di dati sono persistenti: il loro tempo di vita non e’limitato a quelle delle esecuzione degli applicativi che le utilizzanoI DBMS garantiscono affidabilita’: capacita’ di conservare il contenuto di un database in caso di malfunzionamento

Implementazione di specifiche funzionlita’ di backup e recovery

Page 4: 1 Sigda - Database

dott. ing. Francesco Guerra 4SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

DB e DBMS

I DBMS garantiscono la privatezza dei dati: ciascun utente e’ riconosciuto mediante un account e viene abilitato a svolgere solo determinate azioni sulla base di meccanismi di autorizzazioneUn DBMS soddisfa ai principi di

Efficienza: capacita’ di svolgere le operazioni utilizzando un insieme di risorse accettabile per gli utentiEfficacia: capacita’ della base di dati di rendere produttive le attivita’ degli utenti.

Page 5: 1 Sigda - Database

dott. ing. Francesco Guerra 5SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Modelli di dati

Un modello di dati e’ un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che sia comprensibile a un elaboratore

Ogni modello dati fornisce dei meccanismi di strutturazione.

Il modello relazionale dei dati – il piu’ diffuso – permette di definire nuovi tipi di dato sulla base del costruttore relazione: un insieme di record a struttura fissa

La relazione e’ rappresentabile mediante una tabellaLe righe sono gli specifici recordLe colonne sono i campi del recordL’ordine delle righe e delle colonne e’ sostanzialmente irrilevante

Page 6: 1 Sigda - Database

dott. ing. Francesco Guerra 6SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

CDL MATERIA ANNO

CGIEAACGF

Sistemi informativi d’aziendaSistemi informativi d’aziendaControllo e S.I.

132

Manifesto

Docenti

Il modello dei dati

CODICE NOME

12…

Francesco GuerraTizio Caio…

Page 7: 1 Sigda - Database

dott. ing. Francesco Guerra 7SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Schemi e Istanze

Le basi di dati si compongono di due parti:Una parte invariante nel tempo detta schema della base di dati che descrive le caratteristiche dei dati

E’ la componente intensionale

Una parte variabile costituita dai valori effettivi degli elementi rappresentati.

E’ la componente estensionale

Page 8: 1 Sigda - Database

dott. ing. Francesco Guerra 8SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Linguaggi per basi di dati

I linguaggi per basi di dati si dividono in tre tipologie:Data Definition Language: servono per specificare gli schemi logici esterni e fisiciData Manipulation Language: sono utiulizzati per l’interrogazione e l’aggiornamento delle basi di datiData Control Language: sono i comandi per la gestione degli utenti e la specificazione dei privilegi di accesso

I dati possono essere consultati mediante:Linguaggi testuali interattiviComandi simili a quelli interattivi immersi in linguaggi di programmazione tradizionaliInterfacce amichevoli che permettono di sintetizzare le interrogazioni senza usare un linguaggio testuale

Page 9: 1 Sigda - Database

dott. ing. Francesco Guerra 9SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Riassumiamo

Un DB è una collezione di dati (ad es. rappresentati in forma di tabelle) che rappresentano le informazioni di interesse per un’organizzazioneProgettare un DB significa trovare un “buon modo” per strutturare i dati, che rispetti sia i requisiti propri del Sistema Informativo dell’organizzazione sia i vincoli che sui dati vengono impostiUn DBMS è un sistema software che gestisce DB Per eseguire operazioni su un DB è necessario scrivere istruzioni in un linguaggio (tipicamente dichiarativo: SQL) supportato dal DBMSIl modo specifico con cui un’istruzione viene eseguita èscelto dal modulo ottimizzatore del DBMS sulla base di considerazioni di efficienza e considerando quali sono gli operatori e i metodi di accesso disponibili

Page 10: 1 Sigda - Database

dott. ing. Francesco Guerra 10SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

La classica architettura a tre livelli di astrazione

Vista

VistaDatabase sudispositivifisiciSchema logicoLivello esterno

Livello logico Livello fisicoA livello logico si descrive la base di dati con il modello logico usato dal DBMS

A livello fisico si descrive il modo in cui i dati sono organizzati e gestiti in memoria di massa (dispositivi fisici): ordinamento, scelta dei metodi accesso

A livello esterno si descrive una parte (una vista) della base di dati di interesse

Page 11: 1 Sigda - Database

dott. ing. Francesco Guerra 11SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Livelli di astrazione nei DBMS

Esiste una proposta standardizzata di architettura per DBMS articolata su 3 livelli (esterno, logico e interno) per ciascuno dei quali esiste uno schema:

Schema logico: e’ lo schema della intera base di dati per mezzo del modello logico adottato dal DBMS (relazionale, gerarchico, reticolare, ad oggetti, …)Schema interno: si tratta della rappresentazione dello schema logico per mezzo delle strutture di memorizzazioneSchema esterno: costituisce la descrizione di una porzione della base di dati di interesse per mezzo dello schema logico.

Page 12: 1 Sigda - Database

dott. ing. Francesco Guerra 12SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Indipendenza fisica e logica

Un’architettura di questo tipo garantisce:Indipendenza fisica

L’organizzazione fisica dei dati dipende da considerazioni legate all’efficienza delle organizzazioni adottate. La riorganizzazione fisica dei dati non deve comportare effetti collaterali sui programmi applicativi

Indipendenza logicaPur in presenza di uno schema logico integrato non èutile o conveniente che ogni utente ne abbia una visione uniforme

Page 13: 1 Sigda - Database

dott. ing. Francesco Guerra 13SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Utenti e progettisti

Ci sono diverse categorie di operatori che lavorano con le basi di dati:

L’amministratore delle basi di dati (DBA): e’ il responsabile della progettazione, controllo e amministrazione della base di datiI progettisti e i programmatori di applicazioni: definiscono e realizzano i programmi per accedere alle basi di dati utilizzando un DMLGli utenti che possono accedere sia per compiere transazioni ripetitive e formalizzate sia delle interrogazioni non preventivabili a priori

Page 14: 1 Sigda - Database

dott. ing. Francesco Guerra 14SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Vantaggi e svantaggi dei DBMS

Vantaggi:I dati vengono considerati come una risorsa comune di una organizzazioneLa base di dati rappresenta un modello unificato e preciso dellaparte di mondo reale di interesse per l’organizzazioneCon il DBMS e’ possibile la gestione centralizzata dei dati che puo’ essere arricchita da forme di standardizzazione e beneficiare di economie di scalaLa condivisione permette di ridurre la ridondanza e eventuali inconsistenzeL’indipendenza dei dati favorisce lo sviluppo di applicazioni flessibili e facilmente modificabili

Svantaggi:I DBMS sono prodotti costosi e complessi con necessita’ di investimenti sia diretti sia indiretti (personale di manutenzione)

Page 15: 1 Sigda - Database

dott. ing. Francesco Guerra 15SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Il modello relazionale

Page 16: 1 Sigda - Database

dott. ing. Francesco Guerra 16SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Il modello relazionale

La maggior parte dei DBMS in commercio si fonda sul modello relazionale che e’ stato progettato da Codd nel 1970.Il modello relazionale si fonda sul concetto di relazione e di tabella

Dati due insiemi D1 e D2 si definisce prodotto cartesiano di D1 e D2 (in simboli D1 x D2) l’insieme delle coppie ordinate (v1, v2) tali che v1 e’ un elemento di D1 e v2 e’ un elemento di v2

Una relazione matematica sugli insiemi D1 e D2 e’ un sottoinsieme di D1 x D2

Le relazioni possono essere rappresentate graficamente in forma tabellare.

Page 17: 1 Sigda - Database

dott. ing. Francesco Guerra 17SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Relazione e tabelle: un esempio

A={1,2,3}B={a,b}

Prodotto cartesiano:{(1,a),(1,b),(2,a),(2,b),(3,a),(3,b)}

112233

ababab

Page 18: 1 Sigda - Database

dott. ing. Francesco Guerra 18SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Il modello relazionale

L’esempio fa riferimento a una relazione composta da due insiemi di elementi, ma tali relazioni possono essere generalizzate rispetto al numero di insiemi.

Il numero delle componenti del prodotto cartesiano e’ detto grado della relazioneIl numero di elementi della relazione (n-uple) e’ detto cardinalita’ della relazione

Con riferimento all’uso che si fa delle relazioni per organizzare i dati nei DB, ciascuna n-upla contiene dati fra loro collegati:

Non e’ definito alcun ordinamento fra le n-upleLe n-uple sono distinte le une dalle altre

E’ possibile introdurre un nome a ogni occorrenza di dominio in una relazione (attributo)

Page 19: 1 Sigda - Database

dott. ing. Francesco Guerra 19SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Tabella di un DB

Nome Cognome Data di nascita Professione

FrancescoGiuliaErika

GuerraMontanariRossi

21/05/197301/01/197902/02/1983

RicercatoreStudenteImpiegata

Attributo

n-upla

Page 20: 1 Sigda - Database

dott. ing. Francesco Guerra 20SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Relazioni e basi di dati

Una base di dati e’ un insieme di tabelle correlate

Matricola NomeCorso Docente Voto

123 Matematica Rossi 28

esaESAESAMI

Matricola Nome Cognome Età

123 Anna Verde 21

STUDENTI

NomeCorso Anno Crediti

Matematica 1 5CORSOCORSOCORSI

ESAME

STUDENTE

CORSO

Page 21: 1 Sigda - Database

dott. ing. Francesco Guerra 21SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Informazione incompleta e valori nulli

La rappresentazione del modello relazionale impone che le informazioni siano rappresentate con tuple di dati omogenee:

PERSONE (nome, cognome, indirizzo, n_cellulare)

il valore dell’attributo n_cellulare potrebbe non essere presente per tutte le tuple

Si potrebbe utilizzare un valore del dominio per identificare l’assenza di informazione

Richiede l’esistenza di tale valoreL’uso di valori di dominio puo’ generare confusione: la distinzione fra valori veri e valori falsi e’ nascosta.

Esiste un opportuno valore (NULL – valore nullo) che indica l’assenza di informazione (intesa come valore sconosciuto, valore inesistente o assenza generica di informazione)

Page 22: 1 Sigda - Database

dott. ing. Francesco Guerra 22SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Vincoli di integrita’

Le strutture del modello relazionale ci permettono di organizzare le informazioni di interesse per le applicazioni, manon tutte i dati (o le combinazioni di dati) che sono rappresentabili dal dominio permettono di descrivere stati corretti del database

Vincolo di integrita’: proprieta’ che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione

Vincoli di tupla: esprimono condizioni sui valori di ciascuna tupla, indipendentemente dalle altre tupleChiavi: e’ l’insieme di attributi minimo che permette di identificare univocamente ogni tupla della relazione (ovviamente non e’consentito agli attributi della chiave di assumere dei valori nulli)Vincoli di integrita’ referenziale: permettono di correlare in maniera corretta tuple appartenenti a relazioni diverse assicurando che quando in una tupla si utilizza il valore di un attributo per riferirsi a un’altra tupla questa deve essere una tupla esistente (chiave esterna)

Page 23: 1 Sigda - Database

dott. ing. Francesco Guerra 23SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Esempio: modellazione di un sito di e-commerce

Si vuole modellare un sito di e-commerce che vende libri. I clienti vengono identificati da un login e descritti tramite il nome, il cognome e l’e-mail.I libri sono identificati dal codice ISBN e per ogni libro viene descritto l’autore, il titolo, il numero di pagine e il prezzo.In una certa data un cliente acquista un certo numero di copie di uno o piu’ libri. L’acquisto deve essere memorizzato dal DB.

Per risolvere il problema e’ sufficiente realizzare un DB con tre tabelle:

Una tabella memorizza i clientiUna tabella memorizza i libriUna tabella memorizza gli acquisti

Page 24: 1 Sigda - Database

dott. ing. Francesco Guerra 24SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Esempio: modellazione di un sito di e-commerce

Clienti (login, password, nome, cognome, email)Chiave: login

Libro (ISBN, autore, titolo, n_pagine, prezzo)Chiave: ISBN

Acquisto (data, login, ISBN, quantita)Chiave (esterna): login (riferisce a Clienti), ISBN (riferisce a Libro)

Page 25: 1 Sigda - Database

dott. ing. Francesco Guerra 25SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Esempio: modellazione di un sito di e-commerce

Page 26: 1 Sigda - Database

dott. ing. Francesco Guerra 26SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Esempio: modellazione di un sito di e-commerce

Secondo la modellazione assunta e considerando le istanze inserite nella pagina precedente:

Si puo’ inserire nel db un altro cliente di nome Francesco, cognome Guerra e login fguerra73? Si puo’ inserire nel db un altro cliente che abbia login fguerra, password 21573 nome Francesco, cognome Guerra, [email protected]? Un cliente puo’ acquistare due volte lo stesso libro in date diverse?Il cliente fguerra puo’ acquistare il libro ISBN 88-371 autore: Bergamaschi, …?Possono essere inseriti clienti nel db senza che abbiano mai fatto acquisti?Si possono inserire libri che non sono mai stati acquistati?Si possono inserire degli acquisti senza la presenza di una tupla corrispondente nella tabella libri e nella tabella clienti?

Page 27: 1 Sigda - Database

dott. ing. Francesco Guerra 27SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Esempio: prestito in biblioteca

Si rappresenti mediante il modello relazionale il funzionamento del db della biblioteca. Un utente e’ identificato dal codice fiscale e ha un nome, un cognome, un indirizzo. Un libro e’ identificato dal codice, ha un titolo, un autore, una casa editrice e un anno.Un utente puo’ prendere in prestito piu’ libri con il vincolo che in una certa data un utente non posso prendere in prestito piu’ di un libro

Libro (codice, titolo, autore, casa_editrice, anno)Chiave: codiceUtente (cf, nome, cognome, indirizzo)Chiave: cfPrestito (codice, cf, data)Chiave: codice, cf, data

Page 28: 1 Sigda - Database

dott. ing. Francesco Guerra 28SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Esercizi

Considerare le informazioni per la gestione dei prestiti di una biblioteca personale. Il proprietario presta libri ai suoi amici, che indica semplicemente attraverso i nomi o soprannomi (per evitare omonimie) e fa riferimento ai libri attraverso i titoli (non possiede due libri con lo stesso titolo).Quando presta un libro prende nota della data prevista per la restituzione. Definire uno schema di relazione per rappresentare queste informazioni e mostrarne un’istanza in forma tabellare. Indicare la chiave (le chiavi) dellarelazione.

Rappresentare per mezzo di una o piu’ relazioni le informazioni contenute nell’orario delle partenze di una stazione ferroviaria: numero, orario, destinazione finale, categoria del treno, …

Page 29: 1 Sigda - Database

dott. ing. Francesco Guerra 29SIS

TEM

I IN

FORM

ATIV

I PER L

A G

ESTIO

NE D

ELL

’AZIE

ND

A

1 DB

Bibliografia

Atzeni, Ceri, Paraboschi, Torlone: Basi di dati: Modelli e linguaggi di interrogazione, McGraw-HillBeneventano, Bergamaschi, Guerra, Vincini: Progetto di basi di dati relazionali, Pitagora Editrice Bologna, 2007