Auditoria aplicada a la seguridad en redes de computadores

mayo 13, 2008

1. Introducción

La organización en la parte de las redes de comunicaciones de computadores es un punto de viraje bastante importante; es por ello, que uno de los modelos de red más conocidos, es el modelo OSI.

A grandes rasgos, el modelo OSI, dado por capas, está dividido en:

Capa física:

Se encarga de garantizar la integridad de la información transmitida por la red; por ejemplo, si se envía un 0, que llegue un 0.

Capa de enlace:

Garantiza que la línea o canal de transmisión, esté libre de errores.

Capa de red:

Determina como se encaminan los paquetes, de la fuente al destino.
Igualmente, debe velar por el tráfico de la red, evitando al máximo las congestiones. Para ello, debe llevar un
registro contable de los paquetes que transitan.

Capa de transporte:

Divide los datos en unidades más pequeñas y garantiza que tal información transmitida, llegue correctamente a su destino.

De igual forma, crea una conexión de red distinta para cada conexión de transporte requerida, regulando así el flujo de información.

Analiza también, el tipo de servicio que proporcionará la capa de sesión y finalmente a los usuarios de red.

Capa de sesión:


Maneja el sentido de transmisión de los datos y la sincronización de operaciones; es decir, si uno transmite, el otro se prepare para recibir y viceversa o
Situaciones Commit, donde tras algún problema, se sigue tras ultimo punto de verificación.

Capa de presentación:

Se encarga de analizar si el mensaje es semántica y sintácticamente correcto.

Capa de aplicación:


Implementación de protocolos y transferencia de archivos.

Lo anterior, nos permite describir 3 tipos de fallos en la seguridad de la red:

1.             Alteración de bits: Se corrige por código de redundancia cíclico.

2.             Ausencia de tramas: Las tramas se desaparecen por el ambiente o una sobrecarga   del sistema; para ello, se debe tener un número de secuencia de tramas.

3.             Alteración de la secuencia en la cual el receptor reconstruye mensaje.

Otro de los tipos de modelos de referencia más conocidos, es el TCP/IP, hoy día, con algunas variaciones, como el de encapsular varios protocolos, como el Netbios; el TCP/IP da replicación de los canales para posibles caídas del sistema.

Bajo ésta política, entonces se ha definido como clases de redes:

Ø      Intranet = Red interna de la empresa.

Ø      Extranet = Red externa pero directamente relacionada a la empresa.

Ø      Internet = La red de redes.

El problema de tales implementaciones, es que por los puertos de estandarización pública de TCP/IP, se puede entrar cualquier tercero para afectar la red de la compañía o su flujo de información.

 Tal cuestión, es recurrente sobretodo en el acceso de la red interna de la compañía a la Internet, para lo cual, y como medida de protección, se usan Firewall ( cortafuegos ) que analizan todo tipo de información que entra por Internet a la compañía, activando una alarma, en caso de haber algún intruso o peligro por esa vía a la red.


La compañía puede definir 2 tipos extremos de políticas de seguridad:

Ø      Políticas paranoicas: Toda acción o proceso está prohibido en la red.

Ø      Políticas promiscuas: No existe la más mínima protección o control a las     acciones de los usuarios en la red.

No importa lo que haga la empresa, siempre va a haber un punto de fallo, para adelantarse a intrusos, entonces se han ideado algunas herramientas para probar la eficacia de las políticas de seguridad en red de la empresa, algunas de tales herramientas, son: SAFEsuite y COPS. Estas empiezan probando la fiabilidad de las contraseñas de usuario usando algunas técnicas de indagación como es el leer el tráfico de la red buscando en tal información sobre nombres de usuarios y contraseñas respectivas, probar la buena fé de los usuarios mandándoles mensajes de la administración solicitando su contraseña a una especificada por la herramienta o probando contraseñas comunes o por defecto en muchos sistemas.

2. Auditoria de comunicaciones:

Ha de verse:

Ø      La gestión de red = los equipos y su conectividad.

Ø      La monitorización de las comunicaciones.

Ø      La revisión de costes y la asignación formal de proveedores.

Ø      Creación y aplicabilidad de estándares.

Cumpliendo como objetivos de control:

