Sei sulla pagina 1di 10

Tutorial MySQL Workbench (con normas de entrega de la prctica

Pgina 1 de 10

Minitutorial de MySQL Workbench (con normas de entrega de la prctica)


Qu es MySQL WorkBench? Cmo conseguir la aplicacin? Para qu la usaremos ? Cmo crear un diagrama del esquema relacional? Cmo crear una a!la "una relacin en el modelo relacional#? Cmo crear los a ri!u os de una relacin? Cmo indicar que uno o $arios a ri!u os son cla$e primaria? Cmo se pueden declarar las $inculaciones de cla$e %or&nea? Cmo se ges ionan los 'ndices? Cmo se crea una $is a? Cmo se inser an los da os en las a!las? Cmo se generan las sen encias SQL? ()emplo pr&c ico* +escarga el e)emplo pr&c ico* ,ormas para la en rega de la pr&c ica* +escarga el e)emplo pr&c ico a)us ado* Para sa!er m&s*

Qu es MySQL WorkBench MySQL Work!ench es una aplicacin para el dise-o y documen acin de !ases de da os "sucesora de la aplicacin +B+esigner.# pensada para ser usada con el sis ema de ges in de !ases de da os MySQL "recin adquirido por Sun Microsys ems#* (/is en dos $ersiones del produc o0 una es open source y la o ra es una $ersin comercial* ($iden emen e0 la $ersin comercial proporciona algunas %uncionalidades que pueden resul ar de in ers en alg1n &m!i o0 aunque la $ersin open source es m&s que su%icien e para la reali2acin de la pr&c ica* !"mo conseguir la aplicaci"n (/is en $ersiones para Windo30 Linu/ y Mac* 4ay que ener en cuen a que para los dos 1l imos sis emas las $ersiones son Be as* Los links de descarga son los siguien es5 Windo3s y Linu/5 h p566de$*mysql*com6do3nloads63ork!ench67*8*h ml Mac5 h p566de$*mysql*com63ork!ench6?p98:;

#ara $u la usaremos Lo que se pre ende con el uso de la aplicacin es %acili ar la reali2acin de la segunda pr&c ica de la asigna ura y0 por es e mo i$o0 es e mini< u orial solo se cen ra en las carac er'sicas necesarias para la reali2acin de la misma* La herramien a podr'a usarse para reali2ar un diagrama ((=0 y esa es su principal %uncin5 primero dise-ar el diagrama ((=0 implemen &ndolo so!re la herramien a y a par ir de l o! ener el diagrama del esquema relacional y am!in las sen encias de creacin de a!las0 $is as e 'ndices de manera au om& ica* Como iene $arias limi aciones para represen ar un diagrama ((= comple o "no con empla el modelado de ca egor'as0 )erarqu'as0 re 'culas***#0 y el diagrama ((= comple o ya se ha reali2ado en la primera pr&c ica0 se u ili2ar& para represen ar el diagrama del esquema relacional que acompa-a a la segunda pr&c ica0 o sea0 las a!las y sus columnas0 incluyendo las cla$es primarias0 las cla$es %or&neas y a quienes re%erencian0 y odo ello median e una in er%ace gr&%ica que permi ir& adem&s generar las sen encias ++L de creacin de a!las e 'ndices0 que0 con algunas modi%icaciones0 podr&n adap arse a lo solici ado en la pr&c ica* Las posi!ilidades de u ili2ar di%eren es no aciones nos permi ir&n o! ener un diagrama del esquema relacional ha!i ual en cualquier ra!a)o pro%esional0 aunque para ello de!emos a)us ar la herramien a a nues ras necesidades0 como se indica a con inuacin y so!re odo en el pun o ,ormas para la en rega de la pr&c ica0 al %inal de es e documen o*

http$""coba%dc%&i%udc%es"'bd"bd!"MySQLW("tutorialW(%html

!0"10"!01#

Tutorial MySQL Workbench (con normas de entrega de la prctica

Pgina ! de 10

+e!emos ener presen e en odo momen o que $amos a a-adir a!las y sus propiedades0 y o! ener un diagrama del esquema relacional0 y para ello usamos una herramien a que realmen e es & orien ada a crear diagramas (= limi ados0 o sea0 %or2amos un poco las cosas0 pero la herramien a lo permi e* Para ello de!emos prescindir de los concep os del modelado concep ual y cen rarnos en los del modelo relacional0 aunque en la herramien a ra!a)emos so!re el panel >((= +iagrams>* ?s' en el modelo relacional la $inculacin en re dos a!las suele ser 8 a , y en alg1n caso 8 a 80 pero nunca , a ,*

!"mo crear un diagrama del es$uema relacional @na $e2 a!ier a la aplicacin0 $eremos algo similar a es o5

Figura 1 Para crear el diagrama del esquema relacional necesario en la pr&c ica0 de!emos hacer do!le click so!re el icono >?dd +iagram>0 como si lo que cre&semos %uera un nue$o diagrama (=* (s o nos conducir& al siguien e in er%a25

Figura 2

http$""coba%dc%&i%udc%es"'bd"bd!"MySQLW("tutorialW(%html

!0"10"!01#

Tutorial MySQL Workbench (con normas de entrega de la prctica

Pgina # de 10

!"mo crear una tabla (una relaci"n en el modelo relacional) 8*< Click so!re el incono Anser ar Ba!la* ;*< Click en la posicin del lien2o en la que queremos $er la a!la* C! enemos lo siguien e5

Figura 3 D*< 4aciendo do!le click so!re la a!la se desplegar& un men1 en la par e in%erior del in er%a2*

Eigura . (n la pes a-a >Ba!le>0 en el campo >,ame> se indicar& el nom!re de la a!la* Los campos >Colla ion> y >(ngine> son rela i$os a MySQL y pueden o!$iarse*

!"mo crear los atributos de una relaci"n Par iendo de la Eigura .0 desplegamos la pes a-a Columns5

Figura 5 !olumn %ame& nom!re del a ri!u o* 'atatype& ipo de da o del a ri!u o* Como la aplicacin es & pensada para MySQL y la pr&c ica se reali2ar& so!re Cracle0 puede que e/is an ipos de da os $&lidos para Cracle que no lo son para el o ro ges or* (n es e caso se eligir& un ipo de da o similar y se cam!iar& a mano en el scrip con las sen encias* Se recomienda ser lo m&s coheren e posi!le al reali2ar es a area0 es decir0 para cada ipo de da o no disponi!le en MySQL0 elegir siempre el mismo ipo de da o de sus i ucin* %%& a-ade la res riccin ,CB ,@LL para ese a ri!u o* ()& ?u o Ancremen * ,o se de!e marcar ya no es una carac er'si ca de Cracle* 'e*ault& $alor por de%ec o para el a ri!u o* !olumn'etails+,lags& se u ili2a para a-adir la res riccin de cla$e primaria "P=AM?=F G(F#*

Para a-adir una nue$a columna solo es necesario hacer do!le click en la %ila que $a a con inuacin de la 1l ima a-adida "se-alada con un pun o ro)o en la imagen#*

!"mo indicar $ue uno o -arios atributos son cla-e primaria 8*< 4acer do!le click so!re la a!la en cues in* ;*< ?!rir la pes a-a >Columns>* D*< Seleccionar la columna que se desea u ili2ar como cla$e primaria* .*< Marcar la opcin P=AM?=F G(F*

http$""coba%dc%&i%udc%es"'bd"bd!"MySQLW("tutorialW(%html

!0"10"!01#

Tutorial MySQL Workbench (con normas de entrega de la rctica!

Pgina 4 de 10

7*< Si se desea de%inir una cla$e primaria so!re m&s de un a ri!u o $ol$er al pun o D*< * NOTA: la aplicacin no permite darle un nombre a la restriccin de clave primaria. Esto debe acerse manualmente sobre los scripts generados ! si as" se desea#.

!"mo se pueden declarar las -inculaciones de cla-e *ornea ? con inuacin se mues ra el men1 para crear los ipos de relacin "8580 85, y ,5M# en un (=* (n la pr&c ica se usar&n solo los 85, y 85,0 pues son las $inculaciones que hay en re a!las en el modelo relacional5

Figura $ (l cali%ica i$o >iden i%icadora> indica si los a ri!u os que %orman par e de la cla$e %or&nea "lado , de la relacin# de!en %ormar par e am!in de la cla$e primaria de dicha en idad0 lo que ocurre si una a!la pro$iene de un ipo de en idad d!il o en el caso de a ri!u os de a!las que pro$ienen de ipos de relacin ,5M* (/is en0 al menos0 dos %ormas di%eren es de crear relaciones en re a!las5 a ra$s del men1 de a!la o usando el el men1 an es propues o* a#? ra$s del men1 de a!la "recomendado#5 8*< +o!le click so!re la en idad del lado , de la relacin* ;*< Crear los a ri!u os que $an a hacer la %uncin de cla$e %or&nea " si no es &n de%inidos ya#* D*< Compro!ar que e/is en los a ri!u os en la a!la re%erenciada por la cla$e %or&nea* Si no e/is en de!en crearse an es de con inuar* .*< (n el men1 de a!la 0 desplegar la pes a-a >Eoreing Geys>* C! endremos lo siguien e5

Figura % ,oreing .ey %ame& nom!re de la res riccin de cla$e %or&nea* /e*erenced 0able& a!la re%erenciada por la cla$e %or&nea* !olumn& columna o columnas que $an a %ormar par e de la cla$e %or&nea* /e*erenced !olumn& columna o columnas que $an a ser re%erenciadas por la cla$e %or&nea* ,oreing .ey 1ptions& 1 il para de%inir las acciones re%erenciales* 1n 2pdate& acciones re%erenciales para la ac uali2acin* 1n 'elete& acciones re%erenciales para el !orrado*

!#@sando el men15 8*< Las a!las de!en es ar creadas*

htt %##coba&dc&'i&udc&es#(bd#bd"#MySQLW)#tutorialW)&html

"0#10#"01$

Tutorial MySQL Workbench (con normas de entrega de la rctica!

Pgina 5 de 10

;*< Se elige en el men1 de la i2quierda el ipo de relacin que se desea* D*< Click en la a!la que represen a el lado , de la relacin y luego so!re la del lado 8 "es o puede ser al re$s dependiendo del sis ema opera i$o#* .*< Los re oques que se deseen hacer so!re la cla$e %or&nea se hacen siguiendo el apar ado .*< del pun o a#*

!"mo se gestionan los 3ndices Para crear un 'ndice haremos do!le click so!re la a!la que con iene los a ri!u os y0 una $e2 en el men1 de a!la0 desplegaramos la pes a-a >Ande/es>*

Figura & )nde4 %ame& nom!re del 'ndice* 0ype& en el men1 desplega!le elegiremos >A,+(H>* !olumn& marcamos las columnas que %ormaran par e del 'ndice* 1rder& 'ndice ascenden e o descenden e* )nde4 1ptions+ Storage 0ype& podemos elegir en re BB=((0 =B=((0 4?S4 o ninguno de los an eriores* NOTA: la aplicacin crea "ndices autom'ticamente tanto para las claves primarias como para las (or'neas.

!"mo se crea una -ista (n la Eigura ; se indica el !o n so!re el que hay que hacer click para inser ar una $is a* @na $e2 colocada en el lien2o0 si hacemos do!le click so!re ella o! enemos lo siguien e5

Figura ) %ame& nom!re de la $is a* ''L& sen encia SQL para la creacin de la $is a*

!"mo se insertan los datos en las tablas 8* ;* D* .* +o!le click so!re la a!la en cues in* +esplegar la pes a-a >Anser s> del men1 de a!la* Click so!re >Cpen (di or***> ?-adir an as %ilas como se deseen*

!"mo se generan las sentencias SQL

htt %##coba&dc&'i&udc&es#(bd#bd"#MySQLW)#tutorialW)&html

"0#10#"01$

Tutorial MySQL Workbench (con normas de entrega de la rctica!

Pgina 6 de 10

Para generar las sentencias SQL (motivacin principal para el uso de la herramienta) realizar los siguientes pasos: 1.- Elegir la opcin !or"ard Engineer SQL #$E%&E Script...

Figura 10 '.- (arcar las siguientes opciones ()enerate *+SE$& si ,ueremos ,ue genere los *+SE$&) - elegir un .ichero para volcar las sentencias (de/e ser un script de SQL0 es decir0 con las e1tensin .s,ll).

Figura 11 2.- En la siguiente pantalla seleccionar !inish . 3.- %/rir el .ichero 4.s,l generado - retocar las sentencias SQL para adaptarlas al sistema de gestin de /ase de datos usado en el la/oratorio de pr5cticas. Ejemplo prctico #on este e6emplo se pretende hacer una pe,ue7a demostracin del uso de la herramienta so/re un caso pr5ctico - de so/ra conocido: la /ase de datos ,ue se utiliza en clase de pr5cticas. Las sentencias de creacin de las ta/las0 es decir0 el re.le6o relacional del diagrama entidad relacin0 son las siguientes (ntese ,ue el uso ,ue le ,ueremos dar a la herramienta es precisamente o/tener las sentencias de creacin de ta/las pero0 para realizar el e6emplo0 de/emos partir de un es,uema relacional (en vuestro caso ser5 el ,ue ha-5is propuesto en la primera entrega de la pr5ctica)):
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( ), M!R NUMBER(4), HIREDATE DATE, SAL NUMBER(",2), COMM NUMBER(",2), DEPTNO NUMBER(2) CONSTRAINT #K_DEPTNO RE#ERENCES DEPT);

htt %##coba&dc&'i&udc&es#(bd#bd"#MySQLW)#tutorialW)&html

"0#10#"01$

Tutorial MySQL Workbench (con normas de entrega de la rctica!

Pgina 7 de 10

Lo primero ,ue vamos a hacer es crear la ta/le 8EP&. Para ello haremos lo siguiente: 1.- #lic9 en el icono se7alado con la .lecha (insercin ta/la) - luego clic9 so/re el lienzo. Para editar las propiedades de la ta/la hacer do/le clic9 so/re la misma.

Figura 12 '.- %7adir los atri/utos a la ta/la. '.1.- En la pesta7a &a/le cam/iamos ta/le1 por el nom/re 8EP& . '.'.- En la pesta7a #olumns a7adimos una a una las columnas de la ta/la:

Figura 13 +tese ,ue hemos indicado ,ue la columna 8EP&: es clave primaria (al indicar ,ue es clave primaria el chec9/o1 de ++ (+ot +ull) se marca autom5ticamente). #omo di6imos con anterioridad0 la aplicacin no permite nom/rar las restricciones de clave primaria0 esto ha de hacer se con posterioridad0 so/re el script de creacin de ta/las - a mano. %dem5s0 como la aplicacin no contempla la representacin del tipo de dato +;(<E$0 hemos elegido el *+& como tipo de dato de sustitucin. Es necesario acordarse de los tipos de sustitucin utilizados para cam/iarlos posteriormente en el script generado. % continuacin repetiremos el proceso pero para crear la ta/la E(P. 1.- #reamos la ta/la0 a7adimos las columnas e indicamos la restriccin de clave primaria. El resultado es el siguiente:

Figura 14

'.- Para a7adir la restriccin de clave .or5nea en la ta/la E(P tenemos dos opciones:

Opcin A:
'.1.- %7adir una columna m5s a la ta/la con el nom/re de 8EP&.

htt %##coba&dc&'i&udc&es#(bd#bd"#MySQLW)#tutorialW)&html

"0#10#"01$

Tutorial MySQL Workbench (con normas de entrega de la rctica!

Pgina 8 de 10

'.'.- =aciendo do/le clic9 so/re la ta/la E(P - seleccionando la pesta7a !oreing 9e-s . *ndicaremos el nom/re de la restriccin (!>?8EP&+:)0 la ta/la a la cual hace re.erencia dicha clave (8EP&).

Figura 15 '.2.- *ndicamos cual es la@las columnas ,ue .orman la clave marcando los chec9/o1es necesarios en #olumn (en este caso 8EP&) e indicaremos la columna de la ta/la E(P al a cual re.erenciamos (8EP&+:).

Figura 16 En la sentencias de creacin de ta/las del e6emplo no se indican las acciones re.erenciales para la clave .or5nea.

Opcin B:
'.1.- Seleccionar en el menA de la iz,uierda lo ,ue se indica con una .lecha en el di/u6o hacer clic90 primero so/re la ta/la E(P - luego so/re la 8EP&:. El resultado es el ,ue sigue:

Figura 17 '.'.- #ontinuamos en el punto '.2 de la :pcin % eligiendo los nom/res adecuados para cada columna (cam/iar 8EP&?8EP&: por 8EP&).

El resultado0 para am/os casos es el siguiente:

htt %##coba&dc&'i&udc&es#(bd#bd"#MySQLW)#tutorialW)&html

"0#10#"01$

Tutorial MySQL Workbench (con normas de entrega de la rctica!

Pgina 9 de 10

Figura 18

Normas para la entrega de la prctica El e6emplo anterior se realiz con las opciones de.ectivas de la herramienta0 por e6emplo con la notacin gr5.ica conocida como #ro" s .oot o la generacin auto5tica del nom/re del atri/uto ,ue ser5 clave .or5nea. Para una me6or presentacin de la pr5ctica0 se realiz5n los siguientes a6ustes: 1. Elegir (odel B :/6ect +otation B Cor9/ench (Simpli.ied) para ,ue no se inclu-an los Dndices en el diagrama. '. Elegir (odel B $elationship +otation B #onnect to #olumns para ,ue las cone1iones se representen claramente entre los atri/utos ,ue las poseen. 2. Para ,ue no aparezcan los tipos de datos en el diagrama0 de/e irse a (odel B (odel :ptions 0 desactivar ;se )lo/al Settings - en 8iagrams desactivar Sho" #olumns &-pes . En una visualizacin posterior0 el diagrama -a aparece5 sin los tipos de datos. 3. 8e/e entenderse ,ue lo ,ue aparece en el panel EE$ 8iagrams son di/u6os activos0 pero ,ue una cosa es ,ue en un diagrama del es,uema relacional no aparezca una ta/la - ,ue la ta/la e1ista en la /ase de datos0 lo ,ue la herramienta denomina #atalog 0 situado en el panel de la derecha. Por ello0 al eliminar una ta/la de un diagrama con <otn derecho B 8elete 0 pregunta si se desea eliminar el correspondiente o/6eto de la /ase de datos al eliminar la .igura. Puede eliminarse una .igura - mantener la ta/la ,ue representa/a. ;na ta/la e1istente en #atalog puede incorporarse a un diagrama seleccion5ndola - arrastr5ndola al diagrama. 8e esta .orma el diagrama ,uedarDa seme6ante a:

Figura 19

Esta es la manera en la ,ue ha- ,ue entregar el diagrama del es,uema relacional en la pr5ctica0 en .ormato P8!. :/sErvese ,ue est5n di.erenciadas las claves primarias (una llave)0 las .or5neas (rom/o ro6o)0 los atri/utos normales (rom/o azul) - los atri/utos no nulos (rom/o relleno de color azul). %simismo est5 di.erenciadas las vinculaciones de clave .or5nea normales (lDneas discontinuas)0 de las ,ue la clave .or5nea .orma parte de la clave primaria (lDneas continuas). &ra/a6ando so/re ;/untu F.1G (e1iste un pa,uete de/ ,ue instala la versin H.1.I <eta) se han detectado algunos comportamientos de la herramienta ,ue se indican por orientacin - para evitar pErdida de tiempo (no se compro/ su .uncionamiento en otros sistemas operativos): 1. %l a/rir un diagrama previamente almacenado0 pueden aparecer todas las ta/las pegadas a la .ila superior - sin posi/ilidad de u/icarlas m5s a/a6o. Este comportamiento resulta molesto por,ue des.igura el di/u6o - no se soluciona intentando a6ustar con %rrange B %utola-out . =a- ,ue ir a (odel B 8iagram Properties - .i6ar la anchura - altura a una p5gina o al menos cam/iar el cero ,ue aparece en ellas. 8espuEs de esto -a se pueden mover las .iguras o utilizar %rrange B %utola-out .

htt %##coba&dc&'i&udc&es#(bd#bd"#MySQLW)#tutorialW)&html

"0#10#"01$

Tutorial MySQL Workbench (con normas de entrega de la rctica!

Pgina 10 de 10

'. En ocasiones se ha compro/ado ,ue la herramienta aca/a su e6ecucin de manera sorpresiva - anmala. Es recomenda/le guardar el tra/a6o con #trlJS o !ile B Save a medida ,ue se va realizando0 - no llevar una sorpresa desagrada/le posteriormente. 2. La primera opcin para de.inir claves .or5neas ha .uncionado en ;/untu me6or ,ue la segunda.

Para saber ms En la "e/ de (-SQL ha- diversa in.ormacin so/re sus productos0 entre ellos (-SQL Cor9/ench. En particular ha- un manual en lDnea0 ,ue tam/iEn puedes encontrar en .ormato P8!0 en local.

htt %##coba&dc&'i&udc&es#(bd#bd"#MySQLW)#tutorialW)&html

"0#10#"01$