database - Portale delle Biblioteche

Download Report

Transcript database - Portale delle Biblioteche

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 Attributo 2
Chiave p.
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