Weblog de Victor Ramirez

Sábado, agosto 8, 2009

…y ahora qué?

Filed under: java, mysql, netbeans, Sun — Etiquetas: , , , , , , — vramirez @ 7:45 AM

Es la pregunta que nos estamos haciendo muchos de los usuarios de productos de Sun, luego de que ya han pasado algunos meses desde la noticia de la compra de la compañía por parte de Oracle. Muchas dudas, muchos rumores, pero aún ningún pronunciamiento oficial por parte de alguna de las dos compañías que nos dé una verdadera luz de guía.

Por un lado los usuarios que trabajan (o trabajamos) día a día con aplicaciones open-source de Sun como NetBeans, MySQL, OpenSolaris, GlassFish, VirtualBox, etc. Muchos desarrolladores, pequeñas, medianas (e incluso grandes) empresas utilizan al menos uno, sino varios, de estos componentes, y se preguntan que suerte correrán estos productos con la llegada de Oracle: ¿desaparecerán?, ¿serán reemplazados?¿dejarán de ser “free”? En mi humilde opinión, considero que estos productos seguirán en pie por mucho tiempo, y bajo las mismas condiciones actuales. La razón es muy simple, todos ellos tienen algo en común; una comunidad open-source. Precisamente para ser open-source, un producto debe estar soportado en una comunidad que (básicamente) lo regule, desarrolle nuevas funciones y corrija “bugs”. La “comunidad” hace rato dejo de ser algo en donde todas o la mayoría de personas involucradas pertenecen a la compañía “dueña” del producto. Por ejemplo, en el caso específico de NetBeans, con un solo click puedes reportar un bug en el IDE, o en listas de correos puedes preguntar y contestar inquietudes a personas de otras ciudades y países, personas comunes y corrientes que aportan su conocimiento sin esperar nada a cambio, salvo quizás mayor conocimiento. Asimismo, existe un grupo inmenso de personas que se encarga de traducir el IDE a 10 o 20 idiomas, todos los días alguien hace un nuevo plugin con una nueva funcionalidad (un reproductor de música, un driver, compatibilidad con un nuevo framework, etc). De esa manera miles de personas NO involucradas con Sun hacen crecer al IDE de manera desinteresada, o bueno si tienen un interés: mejorar el producto. Este patrón de colaboración entre personas del común se repite en todos los demás productos open-source, lo cual considero nos garantiza su existencia por un buen tiempo.

Por otro lado, tenemos los productos licenciados como por ejemplo MySQL Enterprise que que tampoco creo que vayan a desaparecer de la noche a la mañana. Es bien sabido que muchas empresas tienden a ser renuente a cambiar por ejemplo su sistema operativo, o su motor de base de datos, etc. La razón es el temor a los traumatismos que dichas migraciones puedan generar (tiempos, costos, etc), en comparación con la poca o nula mejoría que note el usuario final, todos sabemos como son los usuarios finales, a menos que los datos se teletransporten frente a sus ojos y haya destellos de luces cósmicas, el sistema siempre será lento! ¿Un cambio de motor?¿¿Antes era Diesel??. Por eso tampoco veo en un futuro cercano a Oracle obligando a sus recien adquiridos clientes a pasarse a un nuevo motor de BD, eso sí, seguro habrán cambios en las condiciones de licenciamiento (precio, cantidad, tiempo, etc). En el mercado existen muchas personas que se dedican casi que exclusivamente a ayudar a las empresas a traducir y entender los contratos de licenciamiento de Oracle, esto refleja la complejidad de dichos contratos. Además, se rumora que Oracle aprovechará esta nueva adquisición para visitar clientes (nuevos y viejjos) y realizar auditorías, lo cual sería como excusa para replantear condiciones de licenciamiento.

Por último, a los que temen que Java desaparezca, (y es una inquietud que he oído con frecuencia…) les digo: ¿cuanto tiempo lleva desapareciendo COBOL? =P

Domingo, septiembre 7, 2008

Usando MySQL Workbench para diseñar y crear una base de datos

Filed under: mysql, tutorial — Etiquetas: , , , — 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:

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:

