Bases de datos orientados a objetos
-
Upload
juan-anaya -
Category
Engineering
-
view
65 -
download
1
Transcript of Bases de datos orientados a objetos
S.E.P. TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO
de Tuxtepec
MATERIA:
TÓPICOS DE BASES DE DATOS
INVESTIGACIÓN:
“BASES DE DATOS ORIENTADOS A OBJETOS”.
CARRERA:
INGENIERA INFORMÁTICA
PRESENTA:
ANAYA MANZANO JUAN. 13350283
CATEDRÁTICO:
M.S.C VÍCTOR MANUEL EVARISTO SALINAS
San Juan Bautista Tuxtepec, Oax. Octubre de 2016.
Contenido Introducción. ....................................................................................................................................... 2
Bases de datos orientados a objetos .................................................................................................. 3
Historia. ............................................................................................................................................... 4
Objeto. ................................................................................................................................................. 5
Clase. ................................................................................................................................................... 6
Las características asociadas a las BDOO. ........................................................................................... 6
Objetos ............................................................................................................................................ 6
Encapsulamiento. ............................................................................................................................ 7
Otros conceptos. ............................................................................................................................. 7
Ventajas e inconvenientes de las BDOO. ............................................................................................ 7
Los inconvenientes de un SGBDOO. .................................................................................................... 9
Caracteristicas de lo SGBDDOO ........................................................................................................... 9
Características obligatorias de orientación a objetos: .................................................................. 10
Características obligatorias de SGBD: ........................................................................................... 10
El modelo de datos orientado a objetos. .......................................................................................... 10
El modelo estándar ODMG ............................................................................................................... 11
Encapsulamiento ............................................................................................................................... 12
Herencia ............................................................................................................................................ 12
Ventajas de la herencia ................................................................................................................. 13
Polimorfismo ..................................................................................................................................... 13
Conclusion. ........................................................................................................................................ 15
Bibliografía ........................................................................................................................................ 16
Introducción.
Las bases de datos orientados a objetos han llegado a revolucionar la forma de
hacer las nuevas bases de datos, ya que con la implementación de objetos, las
bases de datos se vuelven más completos y se vuelven capaces de hacer más
cosas, es decir se añaden muchas más opciones.
Para poder entender a fondo este concepto se tiene que recurrir a varios puntos
importantes, tales como objeto, que es el concepto principal, además de las clases,
las herencias, el polimorfismo, etc..
Estos temas serán tratados en este documento.
Bases de datos orientados a objetos
Las Bases de datos orientados a objetos se propusieron con la idea de satisfacer
las necesidades de las aplicaciones más complejas. El enfoque orientado a objetos
ofrece la flexibilidad para cumplir con algunos de estos requerimientos sin estar
limitado por los tipos de datos y los lenguajes de consulta disponibles en los
sistemas de bases de datos tradicionales.
Como cualquier Bases de Datos programable, una Base de Datos Orientada a
Objetos (BDOO) proporciona un ambiente para el desarrollo de aplicaciones y un
depósito persistente listo para su explotación. Una BDOO almacena y manipula
información que puede ser digitalizada (presentada) como objetos, además
proporciona un acceso ágil y permite una gran capacidad de manipulación.
Los principales conceptos que se utilizan en las Bases de Datos Orientada a Objetos
(BDOO) son las siguientes:
Identidad de objetos
Constructores de tipos
Encapsulamiento
Compatibilidad con los lenguajes de programación
Jerarquías de tipos y herencia
Manejo de objetos complejos
Polimorfismo y sobrecarga de operadores y
Creación de versiones.
El desarrollo del paradigma orientado a objetos aporta un gran cambio en el modo
en que vemos los datos y los procedimientos que actúan sobre ellos.
Tradicionalmente, los datos y los procedimientos se han almacenado
separadamente: los datos y sus relaciones en la base de datos y los procedimientos
en los programas de aplicación. La orientación a objetos, sin embargo, combina los
procedimientos de una entidad con sus datos. Esta combinación se considera como
un paso adelante en la gestión de datos. Las entidades son unidades auto
contenidas que se pueden reutilizar con relativa facilidad. En lugar de ligar el
comportamiento de una entidad a un programa de aplicación, el comportamiento es
parte de la entidad en sı, por lo en cualquier lugar en el que se utilice la entidad, se
comporta de un modo predecible y conocido.
El modelo orientado a objetos también soporta relaciones de muchos a muchos,
siendo el primer modelo que lo permite. Aun ası se debe ser muy cuidadoso cuando
se diseñan estas relaciones para evitar pérdidas de información.
Por otra parte, las bases de datos orientadas a objetos son navegacionales: el
acceso a los datos es a través de las relaciones, que se almacenan con los mismos
datos. Esto se considera un paso atrás. Las bases de datos orientadas a objetos no
son apropiadas para realizar consultas ad hoc, al contrario que las bases de datos
relacionales, aunque normalmente las soportan. La naturaleza navegacional de las
bases de datos orientadas a objetos implica que las consultas deben seguir
relaciones predefinidas y que no pueden insertarse nuevas relaciones “al vuelo”.
Historia.
Los orígenes del término orientados a objetos (abreviado OO) se remontan a los
lenguajes de programación orientadas a objetos. Los lenguajes de programación
OO tienen sus raíces en el lenguaje SIMULA 67, propuesto a finales de la década
de 1960. En Simula, el concepto de clase agrupa la estructura de datos interna de
un objeto en una declaración de clase, es decir, introduce en el lenguaje ALGOL los
conceptos de objeto y de clase. Como Algol, Simula es un lenguaje fuertemente
tipado para entornos compilados. Sin embargo, el primer lenguaje que popularizó la
aproximación a objetos fue Smalltalk (1976); este puede considerarse una síntesis
de años del lenguaje Lisp, que ofrece una gran flexibilidad gracias a la
interpretación, y de Simula, añadiendo el concepto de metaclase. Smalltalk ha
podido responder a las necesidades de flexibilidad presentadas por el desarrollo de
entornos de programación gráficos, favoreciendo la rápida creación de prototipos
de interfaces de usuarios amigables. Fue utilizado con éxito en la primera estación
gráfica de Xerox.
A continuación se definen los conceptos del paradigma orientado a objetos en
programación, ya que el modelo de datos orientado a objetos es una extensión del
mismo.
Objeto.
Es un elemento auto contenido utilizado por el programa. Los valores que almacena
un objeto se denominan atributos, variables o propiedades. Los objetos pueden
realizar acciones, que se denominan métodos, servicios, funciones, procedimientos
u operaciones. Los objetos tienen un gran sentido de la privacidad, por lo que solo
dan información sobre sı mismos a través de los métodos que poseen para
compartir su información. También ocultan la implementación de sus
procedimientos, aunque es muy sencillo pedirles que los ejecuten. Los usuarios y
los programas de aplicación no pueden ver que hay dentro de los métodos, solo
pueden ver los resultados de ejecutarlos. A esto es a lo que se denomina ocultación
de información o encapsulamiento de datos. Cada objeto presenta una interface
pública al resto de objetos que pueden utilizarlo. Una de las mayores ventajas del
encapsulamiento es que mientras que la interface publica sea la misma, se puede
cambiar la implementación de los métodos sin que sea necesario informar al resto
de objetos que los utilizan. Para pedir datos a un objeto o que ´este realice una
acción se le debe enviar un mensaje. Un programa orientado a objetos es un
conjunto de objetos que tienen atributos y métodos. Los objetos interactúan
enviándose mensajes. La clave, por supuesto, es averiguar que objetos necesita el
programa y cuáles deben ser sus atributos y sus métodos.
Clase.
Es un patrón o plantilla en la que se basan objetos que son similares. Cuando un
programa crea un objeto de una clase, proporciona datos para sus variables y el
objeto puede entonces utilizar los métodos que se han escrito para la clase. Todos
los objetos creados a partir de la misma clase comparten los mismos procedimientos
para sus métodos, también tienen los mismos tipos para sus datos, pero los valores
pueden diferir. Una clase también es un tipo de datos. De hecho una clase es una
implementación de lo que se conoce como un tipo abstracto de datos. El que una
clase sea también un tipo de datos significa que una clase se puede utilizar como
tipo de datos de un atributo.
Las características asociadas a las BDOO.
Objetos
Cada entidad del mundo real se modela como un objeto. ‰ La forma de identificar
objetos es mediante un identificador de objetos (OID, Object Identifier), único para
cada objeto. Generalmente este identificador no es accesible ni modificable para el
usuario (modo de aumentar la integridad de entidades y la integridad referencial).
Los OID son independientes del contenido. Es decir, si un objeto cambia los valores
de atributos, sigue siendo el mismo objeto con el mismo OID. Si dos objetos tienen
el mismo estado pero diferentes OID, son equivalentes pero tienen identidades
diferentes.
Encapsulamiento.
Cada objeto contiene y define procedimientos (métodos) y la interfaz mediante la
cual se puede acceder a él y otros objetos pueden manipularlo. La mayoría de los
SGBDOO permite el acceso directo a los atributos incluyendo operaciones definidas
por el propio SGBDOO las cuales leen y modifican los atributos para evitar que el
usuario tenga que implementar una cantidad considerable de métodos cuyo único
propósito sea el de leer y escribir los atributos de un objeto. Generalmente, los
SGBDOO permiten al usuario especificar qué atributos y métodos son visibles en la
interfaz del objeto y pueden invocarse desde afuera.
Otros conceptos.
Utilizados de la misma manera que en la POO son:
Clases o Herencia simple, múltiple y repetida.
Polimorfismo de operación, de inclusión y paramétrico; ligadura tardía (late
binding); sobrecarga (overloading) y suplantación o anulación (overriding).
Objetos complejos
Ventajas e inconvenientes de las BDOO.
Aunque los SGBDOO pueden proporcionar soluciones apropiadas para muchos
tipos de aplicaciones avanzadas de bases de datos, también tienen sus
desventajas.
Las ventajas de un SGBDOO son:
Mayor capacidad de modelado. El modelado de datos orientado a objetos permite
modelar el ‘mundo real’ de una manera mucho más fiel. Esto se debe a: o un objeto
permite encapsular tanto un estado como un comportamiento o un objeto puede
almacenar todas las relaciones que tenga con otros objetos o los objetos pueden
agruparse para formar objetos complejos (herencia).
Ampliabilidad. Esto se debe a:
Se pueden construir nuevos tipos de datos a partir de los ya existentes.
Agrupación de propiedades comunes de diversas clases e incluirlas
en una superclase, lo que reduce la redundancia.
Reusabilidad de clases, lo que repercute en una mayor facilidad de
mantenimiento y un menor tiempo de desarrollo.
Lenguaje de consulta más expresivo. El acceso navegacional desde un objeto al
siguiente es la forma más común de acceso a datos en un SGBDOO. Mientras que
SQL utiliza el acceso asociativo. El acceso navegacional es más adecuado para
gestionar operaciones como los despieces, consultas recursivas, etc.
Adecuación a las aplicaciones avanzadas de base de datos. Hay muchas áreas
en las que los SGBD tradicionales no han tenido excesivo éxito como el CAD, CASE,
OIS, sistemas multimedia, etc. en los que las capacidades de modelado de los
SGBDOO han hecho que esos sistemas sí resulten efectivos para este tipo de
aplicaciones.
Mayores prestaciones. Los SGBDOO proporcionan mejoras significativas de
rendimiento con respecto a los SGBD relacionales. Aunque hay autores que han
argumentado que los bancos de prueba usados están dirigidos a aplicaciones de
ingeniería donde los SGBDOO son más adecuados. También está demostrado que
los SGBDR tienen un rendimiento mejor que los SGBDOO en las aplicaciones
tradicionales de bases de datos como el procesamiento de transacciones en línea
(OLTP)
Los inconvenientes de un SGBDOO.
Carencia de un modelo de datos universal. No hay ningún modelo de datos que
esté universalmente aceptado para los SGBDOO y la mayoría de los modelos
carecen una base teórica.
Carencia de experiencia. Todavía no se dispone del nivel de experiencia del que
se dispone para los sistemas tradicionales.
Carencia de estándares. Existe una carencia de estándares general para los
SGBDOO.
Competencia. Con respecto a los SGBDR y los SGBDOR. Estos productos tienen
una experiencia de uso considerable. SQL es un estándar aprobado y ODBC es un
estándar de facto. Además, el modelo relacional tiene una sólida base teórica y los
productos relacionales disponen de muchas herramientas de soporte que sirven
tanto para desarrolladores como para usuarios finales.
La optimización de consultas compromete la encapsulacion. La optimización
de consultas requiere una compresión de la implementación de los objetos, para
poder acceder a la base de datos de manera eficiente. Sin embargo, esto
compromete el concepto de encapsulación.
El modelo de objetos aún no tiene una teoría matemática coherente que le sirva
de base.
Caracteristicas de lo SGBDDOO
En 1989 se hizo el Manifiesto de los sistemas de base de datos orientados a objetos
el cual propuso trece características obligatorias para un SGBDOO y cuatro
opcionales.
Las trece características obligatorias estaban basadas en dos criterios: debía
tratarse de un sistema orientado a objetos y un SGBD.
Características obligatorias de orientación a objetos:
Deben soportarse objetos complejos.
Deben soportarse mecanismos de identidad de los objetos.
Debe soportarse la encapsulación.
Deben soportarse los tipos o clases.
Los tipos o clases deben ser capaces de heredar de sus ancestros.
Debe soportarse el enlace dinámico.
El DML debe ser computacionalmente complejo.
El conjunto de todos los tipos de datos debe ser ampliable
Características obligatorias de SGBD:
Debe proporcionarse persistencia a los datos.
El SGBD debe ser capaz de gestionar bases de datos de muy gran tamaño.
El SGBD debe soportar a usuarios concurrentes.
El SGBD debe ser capaz de recuperarse de fallos hardware y software.
El SGBD debe proporcionar una forma simple de consultar los datos.
El modelo de datos orientado a objetos.
El modelo de datos orientado a objetos es una extensión del paradigma de
programación orientado a objetos.
Los objetos entidad que se utilizan en los programas orientados a objetos son
análogas a las entidades que se utilizan en las bases de datos orientadas a objetos
puros, pero con una gran diferencia: los objetos del programa desaparecen cuando
el programa termina su ejecución, mientras que los objetos de la base de datos
permanecen. A esto se le denomina persistencia.
El modelo orientado a objetos permite los atributos multivaluados, agregaciones a
las que se denomina conjuntos (sets) o bolsas (bags). Para crear una relación de
uno a muchos, se define un atributo en la parte del uno que sera de la clase del
objeto con el que se relaciona. Este atributo contendrá el identificador de objeto del
padre. La clase del objeto padre contendrá un atributo que almacenar a un conjunto
de valores: los identificadores de los objetos hijo con los que se relaciona. Cuando
el SGBD ve que un atributo tiene como tipo de datos una clase, ya sabe que el
atributo contendrá un identificador de objeto.
Es una extensión del paradigma de programación orientado a objetos. Los objetos
entidad que se utilizan en los programas orientados a objetos son análogos a las
entidades que se utilizan en las BDOO puras.
El modelo estándar ODMG
Un grupo de representantes de la industria de las bases de datos formaron el ODMG
(Object Database Management Group) con el propósito de definir estándares para
los SGBD orientados a objetos. Este grupo propuso un modelo estándar para la
semántica de los objetos de una base de datos. Su última versión, ODMG 3.0,
apareció en enero de 2000. Los principales componentes de la arquitectura ODMG
para un SGBD orientado a objetos son los siguientes: Modelo de objetos. Lenguaje
de definición de objetos (ODL). Lenguaje de consulta de objetos (OQL). Conexión
con los lenguajes C++, Smalltalk y Java.
Encapsulamiento
El encapsulamiento se centra en la implementación que da lugar al comportamiento
observable de un objeto. El encapsulamiento se consigue a menudo mediante la
ocultación de información, es decir, se basa en ocultar todos los secretos de un
objeto que no contribuyen a sus características esenciales. El encapsulamiento
proporciona, por tanto, barreras explícitas entre abstracciones diferentes. Existen
dos visiones diferentes del encapsulamiento [ATK89], la primera y original que es la
del lenguaje de programación; y la segunda que es la adaptación de esa visión para
la base de datos.
Desde el punto de vista de las bases de datos, esto se traduce en el hecho de que
un objeto abarca operaciones y datos, pero con una diferencia. En las bases de
datos no está claro si la parte estructural es parte de la interfaz (depende del
sistema), mientras que en los lenguajes de programación la estructura de datos es
claramente parte de la implementación y no de la interfaz. Como se puede observar,
el encapsulamiento proporciona una forma lógica de independencia de los datos,
ya que se puede cambiar la implementación de un tipo sin cambiar ninguno de los
programas que usan ese tipo.
Herencia
Las clases o tipos heredan de sus ancestros.
Ventajas de la herencia
Ayuda al modelado porque proporciona una descripción concisa y precisa del
mundo.
Ayuda a compartir especificaciones e implementaciones en las aplicaciones.
Tipos de herencia a destacar en los sistemas de gestión de bases de datos
Herencia de sustitución: en cualquier lugar donde podamos tener un objeto
de tipo podemos sustituirlo por un objeto de tipo t si t hereda de t'.
Herencia de restricción: es un subcaso de la herencia de inclusión. Un tipo
tes un subtipo de si está formado por todos los objetos de t que satisfacen
una restricción dada.
Herencia d especialización: un tipo t es un subtipo de t’, si los objetos de tipo
t son objetos de tipo t' que contienen información más específica.
Polimorfismo
Existen casos en los que se desea tener el mismo nombre para diferentes
operaciones. Supongamos la operación dibuja que toma un objeto como entrada y
lo dibuja en pantalla. Dependiendo del tipo de objeto (cuadrado, estrella, flecha,...)
debemos emplear diferentes mecanismos de visualización. Es decir, necesitamos
visualizar un conjunto cuyos miembros no se conocen en tiempo de compilación.
En una aplicación que emplee el sistema convencional, habrá tantas operaciones
como figuras a representar: dibuja cuadrado, dibuja estrella, dibuja flecha etc. En un
sistema orientado a objetos se definirá la operación en una clase más general. Así
dibuja tendrá un único nombre y podrá emplearse indiferentemente sobre cualquier
figura.
Para proporcionar esta nueva funcionalidad, el sistema no puede asociar los
nombres de las operaciones con los métodos correspondientes en tiempo de
compilación; se hará en tiempo de ejecución. Esto es lo que se conoce como
ligadura tardía y dificulta o imposibilita el chequeo de tipo.
Conclusión.
Para finalizar se puede mencionar que las bases de datos orientados a objetos han
llegado a mejorar la forma de realizar las nuevas bases de datos y para agregarles
más funciones de las cuales se ha mencionado en este documento.
Bibliografía (12 de Abril de 2002). Obtenido de http://www3.uji.es/~mmarques/e16/teoria/cap2.pdf
Alberca Manzaneque, A., & Galvez Díaz-Tendero, J. (s.f.). Bases de datos Orientadas a Objetos y
Bases de Datos Objeto-Relacionales. Obtenido de
https://basededatos2010.wikispaces.com/file/view/BD+O-O+ventajas+y+desventajas.pdf
Base de datos orientadas a objetos. (28 de Abril de 2016). Obtenido de Wikipedia:
https://es.wikipedia.org/wiki/Base_de_datos_orientada_a_objetos
Modelos de DB. (s.f.). Obtenido de Bases de datos orientados a objetos:
https://modelosbd2012t1.wordpress.com/2012/01/27/bases-de-datos-orientados-a-
objetos/
PaCko. (s.f.). Obtenido de
https://packo.wikispaces.com/1.1.4+Encapsulamiento,+Herencia+y+Polimorfismo+en+BD
OO
Ramos, S. C. (s.f.). Santa Cruz Ramos. Obtenido de El modelo de datos orientado a objetos:
https://santacruzramos.wikispaces.com/1.1.2+El+modelo+de+datos+orientado+a+objetos