Download creando una base de datos con ayuda de er/studio
Document related concepts
Transcript
CREANDO UNA BASE DE DATOS CON AYUDA DE ER/STUDIO DB2 Express C Users Group Nea – UTN FRRe : es un grupo formado por estudiantes la carrera de Ingeniería en Sistemas de la Universidad Tecnológica Nacional Facultad Regional Resistencia, cuyos objetivos son la de fomentar y promover el aprendizaje de distintas herramientas relacionadas con las bases de datos, mas precisamente de la DB2 Express C, para que los alumnos puedan conocer y aprovechar al máximo el potencial de esta tecnología. La presente publicación de este tutorial reflejan la opinión del autor y no necesariamente coincide con las del grupo .Todos los nombres, logos y servicios identificados en este tutorial son marcas registradas de sus respectivas compañías .El uso del nombre de alguna marca no tiene propósito de transmisión de endoso u otra afiliación con este tutorial. El grupo no asume responsabilidad alguna por cualquier consecuencia derivada de la fabricación ,funcionamiento y/o utilización de los productos o servicios que se describen ,analizan o publican, como tampoco cualquier violación de patentes y/o derechos de terceras partes que pudieran incurrir, estando este tutorial destinado meramente a fines educativos. El material se provee “tal cual” sin ningún tipo de garantía, implícita o explicita, en lo concerniente a fidelidad, validez o exactitud de la información o resultados obtenidos por el uso de dicha información o material. DB2 Express C Users Group – UTN FRRe 2006 Coordinador del grupo Mario Alberto Piz CREANDO UNA BASE DE DATOS CON AYUDA DE ER/STUDIO Autor :Ricardo Gonzalo Hess Revision: Mario Alberto Piz Oscar Francisco Brites Cuando se esta en un proyecto de bases de datos el primer gran paso que se debe completar es el de alcanzar un modelo lógico estable, es decir un MER con el menor número posible de fallas para luego derivarlo en un modelo fisico implementado en un gestor de bases de datos. El tutorial consistira en Modelar una tabla de clientes mediante ER/Studio y crear la base de datos en DB2. Programas necesarios para Realizar este tutorial DB2 Express C (Preferentemente la version 9) Embarcadero ER/Studio (6.5 o superior) Primero Abrimos el ER/Studio y creamos un nuevo modelo de datos Vamos al menu InsertarNueva Entidad y creamos una entidad que la vamos a llamar Clientes, donde vamos a guardar algunos datos de clientes Si hacemos click derecho y editamos la entidad deberia quedar de esta forma, vamos a poner Id_Cliente como campo clave tildando el casillero “Agregar a Clave Primaria” por eso el campo no admite nulos. Hay que tener mucho cuidado que campos admiten nulos y cuales porque nos puede afectar al momento de realizar la carga de los datos. En este caso decidi poner la fecha de nacimiento del cliente como anulable puesto que el cliente puede no ser una persona y al ser una empresa no tiene fecha de nacimiento (podría tener fecha de inicio de actividad, pero no va al caso) Como verán también se incluyo un campo Foto_Cliente, en este tutorial no lo vamos a cargar todavía, eso lo vamos a dejar para otro tutorial mas adelante... Como ya tenemos el modelo lógico listo, debemos generar el modelo físico, hay que recordar que el modelo lógico es independiente de la plataforma en la cual se implemente, por lo tanto para generar el modelo físico tendremos que centrarnos en un motor especifico de bases de datos, en este caso lo vamos a hacer para DB2. Hacemos click derecho sobre el modelo logico que creamos y luego en “Generar modelo Físico” (el modelo lógico al que me refiero, es el que esta en el parte izquierda en donde se observa todo el proyecto, tanto entidades como atributos, claves, etc.; creados con el ER/Studio). Luego de hacer eso nos va a aparecer una ventana como la siguiente, en la cual tenemos que darle un nombre al modelo físico que estamos creando, debemos hacer esto porque para un solo modelo lógico puede haber varios modelos físicos en distintos gestores, es decir una relacion 1 a N ... :-P En este caso elegimos como nombre del modelo “FisicoClientes”, y vamos a generar el modelo físico para IBM DB2 UDB 8.x porque es lo más cercano que tenemos al día de la fecha para generar con ER/Studio. Hasta la version 7 de ER/Studio no soporta DB2 9, lo unico que perdemos con esto es el soporte XML que la versión 8 no tiene. Hacemos click en siguiente y en la pantalla siguiente elegimos para que tablas generar el modelo fisico, en este caso vamos a seleccionar la tabla clientes que es la única que tenemos. Si hacemos click en siguiente tenemos más opciones que se pueden configurar pero que en este caso vamos a dejar por defecto haciendo click en Finalizar. Una vez que hacemos click en Acpetar podemos ver cómo quedo el modelo físico de nuestra base de datos, en este modelo las entidades del modelo lógico pasan a llamarse tablas Si hacemos click derecho en la tabla Clientes y la comparamos con lo que fue en el modelo lógico nos saltan algunas diferencias en los tipos de datos, en el caso de MontoAdeuda_Cliente que antes era de formato MONEY, ahora es DECIMAL y en el caso de la Foto_Cliente antes era picture y ahora es BLOB. Otra de las ventajas de tener un modelo de bases de datos bi-nivel en ER/studio es que no necesariamente se tienen que corresponder los nombre definidos en el modelo logico con los nombres del modelo fisico. El modelo lógico nos sirve para modelar el escenario/problema que tengamos, pero una vez que pasamos al físico tendremos los nombres de los campos y de las tablas con las que vamos a trabajar cuando escribamos las sentencias SQL, entonces no es cómodo tener columnas como “FechaUltimoPagoIvaCreditoFiscal_ClienteMoroso“, deberíamos tener algo mas corto. Lo que vamos a hacer ahora es quitarle los sufijos _Cliente a nuestra tabla de Clientes modificando el campo “Nombre de columna”, luego de hacer clik en “Editar Tabla“. Para que que nos quede así...(si bien estamos haciendo esto en el modelo físico, podríamos haberlos hecho ya en el modelo lógico, cuando escribimos en el formulario de carga de los atributos de la entidad podemos definir el nombre de columna que tendrá el modelo físico). Ahora que tenemos la tabla lista para crearla en el gestor, debemos hacer click en el modelo físico (de nuevo nos referimos a la parte izquierda donde se observa todo los creado para este proyecto), luego en el menú que se despliega hacemos click en “Generar Base de Datos”. Entonces aparece la siguiente ventana Ahora se nos presenta la alternativa de crear las tablas mediante un script o mediante una conexion odbc. Es importante saber que ER/Studio NO crea la base de datos, solo crea las tablas, es decir en cualquier caso que elijamos si queremos una nueva base de datos la vamos a tener que crear en DB2, ya sea mediante asistente o mediante el comando “create database”. Al final del turorial hay un apéndice donde se explica como crear una base de datos utilizando el asistente. En este caso vamos a crear las tablas en la base de datos SAMPLE que se puede instalar con el DB2 EC 9. ALTERNATIVA NUMERO 1: CREAR TABLAS UTILIZANDO CONEXION ODBC Primero vamos a crear la tabla utilizando una conexión ODBC. Para esto, observando en la Figura anterior, debemos seleccionar la opción Generar Objetos con Conexión a Base de Datos y clickear en el botón Conectar, luego aparece la siguiente ventana... En esta ventana debemos seleccionar el origen de datos ODBC, el cual es nuetra base de datos CLIENTES, en el caso de no encontrarla, debemos agregarla haciendo click en Setup/Configurar. Luego nos aparece una ventana donde figuran todos los orígenes de datos de usuario configurados, como nuestro origen de datos no esta tenemos que hacer click en Agregar... Ahora nos lleva a la ventana donde se elige el controlador, vamos a elegir IBM DB2 ODBC DRIVER – DB2COPY1 y hacemos click en Finalizar. Entonces se despliega una ventana donde tenemos que elegir la base de datos que queremos de origen de datos, en este caso elegimos CLIENTES y le ponemos un nombre, para identificarla en caso de que haya varios origenes de datos “Clientes en DB2” Una vez que aceptamos volvemos a donde comenzamos, aceptamos de nuevo y podemos usar nuestro nuevo origen de datos en ER/Studio. Lo ultimo que falta es poner la usuario/contraseña de algun usuario con privilegios (como db2admin). Al hacer click en OK, volvemos a la ventana del asistente de generación, le damos siguiente y nos muestra las tablas que va a crear y alguna opciones que se pueden configurar, opciones de clave primaria, de columnas de generación, etc. Entonces hacemos click en Finalizar para que nos genere las tablas en nuestra base de datos. Si nos aparece el siguiente cartel... todo bien Solo resta entrar al centro de control para ver si se creo la tabla en la base de datos correctamente. Cabe aclarar que si tenemos abierto el centro de control y no vemos lo creado recientemente, debemos hacer click derecho sobre la base de datos y en el menú contextual en la opción Renovar. ALTERNATIVA 2: CREAR TABLAS UTILIZANDO SCRIPT DE GENERACION Estamos en la ventana del asistente de generacion y entonces tildamos la opción de generar un solo script ordenado, seleccionamos la ubicacion donde queremos que se guarde el script (generalmente se guarda en “C: \Archivos de programa\Embarcadero\ERStudio6.5\SQLCode\” en la carpeta donde esta instalado el ER/Studio) y le damos Siguiente. Luego aparecen una gran cantidad de opciones, las mismas que aparecen si intentamos generar mediante ODBC a lo cual le damos click a Finalizar para usar las opciones por defecto. Este mensaje aparece cuando se genera el script y nos da la opción de ejecutarlo desde el ER/Studio. El ISQL de ER/Studio nos sirve para ejecutar consultas/script mediante un origen de datos ODBC, pero no vamos a realizarlo de esta manera. Lo que vamos a hacer es ingresar al Editor de Mandatos de DB2 ya sea mediante el menú InicioProgramasDB2Herramientas de linea de Mandatos o mediante el acceso directo en el centro de control. Una vez en el centro de mandatos debemos seleccionar la base de datos en la cual queremos ejecutar el script, pulsamos el botón Añadir y nos aparece el siguiente cuadro en donde aparecen todas las bases de datos que tenemos disponibles (locales y remotas), mediante el centro de control, debemos elegir la base de datos CLIENTES para continuar y clickear en Bien para continuar, en caso de querer ejecutar el script en una base de datos remota deberiams ingresar tambien el usuario y la contraseña. Ahora tenemos que apretar el boton de “Play” que esta a la izquierda en el centro de mandatos para que ejecute el script. Una vez hecho esto en el cuadro de abajo del editor de mandatos deberia figurar algo como: “Una conexión de JDBC con el destino ha resultado satisfactoria.”. Si esto es así, estaremos conectados y podremos ejecutar comandos en la base de datos, pero lo que queremos hacer primero es correr el el script de generación de la base de datos. Debemos hacer click en Abrir y buscamos el archivo .sql que nos genero ER/Studio, cabe aclarar que no es necesario que el archivo de script tenga la extension .sql ya que lo importante es que sea un archivo de texto plano que tenga las sentencias SQL.En este caso el archivo está en la ubicación por defecto del ER/Studio. Luego de esto el script esta cargado, tenemos que darle Play para que se ejecute y con un poco de suerte en el cuadro de abajo se va a poder leer “El mandato SQL ha finalizado satisfactoriamente.”. Si esto sucede la tabla ya estara creada en la base de datos. Si ahora bien hemos creado la Base de Datos con sus respectivas tablas, las cuales están vacías, debemos cargarlas con datos para poder realizar consultas. Bueno eso es todo espero que sea de ayuda para alguien, si surgen dudas de este humilde tutorial no duden en pasar por la pagina de DB2 User Group http://www.db2ug.byethost7.com y también por el foro. O también pueden escribir a ironchauli@hotmail.com para sugerencias, correcciones, etc acerca de este tutorial. APENDICE CREANDO UNA BASE DE DATOS UTILIZANDO EL ASISTENTE El software ER/Studio nos es de gran ayuda para poder crear las tablas de una base de datos pero nos deja el trabajo de crear la base de datos a nosotros, en este caso vamos a crear una base de datos utilizando el asistente de DB2 Express C 9. En otras versiones de DB2 se incluyen opciones extras que en este apendice no aparecen por lo que los usuarios de DB2 Workgroup Server Edition para arriba van a tener más pasos que seguir los cuales no vamos a comentar. Primero vamos al centro de control y haciendo click derecho sobre la instancia en la cual vamos a crear la base de datos seleccionamos, en el menú contextual, Crear base de datos y luego elegimos Estándar.... Después, nos aparece la siguiente ventana, donde debemos ingresar el Nombre de la base de datos, la Vía de acceso por omisión donde se va a ubicar, el Alías de la base de datos y una descripción (o Abstract o Comentario para la gente bonita). Las demás opciones dejamos por defecto, éstas sirven para trabajar con grandes bases de datos y otras opciones más avanzadas como ser Habilitar base de datos paraXML…. En donde se especifica la Vía de acceso se debe poner una raíz o Disco y/o partición. Luego se nos pregunta en dónde deseamos guardar los datos, esto se debe modificar en el caso de tener una base de datos que suponemos va a tener mucho datos, entonces podemos definir muchas unidades de disco para que el gestor utilice para almacenar los datos. Lo siguiente es definir la página de códigos, por ejemplo para poder trabajar con la “ñ”, en este caso elegimos Argentina. Todo esto se especifica para la Región por defetco que elijamos. Por último se nos presenta un resumen de las opciones que elegimos y pulsamos Finalizar para crear la base de datos, al hacer esto se crearán varias tablas, estas son las que definen la base de datos y varias cosas más… Una vez terminado esto y si no ocurre nada fuera de lo común la base de datos debería estar creada en la instancia seleccionada. Como se puede ver es algo sencillo crear una base de datos utilizando el asistente; también aquí debemos, en caso de no aparecer la base de datos creadas en el centro de control, debemos dar Renovar para que aparezca (en este caso en Bases de Datos de la instancia seleccionada) .