1 / 37

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). Modelli a Oggetti >> Sommario. Sommario. Un po’ di Storia Successo del modello relazionale

Download Presentation

Basi di Dati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 – mecca@unibas.it – Università della Basilicata

  2. 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 - mecca@unibas.it - Basi di Dati

  3. 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 - mecca@unibas.it - Basi di Dati

  4. 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 - mecca@unibas.it - Basi di Dati

  5. 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 - mecca@unibas.it - Basi di Dati

  6. 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 - mecca@unibas.it - Basi di Dati

  7. 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 - mecca@unibas.it - Basi di Dati

  8. 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 - mecca@unibas.it - Basi di Dati

  9. Modelli a Oggetti >> Un po’ di storia I Quadranti di Stonebraker DBMSOrientatoagli Oggetti DBMSRelazionalea Oggetti Complessità dei tipi di dato Linguaggio di prog. + File System DBMSRelazionale Complessità delle interrogazioni G. Mecca - mecca@unibas.it - Basi di Dati

  10. 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 - mecca@unibas.it - Basi di Dati

  11. 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 - mecca@unibas.it - Basi di Dati

  12. 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 - mecca@unibas.it - Basi di Dati

  13. Professori cognome nome qualifica dataN fac luogoN Giacomo Leopardi ordinario 10-10-1957 Ing Recanati Alessandro Manzoni associato 01-02-1940 Sci Milano Studenti matricola cognome nome dataN luogoN 1234 Piero Pierino 10-11-1987 Potenza 3456 Gian Burrasca 02-12-1990 Potenza Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale Professori e Studenti Alternativa: introdurre un identificatore compatto per i professori(in questi esempi utilizzeremo l’identificatore esteso) G. Mecca - mecca@unibas.it - Basi di Dati

  14. 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 - mecca@unibas.it - Basi di Dati

  15. Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale Professori e Studenti: Opzione 1 Professori • Prestiti in biblioteca • codiceLibro, riferimento alla persona • quale riferimento ? • quale vincolo di integrità ? Studenti G. Mecca - mecca@unibas.it - Basi di Dati

  16. Persone 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 Modelli a Oggetti >> DBMS Relazionali a Oggetti Professori e Studenti: Opzione 2 Professori Studenti G. Mecca - mecca@unibas.it - Basi di Dati

  17. 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 - mecca@unibas.it - Basi di Dati

  18. NumeriTel cognome nome qualifica numero Giacomo Leopardi ordinario 0971202121 Giacomo Leopardi ordinario 347345678 Alessandro Manzoni associato 0971205134 Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale Numeri di Telefono Professori G. Mecca - mecca@unibas.it - Basi di Dati

  19. 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 (“de-normalizzare” la tabella Professori) G. Mecca - mecca@unibas.it - Basi di Dati

  20. 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 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)); Rappresentazione di qualità molto scadente (“denormalizzata”) G. Mecca - mecca@unibas.it - Basi di Dati

  21. 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 - mecca@unibas.it - Basi di Dati

  22. 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 G. Mecca - mecca@unibas.it - Basi di Dati

  23. 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 - mecca@unibas.it - Basi di Dati

  24. 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 - mecca@unibas.it - Basi di Dati

  25. 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 - mecca@unibas.it - Basi di Dati

  26. 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 - mecca@unibas.it - Basi di Dati

  27. 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 - mecca@unibas.it - Basi di Dati

  28. Persone 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 Modelli a Oggetti >> DBMS Relazionali a Oggetti Professori e Studenti Professori Studenti Es: metodo per il calcolo del codice fiscale G. Mecca - mecca@unibas.it - Basi di Dati

  29. 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 - mecca@unibas.it - Basi di Dati

  30. Modelli a Oggetti >> DBMS Relazionali a Oggetti Numeri di Telefono TABLE Professori OF Persona (qualifica char(15), numeri char(9) ARRAY[5]); Professori G. Mecca - mecca@unibas.it - Basi di Dati

  31. 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 - mecca@unibas.it - Basi di Dati

  32. 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 - mecca@unibas.it - Basi di Dati

  33. Modelli a Oggetti >> DBMS Relazionali a Oggetti Materiale Didattico TABLE Materiale(docente REF(professori), descrizione TEXT, formato char(5), file ppt_file); E’ possibile costruire una gerarchia per gli altri tipi di file (es: zip_file ecc.) Materiale G. Mecca - mecca@unibas.it - Basi di Dati

  34. 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 - mecca@unibas.it - Basi di Dati

  35. 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 standardes: non esiste la parola chiave ARRAY G. Mecca - mecca@unibas.it - Basi di Dati

  36. 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 - mecca@unibas.it - Basi di Dati

  37. 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. G. Mecca - mecca@unibas.it - Basi di Dati

More Related