Consorzio per la formazione e la ricerca in Ingegneria dell'informazione DEFINIZIONI FONDAMENTALI Per vincere ci vuole una buona partenza... Docente: Cesare Colombo CEFRIEL colombo@cefriel.it http://www.cefriel.it Introduzione La raccolta, l organizzazione e la conservazione dei dati sono sempre stati uno dei principali compiti dei sistemi informatici. Esempi: Dati degli utenti di una banca Prenotazione dei voli aerei di una compagnia I sistemi informatici devono garantire: Memorizzazione (grandi quantità di dati) Aggiornamento Accesso (a molteplici utenti contemporaneamente) Le basi di dati servono a risolvere questi problemi: oggi vedermo cosa sono e quali caratteristiche presentano... - 2-2002 - Cesare Colombo 1
Sistemi informativi e informatici Nello svolgimento di un attività è essenziale la disponibilità di informazioni e la loro gestione efficace Un sistema informativo organizza e gestisce le informazioni necessarie per perseguire gli scopi dell informazione stessa NOTA. Non è necessariamente automatizzato. Es. Le banche hanno archivi da molto più tempo dell esistenza dei computer! - 3 - Sistemi informativi e informatici Un sistema informatico è la porzione automatizzata di un sistema informativo La diffusione dell informatica fa si che spesso i sistemi informativi siano anche sistemi informatici E necessario strutturare e organizzare la conoscenza per poi poterla rappresentare - 4-2002 - Cesare Colombo 2
Dati e informazioni Le informazioni sono elementi che consentono di arricchire la nostra conoscenza del mondo e spesso devono essere organizzate e rappresentate Es. lingua scritta, disegni, numeri,... Nei sistemi informatici le informazioni vengono rappresentate per mezzo di dati...i dati da soli non hanno alcun significato, ma una volta interpretati e correlati opportunamente essi forniscono informazioni... Es. Cesare e 202 scritti su un foglio sono due dati, se il foglio è l elenco degli interni del palazzo ne otteniamo una informazione - 5 - Prima definizione di Base di Dati Base di Dati (Database): Collezione di dati utilizzati per rappresentare le informazioni di interesse di un sistema informativo NOTA I dati hanno caratteristiche più stabili rispetto alle procedure/processi che operano su di essi Questa stabilità dimostra l importanza dei dati: sono una risorsa fondamentale dell azienda L importanza delle - 6-2002 - Cesare Colombo 3
Sistemi tradizionali L approccio convenzionale alla gestione dei dati sfrutta i file (archivi) per memorizzare i dati su memorie di massa I file consentono di memorizzare in modo semplice, ma non hanno meccanismi adeguati per l accesso e la condivisione dei dati Esempio 1: archivio anagrafico in un file di testo. Problemi: gestione modifiche, ricerche,... - 7 - Le basi di dati vogliono superare questo inconveniente... Sistema di gestione di basi di dati Una BASE DATI è una collezione di dati gestita da un DBMS Un Sistema di gestione di basi di dati (DBMS - Data Base Management System) è un sistema software... In grado di gestire collezioni di dati che siano Grandi, Condivise, Persistenti Assicurando Affidabilità, Privatezza In modo Efficiente ed Efficace - 8-2002 - Cesare Colombo 4
Caratteristiche (1) Grandi I dati hanno dimensioni maggiori della memoria centrale I DBMS devono gestire i dati in memoria secondaria Condivise I dati devono poter essere usati da applicazioni e utenti diversi secondo proprie modalità Persistenti I dati durano nel tempo, oltre le singole applicazioni - 9 - Caratteristiche (2) Affidabilità I DBMS devono conservare i dati anche in caso di malfunzionamenti HW e SW (backup e recovery) Privatezza I DBMS devono consentire ad ogni utente solo le azioni di sua competenza (meccanismi di autorizzazione) Efficienza I DBMS devono operare in modo da richiedere risorse (tempo e spazio) accettabili per gli utenti Efficacia I DBMS devono rendere produttive le attività degli utenti (fornendo i servizi di cui necessitano) - 10-2002 - Cesare Colombo 5
Nota: Condivisione Molte organizzazioni presentano una struttura complessa (dipartimenti, divisioni) Ogni componente è interessato ad una parte delle informazioni Spesso i dati di interesse presentano sovrapposizioni Una base di dati è una risorsa integrata condivisa dai diversi componenti Consentire la condivisione riduce la ridondanza dei dati e quindi le inconsistenze Poiché la condivisione non è mai completa (o comunque non opportuna) i DBMS prevedono meccanismi di definizione della privatezza dei dati e di limitazioni all accesso (autorizzazioni). E necessario garantire l accesso contemporaneo (controllo di concorrenza) - 11 - Nota: DBMS vs File System Non esiste una linea netta di separazione fra DBMS e non-dbms I DBMS estendono le funzioni di un file system fornendo accesso condiviso da parte di diversi utenti e applicazioni e numerosi altri servizi in modo integrato (efficacia) I file system prevedono forme di condivisione, permettendo accessi contemporanei in lettura ed esclusivi in scrittura: se è in corso un operazione di scrittura su un file, altri non possono accedere affatto al file Nei DBMS, c è maggiore flessibilità: si può accedere contemporaneamente a dati diversi di uno stesso file o addirittura allo stesso dato (in lettura) - 12-2002 - Cesare Colombo 6
RICORDA... I dati sono una risorsa preziosissima L informazione è potere (e le informazioni sono estratte dai dati...) I dati sono alla base del lavoro di molte aziende (praticamente tutte...) Internet si basa fortemente sui dati e sulle informazioni che ne derivano Per questo motivo le basi di dati e i sistemi che li gestiscono (DBMS) hanno un importanza fondamentale - 13 - Riassumendo... Fattura Scheda fornitore Ordine Scheda cliente Scheda prodotto Informazioni Dati Servizi - 14-2002 - Cesare Colombo 7
Modello dei dati Per gestire i dati tramite un sistema informatico è necessario organizzarli e descriverne la struttura Il modello dei dati è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che essa sia comprensibile ad un elaboratore Ogni modello fornisce i meccanismi di strutturazione per questo processo - 15 - Modello relazionale Il Modello Relazionale dei dati si basa sul costrutto di Relazione e consente di organizzare i dati per mezzo di record a struttura fissa I dati sono organizzati in relazioni (Tabelle) Righe record Colonne campi Titolo Libri Autore I Promessi Sposi La Divina Commedia Harry Potter Alessandro Manzoni Dante Alighieri J.K. Rowling - 16-2002 - Cesare Colombo 8
Altri modelli Gerarchico Strutture ad albero Reticolare Grafi Studenti Nome Cognome Matricola Indirizzo Studenti 101020;Cesare PianiDiStudio Esame Corsi Corso A.A. Docente Docenti Nominativo Dipartimento Voti Esami 28;10-10-1999 Geometria Oggetti Evoluzione del modello relazionale, estende alle basi di dati il paradigma di programmazione a oggetti - 17 - Modelli dei dati (1) I modelli esaminati sono detti Modelli logici per indicare che le strutture da loro usate riflettono una particolare organizzazione dei dati i DBMS commerciali usano i meccanismi forniti dal modello per organizzare i dati Es: DBMS relazionale rappresenta i dati usando le tabelle E fondamentale che il modello logico sia Potente (espressivo) e Semplice (intuitivo) Esistono anche i Modelli Concettuali Usati per descrivere i concetti del mondo reale, non i dati utili a rapresentarli Sono usati in fase di analisi preliminare e poi mappati su un modello logico - 18-2002 - Cesare Colombo 9
Modelli dei dati 1. Proget. Concettuale 2. Proget. Logica Fatture 1 2 Fatture Ordini dei clienti Ordini Indirizzi dei clienti Clienti Archivio prodotti in magazzino Magazzino Requisiti Modello concettuale (COSA) Modello logico (COME) - 19 - Schemi e istanze Le basi di dati sono costituite da: Schema Parte invariante nel tempo Caratteristiche dei dati Istanza o stato Parte variabile nel tempo Valori effettivi dei dati DBMS relazionale Schema: struttura delle tabelle Istanza: righe delle tabelle Titolo I Promessi Sposi La Divina Commedia Harry Potter Libri Autore Alessandro Manzoni Dante Alighieri J.K. Rowling - 20-2002 - Cesare Colombo 10
Livelli di astrazione in un DBMS (1) Con le nozioni di modello e schema possiamo esaminare come è fatto un DBMS Esiste una proposta di architettura standard (ANSI/SPARC) per per descrivere un DBMS articolata su tre livelli Livello Esterno Livello Logico Livello Interno o Fisico Per ogni livello esiste uno schema che lo descrive - 21 - Livelli di astrazione in un DBMS (2) Utenti Livello Esterno Vista esterna 1 Vista esterna 2 Vista esterna 3 Livello Logico Schema Logico Livello Fisico Amministratore Schema Fisico - 22-2002 - Cesare Colombo 11
Livello logico Descrive l intera base di dati secondo il modello logico adottato dal DBMS In DBMS relazionali, lo schema logico è espresso in termini di tabelle e loro struttura Titolo I Promessi Sposi La colonna Infame La Divina Commedia Harry Potter Libri Autore Alessandro Manzoni Alessandro Manzoni Dante Alighieri J.K. Rowling - 23 - Livello Esterno Descrive una parte della base di dati secondo il modello logico adottato dal DBMS E il livello a cui i vari utenti vedono la base di dati Nei moderni sistemi è costituito da un insieme di viste (visioni parziali e personalizzate) Libri di Alessandro Manzoni Titolo I Promessi Sposi La colonna Infame NOTA: le viste riducono sia lo schema che l istanza - 24-2002 - Cesare Colombo 12
Livello Interno o Fisico Rappresenta lo schema logico per mezzo di strutture fisiche di rappresentazione Utilizza file di tipo differente per rappresentare su memoria di massa il modello logico dei dati Titolo Libri Autore NOTA: alla base si hanno comunque file, il DBMS consente di lavorare ad un livello di astrazione elevato... - 25 - Perché più livelli? L architettura a più livelli garantisce l indipendenza dei dati Utenti e programmi possono lavorare ad un elevato livello di astrazione senza preoccuparsi dei dettagli implementativi Indipendenza Fisica Livello Logico indipendenti da Livello Fisico Posso interagire con il DBMS senza sapere come sono fisicamente memorizzati i dati (in quali file, su quali dischi,...) Indipendenza Logica Livello Esterno indipendente da Livello Logico Posso creare nuove viste senza dover modificare la struttura logica e fisica dei dati - 26-2002 - Cesare Colombo 13
Linguaggi per le basi di dati (1) I linguaggi per le basi di dati servono ad effetuare operazioni su schemi e istanze Linguaggi di Definizione dei Dati (DDL) Definiscono gli schemi logici, esterni e fisici e le autorizzazioni per l accesso Linguaggi per la Manipolazione dei Dati (DML) Utilizzati per l interrogazione e l aggiornamento delle istanze di basi di dati - 27 - Linguaggi per le basi di dati (2) Linguaggi di Interrogazione (DML) Permettono di trovare un dato basandosi sulle sue proprietà. Es: tabella STUDENTI--> trovare tutti gli studenti che hanno preso più di 28 a Fondamenti di Informatica Permettono di trovare dati basandosi su confronti tra i contenuti di più tabelle. Es: tabella ELEZIONI, tabella PRESIDENTI --> Trovare gli anni in cui è stato eletto un presidente proveniente dalla Lombardia - 28-2002 - Cesare Colombo 14
Linguaggi per le basi di dati (3) Possono esserci diverse forme di linguaggi : Linguaggi Interattivi Es. SQL Comandi interattivi in linguaggi di programmazione (Pascal, C, Cobol, Java, etc.) Es. SQL embedded in Java Comandi interattivi in linguaggi ad-hoc (per la creazione di form, menu, stampati,...) Es. PL/SQL in ORACLE Interfacce grafiche Es. Interfacce di Access - 29 - Linguaggi per le basi di dati (4) Esempio SQL SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Nome = Aula AND Piano="Terra Corso Reti Sistemi Aula N3 N3 Piano Terra Terra SQL immerso in Pascal ZULWHQRPHGHOODFLWWD"UHDGOQFLWWD (;(&64/'(&/$5(3&85625)25 6(/(&7120(5('',72 )5203(5621( :+(5(&,77$ FLWWD (;(&64/23(13 (;(&64/)(7&+3,172QRPHUHGGLWR ZKLOH64/&2'( GREHJLQ ZULWHQRPHGHOOD SHUVRQDQRPHDXPHQWR" UHDGOQDXPHQWR (;(&64/83'$7(3(5621(6(7 5('',72 5('',72ГDXPHQWR :+(5(&855(172)3 (;(&64/)(7&+3,172QRPHUHGGLWR HQG (;(&64/&/26(&856253-30 - 2002 - Cesare Colombo 15
Utenti di un DBMS (1) Progettisti e realizzatori di DBMS Progettisti della base di dati e amministratori della base di dati (DBA) DBA (Data Base Administrator) Responsabile del controllo centralizzato e della gestione del sistema, delle prestazioni, dell affidabilità, delle autorizzazioni Le funzioni del DBA includono anche (parte di) quelle di progettazione Programmatori delle applicazioni Definiscono e realizzano i programmi che accedono alle basi di dati - 31 - Utenti di un DBMS (2) Utenti Utenti finali, eseguono applicazioni predefinite (transazioni) (es. l operatore di una banca) Utente casuale, che esegue interrogazioni (query) per mezzo di un linguaggio interattivo o tramite interfacce opportune - 32-2002 - Cesare Colombo 16
Vantaggi di un DBMS I dati sono visti come una risorsa comune accessibili a tutti (con opportune forme di autorizzazione) I dati sono organizzati con un modello unificato e preciso I dati sono condivisi evitando ridondanze e inconsistenze L indipendenza dei dati favorisce lo sviluppo di applicazioni più flessibili e facilmente modificabili - 33 - Svantaggi di un DBMS I DBMS sono normalmente prodotti costosi e complessi in termini di Risorse finanziarie necessarie per l acquisto Risorse informatiche per il loro utilizzo Risorse umane per saperli utilizzare In situazioni con pochi utenti e pochi dati da gestire si possono utilizzare meccanismi convenzionali (file) o DBMS con funzionalità ridotte e utilizzabili da tutti - 34-2002 - Cesare Colombo 17
Caso di Studio: Access 2000 Access 2000 è un DBMS relazionale (semplice) Si basa sul modello logico delle tabelle Grandi: gestisce decine di migliaia di record di dati organizzati in tabelle - 35 - Caso di Studio: Access 2000 Condivise: funzionalità minime di condivisione gestite grazie a middleware esterni (ODBC, ADO,...) Persistenti: i dati sono gestiti in uno o più file *.mdb su memoria di massa Assicurando Affidabilità: funzionalità di ripristino archivi danneggiati e backup Privatezza: restrizioni di accesso a differenti utenti - 36-2002 - Cesare Colombo 18
Caso di Studio: Access 2000 In modo Efficiente: buona gestione dei dati e discreta gestione delle risorse Efficace: ottima produttività (DML grafico) - 37 - Database relazionali: i prodotti attualmente più diffusi MS SQL Server Oracle MySQL PostgreSQL Oracle 9i IBM DB2 EE v.7.1 MS SQLServer2000 Informix costo costo (milioni (milioni di di ) ) 1,8 x proc x n ut. 38,2 45,1 x proc. 62 x proc. Il totale dei guadagni si prevede che passerà dagli 8 miliardi di dollari del 1999 ai 12,7 miliardi di dollari del 2004-38 - 2002 - Cesare Colombo 19
Livello di diffusione dei principali motori per DB Oracle 5.6 Ml MySQL 4.5 Ml PostgreSQL 1.8 Ml SQL Server 1.4 Ml DB2 1.0 Ml Informix 0.7 Ml Suddivisione del del mercato delle delle licenze Dataquest, Dataquest, Maggio Maggio 2000 2000 Referenze sul sul Web Web Ricerche Ricerche su su Google Google04/03/02 Sybase 3,3% Informix 4,3% Microsoft 13,1% Altri 18,3% Oracle 31,1% IBM 29,9% - 39 - Bibliografia Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone - Seconda edizione settembre 1999 - McGraw Hill CAPITOLO 1-40 - 2002 - Cesare Colombo 20