Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Modelo de Objetos
Para las OODB no ha existido un nico modelo de datos, anlogo al modelo relacional difundido por
Dr. Codd, sino que cada autor ha adoptado un modelo diferente. El modelo orientado a objetos
(OODM) que aqu se presenta tiene mucho en comn con los modelos de datos relacionales o E-R,
tambin tiene algunas diferencias fundamentales.
Encapsulado y herencia
Estas dos caractersticas no son soportadas por los modelos de datos relacionales o E-R.
El encapsulado es la capacidad de ocultar los detalles internos del objeto (atributos y mtodos). Esta
capacidad deriva de que la estructura interna de un objeto no puede ser accedida directamente por otro
objeto, garantizando la integridad del estado del objeto.
La herencia es la capacidad de un objeto dentro de una jerarqua de heredar la estructura de datos y el
comportamiento (mtodos) de las clases sobre ella.
Relaciones
Una relacin atributo-clase o relacin interobjeto, se crea cuando el atributo de un objeto hace
referencia a otro objeto de la misma o diferente clase. Existen dos tipos de relaciones
interobjeto: relaciones 1:M y M:N.
Relaciones 1:M
Relaciones M:N
Debido a que una base de dato OO permite a los objetos tener atributos multivaluados, las
relaciones M:N pueden ser directamente representadas sin necesidad de crear entidades
compuestas. Para representar la relacin M:N cada clase que participa en la relacin define un
atributo que contendr un conjunto de valores de las otras clases con las que est relacionada.
En principio, la capacidad de representar directamente relaciones M:N puede parecer una gran
ventaja de las bases de datos OO. Sin embargo, hay que tener mucho cuidado al usarlas debido
a que se produce prdida de informacin.
Un tipo especial de relacin M:N es la relacin parte de un todo. En esta relacin, un
producto puede estar compuesto de muchas partes y subpartes. Y, de la misma forma, la misma
parte o subparte puede ser usada en diferentes productos. La forma de implementar esta
relacin en una base de datos es la misma que se ha comentado anteriormente, usando
conjuntos de identificadores de objetos en las dos clases que estn relacionadas.
Acceso
Los modelos E-R y relacionales dependen del uso de SQL para recuperar datos de la base de datos.
SQL es un lenguaje de consultas orientado a los conjuntos, que est basado en un modelo matemtico
formalmente definido. Dada su herencia orientada a conjuntos, SQL utiliza mtodos de acceso
asociativos para recuperar informacin relacionada de una base de datos, con base en el valor de
alguno de sus atributos.
Definicin de Entidad
Objeto
Entidad
Clase
Variable de Instancia
Conjunto de Entidades
Atributo
Sin Correspondencia
Clave Principal
OID
Mtodo
Sin Correspondencia
Sin Correspondencia
Jerarqua de Clases
Diagrama E R
basados en objetos.
El estndar propuesto por OMG se denomina ODMG (Object Data Management Group). La primera
versin de este estndar se public en 1993 y con el paso del tiempo se ha ido refinando, llegando a su
versin actual: ODMG 3.0. Los principales componentes de este estndar son cuatro:
Vinculacin con lenguajes de programacin: la actual versin del estndar tiene vinculacin
con los lenguajes de programacin C++, JAVA y Smalltalk. Estas vinculaciones definen la
correspondencia entre el ODL y los lenguajes de programacin correspondientes.
Ejemplo
En la ilustracin 1 se muestra un ejemplo que muestra un esquema de bases de datos
orientada a objetos, con una simbologa semejante a UML.
En la ilustracin 1, cada nodo representa una clase, y se compone de 3 niveles: nombre de la clase,
atributos y mtodos. Los atributos que tienen el smbolo * son atributos multivaluados. Los nodos
se pueden conectar por dos tipos de arcos:
Un arco normal (lnea delgada) indica que la clase del destino de la flecha es el dominio de un
atributo de la clase origen o el resultado de un mtodo de la clase origen. Esto se puede ver, por
ejemplo, en el atributo documento de la clase Proyecto, cuyo dominio es la clase Documento.
Un arco grueso indica que la clase origen de la flecha es una subclase de la clase destino (herencia).
Esta relacin se puede apreciar entre las clases Informe Tcnico o la clase Artculo y Documento,
siendo sta ltima la superclase de las dos anteriores.
Ejemplo
En
este
ejemplo,
adems,
se
pueden
contemplar
relaciones
interobjeto 1:M,
como
por
recuperacin.
La creacin de tipos est altamente limitada.
Ausencia de mecanismos de reutilizacin.
Con objeto de solucionar estas limitaciones, surge el modelo orientado a objetos puro, y como una
transicin entre ambos aparece el modelo objeto-relacional, que vamos a tratar a continuacin.
Modelo Objeto - Relacional
Una de las ventajas que aporta el modelo Objeto - Relacional es la posibilidad de tratar y/o definir
tipos de datos ms complejos.
Lobs
Es un tipo de dato que permite almacenar gran cantidad de informacin ( del orden de Gigabytes).
Existen dos tipos:
BLOB (Binary Large OBject): Se utiliza para guardar datos de tipo binario
(fotografa, audio, vdeo, etc.).
Dependiendo del SGBD y del tamao de los LOBS, stos se almacenan directamente en la base de
datos o una referencia hacia un fichero externo.
Tipos definidos por el usuario
Los usuarios pueden definir sus propios tipos de datos, a partir de los tipos bsicos provistos por
el sistema o por otros tipos de datos predefinidos anteriormente por el usuario.
Existen dos tipos de datos definidos por el usuario, los tipos distintos y los tipos estructurados.
a) Tipos distintos
En el modelo relacional, las columnas de una tabla se definen mediante tipos de datos primitivos. De
esta forma, dos columnas con distinta semntica y, por tanto, distinto comportamiento, podan
estar definidas bajo el mismo tipo de datos compartiendo la misma representacin. Se usan cuando dos
tipos de datos comparten la misma representacin pero tienen distinto comportamiento. La definicin
de tipos distintos se basa en el renombrado de tipos, de tal modo que el tipo distinto no es
comparable con el tipo fuente.
b) Tipos estructurados
Se pueden usar en cualquier sitio donde se pueda usar un tipo de datos predefinido. Estn formados
por una agrupacin de tipos predefinidos. Se podran considerar como un struct en lenguaje C.
Como tipo de una columna. Se utiliza un tipo compuesto como un atributo ms de una
tabla.
Como tipo de una fila de una tabla (tabla tipada). Se utiliza el tipo compuesto para
definir de forma implcita la estructura de una tabla, es decir se crear una tabla con
la estructura necesaria para almacenar este tipo de datos, pudindose utilizar como
objetos. El SGBD se encarga de crear un atributo REF (Object IDentification)
que identificar de forma unvoca a una tupla, podramos ver este hecho como una
abstraccin del uso de primary key.
Tipos referencia
Podramos entender los tipos referencia como la evolucin de las foreign key. En la definicin de
una tabla o de un tipo definido por el usuario, se podr incluir una atributo de tipo referencia, el cual
almacenar el valor del OID del la fila de la tabla tipada referenciada.
Pueden ser usados en cualquier sitio donde pueda usarse otro tipo de datos.
Aunque como se ha apuntado podra verse como la evolucin de las foreign key hay que tener en
cuenta que no tiene la misma semntica, La clave ajena implica integridad referencial y el tipo
referencia no, pudiendo tener referencia que no llevan a ninguna parte (dangling references).
Tipos coleccin
Multset:
Conjunto
de elementos homogneos
sin orden y
permitindose
Tipos ROW
Tipo de datos que agrupa atributos. Si una fila de una tabla es una instancia de un tipo ROW, cada fila
de la tabla tiene el mismo tipo. Con esto se consigue que un tipo de datos pueda representar las filas de
una tabla para ser almacenadas en variables, pasadas como argumentos a rutinas y que sean devueltas
por funciones. Estas caractersticas son las que diferencian los tipos ROW de los tipos definidos por el
usuario utilizado como descriptores de filas.
Personas
Nombre
Pepe
Mariano
Direccin
Calle
Mata
Paloma
N
59
2
piso
5
3
Telfono
CP
13000
13003
623987455
925786320
926547326
null
La herencia de tipos indica que el subtipo hereda la estructura y el comportamiento del supertipo,
pudiendo adems incluir caractersticas propias.
La herencia de tablas hace referencia a la parte extensional de un jerarqua, es decir , al principio de
clasificacin por el que toda instancia del subtipo es tambin una instancia del supertipo; para definir
una jerarqua de tablas tanto la subtabla como la supertabla deben ser tipadas. Las subtablas heredan
los atributos, restricciones, disparadores, etc. De la supertabla
La herencia de tipos como de tablas se especifica mediante la clusula UNDER, y adems un tipo
puede declarase como FINAL (si no puede tener subtipos) o como NOT FINAL (en caso contrario):
Sustitutabilidad
Se asegura que cualquier dato de un supertipo puede ser sustituido por un dato de cualquiera de sus
subtipos.
Vinculacin dinmica
La herencia de tipos puede dar lugar a la sobrecarga o polimorfismo de mtodos, es decir, se puede
redefinir la implementacin de un mtodo heredado al definir un subtipo.
Mtodos
Los mtodos son funciones SQL ligadas a un tipo estructurado que representan el comportamiento de
dicho tipo. La signatura del mtodo se especifica junto a la definicin del tipo de datos al que va
ligado. La especificacin de su cuerpo se define separada.
Los mtodos pueden ser llamados utilizando la notacin punto.
Consul ta s
Una de las principales ventajas del modelo objeto-relacional es que permite la realizacin de
consultas navegacionales, permitiendo aumentar los tiempos de respuesta de las consultas relacionales,
al eliminarse la necesidad de hacer combinaciones.
Ejemplo
Utilizando la ilustracin 1, en la que veamos un diagrama que representa una estructura de clases,
vamos a ver cmo, utilizando el modelo objeto-relacional podramos implementar en una base de datos
algunas de las caractersticas reflejadas en el mismo.
Podemos encontrar un ejemplo claro de un posible uso de tipos distintos en los atributos cdigo y ttulo
de la clase Documento. Ambos son de tipo STRING pero sus usos y posibles estructuras estn
claramente diferenciados, y comparaciones entre ambos podran suponer errores semnticos. La clase
Documento la podramos modelar como una tabla tipada (procedente de un tipo estructurado) de la
cual heredaran Informe Tcnico y Artculo. Adems podramos enriquecer el diagrama con la
inclusin de un atributo de tipo CLOB en la tabla tipada Documento, el cual podra servir para
almacenar el texto del mismo.
Si vemos la clase Proyecto observaremos que puede tener asociados uno o ms documentos, luego
podramos implementar esta particularidad mediante el uso de un tipo MULTISET de tipos
REFERENCIA, siendo estas ltimas referencias a documentos (filas de la tabla tipada Documento).
Haciendo una ligera modificacin en el diseo podramos incluir el uso de un tipo ROW en
Investigador, podramos agrupar los atributos salario bonificacin y salario promedio bajo
una denominacin comn, por ejemplo SalarioInv.
Ejemplos claros de uso de mtodos los encontramos en diferentes ocasiones como para el caso de la
clase Investigador donde aparece el mtodo salario mensual() as como en la clase Proyectos
encontramos mtodos como participantes() y balance().
Prctica.
Realizar un cuadro comparativo sobre las caractersticas de la Base de Datos Orientado a objetos y
la base de datos Objeto-Relacional.