Anno Accademico 2011/2012 Sistemi Informativi e Basi di Dati Corso di Laurea in Ingegneria Gestionale Prof. Domenico Beneventano Ing. Andrea Bulgarelli Sistemi Informativi e Basi di Dati 1 Due Moduli SISTEMI INFORMATIVI Un sistema informativo è un componente di una organizzazione il cui scopo è gestire (acquisire, elaborare, memorizzare, produrre, distribuire) le informazioni utili per gli scopi dell’organizzazione stessa. BASI DI DATI La gestione delle informazioni con strumenti informatici avviene normalmente tramite una Base di Dati, una collezione di dati che rappresentano le informazioni di interesse per un’organizzazione. Sistemi Informativi e Basi di Dati 2 Modalità d’esame L’insegnamento è costituito da due “moduli” ma da un unico esame (si registra un unico esame, con un unico voto) L’esame è costituito dalle seguenti prove 1. [Sistemi Informativi] Prova scritta (obbligatoria) 2. [Basi di Dati] Prova pratica di laboratorio (obbligatoria) 3. Prova orale (facoltativa) Nella valutazione finale la Prova scritta avrà un peso di 2/3 e la Prova pratica di 1/3 = (2* voto prova scritta + voto prova pratica)/3 Per superare l’esame occorre superare sia la Prova scritta che la Prova pratica Nessun ordine cronologico tra Prova scritta e Prova pratica: una prova superata resta valida per tutto l’Anno Accademico Prova scritta e Prova di laboratorio in giorni distinti La prova orale si può sostenere in una data da concordare Sistemi Informativi e Basi di Dati 3 Modalità d’esame [SISTEMI INFORMATIVI] Prova scritta, a fine corso (durata=2,5 ore): Progettazione concettuale (13 punti) Progettazione logica (7 punti) Interrogazioni SQL (7 punti) Domanda «teorica» (3 punti) Punto facoltativo (3 punti) [BASI DI DATI] Prova pratica, a fine corso (durata = 1 ora): Store Procedure (15 punti) Trigger (15 punti) Prova orale facoltativa Tratta tutti gli argomenti del corso Influisce sul voto finale al massimo di ± 3 Sistemi Informativi e Basi di Dati 4 Registrazione dell’esame Per superare l’esame occorre superare sia la Prova scritta che la Prova pratica; Nessun ordine cronologico tra Prova scritta e Prova pratica: una prova superata resta valida per tutto l’Anno Accademico È obbligatorio iscriversi ad entrambe le prove tramite esse3! Gli esiti di entrambe le prove verranno pubblicati tramite esse3: non è necessario accettare il voto! È obbligatorio registrare il voto su libretto: Quando entrambe le prove sono state superate, lo studente può accettare il voto complessivo risultante e registrare il voto su libretto Sistemi Informativi e Basi di Dati 5 Organizzazione delle Lezioni Modulo di Sistemi Informativi • 6 CFU = 54 ore • 54 Ore di lezioni ed esercitazioni in aula Modulo di Basi di Dati • 3 CFU = 27ore • 6 Ore di lezioni in aula • 21 Ore di esercitazioni in laboratorio Sistemi Informativi e Basi di Dati 6 Materiale didattico • Libro di testo (copre tutte le lezioni ed esercitazioni in aula e gran parte delle lezioni ed esercitazioni in laboratorio) Progetto di Basi di Dati Relazionali: Lezioni ed Esercizi Autori: Domenico Beneventano, Sonia Bergamaschi, Francesco Guerra, Maurizio Vincini Editore: Pitagora Editrice - Bologna - Edizione 2007 www.dbgroup.unimo.it/librobdati/libro.html • Altri Esercizi (necessita di password, riportata nell’introduzione del libro) • Errata Corrige • Tutto l’altro materiale didattico necessario sarà disponibile sia in forma cartacea (in copisteria) che sul sito web del corso (www.dbgroup.unimo.it/SIRE/) Sistemi Informativi e Basi di Dati 7 Materiale didattico • DBMS Microsoft SQL-SERVER 2000 – È disponibile in laboratorio – Verrà distribuito agli studenti - durante i primi incontri in laboratorio oppure contattando i docenti come macchina virtuale di VIRTUALBOX 1. Installare VIRTUALBOX ultima versione da http://www.virtualbox.org/ 2. Copiare la macchina virtuale sul proprio PC (è di circa 1.4 GB ) 3. Attivare da VIRTUALBOX la macchina virtuale • Uso e scopo di SQL-SERVER 2000 – Per Sistemi Informativi : per provare le query SQL della prova scritta – Per Basi di Dati: per preparare la prova pratica di laboratorio che verrà fatta appunto su SQL-SERVER 2000 (si deve consegnare un DB realizzato con SQL-SERVER 2000). Sistemi Informativi e Basi di Dati 8 Sistemi Informativi • Un sistema informativo è un componente di una organizzazione il cui scopo è gestire (acquisire, elaborare, memorizzare, produrre, distribuire) le informazioni utili per gli scopi dell’organizzazione stessa. • L’informazione è un bene a valore crescente, necessario per pianificare e controllare con efficacia le attività dell’organizzazione, e rappresenta la materia prima che viene trasformata dai sistemi informativi • Possibili approcci ai Sistemi Informativi: – Tecnico: Modelli, strumenti e metodologie per progettare e usare Sistemi Informativi – Comportamentale: influenza dei Sistemi Informativi sulle organizzazioni e gli individui – Economico: Valutazioni di efficacia e convenienza economica Sistemi Informativi e Basi di Dati 9 Sistema Informativo e Sistema Informatico • L’esistenza del Sistema Informativo è in parte indipendente dalla sua automazione tramite strumenti propri della tecnologia dell’informazione • La parte automatizzata di un Sistema Informativo viene chiamata Sistema Informatico Sistema Informativo Sistema Informatico Sistemi Informativi e Basi di Dati 10 Informazioni e Dati • Nei Sistemi Informatici le informazioni vengono rappresentate per mezzo di dati, che hanno bisogno di essere interpretati per fornire informazioni Dati : "Mario Rossi" e 0898932989 Informazioni : Il numero di telefono di Mario Rossi è 0898932989 Sistemi Informativi e Basi di Dati 11 Base di Dati (DataBase) • Una Base di Dati è una collezione di dati utilizzati per rappresentare le informazioni di interesse per un Sistema Informativo. • Un DBMS (Data Base Management System) è un sistema software in grado di gestire collezioni di dati grandi, condivise e persistenti, assicurando la loro affidabilità e privatezza. • Una Base di Dati è una collezione di dati gestita da un DBMS. Sistema Informativo Sistema Informatico DBMS BASE DI DATI Sistemi Informativi e Basi di Dati 12 File System • Un file è una collezione di dati che risiede su un dispositivo di memoria esterna ed è strutturata in accordo ai requisiti di un'applicazione. – Un File System fornisce solo semplici meccanismi di accesso e condivisione Emissione fatture Inserimento Ordini Registro fatture Indirizzo Cliente Anagrafe clienti Indirizzo Cliente Ordini Indirizzo Cliente Fatture La ripetizione dell'indirizzo del cliente consente alle applicazioni Registro fatture e inserimento ordini di operare allo stesso tempo Sistemi Informativi e Basi di Dati 13 DBMS vs File System • La gestione delle informazioni è centralizzata in una rappresentazione integrata e non ridondante Emissione fatture Indirizzo cliente Inserimento Ordini Anagrafe clienti DBMS Ordini Registro fatture Fatture Una granularita' piu' fine consente l'uso condiviso della risorsa indirizzo cliente Sistemi Informativi e Basi di Dati 14 Pecularietà dei DBMS • Gestione di grandi moli di dati persistenti • Gestione della condivisione tra diversi utenti ed applicazioni gestione delle transazioni • Garantisce la affidabilità dei dati, cioè la capacità di ripristino a fronte di malfunzionamenti (resilienza) meccanismi di salvataggio (backup) e ripristino (recovery) • Offre una “visione strutturata” dei dati modello (logico) dei dati • Garantisce la privatezza dei dati meccanismi di autorizzazione Sistemi Informativi e Basi di Dati 15 Modello dei Dati • Un modello dei dati è una collezione di strutture e regole che permettono la rappresentazione della realtà di interesse. – Schema: rappresentazione di una specifica realtà secondo un certo modello (aspetto intensionale) – Istanza: valori (dati) effettivamente memorizzati (aspetto estensionale) • Modelli logici: forniscono una descrizione dei dati direttamente supportata dal DBMS; – (in ordine cronologico): gerarchico, reticolare, relazionale, a oggetti • Modelli concettuali: descrizione dei concetti della realtà indipendente da aspetti realizzativi – Entity-Relationship, a oggetti Sistemi Informativi e Basi di Dati 16 Modello dei Dati Relazionale • È il modello logico più diffuso. I dati sono rappresentati in forma tabellare, cioè usa come unica struttura le relazioni o tabelle ESAMI Matricola NomeCorso Docente Voto 123 Matematica Rossi 28 128 Matematica Rossi 24 123 Inglese Taylor 26 Schema Istanza • Lo schema è sostanzialmente costituito dal nome delle colonne. Lo schema è praticamente invariante rispetto al tempo. • L’istanza è costituita dalle righe • L’istanza varia per l’aggiunta, la modifica e la cancellazione righe (record o tuple) Sistemi Informativi e Basi di Dati 17 Base di Dati Relazionale • Una base di dati relazionale è un insieme di tabelle correlate ESAMI Matricola NomeCorso Docente Voto 123 28 STUDENTI CORSI Matematica Rossi Matricola Nome Cognome Età 123 Anna Verde 21 NomeCorso Anno Crediti Matematica 5 1 Sistemi Informativi e Basi di Dati 18 Base di Dati Relazionale • Una base di dati relazionale è un insieme di tabelle correlate ESAMI Matricola NomeCorso Docente Voto 123 Matematica Rossi 28 STUDENTI CORSI Matricola Nome Cognome Età 123 Anna Verde 21 NomeCorso Anno Crediti Docente Matematica 5 Rossi 1 Sistemi Informativi e Basi di Dati 19 Informazioni e Vincoli • In ogni situazione reale le informazioni che si vogliono gestire devono rispettare certi vincoli • Esempio: il numero di matricola è unico STUDENTE Matricola Cognome 123 Rossi 123 Verde • Esempio: una stessa matricola non può dare due volte lo stesso esame ESAME Matricola NomeCorso Voto 123 Matematica 28 123 Matematica 26 Sistemi Informativi e Basi di Dati 20 Progettazione Concettuale: Entity/Relationships (E/R) • Esigenza di strumenti efficaci, chiari e sintetici per rappresentare i dati di interesse e le loro associazioni in modo concettuale • • • • Uno studente ha la matricola univoca ed un cognome Un corso ha un nome univoco ed un docente Uno studente sostiene un esame per un corso, riportando un voto ⇒ l’esame è un’associazione tra studente e corso Matricola Studente Cognome (0,N) E/R Uno studente può sostenere più esami, ma non per lo stesso corso Informazioni e Vincoli Sistemi Informativi e Basi di Dati Esame Voto (0,N) Corso Nome Docente Schema E/R 21 Progettazione Logico-Relazionale • Partendo da uno schema E/R si definiscono delle semplici regole per ottenere le tabelle di una base di dati relazionale STUDENTE Matricola Studente Matricola Cognome Cognome (0,N) ESAME Relazionale Esame Matricola Nome Voto Voto (0,N) CORSO Corso Nome Nome Docente Docente Schema E/R Schema Relazionale Sistemi Informativi e Basi di Dati 22 Implementazione del DataBase sul DBMS • Le tabelle di una base di dati relazionale vengono realizzate sul DBMS utilizzando il linguaggio standard SQL (Structured Query Language) CREATE TABLE ESAME( MATRICOLA INTEGER NOT NULL, NOME CHAR NOT NULL, VOTO INTEGER , PRIMARY KEY (MATRICOLA, NOME) ) DBMS (SQL SERVER) Codice SQL Tabella in SQL-SERVER Sistemi Informativi e Basi di Dati 23 Utilizzo del DataBase • Le tabelle contengono i dati che possono essere visualizzati, modificati e aggiunti. Sistemi Informativi e Basi di Dati 24 Utilizzo del DataBase • • L’utilità principale di un DBMS sono le query (interrogazioni) sui dati contenuti. Anche per le interrogazioni si utilizza il linguaggio SQL SELECT COGNOME,NOME,VOTO FROM ESAME, STUDENTE WHERE ESAME.MATRICOLA = STUDENTE.MATRICOLA AND NOME = ’BIANCO’ Sistemi Informativi e Basi di Dati esami sostenuti da “Bianco” 25 Utilizzo del DataBase • I dati ottenuti possono essere quindi visualizzati e modificati in un formato personalizzabile con una MASCHERA. • Ad esempio in questa maschera vengono riportati gli studenti che hanno superato l’esame di matematica Sistemi Informativi e Basi di Dati 26 Utilizzo del DataBase • Per stampare i dati si utilizzano i REPORT. • Ad esempio in questo report vengono stampati gli esami superati ordinati per Docente. Sistemi Informativi e Basi di Dati 27 Utilizzo (avanzato) del DataBase • Tramite linguaggi di programmazione che “ospitano” comandi scritti in SQL • Ad esempio questo è un frammento di codice scritto nel linguaggio VBScript per generare una pagina web dinamica con tecnologia ASP (ActiveServerPages) http://ares.ing.unimo.it/beneventano/IscrizioneAppello.asp?! ! !IDCorso=9&IDAppello=1! ! <%! 'Seleziono i dati nel database! OBJECT1.Open(" ...! Data Source= " \beneventano\dati\studenti.mdb")! Set rs = OBJECT1.Execute ! ("SELECT * FROM [qry_ElencoAppelli] ! WHERE [IDCorso] = " & Request.QueryString("IDCorso") ! & " AND [IDAppello] = " & Request.QueryString("IDAppello"))! ! %>! ! Sistemi Informativi e Basi di Dati 28 Livelli di astrazione nei DBMS • La "classica" architettura a tre livelli di astrazione in un database. Vista Vista Schema logico Livello esterno Livello logico Database su dispositivi fisici Livello fisico • A livello logico si descrive la base di dati con il modello logico del DBMS • A livello fisico si descrive il modo in cui i dati sono organizzati e gestiti in memoria di massa (dispositivi fisici): ordinamento, metodi accesso • A livello esterno si descrive una parte (una vista) della base di dati di interesse per un certo utente o applicazione Sistemi Informativi e Basi di Dati 29 Indipendenza dei dati • Gli utenti ed i programmi applicativi che utilizzano una base di dati possono interagire ad un eleveto livello di astrazione, che prescinde dai dettagli implementativi della base di dati. UTENTI DBMS BASE DI DATI APPLICAZIONI • Indipendenza Logica: è possibile interagire con il livello esterno della base di dati in modo indipendente dalla struttura logica dei dati. • Indipendenza Fisica: è possibile interagire con il DBMS in modo indipendente dalla struttura fisica dei dati. Sistemi Informativi e Basi di Dati 30 Linguaggi per Basi di Dati • Linguaggi di definizione dei dati (DDL - Data Definition Language): – per definire schemi logici, esterni e fisici, e autorizzazioni di accesso • Linguaggi di manipolazione dei dati (DML - Data Manipulation Lan.): – per interrogare e aggiornare il contenuto di una base di dati Il Linguaggio SQL (Structured Query Language) = DDL + DML – Linguaggio standard per basi di dati relazionali • Accesso ai dati – Tramite linguaggi testuali interattivi (es. SQL) – Tramite interfacce amichevoli che permettono di sintetizzare le operazioni – Tramite linguaggi di programmazione (es. C) che “ospitano” comandi scritti nel linguaggio per basi di dati Sistemi Informativi e Basi di Dati 31 Sistemi Informativi – Gestione Industriale Programma del Corso Progettazione concettuale • • • • • • Il modello concettuale dei dati Entity-Relationships (E/R) Documentazione di schemi E/R: Regole Aziendali, Dizionario dei Dati Progettazione da requisiti in linguaggio naturale Basi di Dati Relazionali • • (lezioni + esercitazioni) (lezioni + esercitazioni) Il modello Relazionale Elementi di teoria relazionale: Algebra relazionale, Dipendenze funzionali, Normalizzazione La Progettazione logico relazionale Interrogazione di un database tramite il linguaggio SQL Elementi introduttivi ai Sistemi di Gestione delle Basi di Dati Relazionali Attività di laboratorio • Introduzione al sistema di gestione di basi di dati Microsoft SQLSERVER Sistemi Informativi e Basi di Dati 32 Sistemi Informativi e Basi di Dati - Gestionale Programma del corso Modulo di Sistemi Informativi Progettazione concettuale • • • Il modello concettuale dei dati Entity-Relationships (E/R) Documentazione di schemi E/R: Regole Aziendali, Dizionario dei Dati Progettazione da requisiti in linguaggio naturale Basi di Dati Relazionali • • • • • (lezioni + esercitazioni) (lezioni + esercitazioni) Il modello Relazionale Elementi di teoria relazionale: Algebra relazionale, Dipendenze funzionali, Normalizzazione La Progettazione logico relazionale Interrogazione di un database tramite il linguaggio SQL Elementi introduttivi ai Sistemi di Gestione delle Basi di Dati Relazionali Sistemi Informativi e Basi di Dati 33 Sistemi Informativi e Basi di Dati - Gestionale Programma del corso Modulo di Basi di Dati Il sistema di gestione di basi di dati Microsoft SQL-SERVER (laboratorio) Viste (lezioni + esercitazioni di laboratorio) T-SQL (lezioni + esercitazioni di laboratorio) • Trigger • (variabili, controllo di flusso, trattamento degli errori, print, operatori) (lezioni + esercitazioni di laboratorio) (creazione, chiamata, parametri, valori di ritorno) Store Procedure • (lezioni + esercitazioni di laboratorio) (creazione, tipi di trigger, tabelle inserted/deleted) Sistemi Informativi e Basi di Dati 34 Altri Insegnamenti : Sistemi Informativi Avanzati • Questo insegnamento si propone di fornire le nozioni fondamentali riguardanti i sistemi informativi avanzati, con particolare riferimento sia alla progettazione di sistemi informativi per il supporto alle decisioni che alla modellazione integrata degli aspetti strutturali, dinamici e funzionali di un sistema informativo. – Sistemi Informativi di supporto alle decisioni e Sistemi Informativi direzionali • Datawarehouse : un raccoglitore di informazioni che integra e riorganizza i dati provenienti da sorgenti di varia natura e li rende disponibili per analisi e valutazioni finalizzate alla pianificazione e al processo decisionale – Modellazione integrata al progetto dei sistemi informativi – Integrazione e condivisione dell’informazione Sistemi Informativi e Basi di Dati 35 Sistemi Informativi – Vecchio Ordinamento Modalità d’esame Prova scritta, a fine corso (durata = 2,5 ore): Progettazione concettuale (13 punti) Progettazione logica (7 punti) Interrogazioni SQL (7 punti) Domanda «teorica» (3 punti) Punto facoltativo (3 punti) Prova orale facoltativa, dopo lo scritto Tratta tutti gli argomenti del corso Influisce sul voto finale al massimo di ± 3 La data della prova sarà concordata con il docente Sistemi Informativi e Basi di Dati 36