Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs S.p.A. R&D Department
laboratorio di basi di dati codice/ssd: crediti: erogazione: F1I072 - INF/01 12 CFU (b) integrato al corso di teoria 1 semestre durata: dal 19/10/2009 al 22/12/2009 dal 04/01/2010 al 05/02/2010 titolare: Pierluigi Pierini email: Pierluigi.Pierini@technolabs.it tel: 0862 344 783
orari del corso lunedì: 14:30-16:30 c/o Aula 2.4 Mercoledi: 11:30-13:30 + 16:30-18:30 c/o Aula 2.4 venerdì: 14:30-16:30 c/o Aula 2.4 ricevimento studenti Dopo le lezioni Su appuntamento in Technolabs Informazioni: www.di.univaq.it/pierluigi.pierini
libro di testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati: Modelli e linguaggi di interrogazione (McGraw-Hill) Paolo Atzeni è professore ordinario di Basi di dati presso la facoltà di Ingegneria dell Università Roma Tre. Stefano Ceri è professore ordinario di Basi di dati presso la facoltà di Ingegneria dell Informazione del Politecnico di Milano. Stefano Paraboschi è professore ordinario presso la facoltà di Ingegneria dell Università di Bergamo. Riccardo Torlone è professore straordinario presso la Facoltà di Ingegneria dell Università Roma Tre.
prerequisiti corso di basi di dati (prof.sa S. Costantini) Inglese Conoscenza di linguaggi di programmazione per esercitarsi: un pc + open source piattaforma: linux (o windows o mac) dbms: firebird (o mysql) design: DBDesigner
sillabo del corso analisi dei requisiti e progettazione concettuale delle basi di dati progettazione logica delle basi di dati definizione dei dati in SQL, vincoli di integrità inserimento, cancellazione e modifica dei dati in SQL interrogazioni di base in SQL interrogazioni avanzate in SQL concetti avanzati di SQL
scopo del corso sviluppare competenze applicative nella progettazione e sviluppo di una base di dati tecniche di progettazione problematiche di sviluppo uso dei DBMS e del linguaggio di interrogazione SQL
contenuti del corso progettazione di basi di dati Processo di realizzazione di una base di dati Progettazione concettuale, logica e fisica Raccolta e Analisi dei requisiti progettazione concettuale La progettazione concettuale Strategie di progettazione Qualita' di uno schema concettuale
contenuti del corso diagrammi ER Entita' nei diagrammi ER Attributi nei diagrammi ER Attributi composti e attributi con cardinalita' Chiavi nelle entita' Generalizzazione di entita' Relazioni nei diagrammi ER Entita' deboli Riepilogo sui principali elementi di un diagramma ER Attributi sulle relazioni Cardinalita' delle relazioni Relazioni non binarie Ruoli nelle relazioni Documentazione dei diagrammi ER
contenuti del corso progettazione logica La progettazione logica Il modello relazionale Ristrutturazione dei diagrammi ER: analisi delle ridondanze Ristrutturazione dei diagrammi ER: eliminazione delle gerarchie Ristrutturazione dei diagrammi ER: partizionamento/accorpamento di entità Ristrutturazione dei diagrammi ER: partizionamento/accorpamento di relazioni Ristrutturazione dei diagrammi ER: scelta degli identificatori principali Normalizzazione
contenuti del corso SQL introduzione, tipi di dati Presentazione di SQL: DDL, DML I tipi di dato built-in in SQL La logica a tre valori dell'sql Creazione di domini in SQL Principali operatori per vincoli CHECK (confronto, logici, BETWEEN, IN, LIKE) La parola chiave DEFAULT nei domini Modifica e rimozione di domini SQL database, schemi, tabelle Creazione di tabelle in SQL Le parole chiavi sulle colonne: DEFAULT e UNIQUE Specifica di chiavi nelle tabelle: PRIMARY KEY Vincoli NOT NULL sulle colonne Vincoli di integrita' referenziale: FOREIGN KEY... REFERENCES Vincoli di integrita' referenziale: azioni ON DELETE e ON UPDATE
contenuti del corso SQL - tabelle Vincoli CHECK sulle tabelle Assegnare un nome ai vincoli Modifica e rimozione di tabelle Il costrutto COMPUTED BY in SQL Inserimento di tuple in una tabella UPDATE... SET... WHERE SQL - interrogazioni Interrogazioni di base: SELECT... FROM... WHERE Corrispondenza tra algebra relazionale e clausole SELECT Alias per nomi di colonne Eliminazione dei duplicati: DISTINCT Ordinamento dei risultati di una query: ORDER BY Gli operatori aggregati: COUNT, SUM, AVG, MIN, MAX Partizionamento delle tuple: GROUP BY Uso degli operatori aggregati con la clausola GROUP BY Join tra tabelle: condizioni di join e clausola WHERE Colonne calcolate nella SELECT
contenuti del corso SQL - interrogazioni Join espliciti con l'operatore INNER JOIN Join tra piu' istanze della stessa tabella Join esterni: l'operatore OUTER JOIN Condizioni sui gruppi di tuple: HAVING Subquery e query annidate Uso degli operatori di confronto con le query annidate Uso dei quantificatori ANY e ALL con query annidate Visibilita' degli identificatori nelle query annidate SQL concetti avanzati Le procedure in SQL Creazione di una procedura: CREATE PROCEDURE Parametri di input e output nelle procedure e dichiarazioni di variabili locali Uso di statement SQL nelle procedure Chiamata di una procedura: EXECUTE PROCEDURE Restituzione di insiemi di tuple dalle procedure Introduzione alle basi di dati attive
modalità d esame sviluppo di un progetto realizzazione di una Base di Dati a partire da una specifica documentazione + software gruppi da 1-4 persone presentazione documenti: almeno 2 settimane prima dell appello appello d esame: valutazione della documentazione discussione del progetto
modalità d esame software utilizzabili per attività progettuale: DBDesigner 4 (fabforce) software utilizzabili per attività di sviluppo: Firebird MySQL Interbase Oracle PostgreSQL IBM DB2 MS SQL Server Informix Sybase SQL Anywhere E' possibile utilizzare altro software a disposizione dello studente. Si chiede comunque di informarmi in merito