I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e rappresentare. Esempio Sistema informativo per la gestione di una Biblioteca. Libri Soci Sistema Informativo della Biblioteca Operazioni 19/10/2014 1
I Sistemi Informativi Automatizzati Definizione Un Sistema Informativo è Automatizzato quando le informazioni sono elaborate per mezzo di un calcolatore elettronico (Computer), la gestione dei dati avviene mediante l utilizzo di software e la memorizzazione degli stessi è supportata dalle memorie di massa. In generale, un Sistema Informativo Automatizzato è costituito da: File di dati: contengono tutte le informazioni che descrivono le entità utili per rappresentare i dati della realtà considerata. Programmi (Software): consentono di interpretare e gestire le informazioni in ingresso, fornendo i dati elaborati agli utenti del Sistema informativo Automatizzato. Calcolatore elettronico: effettua le elaborazioni richieste dai programmi. Le fasi di Progettazione di un Sistema Informativo Automatizzato Progettazione Concettuale Progettazione Logica Progettazione Fisica 19/10/2014 2
Specifiche sui Dati Interviste e Analisi Specifiche sulle operazioni Progettazione Concettuale Schema Concettuale Progettazione Logica Schema Logico Progettazione Fisica Schema Fisico Le Specifiche sui Dati descrivono le caratteristiche principali delle informazioni che saranno organizzate e registrate in un sistema informativo automatizzato. Le Specifiche sulle Operazioni descrivono quali operazioni la futura utenza dell organizzazione considerata opererà. Modello Entity-Relationship (Modello E/R) lo schema concettuale viene rappresentato graficamente in un diagramma che indica le entità, gli attributi e le associazioni. La fase di progettazione logica trasforma lo schema concettuale nello schema logico (operazione detta di Mapping) contenente la descrizione logica delle strutture dati (tabelle, tracciati record, chiavi) in cui saranno registrate le informazioni del Sistema Informativo Automatizzato. Nella fase di progettazione fisica si implementa fisicamente cioè in memoria di massa lo schema logico della fase precedente. Il risultato sono i file di dati (tabelle) in cui saranno fisicamente registrate le informazioni. 19/10/2014 3
I Database e i DBMS Definizione di Database Un Database (Base di Dati) è una raccolta di dati logicamente organizzati attraverso tecniche di modellazione e gestiti da un particolare software chiamato DataBase Management System(DBMS), con lo scopo di eliminare ridondante inutili, rendere i dati indipendenti dai programmi che li elaborano e gestire la sicurezza negli accessi alla base di dati. Memoria di Massa Dati Dati Dati Dati Database DBMS 19/10/2014 4
Definizione di DBMS (DataBase Management System) Il DBMS è il software che gestisce la base di dati offrendo agli utenti della stessa un interfaccia che consenta la creazione e la manipolazione dei dati memorizzati nel database. Definizione di SQL (Structured Query Language) SQL è il linguaggio speciale che costituisce lo standard per la programmazione dei database ed è utilizzabile da tutti i principali DBMS. SQL DDL DMCL DCL DML QL 19/10/2014 5
Linguaggi per la definizione dei dati (DDL, Data Definition Language), per la dichiarazione delle tabelle, degli attributi e dei loro tipi di dati, delle chiavi, delle relazioni tra le tabelle e dei vincoli sui dati. Linguaggi di controllo dei dispositivi di memorizzazione dei dati (DMCL, Device Media Control Language), per la definizione delle corrispondenze tra le strutture fisiche del database e i supporti di memorizzazione utilizzati. Linguaggio di controllo dei dati (DCL, Data Control Language), per stabilire i diritti di accesso consentiti agli utenti. Linguaggio di manipolazione dei dati (DML, Data Manipolation Language) per lo sviluppo di software per l elaborazione dei dati del database (inserimento, cancellazione, modifica, ricerca, visualizzazione e stampa). Linguaggio di interrogazione (QL, Query Language), per la scrittura di interrogazioni interattive per la ricerca dei dati nel database. 19/10/2014 6
Lo Schema Concettuale Definizione Lo Schema Concettuale è la rappresentazione astratta dei dati che descrivono l organizzazione considerata e delle correlazioni esistenti tra essi. Uno schema concettuale è costituito fondamentalmente da tre insiemi di elementi, che devono essere individuati durante la fase di progettazione concettuale: l insieme delle Entità l insieme degli Attributi l insieme delle Associazioni Simbolo Significato Descrizione Identificatore entità Entità Attributo L Entità è rappresentata da un semplice rettangolo, al cui interno è posto l identificatore dell entità. Gli attributi delle entità e delle associazioni sono rappresentati con linee. A ogni linea è associato l identificatore di uno specifico attributo. Associazione Le associazioni tra entità sono rappresentate da rombi, contenenti l identificatore dell associazione, che collegano le due entità attraverso linee continue o tratteggiate, etichettate con il grado dell associazione. 19/10/2014 7
Definizione di Entità L Entità costituisce l unità di informazione di interesse per la costituzione del modello della realtà che si intende rappresentare. Le entità sono costituite da insiemi di elementi che presentano proprietà ( caratterisitche ) comuni; ogni elemento viene chiamato istanza dell Entità. Esempi di entità: STUDENTI LIBRI PAZIENTI Definizione di Attributi Le proprietà comuni ad ogni istanza dell Entità prendono il nome di Attributi. Prendendo come esempio l entità Studenti, possiamo avere tra i suoi attributi: Matricola, Cognome, Nome, DataNascita, Indirizzo, Telefono, Email, Classe, Specializzazione, ecc. 19/10/2014 8
Matricola Cognome Nome DataNascita STUDENTI Indirizzo Telefono - Email - Classe Specializzazione Se consideriamo l entità Libri, i suoi attributi possono essere: CodiceLibro, Titolo, Autore, CasaEditrice, AnnoPubblicazione, NumeroPagine, Genere, ecc. CodiceLibro Titolo Autore LIBRI CasaEditrice AnnoPubblicazione NumeroPagine Genere 19/10/2014 9
Definizione di Chiave Primaria Tra gli attributi di un entità definiamo chiave primaria (primary key) la caratteristica, o insieme di caratteristiche (chiave composta), che permette di individuare univocamente ogni singola istanza dell entità. Nei diagrammi E/R una chiave primaria è rappresentata sottolineando l attributo (o gli attributi nel caso di chiave composta) corrispondente. A ogni attributo sono associati: L Identificatore Il Tipo di Dati, che indica la tipologia di valori che può assumere ( stringa, numero, data, ecc) e la rispettiva dimensione; l Opzionalità, che indica se l attributo deve obbligatoriamente assumere un valore (attributo richiesto) o se può assumere un valore nullo. Il Dominio, che indica l insieme di valori che un attributo può assumere. 19/10/2014 10
Esempio: consideriamo l attributo Specializzazione dell entità Studenti. Specializzazione è il suo identificatore Può assumere valori di tipo stringa con dimensione massima pari al nome più lungo tra le specializzazioni offerte nella scuola considerata. La sua immissione è obbligatoria (e quindi non opzionale) Il dominio è dato dall insieme delle specializzazioni presenti nell istituto scolastico Esempio: attributo Email. Email è il suo identificatore Può assumere valori di tipo stringa con dimensione massima uguale a 50 caratteri La sua immissione è opzionale (alcuni studenti potrebbero non avere indirizzo di posta elettronica) Il dominio è dato dall insieme delle stringhe di tipo nomeutente@dominio 19/10/2014 11
Definizione di Vincoli di Integrità I vincoli di integrità sono le regole che devono essere verificate affinché siano ritenute valide le informazioni memorizzate in una base dati. Si consideri come esempio l attributo NumeroPagine dell entità libri: NumeroPagine è il suo identificatore Può assumere valori di tipo numerico intero La sua immissione è obbligatoria Il dominio è costituito dall insieme dei numeri interi positivi, quindi NumeroPagine > 0. Il vincolo di integrità consiste nell impossibilità ad assegnare all attributo NumeroPagine un valore negativo o uguale a zero. Classificazione degli attributi Attributi semplici Attributi composti Attributi multipli 19/10/2014 12
Definizione di Attributo Semplice Un attributo si definisce semplice ( o elementare) quando non è ulteriormente scomponibile in più attributi, cioè rappresenta un unità informativa di base che caratterizza un entità e al quale è associato un singolo valore. Definizione di Attributo Composto Un attributo si definisce composto quando è ulteriormente scomponibile in più attributi semplici, cioè rappresenta contemporaneamente più unità informative di base che caratterizzano un entità. Matricola Cognome Nome Giorno DataNascita Mese STUDENTI Classe Telefono - Email - Indirizzo Specializzazione AnnoNascita Via NumeroCivico Città C.A.P. Provincia 19/10/2014 13
Definizione di Attributo Multiplo Un attributo si definisce multiplo quando a esso possono essere associati anche più valori dello stesso tipo contemporaneamente. NumeroTreno Destinazione OraPartenza ORARI OraArrivo BinarioPartenza Fermate* CodiceMedicina Denominazione MEDICINE Produttore Costo MalattieCurate* 19/10/2014 14
Le Associazioni Definizione Un Associazione tra una o più entità è una relazione tra le istanze che costituiscono le entità, cioè il legame tra gli elementi degli insiemi considerati. Esempio: prendiamo in considerazione le entità Studenti e Facoltà. Può essere definita tra le due entità una associazione binaria Frequentano/SonoFrequentate, cioè viene stabilito un legame tra le istanze della prima entità con quelle della seconda. Matricola Frequentano Sono Frequentate CodiceFacoltà Cognome STUDENTI Frequentano FACOLTÀ Denominazione Nome Città A seconda dell ordine di lettura si parla di associazione diretta e associazione inversa 19/10/2014 15
Vediamo un esempio di associazione unaria o ricorsiva, che coinvolge cioè una sola entità e le cui istanze sono quindi in relazione con se stesse. Consideriamo l entità Dipendenti, le cui istanze rappresentano gli impiegati dipendenti di un azienda. CodiceDipendente Dirigono Cognome Nome Indirizzo DIPENDENTI Dirigono Sono Diretti CodiceDottore Curano Sono Curati CodicePaziente Cognome Nome Specializzazione DOTTORI Curano DataInizioCura PAZIENTI Cognome Nome Città 19/10/2014 16
Definizione di Associazione Totale e di Associazione Parziale Un associazione tra due entità si definisce totale quando ad ogni istanza della prima entità corrisponde almeno un istanza della seconda entità; un associazione tra due entità si definisce parziale quando ad ogni istanza della prima entità può anche non corrispondere alcuna istanza della seconda entità. Matricola Possegono Sono Posseduti CodiceComputer Cognome Nome Classe STUDENTI Possegono COMPUTER Modello TipoCPU CapacitàRAM Definizione di Associazione uno a uno (1:1) Un associazione si definisce uno a uno quando ad ogni istanza della prima entità corrisponde una e una sola istanza della seconda entità e viceversa. Definizione di Associazione uno a molti (1:N) Un associazione si definisce uno a molti quando a ogni istanza della prima entità corrisponde una e una sola istanza della seconda entità, ma a ogni istanza della seconda entità corrispondono una o più istanze della prima entità o viceversa. 19/10/2014 17
Definizione di Associazione molti a molti (M:N) Un associazione si definisce molti a molti quando a ogni istanza della prima entità corrispondono una o più istanze della seconda entità e a ogni istanza della seconda entità corrispondono una o più istanze della prima entità. Esempio di Associazione 1:1 CodiceIstituto SonoDiretti Dirigono CodiceDirigente Denominazione ISTITUTI 1 1 SonoDiretti DIRIGENTI Cognome Indirizzo Nome L associazione viene letta nel seguente modo: Associazione diretta: Ogni Istituto è diretto da un solo Dirigente Associazione inversa: Ogni Dirigente dirige un solo Istituto 19/10/2014 18
Esempio di Associazione 1:N Matricola Frequentano Sono Frequentate CodiceFacoltà Cognome STUDENTI N 1 Frequentano FACOLTÀ Denominazione Nome Città L associazione viene letta nel seguente modo: Associazione diretta: Ogni Studente frequenta una sola Facoltà Associazione inversa: Ogni Facoltà è frequentata da uno o più Studenti Esempio di Associazione M:N Matricola Frequentano Sono Frequentati CodiceCorso Cognome STUDENTI M Frequentano N CORSI Denominazione Nome NumeroOre L associazione viene letta nel seguente modo: Associazione diretta: Ogni Studente frequenta uno più Corsi Associazione inversa: Ogni Corso è frequentato da uno o più Studenti 19/10/2014 19
Problema 1.1: Una Biblioteca intende organizzare le proprie informazioni mediante un sistema informativo automatizzato. In particolare si vogliono gestire le informazioni relative ai Libri, Soci e Case Editrici. Si precisa che non sarà sufficiente memorizzare il nome della casa editrice come attributo inserito all interno di una delle altre entità. Si analizzi il problema nel caso in cui la biblioteca disponga di una sola copia dei libri posseduti. CodiceLibro CodiceSocio Titolo Autore LIBRI N 1 SonoPrestati SOCI Cognome Nome Indirizzo NumeroPagine N Telefono Pubblicano AnnoStampa 1 CodiceCasaEditrice Denominazione CASEEDITRICI Indirizzo Telefono SitoWeb 19/10/2014 20
Problema 1.2: Riprendiamo in esame il problema precedente con l integrazione delle seguenti informazioni considerate rilevanti al fine della progettazione del sistema informativo della Biblioteca: non sarà più sufficiente indicare il nome dell autore come attributo dell entità libri ed inoltre in questo caso supponiamo che possano esistere più copie di uno stesso libro. CodiceLibro CodiceSocio Titolo LIBRI 1 Esistono N COPIE N 1 SonoPrestate SOCI Cognome Nome Indirizzo NumeroPagine N N NumInventario Collocazione Telefono DataPrestito Scrivono Pubblicano CodiceAutore M AnnoStampa 1 CodiceCasaEditrice Denominazione Nominativo AUTORI CASEEDITRICI Indirizzo Telefono Nazione SitoWeb 19/10/2014 21
Matricola Problema 2.1: Il Dirigente scolastico di una scuola secondaria superiore chiede che si realizzi una base di dati per l archiviazione e la gestione di informazioni riguardanti le attività scolastiche, nonché l esito conseguito da ciascuno studente per ogni anno scolastico. L organizzazione scolastica prevede che ciascuno studente possa frequentare più corsi di arricchimento dell offerta formativa e/o di recupero e/o di sostegno. Cognome STUDENTI M Frequentano N CLASSI IdClasse Classe Sezione Nome N Esito AnnoScolastico Frequentano M CodiceCorso CORSI Titolo MonteOre 19/10/2014 22
Problema 3.1: Si vuole monitorare la degenza ospedaliera dei pazienti di un ospedale mediante le relative cartelle cliniche. Si rappresentino nello schema E/R le entità, gli attributi e le associazioni di interesse. Problema 4.1: Uno studio di Informatica/Ingegneria dispone di un gruppo di progettisti, i quali possono essere responsabili dei progetti a loro affidati. Si effettui la progettazione concettuale. Problema 5.1: Si vogliono gestire gli account degli utenti che hanno accesso alle risorse hardware presenti nei vari laboratori di un istituto scolastico. Ogni utente può essere autorizzato, a partire da una certa data, ad accedere a una o più risorse grazie a uno UserName e a una PassWord. Alla stessa risorsa possono accedere anche più utenti autorizzati. Problema 6.1: Progettare lo schema concettuale di una base di dati per la gestione della segreteria didattica di un istituto scolastico. Gestire le informazioni relative agli studenti, alle loro valutazioni e alle loro assenze (con la causale). 19/10/2014 23
Progettazione Logica: il modello relazionale Definizione di progettazione logica La fase di progettazione logica consiste nell analisi delle informazioni riguardanti le entità, gli attributi e le associazioni fornite dallo schema E/R, per trasformarle, attraverso un procedimento di conversione detto mapping, in un insieme di strutture dati chiamato schema logico. La fase di progettazione logica si adatta al modello dei dati al quale si riferisce il DBMS a disposizione. Il modello logico di rappresentazione dei dati che in questo momento è adottato dalla totalità dei DBMS in commercio è il modello relazionale. Chiameremo lo schema logico che si ottiene al termine della progettazione logica come schema logico relazionale. 19/10/2014 24
Il modello relazionale struttura la realtà in un insieme di relazioni: lo schema logico relazionale che si ricava al termine della progettazione logica è esattamente costituito dall insieme delle relazioni che modellano la realtà. Si dovrebbero avere, nello schema logico relazionale, tante relazioni quante sono le entità individuate nello schema concettuale con le relative chiavi primarie. Si devono prendere in considerazione anche le associazioni tra le entità, in quanto anch esse sono relazioni tra entità e quindi devono essere convertite, secondo le regole di derivazione del modello relazionale, per comparire nello schema logico relazionale. Nel modello relazionale, le associazioni tra le entità sono implementate attraverso l introduzione del concetto di chiave esterna, il cui utilizzo è fondamentale durante il processo di mapping. Definizione di chiave esterna. Una chiave esterna (foreign key) di una relazione è un attributo o un insieme di attributi che non ha solitamente funzione di chiave primaria della relazione in cui compare, ma è invece chiave primaria in un altra relazione, alla quale è legata attraverso un associazione nello schema concettuale. 19/10/2014 25
Le regole di derivazione dello schema logico relazionale Mapping delle entità e degli attributi Le entità che fanno parte dello schema concettuale vengono trasformate in relazioni individuate nel seguente modo: NomeRelazione (Chiave primaria, Elenco altri attributi semplici) Esempio: entità studenti con attributi matricola, cognome, nome e telefono Matricola STUDENTI Cognome Nome Telefono - Studenti(Matricola, Cognome, Nome, Telefono - ) Per gli attributi non semplici si procede nel seguente modo: attributi composti: sono sostituiti con l elenco degli attributi semplici componenti attributi multipli: sono sostituiti con la creazione di una o più nuove relazioni 19/10/2014 26
Esempio: entità Studenti con attributi Matricola, Cognome, Nome, ClasseFrequentata (attributo composto) e Telefono Matricola STUDENTI Cognome Nome ClasseFrequentata Telefono - Classe Sezione Studenti(Matricola, Cognome, Nome, Classe, Sezione, Telefono - ) Mapping delle associazioni 1:1 Nello schema logico relazionale, un associazione 1:1 tra due entità porta, nella maggior parte dei casi, alla creazione di un unica relazione, cioè gli attributi di una delle due entità migrano nella relazione più importante dal punto di vista della progettazione e la chiave primaria diventa quindi unica. Esempio: entità Impiegati e Coniugi, collegate tramite l associazione Coniugati con CodiceImpiegato CodiceConiuge Cognome Nome IMPIEGATI 1 Coniugati 1 con CONIUGI CognomeConiuge Mansione NomeConiuge Impiegati(CodiceImpiegato, Cognome, Nome, Mansione, CognomeConiuge-, NomeConiuge-) 19/10/2014 27
Definizione di Integrità Referenziale L integrità referenziale è costituita da un insieme di regole, rispettando le quali si rendono valide le associazioni tra le relazioni, imponendo che ogni inserimento di un valore non nullo della chiave esterna debba avere un valore corrispondente della chiave primaria nella relazione associata. Mapping delle associazioni 1:N Le associazioni binarie di grado 1:N sono convertite nelle corrispondenti due relazioni relative alle entità collegate, aggiungendo, nella relazione relativa all entità che si trova sul lato N dell associazione, un attributo con funzione di chiave esterna, corrispondente alla chiave primaria dell altra relazione collegata. Esempio: entità Studenti e Facoltà, collegate tramite l associazione Frequentano Matricola CodiceFacoltà Cognome STUDENTI N 1 Frequentano FACOLTÀ Denominazione Nome Studenti(Matricola, Cognome, Nome, CodiceFacoltà ) Preside Facoltà(CodiceFacoltà, Denominazione, Preside) 19/10/2014 28
Prendiamo in considerazione il vincolo di integrità referenziale in inserimento dei dati relativo all esempio precedente. L integrità referenziale in questo caso ci dice che non è possibile inserire un valore alla chiave esterna nella tabella Studenti che non sia incluso tra i valori della corrispondente chiave primaria in Facoltà. Facoltà CodiceFacoltà Denominazione Preside F01 Scienze Tizio F02 Medicina Caio F03 Ingegneria Sempronio Studenti Matricola Nome Cognome CodiceFacoltà M001 Mario Rossi F02 M002 Michele Bianco F01 M003 Elisa Marrone F03 M004 Giulia Rosso F04 Per il vincolo di integrità referenziale il valore F04 assunto dalla chiave esterna relativa allo studente con matricola M004 non è ritenuto valido in quanto non presente tra i valori della chiave primaria nella tabella Facoltà. 19/10/2014 29
Mapping delle associazioni M:N Le associazioni binarie di grado M:N sono convertite nelle corrispondenti due relazioni relative alle entità collegate, aggiungendo una nuova relazione in cui migrano le chiavi primarie delle due entità associate, che svolgeranno il ruolo di chiavi esterne. La nuova relazione prenderà il nome dell associazione implementata. Se l associazione presenta degli attributi, anch essi migreranno nella nuova relazione. Esempio: entità Dottori e Pazienti, collegate tramite l associazione Curano CodiceDottore CodicePaziente CognomeD NomeD Specializzazione DOTTORI M Curano N DataInizioCura PAZIENTI CognomeP NomeP Città Dottori(CodiceDottore, CognomeD, NomeD, Specializzazione) Pazienti(CodicePaziente, CognomeP, NomeP, Città) Curano(CodiceDottore, CodicePaziente, DataInizioCura) 19/10/2014 30
Dottori CodiceDottore NomeD CognomeD Specializzazione D001 Maria Cossu Chirurgo D002 Lorenzo Rossi Geriatra D003 Giovanni Bianco Cardiologo D004 Erica Marrone Ottorino Pazienti CodicePaziente NomeP CognomeP Città P001 Mario Rossi Milano P002 Giorgio Caio Roma P003 Elisa Marrone Cagliari P004 Giulia Rosso Olbia Curano CodiceDottore CodicePaziente DataInizioCura D001 P002 10/01/2009 D003 P001 11/01/2009 D003 P003 11/01/2009 D004 P003 20/01/2009 19/10/2014 31
Si noti che se volessimo gestire un archivio storico, in cui mantenere traccia delle precedenti cure, si potrebbe verificare il caso in cui i valori della coppia CodiceDottore + CodicePaziente si ripetano uguali più di una volta. Quindi in questo caso tale coppia di attributi non sarebbe idonea a svolgere il compito di chiave primaria. In questo caso si potrebbe scegliere come chiave primaria, quella composta dai tre attributi della relazione Curano. Bisogna però precisare che l utilizzo di chiavi primarie composte da un numero elevato di attributi è sconsigliabile per ragioni di praticità. La soluzione più logica in questo caso è quella di inserire una chiave artificiale con funzione di chiave primaria (ad esempio un attributo progressivo NumeroCura). Dottori(CodiceDottore, CognomeD, NomeD, Specializzazione) Pazienti(CodicePaziente, CognomeP, NomeP, Città) Curano(NumeroCura, CodiceDottore, CodicePaziente, DataInizioCura) Esempio di entità con attributo multiplo CodiceInsegnante Cognome Nome INSEGNANTI Telefono AnniServizio Materie* Insegnanti(CodiceInsegnante, Cognome, Nome, Telefono, AnniServizio) Insegnano(CodiceInsegnante, Materia ) 19/10/2014 32
Mapping delle associazioni ricorsive CodiceDipendente Cognome Nome DIPENDENTI 1 Dirigono Dirigono Indirizzo Sono Diretti N Dipendenti(CodiceDipendente, Cognome, Nome, Indirizzo, CodiceDirigente- ) Dipendenti CodiceDipendente Nome Cognome Indirizzo CodiceDirigente D001 Mario Rossi D004 D002 Michele Bianco D002 D003 Elisa Marrone D002 D004 Orlando Furioso D004 D005 Giulia Rosso D004 19/10/2014 33