Post on 01-May-2015
G. Mecca – mecca@unibas.it – Università della BasilicataG. Mecca – mecca@unibas.it – Università della Basilicata
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)
2G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Sommario
Un po’ di StoriaSuccesso del modello relazionaleDBMS Orientati agli oggetti
Alcuni Limiti del Modello Relazionale DBMS Relazionali a Oggetti
row type, oid, ereditarietàcollezionitipi di dato astratto
Modelli a Oggetti >> Sommario
3G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Un po’ di Storia: Anni ‘70
Anni ’70DBMS gerarchiciDBMS reticolari
Modello di dati basato su alberi o grafi Dipendenza dal modello fisico Interrogazioni
navigazioni del grafo
Modelli a Oggetti >> Un po’ di storia
4G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Un po’ di Storia: Anni ‘80
Anni ’80Codd “A Relational Model for Large Shared Data
Banks”, CACM, giugno 1970DBMS relazionali
Modello semplice ed elegante Caratteristiche del modello
legami tra i dati basati sui valoriI forma normale (domini elementari)indipendenza rispetto al modello fisico
Modelli a Oggetti >> Un po’ di storia
5G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
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
Modelli a Oggetti >> Un po’ di storia
6G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Un po’ di Storia
Anni ’90nuove applicazioniGIS, CAD, dati multimediali, documentioggetti 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”
Modelli a Oggetti >> Un po’ di storia
7G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Un po’ di Storia
Tecnologia a oggettisistema di tipi riccoclassi di oggetti basati sui tipiereditarietà e polimorfismo
Tecnologia di successo nei linguaggi di programmazione (C++, Java)
Sistemi per Basi di Dati Orientati agli Ogg.la soluzione finale ?
Modelli a Oggetti >> Un po’ di storia
8G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
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 prodottidipendenza dal linguaggio (Java ?)prestazioni inferiori
Modelli a Oggetti >> Un po’ di storia
9G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
I Quadranti di Stonebraker
Modelli a Oggetti >> Un po’ di storia
Complessità delle interrogazioni
Co
mp
less
ità d
ei t
ipi d
i da
to
DBMSRelazionale
a Oggetti
Linguaggio di prog.+
File System
DBMSRelazionale
DBMSOrientato
agli Oggetti
10G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionali a Oggetti
Idea di baseconservare l’organizzazione di fondoestendere il sistema di tipi identità di oggetto ed ereditarietàcollezioni (array)tipi definiti dall’utente
Vantaggiricchezza di rappresentazionesemplicità di programmazione OO
Modelli a Oggetti >> Un po’ di Storia
11G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Un Esempio
La base di dati universitariaprofessori: nome, cognome, data e luogo di
nascita, qualifica, facoltà, …studenti: nome, cognome, data e luogo di
nascita, matricola, … numeri di telefono dei professorimateriale didattico messo in linea dai
professori: professore, corso, descrizione, file
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
12G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
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));
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
13G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Professori e Studenti
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Sci
Ing
fac
associato
ordinario
qualifica
Milano01-02-1940ManzoniAlessandro
Recanati10-10-1957LeopardiGiacomo
luogoNdataNnomecognomeProfessori
Gian
Piero
cognome
Potenza02-12-1990Burrasca 3456
Potenza10-11-1987Pierino1234
luogoNdataNnomematricolaStudenti
Alternativa: introdurre un identificatore compatto per i professori(in questi esempi utilizzeremo l’identificatore esteso)
14G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Professori e Studenti
Ogni volta che è necessario:“l’elenco di tutte le persone ammesse alla
biblioteca”“elenco dei libri in prestito”
Due opzioniopzione 1: unire i dati delle due tabelle ogni
volta che è necessarioopzione 2: mantenere una tabella “persone”
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
15G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Professori e Studenti: Opzione 1
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
cognome nome qualifica dataN fac luogoN
Giacomo Leopardi ordinario 10-10-1957 Ing Recanati
Alessandro Manzoni associato 01-02-1940 Sci Milano
Professori
matricola cognome nome dataN luogoN
1234 Piero Pierino 10-11-1987 Potenza
3456 Gian Burrasca 02-12-1990 Potenza
Studenti
Prestiti in bibliotecacodiceLibro, riferimento alla personaquale riferimento ?quale vincolo di integrità ?
16G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Professori e Studenti: Opzione 2
Modelli a Oggetti >> DBMS Relazionali a Oggetti
Professori
matricola cognome nome dataN luogoN
1234 Piero Pierino 10-11-1987 Potenza
3456 Gian Burrasca 02-12-1990 Potenza
Studenti
Milano02-12-1990ManzoniAlessandro
Recanati10-10-1957LeopardiGiacomo
Gian
Piero
cognome
Potenza02-12-1990Burrasca
Potenza10-11-1987Pierino
luogoNdataNnomePersone
cognome nome qualifica dataN fac luogoN
Giacomo Leopardi ordinario 10-10-1957 Ing Recanati
Alessandro Manzoni associato 01-02-1940 Sci Milano
17G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
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));
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
18G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Numeri di Telefono
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Professori
NumeriTel
347345678ordinarioLeopardiGiacomo
associato
ordinario
qualifica
0971205134ManzoniAlessandro
0971202121LeopardiGiacomo
numeronomecognome
cognome nome qualifica dataN fac luogoN
Giacomo Leopardi ordinario 10-10-1957 Ing Recanati
Alessandro Manzoni associato 01-02-1940 Sci Milano
19G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
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 (“de-normalizzare” la tabella Professori)
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
20G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Numeri di Telefono: Opzione 2
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
Sci
Ing
Ing
fac
347345678Recanati10-10-1957ordinarioLeopardiGiacomo
Milano
Recanati
luogoN
associato
ordinario
qualifica
097120513401-02-1940ManzoniAlessandro
097120212110-10-1957LeopardiGiacomo
numerodataNnomecognome
ProfessoriENumeri
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));
Rappresentazione di qualità molto scadente (“denormalizzata”)
21G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Numeri di Telefono: Opzione 2
ProfessoriENumeri, Ridondanzaes: la facoltà di Leopardi
Anomalie di aggiornamentoes: cambi di facoltà
Anomalie di inserimentoprofessori senza numero
Anomalie di cancellazionecancellazione di numeri di telefono
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
22G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Materiale DidatticoTABLE 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));
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
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…
Materiale
23G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Materiale Didattico
Ogni volta che è necessario:pubblicare sul sito Web di facoltà le dispense in
formato ppt compresseridurre la risoluzione delle immagini jpg
Devoprelevare i dati (di grandi dimensioni) dal DBMSeffettuare le operazioni con un linguaggio di
programmazione all’esterno del DBMStipicamente questo tipo di dati viene tenuto fuori dal
DBMS (file system)
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
24G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionale a Oggetti
Sistema di tipi arricchitoTipi ennupla (“row type”)
ereditarietà (singola)oid e riferimenti
Collezioni (array)Tipi di dato astratto
dati complessi
Funzioni sui tipi
Modelli a Oggetti >> DBMS Relazionali a Oggetti
25G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
DBMS Relazionale a Oggetti
Estensioni offerte dalla maggior parte dei prodotti commercialies: Oracle, IBM DB2, Sybase
PostgreSQLun DBMS relazionale a oggetti open source
StandardSQL:1999
Modelli a Oggetti >> DBMS Relazionali a Oggetti
26G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
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);
Modelli a Oggetti >> DBMS Relazionali a Oggetti
27G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Tipo Ennupla o “Row Type”
Schema di tabellarow type
Ereditarietà singola Funzioni sui valori del tipo
metodi Istanza di tabella
collezione di oggetti istanze del row typeoid
Modelli a Oggetti >> DBMS Relazionali a Oggetti
28G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Professori e Studenti
Modelli a Oggetti >> DBMS Relazionali a Oggetti
oid cognome nome qualifica dataN luogoN
o3 Giacomo Leopardi ordinario 10-10-1957 Recanati
o4 Alessandro Manzoni associato 01-02-1940 Milano
Professori
oid matricola cognome nome dataN luogoN
o1 1234 Piero Pierino 10-11-1987 Potenza
o2 3456 Gian Burrasca 02-12-1990 Potenza
Studenti
o4
o3
o2
o1
oid
Milano02-12-1990ManzoniAlessandro
Recanati10-10-1957LeopardiGiacomo
Gian
Piero
cognome
Potenza02-12-1990Burrasca
Potenza10-11-1987Pierino
luogoNdataNnomePersone
Es: metodo per il calcolo del codice fiscale
29G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Array
E’ l’unico tipo di collezione prevista dal SQL:1999
Array semplicino array di array
Base 1 Possono avere dimensione variabile
es: integer ARRAY[10]fino a 10 numeri interi
Modelli a Oggetti >> DBMS Relazionali a Oggetti
30G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Numeri di Telefono
TABLE Professori OF Persona
(qualifica char(15),
numeri char(9) ARRAY[5]);
Modelli a Oggetti >> DBMS Relazionali a Oggetti
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}
Professori
31G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Tipi di Dati Astratti (ADT)
Posso definire nuovi tipi complessies: ppt_file, jpg_image, zip_file
Il tipo è una scatola neralinguaggio di programmazionestrategia di memorizzazionemetodi di accesso
Nelle tabelle lo uso come un tipo di base Le operazioni vengono eseguite dentro il DBMS
Modelli a Oggetti >> DBMS Relazionali a Oggetti
32G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Materiale Didattico
TYPE ppt_file (internallenght = 10M, input = ppt_in, output = ppt_out);
FUNCTION ppt_in(ppt_file) returns varbinaryEXTERNAL NAME ‘/bin/extensions/ppt_in.class’LANGUAGE Java
FUNCTION ppt_out(varbinary) returns ppt_fileEXTERNAL NAME ‘/bin/extensions/ppt_out.class’LANGUAGE Java
FUNCTION comprimi(ppt_file) returns zip_fileEXTERNAL NAME ‘/bin/extensions/compress.jar’LANGUAGE Java
Modelli a Oggetti >> DBMS Relazionali a Oggetti
33G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Materiale Didattico
TABLE Materiale(docente REF(professori),
descrizione TEXT,
formato char(5),
file ppt_file);
Modelli a Oggetti >> DBMS Relazionali a Oggetti
oid docente descrizione formato file
m1 o3 Questa disp… ppt xxxxx
m2 o3 Date degli… ppt xxxxx
Materiale
E’ possibilecostruire unagerarchia per glialtri tipi di file(es: zip_file ecc.)
34G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Sistemi Relazionali a Oggetti
Sistema ricco di tipi “Universal Database”
extenders (rasoio e lamette)integrazione profonda degli ADT nel DBMS
Semplicità di programmazione OOJDBC vs JDO
Prestazioni di rilievomodello fisico molto simile a quello relazionale“clustering” più spinto
Modelli a Oggetti >> DBMS Relazionali a Oggetti
35G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Sistemi Relazionali a Oggetti
Grandi investimenti Ancora poca omogeneità
SQL:1999 è recente PostgreSQL
offre tutte le funzionalità descritteattenzione: sintassi non standard
es: non esiste la parola chiave ARRAY
Modelli a Oggetti >> DBMS Relazionali a Oggetti
36G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Sommario
Un po’ di StoriaSuccesso del modello relazionaleDBMS Orientati agli oggetti
Alcuni Limiti del Modello Relazionale DBMS Relazionali a Oggetti
row type, oid, ereditarietàcollezionitipi di dato astratto
Modelli a Oggetti >> Sommario
37G. Mecca - mecca@unibas.it - Basi di DatiG. Mecca - mecca@unibas.it - Basi di Dati
Termini della Licenza
Termini della Licenza
This work is licensed under the Creative Commons Attribution-ShareAlike 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.