Alma Mater Studiorum Università di Bologna Facoltà di Economia – Bologna Corsi di Laurea CLEA, CLED, CLEF, CLEM Prof. Jacopo Di Cocco Idoneità in informatica Sistemi informatici Produrre, raccogliere e fornire le informazioni della propria sede di lavoro (I sistemi informativi e le basi dei dati) Generare, trovare e conservare i dati I DBMS sono strumenti essenziali per: 1. 2. 3. 4. 5. • La definizione e gestione degli archivi informativi automatizzati e formalizzati (data base) la raccolta controllata dei dati (data entry) La reperibilità delle informazioni (query) La generazione di informazioni derivate (elaborazioni) La tutela dei dati (regole d’accesso, modifica ed archiviazione I data base sono al centro dei sistemi di automazione delle aziende e degli enti anche quando il committente vede solo applicativi specifici e personalizzati, acquistati pronti o commissionati ad hoc a software-house Jacopo Di Cocco Data base 2 Gli argomenti che saranno trattati • L’evoluzione dei DB: gerarchici, reticolari, relazionali, ad oggetti, information retrieval • Lo schema teorico dei DB relazionali • Il modello entità – relazioni • Disegno concettuale e lo sviluppo del DB • Realizzazione di un DB con MS-Access Jacopo Di Cocco Data base 3 Funzioni dei Data Base Management System (DBMS) • Condivisione: rendere utilizzabili i dati da più applicazioni ed utenti • Assicurare, con un sistema ad hoc affidabile, la migliore gestione e salvaguardia dei dati • Rendere più agevole la programmazione del DB • Permettere lo scambio delle informazioni strutturate con altri archivi Jacopo Di Cocco Data base 4 L’evoluzione dei Data Base • Gerarchici o ad albero: stile directory concettualmente semplici, veloci, ma rigidi • Reticolari (con percorsi trasversali) più adatti a organizzazioni complesse, ma di disegno difficile, non generalizzabile (reti predefinite) • Relazionali: un modello concettuale generale Lo schema oggi più utilizzato, integrabile con i successivi • Ad oggetti: informazioni + regole di comportamento Uno schema che ha richiesto l’integrazione con il relazionale • Information retrieval: per le ricerche nei testi Prima separati ora sempre più integrati con i relazionali Jacopo Di Cocco Data base 5 Alcune caratteristiche teoriche dei DB relazionali • Tutte le informazioni sono registrati in tabelle bidimensionali trattate come insiemi non ordinati (né per riga né per colonna) • Definizioni ed elaborazioni derivanti dalla matematica (in particolare l’insiemistica) • Chiari vincoli d’integrità e non duplicazione • Un linguaggio specifico standard di programmazione (SQL) integrabile negli altri linguaggi Jacopo Di Cocco Data base 6 Schema di tabella (glossario) Attributo 1 Chiave p. Attributo 2 Chiave s1 Attributo 3 Chiave s2 Attributo 4 Carattere I Attributo 5 Carattere II Attributo 6 Validità Riga = tupla = occorrenza = record = = (entità)= (relazione) Campo a Campo b Campo c Campo d Campo e Campo f Chiave Primaria Identificat1 (Chiave Identificat2 Secondaria) Variabile Chiave esterna Dato Codice Unità statistica Modalità Modalità Tempo, logico, ecc. Identificatore (Nomi/loghi dell’entità) valore valore valore Jacopo Di Cocco Data base Metadato Data, periodo, condizione, … 7 Esempio di tabella (Studenti) Matricola Nome Cognome Corsolaurea Annocorso AnnoIscrizione 102305 Giorgio Rossi CLED 1 2003 101709 Nicola Bianchi CLEA 2 2002 102518 Maria Rossi CLEF 1 2002 100923 Sara Verdi CLEM 3 2001 Jacopo Di Cocco Data base 8 Gli attributi o colonne o campi (segue in altri lucidi) • Attributi: identificatori e caratteri da rilevare o calcolare • Ruolo, natura o tipo degli attributi: – Nature: chiavi o identificatori, dati, metadati (dati sui dati) – Tipi: contatori, numeri, valute, testi, date, logici, note, password, …. • Domini o modalità ammesse nei campi – Teorici o potenziali (valori possibili= valido se) – Effettivi od osservati (valori assunti nel DB) • Testata: riga con gli attributi o colonne d’una tabella • Dizionario dei dati: schede degli attributi nel DB: – Codici, etichette, tipi e specifiche degli attributi – Vincoli di integrità e coerenza tra attributi • Campi: contengono in ogni riga i valori dei singoli attributi Jacopo Di Cocco Data base 9 Le relazioni • 1 a 1, 1 a molti, molti a molti • All’interno della stessa tabella per elaborare le informazioni in essa contenute – – – – 1 a 1 nella stessa riga, record, occorrenza o entità 1 a 1 tra due entità (es. moglie <> marito) 1 a molti (es. madre <> figli) Molti a molti (fratelli<>sorelle, professori<>studenti) • Tra tabelle per creare nuove informazioni • Mostrate con le viste relazionali o tabelle virtuali Jacopo Di Cocco Data base 10 Le operazioni relazionali • Il linguaggio SQL • Select: sceglie le righe coi valori dei campi • Project sceglie le colonne per attributo (effetti sulle righe residue) • Join crea nuove tabelle virtuali incrociando le tabelle esistenti • Le elaborazioni sui campi (contare, sommare, fare statistiche, ecc.) Jacopo Di Cocco Data base 11 Strumenti: interfaccia utente, linguaggi, import-export dati • Le maschere d’immissione dati (form) • Le maschere di ricerca ed elaborazione (query) • I rendiconti periodici o a richiesta (report) • Macro e linguaggi di programmazione • Interfacce web (per operare da siti web) • Gli scambi di dati con altri applicativi Jacopo Di Cocco Data base 12 Il modello entità – relazioni • Le entità: soggetti e oggetti descritti e trattati in tramite le relazioni 1 a 1 tra i caratteri d’una riga • Le relazioni descrivono i legami tra entità tramite campi correlati • Entrambe sono rappresentabili da tabelle • Le entità sono descritte dalle righe di tabelle reali (registrate nel DB) o virtuali (create da query grazie alle relazioni) • Le tabelle implicite delle relazioni generate dai legami definiti, contengono due o più chiavi Jacopo Di Cocco Data base 13 La normalizzazione del DB • Decidere le informazioni da ottenere • Definire delle entità elementari in modo da: – Evitare la duplicazione di dati se non chiavi – Consentire una sola immissione degli stessi dati – Realizzare tabelle elenco dei valori ammissibili da modificarsi dinamicamente (domini non predefiniti) • Ricavare le entità complesse con relazioni e query • Normalizzare ragionevolmente ed operativamente Jacopo Di Cocco Data base 14 Progettazione e sviluppo del sistema informativo aziendale • Ciclo di vita del SIA: fasi, durata prevista, versioni • Le fasi della progettazione e dell’uso – – – – – – – – Pianificazione Analisi Disegno logico Disegno “fisico” Sviluppo o programmazione del prototipo Prove ed identificazione dei malfunzionamenti Realizzazione della versione di produzione Uso in produzione manutenzione ordinaria ed evolutiva Jacopo Di Cocco Data base 15 Fasi del ciclo di vita del SIA Un modello generale Studio di fattibilità Analisi dei requisiti Disegno Interfaccia Utente Dati Entità e Relazioni Disegno dei Processi aziendali Sviluppo e Tests Uso e Manutenzione Jacopo Di Cocco Data base 16 La pianificazione del SIA Lo studio di fattibilità individuerà • Obiettivi e prodotti dell’azienda (business plan) • Il modello organizzativo e gestionale • Le esigenze informative (risultati attesi) • I diagrammi entità-relazioni • Le risorse disponibili Jacopo Di Cocco Data base 17 Rappresentazione schematica delle fasi di pianificazione I passi della pianificazione Passo 1 Definire gli obiettivi aziendali Jacopo Di Cocco Passo 2 Definire i processi aziendali Passo 3 Definire i dati aziendali Data base Passo 4 Definire l'architettura informativa 18 I requisiti e la macro-analisi • Il SIA di partenza e quello desiderato – Interviste per conoscere e formalizzare i processi attuali – Rilevare e formalizzare i bisogni degli utenti: • Operativi (transazionali) • Di supervisione e controllo • Analitici e decisionali • Conoscere e formalizzare in diagrammi: organizzazione e processi aziendali • Individuare i vincoli e i punti di “rischio” • Disegnare i diagrammi di flusso dei dati Jacopo Di Cocco Data base 19 Livelli dell’organizzazione, attività e bisogni informativi Responsabilità, strutture e compiti nella funzione didattica Esigenze informative dei diversi livelli Università Didattica Ricerca Sistema Senato Accademico Funzione Didattica: Livelli di laurea Pianificazione Strategica Facoltà Offerta didattica Lauree attivate per ogni livello Pianificazione Operativa Corso di laurea Contenuti del CDL Discipline e crediti Piani di studio Organizzazione e controllo Commissioni Formazione Programmi Esami Livello operativo Docenti e tutors Studenti Segreterie Attività correnti Lezioni-esercitaz. Studio Iscrizioni, registr. Jacopo Di Cocco < es. attività es.informazioni> Data base Facoltà attivate Iscritti aten/Iscr.It. Materie previste Nomina docenti Studenti/docenti Iscritti-cors./Tot.iscritti Curricula didattici Studenti in corso Calendari e orari Esami Regolarità didattica Medie voti Iscrizioni Registrazioni Carriere Certificati 20 Il disegno logico • Le interfacce utente: – Input utenti, dai documenti ai “valori” del SIA: le maschere – Le query, schermate di risultati, tabulati, stampe (rapporti) • I dati (entità, relazioni e dizionario dei dati): – Modello formale entità-relazione – Specifiche dei singoli dati – Vincoli di coerenza e d’integrità • Disegno dettagliato dei processi interessati – Attività che comportano l’immissione dei dati – Attività gestionali correnti che richiedono l’estrazione di dati – Attività di supervisione e controllo che richiedono aggregazione, riclassificazione ed elaborazione dei dati – Attività direttive che richiedono il calcolo d’indicatori e simulazioni Jacopo Di Cocco Data base 21 Il progetto dettagliato (redatto dalla software-house che sviluppa il prodotto SIA) – Prerequisiti necessari e opzionali accettabili dal cliente – Moduli del programma da realizzare: loro ruolo ed interconnessioni (flussi e vincoli tra i moduli) – Controlli e dispositivi di sicurezza da inserire – Produttività da ottenere (performance) – Tempi del progetto (diagramma di Gantt) – Installazione e collaudo – Costi di sviluppo, installazione, manutenzione (offerta base), eventuali offerte di un servizio di assistenza, dell’HW e SW inclusi nei prerequisiti – Approvazione da parte del cliente Jacopo Di Cocco Data base 22 Il disegno fisico (attività tecniche della software-house) • • • • • • • Specifiche dell’ambiente operativo e di rete Specifiche del SW di base e di sviluppo Scelta dei linguaggi di programmazione Definizione e gestione dei livelli d’autorità Strutture dei programmi ed attività dei moduli Flussi nei e tra i moduli e messaggi d’errore Specifiche delle interfacce tra i moduli e con i programmi esterni (API) • Elenco della documentazione e manuali utente Jacopo Di Cocco Data base 23 Sviluppo: scrivere e controllare il programma del prototipo • • • • • • • Gruppo di sviluppo Quantità di codice da scrivere Strumenti di sviluppo Vincoli temporali Programmazione a test: la prova tecnica di funzionalità Installazione del prototipo dai clienti Jacopo Di Cocco Data base 24 Prove, malfunzionamenti, correzioni • b test: la prova in produzione da parte di un gruppo selezionato d’utenti esperti • Segnalazione, descrizione e classificazione dei malfunzionamenti: – Bloccanti – Non bloccanti • Di facile o difficile correzione – Da correggersi prima del collaudo – Da correggersi durante le manutenzioni e versioni successive • Predisposizione della versione 1.0 ingegnerizzata Jacopo Di Cocco Data base 25 Uso, manutenzioni, nuove versioni • Installazione della versione 1.0 nell’ambiente di produzione • Collaudo • Uso generalizzato • Salvataggio regolare dei dati (back up) • Manutenzioni HW e SW • Progettazione e realizzazione delle nuove versioni Jacopo Di Cocco Data base 26 Un esempio: i bisogni degli utenti • • Un tutor vuole un semplice strumento per seguire le carriere degli studenti delle lauree triennali, affidatigli dal Polo di Rimini Queste le condizioni 1. 2. 3. 4. • Sono della Facoltà di economia, sede di Rimini Sono di più corsi di laurea triennali Frequentano i tre anni di corso o fuori corso (4, 5, …) I fuori corso non hanno nuove materie obbligatorie Suo compito segnalare le difficoltà nel regolare superamento delle discipline obbligatorie Jacopo Di Cocco Data base 27 Esempio: le attività del processo • • • • • • • • • Registrazione degli studenti affidatigli dalla facoltà Registrazioni dei corsi di laurea seguiti dagli studenti Registrazioni dei curricula base (discipline obbligatorie) Registrazione degli esami sostenuti Interrogazioni di una tabella per singolo attributo Interrogazione di più tabelle sulla base di più attributi Statistica delle discipline con debito di prova Tempestività e medie negli esami Rapporto sulla carriera di uno specifico studente Jacopo Di Cocco Data base 28 Esempio: le entità 1. 2. 3. 4. 5. 6. Facoltà Corsi di laurea triennali Materie attivate Docenti delle singole discipline Studenti seguiti Esami sostenuti nelle materie obbligatorie Jacopo Di Cocco Data base 29 Gli attributi dell’entità: Facoltà • • • • • • • Codice identificativo (chiave principale) Logo Denominazione Preside (codice docente) Telefono presidenza E-mail presidenza Data aggiornamento Jacopo Di Cocco Data base 30 Gli attributi dell’entità: Corso di laurea • • • • • • • • Codice identificativo (chiave principale) Logo Denominazione Presidente (codice) Telefono presidenza E-mail presidenza Facoltà di appartenenza (codice) Data di aggiornamento Jacopo Di Cocco Data base 31 Gli attributi dell’entità: Materie • • • • • • • Codice identificativo (chiave principale) Denominazione Corso di laurea (codice) Anno di corso di frequenza (1- 3) Obbligatoria o facoltativa (si/no) Attivata (si/no) Data di aggiornamento Jacopo Di Cocco Data base 32 Gli attributi dell’entità: Docenti • • • • • • • • • • Codice identificativo (chiave principale) Nome Cognome Materia impartita 1 (codice) Materia impartita 2 (codice) Materia impartita 2 (codice) Telefono E-mail Facoltà di incardinamento (codice) Data di aggiornamento Jacopo Di Cocco Data base 33 Gli attributi dell’entità: Studenti • • • • • • • • • Matricola (chiave principale) Nome Cognome Sesso (M,F) Corso di laurea (Codice) Telefono E-mail Anno di corso (1-5) Data di aggiornamento Jacopo Di Cocco Data base 34 Gli attributi dell’entità: Esami • • • • • • • • Identificativo esame (contatore) Materia (codice) Matricola studente (codice) Data Voto (18-30) Lode (si/no) Giudizio (ID, NID, Ritirato, Respinto) PIN docente (password) Jacopo Di Cocco Data base 35 Esempio: le relazioni base • • • • • • • • • Facoltà -< Corsi di laurea (1 a molti) Facoltà - Docente preside (1 a 1) Corso di laurea – Docente presidente (1 a 1) Corso di laurea -< Materia (1 a molti) Corso di laurea -< Studenti (1 a molti) Materie >-< Docente (molti a molti + 1 a molti) Docente -< Esami (1 a molti) Esame -< Materia (1 a molti) Studente -< Esami (1 a molti) Jacopo Di Cocco Data base 36 Esempio: le maschere d’immissione • Registrazione dell’Ateneo: – Facoltà • Registrazioni delle presidenze: – Corsi di laurea – Materie – Docenti • Registrazione delle segreterie e dei docenti – Studenti – Esami Jacopo Di Cocco Data base 37 Esempio: le maschere di ricerca • Su una tabella: – un docente – uno studente • Su più tabelle – nome del preside o del presidente del CDL – docente di una materia Jacopo Di Cocco Data base 38 Esempio: le viste relazionali • • • • • Carriera di uno studente Esami sostenuti da uno studente Carico didattico di un docente Medie per disciplina e per docente Esami in ritardo per disciplina e per docente Jacopo Di Cocco Data base 39 Esempio: l’elaborazione dei dati • • • • • N° iscritti ad un corso di laurea per anno Media dei voti di uno studente N°esami in ritardo / N°esami previsti N° previsto di frequentanti per materia Peso relativo dei diversi corsi di laurea (iscritti al CDL/totale iscritti lauree triennali) Jacopo Di Cocco Data base 40 Esempio: i rapporti testuali • Piano di studi di uno studente • Certificato degli esami sostenuti Jacopo Di Cocco Data base 41