Idoneità in informatica 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: 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
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
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
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
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
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 Metadato Data, periodo, condizione, … Codice Unità statistica Modalità Tempo, logico, ecc. Identificatore (Nomi/loghi dell’entità) valore Jacopo Di Cocco Data base
Esempio di tabella (Studenti) Matricola Nome Cognome Corso-laurea Anno-corso Anno-Iscrizione 102305 Giorgio Rossi CLED 1 2003 101709 Nicola Bianchi CLEA 2 2002 102518 Maria CLEF 100923 Sara Verdi CLEM 3 2001 Jacopo Di Cocco Data base
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
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
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
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
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
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
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
Fasi del ciclo di vita del SIA Jacopo Di Cocco Data base
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
Rappresentazione schematica delle fasi di pianificazione Jacopo Di Cocco Data base
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
Livelli dell’organizzazione, attività e bisogni informativi Jacopo Di Cocco Data base
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, ri-classificazione ed elaborazione dei dati Attività direttive che richiedono il calcolo d’indicatori e simulazioni Jacopo Di Cocco Data base
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
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
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
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
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
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 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
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
Esempio: le entità Facoltà Corsi di laurea triennali Materie attivate Docenti delle singole discipline Studenti seguiti Esami sostenuti nelle materie obbligatorie Jacopo Di Cocco Data base
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
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
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
Gli attributi dell’entità: Docenti Codice identificativo (chiave principale) Nome Cognome Materia impartita 1 (codice) Materia impartita 2 (codice) Telefono E-mail Facoltà di incardinamento (codice) Data di aggiornamento Jacopo Di Cocco Data base
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
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
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
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
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
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
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
Esempio: i rapporti testuali Piano di studi di uno studente Certificato degli esami sostenuti Jacopo Di Cocco Data base