Basi di Dati Concetti e Principi Generali Maria Mirto Organizzazione dei Dati Archivi o file • Procedure di accesso in qualunque linguaggio di programmazione • Duplicazione dati: ridondanza incoerenza formati diversi dei dati Organizzazione dei Dati Sistema di gestione di Basi di Dati Data Base Management System (DBMS) • Ha un proprio linguaggio basato su un proprio Modello di dati • Evita ridondanza e incoerenza Base di Dati = Insieme di dati gestiti da un DBMS. E’ una raccolta di dati logicamente correlati e progettati per essere fruiti in maniera ottimizzata da differenti applicazioni e/o utenti. DBMS Basi di Dati: • Grandi • Condivise (no ridondanza) DBMS garantisce: • • • • • • • Persistenza e consistenza: Tempo di vita delle informazioni non limitato. Gestire l’accesso concorrente. Affidabilità: consentire l’accesso ai dati sempre Privatezza e sicurezza: contro eventi accidentali o interventi non autorizzati Efficienza: ottimizzato in tempo, spazio Efficacia: deve essere in grado di rendere produttive e semplici le attività richieste dagli utenti Integrità dei dati Supporto alle transazioni Schema BD Descrizione dell’organizzazione dei dati • Invariante nel tempo (salvo riorganizzazione) Livelli di astrazione • Schema esterno (Vista): Livello nel quale operano gli utenti attraverso la propria personale “vista” esterna del database (predisposta dal DBA Data Base Administrator). • • Schema logico: Livello all’interno del quale viene definito l’intero schema dei dati (schema relazionale) indipendente dalla realizzazione fisica. Schema fisico: implementazione schema logico Linguaggi Schema esterno (Vista) Schema logico: DML (Data Manipulation Language) consente agli utenti di interrogare, inserire, cancellare e modificare la base di dati. DDL (Data Definition Language) viene utilizzato per definire le caratteristiche e le corrispondenze delle varie categorie presenti. DCL (Data Control Language) permette operazioni relative al controllo degli accessi. Schema fisico: implementazione schema logico DMCL (Data Media Control Language) Istanza BD Definita su un dato schema Insieme dei valori effettivi dei dati Cambia nel tempo • Inserzione • Cancellazione • Modifica Indipendenza dei dati L’utente interagisce con il DB • A un certo livello di astrazione • Senza bisogno di conoscere i livelli sottostanti • Che possono essere modificati Indipendenza dei dati Indipendenza logica • Interazione con il livello esterno • Senza conoscere schema logico Indipendenza fisica • Interazione con il livello logico • Senza conoscere schema fisico (allocazione dei dati su ) Modello dei Dati Insieme di concetti è un’insieme di concetti e di costrutti per organizzare i dati di interesse e descriverne la struttura e la dinamica (associazioni e vincoli che devono rispettare) • Descrizione dei Dati • Organizzazione dei Dati Modello dei dati ⇒ meccanismi di strutturazione Progettazione DB Modello concettuale dei dati: permette di rappresentare i concetti (dati), indipendentemente dall’implementazione. Uno dei più noti è il Modello E-R (Entità-Relazione). M o d e l l o l o g i c o : Pur essendo ancora una rappresentazione astratta dei dati riflette già di una particolare organizzazione. Descrive l’organizzazione dei dati con l’influenza del tipo di implementazione fisica definitiva (Gerarchico, Reticolare, Relazionale, ad oggetti) Modello fisico: allocazione sui dispositivi Modello dei Dati Modelli principali: (Logici) • Gerarchico ⇒ alberi • Reticolare ⇒ grafi • Relazionale ⇒ relazioni • A oggetti ⇒ relazioni più oggetti Modelli concettuali: descrizione di alto livello dei dati indipendente dal modello logico E – R ≡ Entity – Relationship Progettazione DB Linguaggi per Basi di Dati Data Definition Language (DDL) • Definizione schemi • Definizione autorizzazioni di accesso Linguaggi per Basi di Dati Data Manipulation Language (DML) Aggiornamento istanze DB • Inserzione • Cancellazione • Modifica Estrazione informazioni da DB Interrogazione ≡ Query DML ≡ Query Language SQL ≡ DDL + DML Linguaggi per Basi di Dati Classi di Linguaggi: • Interattivi testuali • Interattivi grafici • Immersi in altri linguaggi di programmazione Linguaggi per Basi di Dati Interazione con Basi di Dati • Progettisti e programmatori • Amministratore DB Administrator (DBA) Progetto Controllo Amministrazione • Utenti finali: utilizzano frequentemente la BD con query predefinite casuali: query non predefinite Linguaggi per basi di dati • Un altro contributo all’efficacia: disponibilità di vari linguaggi e interfacce linguaggi testuali interattivi (SQL) comandi (SQL) immersi in un linguaggio ospite (Pascal, Java, C ...) comandi (SQL) immersi in un linguaggio ad hoc, con anche altre funzionalità (p.es. per grafici o stampe strutturate) con interfacce amichevoli (senza linguaggio testuale)