La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

G. Mecca – – Università della Basilicata Basi di Dati DBMS Relazionali a Oggetti: Introduzione versione 2.0 Questo lavoro è concesso in.

Presentazioni simili


Presentazione sul tema: "G. Mecca – – Università della Basilicata Basi di Dati DBMS Relazionali a Oggetti: Introduzione versione 2.0 Questo lavoro è concesso in."— Transcript della presentazione:

1 G. Mecca – – 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)

2 2 G. Mecca - - Basi di Dati Sommario m Un po di Storia Successo del modello relazionale DBMS Orientati agli oggetti m Alcuni Limiti del Modello Relazionale m DBMS Relazionali a Oggetti row type, oid, ereditarietà collezioni tipi di dato astratto Modelli a Oggetti >> Sommario

3 3 G. Mecca - - Basi di Dati Un po di Storia: Anni 70 m Anni 70 DBMS gerarchici DBMS reticolari m Modello di dati basato su alberi o grafi m Dipendenza dal modello fisico m Interrogazioni navigazioni del grafo Modelli a Oggetti >> Un po di storia

4 4 G. Mecca - - Basi di Dati Un po di Storia: Anni 80 m Anni 80 Codd A Relational Model for Large Shared Data Banks, CACM, giugno 1970 DBMS relazionali m Modello semplice ed elegante m Caratteristiche del modello legami tra i dati basati sui valori I forma normale (domini elementari) indipendenza rispetto al modello fisico Modelli a Oggetti >> Un po di storia

5 5 G. Mecca - - Basi di Dati Un po di Storia: Anni 80 m Ottime prestazioni m Servizi avanzati concorrenza, affidabilità, sicurezza m Standard SQL-89, SQL-92 intergalactic dataspeak m Architettura a tre livelli schemi esterni, schema logico, schema fisico m Grande successo nei sistemi informativi dati gestionali Modelli a Oggetti >> Un po di storia

6 6 G. Mecca - - Basi di Dati Un po di Storia m Anni 90 nuove applicazioni GIS, CAD, dati multimediali, documenti oggetti con struttura complessa m Il mondo è fatto di oggetti, non di tabelle m 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

7 7 G. Mecca - - Basi di Dati Un po di Storia m Tecnologia a oggetti sistema di tipi ricco classi di oggetti basati sui tipi ereditarietà e polimorfismo m Tecnologia di successo nei linguaggi di programmazione (C++, Java) m Sistemi per Basi di Dati Orientati agli Ogg. la soluzione finale ? Modelli a Oggetti >> Un po di storia

8 8 G. Mecca - - Basi di Dati Un po di Storia m Moltissima ricerca (e risultati interessanti) m DBMS a Oggetti Commerciali O2, Objectstore, GemStone m Standard ODMG-93 linguaggio OQL m Scarso successo commerciale (nicchia) differenze notevoli tra i prodotti dipendenza dal linguaggio (Java ?) prestazioni inferiori Modelli a Oggetti >> Un po di storia

9 9 G. Mecca - - Basi di Dati I Quadranti di Stonebraker Modelli a Oggetti >> Un po di storia Complessità delle interrogazioni Complessità dei tipi di dato DBMS Relazionale a Oggetti Linguaggio di prog. + File System DBMS Relazionale DBMS Orientato agli Oggetti

10 10 G. Mecca - - Basi di Dati DBMS Relazionali a Oggetti m Idea di base conservare lorganizzazione di fondo estendere il sistema di tipi identità di oggetto ed ereditarietà collezioni (array) tipi definiti dallutente m Vantaggi ricchezza di rappresentazione semplicità di programmazione OO Modelli a Oggetti >> Un po di Storia

11 11 G. Mecca - - Basi di Dati Un Esempio m 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 Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale

12 12 G. Mecca - - 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

13 13 G. Mecca - - Basi di Dati Professori e Studenti Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale Sci Ing fac associato ordinario qualifica Milano ManzoniAlessandro Recanati LeopardiGiacomo luogoNdataNnomecognome Professori Gian Piero cognome Potenza Burrasca 3456 Potenza Pierino1234 luogoNdataNnomematricola Studenti Alternativa: introdurre un identificatore compatto per i professori (in questi esempi utilizzeremo lidentificatore esteso)

