Administrar los cambios de la base de datos

Actualización: noviembre 2007

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 Team Edition for Database Professionals

Visual Studio Team System Database 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 que considera la base de datos de producción (y sus datos) como el centro del universo de la aplicación. Database Edition proporciona una serie de soluciones que están destinadas a la aplicación en su conjunto, tanto a los datos como a la 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.

Database Edition 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, Database Edition 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

Con su introducción, Database Edition tiene los siguientes objetivos de alto nivel:

  • 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.

Tareas de alto nivel

Para cumplir estos objetivos, Database Edition 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

Team Edition for Database Professionals requiere un proceso que funcione 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:

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:

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:

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:

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, 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

Información general sobre arquitectura de Database Edition

Introducción a la terminología de Database Edition

Otros recursos

Información general acerca de la creación e implementación de bases de datos en entornos de equipo