Usando MySQL Workbench Para Diseñar Y Crear Una Base De DatosArchivado en: mysql — Etiquetas: bases de datos, mysql, workbench — vramirez @ 8:15 pm La compra de MySQL AB por parte de Sun Microsystems a comienzos de este año, es sin lugar a dudas un reconocimiento al buen trabajo hecho por la comunidad de MySQL, para llevar a esta base de datos a ser una de las mejores bases de datos open source que se encuentre en el mercado, y que hoy por hoy es la base de datos predilecta por los desarrolladores, e incluso grandes empresas como Suzuki, Sagem, o la misma Adobe o sitios como Yahoo! Finance, para bases de datos transaccionales o bodegas de datos (Data Warehousing).MySQL provee entre sus herramientas, una denominada MySQL Workbench la cual nos permite desde una ambiente gráfico, diseñar un modelo E-R de una base de datos y luego crear la base de datos, como tal en una base de datos MySQL. Para este tutorial es necesario tener instalado: MySQL 5.x o superior MySQL Workbench 5.x.x NOTA: En esta demo, solo se mostrará el funcionamiento de MySQL Workbench, mas no la instalación de éste ni la de MySQL Server. El servidor mysql puede estar instalado en cualquier equipo y/o sistema operativo soportado (Windows, Linux, Aix, etc). MySQL Workbench solo se encuentra disponible para Windows. En el ejemplo crearemos una base de datos muy sencilla, la cual no representa un ejemplo real. Simplemente es para probar las características. Primero creemos el esquema “test”, haciendo click en el símbolo “+”. Abajo se abre una pestaña en que nos pregunta el nombre del esquema (test) y el idioma del esquema, el cual se recomienda dejar por default como se muestra en la figura. Si la aplicación pregunta si desean renombrar todos los objetos, seleccionen “Si”. Ya creado el esquema, procedemos a crear las tablas. Existen dos formas, aunque muy similares de crearlas. La primera es desde la pantalla en la que estamos, la otra es mediante la ventana visual, en la cual podremos además, realizar las relaciones entre las tablas. Pero primero lo primero; las tablas. Verifica que estes en el esquema “test” y luego haz doble click en el icono de “Add Table”. Al hacer click en esta opción, se despliega al lado un icono representando la nueva tabla, mientras que debajo se abre una nueva pestaña, en la cual podemos editar todo al respecto de las tablas haciendo (Columnas, llaves, triggers, etc) click en cada una de las pestañas ubicadas en la parte inferior de esta nueva pestaña. Nota: los triggers solo estan disponibles a partir de MySQL 5. Cualquier tabla con triggers generada en Workbench arrojará un error cuando se corra en una versión inferior a MySQL 5.0 Agregaremos un par de columnas a la tabla: En la parte derecha. Podemos alterar el nombre. el tipo de dato. si es UNSIGNED o ZEROFILL para las variables numéricas y si la variable es de tipo caracter.Al hacer click en la pestaña “Columns”. inmediatamente podemos indicar si la columna seleccionada hace parte de la llave primaria (PRIMARY KEY). podemos editar todas las columnas dela tabla indicada. podemos especificar si es BINARY. De igual forma podemos especificar un valor por default para la columna. obviamente este último es sólo para datos de tipo numérico. . si es nulo o no (NN) y si es Auto incremental (AI). Hacemos doble click sobre ella.Ahora pasemos a crear una tabla por medio de un diagrama E-R. En la parte superior observamos la opción “Add Diagram”. . n:m…) y a la derecha un árbol con los objetos de nuestro esquema (tablas. vistas. De esa ventana. llaves.Luego se abre una nueva pestaña en la cual encontramos un grid. etc). . etc. abajo nos muestra la pestaña para editar la tabla y crear columnas. Hacemos un click en el ícono y luego un click en el grid.1:n. Luego hacemos click derecho y seleccionamos “Edit table”. desde la cual podremos crear tablas y vistas. ecnontramos una barra de herramientas. A la izquierda. Buscamos a la izquierda el ícono que nos permite crear una nueva tabla. además de relaciones (1:1. seleccionamos la tabla que creamos y la arrastramos hasta el grid. En mi caso.Seleccionamos el icono.Editamos las segunda tabla y ahora haremos una relación muchos a uno. Quedaría algo asi: . y luego cada una de las tablas (primero la de muchos y luego la de uno). la tabla de “muchos” es table1. podemos exportar el diseño. entre otros. Como ven.N (muchos a muchos) generará una relación entre las dos tablas.Como ven el Workbench se apega a la teoría relacional. Luego seleccionamos la ubicacion destino del archivo que se creará. nos muestra las opciones con las que queremos que se genere el script DDL. Igualmente si creamos una relacion M. incluso como una imagen en pdf. La primera pantalla. donde en este caso la llave de a relación “uno” pasa a la tabla de “muchos”. o en png. . A continuación viene la mejor parte de esta herramienta: la generación del script SQL. Incluso si seleccionamos el botón “Detailed Selection” de cada sección. .Luego nos muestra un resumen de lo que creará. tablas. usuarios. qué tablas deseo realmente exportar. podemos especificar aún más. rutinas y triggers. vistas. por ejemplo. y en la ruta que le hallamos indicado estará un archivo . . Como se podrán dar cuenta Workbench. o sea. la versión comercial proporciona algunas funcionalidades que pueden resultar de interés en algún ámbito. Existen dos versiones del producto. Evidentemente.sql. con nuestro script. resuelve algunas limitantes en la comunidad open source de un buen software front-end para MySQL. en Linux :p. ¿Qué es MySQL WorkBench? MySQL Workbench es una aplicación para el diseño y documentación de bases de datos (sucesora de la aplicación DBDesigner4) pensada para ser usada con el sistema de gestión de bases de datos MySQL (recién adquirido por Sun Microsystems). y sobre todo de una herramienta que provea Forward Engineering. de una manera tan sencilla y bien ilustrada. una es open source y la otra es una versión comercial.Luego finalizar. Digamos que la única limitante de Worlbench es su ausencia en otras plataformas. aunque la versión open source es más que suficiente para la realización de la práctica. y esa es su principal función: primero diseñar el diagrama EER.mysql. y el diagrama EER completo ya se ha realizado en la primera práctica.com/downloads/workbench/5.¿Cómo conseguir la aplicación? Existen versiones para Window.. como se indica a continuación y sobre todo en el punto Normas para la entrega de la práctica.html Mac: http://dev. Como tiene varias limitaciones para representar un diagrama EER completo (no contempla el modelado de categorías. o sea. y todo ello mediante una interface gráfica que permitirá además generar las sentencias DDL de creación de tablas e índices. retículas. este mini-tutorial solo se centra en las caracterísicas necesarias para la realización de la misma. las tablas y sus columnas. al final de este documento. aunque para ello debemos ajustar la herramienta a nuestras necesidades. se utilizará para representar el diagrama del esquema relacional que acompaña a la segunda práctica. Linux y Mac. y para ello usamos una herramienta que realmente está orientada a crear diagramas ER limitados.). vistas e índices de manera automática. Debemos tener presente en todo momento que vamos a añadir tablas y sus propiedades. Los links de descarga son los siguientes: Windows y Linux: http://dev. podrán adaptarse a lo solicitado en la práctica. y obtener un diagrama del esquema relacional.1. implementándolo sobre la herramienta y a partir de él obtener el diagrama del esquema relacional y también las sentencias de creación de tablas. La herramienta podría usarse para realizar un diagrama EER.. aunque en la herramienta . Para ello debemos prescindir de los conceptos del modelado conceptual y centrarnos en los del modelo relacional. por este motivo. forzamos un poco las cosas. con algunas modificaciones. pero la herramienta lo permite. las claves foráneas y a quienes referencian.com/workbench/?p=182 ¿Para qué la usaremos ? Lo que se pretende con el uso de la aplicación es facilitar la realización de la segunda práctica de la asignatura y. Hay que tener en cuenta que para los dos últimos sistemas las versiones son Betas. jerarquías.mysql. Las posibilidades de utilizar diferentes notaciones nos permitirán obtener un diagrama del esquema relacional habitual en cualquier trabajo profesional. incluyendo las claves primarias. que. o sea. veremos algo similar a esto: Figura 1 Para crear el diagrama del esquema relacional necesario en la práctica. pero nunca N a N. Esto nos conducirá al siguiente interfaz: . ¿Cómo crear un diagrama del esquema relacional? Una vez abierta la aplicación.trabajemos sobre el panel 'EER Diagrams'. debemos hacer doble click sobre el icono 'Add Diagram'. Así en el modelo relacional la vinculación entre dos tablas suele ser 1 a N y en algún caso 1 a 1. como si lo que creásemos fuera un nuevo diagrama ER. .Click sobre el incono Insertar Tabla. 2. Obtenemos lo siguiente: .Figura 2 ¿Cómo crear una tabla (una relación en el modelo relacional)? 1..Click en la posición del lienzo en la que queremos ver la tabla. ¿Cómo crear los atributos de una relación? Partiendo de la Figura 4.. en el campo 'Name' se indicará el nombre de la tabla. desplegamos la pestaña Columns: Figura 5 .Figura 3 3. Los campos 'Collation' y 'Engine' son relativos a MySQL y pueden obviarse. Figura 4 En la pestaña 'Table'.Haciendo doble click sobre la tabla se desplegará un menú en la parte inferior del interfaz. 3. para cada tipo de dato no disponible en MySQL. En este caso se eligirá un tipo de dato similar y se cambiará a mano en el script con las sentencias. Datatype: tipo de dato del atributo.Seleccionar la columna que se desea utilizar como clave primaria. puede que existan tipos de datos válidos para Oracle que no lo son para el otro gestor.... NN: añade la restricción NOT NULL para ese atributo.. ¿Cómo indicar que uno o varios atributos son clave primaria? 1. No se debe marcar ya no es una caracterísitca de Oracle. es decir.Abrir la pestaña 'Columns'. Se recomienda ser lo más coherente posible al realizar esta tarea.Column Name: nombre del atributo. elegir siempre el mismo tipo de dato de sustitución.. Esto debe hacerse manualmente sobre los scripts generados ( si así se desea). Default: valor por defecto para el atributo. Para añadir una nueva columna solo es necesario hacer doble click en la fila que va a continuación de la última añadida (señalada con un punto rojo en la imagen).Flags: se utiliza para añadir la restricción de clave primaria (PRIMARY KEY). ¿Cómo se pueden declarar las vinculaciones de clave foránea? . AI: Auto Increment. ColumnDetails.Si se desea definir una clave primaria sobre más de un atributo volver al punto 3. Como la aplicación está pensada para MySQL y la práctica se realizará sobre Oracle. 2. NOTA: la aplicación no permite darle un nombre a la restricción de clave primaria.Hacer doble click sobre la tabla en cuestión.. 4. 5.Marcar la opción PRIMARY KEY.. . dos formas diferentes de crear relaciones entre tablas: a través del menú de tabla o usando el el menú antes propuesto. pues son las vinculaciones que hay entre tablas en el modelo relacional: Figura 6 El calificativo 'identificadora' indica si los atributos que forman parte de la clave foránea (lado N de la relación) deben formar parte también de la clave primaria de dicha entidad. 1:N y N:M) en un ER. En la práctica se usarán solo los 1:N y 1:N.. 3.Doble click sobre la entidad del lado N de la relación.Crear los atributos que van a hacer la función de clave foránea ( si no están definidos ya). Si no existen deben crearse antes de continuar. Obtendremos lo siguiente: . desplegar la pestaña 'Foreing Keys'. a)A través del menú de tabla (recomendado): 1. 4. lo que ocurre si una tabla proviene de un tipo de entidad débil o en el caso de atributos de tablas que provienen de tipos de relación N:M.A continuación se muestra el menú para crear los tipos de relación (1:1. Existen. al menos.Comprobar que existen los atributos en la tabla referenciada por la clave foránea..En el menú de tabla .. 2. Column: columna o columnas que van a formar parte de la clave foránea. 2. On Delete: acciones referenciales para el borrado.Las tablas deben estar creadas. Referenced Table: tabla referenciada por la clave foránea.Figura 7 Foreing Key Name: nombre de la restricción de clave foránea. .. 3..Se elige en el menú de la izquierda el tipo de relación que se desea. b)Usando el menú: 1. On Update: acciones referenciales para la actualización. Foreing Key Options: útil para definir las acciones referenciales..Click en la tabla que representa el lado N de la relación y luego sobre la del lado 1 (esto puede ser al revés dependiendo del sistema operativo). Referenced Column: columna o columnas que van a ser referenciadas por la clave foránea. RTREE. ¿Cómo se crea una vista? . Index Options. Figura 8 Index Name: nombre del índice.. Storage Type: podemos elegir entre BTREE..del punto a). ¿Cómo se gestionan los índices? Para crear un índice haremos doble click sobre la tabla que contiene los atributos y.Los retoques que se deseen hacer sobre la clave foránea se hacen siguiendo el apartado 4. HASH o ninguno de los anteriores. una vez en el menú de tabla.4. desplegaramos la pestaña 'Indexes'. Type: en el menú desplegable elegiremos 'INDEX'. Order: índice ascendente o descendente. Column: marcamos las columnas que formaran parte del índice. NOTA: la aplicación crea índices automáticamente tanto para las claves primarias como para las foráneas. . Doble click sobre la tabla en cuestión.En la Figura 2 se indica el botón sobre el que hay que hacer click para insertar una vista... 3..Elegir la opción 'Forward Engineer SQL CREATE Script.' . ¿Cómo se generan las sentencias SQL? Para generar las sentencias SQL (motivación principal para el uso de la herramienta) realizar los siguientes pasos: 1. 2. 4. Una vez colocada en el lienzo.. ¿Cómo se insertan los datos en las tablas? 1. Desplegar la pestaña 'Inserts' del menú de tabla. si hacemos doble click sobre ella obtenemos lo siguiente: Figura 9 Name: nombre de la vista. DDL: sentencia SQL para la creación de la vista.' Añadir tantas filas como se deseen. Click sobre 'Open Editor. con las extensión .Figura 10 2.sqll). .Marcar las siguientes opciones (Generate INSERT si queremos que genere los INSERT) y elegir un fichero para volcar las sentencias (debe ser un script de SQL. es decir.. . para realizar el ejemplo. LOC VARCHAR2(13) ) .Abrir el fichero *. el reflejo relacional del diagrama entidad relación. debemos partir de un esquema relacional (en vuestro caso será el que hayáis propuesto en la primera entrega de la práctica)): CREATE TABLE DEPT ( DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY. son las siguientes (nótese que el uso que le queremos dar a la herramienta es precisamente obtener las sentencias de creación de tablas pero. 4. Ejemplo práctico Con este ejemplo se pretende hacer una pequeña demostración del uso de la herramienta sobre un caso práctico y de sobra conocido: la base de datos que se utiliza en clase de prácticas.sql generado y retocar las sentencias SQL para adaptarlas al sistema de gestión de base de datos usado en el laboratorio de prácticas. DNAME VARCHAR2(14) . Las sentencias de creación de las tablas. .Figura 11 3.En la siguiente pantalla seleccionar 'Finish' . es decir.. MGR NUMBER(4).Click en el icono señalado con la flecha (inserción tabla) y luego click sobre el lienzo.. Para editar las propiedades de la tabla hacer doble click sobre la misma...Añadir los atributos a la tabla. DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT).CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY. COMM NUMBER(7.1. Figura 12 2..2).En la pestaña 'Columns' añadimos una a una las columnas de la tabla: .En la pestaña 'Table' cambiamos 'table1' por el nombre 'DEPT'. HIREDATE DATE.2.2). JOB VARCHAR2(9). SAL NUMBER(7. ENAME VARCHAR2(10). Para ello haremos lo siguiente: 1. Lo primero que vamos a hacer es crear la table DEPT. 2. 2. A continuación repetiremos el proceso pero para crear la tabla EMP. sobre el script de creación de tablas y a mano. esto ha de hacer se con posterioridad. Como dijimos con anterioridad. Además. la aplicación no permite nombrar las restricciones de clave primaria. 1. Es necesario acordarse de los tipos de sustitución utilizados para cambiarlos posteriormente en el script generado. añadimos las columnas e indicamos la restricción de clave primaria. hemos elegido el INT como tipo de dato de sustitución.Figura 13 Nótese que hemos indicado que la columna DEPTO es clave primaria (al indicar que es clave primaria el checkbox de NN (Not Null) se marca automáticamente).. El resultado es el siguiente: .Creamos la tabla. como la aplicación no contempla la representación del tipo de dato NUMBER. Para añadir la restricción de clave foránea en la tabla EMP tenemos dos opciones: Opción A: 2. la tabla a la cual hace referencia dicha clave (DEPT). Indicaremos el nombre de la restricción (FK_DEPTNO).. Figura 15 . 2..1.Figura 14 2..Haciendo doble click sobre la tabla EMP y seleccionando la pestaña 'Foreing keys'.2.Añadir una columna más a la tabla con el nombre de DEPT. 1.Indicamos cual es la/las columnas que forman la clave marcando los checkboxes necesarios en Column (en este caso DEPT) e indicaremos la columna de la tabla EMP al a cual referenciamos (DEPTNO). Figura 16 En la sentencias de creación de tablas del ejemplo no se indican las acciones referenciales para la clave foránea.. El resultado es el que sigue: . Opción B: 2.3.Seleccionar en el menú de la izquierda lo que se indica con una flecha en el dibujo y hacer click..2. primero sobre la tabla EMP y luego sobre la DEPTO. para ambos casos es el siguiente: Figura 18 .3 de la Opción A eligiendo los nombres adecuados para cada columna (cambiar DEPT_DEPTO por DEPT). El resultado..2.Continuamos en el punto 2.Figura 17 2. 2. Debe entenderse que lo que aparece en el panel ''EER Diagrams' son dibujos activos. Para que no aparezcan los tipos de datos en el diagrama. Para una mejor presentación de la práctica. se realizán los siguientes ajustes: 1. situado en el panel de la derecha. pregunta si se desea eliminar el correspondiente objeto de la base de datos al eliminar la figura. al eliminar una tabla de un diagrama con 'Botón derecho > Delete'. debe irse a 'Model > Model Options'. el diagrama ya apareceá sin los tipos de datos. Por ello.Normas para la entrega de la práctica El ejemplo anterior se realizó con las opciones defectivas de la herramienta. Puede eliminarse una figura y mantener la tabla que representaba. 3. De esta forma el diagrama quedaría semejante a: . 4. por ejemplo con la notación gráfica conocida como 'Crow's foot' o la generación autoática del nombre del atributo que será clave foránea. desactivar 'Use Global Settings' y en 'Diagrams' desactivar 'Show Columns Types'. En una visualización posterior. Una tabla existente en 'Catalog' puede incorporarse a un diagrama seleccionándola y arrastrándola al diagrama. Elegir 'Model > Object Notation > Workbench (Simplified)' para que no se incluyan los índices en el diagrama. Elegir 'Model > Relationship Notation > Connect to Columns' para que las conexiones se representen claramente entre los atributos que las poseen. pero que una cosa es que en un diagrama del esquema relacional no aparezca una tabla y que la tabla exista en la base de datos. lo que la herramienta denomina 'Catalog'. de las que la clave foránea forma parte de la clave primaria (líneas continuas).10 (existe un paquete deb que instala la versión 5. Hay que ir a 'Model > Diagram Properties' y fijar la anchura y altura a una página o al menos cambiar el cero que .Figura 19 Esta es la manera en la que hay que entregar el diagrama del esquema relacional en la práctica. pueden aparecer todas las tablas 'pegadas' a la fila superior y sin posibilidad de ubicarlas más abajo.9 Beta) se han detectado algunos comportamientos de la herramienta que se indican por orientación y para evitar pérdida de tiempo (no se comprobó su funcionamiento en otros sistemas operativos): 1. Asimismo está diferenciadas las vinculaciones de clave foránea normales (líneas discontinuas). en formato PDF. Obsérvese que están diferenciadas las claves primarias (una llave). las foráneas (rombo rojo). Trabajando sobre Ubuntu 8. Este comportamiento resulta molesto porque desfigura el dibujo y no se soluciona intentando ajustar con 'Arrange > Autolayout'. Al abrir un diagrama previamente almacenado.1. los atributos normales (rombo azul) y los atributos no nulos (rombo relleno de color azul). aparece en ellas. en local. 3. entre ellos MySQL Workbench. 2. Para saber más En la web de MySQL hay diversa información sobre sus productos. Después de esto ya se pueden mover las figuras o utilizar 'Arrange > Autolayout'. La primera opción para definir claves foráneas ha funcionado en Ubuntu mejor que la segunda. que también puedes encontrar en formato PDF. . Es recomendable guardar el trabajo con 'Ctrl+S' o 'File > Save' a medida que se va realizando. En ocasiones se ha comprobado que la herramienta acaba su ejecución de manera sorpresiva y anómala. En particular hay un manual en línea. y no llevar una sorpresa desagradable posteriormente.
Report "Usando MySQL Workbench Para Diseñar Y Crear Una Base De"