lunes, 23 de enero de 2012

Bases de datos orientadas a Objetos


Orientación a objetos

El desarrollo del paradigma orientado a objetos aporta un gran cambio en el modo en que vemos los datos y los procedimientos que actúan sobre ellos. Tradicionalmente, los datos y los procedimientos se han almacenado separadamente: los datos y sus relaciones en la base de datos y los procedimientos en los programas de aplicación. La orientación a objetos, sin embargo, combina los procedimientos de una entidad con sus datos. Esta combinación se considera como un paso adelante en la gestión de datos. Las entidades son unidades auto contenidas que se pueden reutilizar con relativa facilidad. En lugar de ligar el comportamiento de una entidad a un programa de aplicación, el comportamiento es parte de la entidad en si, por lo en cualquier lugar en el que se utilice la entidad, se comporta de un modo predecible y conocido.
El modelo orientado a objetos tambi´en soporta relaciones de muchos a muchos, siendo el primer modelo que lo permite. Aun así se debe ser muy cuidadoso cuando se diseñan estas relaciones para evitar p´erdidas de información.

El modelo orientado a objetos también soporta relaciones de muchos a muchos, siendo el primer modelo que lo permite. Aun as1 se debe ser muy cuidadoso cuando se diseñan estas relaciones para evitar perdidas de información. Por otra parte, las bases de datos orientadas a objetos son navegacionales: el acceso a los datos es a través de las relaciones, que se almacenan con los mismos datos. Esto se considera un paso atrás. Las bases de datos orientadas a objetos no son apropiadas para realizar consultas ad hoc, al contrario que las bases de datos relacionales, aunque normalmente las soportan. La naturaleza navegacional de las bases de datos orientadas a objetos implica que las consultas deben seguir relaciones predefinidas y que no pueden insertarse nuevas relaciones “al vuelo”

Los objetos han entrado en el mundo de las bases de datos de formas: SGBD orientados a objetos puros: son SGBD basados completamente en el modelo orientado a objetos.
SGBD h´ıbridos u objeto–relacionales: son SGBD relacionales que permiten almacenar3 objetos en sus relaciones (tablas).
Tipos de metodos. Hay varios tipos de m´etodos que son comunes a la mayor´ıa de las
clases:
Constructores. Un contructor es un m etodo que tiene el mismo nombre que la clase. Se ejecuta cuando se crea un objeto de una clase. Por lo tanto, un constructor contiene instrucciones para inicializar las variables de un objeto.
Destructores. Un destructor es un metodo que se utiliza para destruir un objeto.
No todos los lenguajes orientados a objetos poseen destructores.
Accesores. Un accesor es un metodo que devuelve el valor de un atributo privado de otro objeto. Ası es c omo los objetos externos pueden acceder a los datos encapsulados.
Mutadores. Un mutador es un metodo que almacena un nuevo valor en un atributo. De este modo es como objetos externos pueden modificar los datos encapsulados.
Ademas, cada clase tendra otros metodos dependiendo del comportamiento especıfico que deba poseer.

Encapsulamiento 

Hay muchos datos que no tiene porque conocerlo aquel que este usando la clase Persona; ya que son inherentes al objeto y solo controlan su funcionamiento interno; por ejemplo, cuando alguien te ve puede saber inmediatamente si eres hombre o mujer (propiedad) o puede hablarte y obtener una respuesta procesada (metodo); tambien puede conocer el color de tu cabello y ojos. En cambio, jamas sabra que cantidad de energia exacta tienes o cuantas neuronas te quedan, ni siquiera preguntandote ya que ninguna de tus propiedades externas visibles o funciones de comunicación al publico te permiten saber esos datos.
Esto es la encapsulación u ocultación; hacer las variables que son innecesarias para el tratamiento del objeto pero necesarias para su funcionamiento privadas, asi como las funciones que no necesitan interacción del usuario o que solo pueden ser llamadas por otras funciones dentro del objeto (Como por ejemplo, palpitar)
La encapsulación es muy conveniente y nos permite (Si programamos bien) colocar en funcionamiento nuestro objeto en cualquier tipo de sistema, de una manera modular y escalable (algunas de las reglas de la ingenieria del software).
Formas de encapsular  [editar]Estándar (Predeterminado)

1.Abierto : Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y 2.cualquier parte del programa.
3.Protegido : Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel).
4.Cerrado : Solo es accesible desde la Clases.
En el encapsulamiento hay analizadores que pueden ser semánticos y sintácticos.[8]
-ejemplos:
Objetos: encapsulamiento

 Porción visible: interfaz (protocolo)
 Contrato público de comportamiento
 Descripción de operaciones: información de entrada y de salida
 Porción oculta: implementación
 Estructura de datos para almacenar la información
 Código que se ejecuta para realizar las operaciones[4]
Persistencia
La persistencia es una de las características que los SGBDOO heredan tanto de los SGBD como del modelo de objetos. La diferencia está en que la persistencia proporcionada por el SGBD tradicional, se refiere únicamente a la conservación de los datos, mientras que la persistencia heredada del modelo de objetos hace referencia no sólo a la conservación del estado de un objeto, si no también a la conservación de la clase, que debe trascender a cualquier programa individual, de forma que todos los programas interpreten de la misma manera el estado almacenado.
Se puede distinguir entre:
ŒPersistencia en el espacio, que hace referencia al hecho de que los objetos creados en una máquina puedan llevarse a otra, y que incluso puedan tener representaciones diferentes en diferentes máquinas.
Persistencia en el tiempo, hace referencia a la cualidad de los objetos de sobrevivir a la ejecución del proceso que los creó
http://www3.uji.es/~mmarques/e16/teoria/cap2.pdf
http://damian02.wordpress.com/encapsulamiento-poo/


HERENCIA
Una de las herramientas disponibles en lenguajes orientados a objetos más potente es la herencia. Esta propiedad permite a los objetos ser construidos a partir de otros objetos. El objetivo final es la reutilizabilidad o reutilización, es decir, reutilizar código anteriormente ya desarrollado.
La herencia supone una clase base y una jerarquía de clases que contiene las clases derivadas de la clase base. Las clases derivadas pueden heredar el código y los datos de su clase base, añadiendo su propio código especial y datos a ellas, incluso cambiar aquellos elementos de la clase base que necesita sean diferentes.
Clase Base
Clase derivada Clase derivada Clase derivada
HERENCIA SIMPLE (Herencia jerárquica)

En esta jerarquía cada clase tiene como máximo una sola superclase. La herencia simple permite que una clase herede las propiedades de su superclase en una cadena jerárquica.
HERENCIA MÚLTIPLE (Herencia en malla)

Una malla o retícula consta de clases, cada una de las cuales puede tener una o más superclases inmediatas. Una herencia múltiple es aquella en la que cada clase puede heredar métodos y variables de cualquier número de superclases.
La clase C tiene dos superclases, A y D. Por consiguiente, la clase C hereda las propiedades de las clases A y D. Evidentemente, esta acción puede producir un conflicto de nombres, donde la clase C hereda las mismas propiedades de A y D.

Herencia repetida
Otro de los problemas graves que produce la herencia múltiple es la herencia repetida. Este tipo de herencia se produce cuando una clase hereda de dos o más superclases que a su vez heredan de la misma superclase. La mayoría de los lenguajes de programación no permiten la duplicación estática de la superclase, pero eso no se producirá siempre, y así se puede dar el caso de que el compilador duplique la clase que se hereda dos o más veces.

Jerarquía de clases.
    En una base de datos existen objetos que responden a los mismos mensajes, utilizan los mismos métodos y tienen variables del mismo nombre y tipo. Sería inútil definir cada uno de estos objetos por separado por lo tanto se agrupan los objetos similares para que formen una clase, a cada uno de estos objetos se le llama instancia de su clase. Todos los objetos de su clase comparten una definición común, aunque difieran en los valores asignados a las variables.
    Así que básicamente las bases de datos orientadas por objetos tienen la finalidad de agrupar aquellos elementos que sean semejantes en las entidades para formar un clase, dejando por separado aquellas que no lo son en otra clase.
    Por ejemplo: Retomemos la relación alumno-cursa-materia agregándole la entidad maestro; donde los atributos considerados para cada uno son alumno: Nombre, Dirección, Teléfono, Especialidad, Semestre, Grupo; Maestro: Nombre, Dirección, Teléfono, Número económico, Plaza, RFC; Materia: Nombre, Créditos, Clave.
    Los atributos de nombre, dirección y teléfono se repiten en la entidad alumno y maestro, así que podemos agrupar estos elementos para formar la clase Persona con dichos campos. Quedando por separado en alumno: Especialidad, semestre, Grupo. Y en maestro: Número económico, Plaza y RFC; la materia no entra en la agrupación (Clase persona) ya que la clase específica los datos de solo personas, así que queda como clase materia.

http://html.rincondelvago.com/poo_11.html

Manifiesto Malcolm Atkinson: características de un BDOO
En 1989 se hizo el Manifiesto de los sistemas de base de datos orientados a objetos el cual propuso trece características obligatorias para un SGBDOO y cuatro opcionales. Las trece características obligatorias estaban basadas en dos criterios: debía tratarse de un sistema orientado a objetos y un SGBD(Sistema Gestor de Bases de Datos Orientadas a Objetos (SGBDOO): El gestor de una base de datos orientada a objetos).
Características obligatorias de orientación a objetos:
  • Deben soportarse objetos complejos
  • Deben soportarse mecanismos de identidad de los objetos
  • Debe soportarse la encapsulación
  • Deben soportarse los tipos o clases
  • Los tipos o clases deben ser capaces de heredar de sus ancestros
  • Debe soportarse el enlace dinámico
  • El DML debe ser computacionalmente complejo
  • El conjunto de todos los tipos de datos debe ser ampliable


Características obligatorias de SGBD:
  • Debe proporcionarse persistencia a los datos
  • El SGBD debe ser capaz de gestionar bases de datos de muy gran tamaño
  • El SGBD debe soportar a usuarios concurrentes
  • El SGBD debe ser capaz de recuperarse de fallos hardware y software
  • El SGBD debe proporcionar una forma simple de consultar los datos.
http://zarza.fis.usal.es/~fgarcia/docencia/poo/99-00/bdoo.pdf TIPOS.




UN SGBDOO ES UN SGBD QUE SOPORTA UN MODELO BASADO EN EL PARADIGMA ORIENTADO A OBJETOS:
ALMACENA OBJETOS Y SU ESQUEMA (PERSISTENCIA).
LENGUAJE PARA DEFINICIÓN Y MANIPULACIÓN.
POR SER GESTOR:
INCLUYE MECANISMOS PARA OPTIMIZAR EL ACCESO (INDEXACIÓN Y CLUSTERING), EL CONTROL DE CONCURRENCIA, SEGURIDAD Y GESTIÓN DE USUARIOS, FACILIDAD DE CONSULTA Y RECUPERACIÓN ANTE FALLOS.
POR SER OO:
CARACTERÍSTICAS DE IDENTIDAD, ENCAPSULACIÓN,
HERENCIA, POLIMORFISMO Y CONTROL DE TIPOS.



No hay comentarios:

Publicar un comentario