432/00 A.A. 2000/01 UNIVERSITA' DEGLI STUDI DI TRIESTE _____________________________________________________________________ CORSO DI DIPLOMA PROGRAMMA DEL CORSO DI DOCENTE INGEGNERIA BASI DI DATI Prof. Maurizio Fermeglia BASI DI DATI (DU) - anno 2000 - 2001 (I semestre) prof. Maurizio Fermeglia Introduzione e generalità (10 ore) Presentazione del corso. Importanza delle basi dati e dei loro servizi di gestione nel mondo dell’informatica. I sistemi di gestione di basi di dati: sviluppi storici e prospettive future. Breve panoramica sui sistemi operativi e sugli strumenti di sviluppo disponibili a seconda della piattaforma hw-sw. Il concetto di downsizing. Il sistema informativo visto dalla parte di uno sviluppatore di data base: l’importanza delle reti di elaboratori. Le architetture di rete: il time sharing, il resource sharing ed il client -server. Vantaggi e svantaggi del client-server. Il Middleware e le architetture di rete a multi componenti. DNA e .NET. Il concetto di motore SQL e di linguaggio SQL. Architetture di rete pari a pari ed architetture di rete a server dedicato. Ruolo del sistema operativo nelle diverse architetture. I Sistemi operativi Microsoft Windows (8 ore) Ruolo del sistema operativo nelle diverse architetture. Sistemi operativi multiuser, multitasking e multithreading. Differenza tra il concetto di multitasking cooperativo e preempitivo. I sistemi operativi MS-Windows: introduzione, panoramica e concetti generali applicabili a tutti i sistemi della famiglia Windows. Sistemi di comunicazione tra applicazioni: OLE, COM - DCOM ed Active X COM+. L’architettura WOSA ed il concetto di driver ODBC, estensione ad OLE-db. Standard di programmazione in ambiente Windows. Il sistema operativo Windows NT: architettura di sistema: hal, kernel, user. L’architettura dell’I/O. Le dll fondamentali (win32 e win32s). Servizi ed applicazioni. Threads e code di messaggi. Descrizione della shell di Windows NT versione 2000. Attivazione di servizi. Monitoraggio del server. Il file system di Windows NT, di Windows 9x e del MS-DOS: differenze e particolarità. Installazione di Windows NT, ruolo dei server in Windows NT, concetto di dominio e di security agent. Gestione della sicurezza. Assegnazione della security in NTFS ed in FAT. Architettura di rete di Windows NT. Servizi di rete di Windows NT. Struttura di data base, relazioni e SQL (20 ore) Struttura di un data base: dati, hw e sw, utenti di data base. Descrizione di un sistema di gestione di data base (data base management system - DBMS). Benefici nell’uso di un data base. Indipendenza dei dati. Architetture di data base: data base basati su sistemi di files, data base gerarchici, data base reticolari, data base relazionali. Struttura dei Data Base Relazionali. Le regole di Codd per la definizione formale di un data base relazionale. Chiavi primarie. Relazioni. Chiavi esterne (foreing). Relazioni padre/figlio. Valori NULL. Intergità referenziale. Cenni sull’algebra relazionale. Il ruolo del linguaggio SQL, caratteristiche e benefici. Storia del linguaggio SQL. Panoramica sui principali produttori di motori SQL per varie piattaforme. Il linguaggio SQL ANSI 1.0 e le sue estensioni. Le basi (variabili, costanti, funzioni, convenzioni, differenze tre i motori, classi di comandi). Il concetto di Query ed il comando Select. Descrizione introduttiva del programma MS Access 97. Descrizione del front end per MS-SQL server 6.5 e dei tool di sviluppo Visual Interdev. Il comando Select: query monotabelle (campi calcolati, criteri di selezione, valori null, Union Query, ordinamento..). Il comando SQL Select: esempi sotto Access e SQL server. Il comando Select: query multitabelle. Il comando SQL Select: esempi sotto Access e SQL server. Il comando Select: il concetto di query di sommario. Esempi vari in ambiente MS-Access e SQL Server. Il comando Select: il concetto di sotto query. Modifica di data base: il comando Insert: caso di modifica di una singola riga e di utilizzo di una sottoquery. Comando SQL Insert, delete ed update. SQL ed integrità. Viste. Controllo degli accessi. Utlizzo di SQL in via programmatica: programmazione in ambiente Access ed in ambiente Visual Basic. La tecnica di programmazione ‘embedded’ statica e dinamica.Descrizione dei driver ODBC in ambiente Windows. Descrizione delle chiamate principali alle API ODBC. Utilizzo del motore SQL da linguaggi di programmazione via DAO, ODBC, RDO, ADO, COM. Progetto di Data Base (6 ore) Ciclo di vita dei sistemi informativi. Metodologie di progettazione. Entità e relazioni. Strategie di progetto delle basi di dati. Relazioni uno a uno, uno a molti e molti a molti. Normalizzazione. Le regole fondamentali per lo sviluppo di un data base e per la sua implementazione in ambiente client server. Metodi di progettazione di Data base: struttura delle tabelle e delle query. Alcuni esempi tipici. Data Base relazionali: tecnologia ed architettura distribuita (6 ore) Tecniche di accesso ai dati: Metodi di accesso ai dati basati sulle tecniche di programmazione object oriented: OLE DB ed ADO. Data base attivi: trigger e business rules, stores procedures. Struttura di SQL server. Tabelle di SQL server. Struttura di client SQL e concetti di programmazione sotto SQL. Consistenza dei motori SQL: caso monoutenza. Concetto di transazione: Commit e Rollback. Transaction log. La transazione nel caso multiutenza. Tecniche di Locking. Data base distribuiti: il 2 phase committ. OLTP ed OLAP. Replicazione di dataq bse. Datawarehouse e data mining. Esercitazioni e descrizione di prodotti commerciali Windows 98 e l’ambiente di rete. Windows NT 4.0 e 20000. Protocolli di comunicazione. Driver ODBC. Descrizione di MS Access 2000 e di MS Query. Descrizione del motore MS SQL Server 7.0. MS Visual Interdev e MS Visual Basic. Prof. Maurizio fermeglia