Basi di Dati prof. A. Longheu 1 – Generalità Cap. 1 “Basi di dati” Atzeni – Ceri – Paraboschi - Torlone Schema del corso Concetti preliminari Database e DBMS: Definizioni e caratteristiche Modelli Schemi Architettura a livelli e indipendenze Istanze Linguaggi per DB Accesso ai DB Utilizzatori di DB Concetti Preliminari - 1 Prima di definire una base di dati, occorre conoscere alcune definizioni : Sistema informativo Sistema per raccogliere, organizzare e gestire le informazioni di un’organizzazione. Ad esempio, l’anagrafe o il catasto sono sistemi informativi. Sistema informatico E’ l’eventuale parte automatizzata di un sistema informativo. Oggi la quasi totalita’ dei sistemi informativi viene trasformata in sistema informatico per aumentarne l’efficienza. Concetti Preliminari - 2 Altri concetti che occorre conoscere sono: Dato : Insieme di simboli che devono essere elaborati. I dati da soli non significano nulla. Ad esempio, l’insieme di caratteri “Mario Rossi - 211072” scritti su un foglio di carta, non significano niente se non si sa “come” leggerli. Informazione : Notizia che consente di avere la conoscenza su dati fatti. L’informazione è ciò che il dato diventa quando se ne fornisce una chiave di lettura: Informazione = Dato + Interpretazione del dato. In tal modo, si può accrescere la propria conoscenza su un dato fatto. In altre parole, il dato è la rappresentazione dell’informazione. Ad esempio, l’insieme di caratteri “Mario Rossi - 211072” (dato) e la chiave di lettura “Nome dell’impiegato e suo numero di telefono” (interpretazione del dato), ci dicono “come” il dato va letto, e consentono di aumentare la conoscenza (il sapere che Mario Rossi è impiegato e il suo numero è 211072). Definizione di Basi di dati e loro gestore Mettendo insieme tutti i concetti preliminari introdotti sinora: Dati & Informazioni Sistemi Informativi ed Informatici Database (DB) Un Database (in italiano, Base di Dati) è un insieme di dati che rappresentano le informazioni di un dato sistema informativo. Una qualunque base di dati è gestita da un opportuno software: Database Management System (DBMS) Un DBMS (sistema per la gestione della base di dati) è un software in grado di gestire db che siano grandi, condivisi e persistenti, assicurando la loro affidabilità e privatezza. Come tutti i software, un DBMS deve essere efficiente ed efficace. Sviluppiamo i singoli aspetti... Caratteristiche dei DB Grandi - fino a migliaia di miliardi di byte (la dimensione non deve rappresentare un problema); - uso esplicito di memoria secondaria (da gestire in maniera efficiente). Condivisi - applicazioni e utenti diversi possono accedere, anche contemporaneamente; - riduzione della ridondanza e quindi della eventuale inconsistenza; - problema della concorrenza. Persistenti - il tempo di vita dei dati non è limitato al tempo di esecuzione del software che li gestisce. Caratteristiche dei DBMS Affidabili - capacità del sistema di conservare intatto o di potere ricostruire il DB dopo eventuali danni hw o sw; - procedure di backup (salvataggio periodico dei dati) e recovery (ripristino della base di dati dopo un danno). Privatezza - garantiscono il controllo degli accessi, ossia è possibile stabilire quali utenti sono autorizzati ad accedere quali informazioni. Efficienti - il DBMS deve svolgere le operazioni richieste utilizzando un insieme di risorse (tempo, hardware) adeguato (il minimo possibile); - I grandi DBMS forniscono così tante funzionalità che l’efficienza è garantita solo se l’hardware è opportunamente dimensionato. Efficaci - i DBMS devono consentire di aumentare la qualità del lavoro Modelli dei Dati “Insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo comprensibile per un calcolatore” • Modello Gerarchico – strutture ad albero (anni ‘60) • Modello Reticolare – grafi (anni ‘70) • Modello ad Oggetti – estende il paradigma ad oggetti ai DB (anni ‘80) • Modello Relazionale Schemi ed Istanze Ogni base di dati può essere vista sotto due diversi punti di vista • Schema (componente intensionale): • – rappresenta la descrizione di come i dati sono fatti e quali sono i loro attributi (“scheletro” del db) Istanza (componente estensionale): – rappresenta l’insieme dei dati contenuti nel DB. Essi sono interpretati grazie allo schema o estensione Corso Schema Docente Italiano Fisica Corso Italiano Fisica Docente Rossi Verdi Rossi Verdi Istanza Livelli di Astrazione dello Schema Di schemi in realtà non ne esiste solo uno, ma tre: • schema logico – descrizione dell’intera base di dati per mezzo del modello adottato (relazionale, reticolare…) • schema interno (o fisico) – rappresenta le strutture fisiche utilizzate per implementare lo schema logico • schema esterno (viste) – descrizione di una parte del DB per mezzo del modello logico prescelto. E’ possibile avere più schemi esterni dello stesso DB Modelli, Schemi ed Istanze Mettendo insieme i concetti introdotti finora, si ha: usato per creare Modello Logico Schema logico si traduce in popolano Dati (Istanze) Schema interno dal db si può definire Schema esterno schema interno + dati DATABASE Indipendenza dei Dati L’architettura a livelli precedentemente definita, consente di realizzare l’indipendenza dei dati: •indipendenza fisica, in quanto si può interagire con il db indipendentemente dalla struttura fisica dei dati. Ad esempio, se occorre effettuare un aggiornamento dell’hardware, si potrebbe dover cambiare la struttura fisica, ma questo è (si fa in modo che sia così) indipendente dallo schema logico •indipendenza logica, in quanto si può interagire con lo schema esterno (viste) indipendentemente dalla struttura logica dei dati. Ad esempio, si può aggiungere o cancellare uno schema esterno senza che questo alteri lo schema logico, e viceversa Linguaggi per DB I linguaggi per i DB si distinguono in due categorie secondo che agiscono sullo schema o sull’istanza del DB: • DDL: Data Definition Language – utilizzati per definire gli schemi logici, esterni, fisici e le autorizzazioni • DML: Data Manipulation Language – utilizzati per l’interrogazione e l’aggiornamento delle istanze di un DB Esistono linguaggi che includono entrambe le capacità, ad esempio SQL Accesso ai Dati L’accesso ai dati può essere effettuato in varie modalità: • Linguaggi testuali interattivi (SQL) • Tramite comandi testuali inseriti in linguaggi di programmazione tradizionali (C, C++, Pascal) • Tramite comandi testuali inseriti in linguaggi di sviluppo appositi (Macro di Access) • Tramite interfacce user-fiendly (Access) Utilizzatori del Database • Amministratore della Base di Dati – è responsabile della progettazione, controllo e amministrazione del DB. – deve garantire sufficienti prestazioni, affidabilità e gestire le autorizzazioni di accesso ai dati • Progettisti e programmatori – sono coloro che creano le procedure di interfaccia e i database stesso (per mezzo del DML) • Utenti – casuali, accedono ai dati tramite procedure ad-hoc – usuali, hanno necessità di interfacce che ne facilitano il compito (ripetitivo).