Cos'è una base di dati Una base di dati (o database): è una collezione di dati strutturati accessibile in modo efficace/efficiente da parte di applicazioni differenti e differenti utenti CONTEMPORANEAMENTE. COS’È: Un insieme di dati memorizzati senza inutili ridondanze (ripetizioni) COME: è organizzato in modo da essere indipendente dai programmi che necessitano di accedere ai dati stessi è in grado di servire più accessi simultanei eventualmente da programmi e utenti differenti GESTIONE E VERIFICA DELLA COERENZA E CONSISTENZA: DBMS (data base management system): il dbms è costituito da un insieme di programmi software che controllano l’organizzazione, la memorizzazione e il reperimento dei dati in un database. Esso controlla anche l’integrità e la sicurezza del database. Il dbms si colloca tra i programmi applicativi e il sistema operativo e si occupa di gestire i dati andandoli a prelevare direttamente dal database. COME FUNZIONA: Gli utenti accedono ai programmi tramite interfacce e i programmi, quando hanno necessità di accedere ai dati, li richiedono al DBMS, che li preleva dal database interagendo con il file system del sistema operativo, per restituirli infine ai programmi richiedenti. PERCHÈ CREARE LE BASI DI DATI 1. IL SISTEMA EDP EDP Electronic Data Processing: è un insieme di dati memorizzati su supporti elettronici e di applicazioni informatiche utilizzate per agevolare il raggiungimento degli obiettivi di un’azienda. Per applicazione informatica si intende una componente del sistema informativo (SI) che utilizza dati in esso immagazzinati per compiere una funzione specifica all’interno dell’organizzazione a cui il SI appartiene. Ogni singola applicazione del SI opera su un insieme di dati memorizzati secondo una struttura definita all’interno dell’applicazione stessa dall’analista, il quale ha il compito di realizzare l’applicazione in modo da rendere massima l’efficienza della stessa, indipendentemente dalle altre applicazioni (massima velocità, minima occupazione di memoria e così via). File system (ARCHIVI TRADIZIONALI): è un meccanismo con il quale i file sono memorizzati e organizzati su un dispositivo di archiviazione (hard disk o cd). - ogni applicazione opera in modo indipendente (o quasi) dalle altre applicazioni utilizzando propri dati e propri programmi - struttura problematica nel caso in cui sia necessaria una condivisione di dati da parte di due o più applicazioni 2. BASI DI DATI E DBMS - una base dati è un’organizzazione di dati progettati per essere usati in applicazioni differenti e da più utenze, senza duplicazioni, per servire più applicazioni contemporaneamente ed essere indipendenti dai programmi che li usano - percorso richiesta dati: GUI → programma → DBMS → database 3. CENTRALIZZAZIONE DEI DATI - ridondanza: duplicazione del dato o memorizzazione di un dato che deriva dall’elaborazione di altri - attraverso i DBMS è possibile evitare la duplicazione delle informazioni - ridondanza utile: memorizzazione di ulteriori dati in funzione di frequenti richieste - DBA (data base administrator) è il responsabile della base dati che deve decidere se inserire o meno le ridondanze (garantire la massima efficienza della base dati) - inconsistenza: quando due dati che rappresentano la stessa cosa assumono valori diversi - integrità dei dati: il DBMS si occupa di controllare che l’inserimento/cancellazione di dati non alteri la struttura della base dati (esempio database biblioteca autori/opere) Architettura 1. MODELLO ANSI/SPARC Nell’organizzazione dei database possiamo evidenziare tre livelli di astrazione: - schema fisico (livello interno): descrive come sono organizzati fisicamente i dati sulla memoria di massa - schema logico concettuale (livello concettuale): rappresenta l’organizzazione logico concettuale dei dati - sottoschemi o viste (livello esterno): differenti utenti possono avere differenti visioni a seconda dell’uso LIVELLO INTERNO Rappresenta la descrizione fisica delle strutture degli archivi, orientato a valutazione di carattere tecnico ed economico, tecnologia hardware e software. LIVELLO LOGICO CONCETTUALE LIVELLO ESTERNO E’ detto anche livello applicativo e descrive come i dati sono visti dalle applicazioni e dagli utenti. INDIPENDENZA LOGICA E FISICA INDIPENDENZA LOGICA: è la possibilità di modificare lo schema concettuale senza dover modificare i programmi. INDIPENDENZA FISICA: è la possibilità di modificare l’organizzazione fisica dei dati senza modificare l’organizzazione logica concettuale dei dati. 1. Un utente o un’applicazione richiede un dato al DBMS 2. Il DBMS individua la corrispondenza tra il dato richiesto e quello definito nello schema concettuale (schema logico concettuale: organizzazione logica concettuale dei dati) 3. Il DBMS attraverso lo schema fisico individua dove il dato è fisicamente memorizzato e i metodi per potervi accedere 4. Il DBMS chiede al SO di prelevare il dato in questione 5. Il SO restituisce in un’apposita area (buffer di comunicazione) il record prelevato dal DBMS 6. Il DBMS effettuerà le trasformazioni del record per renderlo compatibile con il modello esterno 7. Il DBMS restituisce il record all’applicazione richiedente I LINGUAGGI Per poter gestire le basi di dati tramite i DBMS sono stati introdotti dei linguaggi specifici. DDL (Data Definition Language) E’ un linguaggio a sé stante con sintassi semantica propria ed è indipendente dalle applicazioni, utilizzata soprattutto dal DBA. Consente a ogni programmatore di selezionare solo una parte dello schema che gli interessa. Un esempio potrebbe essere Access. DML (Data Manipulation Language) E’ un linguaggio per la modifica, l’inserimento, la cancellazione e il reperimento dei dati. Può essere un linguaggio a sé stante o un’estensione del linguaggio ospite. Esempio: collegamento a Visual Basic All’interno del DML si possono distinguere in: - procedurali: quando hanno gli operatori per trarre i singoli record - non procedurali: quando gli operatori sono indipendenti dal concetto di posizione cioè considerano i dati collettivamente GLI UTENTI Il DBA ha il compito di: - creare e manutenere lo schema logico (organizzazione dei dati) - definire e manutenere lo schema interno (gestione dei dati sui supporti di massa) - definire ed aggiornare le restrizioni d’accesso - ripristinare la base di dati in caso di mal funzionamento Il programmatore ha il compito di: - realizzare applicazioni utilizzando il DML o altri linguaggi di programmazione Utenti finali - occasionali (hanno bisogno di GUI amichevoli per l’accesso al database) - frequenti (non hanno conoscenze informatiche, ma una discreta dimestichezza con il sistema) - inconsapevoli (coloro che utilizzano una particolare applicazione senza sapere che è basata su una base di dati) MODELLI La classificazione dei modelli è basata su come vengono rappresentate e trattate le associazioni, in particolare come vengono gestiti gli archi che rappresentano le associazioni nella rappresentazione grafica dello schema. - arco informativo (utilizzati da modelli a grafo): senza la sua presenza fisica non è possibile collegare le due entità - arco non informativo (utilizzati da modelli relazionali): le informazioni necessarie sono già contenute nelle entità stesse e quindi non è necessario utilizzare puntatori fisici