Introduzione alla teoria dei database relazionali

Progettaz. e sviluppo Data Base
! Introduzione ai Database
! Tipologie di DB (gerarchici,
reticolari, relazionali, oodb)
Introduzione ai database
Cos’è un Database
Cos’e un Data Base Management
System (DBMS)
Architettura di un DBMS
Renato Vicinanza
www.marscenter.it
Cos’è un Database
" Un Data Base (DB o base di dati) si puo’ definire
come un insieme integrato di dati elementari e
omogenei che vengono memorizzati da un sistema di
elaborazione dati.
" La dimensione puo’ variare da pochi Megabyte
(gestibile, quindi, da Personal Computer di fascia
bassa) a molti Terabyte (per la cui gestione sono
richieste piattaforme H/W e S/W di piu’ alto livello.)
Renato Vicinanza
www.marscenter.it
Cos’è un Database
" L’approccio convenzionale alla gestione dei dati
sfrutta la presenza di archivi o file per memorizzare i
dati in modo persistente sulla memoria di massa.
" Un file consente di memorizzare e ricercare dati ,
ma consente solo semplici meccanismi di accesso e
condivisione. Inoltre, programmi diversi che hanno
bisogno di accedere a informazioni comuni, non
potrebbero farlo se non duplicando i dati, con problemi
di ridondanza e possibilita’ di incoerenza.
" I DB sono stati concepiti principalmente per
superare questi limiti.
Renato Vicinanza
www.marscenter.it
Cos’è un Database
" Il costo e il tempo necessari per la realizzazione di
un DB possono essere modesti o molto elevati a
seconda della complessita’ del sistema e della quantita’
dei dati: oltre all’H/W e al S/W necessari, infatti,
bisogna opportunamente considerare tempi e costi
necessari alla catalogazione e memorizzazione dei dati
stessi, nonche’, in alcuni casi, al reperimento delle
informazioni, che puo’ essere molto complesso (si
pensi, ad esempio, a basi dati conteneti informazioni
sul patrimonio artistico di un paese o di una nazione).
Renato Vicinanza
www.marscenter.it
Caratteristiche principali di un DB
" Un DB deve essere condivisibile: applicazioni e
utenti diversi debbono poter accedere, secondo
opportune modalita’, a dati comuni.
"In questo modo si riduce la ridondanza dei dati
perche’ si evitano ripetizioni e, conseguentemente, si
riduce anche la possibilita’ di inconsistenze: se esistono
varie copie degli stessi dati, e’ possibile che esse, in
qualche momento non siano uguali; viceversa, se ogni
dato e’ memorizzato in modo univoco non e’ possibile
incorrere in disallineamenti.
Renato Vicinanza
www.marscenter.it
Caratteristiche principali di un DB
" Un DB deve essere persistente: esso, cioe’, ha un
tempo di vita che non e’ limitato a quello alle singole
esecuzioni dei programmi che li utilizzano. (In
contrasto ricordiamo che i dati gestiti da un
programma in memoria centrale hanno una vita che
inizia e termina con l’esecuzione del programma
stesso; tali dati, quindi, non sono persistenti.)
Renato Vicinanza
www.marscenter.it
Cos’è un DBMS
" Col termine di Data Base Management System
(DBMS) indichiamo l’insieme degli strumenti S/W
necessari per la gestione e manutenzione generale di
un Data Base.
"Tutte le operazioni di creazione, aggiornamento,
consultazione, ecc. di un DB possono essere effettuate
utilizzando le funzionalita’ di un DBMS.
"Un DBMS non e’ mai orientato ad uno specifico
dominio applicativo.
Renato Vicinanza
www.marscenter.it
Cos’è un DBMS
" Un DBMS, quindi, puo’ essere definito come
l’insieme dei programmi, in genere dotati di interfacce
“user friendly”, rivolti alla gestione dei dati memorizzati
in un DB (es: MS Access).
"Ovviamente tra DB e DBMS esiste una forte
interazione: il DBMS e’ il sistema attivo e il DB e’
l’oggetto passivo sul quale il DBMS opera.
Renato Vicinanza
www.marscenter.it
DB, DBMS e Applicazioni specifiche
" Oltre all’uso diretto dei tools messi a disposizione
dal DBMS, un altro modo di accedere ai dati contenuti
in un DB e’ quello di sviluppare e/o utilizzare
applicazioni specifiche, progettate per risolvere
problemi legati ad uno specifico dominio (es.
Contabilita’ Generale di una Azienda, Gestione di una
Biblioteca, ecc.).
" A tale scopo e’ necessario utilizzare linguaggi di
programazione per la realizzazione di programmi che,
interfacciandosi con il DBMS, ne utilizzano le
funzionalita’.
Renato Vicinanza
www.marscenter.it
Caratteristiche di un DBMS
" Un DBMS garantisce affidabilita’ , cioe’ la capacita’
di conservare intatto il contenuto della base di dati (o
almeno di permetterne la ricostruzione) in caso di
malfunzionamento H/W o S/W. A questo scopo i DBMS
forniscono specifiche funzionalita’ di salvataggio e
ripristino (backup e restore).
Renato Vicinanza
www.marscenter.it
Caratteristiche di un DBMS
" Un DBMS garantisce la privatezza dei dati : ciascun
utente, identificabile univocamente mediante un nome
utente all’atto di interagire con il DBMS, viene abilitato
a svolgere solo determinate azioni sui dati, attraverso
appositi meccanismi di autorizzazione.
Renato Vicinanza
www.marscenter.it
Caratteristiche di un DBMS
" Un DBMS deve essere efficiente ed efficace:
efficiente in quanto capace di svolgere le operazioni
richieste utilizzando un insieme di risorse (tempo e
spazio) che sia accetabile per gli utenti. Questa
caratteristica dipende sia dalle tecniche utilizzate
nell’implementazione del DBMS sia dalla bonta’ della
realizzazione del DB da parte dei suoi pogettisti.
Inoltre
bisogna
considerare
l’adeguato
dimensionamento del sistema informatico complessivo
sul quale il DBMS e’ installato.
efficace in quanto capace di rendere produttive le
attivita’ dei suoi utenti.
Renato Vicinanza
www.marscenter.it
Architettura di un DBMS
Renato Vicinanza
www.marscenter.it
Architettura di un DBMS
1. Livello Fisico
2. Livello Logico
3. Livello Esterno
Renato Vicinanza
www.marscenter.it
Architettura di un DBMS
Livello fisico
Renato Vicinanza
www.marscenter.it
Architettura di un DBMS
Livello Logico
Renato Vicinanza
www.marscenter.it
Architettura di un DBMS
Livello Logico
" E’ la componente di principale utilizzo da parte
dell’Amministratore del DB (DBA – Data Base
Administrator) per descrivere:
"I tipi di dati contenuti;
"Le loro proprieta’;
"Le associazione i dati;
"I vincoli di integrita’ ( per garantire la consistenza tra i dati del
DB)
Renato Vicinanza
www.marscenter.it
Architettura di un DBMS
Livello Esterno
Renato Vicinanza
www.marscenter.it
Architettura di un DBMS
Livello Esterno
" E’ la componente che supporta l’interfacciamento
verso programmi applicativi, scritti in linguaggi di
programmazione
convenzionali,
che
effettuano
chiamate al DBMS per accedere ai dati del DB.
Renato Vicinanza
www.marscenter.it
Architettura di un DBMS
Indipendenza dei Dati
" La struttura a livelli consente di introdurre il
concetto di “Indipendenza dei Dati”
" Piu’ specificatamente con il concetto di
“Indipendenza Logica” si intende la possibilita’ di
modificare il livello logico senza dover modificare il
livello esterno e, quindi, senza dover riscrivere i
programmi applicativi.
Renato Vicinanza
www.marscenter.it
Tipologie di DB
Gerarchici
Reticolari
Relazionali
Object oriented
Renato Vicinanza
www.marscenter.it
Tipologie di Database
" La piu’ diffusa classificazione dei Data Base e’
basata sul “modello dei dati” che esso supporta.
" Quando parliamo di “modello dei dati” ci riferiamo
all’insieme dei concetti utilizzati per organizzare i dati
di interesse e descriverne la struttura in un modo
comprensibile ad un calcolatore.
" E’ importante segnalare che il modello dei dati e’
implementato
all’interno
del
livello
logico
(precedentemente descritto) di un DBMS.
Renato Vicinanza
www.marscenter.it
Tipologie di Database
" I modelli sui quali ci soffermeremo sono:
" Gerarchico: anni 60.
" Reticolare: inizio anni 70.
" Relazionale: fine anni 70 inizio anni 80; e’ ancora
oggi il piu’ diffuso.
" a Oggetti: anni 80
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Gerarchico
" Il modello gerarchico e’ basato sull’uso di strutture
ad albero (e quindi gerarchie, da cui il nome).
" A partire da un dato padre, si accede a dati figli che
da esso dipendono.
" A loro volta questi dati possono essere padri di altri
figli.
" Definito durante la prima fase di sviluppo dei DBMS
(anni 60) e’ tuttora ampiamente diffuso, soprattutto in
ambito mainframe.
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Gerarchico
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Gerarchico
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Gerarchico
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Reticolare
" Il modello reticolare (detto anche CODASYL dal
nome del comitato di standardizzazione che lo defini’
con precisione) e’ basato sull’uso di grafi.
" Si tratta di un modello poco diffuso a causa della
complessita’ di gestione e della difficolta’ di progetto
per ottenere un’organizzazione efficiente dei dati.
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Reticolare
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Reticolare
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Reticolare
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Relazionale
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Relazionale
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello Relazionale
" La maggior parte dei sistemi di basi dati oggi sul
mercato si fonda sul modello relazionale.
" Per questo tale modello sara’ opportunamente
approfondito piu’ avanti.
Renato Vicinanza
www.marscenter.it
Tipologie di Database
Modello a oggetti
" Il modello a oggetti nasce come evoluzione del
modello relazionale estendendo alle basi di dati il
paradigma di programmazione ad oggetti.
Renato Vicinanza
www.marscenter.it
Tipologie di Database
" I modelli elencati sono tutti effettivamente
disponibili su DBMS commerciali; essi sono detti logici
per sottolineare il fatto che le strutture utilizzate da
questi modelli, pur essendo astratte, riflettono una
particolare organizzazione (ad albero, a grafi, a tabelle
o a oggetti).
Renato Vicinanza
www.marscenter.it
Tipologie di Database
" Piu’ recentemente sono stati introdotti altri modelli
di dati, detti concettuali, utilizzati per descrivere i dati
indipendentemente dalla scelta del modello logico.
"Il loro nome deriva dal fatto che tendono a
descrivere i concetti del mondo reale, piuttosto che i
dati utili a rappresentarli.
Renato Vicinanza
www.marscenter.it
Tipologie di Database
" Essi vengono utilizzati nella fase preliminare del
processo di progettazione di base dati, per analizzare
nel modo migliore la realta’ di interesse, senza
“contaminazioni” di tipo realizzativo.
" Uno dei modelli concettuali piu’ diffusi ed utilizzati e’
il modello Entita’-Relazioni.
Renato Vicinanza
www.marscenter.it