Basi di Dati
date post
04-Jan-2016Category
Documents
view
27download
0
Embed Size (px)
description
Transcript of Basi di Dati
Basi di DatiDBMS Relazionali a Oggetti: Introduzioneversione 2.0Questo lavoro concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
G. Mecca - [email protected] - Basi di Dati
SommarioUn po di StoriaSuccesso del modello relazionaleDBMS Orientati agli oggettiAlcuni Limiti del Modello RelazionaleDBMS Relazionali a Oggettirow type, oid, ereditarietcollezionitipi di dato astrattoModelli a Oggetti >> Sommario
G. Mecca - [email protected] - Basi di Dati
Un po di Storia: Anni 70Anni 70DBMS gerarchiciDBMS reticolariModello di dati basato su alberi o grafiDipendenza dal modello fisicoInterrogazioninavigazioni del grafoModelli a Oggetti >> Un po di storia
G. Mecca - [email protected] - Basi di Dati
Un po di Storia: Anni 80Anni 80Codd A Relational Model for Large Shared Data Banks, CACM, giugno 1970DBMS relazionaliModello semplice ed eleganteCaratteristiche del modellolegami tra i dati basati sui valoriI forma normale (domini elementari)indipendenza rispetto al modello fisicoModelli a Oggetti >> Un po di storia
G. Mecca - [email protected] - Basi di Dati
Un po di Storia: Anni 80Ottime prestazioniServizi avanzaticoncorrenza, affidabilit, sicurezzaStandard SQL-89, SQL-92intergalactic dataspeakArchitettura a tre livellischemi esterni, schema logico, schema fisicoGrande successo nei sistemi informatividati gestionaliModelli a Oggetti >> Un po di storia
G. Mecca - [email protected] - Basi di Dati
Un po di StoriaAnni 90nuove applicazioniGIS, CAD, dati multimediali, documentioggetti con struttura complessaIl mondo fatto di oggetti, non di tabelleIl garage relazionaleper conservare la tua auto ti costringe a farla a pezzi e conservare ciascun pezzo in un cassettinoModelli a Oggetti >> Un po di storia
G. Mecca - [email protected] - Basi di Dati
Un po di StoriaTecnologia a oggettisistema di tipi riccoclassi di oggetti basati sui tipiereditariet e polimorfismoTecnologia 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
G. Mecca - [email protected] - Basi di Dati
Un po di StoriaMoltissima ricerca (e risultati interessanti)DBMS a Oggetti CommercialiO2, Objectstore, GemStoneStandard ODMG-93linguaggio OQLScarso successo commerciale (nicchia)differenze notevoli tra i prodottidipendenza dal linguaggio (Java ?)prestazioni inferioriModelli a Oggetti >> Un po di storia
G. Mecca - [email protected] - Basi di Dati
I Quadranti di StonebrakerModelli a Oggetti >> Un po di storiaComplessit delle interrogazioniComplessit dei tipi di datoDBMS Relazionale a OggettiLinguaggio di prog.+File System DBMS RelazionaleDBMS Orientato agli Oggetti
G. Mecca - [email protected] - Basi di Dati
DBMS Relazionali a OggettiIdea di baseconservare lorganizzazione di fondoestendere il sistema di tipi identit di oggetto ed ereditarietcollezioni (array)tipi definiti dallutenteVantaggiricchezza di rappresentazionesemplicit di programmazione OOModelli a Oggetti >> Un po di Storia
G. Mecca - [email protected] - Basi di Dati
Un EsempioLa 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
G. Mecca - [email protected] - Basi di Dati
Professori e StudentiTABLE 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
G. Mecca - [email protected] - Basi di Dati
Professori e StudentiModelli a Oggetti >> Alcuni Limiti del Modello RelazionaleAlternativa: introdurre un identificatore compatto per i professori (in questi esempi utilizzeremo lidentificatore esteso)
G. Mecca - [email protected] - Basi di Dati
Professori e StudentiOgni volta che necessario:lelenco di tutte le persone ammesse alla bibliotecaelenco dei libri in prestitoDue opzioniopzione 1: unire i dati delle due tabelle ogni volta che necessarioopzione 2: mantenere una tabella personeModelli a Oggetti >> Alcuni Limiti del Modello Relazionale
G. Mecca - [email protected] - Basi di Dati
Professori e Studenti: Opzione 1
Prestiti in bibliotecacodiceLibro, riferimento alla personaquale riferimento ?quale vincolo di integrit ?Modelli a Oggetti >> Alcuni Limiti del Modello RelazionaleProfessoriStudenti
cognomenomequalificadataNfacluogoNGiacomoLeopardiordinario10-10-1957IngRecanatiAlessandroManzoniassociato01-02-1940SciMilano
matricolacognomenomedataNluogoN1234PieroPierino10-11-1987Potenza 3456GianBurrasca02-12-1990Potenza
G. Mecca - [email protected] - Basi di Dati
Professori e Studenti: Opzione 2Modelli a Oggetti >> DBMS Relazionali a OggettiProfessoriStudenti
matricolacognomenomedataNluogoN1234PieroPierino10-11-1987Potenza 3456GianBurrasca02-12-1990Potenza
cognomenomequalificadataNfacluogoNGiacomoLeopardiordinario10-10-1957IngRecanatiAlessandroManzoniassociato01-02-1940SciMilano
G. Mecca - [email protected] - Basi di Dati
Numeri di TelefonoTABLE 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
G. Mecca - [email protected] - Basi di Dati
Numeri di TelefonoModelli a Oggetti >> Alcuni Limiti del Modello RelazionaleProfessori
cognomenomequalificadataNfacluogoNGiacomoLeopardiordinario10-10-1957IngRecanatiAlessandroManzoniassociato01-02-1940SciMilano
G. Mecca - [email protected] - Basi di Dati
Numeri di TelefonoOgni volta che necessario:elenco dei professori della facolt di Ingegneria con i loro numeri di telefono Due opzioniopzione 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
G. Mecca - [email protected] - Basi di Dati
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));Modelli a Oggetti >> Alcuni Limiti del Modello RelazionaleRappresentazione di qualit molto scadente (denormalizzata)
G. Mecca - [email protected] - Basi di Dati
Numeri di Telefono: Opzione 2ProfessoriENumeri, Ridondanzaes: la facolt di LeopardiAnomalie di aggiornamentoes: cambi di facoltAnomalie di inserimentoprofessori senza numeroAnomalie di cancellazionecancellazione di numeri di telefonoModelli a Oggetti >> Alcuni Limiti del Modello Relazionale
G. 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 RelazionaleMateriale
codcognomenomequalificadescrizioneformfilel01GiacomoLeopardiordinarioQuesta disp...ppt01001100l02GiacomoLeopardiordinarioDate deglippt10111000m01AlessandroManzoniassociatoMat. per la lezjpg11011011
G. Mecca - [email protected] - Basi di Dati
Materiale DidatticoOgni 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 allesterno del DBMStipicamente questo tipo di dati viene tenuto fuori dal DBMS (file system)Modelli a Oggetti >> Alcuni Limiti del Modello Relazionale
G. Mecca - [email protected] - Basi di Dati
DBMS Relazionale a OggettiSistema di tipi arricchitoTipi ennupla (row type)ereditariet (singola)oid e riferimentiCollezioni (array)Tipi di dato astrattodati complessiFunzioni sui tipiModelli a Oggetti >> DBMS Relazionali a Oggetti
G. Mecca - [email protected] - Basi di Dati
DBMS Relazionale a OggettiEstensioni offerte dalla maggior parte dei prodotti commercialies: O