Anno Accademico 2011/2012 Corso di Laurea in Ingegneria Gestionale Prof. Domenico Beneventano Ing. Andrea Bulgarelli 1
SISTEMI INFORMATIVI Due Moduli 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. 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 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 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 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 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/) 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). 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 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 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 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 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 Indirizzo Cliente Indirizzo Cliente Anagrafe clienti Ordini Registro fatture Indirizzo Cliente Fatture La ripetizione dell'indirizzo del cliente consente alle applicazioni Registro fatture e inserimento ordini di operare allo stesso tempo 13
DBMS vs File System La gestione delle informazioni è centralizzata in una rappresentazione integrata e non ridondante Emissione fatture Indirizzo cliente Anagrafe clienti Inserimento Ordini DBMS Ordini Registro fatture Fatture Una granularita' piu' fine consente l'uso condiviso della risorsa indirizzo cliente 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 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 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) 17
Base di Dati Relazionale Una base di dati relazionale è un insieme di tabelle correlate ESAMI Matricola NomeCorso Docente Voto 123 Matematica Rossi 28 STUDENTI Matricola Nome Cognome Età 123 Anna Verde 21 CORSI NomeCorso Anno Crediti Matematica 1 5 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 Matricola Nome Cognome Età 123 Anna Verde 21 CORSI NomeCorso Anno Crediti Docente Matematica 1 5 Rossi 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 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 Studente (0,N) Matricola Cognome Uno studente sostiene un esame per un corso, riportando un voto l esame è un associazione tra studente e corso E/R Esame (0,N) Voto Uno studente può sostenere più esami, ma non per lo stesso corso Corso Nome Docente Informazioni e Vincoli 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 Cognome STUDENTE Matricola Cognome (0,N) Esame ESAME Relazionale Matricola Nome Voto (0,N) Corso Voto Nome Docente CORSO Nome Docente Schema E/R Schema Relazionale 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 23
Utilizzo del DataBase Le tabelle contengono i dati che possono essere visualizzati, modificati e aggiunti. 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 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 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. 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"))!! %>!! 28
Livelli di astrazione nei DBMS La "classica" architettura a tre livelli di astrazione in un database. Vista Vista Schema logico Database su dispositivi fisici Livello esterno Livello logico 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 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 APPLICAZIONI BASE DI DATI 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. 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 31
Sistemi Informativi Gestione Industriale Programma del Corso Progettazione concettuale (lezioni + esercitazioni) 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) 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 SQL- SERVER 32
- Gestionale Programma del corso Modulo di Sistemi Informativi Progettazione concettuale (lezioni + esercitazioni) 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) 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 33
- 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) (variabili, controllo di flusso, trattamento degli errori, print, operatori) Trigger (lezioni + esercitazioni di laboratorio) (creazione, chiamata, parametri, valori di ritorno) Store Procedure (lezioni + esercitazioni di laboratorio) (creazione, tipi di trigger, tabelle inserted/deleted) 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 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 36