Ø      Tener una gerencia de comunicaciones con plena autoridad de voto y acción.

Ø      Llevar un registro actualizado de módems, controladores, terminales, líneas y todo equipo relacionado con las comunicaciones.

Ø      Mantener una vigilancia constante sobre cualquier acción en la red.

Ø      Registrar un coste de comunicaciones y reparto a encargados.

Ø      Mejorar el rendimiento y la resolución de problemas presentados en la red.

Para lo cual se debe comprobar:

Ø      El nivel de acceso a diferentes funciones dentro de la red.

Ø      Coordinación de la organización de comunicación de datos y voz.

Ø      Han de existir normas de comunicación en:

o       Tipos de equipamiento como adaptadores LAN.

o       Autorización de nuevo equipamiento, tanto dentro, como fuera de las horas laborales.

o       Uso de conexión digital con el exterior como Internet.

o       Instalación de equipos de escucha como Sniffers (exploradores físicos) o Traceadores (exploradores lógicos).

Ø      La responsabilidad en los contratos de proveedores.

Ø      La creación de estrategias de comunicación a largo plazo.

Ø      Los planes de comunicación a alta velocidad como fibra óptica y ATM (técnica de conmutación de paquetes usada en redes MAN e ISDN).

Ø      Planificación de cableado.

Ø      Planificación de la recuperación de las comunicaciones en caso de desastre.

Ø      Ha de tenerse documentación sobre el diagramado de la red.

Ø      Se deben hacer pruebas sobre los nuevos equipos.

Ø      Se han de establecer las tasas de rendimiento en tiempo de respuesta de las terminales y la tasa de errores.

Ø      Vigilancia sobre toda actividad on-line.

Ø      La facturación de los transportistas y vendedores ha de revisarse regularmente.

3. Auditoria De La Red Física

Ø      Se debe garantizar que exista:

Ø      Áreas de equipo de comunicación con control de acceso.

Ø      Protección y tendido adecuado de cables y líneas de comunicación para evitar accesos físicos.

Ø      Control de utilización de equipos de prueba de comunicaciones para monitorizar la red y el tráfico en ella.

Ø      Prioridad de recuperación del sistema.

Ø      Control de las líneas telefónicas.

Comprobando que:

Ø      El equipo de comunicaciones ha de estar en un lugar cerrado y con acceso limitado.

Ø      La seguridad física del equipo de comunicaciones sea adecuada.

Ø      Se tomen medidas para separar las actividades de los electricistas y de cableado de líneas telefónicas.

Ø      Las líneas de comunicación estén fuera de la vista.

Ø      Se dé un código a cada línea, en vez de una descripción física de la misma.

Ø      Haya procedimientos de protección de los cables y las bocas de conexión para evitar pinchazos a la red.

Ø      Existan revisiones periódicas de la red buscando pinchazos a la misma.

Ø      El equipo de prueba de comunicaciones ha de tener unos propósitos y funciones específicas.

Ø      Existan alternativas de respaldo de las comunicaciones.

Ø      Con respecto a las líneas telefónicas: No debe darse el número como público y tenerlas configuradas con retrollamada, código de conexión o interruptores.

4. Auditoria De La Red Lógica

En ésta, debe evitarse un daño interno, como por ejemplo, inhabilitar un equipo que empieza a enviar mensajes hasta que satura por completo la red.

 

Para éste tipo de situaciones:

Ø      Se deben dar contraseñas de acceso.

Ø      Controlar los errores.

Ø      Garantizar que en una transmisión, ésta solo sea recibida por el destinatario. Para esto, regularmente se cambia la ruta de acceso de la información a la red.

Ø      Registrar las actividades de los usuarios en la red.

Ø      Encriptar la información pertinente.

Ø      Evitar la importación y exportación de datos.

Que se comprueban si:

El sistema pidió el nombre de usuario y la contraseña para cada sesión:
En cada sesión de usuario, se debe revisar que no acceda a ningún sistema sin autorización, ha de inhabilitarse al usuario que tras un número establecido de veces erra en dar correctamente su propia contraseña, se debe obligar a los usuarios a cambiar su contraseña regularmente, las contraseñas no deben ser mostradas en pantalla tras digitarlas, para cada usuario, se debe dar información sobre su última conexión a fin de evitar suplantaciones.

