En este apartado vamos a aprender a crear un modelado de datos a través de la herramienta Data Modeler.
Modelado de datos a través de Data Modeler de Oracle.
Una herramienta de modelado de datos que podemos descargar de forma gratuita es Oracle Data Modeler desarrollada por Oracle. Esta herramienta podemos descargadala por separado o incorporada al SQL Developer. Sus características más importantes son las siguientes.
- Los modelos se almacenan bajo una estructura de directorios.
- Puede trabajar con cualquier tipo de base de datos, no será necesario que sea Oracle.
- Permite ingeniería inversa.
- Dispone de los siguientes niveles de diseño: lógico, relacional y físico.
- Define dominios de tipos de datos.
- Es una herramienta de diseño visual y con muchas funcionalidades.
- Múltiples opciones de generación del DDL.
En este caso, veremos la versión Data Modeler que incorpora SQL Developer en su versión 3.2.10.09.57.
- Para abrir el explorador de Data Modeler pulsamos en el menú Ver/Data Modeler/Explorador y se mostrará el módulo del Data Modeler.
- Si queremos abrir una ventana del modelo lógico, desde el menú contextual de Modelo Lógico elegimos Mostrar.
- En cambio, si queremos crear un modelo relacional elegimos Modelo Relacional del menú contextual de Modelos Relacionales.
- Antes de empezar a crear ningún modelo insertaremos las tablas de nuestro usuario. Para ello vamos a elegir desde el menú contextual de Modelos Relacionales, la opción Nuevo Modelo Relacional. En la hoja de trabajo que se nos muestra arrastraremos todas las tablas.
- En la barra de botones vamos a poder incluir, entre otras funciones, tablas, vistas y claves ajenas y podremos dividir también tablas.
- En la opción de Realizar ingeniería al modelo lógico se van a crear las diferentes entidades y relaciones de un determinado modelo relacional.
- Cuando queramos guardar este diseño de datos pulsamos en el menú Archivo/Data Modeler/Guardar o Guardar como, seleccionamos la carpeta de almacenamiento y guardamos.
- Si lo que queremos es abrir un modelo, lo haremos desde el menú Archivo/Data Modeler/Abrir.
Cuando se guarda el proyecto se crea un fichero con la extensión .dmd y una carpeta con el mismo nombre.
Creación de modelado de datos con Data Modeler.
Para crear un modelo lógico de datos comenzaremos a partir del siguiente esquema.
Para crear un nuevo diseño, dentro del explorador de Data Modeler abrimos el menú contextual del nodo Diseños y seleccionamos Nuevo Diseño.
Usando la barra de botones añadimos las entidades y relaciones que tengan entre ellas y cuando lo tengamos creado se realiza la ingeniería inversa para crear el modelo relacional.
Para crear una nueva entidad pulsamos el botón Nueva Entidad. Desde esta ventana añadimos las propiedades que tendrá la entidad, pero prestaremos especial atención en las propiedades de los apartados general y atributos.
Propiedades de General.
Datos que tienen que ver con la entidad. Lo más importantes es poner el nombre y, si trabaja con jerarquías indicar el supertipo y cómo se desea la ingeniería. El resto de opciones las dejaremos por defecto. Las más importantes son las siguientes.
- Nombre: nombre de la entidad.
- Abreviatura: nombre corto para la entidad. o Sinónimos: sinónimos de la entidad. o Sinónimo para mostrar: sinónimo a mostrar para la entidad.
- Abreviatura preferida: nombre abreviado que utilizaremos para la correspondencia de las tablas.
- Nombre completo: nombre que utilizaremos para visualizar el nombre de las entidades y atributos.
- Estrategia Ingeniería directa: Es importante al trabajar con entidades supertipo y subtipo. Se define la estrategia de las entidades para hacer ingeniería a las tablas del modelo relacional.
- Tabla única. Datos de entidad subtipo incluidas en tabla supertipo. No hay tabla subtipo.
- Tabla por secundario. Datos de entidad supertipo incluidas en tablas de subtipo. No hay tabla supertipo.
- Tabla para cada entidad. Tabla separada para cada entidad supertipo y subtipo.
- Basado en tipo estructurado: Si se basa en tipo estructurado se selecciona de la lista. Contendrá los atributos definidos en el tipo estructurado.
- Supertipo: Si la entidad es un subtipo, se selecciona el supertipo de la lista. Esta entidad hereda todos los atributos del supertipo especificado.
Propiedades de Atributos.
Se añadirán los atributos a la entidad. Las propiedades de cada atributo incluirán su nombre y tipo de datos.
- Si es el identificador principal se marca UID.
- En caso de ser un identificador de relación se marca UID de Relación.
- Por el contrario si es un campo obligatorio se marca la casilla.
En tipo de datos podremos seleccionar dominios y datos de tipo lógico o de tipo estructurado. Seleccionaremos inicialmente datos de tipo lógico en el que tendremos los tipos.
- NUMERIC para datos numéricos. Para este tipo de datos, escribimos una precisión, que nos indicará el número total de dígitos para la cantidad, y una escala para indicar las posiciones decimales.
- VARCHAR para cadenas. En este caso, escribimos el tamaño total de la cadena dejando la opción unidades por defecto
- DATE para fechas.
Para agregar atributos pulsamos en el botón Agregar (+) y para eliminarlos hacemos clic en Eliminar (X).
Las flechas moverán de posición los atributos. Si queremos ver las propiedades de cada atributo haremos doble clic sobre ellos.
Resto de propiedades.
Dejaremos las opciones por defecto para el resto de propiedades, excepto si queremos añadir alguna restricción. Las más importantes son:
- Identificadores únicos. Visualizan identificadores únicos UID.
- Claves primarias de la entidad PUID (restricción PRIMARY KEY). Se podrán añadir y eliminar identificadores.
- Relaciones. Son las relaciones que se asocian con la entidad.
- Propiedades de volumen. Se refiere a la cantidad de datos y tasa de crecimiento.
- Realizar Ingeniería. Indicación del modelo relacional con el que la entidad tendrá que ser propagada en las siguientes operaciones de ingeniería.
- Los comentarios. Utilizado para añadir comentarios al modelo de datos.
Crear relaciones con Data Modeler.
Para crear relaciones utilizamos los botones de la barra de botones del modelo lógico. Creamos primero dos entidades y luego las relacionamos. Las relaciones pueden ser del tipo 1:1, 1:N y M:N.
Al crear una relación 1:M, se hace clic en el botón 1:N y primero seleccionamos la entidad de 1 y
arrastramos a la entidad del N.
Cuando creamos la relación se abre una ventana de propiedades en la que aparecerá los siguientes elementos.
- Nombre. nombre de la relación.
- Nombre completo. muestra cómo queda la relación.
- Cardinalidad del Origen.
- Origen, Nombre en origen y Sinónimo indican la entidad de origen de la relación.
- En Cardinalidad de Origen a Destino aparece la cardinalidad máxima.
- En Origen Opcional indicamos la cardinalidad mínima. Hemos de marcarla cuando la cardinalidad sea mínima a 0.
- Cardinalidad del Destino. Será igual que la anterior, pero con la entidad destino. Cardinalidad de Destino a Origen es 1.
- Suprimir regla: indica cómo se borrarán los registros relacionados al eliminar un registro de la tabla principal.
- RESTRICT no podremos eliminar la tabla si posee registros relacionados.
- NO ACTION, bloquea las operaciones.
- SET NULL permanecen los registros relacionados pero se asigna el valor NULL a las columnas relacionadas.
Pulsaremos en Aplicar para ir viendo los cambios y en Aceptar para salir del modelo lógico.
Como crear jerarquías en el modelado de datos.
Antes de crear jerarquías en el modelado de datos deberemos establecer primero todas las entidades en las propiedades subtipo:
- En Estrategia Ingeniería directa, seleccionamos el tipo de transformación que realizaremos.
- Tabla única. engloba todos los atributos de los subtipos en el supertipo. Se suele elegir esta opción cuando los subtipos se diferencian muy poco entre ellos.
- Tabla por secundario. Suprimir el supertipo y se quedan los subtipos con atributos comunes y los suyos propios. Elegiremos esta opción en el caso de que tengamos una gran cantidad de atributos y los accesos sobre los mismos.
- Tabla para cada entidad. Genera una tabla separada para cada entidad supertipo y subtipo. Se elegirá esta opción cuando los subtipos tengan muchos atributos distintos.
- En Supertipo, seleccionamos la entidad supertipo de los subtipos.
Ingeniería al modelo relacional.
Una vez se ha creado el modelo lógico, crearemos el modelo relacional a través de una herramienta automática.
Crear la ingeniería del modelo relacional.
En Data Modeler pulsamos el botón realizar ingeniería al modelo relacional de la barra de botones.
Se iniciará un asistente que indicará los elementos a realizar la ingeniería y podremos cambiar algunas opciones. Cuando terminemos pulsamos en «realizar ingeniería» para que se genere automáticamente el modelo relacional.
Observamos que la columna NOT NULL aparece marcada con punto rojo, las PRIMARYS KEYS con una P junto a la columna y las FOREIGN KEYS con una F. Las columnas con restricción UNIQUE aparecerán marcadas con una U.
Cambiar las propiedades de las tablas.
En el modelo relacional también podremos cambiar las propiedades de las tablas añadiendo más atributos o restricciones, más tablas y más relaciones.
El paso siguiente será crear las DDL pulsando en el botón Generar DDL Elegimos la base de datos y el modelo relacional y pulsamos en el botón Generar. Seguidamente nos aparecerá una ventana para añadir opciones y pulsamos en Aceptar. Ahora se nos visualizará una ventana con el script y pulsamos en Guardar.
Para crear tablas en el esquema de un usuario, abrimos el archivo creado con
SQLDEVEOPER desde el menú Archivo/Abrir. Pulsamos en el botón Ejecutar
Script, nos pedirá una conexión y elegimos la conexión de nuestro usuario.
Crear dominios con la herramienta de modelado de datos Data Modeler.
Es un conjunto de valores que puede tomar un atributo e indica qué valores pueden ser asumidos por los atributos de las tablas. Se define a través de la declaración de un tipo de dato para el atributo, aunque también es posible definir dominios más complejos y precisos.
Data Modeler ya dispone de un administrador de dominios, el cual abriremos pulsando en el menú Herramientas/Data Modeler/Administración de Dominios.
En la ventana que aparecerá se mostrarán opciones similares a la creación de atributos en los modelos lógicos y relacional. Esta ventana estará dividida por dos secciones.
- El cuadro Seleccionar Dominio. Se podrá seleccionar un archivo de dominio en el que se describen los dominios creados. Por defecto se cargará defaultdomains.xml, situado dentro de la carpeta del sqldeveloper: sqldevelope\sqldeveloper\extensions\oracle.datamodeler\types. Se mostrarán también los dominios creados.
- En Propiedades de Dominio indicaremos.
- El nombre de dominio.
- El Tipo Lógico asociado al dominio.
- Tamaño.
- La Precisión.
- La Escala.
- Restricción de Control nos permite ver y editar restricciones.
- Rangos, donde añadiremos restricciones para que el dominio se encuentre en un rango de valores.
- Lista de Valores, donde añadiremos excepciones para que un dominio tome solo valores de una lista.
Al añadir restricciones serán de tipo check cuando vayamos a crear la DLL de una tabla con dominios asociados.