Documentos de Académico
Documentos de Profesional
Documentos de Cultura
html
Qu es MySQL WorkBench? MySQL Workbench es una aplicacin para el diseo y documentacin de bases de datos (sucesora de la aplicacin DBDesigner4) pensada para ser usada con el sistema de gestin de bases de datos MySQL (recin adquirido por Sun Microsystems). Existen dos versiones del producto, una es open source y la otra es una versin comercial. Evidentemente, la versin comercial proporciona algunas funcionalidades que pueden resultar de inters en algn mbito, aunque la versin open source es ms que suciente para la realizacin de la prctica. Cmo conseguir la aplicacin? Existen versiones para Window, Linux y Mac. Hay que tener en cuenta que para los dos ltimos sistemas las versiones son Betas. Los links de descarga son los siguientes: Windows y Linux: http://dev.mysql.com/downloads/workbench/5.1.html Mac: http://dev.mysql.com/workbench/?p=182
Para qu la usaremos ? Lo que se pretende con el uso de la aplicacin es facilitar la realizacin de la segunda prctica de la asignatura y, por este motivo, este mini-tutorial solo se centra en las caractersicas necesarias para la realizacin de la misma. La herramienta podra usarse para realizar un diagrama EER, y esa es su principal funcin: primero disear el diagrama EER, implementndolo sobre la herramienta y a partir de l obtener el diagrama del esquema relacional y tambin las sentencias de creacin de tablas, vistas e ndices de manera automtica. Como tiene varias limitaciones para representar un diagrama EER completo (no contempla el modelado de categoras, jerarquas, retculas...), y el diagrama EER completo ya se ha realizado en la primera prctica, se utilizar para representar el diagrama del esquema relacional que acompaa a la segunda prctica, o sea, las tablas y sus columnas, incluyendo las claves primarias, las claves forneas y a quienes referencian, y todo ello mediante una interface grca que permitir adems generar las sentencias DDL de creacin de tablas e ndices, que, con algunas modicaciones, podrn adaptarse a lo solicitado en la prctica.
1 of 11
07/03/12 18:47
Cmo crear un diagrama del esquema relacional? Una vez abierta la aplicacin, veremos algo similar a esto:
Figura 1 Para crear el diagrama del esquema relacional necesario en la prctica, debemos hacer doble click sobre el icono 'Add Diagram', como si lo que cresemos fuera un nuevo diagrama ER. Esto nos conducir al siguiente interfaz:
2 of 11
07/03/12 18:47
Figura 2
Cmo crear una tabla (una relacin en el modelo relacional)? 1.- Click sobre el incono Insertar Tabla. 2.- Click en la posicin del lienzo en la que queremos ver la tabla. Obtenemos lo siguiente:
Figura 3 3.- Haciendo doble click sobre la tabla se desplegar un men en la parte inferior del interfaz.
Figura 4 En la pestaa 'Table', en el campo 'Name' se indicar el nombre de la tabla. Los campos 'Collation' y 'Engine' son relativos a MySQL y pueden obviarse.
Cmo crear los atributos de una relacin? Partiendo de la Figura 4, desplegamos la pestaa Columns:
3 of 11
07/03/12 18:47
Figura 5 Column Name: nombre del atributo. Datatype: tipo de dato del atributo. Como la aplicacin est pensada para MySQL y la prctica se realizar sobre Oracle, puede que existan tipos de datos vlidos para Oracle que no lo son para el otro gestor. En este caso se eligir un tipo de dato similar y se cambiar a mano en el script con las sentencias. Se recomienda ser lo ms coherente posible al realizar esta tarea, es decir, para cada tipo de dato no disponible en MySQL, elegir siempre el mismo tipo de dato de sustitucin. NN: aade la restriccin NOT NULL para ese atributo. AI: Auto Increment. No se debe marcar ya no es una caractersitca de Oracle. Default: valor por defecto para el atributo. ColumnDetails.Flags: se utiliza para aadir la restriccin de clave primaria (PRIMARY KEY).
Para aadir una nueva columna solo es necesario hacer doble click en la la que va a continuacin de la ltima aadida (sealada con un punto rojo en la imagen).
Cmo indicar que uno o varios atributos son clave primaria? 1.- Hacer doble click sobre la tabla en cuestin. 2.- Abrir la pestaa 'Columns'. 3.- Seleccionar la columna que se desea utilizar como clave primaria. 4.- Marcar la opcin PRIMARY KEY. 5.- Si se desea denir una clave primaria sobre ms de un atributo volver al punto 3.- . NOTA: la aplicacin no permite darle un nombre a la restriccin de clave primaria. Esto debe hacerse manualmente sobre los scripts generados ( si as se desea).
Cmo se pueden declarar las vinculaciones de clave fornea? A continuacin se muestra el men para crear los tipos de relacin (1:1, 1:N y N:M) en un ER. En la prctica se usarn solo los 1:N y 1:N, pues son las vinculaciones que hay entre tablas en el modelo relacional:
Figura 6 El calicativo 'identicadora' indica si los atributos que forman parte de la clave
4 of 11
07/03/12 18:47
Figura 7 Foreing Key Name: nombre de la restriccin de clave fornea. Referenced Table: tabla referenciada por la clave fornea. Column: columna o columnas que van a formar parte de la clave fornea. Referenced Column: columna o columnas que van a ser referenciadas por la clave fornea. Foreing Key Options: til para denir las acciones referenciales. On Update: acciones referenciales para la actualizacin. On Delete: acciones referenciales para el borrado.
b)Usando el men: 1.- Las tablas deben estar creadas. 2.- Se elige en el men de la izquierda el tipo de relacin que se desea. 3.- Click en la tabla que representa el lado N de la relacin y luego sobre la del lado 1 (esto puede ser al revs dependiendo del sistema operativo). 4.- Los retoques que se deseen hacer sobre la clave fornea se hacen siguiendo el apartado 4.- del punto a).
Cmo se gestionan los ndices? Para crear un ndice haremos doble click sobre la tabla que contiene los atributos y, una vez en el men de tabla, desplegaramos la pestaa 'Indexes'.
5 of 11
07/03/12 18:47
Figura 8 Index Name: nombre del ndice. Type: en el men desplegable elegiremos 'INDEX'. Column: marcamos las columnas que formaran parte del ndice. Order: ndice ascendente o descendente. Index Options. Storage Type: podemos elegir entre BTREE, RTREE, HASH o ninguno de los anteriores. NOTA: la aplicacin crea ndices automticamente tanto para las claves primarias como para las forneas.
Cmo se crea una vista? En la Figura 2 se indica el botn sobre el que hay que hacer click para insertar una vista. Una vez colocada en el lienzo, si hacemos doble click sobre ella obtenemos lo siguiente:
Figura 9 Name: nombre de la vista. DDL: sentencia SQL para la creacin de la vista.
Cmo se insertan los datos en las tablas? 1. 2. 3. 4. Doble click sobre la tabla en cuestin. Desplegar la pestaa 'Inserts' del men de tabla. Click sobre 'Open Editor...' Aadir tantas las como se deseen.
Cmo se generan las sentencias SQL? Para generar las sentencias SQL (motivacin principal para el uso de la herramienta) realizar los siguientes pasos: 1.- Elegir la opcin 'Forward Engineer SQL CREATE Script...'
6 of 11
07/03/12 18:47
Figura 10 2.- Marcar las siguientes opciones (Generate INSERT si queremos que genere los INSERT) y elegir un chero para volcar las sentencias (debe ser un script de SQL, es decir, con las extensin .sqll).
Figura 11 3.- En la siguiente pantalla seleccionar 'Finish' . 4.- Abrir el chero *.sql generado y retocar las sentencias SQL para adaptarlas al sistema de gestin de base de datos usado en el laboratorio de prcticas. Ejemplo prctico Con este ejemplo se pretende hacer una pequea demostracin del uso de la herramienta sobre un caso prctico y de sobra conocido: la base de datos que se utiliza en clase de prcticas. Las sentencias de creacin de las tablas, es decir, el reejo relacional del diagrama entidad relacin, son las siguientes (ntese que el uso que le queremos dar a la herramienta es precisamente obtener las sentencias de creacin de tablas pero, para realizar el ejemplo, debemos partir de un esquema relacional (en vuestro caso ser el que hayis propuesto en la primera entrega de la prctica)):
CREATE TABLE DEPT ( DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14) , LOC VARCHAR2(13) ) ; CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
7 of 11
07/03/12 18:47
Figura 12 2.- Aadir los atributos a la tabla. 2.1.- En la pestaa 'Table' cambiamos 'table1' por el nombre 'DEPT'. 2.2.- En la pestaa 'Columns' aadimos una a una las columnas de la tabla:
Figura 13 Ntese que hemos indicado que la columna DEPTO es clave primaria (al indicar que es clave primaria el checkbox de NN (Not Null) se marca automticamente). Como dijimos con anterioridad, la aplicacin no permite nombrar las restricciones de clave primaria, esto ha de hacer se con posterioridad, sobre el script de creacin de tablas y a mano. Adems, como la aplicacin no contempla la representacin del tipo de dato NUMBER, hemos elegido el INT como tipo de dato de sustitucin. Es necesario acordarse de los tipos de sustitucin utilizados para cambiarlos posteriormente en el script generado. A continuacin repetiremos el proceso pero para crear la tabla EMP . 1.- Creamos la tabla, aadimos las columnas e indicamos la restriccin de clave primaria. El resultado es el siguiente:
Figura 14
2.- Para aadir la restriccin de clave fornea en la tabla EMP tenemos dos opciones:
Opcin A:
2.1.- Aadir una columna ms a la tabla con el nombre de DEPT.
8 of 11
07/03/12 18:47
Figura 15 2.3.- 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 creacin de tablas del ejemplo no se indican las acciones referenciales para la clave fornea.
Opcin B:
2.1.- Seleccionar en el men de la izquierda lo que se indica con una echa en el dibujo y hacer click, primero sobre la tabla EMP y luego sobre la DEPTO. El resultado es el que sigue:
Figura 17 2.2.- Continuamos en el punto 2.3 de la Opcin A eligiendo los nombres adecuados para cada columna (cambiar DEPT_DEPTO por DEPT).
9 of 11
07/03/12 18:47
Figura 18
Normas para la entrega de la prctica El ejemplo anterior se realiz con las opciones defectivas de la herramienta, por ejemplo con la notacin grca conocida como 'Crow's foot' o la generacin autotica del nombre del atributo que ser clave fornea. Para una mejor presentacin de la prctica, se realizn los siguientes ajustes: 1. Elegir 'Model > Object Notation > Workbench (Simplied)' para que no se incluyan los ndices en el diagrama. 2. Elegir 'Model > Relationship Notation > Connect to Columns' para que las conexiones se representen claramente entre los atributos que las poseen. 3. Para que no aparezcan los tipos de datos en el diagrama, debe irse a 'Model > Model Options', desactivar 'Use Global Settings' y en 'Diagrams' desactivar 'Show Columns Types'. En una visualizacin posterior, el diagrama ya aparece sin los tipos de datos. 4. Debe entenderse que lo que aparece en el panel ''EER Diagrams' son dibujos activos, 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', situado en el panel de la derecha. Por ello, al eliminar una tabla de un diagrama con 'Botn derecho > Delete', pregunta si se desea eliminar el correspondiente objeto de la base de datos al eliminar la gura. Puede eliminarse una gura y mantener la tabla que representaba. Una tabla existente en 'Catalog' puede incorporarse a un diagrama seleccionndola y arrastrndola al diagrama. De esta forma el diagrama quedara semejante a:
Figura 19
Esta es la manera en la que hay que entregar el diagrama del esquema relacional en la prctica, en formato PDF. Obsrvese que estn diferenciadas las claves primarias (una llave), las forneas (rombo rojo), los atributos normales (rombo azul) y los atributos no nulos (rombo relleno de color azul). Asimismo est diferenciadas las vinculaciones de clave fornea normales (lneas discontinuas), de las que la clave fornea forma parte de la clave primaria (lneas continuas). Trabajando sobre Ubuntu 8.10 (existe un paquete deb que instala la versin 5.1.9 Beta) se han detectado algunos comportamientos de la herramienta que se indican por orientacin y para evitar prdida de tiempo (no se comprob su funcionamiento en otros sistemas operativos): 1. Al abrir un diagrama previamente almacenado, pueden aparecer todas las tablas
10 of 11
07/03/12 18:47
Para saber ms En la web de MySQL hay diversa informacin sobre sus productos, entre ellos MySQL Workbench. En particular hay un manual en lnea, que tambin puedes encontrar en formato PDF, en local.
11 of 11
07/03/12 18:47