1.54k likes | 1.8k Vues
SISTEMAS MANEJADORES DE BASES DE DATOS ORIENTADAS A OBJETOS (SMBDOO). INTRODUCCIÓN A LOS SISTEMAS DE BASES DE DATOS OO (SBDOO). INTRODUCCIÓN Hace algunos años, la creación de nuevas aplicaciones requerían de una difícil selección de información para muchas fuentes.
E N D
SISTEMAS MANEJADORES DE BASES DE DATOS ORIENTADAS A OBJETOS (SMBDOO)
INTRODUCCIÓN • Hace algunos años, la creación de nuevas aplicaciones requerían de una difícil selección de información para muchas fuentes. • Los programas eran dependientes de las estructuras de los datos almacenados, haciendo estas estructuras difíciles al cambio. • Sin embargo, los Sistemas de BD (SBD) han mejorado los procesos de desarrollo de aplicación en grandes ambientes de datos intensivos, proporcionando una sencilla y uniforme vista de datos expresada en términos de estructuras independientes.
INTRODUCCIÓN • Su alto nivel de características lingüísticas y sus facilidades para compartir información de una manera controlada, hace posible que se puedan crear aplicaciones integradas más fácilmente. • La integridad de los datos está controlada por el SBD. • Es decir, el SBD debe ser responsable de cada programa de aplicación, dentro de la BD. • Existe un conjunto de rutinas que facilitan el formateo de datos y accesos a los mismos.
INTRODUCCIÓN • En la década pasada se generó mucho interés sobre los SBDOO. • Estos sistemas tienen su origen en los lenguajes de POO. • Donde los usuario no tienen que luchar contra las construcciones orientadas a la máquina (p. e. campos, atributos, etc). • Sino que en su lugar deben tener la posibilidad de manejar objetos y operaciones sobre esos objetos, que se asemejan mucho más a sus contrapartes en la realidad.
INTRODUCCIÓN • En otras palabras, la idea fundamental es elevar el nivel de abstracción. • Elevar el nivel de abstracción es incuestionablemente un objetivo valioso y el paradigma de objetos ha tenido mucho éxito para satisfacer ese objetivo. • La pregunta sería: Si el paradigma de la POO también puede ser aplicado satisfactoriamente en las BD.
INTRODUCCIÓN • La idea de manejar una BD que está compuesta de “objetos complejos”, en lugar de tener que manejar atributos, inserción de tuplas y claves externas, etc., es obviamente más atractiva desde el punto de vista del usuario. • Aunque las disciplinas de los lenguajes de Programación y la Administración de BD tienen mucho en común, también difieren en determinados aspectos: • Un programa de aplicación está hecho, por definición, para resolver algún problema específico.
INTRODUCCIÓN • Por el contrario, una BD está hecha para resolver una variedad de problemas diferentes, y algunos de ellos ni siquiera son conocidos el momento de establecer las BD. • Mucha gente cree que los Sistemas de Objetos representan un gran salto hacia delante en la tecnología de BD. • Creen que las técnicas de objetos son el enfoque a escoger para las áreas de aplicaciones “complejas”.
Actualmente, los sistemas de software han puesto un ambiente típico, incluyen herramientas, editores de esquema, verificadores de diseño y programas de circuito disponibles, y todo integrado. • La disponibilidad de alta ejecución en las estaciones de trabajo gráfica, se han incrementado tanto en la expansión como en la complejidad de las aplicaciones de los datos intensivos. • Algunos ejemplos son: • Diseño y Manufactura Asistido por Computadora (CAD/CAM) • Ingeniería de Software Asistida por Computadora (CASE).
Sistemas de Información de Oficinas (OIS). • Manufactura Interada por Computadora (CIM). • Sistema de Información Geográfica (GIS). • Ciencia y Medicina. • Todas éstas son áreas en las que los productos SQL clásicos tienden a incurrir en problemas. • Sin embargo, a lo largo de los años han sido publicados muchos artículos técnicos sobre estos temas y más recientemente, han entrado al mercado varios productos comerciales.
Pero el problema continúa, sobre todo en nuevas herramientas, que utilizan subsistemas que requieren de muchos números de datos persistentes. • Donde el nivel de complejidad de estos programas y de los datos, han llegado más allá de la capacidad de los SBD tradicionales. • Actualmente los programas de aplicación, en ambientes de diseño, almacenan sus datos en estructuras de archivos de aplicación específica.
Aquí el estado del arte es difícil, como en la misma etapa que existió después de introducir la tecnología de BD. • El desarrollo de las Bases de Datos Orientadas a Objetos (BDOO), con una gran cobertura, han surgido por esta necesidad. • Además combina las mejores cualidades de los archivos planos, las bases jerárquicas y relacionales. • Las BDOO representan el siguiente paso (?) en la evolución de las BD para soportar el análisis, diseño y Programación Orientada a Objetos (POO).
Estás permiten el desarrollo y mantenimiento de aplicaciones complejas, ya que se puede utilizar un mismo modelo conceptual y así aplicarlo al análisis, diseño y programación. • Reduciendo el problema entre los diferentes modelos a través de todo el ciclo de vida, con un costo significativamente menor. • Como cualquier BD programable, una BDOO da un ambiente para el desarrollo de aplicaciones con un depósito persistente listo para su explotación.
Permiten que el mismo modelo conceptual se aplique al análisis, diseño, programación, definición y acceso a la BD. • Esto reduce el problema del operador de traducción entre los diferentes modelos a través de todo el ciclo de vida. • El modelo conceptual debe ser la base de las herramientas CASE OO totalmente integradas, las cuales ayudan a generar la estructura de datos y los métodos.
Además las BDOO ofrecen un mejor rendimiento en las máquinas que las BD por relación, para aplicaciones o clases con estructuras complejas de datos. • Sin embargo, las BDOO coexistirán con las BD Relacionales, como una forma de estructura de datos dentro de una BDOO.
El propósito de los Sistemas de Bases de Datos (SBD) es la gestión de grandes cantidades de información. • Las primeras BD surgieron del desarrollo de los sistemas de gestión de archivos. • Estos sistemas primero evolucionaron en BD de Red o en BD Jerárquicas y, más tarde, en BD Relacionales. • Las aplicaciones de BD tradicionales consisten en tareas de procesamiento de datos, tales como servicios bancarios y la gestión de nómina.
Tales aplicaciones presentan conceptualmente tipos de datos simples. • Los elementos de datos básicos son registros bastante pequeños y cuyos campos son atómicos. • Es decir, estos campos no contienen estructuras adicionales y en los que se cumple la primera forma normal.
Las BD Relacionales (BDR) almacenan los datos en forma de tablas, renglones y columnas. • De tal manera, la BDR no son adecuadas para almacenar objetos, ya que pueden contener estructuras complejas de elementos de datos y también apuntadores a otros objetos. • Además, los objetos incluyen instrucciones ejecutables, o métodos, y para hacer persistentes a los objetos también deben proporcionar ciertos medios para almacenarlos. • Los SMBDOO, se desarrollaron a principios de la década de los 90s para proporcionar un almacenamiento de objetos persistentes.
Sin embargo estos productos no se han comercializado con éxito debido a que necesitan convertir los datos al formato MDOO. • Las organizaciones no realizan esta conversión porque es muy costosa y las ganancias no compensan la inversión. • En respuesta a esto, los proveedores de los DBMS tradicionales están aumentando las capacidades de sus productos para permitir el almacenamiento de objetos. • Así como también, el almacenamiento tradicional de datos relacionales.
A tales productos se les llama SMBD de Objeto/ Relacionales, y probablemente su uso aumentará en los próximos años. • En particular Oracle, ha desarrollado diversos recursos para la modelación y almacenamiento de objetos. • Existen dos estándares importantes de objetos: El SQL3 y el ODMG-93
Las aplicaciones de las BD en áreas como el Diseño Asistido por Computadora, la Ingeniería de Software y el Procesamiento de Documentos no se ajustan al conjunto de suposiciones que se hacen para aplicaciones del estilo de procesamiento de datos. • El Modelo de Datos Orientado a Objetos (MDOO) se ha propuesto para tratar algunos de estos nuevos tipos de aplicaciones. • El MDOO es una adaptación a los SBD tradicionales.
El enfoque OO para la programación fue introducida por primera vez con el lenguaje Simula 67. • Que se diseñó para la programación de simulación. • Smalltalk fue uno de los primeros lenguajes de Programación OO (POO) para aplicaciones generales. • Actualmente, los lenguajes Java y C++ son los lenguajes de POO más usados.
La POO se basa en el concepto de encapsulamiento de datos y código que opera sobre éstos en un objeto. • La ventaja de la encapsulación es que permite que la representación interna de los objetos, sea cambiada sin necesidad de que las aplicaciones que los usan tengan que ser reescritas. • La encapsulación implica la Independencia Física de los Datos. • Los objetos encapsulados son descritos por: • Una Memoria Privada (Miembros o Atributos). • Interfaz Pública (Métodos).
Los objetos estructurados se agrupan en clases. • El conjunto de clases está estructurado en sub y superclases, basado en una extensión del concepto ISA del modelo Entidad - Relación. • Puesto que el valor de un dato en un objeto, también puede ser un objeto, es posible representar el contenido del objeto dando como resultado un objeto compuesto.
PRINCIPIOS DE ORIENTACIÓN A OBJETOS • Es conveniente aclarar que muchos conceptos de objetos (o definiciones de éstos) son bastante imprecisos y hay muy poco consenso verdadero y mucho desacuerdo, incluso en el nivel más básico. • En particular, no hay un “Modelo de datos de objetos” abstracto ni formalmente definido.
PRINCIPIOS DE ORIENTACIÓN A OBJETOS • En una BDOO, cualquier cosa es un objeto y se manipula como tal. • Un Objeto es una instancia que responde a mensajes activando un método. • La estructura interna no es visible para los usuarios de ese objeto. • Los sistemas OO proporcionan el concepto de Identificador del Objeto (OID) para identificar a los objetos.
PRINCIPIOS DE ORIENTACIÓN A OBJETOS • Los identificadores de los objetos son únicos. • Cada objeto tiene un solo identificador y no hay dos objetos que tengan el mismo identificador. • Generalmente el identificador lo genera el sistema de manera automática. • A diferencia de las BD relacionales donde un valor de dato único, se genera de manera externa al sistema.
PRINCIPIOS DE ORIENTACIÓN A OBJETOS • Hay muchas situaciones en las que hacer que el sistema genere identificadores de manera automática resulta una ventaja. • Dado que libera a los seres humanos de llevar a cabo esa tarea. • Sin embargo, esta característica debe manejarse con precaución. • Los identificadores generados por el sistema suelen ser específicos el mismo.
PRINCIPIOS DE ORIENTACIÓN A OBJETOS • Si se desplazan los datos a un sistema de BD diferente, hay que traducirlos. • Además, los identificadores generados por el sistema pueden resultar redundantes, si las entidades que se modelan ya disponen de identificadores unívocos externos al sistema. • Por lo general, los SMBDR se apoyan en claves definidas y controladas por el usuario (claves de usuario), para efectos de identificación y referencia de entidades. • En realidad los apuntadores estilo OID están expresamente prohibidos en las BDR.
PRINCIPIOS DE ORIENTACIÓN A OBJETOS • Los objetos soportan una serie de características: • Se agrupan en tipos denominados clases. • Contienen datos internos que definen su estado actual. • Soportan ocultación de datos. • Pueden heredar propiedades de otros objetos. • Pueden comunicarse con otros objetos enviando o pasando mensajes. • Tienen métodos que definen su comportamiento.
Las clases son una colección de objetos con propiedades similares, compartimiento común, relaciones comunes a otras clases. • La instancia es un objeto con propiedades definidas en su descripción de la clase. • El mensaje es una clase que debe tener un método correspondiente. Un mensaje puede ser enviado a un objeto a ejecutar una acción. • El método es una lista de instrucciones detalladas que definen cómo responde un objeto a un mensaje en particular.
La superclasees la clase que deriva a otra clase. • La subclase es la clase derivada de una superclase. • La ligaexpresa compatibilidad de relaciones entre las clases. • Los objetosheredan las características de su clase y de todas las clases de nivel superior a la que pertenecen. • Estos principios y técnicas hacen que las BDOO estén adecuadas a aplicaciones que implican tipos de datos complejos.
Tipos de datos complejos, tales como documentos compuestos o de diseño asistidos por computadora que combinan texto, gráficos y hojas de cálculo. • La BD proporciona un modo natural de representar las jerarquías que aparecen en los datos complejos. • La jerarquía de clases permite a la BD seguir la pista del tipo de cada objeto en el documento. • Finalmente, el mecanismo de mensajes ofrece soporte natural para una interfaz de usuario gráfica.
BASES DE DATOS ORIENTADAS A OBJETOS (BDOO) • El campo de las BDOO se ha introducido como una nueva área de investigación. • Los campos de Lenguajes de Programación, Inteligencia Artificial e Ingeniería de Software han contribuido con el uso de la tecnología OO en el área de las BD. • El desafío del área de BD es integrarlos en un diseño de sistema simple que mantenga el equipo deseado para cada campo.
El resultado es conservar las características centrales de las BD modernas, incluyendo: • Persistencia • Control de Concurrencia • Recuperación • Consistencia • Lenguaje de Consulta.
BASES DE DATOS ORIENTADAS A OBJETOS (BDOO) • Desde el punto de vista del desarrollador las ventajas están dadas en ganancias de productividad, dado su modelado más simple que facilita el desarrollo de aplicaciones. • El modelado de aplicaciones es mucho más sencillo gracias al concepto de objetos complejos y el modelo obtenido es fácilmente comprensible para el usuario. • Este modelo puede ser validado directamente por el cliente de la aplicación.
BASES DE DATOS ORIENTADAS A OBJETOS (BDOO) • El enfoque OO favorece la reutilización. • Porque gracias al encapsulamiento y a la herencia, es fácil especializar un componente existente para responder a las necesidades particulares de la aplicación. • Desde el punto de vista del usuario final, los SMBDOO, proporcionan mayor aporte en la calidad en términos de ergonomía, fiabilidad, evolución y desempeño.
ESTRUCTURA DE OBJETOS • El Modelo Orientado a Objetos (MOO) se basa en encapsular código y datos en una única unidad, llamada objeto. • La interfaz entre un objeto y el resto del sistema se define mediante un conjunto de mensajes. • El término mensaje en un contexto orientado a objetos, no implica el uso de un mensaje físico en una red de computadoras. • Si no que se refiere al paso de solicitudes entre objetos sin tener en cuenta detalles específicos de implementación.
La capacidad de modificar la definición de un objeto sin afectar al resto del sistema, está considerada como una de las mayores ventajas del modelo de POO. • JERARQUÍA DE CLASES. • En una BD existen objetos que responden a los mismos mensajes, utilizan los mismos métodos y tienen variables del mismo nombre y tipo. • Sería inútil definir cada uno de estos objetos por separado por lo tanto se agrupan los objetos similares para que formen una clase, a cada uno de estos objetos se le llama instancia de su clase.
Todos los objetos de su clase comparten una definición común, aunque difieran en los valores asignados a las variables. • Así que básicamente las BDOO tienen la finalidad de agrupar aquellos elementos que sean semejantes en las entidades para formar una clase, dejando por separado aquellas que no lo son.
Por ejemplo: Tomemos como referencia la entidad Alumno y la entidad Maestro. • Donde los atributos considerados para cada uno, son en Alumno: • Nombre • Dirección • Teléfono • Especialidad • Semestre • Grupo
Maestro: • Nombre • Dirección • Teléfono • Número económico • Plaza • RFC • Los atributos de Nombre, Dirección y Teléfono se repiten en la entidad Alumno y Maestro, así que podemos agrupar estos elementos para formar la clase Persona,con dichos campos.
Quedando por separado en Alumno: • Especialidad • Semestre • Grupo. • Y en Maestro: • Número Económico • Plaza • RFC.
CLASE PERSONA Nombre Dirección Teléfono • HERENCIA • SUPERCLASE • SUBCLASES • Número • Económico • Plaza • RFC • Especialidad • Semestre • Grupo CLASE ALUMNO CLASE MAESTRO
Un programa de datos intensivo es aquel que produce y/o requiere de un gran número de datos (muchos de ellos no podrían introducirse al mismo tiempo dentro de la memoria virtual de un programa). • Programar a lo grande se refiere a que los procesos de Ingeniería de Software requieran de múltiples programadores para producir programas grandes y complejos. • La complejidad de estos sistemas no sólo se muestra en los programas que manipulan datos sino en los datos mismos.
Por ejemplo: Los datos que son usados en la aplicación de diseños eléctricos contienen muchas interconexiones complejas, con muchas limitaciones complejas en la forma de que éstas son usadas. • Un circuito usa muchos componentes de diferentes tipos, y éstos tienen que hacer referencia a otros componentes a los que están conectados. • Un problema en el desarrollo de aplicaciones en las BD es la incompatibilidad entre el Lenguaje de Manipulación de Datos (DML) de las BD, y el Lenguaje de Programación de Propósito General, en el cual el resto de las aplicaciones son escritas.
En los sistema OO, se utiliza un Lenguaje Integrado para las operaciones de BD y para las que no lo son. • El lenguaje anfitrión y el lenguaje de BD están fuertemente acoplados en estos sistemas, de hecho son los mismos. A diferencia del SQL. • Una ventaja importante es que permite una mejor verificación de tipo. • Se dice que en este lenguaje unificado no hay desacoplo de impedancia entre un lenguaje de programación procedural y el lenguaje de manipulación de datos.