LE BASI DI DATI Prima parte – Premesse introduttive DEFINIZIONE DI DATABASE In generale, un database è una collezione di archivi di dati ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi con programmi diversi. Esempio : i dati degli articoli del magazzino di un’azienda Articoli di magazzino programma listini programma fatture 2 EFFICIENZA E PRODUTTIVITÀ - 1/2 o archivi costituiti da grandi quantità di dati Velocità di elaborazione: ritrovare le informazioni desiderate in tempi brevi o ragionevoli Consistenza : i dati inseriti devono essere fra loro coerenti, conformi e affidabili. per esempio, se è necessario modificare lo stato civile del Sig. Rossi da celibe in coniugato, anche gli altri campi che presentano lo stato civile del Sig. Rossi, con riferimento al primo, devono essere aggiornati, pena l'inconsistenza dei dati. 3 EFFICIENZA E PRODUTTIVITÀ - 2/2 Sicurezza : i dati devono essere protetti al fine di impedire perdite accidentali dovute a cadute del sistema, guasti hardware o interventi dannosi da parte di utenti e di programmi. Integrità : garantire che le operazioni effettuate sul database da utenti autorizzati non provochino una perdita di consistenza ai dati. 4 DBMS (DATABASE MANAGEMENT SYSTEM) – 1/2 Sono i prodotti software che si occupano della gestione di database. Definizione : un DBMS è un sistema software che gestisce grandi quantità di dati, persistenti e condivisi Hanno al loro interno, moduli con funzionalità che permettono di analizzare e ottimizzare le richieste garantire la protezione da guasti gestire accessi concorrenti (più utenti nello stesso tempo) Inoltre grazie al loro recente sviluppo (sistemi di elaborazione dotati di processori sempre più veloci), garantiscono tempi di accesso e trasferimento in memoria molto bassi 5 DBMS (DATABASE MANAGEMENT SYSTEM) – 2/2 Database distribuiti: gli archivi del database possono risiedere sulle memorie di massa di diversi computer facenti parte di una rete aziendale. Attenzione a non confondere i DBMS con i database! Esempi di DBMS : MySql, Microsoft Access, SQL Server, Oracle, ecc… 6 LIMITI DEGLI ARCHIVI TRADIZIONALI - 1/5 Consideriamo il seguente esempio di archiviazione tradizionale (file system): Si vogliono gestire le informazioni dei clienti di un’azienda bancaria e per questo è stata sviluppata una semplice applicazione. Per ciascun conto vengono gestiti il numero di conto, il nome del destinatario, il suo indirizzo con il codice di avviamento postale e il saldo. I progettisti hanno deciso di memorizzare i dati su due file : il primo con le informazioni anagrafiche del cliente, il secondo con quelle del conto. 7 LIMITI DEGLI ARCHIVI TRADIZIONALI - 2/5 Si gestiscono con semplicità i casi di clienti (es. Gialli e Verdi che condividono lo stesso conto operazioni : versamento, prelievo, gestione dati anagrafici Linguaggio utilizzato : COBOL (vecchio) 8 LIMITI DEGLI ARCHIVI TRADIZIONALI - 3/5 In un secondo tempo, un altro gruppo di programmatori hanno sviluppato un software per gestire i singoli movimenti sul conto. operazioni : inserire movimenti di versamento e prelievo, aggiornare il saldo Linguaggio utilizzato : C (moderno) 9 LIMITI DEGLI ARCHIVI TRADIZIONALI - 4/5 Il nuovo archivio deve potersi integrare con gli altri archivi (precedenti) della banca, ma : Due campi con nomi diversi rappresentano lo stesso dato (NumConto e Codice), Due campi con nomi diversi e formato diverso rappresentano lo stesso dato (Nome di 50 caratteri e Cliente di 40 caratteri). Si provi ad immaginare al caso in cui il nome di un cliente è stato in passato abbreviato per poter essere contenuto nel campo di lunghezza 40 (si hanno due nomi diversi) Due campi (Saldo e Importo ) con tipo di formato diverso Ridondanza dei dati : il nome del cliente è presente sia nell’archivio dei movimenti, che nell’archivio dell’anagrafica 10 clienti e viene ripetuto per ogni movimento! LIMITI DEGLI ARCHIVI TRADIZIONALI - 5/5 occorre tenere presente eventuali modifiche nel futuro (es. aggiunta di codice fiscale ed email ai campi dell’anagrafica dei clienti, sviluppo di nuove applicazioni . Inoltre A causa di tutto ciò, sviluppare nuovo software per soddisfare nuove richieste può diventare un’impresa ardua e sicuramente non risolvibile in tempi brevi. 11 I PROBLEMI DEGLI ARCHIVI TRADIZIONALI (FILE BASED) - 1/3 dai dati : all’interno dei programmi sono specificati gli archivi utilizzati, ogni modifica alla struttura degli archivi richiede la modifica di tutti i programmi che la utilizzano Dipendenza Interrogazioni predefinite e difficoltà nell’accesso ai dati : accessi solo tramite le applicazioni specifiche. Ridondanza e incosistenza dei dati : dati duplicati portano ad un aumento dello spazio occupato e all’incongruenza (quando si modifica un dato occorre ricordarsi di modificarlo in tutte le sue “ripetizioni”) e inconsistenza (dati non più affidabili) 12 I PROBLEMI DEGLI ARCHIVI TRADIZIONALI (FILE BASED) - 2/3 Difficoltà nel gestire l’integrità dei dati: si devono ricordare i programmatori basandosi su documenti che spesso non ci sono o non si trovano. Altri aspetti negativi sono : Difficoltà nel gestire la concorrenza : lo stesso programma può essere eseguito da più utenti contemporaneamente , se i processi concorrenti non vengono gestiti correttamente si possono presentare diverse anomalie, fra cui la perdita di aggiornamento. Limiti nella gestione della sicurezza : occorre un controllo sulle autorizzazioni degli utenti e sulle operazioni permesse. 13 I PROBLEMI DEGLI ARCHIVI TRADIZIONALI (FILE BASED) - 3/3 La sicurezza nei sistemi tradizionali è affidata ai servizi messi a disposizione dal file system del sistema operativo, che permette di gestirla al massimo a livello di file e non di campi. Salvataggio e ripristino dati limitato: sistemi di backup per effettuare delle copie di sicurezza , sono l’unico strumento a disposizione dei sistemi tradizionali per gestire il problema del ripristino in caso di malfunzionamento. Problema : si devono reinserire i dati dalla data dell’ultima copia fino a quel momento. L’approccio mediante i database introduce una nuova metodologia di organizzazione degli archivi di dati per superare i limiti sopra visti. 14