Basi di Dati II Modulo - Dipartimento Informatica - mezzini/basididatiIImod.pdfCAPITOLO 1. BASI DI...

Click here to load reader

  • date post

    15-Feb-2019
  • Category

    Documents

  • view

    234
  • download

    0

Embed Size (px)

Transcript of Basi di Dati II Modulo - Dipartimento Informatica - mezzini/basididatiIImod.pdfCAPITOLO 1. BASI DI...

Basi di Dati

II Modulo

Mauro Mezzini

Gennaio 2010

ii

Indice

1 Basi di dati e sistemi informativi 1

1.1 Ciclo di vita dei sistemi informativi . . . . . . . . . . . . . . . . . 2

1.2 Progettazione ed implementazione di una base di dati . . . . . . 4

2 Il modello Entita-Associazione 7

2.1 Caratteristiche del modello concettuale . . . . . . . . . . . . . . . 7

2.2 I costrutti del modello Entita-Associazione . . . . . . . . . . . . . 9

2.2.1 Entita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.2 Associazioni . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.3 Cardinalita delle associazioni . . . . . . . . . . . . . . . . 14

2.2.4 Attributi . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2.5 Generalizzazioni . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.6 Identificatori . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Il modello Relazionale 23

3.1 Descrizione del modello Relazionale . . . . . . . . . . . . . . . . . 23

3.1.1 Vincoli negli schemi relazionali . . . . . . . . . . . . . . . 25

3.2 Lalgebra relazionale . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.2.1 Gli operatori dellalgebra relazionale . . . . . . . . . . . . 26

3.3 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 La progettazione della base di dati 31

4.1 Progettazione concettuale . . . . . . . . . . . . . . . . . . . . . . 31

4.1.1 Completezza e minimalita dello schema . . . . . . . . . . 32

4.1.2 Correttezza dello schema, verifica della normalita . . . . . 34

4.1.3 Esempio di progettazione concettuale . . . . . . . . . . . 35

4.2 Progettazione logica . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2.1 Analisi delle prestazioni . . . . . . . . . . . . . . . . . . . 40

4.2.2 Partizionamento ed accorpamento di entita ed associazioni 41

4.2.3 Eliminazione delle generalizzazioni . . . . . . . . . . . . . 43

4.2.4 Eliminazione degli attributi multivalore . . . . . . . . . . 46

4.2.5 Scelta degli identificatori principali . . . . . . . . . . . . . 46

4.2.6 Lalgoritmo di traduzione dello schema Entita- Associa-zione nello schema relazionale . . . . . . . . . . . . . . . . 47

4.2.7 Esempio di progettazione logica . . . . . . . . . . . . . . . 53

4.3 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

iii

iv INDICE

5 Il linguaggio SQL 61

5.1 Tipi di dato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.2 Il comando CREATE TABLE . . . . . . . . . . . . . . . . . . . . . . 625.3 Il comando SELECT-FROM-WHERE . . . . . . . . . . . . . . . . . . 655.4 Gli operatori insiemistici . . . . . . . . . . . . . . . . . . . . . . . 715.5 I comandi per inserire, modificare e cancellare righe da una tabella 725.6 Viste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745.7 Le operazioni dellapplicazione Cinema . . . . . . . . . . . . . . . 745.8 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6 Organizzazione fisica dei dati 81

6.1 Gerarchie di memoria . . . . . . . . . . . . . . . . . . . . . . . . 816.2 File e record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846.3 Organizzazione dei record di una tabella . . . . . . . . . . . . . . 856.4 File heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856.5 File ordinati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856.6 File hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876.7 Indici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896.8 B+-Alberi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916.9 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

7 Gestione della concorrenza 99

7.1 Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027.2 Tecniche di locking per il controllo della concorrenza . . . . . . . 103

7.2.1 Lock binario . . . . . . . . . . . . . . . . . . . . . . . . . 1037.2.2 Lock a tre valori . . . . . . . . . . . . . . . . . . . . . . . 1087.2.3 Read-only, write-only . . . . . . . . . . . . . . . . . . . . 111

7.3 Deadlock e livelock . . . . . . . . . . . . . . . . . . . . . . . . . . 1157.4 Protocollo di locking a due fasi stretto . . . . . . . . . . . . . . . 1167.5 Controllo della concorrenza basato sui timestamp . . . . . . . . . 119

Studia prima la scienza, e poi seguita la pratica, nata da essascienza. Quelli che sinnamoran di pratica senza scienza son

come l nocchier chentra in naviglio senza timone obussola, che mai ha certezza dove si vada

LEONARDO

v

vi Basi di Dati - II Modulo

Capitolo 1

Basi di dati e sistemi

informativi

Linformatica individuale ha trasformato il computer in un elettrodomestico diuso comune. Il Personal Computer (PC) e un oggetto familiare e universalmenteconosciuto. Le applicazioni come internet, posta elettronica, social networksfanno parte dellesperienza di ognuno.

Meno nota invece, ma di grande impatto ed importanza e un altro tipodi informatica. Quella che chiameremo informatica industriale, linformaticadelle grandi aziende come banche, industrie manifatturiere o di servizi o delleorganizzazioni sociali, come scuole, ospedali, centri di ricerca o enti governativi.

Queste organizzazioni hanno bisogno, per poter funzionare in modo correttoed efficiente, di immagazzinare ed elaborare grandi quantita di informazioni. Unclassico esempio e quello di una banca. In tale contesto occorre mantenere inmodo affidabile e corretto le informazioni relative ai depositi dei clienti. Inoltreoccorre mantenere aggiornate tali informazioni ogniqualvolta vengono effettuatimovimenti, in entrata o in uscita, dai depositi della banca. Un altro esempio loabbiamo nella gestione degli stipendi di una grande multinazionale. In questocaso, lazienda deve mantenere le informazioni di migliaia o centinaia di mi-gliaia di dipendenti e per poter elaborare ogni mese le buste paga, deve gestireuna quantita molto grande di dati, che varia rapidamente nel tempo: occorrecontabilizzare le ore effettivamente prestate, le ferie, le eventuali malattie e leore di straordinario effettuato di ciascun dipendente; occorre tenere conto dellafiscalita, delle detrazioni in funzione del reddito percepito e cos via.

In generale le realta industriali e le grandi organizzazioni, per poter svol-gere correttamente le loro attivia, dalla vendita di prodotti e servizi, al sup-porto dei processi interni, dallamministrazione della contabilita allelaborazio-ne delle buste paga, hanno bisogno di manipolare e gestire grandi quantita diinformazioni.

Allinterno di queste organizzazioni sono quindi presenti sistemi e procedureche hanno come obiettivo centrale quello di gestire e conservare tali informazionivitali per il funzionamento corretto ed efficiente dellorganizzazione stessa.

Con lavvento delle tecnologie e delle scienze informatiche e stato possibilegestire, memorizzare e disseminare tali informazioni in modo sempre piu effi-

1

CAPITOLO 1. BASI DI DATI E SISTEMI INFORMATIVI

ciente ed economico. Il complesso di sistemi hardware e software dedicati allagestione ed alla memorizzazione dei dati viene detto sistema informativo.

Oggi non esiste azienda od organizzazione che non possegga al proprio in-terno uno o piu (in alcuni casi centinaia o migliaia) sistemi informativi. Si puodire che se linformatica individuale e costituita essenzialmente dal PC, alloralinformatica industriale e costituita dai sistemi informativi.

Sebbene i sistemi informativi siano composti da diversi apparati hardware esoftware come server, reti di interconnessione, sistemi di sicurezza e controllo,apparecchiature per la memorizzazione dei dati, sistemi operativi e procedureapplicative, come gia detto sopra il loro scopo ed obiettivo principale e quellodi gestire ed immagazzinare informazioni.

La base di dati, ovvero linsieme delle informazioni gestite ed immagazzinaterappresenta il cuore e lelemento centrale del sistema informativo.

Nel corso di Basi di Dati - II Modulo vogliamo studiare i principi e le tecnichedi progettazione e di implementazione di una base di dati. Non ci occuperemodi tutti gli altri elementi che compongono un sistema informativo industriale,dal server fisico, al sistema operativo, dai linguaggi di programmazione allar-chitettura di rete e via dicendo, visto che la base di dati e quellelemento semprepresente e centrale allinterno di qualunque sistema informativo.

Introdurremo una metodologia di progettazione e modelli per le basi di dati,proposti, in ambito accademico e scientifico, agli inizi degli anni 70 che hannodato prova, nella pratica, di robustezza, efficacia e facilita di uso. Tali meto-dologie e modelli sono ormai universalmente adottati, nella pratica industriale,per la progettazione ed implementazione delle basi di dati.

Il problema che si pone nella fase di progettazione ed implementazione disistema informativo e di conseguenza di una base di dati, e quello di progettareil sistema in modo corretto ed efficiente.

Il requisito di correttezza implica che la base di dati contenga sempre soloe soltanto quelle le informazioni che effettivamente rappresentano la realta diinteresse. Ad esempio nel caso di una banca saremo interessati a fare s che i datirelativi ai depositi siano corrispondenti alleffettivo deposito in denaro presentesui conti correnti e che le transazioni che