La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DBMS Relazionali a Oggetti: Introduzione

Presentazioni simili


Presentazione sul tema: "DBMS Relazionali a Oggetti: Introduzione"— Transcript della presentazione:

1 DBMS Relazionali a Oggetti: Introduzione
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 – – Università della Basilicata

2 Sommario Un po’ di Storia Alcuni Limiti del Modello Relazionale
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 - - Basi di Dati

3 Un po’ di Storia: Anni ‘70 Anni ’70
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 - - Basi di Dati

4 Un po’ di Storia: Anni ‘80 Anni ’80 Modello semplice ed elegante
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 - - Basi di Dati

5 Un po’ di Storia: Anni ‘80 Ottime prestazioni Servizi avanzati
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 - - Basi di Dati

6 Un po’ di Storia Anni ’90 Il mondo è fatto di oggetti, non di tabelle
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 - - Basi di Dati

7 Un po’ di Storia Tecnologia a oggetti
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 - - Basi di Dati

8 Un po’ di Storia Moltissima ricerca (e risultati interessanti)
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 - - Basi di Dati

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

10 DBMS Relazionali a Oggetti
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 - - Basi di Dati

11 Un Esempio La base di dati universitaria
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 - - Basi di Dati

12 Professori e Studenti TABLE Studenti(matricola integer PRIMARY KEY,
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), facolta char(10), UNIQUE (cognome, nome, dataN, luogoN), PRIMARY KEY (cognome, nome, qualifica)); G. Mecca - - Basi di Dati

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

14 Professori e Studenti Ogni volta che è necessario: Due opzioni
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 - - Basi di Dati

15 Professori e Studenti: Opzione 1
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale Professori e Studenti: Opzione 1 Professori cognome nome qualifica dataN fac luogoN Giacomo Leopardi ordinario Ing Recanati Alessandro Manzoni associato Sci Milano Prestiti in biblioteca codiceLibro, riferimento alla persona quale riferimento ? quale vincolo di integrità ? Studenti matricola cognome nome dataN luogoN 1234 Piero Pierino Potenza 3456 Gian Burrasca G. Mecca - - Basi di Dati

16 Professori e Studenti: Opzione 2
Modelli a Oggetti >> DBMS Relazionali a Oggetti Professori e Studenti: Opzione 2 Milano Manzoni Alessandro Recanati Leopardi Giacomo Gian Piero cognome Potenza Burrasca Pierino luogoN dataN nome Persone Professori cognome nome qualifica dataN fac luogoN Giacomo Leopardi ordinario Ing Recanati Alessandro Manzoni associato Sci Milano Studenti matricola cognome nome dataN luogoN 1234 Piero Pierino Potenza 3456 Gian Burrasca G. Mecca - - 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), numero char(9), PRIMARY KEY (cognome, nome, qualifica, numero), FOREIGN KEY (cognome, nome, qualifica) REFERENCES Professori(cognome,nome,qualifica)); G. Mecca - - Basi di Dati

18 Numeri di Telefono Professori NumeriTel cognome nome qualifica dataN
Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale Numeri di Telefono Professori cognome nome qualifica dataN fac luogoN Giacomo Leopardi ordinario Ing Recanati Alessandro Manzoni associato Sci Milano NumeriTel ordinario Leopardi Giacomo associato qualifica Manzoni Alessandro numero nome cognome G. Mecca - - Basi di Dati

19 Numeri di Telefono Ogni volta che è necessario: Due opzioni
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 - - Basi di Dati

20 Numeri di Telefono: Opzione 2
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)); Sci Ing fac Recanati ordinario Leopardi Giacomo Milano luogoN associato qualifica Manzoni Alessandro numero dataN nome cognome ProfessoriENumeri Rappresentazione di qualità molto scadente (“denormalizzata”) G. Mecca - - Basi di Dati

21 Numeri di Telefono: Opzione 2
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 - - Basi di Dati

22 Materiale Didattico Materiale cod cognome nome qualifica descrizione
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 l02 Date degli… m01 Alessandro Manzoni associato Mat. per la lez… jpg G. Mecca - - Basi di Dati

23 Materiale Didattico Ogni volta che è necessario: Devo
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 - - Basi di Dati

24 DBMS Relazionale a Oggetti
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 - - Basi di Dati

25 DBMS Relazionale a Oggetti
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 - - Basi di Dati

26 Professori e Studenti TYPE Persona(cognome varchar(20) NOT NULL,
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 - - Basi di Dati

27 Tipo Ennupla o “Row Type”
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 - - Basi di Dati

28 Professori e Studenti Persone Professori Studenti
Modelli a Oggetti >> DBMS Relazionali a Oggetti Professori e Studenti o4 o3 o2 o1 oid Milano Manzoni Alessandro Recanati Leopardi Giacomo Gian Piero cognome Potenza Burrasca Pierino luogoN dataN nome Persone Professori oid cognome nome qualifica dataN luogoN o3 Giacomo Leopardi ordinario Recanati o4 Alessandro Manzoni associato Milano Studenti oid matricola cognome nome dataN luogoN o1 1234 Piero Pierino Potenza o2 3456 Gian Burrasca Es: metodo per il calcolo del codice fiscale G. Mecca - - Basi di Dati

29 Array E’ l’unico tipo di collezione prevista dal SQL:1999
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 - - Basi di Dati

30 Numeri di Telefono Professori TABLE Professori OF Persona
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 Recanati { , } o4 Alessandro Manzoni associato Milano { } G. Mecca - - Basi di Dati

31 Tipi di Dati Astratti (ADT)
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 - - Basi di Dati

32 Materiale Didattico TYPE ppt_file (internallenght = 10M,
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’ FUNCTION comprimi(ppt_file) returns zip_file EXTERNAL NAME ‘/bin/extensions/compress.jar’ G. Mecca - - Basi di Dati

33 Materiale Didattico E’ possibile costruire una gerarchia per gli
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 oid docente descrizione formato file m1 o3 Questa disp… ppt xxxxx m2 Date degli… G. Mecca - - Basi di Dati

34 Sistemi Relazionali a Oggetti
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 - - Basi di Dati

35 Sistemi Relazionali a Oggetti
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 - - Basi di Dati

36 Sommario Un po’ di Storia Alcuni Limiti del Modello Relazionale
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 - - 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 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 oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. G. Mecca - - Basi di Dati


Scaricare ppt "DBMS Relazionali a Oggetti: Introduzione"

Presentazioni simili


Annunci Google