Basi di Dati I

Insegnamento di Basi di Dati I

Laurea in Informatica -- Università di Padova

Anno Accademico 2004/05

Prof. Fabrizio Sebastiani



Obiettivi del corso

L'obiettivo del corso è quello di introdurre lo studente alle tecniche di progettazione di basi di dati, discutendone le varie fasi quali l'analisi dei requisiti, la progettazione concettuale della base di dati, la trasformazione del progetto concettuale in un progetto logico, e l'implementazione delle funzionalità necessarie mediante un linguaggio di definizione e manipolazione dei dati che a questo progetto logico faccia riferimento. Il corso dà luogo al conseguimento di 6 CFU.

Programma di massima del corso (48 ore)

  1. Introduzione (4 ore)
    1. Basi di dati e sistemi di gestione di basi di dati
    2. Architettura di un sistema di gestione di basi di dati
    3. La progettazione di una base di dati
  2. La progettazione concettuale di una base di dati (12 ore)
    1. Il modello entità-associazione (ER)
    2. Il modello entità-associazione esteso (EER)
    3. Progettazione concettuale di basi di dati mediante modello EER
  3. La progettazione logica di una base di dati (16 ore)
    1. Il modello relazionale
    2. L'algebra relazionale
    3. Progettazione logica di basi di dati mediante traduzione di schemi EER in schemi relazionali
    4. La normalizzazione di schemi relazionali
  4. Il linguaggio SQL-99 (16 ore)
    1. Il data definition language di SQL
    2. Il data manipulation language di SQL
    3. Embedded SQL

Orario del corso

Il corso fa parte del I anno del Corso di Laurea in Informatica, Università di Padova, ed è collocato nel III trimestre dell'Anno Accademico 2004/05, con inizio il 19.04.2004 e termine il 17.06.2004, con il seguente orario:
 
Giorno
Orario
Aula
Lezione
Martedì
11.15 -- 13.00
LUM250
Lezione
Mercoledì
11.15 -- 13.00
LUM250
Lezione
Giovedì
11.15 -- 13.00
LUM250
Laboratorio, Gruppo I
Martedì
14.00 -- 15.40
Aula C
Laboratorio, Gruppo II
Martedì
15.50 -- 17.20
Aula C

Orario di ricevimento

Chi avesse intenzione di usufruire dell'orario di ricevimento è cortesemente invitato ad avvertirmi in precedenza.
 
Giorno
Orario
Aula
Giovedì
16.00 -- 17.00
Studio 116, I piano Plesso Paolotti

Accertamenti di profitto

L'esame consiste in una prova scritta, in un progetto, e in una prova orale. Prova scritta e prova orale possono essere sostenute in appelli differenti. La partecipazione a una prova scritta dà luogo all'annullamento di eventuali voti conseguiti in precedenti prove scritte.

Per poter sostenere una determinata prova scritta è necessario essersi registrati mediante la lista di prenotazione appositamente costituita.

Per poter sostenere la prova orale è necessario aver superato con esito sufficiente la prova scritta (nel medesimo appello o in un appello precedente), aver consegnato al docente il progetto con almeno 7 giorni di anticipo rispetto alla data della prova orale, ed essersi registrati mediante la lista di prenotazione appositamente costituita. Si noti che le liste di prenotazione dello scritto e dell'orale sono indipendenti. Il progetto consegnato rimane valido per gli appelli successivi, anche in caso di mancato superamento di una prova scritta e\o di una prova orale.

Chi si fosse registrato a una lista di prenotazione e decidesse invece di non presentarsi è pregato di cancellarsi dalla lista o, in caso la lista fosse già scaduta, di darne tempestiva comunicazione al docente.

 
Appello
Tipo
Giorno
Orario
Aule
Risultati
I
Scritto
Lunedì 20 giugno 2005
15.00 -- 16.30
LUM250, LUF1, LUF2
Disponibili
I
Orale
Mercoledì 22 giugno 2005
15.00 -- 19.00
P100
----------
II
Scritto
Lunedì 4 luglio 2005
15.00 -- 16.30
LUM250, LUF1, LUF2
Disponibili
II
Orale
Martedì 5 luglio 2005
15.00 -- 19.00
P50
----------
III
Scritto
Lunedì 29 agosto 2005
15.00 -- 16.30
LUM250, LUF1, LUF2
Disponibili
III
Orale
Mercoledì 31 agosto 2005
9.00 -- 19.00
P100
----------
IV
Scritto
Lunedì 19 settembre 2005
15.00 -- 16.30
LUM250, LUF1, LUF2
Disponibili
IV
Orale
Mercoledì 21 settembre 2005
9.00 -- 19.00
P100
----------


Il Progetto

Il lavoro consiste nella progettazione e nello sviluppo di una base di dati per un'organizzazione a scelta dello studente, che potrà quindi applicare le proprie conoscenze alla soluzione di un caso reale di interesse applicativo proprio o di propri familiari, amici, etc. Esempi possono essere una base di dati per automatizazre le esigenze informative del negozio gestito dalla famiglia dello studente, della squadra sportiva che lo studente allena, del circolo culturale di cui lo studente è membro, etc. Il livello di complessità deve essere almeno quello della base di dati AZIENDA discussa a lezione.

Il progetto può essere svolto singolarmente o a coppie.

