DAGLI ARCHIVI AI DATABASE MOTIVAZIONI STORICHE ALL’INTRODUZIONE DEI DB Nei primi tempi i dati erano parte integrante del programma e venivano organizzati seguendo la logica sia dell’algoritmo sia del supporto fisico di memorizzazione. Si utilizzavano i modelli degli archivi Fino al 1965 (III generazione) gli archivi erano costituiti da un insieme di files sequenziali con organizzazione fisica simile all’organizzazione logica. Le elaborazioni erano esclusivamente di tipo batch. LIMITI DELLE ORGANIZZAZIONI TRADIZIONALI La definizione dei dati era embedded nei programmi applicativi piuttosto che essere memorizzata separatamente e indipendentemente Nessun controllo sugli accessi e la manipolazione di dati se non quella imposta dal programma applicativo Separazione e isolamento dei dati (RIGIDITA’) Duplicazione dei dati (RIDONDANZA) La struttura dei file è definita nel codice del programma Format incompatibili per i dati Gli stessi dati sono gestiti da programmi diversi. Spazio di memoria sprecato e talora valori e formato diversi per lo stesso dato Data dependence (DIPENDENZA LOGICA) Ogni programma gestisce il proprio insieme di dati : gli utenti di un programma non hanno possibilità di accedere a dati utili gestiti da altri programmi I programmi sono scritti in linguaggi diversi e non possono accedere agli file altrui Query fisse e proliferazione dei programmi applicativi I programmi sono scritti per funzioni particolari; ogni nuova esigenza richiede un nuovo programma BASI DI DATI Svolta : data base Obiettivo : fornire all’utente un archivio integrato con ampie possibilità di accesso Nei DB infatti ogni utente, in base alle proprie esigenze, può accedere all’archivio per depositare, aggiornare o prelevare le informazioni senza preoccuparsi di gestire l’organizzazione interna dei dati. In senso lato si intende per base di dati una qualsiasi collezione di dati organizzata seguendo uno schema logico che ne permette il reperimento (possono essere anche documenti cartacei) In senso stretto una base di dati o database o banca dati è insieme di archivi memorizzati in modo permanente nella memoria di massa e di relazioni fra di essi Esempi: banca dati normativa = insieme dei testi normativi + relazioni fra le norme (citazioni) banca dati scolastica = dati degli studenti + composizione del piano di studio DBMS DBMS - database management system è il programma specifico (software di base) che gestisce ed organizza basi di dati Solitamente i DBMS consentono e gestiscono l’aggiornamento e l’accesso dei dati da parte di più utenti contemporaneamente e contengono i dati e le informazioni sulle strutture dei dati ovvero i metadati o cataloghi CARATTERISTICHE DI UN DBMS I DBMS consentono l’indipendenza dei dati dai programmi Indipendenza logica (Indipendenza logica) Indipendenza fisica : l’organizzazione a livello fisico dei dati può essere cambiata senza variazioni dell’organizzazione logica e viceversa. persistenza - i dati persistono nel tempo non ridondanza dei dati - i dati vengono memorizzati una sola volta ( o ridondanza controllata) sicurezza - meccanismi di accesso autorizzato ai dati integrità - ad ogni dato vengono associati vincoli di integrità e i programmi che non rispettano queste regole vengono “bloccati” utilizzo concorrente - i dati sono acceduti da più programmi contemporaneamente sistemi di backup e recovery dei dati in caso di errore Facilità di interrogazione FILE VS DB LIVELLI DI ASTRAZIONE DI UN DBMS LIVELLI DBMS COMPONENTI DELL’AMBIENTE DBMS •Hardware : da un Pc ad una rete di computer •Software : DBMS, sistema operativo, programmi applicativi, software di rete (se necessario) •Dati : dell’organizzazione e una loro descrizione in schema e sottoschema •Procedure : istruzioni e regole da applicare al progetto e all’uso del db e dal DBMS Classi di utenza: Si possono individuare almeno 4 classi di utenza di un DBMS a seconda del livello cui accedono e dell’uso che ne fanno. •Utenti finali : ad esempio i lavori di sportello. Usano i comandi messi a disposizione dal programmatore •Utenti non esperti : alcuni DBMS vengono corredati di un linguaggio di manipolazione dei dati detto Query language che consente agli utenti privi di specifiche capacità programmatiche di accedere alle informazioni della base di dati nonché di aggiornarle senza ricorrere alla mediazione di un programma applicativo. •Programmatori applicativi : usano un DML per soddisfare specifiche applicazioni interattive e no. •Amministratori del DB(DBA) : si tratta di una persona o di un gruppo che partecipa in genere alla progettazione di un sistema informatico e che svolge compiti quali : •creazione e manutenzione dello schema logico del DB mediante DDL •definizione e manutenzione dello schema fisico mediante DSL •aggiornamento dei diritti di accesso al DB •corretto ripristino del DB in caso di malfunzionamento hardware o software. LINGUAGGI DI UN DBMS Data Definition Language (DDL) : esprime le regole di generazione degli schemi di un modello logico di dati. Data Manipulation Language (DML) : strumento di ricerca (query) sui dati; consente di accedere e/o modificare i dati di un DB . Il DML può essere un linguaggio di programmazione completo (DML a sé stante) oppure può essere un insieme di operatori e di costrutti linguistici destinati ad essere usati (“immersi”) all’interno di un linguaggio di programmazione tradizionale (DML con linguaggio ospite). Data Control Language(DCL) : strumento per il controllo degli utenti e dei permessi Data Storage Language (DSL) : consente di definire alcuni parametri qualitativi e quantitativi delle strutture fisiche di memorizzazione del DB (schema fisico)