Sistemi Informativi e Basi di Dat i - dbgroup.unimo.it · Modulo di Basi di Dati ... appunto su...

36
Sistemi Informativi e Basi di Dati 1 Anno Accademico 2011/2012 Sistemi Informativi e Basi di Dati Corso di Laurea in Ingegneria Gestionale Prof. Domenico Beneventano Ing. Andrea Bulgarelli

Transcript of Sistemi Informativi e Basi di Dat i - dbgroup.unimo.it · Modulo di Basi di Dati ... appunto su...

Sistemi Informativi e Basi di Dati 1

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 2

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.

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.

Due Moduli

SISTEMI INFORMATIVI

BASI DI DATI

Sistemi Informativi e Basi di Dati 3

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

4

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

Sistemi Informativi e Basi di Dati 5

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

6

•  6 CFU = 54 ore

•  54 Ore di lezioni ed esercitazioni in aula

Organizzazione delle Lezioni

 Modulo di Sistemi Informativi

Sistemi Informativi e Basi di Dati

 Modulo di Basi di Dati

•  3 CFU = 27ore

•  6 Ore di lezioni in aula

•  21 Ore di esercitazioni in laboratorio

7

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

8

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

9

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

10

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

11

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

12

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

13

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

Anagrafe clienti

Ordini

Fatture

Inserimento Ordini

Registro fatture

La ripetizione dell'indirizzo del cliente consente alle applicazioni Registro fatture e inserimento ordini di operare allo stesso tempo

Emissione fatture

Indirizzo Cliente

Indirizzo Cliente

Indirizzo Cliente

Sistemi Informativi e Basi di Dati

14

DBMS vs File System •  La gestione delle informazioni è centralizzata in una rappresentazione

integrata e non ridondante

Anagrafe clienti

Ordini

Fatture

Inserimento Ordini

Registro fatture

Una granularita' piu' fine consente l'uso condiviso della risorsa indirizzo cliente

DBMS

Emissione fatture

Indirizzo cliente

Sistemi Informativi e Basi di Dati

15

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

16

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

Sistemi Informativi e Basi di Dati 17

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

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)

ESAMI

Sistemi Informativi e Basi di Dati 18

Base di Dati Relazionale •  Una base di dati relazionale è un insieme di tabelle correlate

Matricola NomeCorso Docente Voto

123 Matematica Rossi 28

ESAMI

Matricola Nome Cognome Età

123 Anna Verde 21 STUDENTI

NomeCorso Anno Crediti

Matematica 1 5 CORSI

Sistemi Informativi e Basi di Dati 19

Base di Dati Relazionale •  Una base di dati relazionale è un insieme di tabelle correlate

Matricola NomeCorso Docente Voto

123 Matematica Rossi 28

ESAMI

Matricola Nome Cognome Età

123 Anna Verde 21 STUDENTI

NomeCorso Anno Crediti Docente

Matematica 1 5 Rossi CORSI

20

Informazioni e Vincoli •  In ogni situazione reale le informazioni che si vogliono gestire devono

rispettare certi vincoli

Matricola Cognome

123 Rossi

123 Verde

STUDENTE

•  Esempio: il numero di matricola è unico

Matricola NomeCorso Voto

123 Matematica 28

123 Matematica 26

ESAME

•  Esempio: una stessa matricola non può dare due volte lo stesso esame

Sistemi Informativi e Basi di Dati

21

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

Studente

Esame

(0,N)

Matricola

Cognome

Corso Nome

Docente

Voto (0,N)

•  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

•  Uno studente può sostenere più esami, ma non per lo stesso corso

Schema E/R Informazioni e Vincoli

E/R

Sistemi Informativi e Basi di Dati

22

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

Esame

(0,N)

Matricola

Cognome

Corso Nome

Docente

Voto (0,N)

Schema E/R

Relazionale Matricola Nome Voto ESAME

Matricola Cognome STUDENTE

Nome Docente CORSO

Schema Relazionale

Sistemi Informativi e Basi di Dati

23

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)

Codice SQL Tabella in SQL-SERVER

CREATE TABLE ESAME( MATRICOLA INTEGER NOT NULL, NOME CHAR NOT NULL, VOTO INTEGER , PRIMARY KEY (MATRICOLA,

NOME) )

DBMS (SQL SERVER)

Sistemi Informativi e Basi di Dati

24

Utilizzo del DataBase

•  Le tabelle contengono i dati che possono essere visualizzati, modificati e aggiunti.

Sistemi Informativi e Basi di Dati

25

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”

Sistemi Informativi e Basi di Dati

26

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

27

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

28

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

29

Livelli di astrazione nei DBMS

•  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

•  La "classica" architettura a tre livelli di astrazione in un database.

Vista

Vista

Livello esterno Livello logico Livello fisico

Schema logico

Database su dispositivi fisici

Sistemi Informativi e Basi di Dati

30

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.

•  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.

DBMS

BASE DI DATI

UTENTI

APPLICAZIONI

Sistemi Informativi e Basi di Dati

31

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

32

  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

Sistemi Informativi – Gestione Industriale Programma del Corso

Sistemi Informativi e Basi di Dati

33

  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

Sistemi Informativi e Basi di Dati - Gestionale Programma del corso

 Modulo di Sistemi Informativi

Sistemi Informativi e Basi di Dati

34

  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)

Sistemi Informativi e Basi di Dati - Gestionale Programma del corso

 Modulo di Basi di Dati

Sistemi Informativi e Basi di Dati

35

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

36

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