Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Minitutorial de MySQL Workbench
Minitutorial de MySQL Workbench
Qu es MySQL WorkBench?
Para qu la usaremos ?
Ejemplo prctico.
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 suficiente para la realizacin de la prctica.
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 grfica que permitir adems generar las sentencias DDL de creacin de tablas e ndices, que, con
algunas modificaciones, podrn adaptarse a lo solicitado en la prctica.
Las posibilidades de utilizar diferentes notaciones nos permitirn obtener un diagrama del esquema relacional habitual en cualquier trabajo
profesional, aunque para ello debemos ajustar la herramienta a nuestras necesidades, como se indica a continuacin y sobre todo en el punto
Normas para la entrega de la prctica, al final de este documento.
Debemos tener presente en todo momento que vamos a aadir tablas y sus propiedades, y obtener un diagrama del esquema relacional, y para ello
usamos una herramienta que realmente est orientada a crear diagramas ER limitados, o sea, forzamos un poco las cosas, pero la herramienta lo
permite. Para ello debemos prescindir de los conceptos del modelado conceptual y centrarnos en los del modelo relacional, aunque en la
herramienta trabajemos sobre el panel 'EER Diagrams'. As en el modelo relacional la vinculacin entre dos tablas suele ser 1 a N y en algn caso 1
a 1, pero nunca N a N.
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.
Figura 5
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.
Para aadir una nueva columna solo es necesario hacer doble click en la fila que va a continuacin de la ltima aadida (sealada con un punto rojo
en la imagen).
5.- Si se desea definir 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 calificativo 'identificadora' indica si los atributos que forman parte de la clave fornea (lado N de la relacin) deben formar parte tambin de la
clave primaria de dicha entidad, lo que ocurre si una tabla proviene de un tipo de entidad dbil o en el caso de atributos de tablas que provienen de
tipos de relacin N:M.
Existen, al menos, dos formas diferentes de crear relaciones entre tablas: a travs del men de tabla o usando el el men antes propuesto.
2.- Crear los atributos que van a hacer la funcin de clave fornea ( si no estn definidos ya).
3.- Comprobar que existen los atributos en la tabla referenciada por la clave fornea. Si no existen deben crearse antes de continuar.
Figura 7
Referenced Column: columna o columnas que van a ser referenciadas por la clave fornea.
b)Usando el men:
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).
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'.
Figura 8
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
Para generar las sentencias SQL (motivacin principal para el uso de la herramienta) realizar los siguientes pasos:
2.- 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, con las extensin .sqll).
Figura 11
4.- Abrir el fichero *.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 reflejo 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)):
Lo primero que vamos a hacer es crear la table DEPT. Para ello haremos lo siguiente:
1.- Click en el icono sealado con la flecha (insercin tabla) y luego click sobre el lienzo. Para editar las propiedades de la tabla hacer doble click
sobre la misma.
Figura 12
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.
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.
2.2.- Haciendo doble click sobre la tabla EMP y seleccionando la pestaa 'Foreing keys'. Indicaremos el nombre de la restriccin (FK_DEPTNO), la
tabla a la cual hace referencia dicha clave (DEPT).
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 flecha 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).
El ejemplo anterior se realiz con las opciones defectivas de la herramienta, por ejemplo con la notacin grfica 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 (Simplified)' 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 figura. Puede
eliminarse una figura y mantener la tabla que representaba. Una tabla existente en 'Catalog' puede
incorporarse a un diagrama seleccionndola y arrastrndola al diagrama.
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 'pegadas' a la fila
superior y sin posibilidad de ubicarlas ms abajo. Este comportamiento resulta molesto porque
desfigura el dibujo y no se soluciona intentando ajustar con 'Arrange > Autolayout'. Hay que ir a
'Model > Diagram Properties' y fijar la anchura y altura a una pgina o al menos cambiar el cero
que aparece en ellas. Despus de esto ya se pueden mover las figuras o utilizar 'Arrange >
Autolayout'.
2. En ocasiones se ha comprobado que la herramienta acaba su ejecucin de manera sorpresiva y
anmala. Es recomendable guardar el trabajo con 'Ctrl+S' o 'File > Save' a medida que se va
realizando, y no llevar una sorpresa desagradable posteriormente.
3. La primera opcin para definir claves forneas ha funcionado en Ubuntu mejor que la segunda.
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.