ORIENTADO A OBJETOS EJERCICIOS DE BD RELACIONAL Fábrica de Pelotas “Golazo” Solicitan nuestros servicios para resolver el almacenamiento de datos de un sistema de gestión de la producción de una fábrica de pelotas. La fábrica se compone de una serie de plantas, cada una identificada por un color. De las plantas conocemos la superficie en metros cuadrados y la lista de procesos que se llevan a cabo dentro de ellas; de estos procesos sólo conocemos su nombre y un grado de complejidad asociado. Dentro de cada planta se encuentran las máquinas. Cada máquina es de una marca y un modelo, y se identifica por un número; este número es único a lo largo de todas las plantas. Cada máquina es operada por técnicos, debemos conocer en qué rango de fechas los técnicos estuvieron asignados a esa máquina, y además en qué turno (mañana, tarde o noche). De los técnicos conocemos su DNI, nombre, apellido y fecha de nacimiento, aparte de una serie de números telefónicos de contacto. Existen situaciones normales en las que una máquina sale de servicio y debe ser reparada, lo único que nos interesa conocer aquí es cuál otra máquina está asignada para tomar el trabajo que ella no puede realizar Sistema de Blogs Una importante radio decide realizar un sistema de blogs para que cada uno de sus programas escriba notas que puedan resultar de interés a los oyentes. Para ello cuentan con un Modelo Entidad-Relación en el cual se identifican las siguientes entidades del dominio que van a manejar. En primer lugar contamos con los programas, de los mismos conocemos el nombre (único), descripción, la lista de conductores y un horario compuesto por la hora en la que inicia y la hora en la que termina. Estos programas son los que escriben las notas, de ellas conocemos su titulo (único), contenido, una imagen y un resumen de la misma para mostrar en los listados de notas. Un programa puede escribir muchas notas pero cada una esta escrita solo por un programa. Para diferenciar las notas en distintos grupos, el sistema cuenta con la posibilidad de asignar categorías a las mismas. De ellas conocemos el nombre (único), descripción y una imagen que la identifica. Una ventaja que tiene el sistema de categorías es que se pueden crear jerarquías muy fácilmente, esto quiere decir que una categoría puede pertenecer a otra, por ejemplo, podría existir la categoría “Arte” y esta a su vez contener dos categorías hijas “Música” y “Pintura”. Para lograr interacción con los oyentes, el sistema permite que los mismos se registren y comenten las notas. De los usuarios conocemos su username, password, fecha de registro, avatar y un email el cual solo puede registrarse una vez. Los comentarios poseen un numero de id y el texto que lo compone INTRODUCCIÓN La estructura de datos básica que ofrece la tabla relacional es apropiada par a muchas aplicaciones habituales. Sin embargo existe casos de uso particulares que requieren gestionar datos complejos o no convencionales (estructuras, imágenes, documentos, etc)
Las bases de datos orientadas a objetos intentan dar
respuestas a las anteriores necesidades Las BDOO incorporan las siguientes características:
Adoptan como modelo de datos el de los lenguajes
orientados a objetos, permitiendo así el uso de estructuras de datos tan complejas como sea necesario, y eliminando en gran medida las barreras entre el desarrollo de aplicaciones y la gestión de datos
Permiten la extensibilidad con nuevos tipos de datos
complejos, permitiendo incorporar operaciones arbitrarias sobre ellos. EVOLUCIÓN HISTÓRICA DE LAS BD BASES DE DATOS ORIENTADO A OBJETOS
El modelo de base de datos orientada a objetos agrupa la
información en paquetes relacionados entre sí: los datos de cada registro se combinan en un solo objeto, con todos sus atributos.
De esta manera, toda la información está disponible en el
objeto, ya que sus datos quedan agrupados en lugar de distribuidos en diferentes tablas DIFERENCIAS
BD Orientadas a Objetos BD Relacionales
- Modelo de datos equivalente a los - Modelo de Datos no equivalentes a lenguajes de programación los lenguajes de programación Orientado a Objetos Orientada a Objetos - Se puede integrar las BDOO con el - Se usa un lenguaje de software usado para desarrollar programación para la aplicación y aplicaciones directa y transparente SQL para el acceso la Base de datos NIVELES DE SOPORTE DE LA TECNOLOGÍA ORIENTADA A OBJETOS A pequeña escala se encuentran las librerías que permite almacenamiento persistente de objetos. Están disponibles para cualquier lenguaje de programación orientada a objetos, pero en muchos casos no incorporan características avanzadas, como soporte transaccional o multiusuario. Después están las bases de datos objeto-relacionales, para aplicaciones que requieren usar algunos tipos de datos complejos en un entorno esencialmente relacional, y que se basan en extensiones orientadas a objetos de SQL Finalmente, las bases de datos orientadas a objetos puras proporcionan una gestión de datos orientadas a objetos a todos los niveles, desde la definición de datos al lenguaje de consulta IGUALDAD FRENTE A IDENTIDAD
Por ejemplo la ejecución del siguiente código Java:
FASES DEL MODELO ORIENTADO A OBJETO Análisis: se ocupa del que, de entender el dominio del problema
Diseño: responde al como, y se centra en el espacio de la
solución
Implementación: fase en la que se adapta la solución a un
entorno de programación especifico Los objetos se dividen a su vez en clases. Más concretamente, un objeto es una unidad concreta de una clase abstracta, lo que crea una jerarquía de clases y subclases. Dentro de esta estructura, las subclases adoptan las propiedades de las clases superordinadas y las complementan con sus propios atributos. Al mismo tiempo, los objetos de una clase también pueden relacionarse con otras clases, lo que rompe la jerarquía estricta y permite formar redes. Los objetos simples también pueden combinarse para crear objetos más complejos Para gestionar los diversos objetos, el SGBD orientado a objetos correspondiente asigna automáticamente un código de identificación único a cada registro, que permite recuperar los objetos una vez que se han guardado Ejemplo: en el contexto de una base de datos orientada a objetos, podemos guardar una bicicleta como objeto, con todos sus atributos y métodos: es roja, se puede conducir, tiene sillín, etc. Este objeto forma parte de la clase “bicicletas”, en la que, por ejemplo, también podría incluirse una bicicleta azul y otra verde. A su vez, la clase “bicicletas” es una subcategoría de “vehículos”, que también incluye la clase “coches”. Por otra parte, el objeto también está relacionado con la clase “actividades de ocio”. Si accedemos a este objeto a través de su código de identificación único, dispondremos directamente de todos sus métodos y atributos BASES DE DATOS ORIENTADAS A OBJETOS VS. RELACIONALES Como hemos dicho, las bases de datos relacionales son el estándar en programación y desarrollo web desde hace mucho tiempo. En este modelo, la información se almacena en tablas relacionadas entre sí. Las relaciones también permiten almacenar y consultar información compleja compuesta por varios elementos, al igual que en las bases de datos de objetos. En las últimas, sin embargo, todos los atributos de cada objeto están disponibles de inmediato y, además, los registros pueden ser mucho más complejos. Por otra parte, con las bases de datos relacionales, lo más habitual es intentar simplificar al máximo la información que se introduce. Cuanto más complejo se vuelve el conjunto de los datos, más extensas son las relaciones entre ellos, lo que ralentiza la base de datos. VENTAJAS E INCONVENIENTES DEL MODELO DE BASE DE DATOS ORIENTADA A OBJETOS Se desea almacenar la información de una compañía aérea en una base de datos relacional. La compañía aérea tiene tres recursos principales: aviones, pilotos y miembros de tripulación. De cada piloto se desea conocer su código, nombre y horas de vuelo. De los miembros de tripulación sólo mantendremos su código y nombre. Todos ellos (pilotos y miembros) tienen una base a la que regresan después de los vuelos de una jornada. Un vuelo que va desde un origen a un destino y a una hora determinada, tiene un número de vuelo (por ejemplo, el vuelo de Palma a Alicante de las 13:50 es el vuelo IB-8830). De cada vuelo que se va a realizar durante los próximos tres meses, así como de los vuelos que ya se han realizado, se desea saber el avión en que se va a hacer o en el que se ha hecho, el piloto y cada uno de los miembros de la tripulación. Cada avión tiene un código, es de un tipo (por ejemplo, BOEING-747) y tiene una base donde es sometido a las revisiones periódicas de mantenimiento Una organización no gubernamental se encarga de enviar ayuda material (medicamentos y alimentos) y ayuda humanitaria (personal sanitario) a campos de refugiados. Esta organización obtiene sus ingresos de las cuotas de los socios, de los que se desea conocer los datos personales, la cuenta bancaria en donde se realizan los cargos anuales, la fecha de pago y el tipo de cuota. En la actualidad hay tres tipos de cuotas, pudiendo variar en el futuro: mínima (10 euros anuales), media (20 euros anuales) o máxima (30 euros anuales). Cada socio pertenece a una de las sedes de la organización, cada una de ellas ubicada en una ciudad distinta. De las sedes se desea conocer el domicilio y el nombre de su director. La organización cuenta con dos tipos de voluntarios: los que realizan labores humanitarias (personal sanitario) y los que realizan labores administrativas (personal administrativo). De los primeros se desea conocer su profesión (médico, ATS, etc.), su disponibilidad actual (sí/no) y el número de trabajos en los que ha participado. De todos los voluntarios se desea conocer los datos personales y la sede en la que se inscribieron. Cada envío tiene un destino y una fecha de salida. Para identificar los envíos, se les asigna un código único. Además, cada envío es organizado por una o varias sedes. Los envíos de ayuda material pueden ser de alimentos, debiéndose conocer el número de toneladas de cada alimento que se manda; o pueden ser de medicamentos, debiéndose conocer el número de unidades de cada medicamento. De los envíos de ayuda humanitaria se debe conocer el número de voluntarios que se mandan de cada profesión (por ejemplo: 10 médicos, 20 ATS) y quienes son cada uno de ellos.