Corso di Basi di Dati
(Statistica per le Analisi Demografiche e Sociali, Statistica per la Gestione Aziendale)
Docente: Paolo Franciosa
anno accademico 2001-2002
Per commenti o ulteriori informazioni contattare il docente a .
Contenuti
Gli obiettivi del corso sono:
- presentare le caratteristiche fondamentali di un sistema per la gestione di basi di dati (DBMS), con particolare riferimento ai DBMS relazionali,
- mostrare le funzionalità offerte dal linguaggio SQL,
- illustrare le metodologie di progettazione di una base di dati.
È utile, anche se non costituisce un prerequisito essenziale,
la conoscenza degli argomenti trattati nei corsi di Fondamenti di Informatica.
Programma
Generalità su sistemi informatici e sistemi informativi
Introduzione alle basi di dati; modelli dei dati, generalità sui DBMS.
Il modello relazionale dei dati: relazioni, attributi, istanze di relazione, tuple. Vincoli di integrità, concetto di chiave.
Linguaggi formali per relazioni. Algebra relazionale: operatori fondamentali.
Il linguaggio SQL. Il linguaggio di definizione dei dati: definizione di tabelle, domini, indici. Specifica di semplici vincoli di integrità. Il linguaggio di interrogazione: operatori di join-selezione-proiezione, operatori aggregati, operatore di raggruppamento. Interrogazioni nidificate e correlate, operatori insiemistici. Il linguaggio di manipolazione dei dati: inserimento, eliminazione e modifica di tuple. Definizione di viste, vincoli di integrità generici. Controllo dell'accesso ad una base di dati.
La progettazione di una base di dati: ciclo di vita di un sistema informatico.
Progettazione concettuale: il modello Entità-Relazione. Metodologie di progettazione concettuale: top-down, bottom-up, inside-out, mista. Esempi di progettazione concettuale.
Progettazione logica: ristrutturazione di schemi E-R, analisi di modelli di carico. Traduzione di schemi E-R in schemi relazionali.
Teoria della progettazione concettuale. Dipendenze funzionali, concetto di normalizzazione.
Laboratorio: uso di un DBMS commerciale.
Modalità d'esame
Per superare l'esame lo studente dovrà:
- aver superato una prova scritta o la prova d'esonero sul linguaggio SQL;
- aver sviluppato una tesina consistente nella progettazione di una base di dati,
su argomento a scelta dello studente.
La tesina può essere sviluppata in piccoli gruppi (massimo 3 persone),
e illustrerà tutti i passi di progettazione della base di dati:
- una breve specifica dei requisiti, con l'indicazione di un insieme sufficientemente vasto di operazioni e interrogazioni che la base di dati dovrà permettere,
- definizione dello schema concettuale della base di dati (diagramma E-R),
- definizione del modello di carico (tavola dei volumi e delle operazioni)
- ristrutturazione dello schema concettuale,
- traduzione nello schema logico,
- eventuale normalizzazione dello schema logico,
- definizione dello schema della base di dati in SQL,
- realizzazione in SQL delle funzionalità previste nella specifica dei requisiti.
È consigliata l'implementazione della base di dati su un DBMS a scelta dello studente.
L'implementazione è obbligatoria per gli studenti del corso di laurea
in Statistica per la Gestione Aziendale.
L'argomento della tesina deve essere concordato con il docente prima di procedere allo sviluppo.
La tesina deve essere discussa contemporaneamente da tutti gli studenti che hanno partecipato alla realizzazione, anche da coloro che non hanno ancora superato la prova di SQL.
Materiale didattico
Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone,
Basi di dati: Concetti, Linguaggi e Architetture.
Mc-Graw-Hill Italia, 1999 (seconda edizione)
Nel corso saranno trattati gli argomenti contenuti nei capitoli seguenti:
1, 2, 3 (solo 3.1), 4 (4.6: cenni), 5, 6, 7, 8, 9 (solo 9.7), 13, 14.
Data
| 4-3-02 (lezione)
|
---|
Argomenti
|
- Introduzione al corso
- Sistemi informativi - informatici
- Concetto di dato - metadato
- Requisiti di un sistema informatico
- dimensioni
- condivisione
- persistenza
- affidabilità
- privatezza
- efficienza
- Generalità sui DBMS
|
---|
torna all'elenco delle lezioni
Data
| 8 marzo 2002 (lezione)
|
---|
Argomenti
|
- Modalità di interazione con un DBMS
- Modelli dei dati: concettuale, logico, fisico
- Cenni sui modelli gerarchico e reticolare
- Schemi (logici) e istanze
- Il modello relazionale, definizione di relazione, data base.
|
---|
torna all'elenco delle lezioni
Data
| 11 marzo 2002 (lezione)
|
---|
Argomenti
|
- Modello relazionale: concetto di relazione
- Nomi di relazione e di attributo
- Schemi e istanze
- Valori nulli
- Vincoli di integrità
- Concetto di chiave e chiave minimale
- Vincoli di integrità referenziale
- Algebra relazionale: operatori di
unione, intersezione, differenza, selezione, proiezione
- Alcune proprietà degli operatori dell'algebra relazionale
|
---|
torna all'elenco delle lezioni
Data
| 15 marzo 2002 (lezione)
|
---|
Argomenti
|
- Join (naturale, equi-join, theta-join)
- Anticipazione della selezione rispetto al join
- Frammentazione di tabelle e ridondanza, anomalie di inserimento e cancellazione
- Interrogazioni in SQL: select ... from ... where ...
|
---|
torna all'elenco delle lezioni
Data
| 18 marzo 2002 (lezione)
|
---|
Argomenti
|
- Operatori di confronto e logici
- Join interno ed esterno nella clausola from
- Variabili di tupla
- Esempi di interrogazioni SQL
|
---|
torna all'elenco delle lezioni
Data
| 22 marzo 2002 (lezione)
|
---|
Argomenti
|
- Gestione dei valori NULL
- Operatori UNION, INTERSECT, EXCEPT
- Operatori IN, NOT IN, EXISTS, NOT EXISTS
- Ambito di visibilità di variabili di tupla
- Interrogazioni nidificate e correlate
- Esempi di interrogazioni nidificate
- Quantificatore esistenziale e universale in SQL
|
---|
torna all'elenco delle lezioni
Data
| 25 marzo 2002 (lezione)
|
---|
Argomenti
|
- Clausola ORDER BY
- Esempi di interrogazioni correlate
- Operatori quantificati ANY e ALL
- Operatori di aggregazione, limitazioni nel loro uso
- Aggregazioni con raggruppamento
|
---|
torna all'elenco delle lezioni
Data
| 4 aprile 2002 (laboratorio)
|
---|
Argomenti
|
- Introduzione all'uso di MS Access
- Definizione di schemi di database: tabelle
- Tipi di attributo predefiniti
- Vincoli di integrità su domini
- Maschere di input (cenni)
|
---|
torna all'elenco delle lezioni
Data
| 5 aprile 2002 (lezione)
|
---|
Argomenti
|
- Il Data Definition Language di SQL
- Creazione di schemi (tabelle, domini, indici)
- Principali tipi di attributi: carattere, numerici, temporali
- Vincoli di unicità
- Vincoli di integrità referenziale, politiche di reazione alla violazione di vincoli
|
---|
torna all'elenco delle lezioni
Data
| 8 aprile 2002 (lezione)
|
---|
Argomenti
|
- Definizione di viste in SQL
- Concessione di privilegi
- Il ciclo di vita di un sistema informativo
- Metodologie di sviluppo
|
---|
torna all'elenco delle lezioni
Data
| 11 aprile 2002 (laboratorio)
|
---|
Argomenti
|
- Definizione di percorsi di join e di vincoli di integrità referenziale in MS Access ("Relations")
- Definizione di viste (queries) in MS Access in modalità "struttura" ed "SQL"
|
---|
torna all'elenco delle lezioni
Data
| 12 aprile 2002 (lezione)
|
---|
Argomenti
|
- DML di SQL: insert, delete, update
- Progettazione di un data base: glossario, dizionario dei dati
- Progettazione concettuale: diagrammi entity-relationship
- Entità, relazioni, attributi di entità e di relazione, chiavi interne, cardinalità
|
---|
torna all'elenco delle lezioni
Data
| 15 aprile 2002 (lezione)
|
---|
Argomenti
|
- Relazioni con arità maggiore di due, limiti della traduzione in relazioni binarie
- Relazioni riflessive
- Identificatori esterni
- Gerarchie di classificazione
|
---|
torna all'elenco delle lezioni
Data
| 18 aprile 2002 (laboratorio)
|
---|
Argomenti
|
- Definizione di utenti e gruppi in MS Access, concessione e revoca di privilegi
- Importazione ed esportazione di tabelle da e verso file di testo
|
---|
torna all'elenco delle lezioni
Data
| 19 aprile 2002 (lezione)
|
---|
Argomenti
|
- Metodologie di progettazione concettuale: trasformazione di concetti nella metodologia top-down
- Esempi di progettazione concettuale
|
---|
torna all'elenco delle lezioni
Data
| 22 aprile 2002 (lezione)
|
---|
Argomenti
|
- Modello di carico di un data base: tavola dei volumi e tavola delle operazioni
- Ristrutturazione di schemi entity-relationship
- Traduzione verso lo schema logico: entità con identificatori interni, relazioni molti-a-molti, relazioni uno-a-molti
|
---|
torna all'elenco delle lezioni
torna all'elenco delle lezioni
torna all'elenco delle lezioni
torna all'elenco delle lezioni
torna all'elenco delle lezioni
Data
| 6 maggio 2002 (lezione)
|
---|
Argomenti
|
- Introduzione alla normalizzazione
- Dipendenze funzionali
- Assiomi di Armstrong per la derivazione di D.F
- Algoritmo per il calcolo della chiusura di un insieme di attributi
|
---|
torna all'elenco delle lezioni
Data
| 9 maggio 2002 (lezione)
|
---|
Argomenti
|
- Forma normale di Boyce-Codd
- Definizione di decomposizione lossless join
- Verifica di lossless join per decomposizioni in due relazioni
|
---|
torna all'elenco delle lezioni
Data
| 16 maggio 2002 (lezione)
|
---|
Argomenti
|
- Esercitazioni sulla normalizzazione di schemi relazionali
- Decomposizioni senza perdita di dipendenze (cenni)
|
---|
torna all'elenco delle lezioni