UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN

Licenciatura En Informática

Bases de Datos
Aut or : L.I. M aría de Lour de Isab el s Ponce Vásq u z e

AGOSTO .DICIEMBRE 200 8 .

................10 4...............3........................1.............10 4......................................................... Optimizador..........2............................................. Modelo de objetos............18................................................................................................................. Lenguaje de Datos.............1......................3 Objetivos Específicos.................................................12...........1...................9 4............................. Definición...5....1..1..1....1..... Control de versiones y configuraciones.......................................................1............................... Funcionalidad/Inteligencia........14 4.....................1...........................................................................14 4.................3.............5 4..................................................1............................................................ Herramientas para la transformación de datos................................................................................................ Distribución.. Retos Actuales de los DBMSs.....11............... Persistencia..............14 4.................................1...................5 4..............................15 4......................................1............ Modularidad....................................1...................................................................................25..................8 4.................9 4................10 4...............................................................8......1......................15 4.........................................................1...................................1..............14 4.1................................................1...............2.......5...........................................2.......................................................................... Sistemas de Administración de BDOO............................................................14 Diccionarios de datos. Objetos...11 4...........14..................................................3 4............. Tendencias Actuales en la Tecnología de BD..2............................................................................. Antecedentes.............................1.......1.................12 4.........................1...........................................2....7.........................................................................................................1.....16 4................................9..........................................1.....................1......2................................................... Orientación a Objetos................. Características.................1.................. Primera Generación......13 4................................................... Principios Fundamentales de la POO....6 4............... Clases..........................................1...............19..........................14 4............... Soporte de datos multimedia...................1..........................4........15 4....................................................... Segunda Generación.5 4.........1.........1...........13.............................. Polimorfismo...... Herramientas para desarrollo de aplicaciones......3............. Arquitectura de tres niveles...........4 4...12 4............3.8 4.....................................17....24...........15 4............1...................1.....1..........1.................... Rendimiento...................................................1........3 4....1.. Encapsulamiento...........8 4..1.. Persistencia.1.............................1..........................1....................... Modelo Orientado a Objetos Página 2 ...........................15 4...................... Interfaces para Programas de Aplicación (API)...............................................................1................. Herramientas y Facilidades de Usuario......................16....................................1.................... Distribución/Integración...6................................21............................................23......... Utilidades para mantenimiento y mejora del rendimiento de la BD.........2......15........... Abstracción........................4..........20...1..............1......1..............5 4.....................................................................................17 Unidad 4...........10..16 4......1..........................................................................................1.................4....................................................1...1............7 4........ Tercera Generación........7 4......................................2....1..........................6 4....13 4.................................1.........................................2.......................................1.................. Seguridad......3 4.........1....................................1.................. Interrelaciones.............1........................................................................................... Ejemplos.... MODELO ORIENTADO A OBJETOS............................1.........15 4.......1..2....22...............Contenido UNIDAD 4......................1................................6............. Estándar ODMG.1...1..........................................................15 4..............................................3... Introducción............................

multimedia y gestión de redes. MODELO ORIENTAD O A OBJETOS O bjeti vos Es p íficos ec ¬ ¬ ¬ ¬ ¬ Describir los retos y tendencias actuales de los DBMS Comprender el paradigma orientado a objetos Conocer los orígenes de las bases de datos orientadas a objetos Definir y describir las características del modelo orientado a objetos Describir y comprender el estándar ODMG 4 .1. sin considerar las necesidades específicas de los usuarios. que necesitan modelación directa de objetos e interrelaciones complejas. como CAD/CAM. sistemas basados en conocimiento. algunos de estos problemas son: ¬ Los DBMS actuales son monolíticos. ¬ A la fecha siguen existiendo más datos en hojas de cálculo que en DBMSs por la facilidad y simpleza que estos sistemas ofrecen en comparación con los DBMSs. ¬ Se cree que cerca del 50% de los datos de producción se encuentran todavía en sistemas heredados (sin DBMSs) sin poder llevar toda la información a un DBMS. etc.1 En la unidad anterior se revisó el modelo relacional para almacenar los datos en una base de datos. 4. tratamiento de documentos. Intr oducción . ofrecen todo tipo de servicios y funcionalidades en un solo paquete. Retos Actuale de los DBMSs s La última generación de BD ha demostrado que aún no se pueden resolver todos los problemas de almacenamiento que teóricamente debían resolverse con el uso de las BD. Como se mencionó. ya que el paradigma de la orientación a objetos (PaOO) proporciona un único modelo implementado en el OODBMS. Los OODBMS eliminan las barreras entre los datos y procesos encapsulando datos y las operaciones sobre ellos. Esta tendencia ya aparecía en versiones de productos relacionales que permiten desde los 90s. gestión de diversos tipos de transacciones. además de manejar diversas versiones y configuraciones. reglas (restricciones) y procedimientos almacenados..1. Otra ventaja de los OODBMS es la reducción de la distancia en el desarrollo entre el modelo conceptual (E/R ó UML) y el modelo lógico. en esta unidad se revisará el modelo orientado a objetos y el modelo objeto relacional que ha ganado terreno en el entorno de bases de datos. esto provoca un alto costo y pérdida de eficiencia. almacenar disparadores (triggers). control exhaustivo de componentes y estructuras. CASE. Modelo Orientado a Objetos Página 3 . Unidad 4.UNIDA D 4. al que acceden directamente las aplicaciones. los OODBMS (Administradores de Bases de Datos Orientadas a Objetos) surgieron por la falta de capacidad semántica del modelo relacional para soportar aplicaciones complejas. el almacenamiento de información no estructurada.

