Control de versiones sobre Bases de Datos SQL Server 2000/2005

Por Hermilson Tinoco

Bb972276.downlanim(es-es,MSDN.10).gif Descargar Ejemplo de este artículo.

Contenido

 1. Introducción
 2. ¿Qué es un Sistema de Control de Versión?
 3. Preparando la estructura de práctica
 4. Configurar el control de versiones
 5. Conclusión

1. Introducción

En los sistemas integrados diseñados para ser instalados sobre arquitecturas tecnológicas cliente/servidor, se evidencia la estructuración de las tres capas básicas de desarrollo: presentación, reglas del negocio y bases de datos.

Habitualmente, al construir aplicaciones de este u otro tipo se utiliza una herramienta de control de versiones que permita administrar las distintas versiones de cada componente desarrollado. Este sistema es implementado para la capa de presentación y de reglas del negocio, ya que éstas implican la generación de código fuente, el cual es afectado por nuevas funcionalidades o por especializaciones realizadas a los usuarios.

Algunos jefes de proyectos comenten el error de dejar fuera del control de versiones a la capa de base de datos, perdiéndose así las modificaciones realizadas a las bases de datos, tablas, procedimientos almacenados, funciones o demás objetos que componen esta capa.

El control de versiones para una base de datos SQL Server podía ser implementado a través de Microsoft InterDev, pero este proceso era bastante complejo de administrar. Ahora, con la plataforma .net, se puede instalar esta funcionalidad sin mayores inconvenientes.

 

2. ¿Qué es un Sistema de Control de Versión?

También conocido como CVS (Control Version System), es un sistema que permite administrar las versiones de los ítems incluidos en su catálogo. Comúnmente se lo utiliza para gestionar las versiones del código fuente, pero también puede ser utilizado con bases de datos, documentos, imágenes y otros archivos.

Un sistema de control de versión debe incluir lo siguiente:

  • Repositorio de ítems.

  • Histórico de las acciones realizadas sobre cada ítem, que incluya la información básica de las acciones.

  • Administración de usuarios del sistema de control.

  • Gestión de los ítems (insertar, actualizar, eliminar o mover).

En el mercado se puede encontrar una gran variedad de herramientas que permiten implementar este sistema de control (Clear Case, CVS, Source Safe, Subversión, etc.).

En este caso vamos a utilizar la herramienta Microsoft Visual Source Safe 6.0. (cualquiera de sus actualizaciones nos sirve, pero es recomendable utilizar las versiones 6c, 6d ó posterior). Este sistema incluye todas las características señaladas, añadiendo las siguientes funciones:

  • Get latest versión: obtiene la ultima versión del ítem.

  • Check out: obtiene la ultima versión y captura de manera exclusiva un ítem para ser modificado por el usuario.

  • Check in: libera un ítem que fue capturado (Check out) con anterioridad y almacena los cambios en el archivo histórico.

  • Undo check out: libera un ítem que fue capturado, pero no almacena ningun cambio.

 

3. Preparando la estructura de práctica

Para implementar este sistema de control de versiones para bases de datos SQL Server se requiere instalar lo siguiente:

  • SQL Server 2000/2005, instalado en el servidor

  • Microsoft .net instalado en el cliente

    • opción Visual Studio Enterprise Templates

    • opción VS 6 Stored Procedure Version Control

  • Visual Source Safe Server, instalado en el servidor

  • Visual Source Safe Client, instalado en el cliente

Además, se debe restaurar la base de datos incluida con este material o instalar una base de datos de pruebas.

 

