Basi di Dati R-dbms e OO-dbms Mario Capurso http://info.bazarinfo.info Modelli orientati ad oggetti ? Era proprio necessario ? Modelli “classici” Modello Gerarchico Modello Reticolare Modello Relazionale Ad Oggetti ? Perche’ ? Quale ? Come ? Un modello ad oggetti... Gli oggetti Le proprieta’ Le classi L’aggregazione La generalizzazione I metodi Gli eventi Ad oggetti ? Perche’ ? E’ piu’ “naturale” (il modello dei dati) E’ piu’ “riusabile” (il software) E’ piu’ facile da apprendere ed usare (un linguaggio) E’ piu’ “manutenibile” (un sistema software) E’ meno costoso (tutto) L’affermazione del modello relazionale Codd 1971 (IBM) SQL 1975 (IBM) System R (IBM) Datatrieve (DEC) 1980 ORACLE (R.T.Inc.) 1982 ISO SQL (fine ‘80) Informix, Ingres, DB2, dBASE II... Modello relazionale e Successo: perche’ ? Maturo e standardizzato Indipendente da fornitore H/W e S/W Affidabile Con prestazioni ottime Relativamente poco costoso Conosciuto dagli informatici Un vero cavallo da soma I Leader del Mercato R-DBMS Oracle – Multipiattaforma – Ambiente di sviluppo ricco e avanzato – Stabile, maturo, scalabile Microsoft SQL Server – Monopiattaforma – Supportato da ambienti Microsoft – Marketing agressivo I Leader del Mercato degli OO-DBMS negli anni 90 Objectstore Gemstone Orion Iris CA-Jasmine Ontos O2 R-DBMS - I difetti Frattura concettuale con OOA e OOD Richiede normalizzazione La conoscenza e’ solo nella mente di analisti e programmatori Se si guadagna in prestazioni (denormalizzazione) si perde in consistenza e indipendenza OO-DBMS - I motivi della frenata Immaturi Non standardizzati Costosi Prestazioni deludenti Spesso integrati con un linguaggio (C++, Smalltalk) Frattura concettuale con linguaggi di terza generazione e ambienti “legacy” Frattura concettuale e soluzioni Linguaggi OO e R-DBMS (JDBC) Linguaggi 3GL e 4GL e R-DBMS (ODBC) 3GL e 4GL e OO-DBMS (ODBC) Soluzioni Object-Relational Linguaggi OO e OO-DBMS (JDBC) Linguaggi OO e OO-DBMS (persistenza “trasparente”) Esperienze di un venditore di software usato Uso di Objectstore e C++ o Gemstone e Smalltalk: semplice ma non riusabile Uso di Java (JDBC) e ambienti relazionali: semplice e riusabile ma con attenzione La trasmissione di un oggetto da host ad host usando il modello relazionale e’ un grosso problema I relazionali stanno stretti ai linguaggi e alle applicazioni moderne XML e morte dei relazionali ? XML ovvero il bisogno di modellizzare ed inviare oggetti SOAP e la necessita’ di gestire oggetti nei protocolli applicativi JAVA e la necessita’ di manipolare oggetti distribuiti Sara’ la fine per i R-DBMS ? O l’inizio di una nuova campagna di marketing ?