seguridad. ¬ Los servicios de replicación están limitados por lo que no se extienden nodos. Otras tecnologías que también están influyendo a los cambios son: técnicas de compresión/descompresión. Tendencias Actuale en la Tecnología de BD s Los avances en hardware tienen gran impacto en el desarrollo actual de las BD. Recientemente. a las BD. digitalizadores de audio y video. por lo que deben ofrecer a las organizaciones flexibilidad. etc. rendimiento. Eso plantea problemas de conectividad y afecta la distribución de las BD. etc. extensibilidad. permiten acceder a la información en cualquier sitio y momento. La reducción de precio de RAM y disco han proporcionado equipos con más potencia a precios más bajos. laptops. Las redes de alta velocidad (Ethernet rápida. El modelo C/S con la introducción de la arquitectura de dos capas se ha transformado con los monitores Middleware y TP (Procesamiento de Transacciones – Transaction Processing).) y ofrecer disponibilidad 100% (las 24 horas del día durante los 365 días del año). Las computadoras asistentes personales. tiempos bajos de respuesta. La globalización y competitividad internacional influyen en la tecnología.2. FDDI – Interfaz de Datos Distribuidos en Fibra. la cual debe proporcionar conectividad entre las BD distribuidas geográficamente.) han cambiado también la capa de comunicación donde se sitúan las BD. también plantea interesantes desafíos de metadatos. etc. medios de almacenamiento jerárquico. Los nuevos productos de BD deben ayudar al usuario a la localización de los datos distribuidos y a la conexión de las aplicaciones en las PC con las BD locales y remotas. están basados en de Programas de a más de 10. gestión de la incertidumbre. ¬ Es difícil combinar datos estructurados y no estructurados en una provenientes de correos electrónicos). Unidad 4. discos magnéticos. la aparición de la tecnología GRID. etc. palmtops. federaciones. PDA (Personal Digital Assistant). Este factor ha afectado algunos algoritmos de los DBMS. distribución/integración y funcionalidad. 4. Frame Relay. siendo capaces de integrar rápidamente BD separadas (protocolos. la arquitectura paralela (Multiprocesadores Simétricos – SMP Symmetryc Multi-Processing y Procesadores Masivamente Paralelos – MPP Massively Parallel Processing) ofrece la posibilidad de ejecutar los DBMS en varios procesadores. robustez. permitiendo que grandes volúmenes de datos sean almacenados RAM. La integración de datos estructurados y no estructurados es muy importante y los DBMS deben ofrecer este servicio.. interoperabilidad. También. AnyLan.000 BD (por ejemplo Las BD son el núcleo de los SI y por tanto se ven influenciadas por los cambios que sufren las empresas. Las DB han evolucionado en tres aspectos: rendimiento. DQDB – Bus Dual de Colas Distribuidas-. etc.¬ Los sistemas de gestión de flujos de trabajo (workflow) y muchos otros no tecnología de BD. etc. distribución de datos. simplemente acceden a la BD a través de Interfaces Aplicación (APIs). Modelo Orientado a Objetos Página 4 . que pretende conectar computadoras con el fin de proporcionar una potencia de cálculo mayor y usar los ciclos de procesador desperdiciados.1. medios de almacenamiento óptico.

que aportan un nuevo modelo de datos. Funcionalidad/Inteligencia En este punto. (BD multimedia) o datos geográficos (BD espaciales). que realizan fragmentos de una misma consulta en diferentes procesadores. las BD en memoria principal cambian algunos conceptos de estructuras de índices. disco compartido o nada compartido. video.1. almacenándose junto con los datos. reglas. etc. demonios. transacciones. La Web agrega nuevos componentes incluyendo las IGUs.1.1. Y en estos últimos años han aparecido BD que explotan las ventajas del gris. Modelo Orientado a Objetos Página 5 . A principios de los 90 aparecieron las bases de datos activas. donde los objetos pueden ser de cualquier tipo: imágenes.3. que realizan diversas consultas en varios procesadores independientemente.2. definidas en términos de la computadora.1. En vez de tratar de modelar un problema en algo familiar a la computadora se trata de acercar la computadora al problema. modelar el problema mediante entidades independientes que Unidad 4. la semántica y funcionalidad se ha migrado a los DD. Las OODB y ORDD permiten la definición y gestión de los objetos. de modo que se libere a las aplicaciones de comprobar restricciones de integridad y duplicándose en todos los programas. explotando tanto el paralelismo en las inter-consultas. Recientemente han aparecido las BD semiestructuradas. Rendimiento Las BDs han evolucionado implementando BD paralelas con memoria compartidas. Se ha ampliado la integración en Internet. bloqueos. También para mejorar el rendimiento. es decir.1. donde la descripción de los datos y las restricciones. 4. se almacenan en la BD y pueden ejecutar aplicaciones sin la intervención del usuario soportando disparadores.1. y convirtiéndose en BD semánticas. un nuevo modelo C/S (protocolo http) y un mecanismo de hiperenlace entre BD.1.4.1. definidos en términos del usuario.3. En aplicaciones de respuesta crítica el rendimiento se mejora fijando prioridad para las transacciones en tiempo real. agrupaciones. a las especificaciones del sistema. adecuadas para gestión de documentos XML. cada vez más. audio. 4. como en la intra-consulta. etc. Distribución/Integración La distribución de BD se ha ampliado a BD Móviles que son sistemas distribuidos en los que los enlaces entre los nodos cambian dinámicamente. etc. O entación a Objetos ri La Orientación a Objetos se puede definir como "una disciplina de ingeniería de desarrollo y modelado de software que permite construir más fácilmente sistemas complejos a partir de componentes individuales". reduciendo fuertemente la transformación radical normal desde los requerimientos del sistema. alertas. 4. La Orientación a Objetos permite una representación más directa del mundo real.

sólo que en ésta se pueden omitir (desde luego bajo responsabilidad del programador). Unidad 4. Estos conceptos no son exclusivos de la OO.1. junto con los datos que son manipulados por tales procedimientos. pues se han desarrollado desde la programación estructurada. 4. Modelo Orientado a Objetos Página 6 .1.1. Cada módulo se trabaja por separado y el especialista sólo conoce la forma en que se relaciona el módulo con los otros. un automóvil está constituido por un conjunto de módulos tales como un sistema eléctrico. los cuales pueden trabajarse por separado.5. Principios Fundamentales de la POO Algunos autores centran los principios fundamentales que configuran el paradigma orientado a objetos. Modularidad La modularidad consiste en dividir un programa en partes llamadas módulos.interactúan y cuyas fronteras no están determinadas por su instrumentación computacional sino por la naturaleza del problema. En términos de programación.1. lo cual causa grandes pérdidas de tiempo al desear modificar tal programa. El objetivo de la modularidad es reducir el costo de elaboración de programas al poder dividir el trabajo entre varios programadores y aumentar la productividad.4. lleva a tener grandes programas en un solo archivo y sin estructura alguna. uno mecánico y uno de frenado. Por ejemplo. pero no tiene por qué saber los detalles de funcionamiento de otros módulos o sistema. pues hacerlo. en tres características: ¬ Abstracción ¬ Herencia ¬ Identidad de los Objetos Otros más estiman que la OO se basa sólo en: ¬ Herencia ¬ Encapsulamiento o encapsulación ¬ Polimorfismo Mientras que otros señalan siete u ocho de los siguientes aspectos como básicos a considerar para una verdadera orientación al objeto: ¬ ¬ ¬ ¬ ¬ ¬ ¬ ¬ Modularidad Abstracción Objetos Clases Encapsulamiento Herencia Polimorfismo y enlace dinámico Persistencia 4. los módulos pueden compilarse por separado y la división no depende de cierto número de líneas sino es una división en términos de integrar en un módulo un conjunto de procedimientos relacionados entre sí.

se conoce como protocolo. Así. son: modificar. seleccionar.1. Se usa un valor de dato por identidad. comportamiento e identidad. dependiendo del observador. Por ejemplo. Esta es la forma usada en los lenguajes de programación para identificar a cada variable dentro de un programa. 4. etc. iterar. y cada módulo de alto nivel es un tipo. Se usa un nombre dado por el usuario. antes de pensar en la implementación. este concepto de identidad no se aplica a las tuplas de una BD relacional. una mercancía por un vendedor. El conjunto de operaciones que un objeto puede realizar sobre otro. Algunas formas de identidad son: ¬Valor.7. proporciona los medios para ir creando módulos llamados clases. en estos sistemas. un objeto es: “un concepto. Abstracción La abstracción es una descripción o especificación simplificada de un sistema que hace énfasis en algunos detalles significativos y suprime los irrelevantes. envío y recepción de mensajes.La OO no puede lograrse sin hacer uso de los mecanismos antes mencionados y para ello. El estado de un objeto abarca todas las propiedades o características distintivas del mismo y los valores de cada una de estas propiedades. cada tipo no simple es un módulo. En términos de programación. sin importar cómo lo haga. El comportamiento es la forma como actúa o reacciona un objeto en términos de cambio de estado. Objetos A pesar de que el punto central en esta nueva metodología de programación es el concepto de objeto. La abstracción es esencial para construir cualquier sistema. La identidad de un objeto es una noción más fuere que la que se encuentra normalmente en los lenguajes de programación o en los modelos de datos no OO. Unidad 4.1. Está formado por la definición de las operaciones (funciones y procedimientos) que puede realizar este objeto. ¬Nombre. 4. abstracción o cosa con límites bien definidos y significado para una aplicación”. Esta es la forma usada en los sistemas relacionales. o en POO métodos. las tuplas se distinguen por los valores que contienen. Modelo Orientado a Objetos Página 7 . sea o no orientado a objetos y debe enfocarse más en qué es un objeto y qué hace. En las clases.1. Un objeto conserva su identidad aún cuando algunos o todos los valores de los atributos o las definiciones de los métodos cambien con el tiempo. En términos de programación. construir y destruir. Una característica de la abstracción es que un objeto puede abstraerse de diversas formas.1. una herramienta de trabajo por un corredor profesional. un automóvil puede abstraerse como un objeto que sirve para desplazarse a mayor velocidad. el automóvil que se mencionaba puede ser visto como un objeto de colección por un coleccionista. Lo que sí puede decirse de todo objeto es que tiene estado. Identidad (OID – object identifier) es la propiedad de un objeto que lo distingue de todos los demás. puede decirse que las propiedades son las variables que sirven para describir tal objeto.6. Los tipos más comunes de operaciones.

permite que una clase sea definida como una extensión o restricción de otra y es la contribución más importante de la POO. pero sólo el mecánico sabe los detalles de la implementación. y generalmente tiene una identidad marca. Encapsulamiento El encapsulamiento es una técnica para empaquetar la información.10. Con esto se trata de lograr que al tener algún cambio en la implementación de un objeto no se tengan que modificar los programas que utilizan tal objeto.1. una clase describe un conjunto de objetos que comparten una estructura común y tienen comportamientos comunes. lo cual modifica su estado. envolviendo los atributos y métodos de los objetos en clases. puede estar estacionado o en circulación. En tal jerarquía. Unidad 4. pero adquieren características especiales no compartidas por el padre. Por otro lado.1. pero también se pueden emplear los valores de los atributos para distinguir a un miembro de la clase de otro (un auto de carreras corre a una mayor velocidad). Una subclase define el comportamiento de un conjunto de objetos que heredan algunas de las características de la clase padre.1. pues mediante este mecanismo es posible lograr la principal meta de la OO que es la reutilización de código. Interrelaciones La herencia que es la una relación entre clases donde las características y el comportamiento general de una superclase puede compartirse con sus subclases. La herencia permite definir una jerarquía de clases. Así. pero los valores de los atributos permiten distinguir a unos de los otros.¬Incorporación. en este sentido se dice que la subclase es una especialización de la clase padre. Un comportamiento asociado con el auto pueden incluir encenderlo.1. para el conductor es transparente. Siguiendo con el ejemplo del automóvil. se sabe que existen diversos mecanismos para que funcione éste. Modelo Orientado a Objetos Página 8 .1. de tal forma que se oculte lo que debe ocultarse y haga visible lo que está pensado para serlo. Por ejemplo. si en algún momento se cambia. número de serie del motor y placa. Esta es la forma que se usa en las BD orientadas a objetos. modelo. en particular se tiene el sistema de frenado que todo mundo sabe que sirve para detener el auto al pisar el pedal de freno. 4. 4. algunas clases son subordinadas a otras llamadas subclases.1. 4. Se incorpora en el modelo de datos el lenguaje de programación y no se requiere que el usuario proporcione algún identificador. Por ejemplo. un automóvil puede tener diversos estados. Clases Una clase es un módulo y un tipo de datos abstracto que define un grupo de objetos que comparten características comunes.9. se puede hablar de autos como una clase y mencionar propiedades compartidas tales como los asientos o parabrisas.8.

Modelo Orientado a Objetos Página 9 . La genericidad es otra forma de interrelación que es la capacidad de definir clases parametrizadas (genéricos).11.4. permite que las entidades del programa puedan referenciar en tiempo de ejecución a objetos de diferentes clases y está íntimamente relacionado con el concepto de herencia. que se distinguen por la cantidad y tipos de parámetros. El enlace dinámico. estado y comportamiento de un objeto para trascender el espacio o el tiempo. Persistencia La última propiedad asociada con sistemas OO es la persistencia. el objeto seleccionará el método de frenado apropiado. En el ejemplo del frenado. por ejemplo un vector de números enteros. etc.La herencia múltiple y repetida permite que se pueda declarar una clase como heredera de varias. 4. Se utiliza el mismo nombre para diferentes servicios. Las dos principales formas de polimorfismo son: ¬Sobrecarga. La herencia simple permite heredar sólo de una clase padre. Un lenguaje de programación OO se diseña para seleccionar automáticamente el método correcto para implementar la operación.1. se implementan las llamadas interfaces que permiten simular la herencia múltiple. que es la capacidad del nombre. Por ejemplo. estado y comportamiento de un objeto se pueden conservar aún cuando el objeto es transformado o destruido. se puede definir un vector de elementos de tipo “X”.1. correspondiendo a la noción “parte-de” ó “tiene un”. En otras palabras.1. esto es llamado enlace dinámico (dinamic binding). un comportamiento puede tener más de un método que lo implemente. al tratar de frenar un auto siempre se debe oprimir el pedal del freno y el vehículo se detendrá sin importar si los frenos son de tambor o de disco. existirá un método frenar cuando se trata de frenos de disco y otro cuando son de tambor pero el método sigue siendo frenar. de personas. que permite construir objetos complejos o compuestos a partir de otros. Por ejemplo. Una implementación específica de un comportamiento para una cierta clase se denomina método. y el nombre de la clase de objeto. Otro tipo de interrelación muy importante en este modelo es la agregación. de vectores. a partir de los datos asociados con la operación como parámetros. En estos casos. 4. ¬Sobrescritura. En un sistema polimórfico. éstos no requieren herencia. siendo “X” el parámetro formal que se sustituye por el parámetro real cuando se requiere construir el tipo concreto. Por ejemplo. Polimorfismo El polimorfismo es la capacidad de tener métodos con el mismo nombre pero con una implementación diferente o que un método sea aplicable a diferentes tipos de argumento. el nombre. Unidad 4. e incluso de ella misma. Cuando una subclase redefine un servicio manteniendo el mismo nombre. creando una plantilla que permite construir tipos. Por ejemplo un auto tiene un motor. basado en los parámetros que describen el tipo de frenos.

este tipo de productos usaba lenguajes procedimentales. los DBMS comerciales ofrecen acceso a BDs en red. 4. son las causas de los puntos débiles de los sistemas basados en estos modelos (poca Unidad 4.Una vez almacenado en memoria secundaria. se fue desplazando hacia sistemas orientados a los datos. en las décadas 60 y 70 nació la primera generación de productos de BD. la evolución de los sistemas de información ha tenido impacto en la gestión de los datos. en el que muchos usuarios accedían a la BD a través de una red de comunicación.1. al exigir cada vez más prestaciones de la información almacenada en los sistemas. dio lugar al primer sistema BD/DC (Data Base/Data Communication) a gran escala. Desde entonces. Sin embargo. en la búsqueda de un conjunto de datos. En su artículo “El Programador como Navegador”. junto a las restricciones funcionales de estos enlaces y conjuntos. proporcionaban una organización lógica de los datos en árboles y grafos.2 . Siste mas de Admin istr ación de BDOO 4. se puede desear guardar información del mantenimiento de un auto.2. se puede reconstruir para usarlo durante la ejecución (materialización del objeto). el enfoque de la informática. Codasyl propuso un Lenguaje de Definición de Datos (DDL) en tres niveles (Schema DDL. el objeto persiste aun cuando sus atributos se transformen. En sus especificaciones de 1978. describe el proceso de navegar a través de una BD. Actualmente. en los que los datos se almacenan en BD y representan un papel fundamental para los ingenieros de sw. En este caso. La incorporación a los DBMS de facilidades de comunicación de los datos con IMS de IBM. A continuación se muestra un resumen de las últimas décadas de evolución. no poseían la suficiente independencia físico/lógica y su flexibilidad era muy limitada. Por ejemplo. para poder comparar los ajustes y modificaciones que se le han realizado. 4.2. Tras los complejos sistemas de archivos de las primeras etapas de la informática. Los primeros DBMS que se basaron en los modelos jerárquicos y en red. siendo esta la forma habitual de uso de BD. Prim era Generación Desde que empezaron a usarse las computadoras para automatizar la administración de las empresas. Los enlaces jerárquicos y los conjuntos Codasyl se implementaron físicamente mediante apuntadores. lograron varios avances comparados con los sistemas de archivos. Bachean fue pionero en el desarrollo de los sistemas de BD en red. Gradualmente. en el que el programador tiene que seguir un camino explícito. registro a registro. Antecedente s La historia de las BD se extiende desde mediados de los 60s y se ha caracterizado por su excepcional productividad e impresionante impacto económico. inicialmente concentrado en el proceso donde los datos se almacenaban en archivos específicos para cada aplicación. Subesquema DDL e Internal DDL) y una normativa para poder manipular los datos en el DML de tipo procedimental.2. Modelo Orientado a Objetos Página 10 . Si bien eran sistemas bastante eficientes. muchos de los problemas del diseño de los sistemas de información se centran en el modelo y estructuración de los datos. Esta implementación.

han aparecido en las últimas versiones comerciales: multimedia. BD multidimensionales.3.flexibilidad en las estructuras físicas. A finales de los 70 y durante los 80s. el modelo relacional está orientado a valores y no soportan la identidad de los objetos. Sin embargo. 4. lenguajes de alto nivel. semiestructuradas. con el auge del lenguaje XML. Aunque las necesidades de los usuarios han influido en esta evolución. proporcionan mayor independencia física/lógica. Estas investigaciones tuvieron como consecuencia un aumento de la eficiencia y la seguridad de los entornos transaccionales en línea (OLTP).. los DBMS están soportando la gestión de este tipo de información con modelos XML puros o implantándolos como una capa sobre el modelo relacional. y la arquitectura de tres niveles. también propuesta por Codasyl en el 78. Las BDs empezaron en los 60 como un producto tecnológico demandado por las necesidades de los usuarios.2. gril. estos mismos apuntadores son precisamente la razón de su eficiencia. En los últimos años la tecnología de BD ha obtenido grandes avances. Respecto a la arquitectura. técnicas de indexación (variaciones de los árboles B). Muchos avances en la tecnología de BD se basaron en dos elementos base: la arquitectura y los modelos de datos. y la descripción recursiva de los datos. productos como Oracle. En los últimos años. Unidad 4. junto con el modelo relacional. Además los RDBMSs proporcionan una base teórica más sólida. siendo soportado por la mayoría de los productos actuales. En la mayoría de los modelos de referencia se pueden encontrar dos conceptos principales: la arquitectura de tres niveles (externo. paralelismo. temporalidad (incorporan el tiempo). S gu da Generación e n Los productos relacionales se consideran la segunda generación de BD. En cuanto a los modelos de datos. mayor flexibilidad y lenguajes de consulta declarativos. En los 80s se estandarizó SQL. ha sido uno de los principales avances en este sentido. con la mayoría de los productos ofreciendo una interfaz SQL. Estos factores han estado siempre presentes a lo largo de la historia de las BDs. etc. Pueden citarse tres factores clave en la evolución de las BD: los fundamentos teóricos. orientación a objetos. uno de los puntos fuertes de este tipo de productos. las organizaciones también tienen más facilidad para distribuir sus datos. La separación entre la apariencia lógica de los datos y su implementación física ha sido siempre un objetivo importante en la evolución de las BD. el modelo relacional fue el que marco las líneas de investigación en las décadas de los 70 y 80. A diferencia de los modelos anteriores. Con los RDBMSs. los trabajos se centraron en la optimización de las consultas. Esta generación está orientada principalmente al procesamiento por lotes. DB2. gestión de transacciones. dd. y pasaron a convertirse durante los 70 y 80s en una gran industria y un mercado importante. Modelo Orientado a Objetos Página 11 . fue hasta los 90 que la tecnología ha sido guiada por las demandas de los usuarios. etc. sistemas distribuidos. los productos y las aplicaciones prácticas. teoría de la normalización. en los que los usuarios indican qué quieren obtener sin describir cómo hacerlo. En los 90 surgieron otros DBMS basados principalmente en modelos de objetos. temas que parecían al principio exclusivos de laboratorios y centros de investigación. pero el equilibrio entre ellos ha cambiado. aún los no relacionales. y complejidad de los lenguajes de navegación). organizaciones físicas para el almacenamiento de las relaciones. etc. algoritmos para la gestión de memorias intermedias (buffers). influyeron positivamente no sólo en las investigaciones teóricas. seguridad. lógico e interno). tema fundamental en la 2ª generación de BD. dependencia datos/aplicaciones. las propuestas de ISO y ANSI sobre los modelos de referencia. sino también en las aplicaciones prácticas.

Fast Objects.4. Principio: “Los DBMS de tercera generación deben ser abiertos a otros subsistemas”: o Debe ser accesible desde múltiples lenguajes de alto nivel. o SQL debe ampliarse para la expresión de datos. Esta generación se caracteriza por “proporcionar capacidades de gestión de datos igual que las anteriores. permitiendo que grandes cantidades de datos persistentes sean compartidos por muchos usuarios. Principio: “Los DBMS de tercera generación deben incluir a los DBMS de segunda generación”: o Deben tener un lenguaje de acceso declarativo y de alto nivel.4.2. datos derivados. Al mismo tiempo. como O2. los avances en hw y sw y los cambios en la organización de las empresas también obligaron el nacimiento de una nueva generación de BD.5. y son cumplidas por la mayoría de los proveedores relacionales actuales: ¬1er. o Las consultas y sus respuestas deben ser el nivel más bajo de comunicación C/S. soportando un gran número de reglas complejas para inferencia automática de información y también para mantener las restricciones de integridad entre datos”. ¬3er. ¬2º. o Deben soportar persistencia de variables. También proporcionan gestión de objetos. Objectivity. los DBMS de tercera generación proporcionarán gestión de objetos y reglas más amplio”: o Un DBMS debe tener un sistema de tipos amplio. están las BD Orientadas a Objetos que soportan un modelo de objetos puro y no son extensiones de otros modelos. Ontos. o Las vistas deben ser actualizables. Unidad 4. Por otro lado. objetos multimedia. ObjectStore. Los DBMS han puesto atención a estas aplicaciones para proporcionar respuestas a estas necesidades. por lo que casi todos los proveedores comenzaron a incorporar nuevas funcionalidades a sus productos para proporcionar soluciones a estos problemas. o Debería asignar OID para las tuplas sólo si no está disponible una llave primaria. Jasmine. o Debe permitir definir métodos y encapsulamiento. Versant. o Los indicadores de resultado no deben aparecer en los datos. o Deben existir dos formas de especificar las colecciones: por enumeración de miembros o mediante un lenguaje de consultas. Terc era Generación Muchas aplicaciones no tradicionales no usaban tecnología de BD por que sus necesidades especiales. así como otras nuevas capacidades. Modelo Orientado a Objetos Página 12 . permitiendo tipos de datos mucho más complejos. Definición Existen dos enfoques principales de implementación de BD de objetos. 4. encapsulamiento de la semántica de los datos.2. etc. o Debe manejar herencia. Itasca. Las BD Objeto-Relacionales tienen una serie de reglas descritas en el “Manifiesto de los Sistemas de BD de Tercera Generación” de Stonebraker (1990). extiende los RDBMS para que soporten los conceptos de orientación a objetos creando las BD ObjetoRelacionales. Principio: “Además de los servicios tradicionales de gestión de datos. Algunos proporcionan incluso gestión de conocimiento. El primero.

Por su parte. Unidad 4. Características Las características de estos sistemas provienen de la unión de BD y OO. y que. sobrecarga y enlace dinámico ¬Compleción de cálculos ¬Extensibilidad ¬Persistencia ¬Gestión del almacenamiento secundario ¬Concurrencia ¬Recuperación ¬Facilidad de consulta Junto con cinco características opcionales que serían convenientes presentar: ¬Herencia múltiple ¬Verificación de inferencia del tipo ¬Distribución ¬Transacciones de diseño ¬Versiones Este manifiesto fue el primero que se elaboró.6. ¬La persistencia es una propiedad del tipo de objeto. Modelo Orientado a Objetos Página 13 . a diferencia de los objetos en los LP. ¬El objeto se designa persistente al crearse. los autores aconsejan “cuestionar las reglas”. se presentó como una propuesta ante la falta de acuerdos en las características de los OODBMS y.1. sino una exposición general y un punto de comparación.2. generalmente definida como subtipos de un tipo persistente. las BD Orientadas a Objetos son más completas y describen sus características en el “Manifiesto de Sistemas de BD Orientadas a Objetos” de Atkinson (1989).1. Las características que indica el ANSI (1990b) son consideradas como modelo de referencia abstracto. 4. Persistencia En los OODBMS los objetos son permanentes almacenados en la BD hasta borrarlos de modo explícito. 4. Existiendo distintas posibilidades: ¬Todos los objetos son persistentes.12. por ello. estas reglas se cumplen por los OODBMS y se refieren al soporte de: ¬Objetos complejos ¬Identidad del objeto ¬Encapsulamiento ¬Tipos y clases ¬Jerarquías de tipos o clases ¬Polimorfismo. no indica una especificación implementable. ¬Existe alguna operación que hace a un objeto persistente.

este problema se produce por diferencias en el paradigma de programación (ImperativoJava/ Declarativo-SQL) y de los tipos de datos.14. Modelo Orientado a Objetos Página 14 . En ocasiones. es más potente.1. Modelo de objetos A diferencia del modelo relacional.1.13. Arquitectura de tres niveles En los OODBMS los esquemas externos (vistas) deben ocultar (o exponer) tanto los atributos como los servicios. el rendimiento de un OODBMS puede ser superior cuando se trata de navegar a través de objetos ya cargados en memoria.16. aunque la mayoría poseen optimizadotes rudimentarios. ya que los objetos representan entidades del mundo real dando una sensación mucho mejor del problema que un conjunto de tablas. el modelo relacional se basa en el valor. Optimizador En el caso de los OODBMS.1. la mayoría de los productos no conceden a la arquitectura de tres niveles gran importancia.18. el modelo de objetos es más realista. por ejemplo. por lo que la optimización resulta difícil al ser el programador el que indica los caminos a seguir.1. considerándose los objetos como “cajas grises” (ni negras. integridad y disponibilidad de la base de objetos.1.4. 4. El optimizador estará condicionado a las características que posean los lenguajes del OODBMS. Además. Los OODBMS han adoptado extensiones de LOO. 4. Interfaces para Programas de Aplicación (API) Unidad 4. Por último. sin embargo.1. como para manipular datos.15. A pesar de ello. en general.1. ni blancas). El encapsulamiento es difícil de respetar en los OODBMS. el lenguaje de datos se usa junto con el LP. siempre que se puede convertir fácilmente los IDO de los objetos a posiciones de memoria.1. 4. sus lenguajes son navegacionales. Lenguaje de Datos Los DBMS tradicionales existe un problema de concordancia entre los lenguajes de datos y anfitriones. descuidando sobre todo la definición de vistas.1.1. tanto para describir.17. esto a llevado a crear lenguajes “estilo SQL”. 4. sin estadísticas en el DD que permitan una mejor optimización. ya que es mucho más flexible y posee características como polimorfismo. 4. Seguridad Los OODBMS deben proporcionar todos los mecanismos necesarios para asegurar el control de la confidencialidad.1.1. mientras que el modelo de objetos se basa en el principio de identidad. para la definición de los servicios.

además de los formateados. como texto. o viceversa. Las IGU también siguen el PaOO.22.1.). clases.1. 4. según sea la función que desempeñan en cada momento (DBA. etc. imagen. Distribución Al igual que los RDBMS. 4. facilitando la interacción del usuario con el sistema. con lo que se obtiene mayor riqueza semántica que la de los DD relacionales. Este tema es muy activo en este campo. video. Herramientas y Facilidades de Usuario Deben proporcionar distintas interfaces a los usuarios. Modelo Orientado a Objetos Página 15 .1. El mayor problema es hacer coexistir los OODBMS y los RDBMS. que son colecciones de bits sin estructura interna. Smalltalk y Java. No es conveniente que esté estrechamente relacionado a un LP particular. la mayoría ofrecen una capacidad limitada para ajustes de rendimiento parametrizado. 4.1.23. Herramientas para desarrollo de aplicaciones Es fundamental que posean distintos tipos de herramientas para desarrollo de aplicaciones. etc.1.Se deben ofrecer las interfaces necesarias para que programas escritos en distintos lenguajes puedan acceder a los objetos de la base. colecciones. pudiéndose volcar datos de un OODBMS a un RDBMS. Actualmente. la mayoría están muy unidos a un lenguaje específico.1.1. Programador. Esto todavía no se logra al nivel de los RDBMS. que van desde lenguajes de desarrollo hasta navegadores que permiten una mejor manipulación de las bibliotecas de clases. 4. Utilidades para mantenimiento y mejora del rendimiento de la BD También deben tener utilidades que permitan monitorizar el uso de recursos con el fin de aumentar el rendimiento de los sistemas y realizar ajustes (tunning).1. 4. jerarquías. En algunos OODBMS estos objetos se almacenan en BLOBs (Binary Large Objects). particularmente C++. usuario final.1. diseñador de clases. Unidad 4.1. Herramientas para la transformación de datos Deben proporcionar herramientas que permitan transferir datos entre distintos DBMS. objetos de almacenamiento masivo. Diccionarios de datos El OODBMS debe manipular metadatos sobre objetos. Soporte de datos multimedia Deben soportar distintos tipos de datos.1.19. cualquier elemento debe poder distribuirse en diferentes equipos de forma transparente.20. aunque en la realidad.21.1. 4. voz.24.

además de algunas mejoras como la incorporación de nuevos tipos de colecciones. Objectivity.4. determinando también un conjunto de características a incluir en la segunda versión. introdujo la parte de la vinculación con el lenguaje Java.2 se referían al lenguaje de consulta de objetos (OQL. debido a su uso en entornos de diseño CAD/CAM y sistemas de información de oficinas. de modo que: ¬Todos los objetos persistentes tengan versiones y no exista un límite en el número de versiones que puede tener. así como al OMG (Object Management Group). y se revisó en la edición 1. agregando componentes para soportar las necesidades específicas de las BD.1 y 1. El modelo de objetos está basado en el modelo de objetos de OMG y se extiende. ¬Se considera la versión como una cuestión de las aplicaciones.0. La versión ODMG 3.2. Además ODMG propuso su estándar a los organismos oficiales de normalización ANSI e ISO. O2 Technology. y que contaba también con diversos revisores tanto de empresas.0 son: ¬Modelo de objetos. Versant. basado en las características que presentaban los productos existentes y que se pudiera publicar en un breve plazo de tiempo. También es importante agrupar versiones compatibles de diversos objetos y tratarlos como una unidad de más alto nivel. Object Query Language).3 . POET Software y Servio Corporation. 4. Control de versiones y configuraciones El control de versiones es una característica fundamental. reunió a un grupo de expertos que trabajaban en distintas empresas de OODBMS. ¬Las aplicaciones deben poder acceder a la versión actual de un objeto o a cualquier otra. pero se proporciona un servicio de gestión de versiones mediante un nivel de software implementado sobre el modelo básico. y les propuso elaborar un estándar “de facto”. La primera versión se publicó en 93. como de universidades.25. El modelo de objetos ODMG soporta dos lenguajes de especificación de objetos: Página 16 Unidad 4. Las principales mejoras de la versión 1. Existen diversos enfoques para soportar versiones: ¬En el modelo de datos se incluyen una serie de primitiva que permiten tratar las versiones como componentes fundamentales del propio modelo.1.1. A mediados del 93 ya se había finalizado la primera versión de este estándar. Así nació el ODMG (Object Data Management Group) que reunía a los principales vendedores de OODBMS: Object Design. Modelo Orientado a Objetos . ODMG E án ar st d En verano de 1991 Rick Cattell.0 incluye algunas mejoras de vinculación con Java. como el tipo diccionario (dictionary type). mejoras al modelo de objetos y algunas correcciones y mejoras en las especificaciones del estándar. de SunSoft. ¬Las versiones no se consideran parte del modelo da datos en sí. Los principales componentes del estándar ODMG 3. ¬Lenguaje de Especificación de Objetos. Ontos. La versión 2. ¬Debe atenderse en especial a la eficiencia de las versiones actuales.

académico} nivel. void addCreditos(int numCreditos). Es un lenguaje declarativo (OQL. // dictionary). asociado. Java y Smalltalk. //relación Estudiante toma un conjunto de clases en unGrupo //y su inversa Grupo tieneEstudiantse Estudiante (M:M) } class Profesor extends Persona (extent prof) { attribute enum NivelProf {instructor. para escribir código portable que permita manipular los objetos persistentes usando uno de esos lenguajes. Su sintaxis extiende al IDL. el formato de intercambio de objetos (OIF. ¬Vinculación con Lenguajes de Programación. dtring estado. implementación en LP anfitrión. o OIF. ¬Lenguaje de Consulta de Objetos. Ejemplos ¬Declaración de clases (ODL) class Persona (extent gente key idP) { //nombre de la clase (intención) //nombre del archivo que contiene los datos (extensión) //si no se indica extent es interface //y opcional llave candidata del objeto(OID es automático) //atributo atómico (int. real. attribute nombre string. Object Query Language) para consultar la BD. Una mejora que introdujo la versión 2. proporcionar documentación de BD o guiar un conjunto de pruebas de BD. //método. boolean. permitiendo obtener el mismo resultado en tipos de colecciones diferentes. se puede usar después como // Persona::Direc attribute telefono string. set. o 4. Aunque está basado en SQL. el resultado de una consulta SQL siempre es una tabla. asistente. que no es un lenguaje de programación completo. lenguaje de definición de interfaces (Interface Definition Language) desarrollado por OMG. string cp) direccion. string. Modelo Orientado a Objetos Página 17 . //los parámetros pueden ser IN. //atributo enumerado Unidad 4. relationship Set(<Grupo> tomaClase Inverse Grupo::tieneEstudiantes. Además incluye un mecanismo para invocar OQL y procedimientos para realizar operaciones y transacciones sobre las BD de objetos. Object Manipulation Language) para cada uno de los LP. aunque es un lenguaje de definición independiente. Estos enlaces definen la correspondencia entre ODL y los LP correspondientes. Object Interchange Format).0 del estándar es la definición de otro lenguaje de especificación. char. //atributo tipo estructurado (struct.0 tiene enlaces con C++. Sin embargo. su semántica no es la misma. sólo la firma. int getCreditos(). La versión 3.1. que se puede usar para intercambiar objetos entre BD.3. string ciudad. enum) attribute idP int. class Estudiante extends Persona //nombre de clase que hereda de Persona (extent estudiantes) { attribute creditos int. OUT ó IN/OUT //puede usar self //pueden sobrecargarse y sobrescribirse void setNombre(string nuevoNombre). También incluye una correspondencia del lenguaje de manipulación de objetos (OML.ODL lenguaje de definición de objetos (Object Definition Language). array. list. También proporciona algunos constructores para actualizar los objetos de la BD. }. OQL soporta capacidades más potentes con respecto al resultado de la consulta. bag. attribute Struct Direc(string calle. string getNombre().

tomaClase From estudiantes as e Where e. Tarea.idP.nombre //misma consulta. b. real getSalario(). a. Select g. relationship Profesor tieneProfesor Inverse Profesor::daClaseEn. Modelo Orientado a Objetos Página 18 .salario //obtiene el promedio de salarios de profesores que From prof as p //pertenecen al departamento de historia Where p.2).perteneceA = ‘Historia’).tieneProfesor as p Order By p. Avg(Select p.tieneProfesor as p //muestra los profesores del Where d. entre OID y llave primaria. Explicar cuáles son las diferencias entre una DBMS y un OODBMS.nombre. muestra todas las //clases que toma el estudiante E999 Select e. Select g //encuentra los grupos que tengan más de 30 estudiantes From grupos as g Where count(g. b. usando subquery.tomaclase.getNombre() From g in gente. Leer al menos 2 fuentes adicionales sobre los temas vistos en esta unidad y hacer un resumen de la unidad (máximo 1 cuartilla).tieneEstudiantes > 30). //ordenador por nombre Select p.idP. entre SQL y OQL. Unidad 4. obtiene todos los From (Select d //departamentos referenciados por el iterador b y From d in departamentos //por cada b obtiene un iterador p Where d.creditos From estudiantes e.nombre. //relación bidireccional Profesor perteneceA un Depto /y su /inversa Departamento tieneProfesor Profesor (1:M) relationship Set<Grupo> daClaseEn Inverse Grupo::tieneProfesor. //relación Profesor daClase en un conjunto de Grupo //y su inversa Grupo tieneProfesor profesor } class Grupo (extent grupos) { attribute grupo string. //muestra todos los id y créditos en el archivo(extent) estudiantes //muestra los nombres de todas las personas en extent gente //otra forma de alias //obtiene el conjunto de objetos relacionados al objeto //mediante la relación e. e. No olvidar conclusiones y bibliografía.nomDepto = ‘Biología’ //departamento de Biología Order By p.nombre //encuentra registros por su referencia (d–var iterador) From departamentos as d. relationship Departamento perteneceA Inverse Departamento::tieneProfesor.idP = ‘E999’. string getNivel(). } ¬Consultas (OQL) Select e.attribute salario real(8. e. d. relationship Set<Estudiante> tieneEstudiantes Inverse Estudiante::tomaClase.nomDepto = ‘Biología’) as b. entre BDOR y BDOO. Select p.