Ø      Inhabilitar el software o hardware con acceso libre.

Ø      Generar estadísticas de las tasas de errores y transmisión.

Ø      Crear protocolos con detección de errores.

Ø      Los mensajes lógicos de transmisión han de llevar origen, fecha, hora y receptor.

Ø      El software de comunicación, ha de tener procedimientos correctivos y de control ante mensajes duplicados, fuera de orden, perdidos o retrasados.

Ø      Los datos sensibles, solo pueden ser impresos en una impresora especificada y ser vistos desde una terminal debidamente autorizada.

Ø      Se debe hacer un análisis del riesgo de aplicaciones en los procesos.

Ø      Se debe hacer un análisis de la conveniencia de cifrar los canales de transmisión entre diferentes organizaciones.

Ø      Asegurar que los datos que viajan por Internet vayan cifrados.

Ø      Si en la LAN hay equipos con modem entonces se debe revisar el control de seguridad asociado para impedir el acceso de equipos foráneos a la red.

Ø      Deben existir políticas que prohíban la instalación de programas o equipos personales en la red.

Ø      Los accesos a servidores remotos han de estar inhabilitados.

Ø      La propia empresa generará propios ataques para probar solidez de la red y encontrar posibles fallos en cada una de las siguientes facetas:

o        Servidores = Desde dentro del servidor y de la red interna.

o        Servidores web.

o        Intranet = Desde dentro.

o        Firewall = Desde dentro.

o        Accesos del exterior y/o Internet.

5. Criptografía

La criptografía se define como ” las técnicas de escrituras tales que la información esté oculta de intrusos no autorizados”. Esto, no incluye el criptoanálisis que trata de reventar tales técnicas para descubrir el mensaje oculto.

Existen 2 tipos de criptoanálisis:

Diferencial:

Con variaciones de un bit en cada intento, trata de averiguar la clave de descifrado del mensaje oculto.

Lineal:

Se apoya en variaciones XOR entre cada par de bits, hasta que se logre obtener un único bit, parte de la clave.

Relacionado con esto, se ha desarrollado también la esteganografía, que bajo un camuflaje totalmente ajeno al mensaje a transmitir, se envía la información oculta.
Aunque el cifrado de información es una excelente técnica para proteger los datos, no debería convertirse en el desvelo de la compañía, pues existen otros tipos de debilidades más importantes para tratar por la compañía, ello, además porque ya existen diferentes programas, hasta gratuitos, como algunas versiones de PGP, tales que toda la
potencia informática del mundo, podría romperlos.

Algunos tipos de métodos de criptografía, son:

Transposición.

Invierte el orden de los caracteres en el mensaje. Por ejemplo, si se quiere cifrar “El perro de san Roque no tiene rabo ” , colocándolo en un arreglo de columnas de tamaño n, con clave de descifrado k = n en secuencia con 5 columnas {3,2,5,1,4}, el mensaje cifrado quedaría = “osonea lr r ir ednu eo ere et p aqonb”
Tal mecanismo, se criptoanaliza con estudios de
factibilidad de cierto tipo de tuplas.

DES:

Utiliza una clave de 56 bits para codificar bloques de 64 bits, por su escasa longitud de clave de acceso, es fácil de romper.

IDEA:

Surgió del DES, IDEA genera bloques de ciframiento de 64 bits con una clave de 128 bits, además usa diversas técnicas de confusión, como es el XOR, suma modulo 2^16 y producto (2^16)+1.

El problema de la criptografía de llave privada, es que en una red muy grande, en caso de que se decida cambiar la clave de desciframiento, hay que notificar a cada uno de los participantes en los procesos de transmisión de datos, corriéndose el peligro de que caiga la nueva clave en manos no autorizadas.

Es por ello, que se ha desarrollado la criptografía de llave pública, que consta de 2 tipos de llaves:

Ø      Una que es pública y conocida por todos los miembros autorizados de la red.

Ø      Una segunda, que es privada y solo la conoce su dueño y el paquete cifrado.

