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).