Al hacer click en la pestaña “Columns”, podemos editar todas las columnas dela tabla indicada. Podemos alterar el nombre, el tipo de dato, si es nulo o no (NN) y si es Auto incremental (AI), obviamente este último es sólo para datos de tipo numérico, De igual forma podemos especificar un valor por default para la columna. En la parte derecha, inmediatamente podemos indicar si la columna seleccionada hace parte de la llave primaria (PRIMARY KEY), si es UNSIGNED o ZEROFILL para las variables numéricas y si la variable es de tipo caracter, podemos especificar si es BINARY.

Ahora pasemos a crear una tabla por medio de un diagrama E-R. En la parte superior observamos la opción “Add Diagram”. Hacemos doble click sobre ella.

Luego se abre una nueva pestaña en la cual encontramos un grid. A la izquierda, ecnontramos una barra de herramientas, desde la cual podremos crear tablas y vistas, además de relaciones (1:1,1:n,n:m…) y a la derecha un árbol con los objetos de nuestro esquema (tablas, vistas, etc). De esa ventana, seleccionamos la tabla que creamos y la arrastramos hasta el grid. Luego hacemos click derecho y seleccionamos “Edit table”, abajo nos muestra la pestaña para editar la tabla y crear columnas, llaves, etc.

Buscamos a la izquierda el ícono que nos permite crear una nueva tabla. Hacemos un click en el ícono y luego un click en el grid.

Editamos las segunda tabla y ahora haremos una relación muchos a uno.Seleccionamos el icono, y luego cada una de las tablas (primero la de muchos y luego la de uno). En mi caso, la tabla de “muchos” es table1. Quedaría algo asi:

Como ven el Workbench se apega a la teoría relacional, donde en este caso la llave de a relación “uno” pasa a la tabla de “muchos”. Igualmente si creamos una relacion M.N (muchos a muchos) generará una relación entre las dos tablas. A continuación viene la mejor parte de esta herramienta: la generación del script SQL.

Como ven, podemos exportar el diseño, incluso como una imagen en pdf, o en png, entre otros. La primera pantalla, nos muestra las opciones con las que queremos que se genere el script DDL. Luego seleccionamos la ubicacion destino del archivo que se creará.

Luego nos muestra un resumen de lo que creará; usuarios, tablas, vistas, rutinas y triggers. Incluso si seleccionamos el botón “Detailed Selection” de cada sección, podemos especificar aún más, por ejemplo, qué tablas deseo realmente exportar.

Luego finalizar, y en la ruta que le hallamos indicado estará un archivo .sql, con nuestro script. Como se podrán dar cuenta Workbench, resuelve algunas limitantes en la comunidad open source de un buen software front-end para MySQL, y sobre todo de una herramienta que provea Forward Engineering, de una manera tan sencilla y bien ilustrada. Digamos que la única limitante de Worlbench es su ausencia en otras plataformas, o sea, en Linux :p.

Domingo, mayo 11, 2008

Disponible paquete Netbeans 6.1 + GlassFish + MySQL

Filed under: glassfish, mysql, netbeans — Etiquetas: , , , , , , , — vramirez @ 7:08 AM

La compra de la compañia MySQL AB, por parte de Sun a finales del año pasado, se empieza a notar cada vez más y más. Hace poco más de una semana, Sun ofrecía el paquete de Java EE con GlassFish y MySQL Community Edition. Pero, ahora estará disponible el combo completo:

  • Netbeans 6.1
  • GlassFish V2 U2
  • MySQL 5.0 Community Edition

Dicho paquete lo puedes encontrar acá. Particularmente no lo considero una caracterísitca esencial o que la comunidad “pida a gritos”, pues muchas veces en nuestros en tornos de trabajo la base de datos (incluso la de pruebas) se encuentra alojada en una máquina distinta a la cual utilizamos para el desarrollo. Inclusive, la mayoria de veces, ya estamos manejando nuestra propia base de datos, puede ser que tenga MySQL en otra version, o ya esté perfectamente configurada mi instancia, o simplemente use otra base de datos (db2, informix, oracle, etc). Sin embargo puede ser de gran ayuda para un programador principiante, pues con solo un par de clicks tendrá en su máquina un IDE + Serv de Aplicaciones + Base de datos. Todo esto “Ready-to-go”.

Blog de WordPress.com.