Corso di Basi di Dati

Download Report

Transcript Corso di Basi di Dati

Basi di Dati
DBMS Relazionali a Oggetti:
Introduzione
versione 2.0
Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
(vedi ultima pagina)
G. Mecca – [email protected] – Università della Basilicata
Modelli a Oggetti >> Sommario
Sommario
 Un
po’ di Storia
Successo del modello relazionale
DBMS Orientati agli oggetti
 Alcuni
Limiti del Modello Relazionale
 DBMS Relazionali a Oggetti
row type, oid, ereditarietà
collezioni
tipi di dato astratto
G. Mecca - [email protected] - Basi di Dati
2
Modelli a Oggetti >> Un po’ di storia
Un po’ di Storia: Anni ‘70
 Anni
’70
DBMS gerarchici
DBMS reticolari
 Modello
di dati basato su alberi o grafi
 Dipendenza dal modello fisico
 Interrogazioni
navigazioni del grafo
G. Mecca - [email protected] - Basi di Dati
3
Modelli a Oggetti >> Un po’ di storia
Un po’ di Storia: Anni ‘80

Anni ’80
Codd “A Relational Model for Large Shared Data
Banks”, CACM, giugno 1970
DBMS relazionali
Modello semplice ed elegante
 Caratteristiche del modello

legami tra i dati basati sui valori
I forma normale (domini elementari)
indipendenza rispetto al modello fisico
G. Mecca - [email protected] - Basi di Dati
4
Modelli a Oggetti >> Un po’ di storia
Un po’ di Storia: Anni ‘80
Ottime prestazioni
 Servizi avanzati

concorrenza, affidabilità, sicurezza

Standard SQL-89, SQL-92
“intergalactic dataspeak”

Architettura a tre livelli
schemi esterni, schema logico, schema fisico

Grande successo nei sistemi informativi
dati gestionali
G. Mecca - [email protected] - Basi di Dati
5
Modelli a Oggetti >> Un po’ di storia
Un po’ di Storia
 Anni
’90
nuove applicazioni
GIS, CAD, dati multimediali, documenti
oggetti con struttura complessa
 Il
mondo è fatto di oggetti, non di tabelle
 Il “garage” relazionale
“per conservare la tua auto ti costringe a
farla a pezzi e conservare ciascun pezzo in
un cassettino”
G. Mecca - [email protected] - Basi di Dati
6
Modelli a Oggetti >> Un po’ di storia
Un po’ di Storia
 Tecnologia
a oggetti
sistema di tipi ricco
classi di oggetti basati sui tipi
ereditarietà e polimorfismo
 Tecnologia
di successo nei linguaggi di
programmazione (C++, Java)
 Sistemi per Basi di Dati Orientati agli Ogg.
la soluzione finale ?
G. Mecca - [email protected] - Basi di Dati
7
Modelli a Oggetti >> Un po’ di storia
Un po’ di Storia
Moltissima ricerca (e risultati interessanti)
 DBMS a Oggetti Commerciali

O2, Objectstore, GemStone

Standard ODMG-93
linguaggio OQL

Scarso successo commerciale (nicchia)
differenze notevoli tra i prodotti
dipendenza dal linguaggio (Java ?)
prestazioni inferiori
G. Mecca - [email protected] - Basi di Dati
8
Modelli a Oggetti >> Un po’ di storia
Complessità dei tipi di dato
I Quadranti di Stonebraker
DBMS
Orientato
agli Oggetti
DBMS
Relazionale
a Oggetti
Linguaggio di prog.
+
File System
DBMS
Relazionale
Complessità delle interrogazioni
G. Mecca - [email protected] - Basi di Dati
9
Modelli a Oggetti >> Un po’ di Storia
DBMS Relazionali a Oggetti

Idea di base
conservare l’organizzazione di fondo
estendere il sistema di tipi
identità di oggetto ed ereditarietà
collezioni (array)
tipi definiti dall’utente

Vantaggi
ricchezza di rappresentazione
semplicità di programmazione OO
G. Mecca - [email protected] - Basi di Dati
10
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Un Esempio
 La
base di dati universitaria
professori: nome, cognome, data e luogo di
nascita, qualifica, facoltà, …
studenti: nome, cognome, data e luogo di
nascita, matricola, …
numeri di telefono dei professori
materiale didattico messo in linea dai
professori: professore, corso, descrizione, file
G. Mecca - [email protected] - Basi di Dati
11
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Professori e Studenti
TABLE Studenti(matricola integer PRIMARY KEY,
cognome varchar(20) NOT NULL,
nome varchar(20) NOT NULL,
dataN date,
luogoN varchar(30),
UNIQUE (cognome, nome, dataN, luogoN));
TABLE Professori(cognome varchar(20),
nome varchar(20),
qualifica char(15),
dataN date,
luogoN varchar(30),
facolta char(10),
UNIQUE (cognome, nome, dataN, luogoN),
PRIMARY KEY (cognome, nome, qualifica));
G. Mecca - [email protected] - Basi di Dati
12
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Professori e Studenti
Professori
Studenti
cognome
nome
qualifica
dataN
fac
luogoN
Giacomo
Leopardi
ordinario
10-10-1957
Ing
Recanati
Alessandro
Manzoni
associato
01-02-1940
Sci
Milano
matricola
cognome
nome
dataN
luogoN
1234
Piero
Pierino
10-11-1987
Potenza
3456
Gian
Burrasca
02-12-1990
Potenza
Alternativa: introdurre un identificatore compatto per i professori
(in questi esempi utilizzeremo l’identificatore esteso)
G. Mecca - [email protected] - Basi di Dati
13
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Professori e Studenti
 Ogni
volta che è necessario:
“l’elenco di tutte le persone ammesse alla
biblioteca”
“elenco dei libri in prestito”
 Due
opzioni
opzione 1: unire i dati delle due tabelle ogni
volta che è necessario
opzione 2: mantenere una tabella “persone”
G. Mecca - [email protected] - Basi di Dati
14
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Professori e Studenti: Opzione 1
Professori
Studenti
cognome
nome
qualifica
dataN
fac
luogoN
Giacomo
Leopardi
ordinario
10-10-1957
Ing
Recanati
Alessandro
Manzoni
associato
01-02-1940
Sci
Milano
matricola
cognome
nome
dataN
luogoN
1234
Piero
Pierino
10-11-1987
Potenza
3456
Gian
Burrasca
02-12-1990
Potenza
 Prestiti
in biblioteca
codiceLibro, riferimento alla persona
quale riferimento ?
quale vincolo di integrità ?
G. Mecca - [email protected] - Basi di Dati
15
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Professori e Studenti: Opzione 2
Persone
Professori
Studenti
cognome
nome
dataN
luogoN
Piero
Pierino
10-11-1987
Potenza
Gian
Burrasca
02-12-1990
Potenza
Giacomo
Leopardi
10-10-1957
Recanati
Alessandro
Manzoni
02-12-1990
Milano
cognome
nome
qualifica
dataN
fac
luogoN
Giacomo
Leopardi
ordinario
10-10-1957
Ing
Recanati
Alessandro
Manzoni
associato
01-02-1940
Sci
Milano
matricola
cognome
nome
dataN
luogoN
1234
Piero
Pierino
10-11-1987
Potenza
3456
Gian
Burrasca
02-12-1990
Potenza
G. Mecca - [email protected] - Basi di Dati
16
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Numeri di Telefono
TABLE Professori(cognome varchar(20) NOT NULL,
nome varchar(20) NOT NULL,
dataN date,
luogoN varchar(30),
qualifica char(15),
facolta char(10),
UNIQUE (cognome, nome, dataN, luogoN),
PRIMARY KEY (cognome, nome, qualifica));
TABLE NumeriTel(cognome varchar(20),
nome varchar(20),
qualifica char(15),
numero char(9),
PRIMARY KEY (cognome, nome, qualifica, numero),
FOREIGN KEY (cognome, nome, qualifica)
REFERENCES Professori(cognome,nome,qualifica));
G. Mecca - [email protected] - Basi di Dati
17
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Numeri di Telefono
Professori
cognome
nome
qualifica
dataN
fac
luogoN
Giacomo
Leopardi
ordinario
10-10-1957
Ing
Recanati
Alessandro
Manzoni
associato
01-02-1940
Sci
Milano
NumeriTel
cognome
nome
qualifica
numero
Giacomo
Leopardi
ordinario
0971202121
Giacomo
Leopardi
ordinario
347345678
Alessandro
Manzoni
associato
0971205134
G. Mecca - [email protected] - Basi di Dati
18
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Numeri di Telefono
 Ogni
volta che è necessario:
“elenco dei professori della facoltà di
Ingegneria con i loro numeri di telefono”
 Due
