Administrar los cambios de la base de datos

Si desarrolla y mantiene bases de datos en el nivel de empresa, probablemente una de sus responsabilidades será coordinar las programaciones y los cambios con equipos de desarrollo de software para crear aplicaciones de base de datos unificadas. Puede reducir significativamente el esfuerzo que requiere esta coordinación adoptando herramientas y procesos que sean lo más parecidos posible a los de los desarrolladores de software que están en su organización.

A medida que la mayoría de los equipos empiezan a utilizar paradigmas más iterativos, de rápido desarrollo, para escribir código (como métodos ágiles), aumenta la necesidad por parte de los desarrolladores de software y de bases de datos de herramientas tales como el control de versiones. Estas herramientas pueden reducir los riesgos asociados al desarrollo en equipo. Si utiliza herramientas y procesos similares, puede aprovechar ventajas importantes no sólo para las bases de datos que administra, sino también para los puntos de integración entre esas bases de datos y el software que interactúa con ellas.

Cómo ayuda Visual Studio

Visual Studio le ayuda a coordinarse con sus homólogos desarrolladores de software animando a los miembros del equipo a adoptar una visión y un planteamiento más holísticos sobre el comportamiento de la aplicación, en lugar de fijarse en los detalles de la implementación. Este enfoque diverge del modelo donde la base de datos de producción (y sus datos) se ven como el centro del universo de la aplicación. Visual Studio proporciona un conjunto de soluciones dirigido a la aplicación completa: tanto datos como lógica. Para generar una aplicación que funcione correctamente, sea fácil de mantener y pueda entregarse lo antes posible, las organizaciones de desarrollo en el nivel de empresa deben adoptar esta visión de la aplicación como conjunto.

Visual Studio proporciona características dirigidas a las funciones que hoy en día deben desempeñar los desarrolladores y administradores de bases de datos. Por ejemplo, Visual Studio contempla el concepto de un entorno de desarrollo aislado para cada profesional de bases de datos. Los miembros del equipo pueden trabajar en actividades relacionadas con el esquema sin afectar al resto del equipo o al entorno de producción. Esta visión a largo plazo agrega características para la función de arquitecto de bases de datos y amplía las de los administradores de bases de datos.

Objetivos de alto nivel

Las características de base de datos de Visual Studio tienen los siguientes objetivos generales:

  • Proporcionar una base que se fundamente en la administración integrada de los cambios para las aplicaciones de base de datos.

  • Proporcionar herramientas que ayuden a administrar los proyectos de base de datos.

  • Proporcionar herramientas que ayuden a entender las diferencias.

  • Proporcionar herramientas que ayuden a realizar cambios y evaluar sus efectos.

  • Proporcionar herramientas que ayuden a trabajar en un entorno aislado para reducir los riesgos asociados a los cambios.

  • Proporcionar herramientas que ayuden a probar las soluciones actualizadas.

  • Proporcionar herramientas que simplifiquen la implementación de cambios en una base de datos.

  • Proporcionar herramientas que faciliten el desarrollo cooperativo de bases de datos complejas.

Tareas de alto nivel

Para cumplir estos objetivos, Visual Studio le ayuda a realizar las siguientes tareas de alto nivel:

  • Crear e implementar una nueva base de datos con control de versiones.

  • Colocar un esquema de base de datos existente en el sistema de control de versiones utilizando el proyecto de base de datos. Para crear el esquema del proyecto de base de datos se importa el esquema desde una base de datos o scripts existentes.

  • Modificar una representación sin conexión de una base de datos y después implementar los cambios.

  • Comparar esquemas o datos entre bases de datos.

  • Desarrollar y ejecutar pruebas unitarias con objetos de base de datos.

  • Generar datos de prueba predecibles y representativos sin poner en peligro los datos confidenciales del entorno de producción.

  • Cambiar el nombre de tablas, columnas, vistas u otros objetos de base de datos y propagar esos cambios al resto del proyecto de base de datos, incluidos las pruebas unitarias, las vistas, los procedimientos almacenados o los desencadenadores asociados, entre otros.

  • Crear, editar, validar, ejecutar y analizar scripts y consultas.

Ciclo de vida del desarrollo de bases de datos

Visual Studio admite un proceso que funciona con las nuevas herramientas. Este proceso se puede calificar como el ciclo de vida del desarrollo de bases de datos, que proporciona a cada profesional de bases de datos un entorno de desarrollo aislado en el que trabajar y probar los cambios. Una vez probados los cambios, los miembros del equipo los comparten a través del sistema de control de versiones. El ciclo de vida del desarrollo de bases de datos se compone de las fases siguientes:

  • Establecer el entorno del proyecto

  • Realizar un trabajo de desarrollo iterativo aislado

  • Generar el proyecto

  • Realizar la implementación desde el entorno del proyecto

Establecer el entorno del proyecto

La ilustración siguiente muestra cómo el miembro del equipo que desempeña la función de administrador de bases de datos (DBA) establece el entorno del proyecto:

DBA establece el entorno del proyecto de base de datos

En primer lugar, el DBA crea un proyecto de base de datos e importa el esquema de base de datos desde la base de datos de producción. Después, el DBA puede crear un plan de generación de datos para producir datos de prueba para los entornos de desarrollo aislado. Por último, el DBA protege el proyecto de base de datos en el sistema de control de versiones para que esté disponible para el equipo.

Realizar un trabajo de desarrollo iterativo aislado

El diagrama siguiente muestra cómo los miembros del equipo realizan un trabajo de desarrollo iterativo en un entorno aislado:

Desarrollo iterativo en un entorno aislado

Cada profesional de bases de datos sincroniza su entorno de desarrollo con el sistema de control de versiones. Pueden desproteger los archivos cuando se modifican, y desarrollar y probar esos cambios de manera aislada. Los cambios realizados en su copia del proyecto de base de datos sólo se implementan en su entorno de desarrollo aislado. Después de que un miembro del equipo genera datos de prueba realistas y ejecuta pruebas unitarias en una copia privada de la base de datos, protege los cambios en el sistema de control de versiones. Los otros miembros del equipo obtienen los cambios probados del sistema de control de versiones.

Realizar generaciones diarias del proyecto

La ilustración siguiente muestra cómo funciona el ciclo de generación para los proyectos de base de datos:

Ciclo de compilación de proyectos de base de datos

La generación diaria se obtiene mediante una sincronización con la versión probada más reciente del proyecto de base de datos que se encuentra en el sistema del control de versiones. Esa generación se puede implementar en una base de datos de prueba donde se ejecuten pruebas unitarias con datos de prueba generados.

Realizar la implementación desde el entorno del proyecto

El diagrama siguiente muestra cómo el DBA puede implementar una versión del proyecto de base de datos en el entorno de producción:

DBA compila e implementa en la producción

Cuando llega el momento de implementar una versión de la base de datos en el entorno de producción, el DBA realiza la sincronización con una etiqueta del sistema del control de versiones. El DBA recupera los archivos coincidentes del proyecto de base de datos, los scripts relacionados y las pruebas. A continuación, DBA compila el archivo .dbschema. A partir del archivo .dbschema, el DBA genera el script de implementación, efectúa las modificaciones necesarias manualmente y realiza una implementación de prueba en el servidor de ensayo. El DBA itera este proceso hasta que el script esté listo para ser implementado en el servidor de producción. Si el DBA realiza cambios en el esquema o en los scripts anteriores o posteriores a la implementación, esos cambios se volverán a proteger en el sistema de control de versiones.

Vea también

Conceptos

Introducción a la arquitectura de las características de bases de datos de Visual Studio

Iniciar el desarrollo de bases de datos de equipo