Piano del Corso di Basi di Dati e Sistemi Informativi Corso di laurea: Laurea Triennale in Ingegneria Informatica – D.M. 270/04 Anno accademico: 2013 - 2014 Ambito disciplinare (settore scientifico disciplinare): Sistemi di Elaborazione delle Informazioni (INGINF/05) CFU: 9 Titolo dell’insegnamento: Sistemi informativi - 1° Modulo: Sistemi informativi ARTICOLAZIONE IN TIPOLOGIE DIDATTICHE: 52 ore di lezioni teoriche, 40 ore di esercitazioni CONOSCENZE PRELIMINARI: Fondamenti dell’Informatica OBIETTIVI FORMATIVI: Il corso ha lo scopo precipuo di introdurre ai sistemi informativi su elaboratore per la gestione di dati strutturati basati su DataBase Management Systems (DBMS), fornendo elementi per la modellazione e l’interrogazione di basi di dati. Il modulo del corso introduce al linguaggio SQL, coprendo inoltre gli aspetti teorici e pratici per la memorizzazione di informazioni in basi di dati relazionali. Il corso inoltre introduce ai linguaggi principali del Web e dei sistemi informativi Web-based. Copre gli aspetti teorici e pratici della ricerca di informazioni non strutturate e in ultimo sono illustrati temi emergenti, quali il Semantic Web, fornendo le basi teoriche e applicative per affrontare questi nuovi paradigmi. PROGRAMMA: Progettazione di Basi di dati o Raccolta e analisi dei requisiti o Modello concettuale di una base di dati o Modello Entità-Relazione (E-R) Basi di dati relazionali: modello e linguaggi o Modello logico: il modello relazionale ed i suoi elementi o Ristrutturazione di schemi E-R Analisi delle ridondanze Eliminazione delle generalizzazioni Scelta degli identificatori principali o Traduzione verso il modello relazionale o Vincoli di integrità Algebra e calcolo relazionale La normalizzazione: teoria e metodi o Ridondanze e anomalie o Dipendenze funzionali o Forma normale di Boyce-Codd o Proprietà delle decomposizioni o Terza forma normale Il linguaggio SQL per Relational Data Base Management System (RDBMS) o Data Definition Language (DDL) o Data Manipulation Language (DML) SQL: caratteristiche evolute o Asserzioni o Viste o Trigger e Basi di dati attive Definizione e uso dei trigger in SQL-3 Applicazioni delle basi di dati attive o Controllo dell'accesso o Transazioni Commit e Rollback Proprietà acide delle transazioni Sviluppo di applicazioni per Basi di dati o SQL Embedded: cursori e SQL dinamico o Call Level Interface (CLI) ODBC e le soluzioni proprietarie Microsoft JDBC e architetture di riferimento o Stored Procedures: introduzione a Oracle PL/SQL Organizzazione fisica e gestione delle interrogazioni o Memoria principale, memoria secondaria e gestione del buffer o Strutture primarie per l'organizzazione dei file o Strutture ad albero o Strutture fisiche e indici Gestione delle transazioni o Controllo di affidabilità: organizzazione e scrittura del file di log o Controllo di concorrenza: meccanismi per la gestione dei lock Architetture distribuite o Basi di dati distribuite: architetture e tecnologie o Protocollo di commit a due fasi Architetture per l'analisi dei dati o Architettura di un Data Warehouse o Rappresentazione multidimensionale dei dati o Il processo di Data Mining Introduzione alle reti di calcolatori o Architettura del World Wide Web o Elementi di base del World Wide Web: URI, URL e URN Linguaggi e tecnologie per il Web o Standard di codifica del testo: Unicode o Il linguaggio HTML e le pagine Web o Fogli di stile CSS Markup descrizionale XML (eXstensible Markup Language) o Namespace XML o Validazione di file XML: DTD e XML Schema o Cenni a linguaggi basati su XML Sistemi Informativi distribuiti o Architettura di un sistema informativo distribuito o Introduzione ai middleware: vantaggi e limiti Architetture Service Oriented (SOA) o Il concetto di Web Service o Tecnologie e linguaggi per SOA o Il protocollo SOAP Formato dei messaggi Codifica e regole di elaborazione Tipologie di interazione o Il linguaggio WSDL Struttura dei messaggi Tipi di interazione e Binding Pattern di scambio dei messaggi o Lo standard UDDI Operazioni di un directory service Modello dei dati Il Web Semantico o Fondamenti ed evoluzione del Web o Linguaggi per la creazione del Web Semantico RDF e RDF Schema: Statement e serializzazioni RDF Il linguaggio SPARQL o Dati per il web semantico e Linked Open Data Five Star Rating e licenze d'uso Elementi di Information Retrieval (IR) e Web IR o Processo di IR e rappresentazione formale o Architettura generale e operazioni sui testi o Indicizzazione o Modello booleano e vettoriale o Valutazione di un IRS: precision e recall o Introduzione al Web IR o Algoritmo Page Rank METODI DI INSEGNAMENTO: Lezioni ed esercitazioni in aula supportate da videoproiettore. Esercitazioni di supporto mirate alla progettazione di basi di dati e alla definizione di query in linguaggio SQL. CONOSCENZE E ABILITÀ ATTESE: Gli allievi saranno in grado di utilizzare e gestire elementi organizzativi, applicativi e tecnologici di un sistema informativo. Saranno inoltre in grado di modellare ed interrogare una base di dati sfruttando il linguaggio SQL. TESTI DI RIFERIMENTO PRINCIPALI: Materiale didattico fornito dal docente ULTERIORI TESTI SUGGERITI: P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone. Basi di dati - Modelli e linguaggi di interrogazione 4/ed, Mcgraw-Hill, 2013 (ISBN: 9788838668005) T. Di Noia, R. De Virgilio, E. Di Sciascio, F. M. Donini, Semantic Web - Tra ontologie e Open Data, Apogeo, 2013. Il docente del corso Prof. Eugenio Di Sciascio