opzioni
opzione 1: tenere le tabelle separate e
correlare tutte le volte i dati delle due tabelle
(può essere costoso)
opzione 2: mettere tutto in una tabella (“denormalizzare” la tabella Professori)
G. Mecca - [email protected] - Basi di Dati
19
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Numeri di Telefono: Opzione 2
TABLE ProfessoriENumeri(cognome varchar(20),
nome varchar(20),
qualifica char(15),
dataN date,
luogoN varchar(30),
facolta char(10),
numero char(9),
PRIMARY KEY (cognome, nome, qualifica, numero));
ProfessoriENumeri
cognome
nome
qualifica
dataN
fac
luogoN
numero
Giacomo
Leopardi
ordinario
10-10-1957
Ing
Recanati
0971202121
Giacomo
Leopardi
ordinario
10-10-1957
Ing
Recanati
347345678
Alessandro
Manzoni
associato
01-02-1940
Sci
Milano
0971205134
Rappresentazione di qualità molto scadente (“denormalizzata”)
G. Mecca - [email protected] - Basi di Dati
20
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Numeri di Telefono: Opzione 2
 ProfessoriENumeri,
Ridondanza
es: la facoltà di Leopardi
 Anomalie
di aggiornamento
es: cambi di facoltà
 Anomalie
di inserimento
professori senza numero
 Anomalie
di cancellazione
cancellazione di numeri di telefono
G. Mecca - [email protected] - Basi di Dati
21
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Materiale Didattico
TABLE Materiale(cod char(3) PRIMARY KEY,
cognome varchar(20),
nome varchar(20),
qualifica char(15),
descrizione TEXT,
formato char(5),
file VARBINARY,
FOREIGN KEY (cognome, nome, qualifica)
REFERENCES Professori(cognome,nome,qualifica));
Materiale
cod
cognome
nome
qualifica
descrizione
form
file
l01
Giacomo
Leopardi
ordinario
Questa disp...
ppt
01001100…
l02
Giacomo
Leopardi
ordinario
Date degli…
ppt
10111000…
m01
Alessandro
Manzoni
associato
Mat. per la lez…
jpg
11011011…
G. Mecca - [email protected] - Basi di Dati
22
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Materiale Didattico

Ogni volta che è necessario:
pubblicare sul sito Web di facoltà le dispense in
formato ppt compresse
ridurre la risoluzione delle immagini jpg

Devo
prelevare i dati (di grandi dimensioni) dal DBMS
effettuare le operazioni con un linguaggio di
programmazione all’esterno del DBMS
tipicamente questo tipo di dati viene tenuto fuori dal
DBMS (file system)
G. Mecca - [email protected] - Basi di Dati
23
Modelli a Oggetti >> DBMS Relazionali a Oggetti
DBMS Relazionale a Oggetti
 Sistema
di tipi arricchito
Tipi ennupla (“row type”)
ereditarietà (singola)
oid e riferimenti
Collezioni (array)
Tipi di dato astratto
dati complessi
 Funzioni
sui tipi
G. Mecca - [email protected] - Basi di Dati
24
Modelli a Oggetti >> DBMS Relazionali a Oggetti
DBMS Relazionale a Oggetti
 Estensioni
offerte dalla maggior parte dei
prodotti commerciali
es: Oracle, IBM DB2, Sybase
 PostgreSQL
un DBMS relazionale a oggetti open source
 Standard
SQL:1999
G. Mecca - [email protected] - Basi di Dati
25
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Professori e Studenti
TYPE Persona(cognome varchar(20) NOT NULL,
nome varchar(20) NOT NULL,
dataN date,
luogoN varchar(30)
UNIQUE (cognome, nome, dataN, luogoN));
TABLE Professori OF Persona
(qualifica char(15));
TABLE Studenti OF Persona
(matricola integer PRIMARY KEY);
G. Mecca - [email protected] - Basi di Dati
26
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Tipo Ennupla o “Row Type”
 Schema
di tabella
row type
 Ereditarietà
singola
 Funzioni sui valori del tipo
metodi
 Istanza
