Después de haber visto que un grupo de objetos se puede almacenar
en memoria mediante colecciones, vas a ver en este apartado que
también se pueden almacenar los objetos en tablas de igual
manera que los tipos de datos habituales de las bases de datos.
Los tipos de datos objetos se pueden usar para formar una tabla
exclusivamente formado por elementos de ese tipo, o bien, para usarse
como un tipo de columna más entre otras columnas de otros tipos de
datos.
En caso de que desees crear una tabla formada exclusivamente
por un determinado tipo de dato objeto, (tabla de objetos) debes
utilizar la sentencia CREATE TABLE junto
con el tipo de objeto de la siguiente manera:
CREATE TABLE NombreTabla OF TipoObjeto;
Siendo NombreTabla el nombre que deseas dar a la tabla que va a
almacenar los objetos del tipo TipoObjeto. Por ejemplo, para crear la
tabla UsuariosObj, que almacene objetos del tipo Usuario:
CREATE TABLE UsuariosObj OF Usuario;
Debes tener en cuenta que si una tabla hace uso de un tipo de
objeto, no podrás eliminar ni modificar la estructura de dicho
tipo de objeto. Por tanto, desde el momento en que el tipo de
objeto sea utilizado en una tabla, no podrás volver a definirlo.
Para poder crear este ejemplo previamente debes tener declarado el
tipo de objeto Usuario, que se ha utilizado en apartados anteriores.
Al crear una tabla de esta manera, estamos consiguiendo que
podamos almacenar objetos del tipo Usuario en una tabla de la base de
datos, quedando así sus datos persistentes mientras no sean
eliminados de la tabla. Anteriormente hemos instanciado objetos que
se han guardado en variables, por lo que al terminar la ejecución,
los objetos, y la información que contienen, desaparecen. Si esos
objetos se almacenan en tablas no desaparecen hasta que se eliminen
de la tabla en la que se encuentren.
Cuando se instancia un objeto con el fin de almacenarlo en una
tabla, dicho objeto no tiene identidad fuera de la tabla de la base
de datos. Sin embargo, el tipo de objeto existe independientemente de
cualquier tabla, y puede ser usado para crear objetos en cualquier
modo.
Las tablas que sólo contienen filas con objetos, reciben el
nombre de tablas de objetos.
En la siguiente imagen se muestra el contenido de la tabla que
incluye dos filas de objetos de tipo Usuario. Observa que los
atributos del tipo de objeto se muestran como si fueran las columnas
de la tabla: