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)
DML (Data Manipulation Language) consente agli utenti di interrogare, inserire, cancellare e modificare la base di dati.
Schema logico: 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).
Model lo log ico : 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)