A partir del 1 de Julio del presente año, Oracle a puesto a disposición del público una nueva herramienta, el Oracle SQL Developer Data Modeler, que está orientada al diseño de modelos entidad-relación y físicos, en base a los cuales se obtendrán nuevas bases de datos, así como también nos permite realizar la operación inversa, es decir, obtener un modelo físico o entidad-relación de una base de datos existente. También permite la interoperabilidad con otros motores de bases de datos, inicialmente con SqlSever2000 y 2005 y DB2. En resumen, es una herramienta CASE más pero propia de Oracle y es posible descargarla gratuitamente desde su sitio:
http://www.oracle.com/technology/products/database/datamodeler/index.html
A continuación les presento un pequeño ejemplo de cómo obtener el modelo de una base ya existente en oracle 10g y luego obtendremos el script para la creación de estas mismas estructuras pero en SqlSever2000.
Descargar el software de la página indicada anteriormente, en este caso descargamos la versión para Windows.
Descomprimir el archivo descargado “datamodeler-2.0.0-570.zip” .Se creará una carpeta llamada “datamodeler” y dentro de ella encontraremos el archivo ejecutable “datamodeler.exe” con el que se lanza la aplicación. Damos doble clic sobre este archivo y se nos presenta la pantalla principal del DataModeler.

3.- Nos ubicamos en el menú “File” en la opción “Import” y seleccionamos el submenú “Data Dictionary” que es la opción para importar una base de datos de Oracle ya existente.


4.- Seguimos los pasos del wizard para obtener el modelo entidad relación de una base existente. En primer lugar en este caso vamos a añadir una base a la cual conectarnos, para esto damos clic en el botón “Add”.

A continuación se presenta una pantalla donde debemos ingresar los datos de la base a la cual nos queremos conectar. En “Connection Name” ingresamos un nombre para la conexión que estamos creando, “User Name” y “Password” serían el usuario y password en la base de datos a la que nos vamos a conectar, ingresamos el nombre del host o IP de la máquina en donde se encuentra la base (en este caso nuestra base se encuentra en un servidor Linux), dejamos el puerto por default 1521 e ingresamos el SID o nombre de la base.

Con el botón “Test Conection” podemos probar si la conexión funciona.

Damos clic en Aceptar y luego en OK y regresamos al wizard anterior.
5.- Damos clic en NEXT y nos ubicamos en el paso dos del wizard “Select Schema/Database”

En este paso escogemos el o los schemas que queremos importar, en este ejemplo vamos a importar al schema “estudiante01”.
6.- Una vez hecha la selección damos clic en “Next” y nos ubicamos en el paso tres “Select objects to import”

Como se puede observar se puede filtrar por tipos de objetos a importar. Se tiene una pestaña para cada tipo de objeto, esto no tiene tanta importancia ahora que vamos a obtener el modelo entidad-relación pero será útil cuando obtengamos un archivo con las sentencias DDL para re-crear esta base. En este caso seleccionamos todas las tablas y dejamos las demás opciones con su valor por default.

7.- Luego damos clic en NEXT y se presenta un resumen de las opciones que hemos escogido. Damos clic en FINISH para iniciar la generación del diseño.

Al terminar la generación se presenta un log indicándonos si tuvimos algún inconveniente y si queremos guardar o no este registro.

En este caso damos clic en “close” y ya podemos observar el modelo entidad-relación generado.

8.- A continuación vamos a obtener un script de creación de esta base en Sqlserver2000. Lo podemos hacer a través de la barra de herramientas dando clic en “generate ddl” como se muestra en la imagen a continuación, o a través del menú “File” y luego en “Export” “DDL file”

En la pantalla que se presenta a continuación, escogemos del listado SqlServer2000

Como vemos se presentan opciones para DB2 y otras versiones de Oracle. Luego de seleccionar el motor damos clic en “Generate”. Se nos presentan diferentes pestañas para ajustar detalles en la creación del script, como por ejemplo si eliminamos las dependencias entre tablas, etc. En nuestro caso dejamos todas las opciones por default y damos clic en OK para generar el script.

Y se obtiene finalmente un script que se puede correr dentro de una base SqlServer 2000 para crear estas estructuras.
Como se puede observar es una herramienta bastante fácil de utilizar, muy intuitiva y que nos facilitará ciertas tareas en nuestro trabajo diario.