14 14 G. Mecca - - Basi di Dati Professori e Studenti m Ogni volta che è necessario: lelenco di tutte le persone ammesse alla biblioteca elenco dei libri in prestito m Due opzioni opzione 1: unire i dati delle due tabelle ogni volta che è necessario opzione 2: mantenere una tabella persone Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale

15 15 G. Mecca - - Basi di Dati Professori e Studenti: Opzione 1 Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale cognomenomequalificadataNfacluogoN GiacomoLeopardiordinario IngRecanati AlessandroManzoniassociato SciMilano Professori matricolacognomenomedataNluogoN 1234PieroPierino Potenza 3456GianBurrasca Potenza Studenti m Prestiti in biblioteca codiceLibro, riferimento alla persona quale riferimento ? quale vincolo di integrità ?

16 16 G. Mecca - - Basi di Dati Professori e Studenti: Opzione 2 Modelli a Oggetti >> DBMS Relazionali a Oggetti Professori matricolacognomenomedataNluogoN 1234PieroPierino Potenza 3456GianBurrasca Potenza Studenti Milano ManzoniAlessandro Recanati LeopardiGiacomo Gian Piero cognome Potenza Burrasca Potenza Pierino luogoNdataNnome Persone cognomenomequalificadataNfacluogoN GiacomoLeopardiordinario IngRecanati AlessandroManzoniassociato SciMilano

17 17 G. Mecca - - 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

18 18 G. Mecca - - Basi di Dati Numeri di Telefono Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale Professori NumeriTel ordinarioLeopardiGiacomo associato ordinario qualifica ManzoniAlessandro LeopardiGiacomo numeronomecognome nomequalificadataNfacluogoN GiacomoLeopardiordinario IngRecanati AlessandroManzoniassociato SciMilano

19 19 G. Mecca - - Basi di Dati Numeri di Telefono m Ogni volta che è necessario: elenco dei professori della facoltà di Ingegneria con i loro numeri di telefono m 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

20 20 G. Mecca - - Basi di Dati Numeri di Telefono: Opzione 2 Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale Sci Ing fac Recanati ordinarioLeopardiGiacomo Milano Recanati luogoN associato ordinario qualifica ManzoniAlessandro LeopardiGiacomo 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)

21 21 G. Mecca - - Basi di Dati Numeri di Telefono: Opzione 2 m ProfessoriENumeri, Ridondanza es: la facoltà di Leopardi m Anomalie di aggiornamento es: cambi di facoltà m Anomalie di inserimento professori senza numero m Anomalie di cancellazione cancellazione di numeri di telefono Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale

22 22 G. Mecca - - Basi di Dati 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)); Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale codcognomenomequalificadescrizioneformfile l01GiacomoLeopardiordinarioQuesta disp...ppt … l02GiacomoLeopardiordinarioDate degli…ppt … m01AlessandroManzoniassociatoMat. per la lez…jpg … Materiale

23 23 G. Mecca - - Basi di Dati Materiale Didattico m Ogni volta che è necessario: pubblicare sul sito Web di facoltà le dispense in formato ppt compresse ridurre la risoluzione delle immagini jpg m Devo prelevare i dati (di grandi dimensioni) dal DBMS effettuare le operazioni con un linguaggio di programmazione allesterno del DBMS tipicamente questo tipo di dati viene tenuto fuori dal DBMS (file system) Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale

24 24 G. Mecca - - Basi di Dati DBMS Relazionale a Oggetti m Sistema di tipi arricchito Tipi ennupla (row type) ereditarietà (singola) oid e riferimenti Collezioni (array) Tipi di dato astratto dati complessi m Funzioni sui tipi Modelli a Oggetti >> DBMS Relazionali a Oggetti

25 25 G. Mecca - - Basi di Dati DBMS Relazionale a Oggetti m Estensioni offerte dalla maggior parte dei prodotti commerciali es: Oracle, IBM DB2, Sybase m PostgreSQL un DBMS relazionale a oggetti open source m Standard SQL:1999 Modelli a Oggetti >> DBMS Relazionali a Oggetti

26 26 G. Mecca - - 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

27 27 G. Mecca - - Basi di Dati Tipo Ennupla o Row Type m Schema di tabella row type m Ereditarietà singola m Funzioni sui valori del tipo metodi m Istanza di tabella collezione di oggetti istanze del row type oid Modelli a Oggetti >> DBMS Relazionali a Oggetti

28 28 G. Mecca - - Basi di Dati Professori e Studenti Modelli a Oggetti >> DBMS Relazionali a Oggetti oidcognomenomequalificadataNluogoN o3GiacomoLeopardiordinario Recanati o4AlessandroManzoniassociato Milano Professori oidmatricolacognomenomedataNluogoN o11234PieroPierino Potenza o2 3456GianBurrasca Potenza Studenti o4 o3 o2 o1 oid Milano ManzoniAlessandro Recanati LeopardiGiacomo Gian Piero cognome Potenza Burrasca Potenza Pierino luogoNdataNnome Persone Es: metodo per il calcolo del codice fiscale

29 29 G. Mecca - - Basi di Dati Array m E lunico tipo di collezione prevista dal SQL:1999 m Array semplici no array di array m Base 1 m Possono avere dimensione variabile es: integer ARRAY[10] fino a 10 numeri interi Modelli a Oggetti >> DBMS Relazionali a Oggetti

30 30 G. Mecca - - 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 oidcognomenomequalificadataNluogoNnumeri o3GiacomoLeopardiordinario Recanati{ , } o4AlessandroManzoniassociato Milano{ } Professori

31 31 G. Mecca - - Basi di Dati Tipi di Dati Astratti (ADT) m Posso definire nuovi tipi complessi es: ppt_file, jpg_image, zip_file m Il tipo è una scatola nera linguaggio di programmazione strategia di memorizzazione metodi di accesso m Nelle tabelle lo uso come un tipo di base m Le operazioni vengono eseguite dentro il DBMS Modelli a Oggetti >> DBMS Relazionali a Oggetti

32 32 G. Mecca - - Basi di Dati 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 Modelli a Oggetti >> DBMS Relazionali a Oggetti

33 33 G. Mecca - - 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 oiddocentedescrizioneformatofile m1o3Questa disp…pptxxxxx m2o3Date degli…pptxxxxx Materiale E possibile costruire una gerarchia per gli altri tipi di file (es: zip_file ecc.)

34 34 G. Mecca - - Basi di Dati Sistemi Relazionali a Oggetti m Sistema ricco di tipi m Universal Database extenders (rasoio e lamette) integrazione profonda degli ADT nel DBMS m Semplicità di programmazione OO JDBC vs JDO m Prestazioni di rilievo modello fisico molto simile a quello relazionale clustering più spinto Modelli a Oggetti >> DBMS Relazionali a Oggetti

35 35 G. Mecca - - Basi di Dati Sistemi Relazionali a Oggetti m Grandi investimenti m Ancora poca omogeneità SQL:1999 è recente m PostgreSQL offre tutte le funzionalità descritte attenzione: sintassi non standard es: non esiste la parola chiave ARRAY Modelli a Oggetti >> DBMS Relazionali a Oggetti

36 36 G. Mecca - - Basi di Dati Sommario m Un po di Storia Successo del modello relazionale DBMS Orientati agli oggetti m Alcuni Limiti del Modello Relazionale m DBMS Relazionali a Oggetti row type, oid, ereditarietà collezioni tipi di dato astratto Modelli a Oggetti >> Sommario

37 37 G. Mecca - - Basi di Dati Termini della Licenza m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. m Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copia della licenza, è possibile visitare oppure inviare una lettera allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.


Scaricare ppt "G. Mecca – – Università della Basilicata Basi di Dati DBMS Relazionali a Oggetti: Introduzione versione 2.0 Questo lavoro è concesso in."

Presentazioni simili


Annunci Google