Professional Documents
Culture Documents
IC-4302
ODBMS
Son Bases de Datos creadas para guardar información como objetos
Se integran con lenguajes de programación orientados a objetos como Smalltalk, C++, Java, .NET
entre otros
Normalmente los objetos contienen Métodos, Atributos, y están basados en clases
db4o
// accessDb4o // storeSecondPilot
ObjectContainer db = Pilot pilot2 = new Pilot("Rubens
Db4oEmbedded.openFile(Db4oEmbedded Barrichello", 99);
.newConfiguration(),
db.store(pilot2);
DB4OFILENAME);
try { System.out.println("Stored " +
// do something with db4o pilot2);
} finally {
db.close();
}
// retrieveAllPilotQBE
Pilot proto = new Pilot(null, 0);
ObjectSet result =
// storeFirstPilot db.queryByExample(proto);
Pilot pilot1 = new Pilot("Michael
Schumacher", 100);
db.store(pilot1);
System.out.println("Stored " + pilot1);
ODBMS vs RDBMS
Bases de Datos Relacionales están normalizadas para evitar duplicación de información
Los objetos deben ser divididos en diferentes partes para hacerlos más simples y poder
insertarlos en las tablas
Pasar de orientación a objetos a tablas es una labor que consume tiempo y es compleja
ODBMS - Ventajas
Los objetos no deben dividirse y volverse a agrupar por lo que es más rápido
Navegación en los objetos es más fácil
Concurrencia es mejor, porque hay jerarquía en los objetos
El Modelo es más parecido a la realidad
Requiere menos código cuando los lenguajes de programación son orientados a objectos
ODBMS - Desventajas
Eficiencia es menor cuando las relaciones son simples
Tablas Relacionales son más simples
Hay más herramientas para RDBMS
Los estándares son mejores para RDBMS
Hay mejor soporte para RDBMS
ODBMS - ¿Cuándo?
Aplicaciones CAS
Aplicaciones Multimedia
Comercio
Relacional Objeto
El propósito es extender el modelo relacional para incluir soporte de orientación a objetos
Permitir atributos y tipos complejos en las tuplas para permitir valores que no son atómicos y
relaciones anidadas
Preservar la funcionalidad relacional, en particular el acceso a los datos, extendiendo el
modelado
Tener compatibilidad con los lenguajes relacionales actuales
Tipos de Datos Complejos
La idea es permitir dominios que no sean Se permiten relaciones en cualquier lugar
atómicos donde se permitan valores atómicos
Por ejemplo, arrays, atributos, etc. Mantiene el fundamento matemático del
modelo relacional
Así da una perspectiva más intuitiva del
modelado especialmente con lenguajes Viola la primera forma Normal.
orientados a objetos
Relación Anidada
title keyword
Compilers parsing
Compilers analysis
N etw orks Internet
N etw orks Web
keywords
END;
/
Herencia
Se pude heredar de tipos si estos no están
definidos como final
También se pueden sobreescribir los métodos
usando overriding
Herencia - ORACLE
CREATE TYPE Movie_Type( CREATE TABLE Movies
Id NUMBER(12), OF Movie_Type
Title VARCHAR(200), (CONSTRAINT Mov_id_pk PRIMARY KEY
(Id),
Release_Date DATE,
CONSTRAINT Mov_TitleReleaseDate_u
Produced_By Prod_Company,
UNIQUE (Title, Release_Date) ) ;
Genre SET_GENERO,
Budget US_Dollars,
Takings US_Dollars,
Plot_Summary Doc_Type,
OnVideo BOOLEAN) ;
Herencia Múltiple
El SQL:1999 ni el SQL:2003 soportan herencia
múltiple
Herencia de Tablas
También se conoce como subtablas
Todos los atributos en una tabla están
presentes en sus subtablas
Además, todas la tuplas en las subtablas están
presentes en las tabla implícitamente
◦ Para evitar este comportamiento se puede usar
only cuando se hace el select
En teoría se puede tener también herencia
múltiple de tablas, pero esto no es soportado
en SQL
Para consistencia cada tupla en una supertabla
debe corresponder a lo sumo a una subtabla
Arrays y Multisets
Arrays se agregaron en el 99 y multisets en el
03
La diferencia es que los arrays son ordenados y
los multisets no tienen orden.
Creación de Colecciones
Seleccionando Colecciones
Unnesting
Nesting
Colecciones - ORACLE
Hay dos tipos de Colecciones
◦ VARRAYs
◦ Tablas Anidadas