Bases de datos orientados a objetos

17
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.

Transcript of Bases de datos orientados a objetos

Page 1: 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.

Page 2: Bases de datos orientados a objetos

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

Page 3: Bases de datos orientados a objetos

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.

Page 4: Bases de datos orientados a objetos

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

Page 5: Bases de datos orientados a objetos

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

Page 6: Bases de datos orientados a objetos

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

Page 7: Bases de datos orientados a objetos

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.

Page 8: Bases de datos orientados a objetos

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

Page 9: Bases de datos orientados a objetos

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)

Page 10: Bases de datos orientados a objetos

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

Page 11: Bases de datos orientados a objetos

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.

Page 12: Bases de datos orientados 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

Page 13: Bases de datos orientados a objetos

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.

Page 14: Bases de datos orientados a objetos

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.

Page 15: Bases de datos orientados a objetos

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.

Page 16: Bases de datos orientados a objetos

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.

Page 17: Bases de datos orientados a objetos

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