4. Configurar el control de versiones

  1. Inicia Microsoft Visual Studio .net. Crea un nuevo proyecto seleccionando Other Projects | Databases Projects en tipos de proyecto y selecciona Proyecto de bases de datos en plantillas. Selecciona el nombre y la ubicación apropiada para el proyecto (Ver Figura 1):

    Bb972276.art275-img01-253x186(es-es,MSDN.10).jpg
    Figura 1. Volver al texto.

  2. Configura la conexión al servidor y base de datos que deseas incluir en el sistema de control de versiones Source Safe. Selecciona apropiadamente el nombre del servidor, la información de la autenticación, la base de datos y verifica la conexión antes de cerrar esta pantalla. Esta operación permite que Visual Studio incluya la conexión a esta base de datos como referencia del proyecto. Visual Studio puede contener varias conexiones de datos y cualquiera de éstas puede ser adicionada al proyecto como referencia. Las conexiones de datos se observan a través del Server Explorer, y cada conexión incluye los objetos que pueden ser referenciados por medio de esta interfaz (Diagramas, Tablas, Vistas, Procedimientos y Funciones). Ver Figura 2:

    Bb972276.art275-img02-364x458(es-es,MSDN.10).jpg
    Figura 2. Volver al texto.

  3. El nuevo proyecto se visualiza con la ventana Solution Explorer, incluyendo la solución .net, el proyecto de base de datos, las referencias a bases de datos y las carpetas disponibles para iniciar la creación de scripts. Estas carpetas pueden ser eliminadas, según la conveniencia del usuario (Ver Figura 3):

    Bb972276.art275-img03-213x23(es-es,MSDN.10).jpg
    Figura 3. Volver al texto.

    Para nuestro proyecto añade una nueva carpeta, que podríamos llamar Procedimientos, en la cual vamos a incluir los procedimientos almacenados de la base de datos referenciada.

  4. Agrega los procedimientos almacenados al proyecto. En el Server Explorer, selecciona la base de datos de referencia y selecciona todos los procedimientos almacenados. Luego, arrástralos hasta la carpeta Procedimientos, ubicada en la ventana Solution Explorer, dentro del proyecto de base de datos. Esta operación solicita a Visual Studio que genere los scripts de estos procedimientos con el fin de administrar las versiones por medio de estos archivos (Ver Figura 4):

    Bb972276.art275-img04-240x286(es-es,MSDN.10).jpg
    Figura 4. Volver al texto.

    Este procedimiento dispara una pantalla que solicita la configuración de los scripts. Para ello se debe seleccionar solo la opción de Generar el comando CREATE <object> para cada objeto, tal como se muestra en la Figura 5:

    Bb972276.art275-img05-368x169(es-es,MSDN.10).jpg
    Figura 5. Volver al texto.

    Al aceptar esta pantalla, debes seleccionar la nueva ubicación física de estos archivos (scripts), la cual debe ser la misma que la carpeta Procedimientos.

  5. En este punto se tiene el proyecto completamente configurado con los objetos a adicionar al control de versiones. Para incluir el proyecto a Source Safe, da clic con el botón derecho sobre el proyecto de base de datos y selecciona el comando Agregar la Solución a Source Control que se muestra en la Figura 6:

    Bb972276.art275-img06-213x24(es-es,MSDN.10).jpg
    Figura 6. Volver al texto.

  6. Cuando quieras realizar algún cambio en los procedimientos almacenados de la base de datos, debes utilizar el menú alterno que se visualiza al dar clic con el botón derecho del mouse sobre un archivo y seleccionar la opción apropiada para cada caso (Check In, Check out, etc.) Al realizar cambios sobre los procedimientos almacenados, los cambios serán reflejados sobre el archivo físico pero no sobre la base de datos; por lo tanto debes ejecutar todos los cambios sobre la base de datos de referencia, seleccionando en el menú alterno la instrucción Run (Ver Figura 7):

    Bb972276.art275-img07-169x151(es-es,MSDN.10).jpg
    Figura 7. Volver al texto.

  7. Para adicionar un nuevo objeto al proyecto de Source Safe, puedes utilizar el sistema de arrastre utilizado anteriormente o bien puedes adicionar un nuevo ítem.

 

5. Conclusión

Microsoft .net framework proporciona un entorno altamente versátil, facilitando la integración con distintos sistemas y la administración de aplicaciones empresariales. Esta integración permite que se pueda unir sencillamente sistemas de bases de datos con sistemas de control de versiones, mejorando el desempeño con relación a las versiones anteriores de control de versiones.

Si bien nos encontramos con que éste es un procedimiento sencillo de instalar y administrar, requiere que tanto el administrador del sistema Visual Source Safe como los usuarios del mismo, sean concientes del impacto generado por las acciones realizadas sobre la base de datos y sobre el control de versiones.

Hermilson Tinoco trabaja como Analista de Sistemas desde hace más de 7 años, con ambientes Microsoft (VB6, .NET y SQL Server) y como Consultor en aplicaciones corporativas e implementaciones de bases de datos empresariales (SQL Server y Oracle). Es Ingeniero de Sistemas de la Universidad Santiago de Cali, Colombia, e instructor en esa misma universidad y en varios CTECs de esa ciudad. Cuenta además con la certificación MCP desde 2001, habiendo obtenido luego las certificaciones MCSD (VB6), MCAD, MCSD .net, MCT y MCDBA.