Los objetos en tiempo de
ejecución tienen
identidades únicas. Dos
variables que hacen
referencia al mismo objeto
en realidad hacen
referencia a la misma
instancia del objeto. Por
este motivo, los cambios
que se realizan a través de
una variable están visibles
inmediatamente a través
de la otra.
En realidad, la mayoría de
las veces los datos se
extraen de la base de datos
y se colocan en un nivel
diferente, donde una
aplicación trabaja con ellos.
Éste es el modelo que LINQ
to SQL admite. Cuando los
datos se extraen de la base
de datos como filas, no se
espera que dos filas que
representan los mismos
datos realmente se
correspondan con las
mismas instancias de fila. Si
consulta un cliente
concreto dos veces, obtiene
dos filas de datos. Cada fila
contiene la misma
información.
Polimorfismo y
Sobrecarga de Operadores
El polimorfismo de sobrecarga
ocurre cuando las funciones del
mismo nombre existen, con
funcionalidad similar, en clases
que son completamente
independientes una de otra (éstas
no tienen que ser clases
secundarias de la clase objeto).
Por lo tanto, el polimorfismo de
sobrecarga nos permite definir
operadores cuyos
comportamientos varían de
acuerdo a los parámetros que se
les aplican.
Compatibilidad de los
Lenguajes de Programación
En la actualidad existen
varios tipos de
lenguajes de
programación en los
cuales podemos
programar SQL. Tales
como Visual Studio,
C++ con una
implementación nativa
del driver de java,
Visual Basic.net, Visual
Basic C++
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.
Constructores de Tipos
Los 3 constructores
básicos son: 1.-
Constructores de
átomos: Los átomos
son como las
constantes y los
identificadores de un
lenguaje imperativo.
Incluye números,
cadenas, nombres,
funciones y unos
cuantos constructores.
2.- Constructores de
Tuplas: Son
importantes porque
proporcionan un
medio natural para
representar los
componentes o
propiedades de
entidad, solo puede
ser aplicado a valores
atómicos.
3.- Constructores
de Conjuntos:
Son cruciales
porque son una
forma natural de
representar las
colecciones del
mundo real y se
utilizan para
definir atributos
multi-elevados,
solo se puede
aplicar en tuplas.
Encapsulamiento
Comporta las siguientes
ventajas: • La modificación
interna de un objeto para
corregirlo o mejorarlo no
afecta a sus usuarios. • La
dificultad inherente a la
modificación de la
implementación de un objeto
sea independiente del
tamaño total del sistema. Esto
permite que los sistemas
evolucionen con mayor
facilidad. • La simplificación
en el uso del objeto al ocultar
los detalles de su
funcionamiento y presentarlo
en términos de sus
propiedades.
Jerarquías de Tipos y
Herencias
En una herencia múltiple, puede ocurrir
que en ambas superclases existan
propiedades con los mismos nombres,
situación que se denomina colisión de
nombres. A continuación, se relacionan
los posibles casos de colisión de
nombres en la herencia de tipo: Los
nombres son iguales porque se refieren
a la misma propiedad. En este caso no
hay conflicto porque el significado está
claro: es la misma propiedad, sólo hay
que definir una implementación
adecuada. Los nombres son iguales
pero tienen significados diferentes. Esta
situación es posible porque el
modelado es una tarea subjetiva y se
soluciona cambiando los nombres de
las propiedades heredadas que tengan
conflicto.
Creación de Versiones
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.
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.