De esa forma, si es necesario cambiar las claves, se notifica por un mensaje cifrado a todos los participantes de la transmisión usando la llave pública.
RSA es un tipo común de transmisión encriptada por llave privada, opera por factorizaciones de los mensajes clave o registro por números primos de orden.

Consideraciones para Elaborar un Sistema de Seguridad Integral
Como hablamos de realizar la
evaluación de la seguridad es importante también conocer como desarrollar y ejecutar el implantar un sistema de seguridad.
Desarrollar un sistema de seguridad significa: “planear, organizar coordinar dirigir y controlar las actividades relacionadas a mantener y garantizar la integridad física de los
recursos implicados en la función informática, así como el resguardo de los activos de la empresa.”
Por lo cual podemos ver las consideraciones de un sistema de integral de seguridad.

Sistema Integral de Seguridad
Un sistema integral debe contemplar:

Ø      Definir elementos administrativos

Ø      Definir políticas de seguridad

Ø      A nivel departamental

Ø      A nivel institucional

Ø      Organizar y dividir las responsabilidades

Ø      Definir prácticas de seguridad para el personal:

o        Plan de emergencia (plan de evacuación, uso de recursos de emergencia como extinguidores.

o        Números telefónicos de emergencia

Ø      Definir el tipo de pólizas de seguros

Ø      Definir elementos técnicos de procedimientos

Ø      Definir las necesidades de sistemas de seguridad para:

o        Hardware y software

o        Flujo de energía

o        Cableados locales y externos.

Ø      Aplicación de los sistemas de seguridad incluyendo datos y archivos.

Ø      Planificación de los papeles de los auditores internos y externos

Ø      Planificación de programas de desastre y sus pruebas (simulación)

Ø      Planificación de equipos de contingencia con carácter periódico.

Ø      Control de desechos de los nodos importantes del sistema:

Ø      Política de destrucción de basura copias, fotocopias, etc.

Ø      Consideración de las normas ISO 1400

Etapas para Implementar un Sistema de Seguridad


Para dotar de medios necesarios para elaborar su sistema de seguridad se debe considerar los siguientes puntos:

Sensibilizar a los ejecutivos de la organización en torno al tema de seguridad.
Se debe realizar un
diagnóstico de la situación de riesgo y seguridad de la información en la organización a nivel software, hardware, recursos humanos, y ambientales.
Elaborar un plan para un
programa de seguridad. El plan debe elaborarse contemplando:

Plan de Seguridad Ideal (o Normativo)

Un plan de seguridad para un sistema de seguridad integral debe contemplar:

Ø      El plan de seguridad debe asegurar la integridad y exactitud de los datos

Ø      Debe permitir identificar la información que es confidencial

Ø      Debe contemplar áreas de uso exclusivo

Ø      Debe proteger y conservar los activos de desastres provocados por la mano del hombre y los actos abiertamente hostiles

Ø      Debe asegurar la capacidad de la organización para sobrevivir accidentes

Ø      Debe proteger a los empleados contra tentaciones o sospechas innecesarias

Donde:
Riesgo (roles, fraudes, accidentes, terremotos, incendios, etc)
Medidas pre.. (políticas, sistemas de seguridad, planes de emergencia, plan de resguardo, seguridad de personal, etc)

Consideraciones para con el Personal


Es de gran importancia la elaboración del plan considerando el personal, pues se debe llevar a una conciencia para obtener una autoevaluación de su comportamiento con respecto al sistema, que lleve a la persona a:

Ø      Asumir riesgos

Ø      Cumplir promesas

Ø      Innovar

Para apoyar estos objetivos se debe cumplir los siguientes pasos:
Motivar

Se debe desarrollar métodos de participación reflexionando sobre lo que significa la seguridad y el riesgo, así como su impacto a nivel empresarial, de cargo y individual.

Capacitaciónón General

En un principio a los ejecutivos con el fin de que conozcan y entiendan la relación entre seguridad, riesgo y la información, y su impacto en la empresa. El objetivo de este punto es que se podrán detectar las debilidades y potencialidades de la organización frente al riesgo.

Este proceso incluye como práctica necesaria la implantación la ejecución de planes de contingencia y la simulación de posibles delitos.

Capacitación de Técnicos

Se debe formar técnicos encargados de mantener la seguridad como parte de su trabajo y que esté capacitado para capacitar a otras personas en lo que es la ejecución de medidas preventivas y correctivas.

Práctica y Cultura

Se debe establecer un método de educación estimulando el cultivo de elevados principios morales, que tengan repercusión a nivel personal e institucional.
De ser posible realizar conferencias periódicas sobre: doctrina,
familia, educación sexual, relaciones humanas, etc.

Etapas para Implantar un Sistema de Seguridad en Marcha.

Para hacer que el plan entre en vigor y los elementos empiecen a funcionar y se observen y acepten las nuevas instituciones, leyes y costumbres del nuevo sistema de seguridad se deben seguir los siguiente 8 pasos:

Ø      Introducir el tema de seguridad en la visión de la empresa.

Ø      Definir los procesos de flujo de información y sus riesgos en cuanto a todos los recursos participantes.

Ø      Capacitar a los gerentes y directivos, contemplando el enfoque global.

Ø      Designar y capacitar supervisores de área.

Ø      Definir y trabajar sobre todo las áreas donde se pueden lograr mejoras relativamente rápidas.

Ø      Mejorar las comunicaciones internas.

Ø      Identificar claramente las áreas de mayor riesgo corporativo y trabajar con ellas planteando soluciones de alto nivel.

Ø      Capacitar a todos los trabajadores en los elementos básicos de seguridad y riesgo para el manejo del software, hardware y con respecto a la seguridad física.

Beneficios de un Sistema de Seguridad

Los beneficios de un sistema de seguridad bien elaborado son inmediatos, ya que el la organización trabajará sobre una plataforma confiable, que se refleja en los siguientes puntos:

Ø      Aumento de la productividad.

Ø      Aumento de la motivación del personal.

Ø      Compromiso con la misión de la compañía.

Ø      Mejora de las relaciones laborales.

Ø      Ayuda a formar equipos competentes.

Ø      Mejora de los climas laborales para los RR.HH.


Base de Datos Orientado a Objetos

mayo 7, 2008

En una base de datos orientada a objetos, la información se representa mediante objetos como los presentes en la programación orientada a objetos. Cuando se integra las características de una base de datos con las de un lenguaje de programación orientado a objetos, el resultado es un sistema gestor de base de datos orientada a objetos (ODBMS, object database management system). Un ODBMS hace que los objetos de la base de datos aparezcan como objetos de un lenguaje de programación en uno o más lenguajes de programación a los que dé soporte. Un ODBMS extiende los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperación de datos, consultas asociativas y otras capacidades.

Los ODBMS son una buena elección para aquellos sistemas que necesitan un buen rendimiento en la manipulación de tipos de dato complejos.

Los ODBMS proporcionan los costes de desarrollo más bajos y el mejor rendimiento cuando se usan objetos gracias a que almacenan objetos en disco y tienen una integración transparente con el programa escrito en un lenguaje de programación orientado a objetos, al almacenar exactamente el modelo de objeto usado a nivel aplicativo, lo que reduce los costes de desarrollo y mantenimiento.

Una BD Orientada a Objetos (BDOO) es una base de datos en el sentido de la definición inroductoria, donde los elementos de datos son objetos y las relaciones se mantienen por medio inclusón lógica.  Las entidades de aplicación estan representadas como clases. La autodescripcion se obtiene porque las clases son metaobjetos que contiene los nombres de atributos y métodos de señal. Una BDOO contiene un método sistemático de representación de relación, y la interfaz uniforme de usuario es un sistema de mensajes que puede explorar los objetos y sus interconexiones.

En una BDOO, las entidades de aplicación son las clases, las instrancias de entidad son objetos creados desde las clases, y  las relaciones se mantienen por medio de inclusión lógica. Un sistema de señales y métodos para procesarlas contiene una interfaz uniforme para la base de datos.  

 

Estructura de una BD OO

 

El paradigma orientado a objetos se basa en el encapsulamiento de datos y  del código relacionado con cada objeto en una sola unidad. Conceptualmente, todas las interacciones entre cada objeto y el resto del sistema se realizan mediante mensajes. Por lo tanto, la interfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mensajes permitidos.

 En general,  cada objeto esta asociado con:

Ø      Un conjunto de variables que contiene los  datos  del  objeto; las variables corresponden con los atributos del  modelo E-R.

Ø      Un conjunto de mensajes a los que responde;  cada  mensaje puede o no tener parámetros o tener uno o varios.

Ø      Un conjunto de métodos, cada uno de los cuales es el código que implementa un  mensaje;  el  método  devuelve  un  valor como respuesta al mensaje.

Mensaje en entorno OO no implica uso de mensajes físicos en redes informáticas. Por el contrario,  hace referencia al intercambio de solicitudes entre los objetos, independientemente de los detalles correctos de su implementación. Se utiliza a veces la expresión invocar un método para detonar al hecho de enviar un mensaje a un objeto y la ejecución del método correspondiente.

 
 EJEMPLOS:

 CLASES DE OBJETOS

class empleado {
/ / Variables
          string nombre;
          strin  dirección;
          date fecha de alta;
          int  sueldo;
/ / Mensajes
           int   sueldo-anual ();
           string obtenerNombre ();
           string obtenerDireccion ();
          int definirDireccion (string nueva-dir);
         int antigüedad();
};

Generalmente en una base de datos hay muchos objetos similares (se entiende que responden a los mismos mensajes, utilizan los mismos métodos y tienen variables del mismo nombre y tipo). Por tanto sería un derroche definir por separado cada uno de estos objetos. Por tanto, los objetos se agrupan para formar clases. Todos los objetos de una clase comparten una definición común, pese a que se diferencien en los valores asignados a las variables.

El concepto de clase del modelo orientado a objetos se corresponde con el concepto de entidad del modelo E-R.

 
El ejemplo Empleado muestra las variables y los mensajes que responden a los objetos de la clase; no se muestran aquí los métodos para el tratamiento de los mensajes.
 

Los principales conceptos que se utilizan en las BDOO son:
 

A.    IDENTIDAD DE  OBJETOS

 
Un sistema de BDOO provee una identidad única a cada objeto independiente almacenado en la base de datos. Esta identidad única suele implementarse con un identificador de objeto único, generado por el sistema, u OID. El valor de un OID no es visible para el usuario externo, sino que el sistema lo utiliza a nivel interno para identificar cada objeto de manera única y para crear y manejar las referencias entre objetos.
 
La principal propiedad que debe tener un OID es la de ser inmutable; es decir, el valor del OID para un objeto en particular nunca debe cambiar. Esto preserva la identidad del objeto del mundo real que se está presentando. También es preferible que cada OID se utilice sólo una vez; esto es aunque un objeto se elimine de la Base de datos, su OID no se deberá asignar a otro objeto. Estas dos propiedades implican que el OID no debe depender del valor de ningún atributo del objeto, pues estos valores pueden cambiar. También suele considerarse inapropiado basar el OID en la dirección física del objeto en el almacenamiento, ya que una reorganización de los objetos de la base de datos podría cambiar los OID. Sin embargo, algunos sistemas sí usan la dirección física como OID para aumentar la eficiencia de la obtención de los objetos. Si la dirección física cambia, puede colocarse un apuntador indirecto en la dirección anterior, dando la nueva ubicación física del objeto. Un sistema de BDOO debe contar con algún mecanismo para generar los OID con la propiedad de inmutabilidad. 

Algunos modelos de datos OO requieren que todo se represente como un objeto, ya sea un valor simple o un objeto complejo; así, todo valor básico, como un entero, una cadena o un valor boleano, tiene un OID. Con ello dos valores básicos pueden tener diferentes OID, lo cual es muy útil en algunos casos. Por ejemplo, en algunas ocasiones se podría usar el valor entero 50 para representar un peso en Kilogramos, y en otras para referirse a la edad de una persona. Así podrían crearse dos objetos básicos con diferentes OID, y ambos tendrían el mismo valor básico de 50. Aunque resulta útil como modelo teórico, esto no es muy práctico porque puede obligar a generar demasiados OID. Por ello también, la mayor parte de los sistemas de BDOO permiten representar tanto objetos como valores. Todo objeto debe tener un OID inmutable, pero los valores no tienen OID y se representan así mismo.

Ø      Los objetos tienen  identidades  únicas,  independientes  de los valores de sus atributos.

Ø      La estructura orientada a objetos automáticamente  impone
las restricciones relacionales, generalmente más aplicables:
dominio, llave integridad de entidad e integridad referencial.
 
 

B.  CONSTRUCTORES DE TIPOS

En las BDOO, los valores (o estados) de los objetos complejos se pueden construir a partir de otros objetos mediante ciertos constructores de tipos. Una forma de representar tales objetos es considerar a cada objeto como tripleta (i, c, v), donde i es un identificador de objeto único (el OID), c es un constructor (esto es, una indicación de cómo se construye el valor del objeto) y v es el valor (o estado) del objeto. Puede haber varios constructores, según el modelo de datos y el sistema OO.

Los tres constructores  básicos son:

Ø      constructores de átomos.

Ø      constructores de tuplas.

Ø      constructores de conjuntos.
 

Otros constructores de uso más común son los de listas y de arreglos. También existe un dominio D que contiene todos los valores atómicos básicos que están disponibles directamente en el sistema. Por lo regular estos incluyen los enteros, los números reales, las cadenas de caracteres, los tipos boléanos, las fechas y cualesquiera otros tipos de datos que el sistema maneje directamente.

C.  ENCAPSULAMIENTO:
 
Tanto la estructura de los objetos como las operaciones que se pueden aplicar a ellos se incluyen en las definiciones de clases de los objetos.
 

D.  COMPATIBILIDAD CON  LENGUAJES DE PROGRAMACION

Si se sigue el enfoque cuando se utilizan los diagramas de Entidad-Relación para modelar los datos y luego se convierten de manera manual en un conjunto de relaciones; por lo tanto los conceptos de la Programación Orientada a Objetos se utilizan simplemente como herramientas de diseño y se codifican, utilizándose para trabajar  con una base de datos.

Hay varios lenguajes posibles en los que se pueden integrar estos conceptos:
 

Ø      Una opción es extender un lenguaje para el tratamiento de datos como el SQL añadiendo tipos complejos y la programación orientada a objetos. Los sistemas proporcionan extensiones orientadas a objetos a los sistemas relacionales se denominan sistemas relacionales orientados a objetos.

 

Ø      Otra opción es tomar un lenguaje de programación orientado a objetos ya existente y extenderlo para que trabaje con las bases de datos. Estos lenguajes se denominan lenguajes de programación persistentes. Estos lenguajes permiten a los programadores trabajar directamente con los datos, desde el lenguaje de programación; sin tener que pasar por un lenguaje para el tratamiento de datos como SQL. Se denominan persistentes porque los datos  siguen existiendo una vez que el programa que los creó ha concluido.

 

Ø      A la hora de decidir que opción utilizar se debe tener en cuenta que  los Lenguajes Persistentes suelen ser potentes y resulta relativamente sencillo cometer errores de programación que dañen las vases de datos. La complejidad de los lenguajes hace la optimización automática de alto nivel, como la reducción de E/S de disco, resulte dificil. En muchas aplicaciones, la posibilidad de las consultas declarativas es de gran importancia, pero los lenguajes persistentes no permiten actualmente las consultas declarativas sin que aparezcan problemas de algun tipo.

 

E.  JERARQUIA DE TIPOS Y HERENCIA

Los esquemas de BDOO suelen necesitar un gran número de clases. Sin embargo, varias clases son parecidas entre sí.

Para permitir la representación directa de parecidos entre las clases, hay que ubicarlas en una jerarquía de especializaciones. El concepto de jerarquía de clases es parecido al de especialización del modelo E-R. Las especializaciones de las clases son denominadas subclases; lo cual especifica atributos y métodos adicionales para una clase existente. Los objetos creados por medio de una sub clases heredan todos los atributos y  métodos de la clase padre. Algunas de estas características heredadas pueden ellas mismas haber sido heredadas de clases más altas en la jerarquía.  Ejemplo:

 

 

Ejemplo: (Grafico)

Class persona {
          string nombre;
          strin  dirección;
};
Class cliente isa persona {
          int interés-prestamo;
};
Class empleado isa persona{
          date fecha de alta;
          int  sueldo;
};
Class  secretaria isa empleado {
           int  velocidad;
           int horas-trabajadas
 

F. MANEJO DE OBJETOS COMPLEJOS

Los objetos se consideran complejos porque requieren un área de almacenamiento sustancial y no forman parte de los tipos de datos estándar que suelen ofrecer los SGBD. Puesto que el tamaño de los objetos es considerable, un SGBD podría obtener una porción del objeto y proporcionarla al programa de aplicación antes de obtener todo el objeto. El SGBD podría también usar técnicas de almacenamiento intermedio y caché para obtener por anticipado porciones del objeto, antes de que el programa de aplicación necesite tener acceso a ellas.

En un SGBOO, esto puede lograrse definiendo un nuevo tipo de datos abstracto para los objetos no interpretados y suministrados los métodos para seleccionar, comprar y exhibir tales objetos.

Como un SGBOO permite a los usuarios crear nuevos tipos, y como un tipo incluye tanto estructura como operaciones, podemos considerar que un SGBOO tiene un sistema de tipos extensibles. Podemos crear bibliotecas  de nuevos tipos definiendo su estructura y operaciones, incluso con tipos complejos.

Muchos SGBDOO pueden almacenar y obtener objetos no estructurados extensos en forma de cadenas y caracteres o de bits, que se pueden pasar “tal cual” al programa de aplicación para que las interprete.

Es posible almacenar y manipular objetos complejos tanto
estructurados como no estructurados.

G. POLIMORFISMO

El polimorfismo se refiere al uso de la misma firma de mensaje para dirigir diferentes métodos en diferentes clases. Cuando el diseñador envía una señal a un objeto, el método de la clase de objeto, posiblemente heredado, procesa la señal.

Un método puede tener acceso directamente a atributos de un objeto destino por no nombre, al incluir cualesquiera atributos heredados de clases padres, pero debe tener acceso a atributos de otros objetos con señales secundarias.

En síntesis este concepto permite enlazar el mismo nombre o símbolo de operador a dos o más implementaciones diferentes del operador, dependiendo del tipo de objetos a los que éste se aplique.

EJEMPLO:

OBJETO_GEOMETRICO: Forma, Area, PuntoCentral

RECTANGULO subtype_of OBJETO_GEOMETRICO  (Forma=´rectángulo’): Ancho, Altura

TRIANGULO subtype_of OBJETO_GEOMETRICO (Forma=´triángulo’): Lado1, Lado2, Angulo

CIRCULO subtype_of OBJETO_GEOMETRICO(Forma=´círculo’): Radio
 

H. CREACION DE VERSIONES

Muchas aplicaciones de bases de datos que usan sistemas OO requieren la existencia de varias versiones del mismo objeto.

Por lo regular, se aplican actividades de mantenimiento a un sistema de software conforme sus requerimientos evolucionan. Por lo regular,  el mantenimiento implica modificar algunos de los módulos de diseño y de implementación. Si el  sistema ya está en operación, y si es preciso modificar uno o más módulos, el diseñador deberá crear una nueva versión de cada uno de ellos para efectuar cambios.

Cabe señalar que puede haber más de dos versiones de un objeto.

En caso que se requieran dos versiones, además del módulo original. Se puede actualizar concurrentemente las propias versiones del mismo módulo del software. Esto se llama ingeniería concurrente. Sin embargo, siempre llega el momento en que es preciso combinar (fusionar) estas dos versiones para que la versión hibrida incluya los cambios realizados. Es necesario de que sus cambios sean compatibles.

Un objeto complejo, como  un sistema de software, puede constar de muchos módulos. Cuando se permite la creación de múltiples versiones, es posible que cada una de esos módulos  tenga varias versiones distintas y un grafo de versiones.

Como se deduce del análisis anterior, un SGBDOO debe ser capaz  de  almacenar  y  controlar  múltiples  versiones  del mismo objeto.

 

 

 

 

 

 

 

 

 


Arreglos en Java

octubre 5, 2007

A continuación presentamos una breve explicación del funcionamiento.

Otra: