Please enable JavaScript.
Coggle requires JavaScript to display documents.
BASES DE DATOS ORIENTADAS A OBJETOS (EL MODELO DE DATOS ORIENTADO A…
BASES DE DATOS ORIENTADAS
A OBJETOS
NECESIDADES DE LOS TIPOS DE DATOS COMPLEJOS
La demanda de abordar tipos de datos complejos ha aumentado en los últimos años
Ejemplo
Direccion
Provincia, cantón, distrito, calle
Numeros de teléfonos
Alguien puede poseer mas de un numero de telefono
Circuitos electronicos
Deben de estar conectados con otros componentes y estos mismos a otros.
EL MODELO DE DATOS ORIENTADO A OBJETOS
Estructura de los objetos
Los objetos están asociados
Variables que contiene los datos
del objeto
Mensajes
a los que responde, pueden poseer 0 o mas parámetros
intercambio
de solicitudes entre los objetos independientemente
Metodos
conjunto de métodos, retorna un valor como resultado
Se usa para enviar un mensaje
actualización pueden modificar variables
Lectura no afecta valor de las variables
Ejemplo
El sueldo de los empleados de una entidad bancaria donde a los jefes, gerentes, cajeros se les calcula el sueldo anual de manera distinta
Se puede encapsular el código de para calcular el sueldo de cada tipo de empleado, que se llame "Sueldo-anual"
De esta forma cada empleado responde a este mensaje de una manera distinta pero adecuada
El paradigma POO
Permite que cada objeto se pueda modificar sin afectar el
resto del sistema
Clases de objetos
Los objetos se juntan para formar una clase
Definición común
Diferentes valores asignados a las variables
Empleado
Nombre y dirección se comparten
Todos los tipos de empleados reponden a los mensajes
Sueldo-anual, obtener-nombre,
obtener-dirección, establecer-dirección y antigüedad
El concepto de clases es parecido al de tipos abstractos
Un objeto clase incluye
Variable de tipo cuyo valor es el conjunto de todos los objetos que son ejemplares de la clase
Implementacion de un nuevo metodo que implemente nuevos mensajes
Herencia
Clases parecida entre si
Ejemplo
Los clientes y usuarios de una aplicación bancaria que suelen diferenciarse en sueldo en empleados y intereses en usuarios
Los clientes y usuarios pueden ser una especificación de una superclase persona
Las variables y los métodos específicos de los empleados se asocian con la clase empleado. Las variables y los métodos específicos de los clientes se asocian con la clase cliente
Los objetos de una clase contengan las variables definidas en sus superclases se denomina herencia de las variables
Posibilidad de sustitucion
Cada método de la superclase por ejemplo un método llamado obtener nombre de la clase persona, puede utilizarlos cualquier subclase como usuario o empleado
La mayor parte de los sistemas orientados a objetos permiten que la especialización sea parcial; es decir, permiten objetos que pertenezcan a una clase, como empleado, pero que no pertenezcan a ningun de las subclases de la misma
Herencia múltiple
Permite heredar metodos y variables de multiples superclases, hay clases que pueden pertenecer a multiples superclases.
Ejemplo: los empleados que trabajan por horas y a tiempo completo, métodos como ultimo día para la clase por horas y uno para pensiones para los trabajares a tiempo completo
Los atributos y los métodos concretos de los empleados por horas y a tiempo completo se especifican sólo una vez y los heredan todas las subclases.
Hay ciertos atributos que al heredar pueden ser ambiguos, por ejemplo las variables departamento que sean de la clase profesor y también de estudiante, por ende un ayudante de profesor podría tener ambas.
Si un objeto pertenece a muchas clases, se debe pertenecer a una clase que es (directa o indirectamente) subclase de todas las otras clases a las que el objeto pertenece.
Identidad de los objetos
Las entidades/objetos conservan su identidad aunque algunas de sus propiedades cambien con el tiempo.
Este concepto de identidad no se
aplica a las tuplas de las bases de datos relacionales.
Identidad
Valor: el valor de la clave primaria
de una tupla identifica a la tupla.
Nombre: archivo recibe un nombre que lo identifica de manera unívoca, independientemente de su contenido.
Incorporada: identificador que proporciona el sistema al momento de la creacion de un objeto.
Los identificadores de
los objetos son únicos.
Generalmente en casi todos sistemas se crea un identificador, pero para las bases de datos se suele usar algo como la cedula.
Continentes de objetos
Las referencias entre objetos funcionan para
modelar diferentes conceptos del mundo real.
Las bicicletas se suelen dividir en partes como las ruedas, asiento, frenos entre otro, a su vez estos objetos como las ruedas se dividen en llanta, un conjunto de radios y el neumático.
Estos objetos se llaman objetos complejos o compuestos.
. Los enlaces entre las clases deben interpretarse como "es parte de".
El concepto de continente es importante en los sistemas orientados a objetos porque permite que los diferentes usuarios examinen los datos con diferente detalle.
LENGUAJES ORIENTADOS A OBJETOS
Los conceptos de la programación orientada a objetos se utilizan simplemente como herramientas de diseño y se codifican.
Ejemplos: los modelos de entidad-relacion.
Los conceptos de POO se incorporan a los lenguajes de bases de datos
Extender los lenguajes de SQL añadiendo conceptos de POO = "Sistemas relacionales orientados a objetos"
Tomar un lenguaje de programación y extenderlo para trabaje con bases de datos = "programación persistente".
LENGUAJES DE PROGRAMACIÓN PERSISTENTE
Los lenguajes de las bases de datos trabajan con datos persistentes (datos y tuplas) a diferencia de los lenguajes de programación usuales.
Los lenguajes SQL se complementan con los de programación debido a que estos no cuentan con las herramientas necesarias para crear o hacer algunas cosas por ejemplo: las interfaces gráficas.
Estos son lenguajes de programación que son extendidos para que trabajen con datos persistentes.
En estos sistemas los programadores no necesitan escribir de manera explicita código para la búsqueda o guardado de datos.
C++, Java y
Smalltalk.
Persistencia de los objetos
Se debe de buscar una manera que los objetos no desaparezcan cuando se termina la ejecución del programa.
Persistencia por clases: los persistentes son determinados y los que no lo son se les dice transitorios, se debe contar con ambos, es decir "clases que pueden ser persistentes".
Persistencia por creación:Sintaxis nueva para crear objetos persistentes mediante la sintaxis de creación de objetos transitorios, depende de la maneara de crearlos,.
Persistencia por marcas: marcarlos como persistentes después de crearlos ya que en un principio todos son transitorios,
Persistencia por alcance:se declara un objetos raíz (persistente), los objetos que son alcanzados mediante referencias desde el objeto raíz son objetos persistentes. Eficiente para realizar estructuras de datos completas.
La identidad de los objetos y los punteros
En la creación de los objetos se les asigna un identificador en el cual los objetos que no son persistentes lo pierden cuando termina la ejecución del programa, pero los persistentes tiene identificadores persistentes.
Dentro de los procedimientos: la identidad solo persiste durante la ejecución del procedimiento.
Dentro de los programas:la identidad solo persiste durante la ejecución del programa o una consulta.
Entre programas: los punteros a los archivos en disco proporcionan identidad a los datos en los distintos programas, pero puede cambiar en la modificación o guardado de los datos.
Persistente. La identidad no sólo persiste entre las ejecuciones del programa sino también entre las reorganizaciones estructurales de los datos
El almacenamiento y el acceso a los objetos persistentes
El guardar los objetos es guardar el código de creación de los objetos aunque en muchas implementaciones se guardan en archivos ajenos, que no son totalmente pertenecientes al sistema de bases de datos.
Para buscar objetos puede ser mediante: la asignación de nombres a los objetos (no muy eficiente con muchos objetos), identificador (punteros) o guardar colecciones de objetos.los sistemas de bases de datos suelen proporcionar los 3 métodos.