Download - Basi di Dati

Transcript

G. Mecca – [email protected] – Università della BasilicataG. Mecca – [email protected] – 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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 - [email protected] - Basi di DatiG. Mecca - [email protected] - 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.