Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conceptos fundamentales
Objeto:
Es cualquier cosa real abstracta acerca de la cual almacenamos datos y los mtodos
que controlan dichos datos.
Tipo de Objeto: Es una categora de objeto.
Un objeto es una Instancia de un tipo de objeto. PERSONA (Juan Prez)
Encapsulamiento: Es el resultado (o acto) de ocultar los detalles de implantacin de un objeto
respecto de su usuario.
Una Solicitud: Invoca una operacin especfica, con uno ms objetos como parmetros. Es
decir, es para que se lleve acabo la operacin indicada y que se produzca el resultado. En
consecuencia las implantaciones se refieren a los objetos como solicitudes.
Clase: Es una implantacin de un tipo de objetos. Especifica una estructura de datos y los
mtodos operativos permisibles que se aplican a cada uno de sus objetos.
Tipos de mtodos: Hay varios tipos de mtodos que son comunes a la mayora de las clases:
Constructores: Un constructor es un mtodo que tiene el mismo nombre que la clase. Se
ejecuta cuando se crea un objeto de una clase. Por lo tanto, un constructor contiene
instrucciones para inicializar las variables de un objeto.
Destructores: Un destructor es un mtodo que se utiliza para destruir un objeto. No todos los
lenguajes orientados a objetos poseen destructores.
Accesores: Un accesor es un mtodo que devuelve el valor de un atributo privado de otro
objeto. As es como los objetos externos pueden acceder a los datos encapsulados.
Mutadores: Un mutador es un mtodo que almacena un nuevo valor en un atributo. De este
modo es como objetos externos pueden modificar los datos encapsulados.
Herencia:
Una clase implanta el tipo de objeto. Una Subclase hereda propiedades de su clase
padre, una subclase puede heredar la estructura y los mtodos algunos de los mtodos.
Herencia mltiple: Cuando una clase hereda de ms de una superclase se tiene herencia
mltiple.
Polimorfismo: Este concepto permite enlazar el mismo nombre o smbolo de operador a dos o
ms implementaciones diferentes del operador, dependiendo del tipo de objetos a los que ste
se aplique.
En las BDOO los datos estn encapsulados y se dice que estos son activos ms que pasivos;
debido a que por ejemplo: La clase mayor detecta si tiene un hijo (objeto) ms o uno menos, es
por esto que se dice que estn activos ya que cuentan los hijos u objetos que tiene.
En el modelo de objetos existen cuatro caractersticas fundamentales:
Abstraccin: Denota las caractersticas esenciales de un objeto que lo distinguen de todos los
dems tipos objeto, y proporciona as fronteras conceptuales ntidamente definidas respecto a la
perspectiva del observador. Una abstraccin se centra en la visin externa de un objeto, y, por
tanto sirve para separar el comportamiento esencial de un objeto de su implantacin.
Modularidad: Se basa en el concepto de fragmentacin de los programas en componentes
individuales para reducir su complejidad en algn grado, y para crear adems una serie de
fronteras bien definidas y documentadas dentro del programa, dnde estas fronteras o
interfaces tienen un incalculable valor cara a la comprensin del programa.
Jerarqua: Una clasificacin u ordenacin de abstracciones.
Tipos: Es un conjunto de objetos que tienen un mismo comportamiento (comparten una misma
funcionalidad) que se puede observar desde afuera.
Genericidad: Permite construir clases genricas para otras clases.
Objetos Complejos: Estn construidos mediante algunos ms simples mediante la aplicacin
de constructores a ellos. Los Objetos ms simples son objetos como: Integer, Carcter, String de
Bytes de cualquier longitud, booleanos punto flotante y algunos pueden ser de tipo atmico.
Qu es O.O.?
En esos mundos OO, el conocimiento se
descentraliza en todos los objetos que lo
componen, cada objeto sabe hacer lo suyo y
no le interesa saber cmo el vecino hace su
trabajo, pero sabe que lo hace y qu es lo que
puede hacer. Como bien lo defini Dan Ingalls
de Smalltalk con las siguientes palabras:
La orientacin a objetos proporciona una
solucin que conduce a un Universo de Objetos
bien educados que se piden de manera
corts, concederse mutuamente sus deseos.
Por qu O.O.?
Caractersticas de
BDOO
Se intenta definir un sistema de BDOO y describe las principales caractersticas en tres grupos:
Mandatorias: son las que el Sistema debe satisfacer a orden de tener un sistema de BDOO y estos
son: Objetos complejos, Identidad de Objetos, Encapsulacin, Tipos o clases, Sobre paso con unin
retardada, Extensibilidad, Completacin Computacional, Persistencia y Manejador de
almacenamiento secundario, concurrencia, Recuperacin y Facilidad de Query.
Opcional: Son las que pueden ser aadidas para hacer el sistema mejor pero que no son
Mandatorias, estas son de: herencia mltiple, chequeo de tipos e inferencia de distribucin y diseo
de transacciones y versiones.
Abiertas: Son los puntos donde el diseador puede hacer un nmero de opciones y estas son el
paradigma de la programacin, la representacin del sistema el tipo de sistema y su uniformidad.
Hemos tomado una posicin no muy a la expectativa para tener una palabra final ms bien para
proveer un punto de orientacin para un debate futuro.
Caractersticas Mandatorias o Reglas de Oro
Un sistema de BDOO debe satisfacer dos criterios:
Debe tener un BDMS
Debe ser un sistema OO
Por ejemplo: para la extensin posible este debe ser consistente en los actuales cortes de lenguajes
de programacin OO
El primer criterio se traduce en 5 caractersticas como son: Persistencia, Manejador de
almacenamiento secundario, Concurrencia, Recuperacin, y Facilidad de Query.
La Segunda se traduce en 8 caractersticas: Objetos Complejos, Identidad del objeto, Encapsulacin,
Tipos Clases, Sobre paso con combinacin retrasada, Extensibilidad y Completacin
Computacional.
Caractersticas Obligatorias
Este es un punto que no debe faltar en una BD.
Estructura de una
BDOO
Aspectos de la tecnologa
Los objetos pueden estar compuestos o consistir de cualquier tipo de informacin que,
eventualmente, puede almacenarse en forma digital; por ejemplo imgenes barridas
(Scaned), voz y sonido, dibujos y planos arquitectnicos complejos, esquemas electrnicos y
diagramas desarrollados por ingenieros, as como los tradicionales tipos de datos
alfanumricos.
Las Bases de Datos Orientadas a Objetos permiten que mltiples usuarios compartan objetos
complejos y los manipulen en un ambiente seguro y estructurado. Las bases de datos
convencionales fueron diseadas para manejar tipos de datos alfanumricos y por esto
difcilmente pueden manipular objetos y mtodos (los mtodos son los comportamientos
definidos de los objetos).
Una Base de datos en red o jerarqua puede almacenar objetos complejos, pero esta
arquitectura no es flexible, lo cual motiva, por ejemplo, el uso del modelo relacional. Estos
sistemas casi no permiten flexibilidad para modificaciones, y el sistema debe desactivarse
cuando se requiere modificar estructuras de objetos y mtodos.
Los niveles en los cuales las bases de datos incorporan los conceptos alrededor de la
metodologa de objetos. La primera clase, puede denominarse BDOO pasiva o
estructuralmente orientadas a objetos que permiten manejar objetos compuestos. Una base
de datos pasiva puede almacenar objetos complejos pero no puede definir comportamientos.
Una BDOO es activa u orientada a objetos por comportamiento si permite definir y ejecutar
comportamiento de los objetos dentro de la base de datos, incorpora conceptos como
herencia y permite el manejo de tipos definidos por el usuario.
Tipos de objetos
Modelo de datos:
Actualmente todo modelo de datos que se categorize como modelo objeto-relacional cumple
con SQL3, pero conservando toda la informacin persistente como tablas cumpliendo tambin
esta forma con SQL2, sin embargo el modelo ORDBMS trae como alternativa la creacin de ADTs
(Abstract Data Types).
Un ADT es un tipo de datos construido a partir de los datos bsicos, este nuevo soporte es
atractivo porque por medio de funciones, operaciones de este nuevo tipo de datos pueden ser
usados como ndices, consultas, vistas permitido integrar un nuevo tipo de datos de objetos
como el multimedia.
Gracias a todas estas facilidades del ORDBMS permite que el desarrollador pueda escoger si
desea seguir desarrollando por medio de RDBMS y opcionalmente con ORDBMS. Adems es
posible abordar el diseo de nuestra base de datos pudiendo aprovechar todo las relaciones y la
composicin del paradigma de objetos as como soporte a lenguajes orientados a objetos.
Lenguaje de consultas:
Una base de datos objeto-relacional soporta una forma de SQL de forma extendida, a veces
conocida como ObjectSQL.
Esta nueva extensin soporta el modelo objeto, dichas consultas puede ser muy poderosas
porque pueden trabajar con las relaciones entre objetos, mtodos, funciones de bsqueda de
predicados y bsquedas a ADTs. Sin embargo la sintxis es muy similar a la relacional debido a
que el ORDBMS est basado en datos tipo RDBMS por medio de filas, columnas y SQL
tradicional. Se espera que para un futuro prximo la implementacin del estndar SQL4 permita
incorporar OQL el cual es un lenguaje netamente de objetos.
La novedad ms importante del modelo objeto relacional es la implementacin de los UDTs (user-defined types) y
de los UDFs (user-defined functions), los datos tipo coleccin y las infraestructuras (Mejoras en la indexacin,
nuevos tipos y funciones). El soporte del manejo de las abstracciones por medio de objetos permite que el modelo
conceptual sea desarrollado usando UML que finalmente facilita un buen diseo lgico. Pero primero pasemos a
definir que es un objeto segn el modelo ORDBMS para empezar a describir el diseo conceptual:
Qu es un objeto?
Los tipos de datos orientados a objetos son abstracciones de las entidades del mundo real que se guardan en la
base de datos, un objeto es un esquema compuesto por un OID (Y que puede manejarse como llave primaria), un
nombre, y un conjunto de mtodos.
Qu son los UDTs y UDFs?
Corresponden a los nuevos tipos de datos y nuevas funciones personalizadas por el usuario. Los UDTs se pueden
clasificar en 3 tipos: de tipo distintivo, tipo opaco o de base y tipo fila o compuesto.
Los datos de carcter opaco o de base son datos no derivados de otro tipo de datos, sus estructuras puede deben
ser definidas dentro del DBMS con sus respectivas operaciones y funciones. Despus de ser definidos pueden
usarse como base para la creacin de datos tipo distintivos y de tipo fila para ser usando en objetos. Los datos tipo
fila pueden incluir ms datos de tipo fila de forma anidada. Los datos de tipo distintivo son derivados de otro tipo
de datos, manejan sus propios dominios, operaciones (Sobrecarga) y funciones. De ah que su definicin como
objeto pueda ser fuertemente tipeada lo que ayuda a mejorar la integridad de los datos.
Dentro del modelo OR existen tres tipos de mtodos cada uno con un respectivo constructor, ellos son:
Mtodos tipo miembro: Permite modelar el comportamiento de los objetos
Mtodos tipos esttico: Permite modelar el objeto en su totalidad
Mtodo tipo comparacin: Permite realizar comparaciones entre el objeto original e instancias de este.
Tipo de coleccin:
Tipo Arreglo
Tipo tabla
Primer intento de
Estandarizacin: ODMG-93
La mayor limitacin de las bases de datos orientadas a objetos
es la carencia de un estndar. ODMG-93 (Object-Oriented
Database Management Group) intenta definir un SGBDOO que
integre las capacidades de las bases de datos con las
capacidades de los lenguajes de programacin, de forma que los
objetos de la base de datos aparezcan como objetos del
lenguaje de programacin, intentando de esta manera eliminar
la falta de correspondencia existente entre los sistemas de tipos
de ambos lenguajes .El SGBDOO extiende el lenguaje con
persistencia, concurrencia, recuperacin de datos, consultas
asociativas, etc. El lenguaje de bases de datos es especificado
mediante un lenguaje de definicin de datos (ODL), un lenguaje
de manipulacin de datos (OML), y un lenguaje de consulta
(OQL), siendo todos ellos portables a otros sistemas con el fin de
conseguir la portabilidad de la aplicacin completa.
Lenguaje ODL
El lenguaje de definicin de datos (ODL) en un SGBDOO es empleado
para facilitar la portabilidad de los esquemas de las bases de datos. El
ODL define las propiedades y los prototipos de las operaciones de los
tipos, pero no los mtodos que implementan esas operaciones. El ODL
intenta definir tipos que puedan implementarse en diversos lenguajes
de programacin; no est por tanto ligado a la sintaxis concreta de un
lenguaje de programacin particular. De esta forma un esquema
especificado en ODL puede ser soportado por cualquier SGBDOO que
sea compatible con ODMG-93.
Lenguaje OML
El lenguaje de manipulacin es empleado para la elaboracin de
programas que permitan crear, modificar y borrar datos que constituyen
la base de datos. ODMG-93 sugiere que este lenguaje sea la extensin
de un lenguaje de programacin, de forma que se pueden realizar entre
otras las siguientes operaciones sobre la base de datos: Creacin,
Borrado, Modificacin e Identificacin de un objeto.
Lenguaje OQL
El lenguaje de consulta propuesto por ODMG-93, presenta las siguientes
caractersticas:
No es computacionalmente completo. Sin embargo, las consultas pueden
invocar mtodos, e inversamente los mtodos escritos en cualquier
lenguaje de programacin pueden incluir consultas.
Tiene una sintaxis abstracta.
Su semntica formal puede definirse fcilmente.
Proporciona un acceso declarativo a los objetos.
Se basa en el modelo de objetos de ODMG-93.
Tiene una sintaxis concreta al estilo SQL, pero puede cambiarse con
facilidad.
Puede optimizarse fcilmente.
No proporciona operadores explcitos para la modificacin, se basa en las
operaciones definidas sobre los objetos para ese fin.
Proporciona primitivas de alto nivel para tratar con conjuntos de objetos,
pero no restringe su utilizacin con otros constructores de colecciones.
Existen dos posibilidades para asociar un sublenguaje de consulta a un
lenguaje de programacin: fuerte y dbilmente: El primer caso consiste
en una extensin de la gramtica del lenguaje asociado. En el segundo
caso, las funciones query tienen unos argumentos String que contienen
las preguntas.