di tabella
collezione di oggetti istanze del row type
oid
G. Mecca - [email protected] - Basi di Dati
27
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Professori e Studenti
Persone
Professori
Studenti oid
oid
cognome
nome
dataN
luogoN
o1
Piero
Pierino
10-11-1987
Potenza
o2
Gian
Burrasca
02-12-1990
Potenza
o3
Giacomo
Leopardi
10-10-1957
Recanati
o4
Alessandro
Manzoni
02-12-1990
Milano
oid
cognome
nome
qualifica
dataN
luogoN
o3
Giacomo
Leopardi
ordinario
10-10-1957
Recanati
o4
Alessandro
Manzoni
associato
01-02-1940
Milano
matricola
cognome
nome
dataN
luogoN
o1
1234
Piero
Pierino
10-11-1987
Potenza
o2
3456
Gian
Burrasca
02-12-1990
Potenza
Es: metodo per il calcolo del codice fiscale
G. Mecca - [email protected] - Basi di Dati
28
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Array
 E’
l’unico tipo di collezione prevista dal
SQL:1999
 Array semplici
no array di array
 Base
1
 Possono avere dimensione variabile
es: integer ARRAY[10]
fino a 10 numeri interi
G. Mecca - [email protected] - Basi di Dati
29
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Numeri di Telefono
TABLE Professori OF Persona
(qualifica char(15),
numeri char(9) ARRAY[5]);
Professori
oid
cognome
nome
qualifica
dataN
luogoN
numeri
o3
Giacomo
Leopardi
ordinario
10-10-1957
Recanati
{0971202121,
347345678}
o4
Alessandro
Manzoni
associato
01-02-1940
Milano
{0971205134}
G. Mecca - [email protected] - Basi di Dati
30
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Tipi di Dati Astratti (ADT)

Posso definire nuovi tipi complessi
es: ppt_file, jpg_image, zip_file

Il tipo è una scatola nera
linguaggio di programmazione
strategia di memorizzazione
metodi di accesso
Nelle tabelle lo uso come un tipo di base
 Le operazioni vengono eseguite dentro il DBMS

G. Mecca - [email protected] - Basi di Dati
31
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Materiale Didattico
TYPE ppt_file (internallenght = 10M,
input = ppt_in,
output = ppt_out);
FUNCTION ppt_in(ppt_file) returns varbinary
EXTERNAL NAME ‘/bin/extensions/ppt_in.class’
LANGUAGE Java
FUNCTION ppt_out(varbinary) returns ppt_file
EXTERNAL NAME ‘/bin/extensions/ppt_out.class’
LANGUAGE Java
FUNCTION comprimi(ppt_file) returns zip_file
EXTERNAL NAME ‘/bin/extensions/compress.jar’
LANGUAGE Java
G. Mecca - [email protected] - Basi di Dati
32
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Materiale Didattico
TABLE Materiale(docente REF(professori),
descrizione TEXT,
formato char(5),
file ppt_file);
Materiale
E’ possibile
costruire una
gerarchia per gli
altri tipi di file
(es: zip_file ecc.)
oid
docente
descrizione
formato
file
m1
o3
Questa disp…
ppt
xxxxx
m2
o3
Date degli…
ppt
xxxxx
G. Mecca - [email protected] - Basi di Dati
33
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Sistemi Relazionali a Oggetti
Sistema ricco di tipi
 “Universal Database”

extenders (rasoio e lamette)
integrazione profonda degli ADT nel DBMS

Semplicità di programmazione OO
JDBC vs JDO

Prestazioni di rilievo
modello fisico molto simile a quello relazionale
“clustering” più spinto
G. Mecca - [email protected] - Basi di Dati
34
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Sistemi Relazionali a Oggetti
 Grandi
investimenti
 Ancora poca omogeneità
SQL:1999 è recente
 PostgreSQL
offre tutte le funzionalità descritte
attenzione: sintassi non standard
es: non esiste la parola chiave ARRAY
G. Mecca - [email protected] - Basi di Dati
35
Modelli a Oggetti >> Sommario
Sommario
 Un
po’ di Storia
Successo del modello relazionale
DBMS Orientati agli oggetti
 Alcuni
Limiti del Modello Relazionale
 DBMS Relazionali a Oggetti
row type, oid, ereditarietà
collezioni
tipi di dato astratto
G. Mecca - [email protected] - Basi di Dati
36
Termini della Licenza
Termini della Licenza

This work is licensed under the Creative Commons AttributionShareAlike License. To view a copy of this license, visit
http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to
Creative Commons, 559 Nathan Abbott Way, Stanford, California
94305, USA.

Questo lavoro viene concesso in uso secondo i termini della
licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere
una copia della licenza, è possibile visitare
http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una
lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way,
Stanford, California 94305, USA.
G. Mecca - [email protected] - Basi di Dati
37