Il lavoro deve obbligatoriamente comprendere:

  1. Una descrizione testuale dei requisiti, come risultanti da una ipotetica analisi dei requisiti.
  2. La progettazione dello schema concettuale della base di dati nel modelo EER (usando per i vincoli di partecipazione la notazione di Figura 3.15 anziché quella di Figura 3.2).
  3. La progettazione dello schema logico della base di dati.
  4. L'implementazione dello schema logico nel DDL del linguaggio SQL.
  5. La realizzazione di alcune interrogazioni significative nel DML del linguaggio SQL; per ciascuna di queste interrogazioni va data una descrizione testuale di cosa l'interrogazione si propone di fare.
Come implementazione di SQL andrà utilizzato il sistema MySQL.

Lo studente dovrà consegnare al docente una relazione (in forma cartacea) del lavoro svolto in cui siano evidenziati i risultati delle tre fasi sopra descritte, nonché la metodologia seguita. La consegna può essere fatta lasciando la relazione nella casella di posta del docente, al primo piano dell'edificio (in prossimità dell'ufficio Rossi-Sperduti).

Il lavoro dovrà essere consegnato anche in forrma elettronica eseguendo il comando

consegna progetto_basidati1
da una directory dove sono contenuti solo i files da consegnare. I file che contengono gli script SQL per la creazione del database e le query devono essere perfettamente funzionanti, cioè fatti in modo da poter essere provati usando il client mysql da riga di comando. Inoltre devono avere estensione .sql

Il progetto concorrerà alla determinazione del voto finale con cui lo studente avrà superato l'esame. Elementi che verranno presi in considerazione ai fini di tale valutazione saranno la correttezza dei risultati, la complessità del problema affrontato, l'appropriatezza della metodologia seguita, la chiarezza espositiva della relazione, e se il progetto è stato relizzato da solo o in coppia.

Un esempio di progetto, indicativo per struttura e complessità, può essere scaricato cliccando qui.


Riferimenti bibliografici

Il libro adottato è

Ramez Elmasri e Shamkant Navathe. Sistemi di basi di dati. Fondamenti. 4a Edizione. Pearson/Addison Wesley, 2004.

Utile per la consultazione può essere anche il libro

Luke Welling e Laura Thomson. MySQL Tutorial. Pearson/Addison Wesley, 2004.


La seguente tabella indica in dettaglio le parti del testo Elmasri/Navathe coperte dal corso


Legenda: Letture obbligatorie
  Letture consigliate
  Letture da saltare


Cap                
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
2 2.1 2.2 2.3 2.4 2.5 2.6    
3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8
4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8
5 5.1 5.2 5.3          
6 6.1 6.2 6.3 6.4 6.5 6.6 6.7  
7 7.1 7.2            
8 8.1 8.2 8.3 8.4 8.5 8.6 8.7  
9 9.1 9.2 9.3 9.4 9.5 9.6    
10 10.1 10.2 10.3 10.4 10.5      
11 11.1 11.2 11.3 11.4 11.5 11.6    
12 12.1 12.2 12.3 12.4 12.5      

Il seguente calendario delle lezioni contiene le copie dei lucidi utilizzati durante le lezioni.

Data Tema della lezione Lucidi
1 19 aprile 2005 Introduzione: sistemi informativi, sistemi informatici, e basi di dati Disponibili
2 20 aprile 2005 Sistemi di gestione di basi di dati [Vedi lucidi precedenti]
3 21 aprile 2005 Modelli dei dati Disponibili
4 26 aprile 2005 Progettazione di una base di dati Disponibili
5 27 aprile 2005 Il modello (E)ER: entità, attributi, associazioni [Vedi lucidi precedenti]
6 28 aprile 2005 [Esercizi di progettazione concettuale di DB mediante modello (E)ER] [Vedi lucidi precedenti]
7 3 maggio 2005 Il modello EER: sottoclassi, specializzazioni, categorie Disponibili
8 4 maggio 2005 Schemi e sottoschemi nella progettazione concettuale Disponibili
9 5 maggio 2005 Il modello relazionale: concetti introduttivi Disponibili
10 10 maggio 2005 Il modello relazionale: aspetti formali e vincoli di integrità [Vedi lucidi precedenti]
11 11 maggio 2005 Mapping da schemi EER a schemi relazionali Disponibili
12 12 maggio 2005 Operazioni di modifica e consultazione Disponibili
13 17 maggio 2005 AR: operazioni di base [Vedi lucidi precedenti]
14 18 maggio 2005 AR: operazioni di giunzione [Vedi lucidi precedenti]
15 19 maggio 2005 Il calcolo relazionale delle tuple Disponibili
16 24 maggio 2005 SQL: caratteristiche generali Disponibili
17 25 maggio 2005 SQL: il DDL [Vedi lucidi precedenti]
18 26 maggio 2005 SQL: comandi di aggiornamento; SELECT di base [Vedi lucidi precedenti]
Lab1 31 maggio 2005 Introduzione a MySQL e MySQLCC ----------
19 1 giugno 2005 SQL: SELECT avanzate Disponibili
Lab2 7 giugno 2005 Uso del DDL di MySQL ----------
20 8 giugno 2005 Il VDL di SQL [Vedi lucidi precedenti]
Lab3 9 giugno 2005 Uso del DML di MySQL ----------
Lab4 15 giugno 2005 Esercitazioni con uso di MySQL ----------