Introducción de Visual Studio 2005 Team Edition para Database Professional.

Publicado: noviembre 30, 2007 en Categoria All

El desarrollo de bases de datos es más fácil ahora, gracias a Visual Studio® 2005 Team Edition para Database Professionals (o, de forma abreviada, DB Pro Edition). Si necesita crear, administrar o construir soluciones conectadas con SQL Server™, esta es la solución que busca.

DB Pro Edition le proporciona varias características que facilitan la administración de bases de datos. Como miembro de Visual Studio 2005 Team Suite, DB Pro Edition trabaja en combinación con la característica de control de código fuente de Team Foundation Server para administrar los cambios de la base de datos de la misma manera que se administra el código fuente. DB Pro Edition es compatible con el desarrollo del recinto de seguridad de bases de datos, e incluye herramientas para la comparación de bases de datos, la generación de datos, la prueba unitaria y la implementación de bases de datos. Pero lo más atractivo de DB Pro Edition es el uso de todas estas características juntas como parte de un ciclo de vida de desarrollo de base de datos integral.

Antes de profundizar en el tema, vamos a aclarar algunas cuestiones. En primer lugar, la versión inicial de DB Pro Edition es compatible con bases de datos relacionales de SQL Server 2000 y SQL Server 2005, pero no admite Analysis Services. Está previsto que las próximas versiones sean compatibles con otras bases de datos de Microsoft y de otros proveedores mediante un modelo basado en proveedores, pero dicha compatibilidad no está disponible en el momento de escribir este artículo. En segundo lugar, el uso de DB Pro Edition junto con Team Foundation Server mejora muchas de las características de DB Pro Edition; no obstante, Team Foundation Server no es un requisito previo para usar DB Pro Edition.

Administración de las versiones de base de datos

Para crear una aplicación controlada por base de datos correctamente, es fundamental saber qué copia de la base de datos es la versión “verdadera”. El problema es que la realización de cambios y pruebas en un sistema activo conlleva muchos riesgos. De hecho, por lo general, sólo el administrador de la base de datos (DBA) está capacitado y autorizado para hacerlo. DB Pro Edition ofrece una solución. El sistema de base de datos de producción conserva la versión activa y verdadera de los datos. Entre tanto, DB Pro Edition conserva la versión verdadera del esquema mediante un sistema basado en proyectos que, idealmente, debería estar bajo el control de las versiones. DB Pro Edition administra cada objeto de la base de datos como un conjunto de archivos .sql, e interpreta las dependencias y las relaciones entre estos objetos.

Esta separación de datos y esquemas, desde la perspectiva de administración de cambios, es un punto importante. Ahora, es posible un proceso de desarrollo iterativo verdadero para los proyectos con copia en una base de datos.

Además, como miembro de la familia de Team System, DB Pro Edition se integra con Team Foundation Server y otros productos de la familia de Team System. Esto permite un verdadero desarrollo y administración en equipo del esquema de base de datos. Sin lugar a dudas, la característica más atractiva es el control de versiones. Características adicionales, como el seguimiento de elementos de trabajo, las directivas de incorporación de código y la integración con versiones de compilación nocturnas, convierten a la base de datos en un artefacto regular sujeto a seguimiento y control. Ya no hay que tratarla como una entidad especializada que necesita sus propios procedimientos de desarrollo y control, potencialmente costosos.

Back to top

Introducción

Básicamente, DB Pro Edition es un conjunto de plantillas de proyecto y herramientas que residen en Visual Studio 2005. Es posible usar algunas de estas herramientas sin generar un proyecto; aunque, lo mejor empieza con un proyecto de DB Pro Edition.

Se necesitan, como mínimo, dos instalaciones de SQL Server: una que sirva como sistema de producción y otra, como sistema de desarrollo. En función de la complejidad de la base de datos y el software creado sobre ella, puede que desee tener instalaciones adicionales. Para un entorno de equipo, debe disponer de una instancia privada local para cada profesional de base de datos. Además, debería tener, como mínimo, una instancia de desarrollo compartida para la integración y la prueba de regresión. (Recuerde que, como parte de la licencia de DB Pro Edition, también recibirá una licencia para SQL Server 2005 Developer Edition, que tiene todas las características de la Enterprise Edition.)

Empezar a trabajar en la máquina del desarrollador local requiere tener instalado DB Pro Edition con una copia local de SQL Server 2005 Developer Edition, Enterprise Edition o incluso Express Edition. DB Pro Edition usa una instancia de SQL Server 2005 para validar el tiempo de diseño de los proyectos de SQL Server 2000 y SQL Server 2005. Para controlar la instancia de SQL Server usada para la validación, vaya a la opción Herramientas | Opciones | Herramientas para bases de datos | Design-time Validation Database (Base de datos de validación de tiempo de diseño) de Visual Studio 2005. Si trabaja con Team Foundation Server, también debe tener instalado Team Explorer.

DB Pro Edition permite crear una base de datos desde cero, aunque lo más probable es que tenga bases de datos existentes que necesite administrar. Existen dos maneras de cargar un esquema de base de datos en un proyecto. La primera, consiste en importar un archivo de secuencia de comandos SQL. Esto es útil, por ejemplo, si ha administrado los cambios del esquema mediante el almacenamiento de copias del esquema en el control de versiones, o cuando no puede conectarse a la versión actual del esquema directamente y realizar una importación activa por motivos de seguridad u otros requisitos empresariales.

La segunda manera de cargar el esquema consiste en conectarse a una instancia de SQL Server en ejecución e importar el esquema activo. Esta opción se usa si ya se ha creado un proyecto nuevo o como parte de la creación de un proyecto mediante el Asistente para proyecto nuevo. Si trabaja en un entorno con un DBA, esta segunda opción ofrece un modo adecuado de integrar el DBA en el proceso de desarrollo. De hecho, en un mundo perfecto, cuando se empieza a trabajar con DB Pro Edition en una base de datos existente, el DBA debería crear el proyecto, cargarlo en un control de código fuente y, a continuación, pasarlo a desarrollo; pero el DBA debería estar presente en todo momento durante el ciclo de vida de desarrollo.

Existe una diferencia importante entre realizar la importación mediante una secuencia de comandos o mediante una base de datos activa. La importación desde una base de datos activa sólo se puede realizar una vez, mientras que la importación mediante secuencias de comandos se puede realizar todas las veces que sea necesario.

Back to top

El proceso de importación

Para iniciar el proceso de importación, abra el cuadro de diálogo Nuevo proyecto en DB Pro Edition. Las plantillas para SQL Server están disponibles en el nodo de nivel superior llamado Proyectos de base de datos (es necesario expandir los nodos para encontrar éste). Puede elegir un proyecto en blanco o usar un asistente.

La ejecución del asistente facilita el inicio. Las preguntas del asistente se reparten en páginas etiquetadas con los nombres Project properties (Propiedades del proyecto), Set Database Options (Establecer opciones de base de datos), Import Database Schema (Importar esquema de base de datos) y Configure Build/Deploy (Configurar compilación/implementación).

Project Properties (Propiedades del proyecto) le permite especificar cómo desea organizar el proyecto en el disco, si por tipo de objeto o por esquema. Es importante reflexionar acerca de esto con antelación, ya que no es fácil cambiar esta opción una vez que se ha creado el proyecto e importado el esquema. La organización basada en esquema puede resultar útil, por ejemplo, cuando es necesario restringir el acceso a partes de la base de datos por motivos de seguridad.

Puede usar la página Set Database Options (Establecer opciones de base de datos) para definir valores de la base de datos, como valores nulos de ANSI, identificadores delimitados con comillas y mucho más. En la página Import Database Schema (Importar esquema de base de datos), puede elegir si desea importar un esquema de base de datos desde un servidor activo. Si decide realizar la importación en este punto, debe especificar si desea usar las opciones de la base de datos o las opciones del proyecto.

Por último, en la página Configure Build/Deploy (Configurar compilación/implementación), ajuste las opciones que afectan a la posición de las secuencias de comandos de compilación, la conexión a la base de datos de destino predeterminada, etc. Estas opciones, al igual que la mayoría de las definidas por el asistente, se pueden ajustar en Propiedades del proyecto.

Una vez que se ha completado el asistente y se ha importado el esquema de base de datos de producción, habrá creado correctamente el espacio de trabajo sin conexión. En este espacio puede trabajar sin conexión en el esquema de base de datos de forma segura.

DB Pro Edition proporciona dos vistas del proyecto. Hay una vista de archivo literal que se muestra en el Explorador de soluciones (consulte la figura 1) y una vista de esquema jerárquico (organizada por tipo de objeto o por esquema y, a continuación, tipo de objeto) que se puede ver a través de la ventana Vista de esquema. Estas dos vistas proporcionan flexibilidad a la organización y la administración de proyectos. Puede reorganizar por completo la estructura de archivos en el disco mediante la función de arrastrar y colocar en el Explorador de soluciones sin dejar de tener un acceso cómodo a los objetos por tipo de objeto y/o esquema.

Figura 1 Base de datos en el Explorador de soluciones
Figura 1 Base de datos en el Explorador de soluciones (Hacer clic en la imagen para reducirla)

Figura 1 Base de datos en el Explorador de soluciones
Figura 1 Base de datos en el Explorador de soluciones (Hacer clic en la imagen para ampliarla)

DB Pro Edition divide el esquema de base de datos en objetos atómicos representados como archivos .sql en el Explorador de soluciones y, de esta manera, el sistema de archivos (no sólo los objetos de nivel superior como tablas, vistas y procedimiento almacenados, sino también índices, restricciones y similares). Además, el proyecto obtiene un conjunto de secuencias de comandos segmentadas en un conjunto de carpetas con las etiquetas Pre-Deployment (Implementación previa) y Post-Deployment (Implementación posterior). Puede usar estas secuencias de comandos para controlar las operaciones de T-SQL que no representan objetos del esquema. Además, puede crear sus propias secuencias de comandos de administración y utilidad y organizarlas como le convenga.

En este punto, si se está usando Team Foundation Server, agregue el proyecto al control de código fuente y marque todos los elementos de trabajo. Microsoft está actualizando la guía que se proporciona con Team Foundation Server para que incluya las funciones y las secuencias de trabajo específicas del desarrollo de bases de datos para las plantillas MSF y MSF para CMMI.

Back to top

Edición del esquema y objetos

Con la base de datos bajo el control de código fuente, la realización de un cambio en un objeto existente no es tan complicada. Basta con abrirla, empezar a editarla (esta acción la desprotege, de manera predeterminada) y guardar los cambios. A partir de aquí, puede registrar los cambios y continuar. Por otro lado, también podría usar la característica de aplazamiento de cambios para publicar los cambios en el servidor para su revisión por parte de otro miembro del equipo, como el DBA, antes de registrarlos.

El espacio de trabajo sin conexión potencia la colaboración en equipo. También reduce el riesgo inherente a la realización de cambios en el esquema de base de datos, gracias a la posibilidad de retroceder. Las directivas de registro de Team Foundation Server también permiten a los equipos controlar el flujo de trabajo y, así, asegurarse de que, por ejemplo, todos los cambios están asociados con un elemento de trabajo, todos los registros tienen comentarios, etc.

El espacio de trabajo sin conexión permite administrar el esquema de base de datos. Sin embargo, no proporciona un entorno de tiempo de ejecución para crear objetos, ejecutar consultas o cambiar datos de verdad. Este trabajo se realiza en una instancia activa de SQL Server, el recinto de seguridad. Cuando haya importado el esquema de producción, el próximo paso consiste en publicar el esquema en la instancia de desarrollador local de SQL Server. Para ello, debe realizar dos pasos sencillos. Primero, debe especificar la conexión de destino y nombre nuevo de la base de datos en la ficha Generar del diseñador de proyectos. Esta opción se puede establecer mediante el asistente para importación, si se usó para crear el proyecto de base de datos. A continuación, haga clic con el botón secundario del mouse en el proyecto de base de datos en el Explorador de soluciones y seleccione la opción Deploy (Implementar). Una vez que haya terminado, ya puede empezar a trabajar con su base de datos.

El diseño de objetos de base de datos consiste en agregar un elemento nuevo desde una de estas tres ubicaciones: el menú Proyecto, el menú contextual del Explorador de soluciones o el menú contextual de la vista de esquema. (Las herramientas de diseño interactivas no se incluirán en esta primera versión.) Para crear todos los objetos de base de datos, escriba las instrucciones T-SQL adecuadas. Por ejemplo, para crear una tabla nueva, seleccione el comando Agregar elemento del menú Proyecto, que abre el cuadro de diálogo Agregar nuevo elemento. A continuación, seleccione la opción Tables and Views (Tablas y vistas) de la sección Categories (Categorías), seguido por el elemento Tabla de la sección Templates (Plantillas). Por último, proporcione un nombre para la tabla nueva. Tenga en cuenta que, cuando se importa una base de datos de un servidor activo, los nombres usados para los archivos .sql del disco tendrán el formato objectname.objecttype.sql. Recuerde esto cuando prepare los estándares para los nombres de archivo de los proyectos de base de datos. No obstante, para que quede claro, el nombre que elija para el archivo es ortogonal al nombre de objeto usado en la base de datos. Una vez que haya proporcionado un nombre y cerrado el cuadro de diálogo Agregar nuevo elemento, se abrirá una ventana del editor T-SQL, que proporciona una plantilla básica como punto de partida.

El editor T-SQL que se incluye con DB Pro Edition es un editor completo y una ventana de ejecución. Es compatible con la edición con código de color, la validación de sintaxis, las estadísticas de ejecución de cliente y varios formatos de resultado. Sin embargo, esta primera versión no es compatible con IntelliSense ®. Cuando cree la tabla, puede validar la sintaxis presionando Ctrl+F5. DB Pro Edition le solicitará que establezca una conexión la primera vez que lo haga.

Sea precavido cuando trabaje con instrucciones DDL (lenguaje de definición de datos) en el editor T-SQL. La conocida tecla F5 ejecutará T-SQL y efectuará los comandos enumerados en la base de datos que haya escogido para la validación de sintaxis. Una vez que el diseño de la tabla esté terminado, puede confirmarlo en el control de código fuente o aplazarlo para su revisión.

Recuerde que, cuando se trabaja en T-SQL, los objetos definidos en DB Pro Edition son muy granulares. Los índices, restricciones y demás se crean de manera más individual. Este puede ser un cambio bastante grande en función de cómo esté acostumbrado a generar objetos de base de datos. Pongamos, por ejemplo, que quería agregar compatibilidad con subastas a una base de datos de ejemplo Northwind. La creación de una tabla de subastas que tenga una columna de identidad para la clave principal requeriría la creación, en primer lugar, de la tabla de subastas y, a continuación, de una restricción de clave principal. La creación de una restricción de clave externa también sería un paso y requeriría su propio archivo .sql.

A medida que agregue objetos nuevos a una base de datos, también realizará cambios en los objetos existentes. Algunos cambios no son demasiado malos, como la adición de un control de errores adicional a un procedimiento almacenado. Otros cambios son un rediseño más importante, y empezarán a asaltarle palabras como refactorización. El cambio de nombres de objeto, un aspecto peliagudo de refactorización en bases de datos, se realiza mediante una herramienta de refactorización que proporciona DB Pro Edition.

Para cambiar el nombre de un objeto, primero debe encontrarlo con la ventana Vista de esquema. A continuación, haga clic con el botón secundario del mouse sobre el objeto y seleccione Refactor | Rename (Refactorizar | Cambiar nombre). El primer cuadro de diálogo que aparece (consulte la figura 2) le permite especificar el nombre nuevo, así como indicar si desea realizar una vista previa de los cambios, si desea que se genere un registro y cómo desea administrar las referencias incompletas a pruebas unitarias y secuencias de comandos. Al hacer clic en Aceptar para continuar, aparecerá el cuadro de diálogo Preview Changes (Vista previa de cambios) (consulte la figura 3) si acepta las opciones predeterminadas.

Figura 2 El cuadro de diálogo Rename (Cambiar nombre)
Figura 2 El cuadro de diálogo Rename (Cambiar nombre) (Hacer clic en la imagen para reducirla)

Figura 2 El cuadro de diálogo Rename (Cambiar nombre)
Figura 2 El cuadro de diálogo Rename (Cambiar nombre) (Hacer clic en la imagen para ampliarla)

Figura 3 El cuadro de diálogo Preview Changes (Vista previa de cambios)
Figura 3 El cuadro de diálogo Preview Changes (Vista previa de cambios) (Hacer clic en la imagen para reducirla)

Figura 3 El cuadro de diálogo Preview Changes (Vista previa de cambios)
Figura 3 El cuadro de diálogo Preview Changes (Vista previa de cambios) (Hacer clic en la imagen para ampliarla)

Una vista de árbol muestra todos los elementos que deben actualizarse. DB Pro Edition no sólo busca cambios en el proyecto de base de datos, sino que también examina las pruebas unitarias de la base de datos, los archivos de generación de datos y los archivos .sql de compatibilidad adicionales.

Al ampliar un elemento, se visualizan todos los cambios; al hacer clic en un elemento, se muestra el T-SQL nuevo; y, al hacer clic en un cambio específico, se resalta el nombre de objeto nuevo. Suponiendo que los cambios sean correctos, haga clic en el botón Aplicar. Recuerde que esta operación sólo aplicará los cambios a la copia del esquema del espacio de trabajo local. Si está usando el control de código fuente, tendrá que confirmar los cambios. También tendrá que implementar una secuencia de comandos de actualización para que los cambios se muestren en una base de datos existente, preferiblemente, en la copia del recinto de seguridad.

Back to top

Generación de datos

Las aplicaciones de base de datos conllevan un problema controvertido. Se necesitan datos, pero las restricciones legales y de seguridad le impiden, a menudo, trabajar con copias de datos de producción. Además, las tablas nuevas son poco interesantes sin datos, al igual que los objetos que trabajan con dichas tablas, como los procedimientos almacenados.

DB Pro Edition proporciona herramientas de generación de datos enriquecidos para facilitar el desarrollo. Un proyecto de base de datos puede contener cualquier cantidad de planes de generación de datos. Cada plan admite la generación de datos para una o más tablas del esquema. Si habilita una tabla para la generación de datos, especifique un plan de generación de datos para cada columna. Puede usar los generadores integrados o escribir sus propios generadores de datos personalizados.

Las herramientas de generación de datos proporcionadas le permiten generar el mismo conjunto de datos de prueba repetibles a lo largo del tiempo, suponiendo que los generadores de datos son deterministas. Esto proporciona una línea de base coherente en la que puede ejecutar todas sus pruebas.

En la versión distribuida comercialmente, encontrará varios generadores estándar diferentes. Cuando defina un plan de generación de datos, DB Pro Edition asignará automáticamente un generador de valores predeterminados según el tipo de datos de la columna. Además, DB Pro Edition reconoce las columnas que aplican las restricciones, como las columnas de claves externas.

Puede usar los generadores de valores, disponibles para la mayoría de los tipos de datos integrados (como cadenas, enteros, GUID) para generar datos arbitrarios para una columna. Cada generador de valores es compatible con un conjunto de propiedades para controlar la generación. Por ejemplo, en el caso de tipos de datos de cadena como NVARCHAR, puede establecer propiedades como longitud mínima, longitud máxima y porcentaje nulo. Si los requisitos de la columna son más complejos, puede usar el generador de expresiones regulares para generar números de teléfono, códigos postales y similares. Puede usar el generador de datos enlazados para cargar los datos actuales de la tablas, o de otra base de datos compatible, en la base de datos. Gracias a la posibilidad de crear generadores personalizados mediante código administrado, no debería tener problema para crear planes de generación de datos muy útiles.

Back to top

Pruebas unitarias

Probablemente utilice la prueba unitaria para el código de Visual Basic® o Visual C#®. Y es todavía más probable que no utilice esta eficaz técnica para la prueba de procedimientos almacenados, funciones y desencadenadores. DB Pro Edition simplifica la noción de un mecanismo repetible para probar los objetos mencionados previamente y lo automatiza. Incluye pruebas unitarias de base de datos que puede usar como parte de un proyecto de prueba estándar de Team System. Las pruebas unitarias son T-SQL asignadas a archivos de clase de Visual Basic o Visual C# y que posibilitan una personalización avanzada.

La prueba unitaria de DB Pro Edition se usa para validar el contrato entre el esquema de base de datos y las aplicaciones que consumen dicho esquema. El inicio es fácil, ya que la base de datos de ejemplo Northwind tiene varios procedimientos almacenados con los que puede empezar a practicar.

Cuando haya importado la base de datos Northwind, le recomendamos que busque el procedimiento almacenado CustOrderHist a través de la ventana Vista de esquema. Al hacer clic con el botón secundario del mouse sobre el objeto, aparecerá una opción para crear pruebas unitarias. Si la selecciona, aparecerá el cuadro de diálogo que se muestra en la figura 4.

El cuadro de diálogo se divide en tres grupos. Use el grupo de selección Current (Actual) para especificar los elementos para los que DB Pro Edition debe generar pruebas unitarias. Puede seleccionar un número ilimitado de procedimientos almacenados, funciones o desencadenantes. (Observe que el cuadro de diálogo de la figura 4 no muestra un nodo de funciones o desencadenantes, puesto que la base de datos Northwind sólo tiene procedimientos almacenados.)

Figura 4 El cuadro de diálogo Create Unit Tests (Crear pruebas unitarias)
Figura 4 El cuadro de diálogo Create Unit Tests (Crear pruebas unitarias) (Hacer clic en la imagen para reducirla)

Figura 4 El cuadro de diálogo Create Unit Tests (Crear pruebas unitarias)
Figura 4 El cuadro de diálogo Create Unit Tests (Crear pruebas unitarias) (Hacer clic en la imagen para ampliarla)

En el grupo de proyecto Output (Resultados), defina si desea crear un proyecto de prueba nuevo o agregar pruebas unitarias nuevas a un proyecto existente. Si va a crear un proyecto nuevo, elija el lenguaje de programación predeterminado (Visual Basic o Visual C#). Por último, especifique un nombre de clase nuevo o seleccione una clase existente (si ha seleccionado un proyecto de prueba existente).

La primera vez que cree pruebas unitarias para una base de datos y se encuentre con el cuadro de diálogo Create Unit Tests (Crear pruebas unitarias), puede que tenga la tentación de seleccionarlo todo y presionar OK (Aceptar). No lo haga. ¿Está seguro de que desea todos los objetos que se pueden probar en la misma clase? ¿Y los quiere todos en el mismo proyecto de prueba? Al igual que no incluye todo el código en una sola clase de una sola biblioteca de clases, probablemente tampoco desea tener todas las pruebas en una configuración tan limitadora. La posibilidad de que la base de datos use esquemas, supone un buen mecanismo de factorización. Piénselo antes de presionar OK (Aceptar).

Para este ejemplo, seleccione los procedimientos almacenados CustOrdersOrders y CustOrdersDetails. DB Pro Edition pone una marca al lado de CustOrderHist automáticamente. Se generará automáticamente una secuencia de comandos de prueba para cada objeto de programación que seleccione (probablemente tendrá que personalizar estas secuencias). Elija un lenguaje de programación, cambie el nombre del proyecto a NorthwindTests, cambie el nombre de la clase a Customers y haga clic en OK (Aceptar) para generar el proyecto de prueba y las pruebas unitarias. (Tenga en cuenta que la elección de un lenguaje de programación no implica tener que usarlo, ya que puede hacer todo lo necesario con T-SQL.) Tras presionar OK (Aceptar), aparecerá el cuadro de diálogo Test Project Configuration (Configuración del proyecto de prueba) (consulte la figura 5). Empezando por arriba, establezca todos los valores de conexión de la primera sección.

Figura 5 Cuadro de diálogo Test Project Configuration (Configuración del proyecto de prueba)
Figura 5 Cuadro de diálogo Test Project Configuration (Configuración del proyecto de prueba) (Hacer clic en la imagen para reducirla)

Figura 5 Cuadro de diálogo Test Project Configuration (Configuración del proyecto de prueba)
Figura 5 Cuadro de diálogo Test Project Configuration (Configuración del proyecto de prueba) (Hacer clic en la imagen para ampliarla)

El primer elemento le permite especificar la conexión con el servidor de base de datos activo que se usará en la ejecución de las pruebas unitarias. El segundo elemento le permite especificar la conexión que desea usar en la validación de pruebas unitarias.

Considere la posibilidad de usar dos conexiones diferentes. Establezca la primera conexión de ejecución para que se ejecute con credenciales de una cuenta de usuario típica que ejecutarán el objeto que está probando. Establezca la segunda conexión de validación para que se ejecute con credenciales de un usuario con privilegios elevados. Si especifica estas dos conexiones, el tiempo de ejecución de prueba ejecuta procedimientos previos a la prueba, posteriores a la prueba, de inicialización y de limpieza mediante la conexión de validación; si no, usa la conexión de ejecución. Esto es especialmente útil porque muchas operaciones de validación, al igual que la limpieza de tablas, requieren privilegios elevados.

Cuando haya definido las conexiones, establezca las opciones de implementación en la siguiente sección del cuadro de diálogo. Puede escoger entre implementar un esquema de base de datos nuevo o actualizado antes de ejecutar la prueba unitaria especificando un proyecto de DB Pro Edition existente. Especifique también la configuración de implementación que desee usar. Por último puede elegir un plan de generación de datos para ejecutar. El tiempo de ejecución de prueba ejecuta el plan de generación de datos tras implementar la base de datos (si se ha seleccionado), pero antes ejecuta las pruebas.

Si decide generar datos, puede hacer que el tiempo de ejecución de prueba borre las tablas antes de cargar datos nuevos. Si está siguiendo estos pasos, elija la misma conexión Northwind que usó para crear el proyecto de base de datos para la conexión de ejecución, acepte los valores predeterminados para las demás configuraciones y haga clic en OK (Aceptar). La generación del proyecto de prueba finaliza con el diseñador de pruebas unitarias de base de datos abierto, mostrando el código T-SQL generado para ayudarle a empezar (consulte la figura 6).

Figura 6 Diseñador de pruebas
Figura 6 Diseñador de pruebas (Hacer clic en la imagen para reducirla)

Figura 6 Diseñador de pruebas
Figura 6 Diseñador de pruebas (Hacer clic en la imagen para ampliarla)

El diseñador es compatible con un editor de secuencias de comandos T-SQL y un editor de clases para Visual Basic y Visual C#. Verá que la ventana se divide en dos secciones: un editor y un administrador de condiciones.

Cada clase de prueba unitaria de base de datos puede contener una o más pruebas unitarias de base de datos y cada prueba unitaria está compuesta por un máximo de tres secuencias de comandos: una prueba anterior, una prueba y una prueba posterior; pero sólo es necesaria la secuencia de comandos de prueba. Además, cada clase de prueba unitaria de base de datos admite secuencias de comandos comunes de prueba anterior y prueba posterior. Al principio del diseñador, encontrará una barra de exploración donde puede elegir la prueba unitaria activa y la secuencia de comandos de prueba activa.

Las pruebas que haya generado tendrán la condición de prueba predeterminada de no concluyente. Las condiciones de prueba se administran en la parte inferior del diseñador; cada prueba puede tener más de una condición de prueba. La falta de condiciones de prueba hará que la prueba se apruebe automáticamente cuando se ejecuta. Por este motivo, el uso predeterminado de la condición de prueba no concluyente garantiza que se edita la secuencia de comandos generada automáticamente y se definen condiciones de prueba significativas.

En el caso del ejemplo dbo_CustOrderHistTest, modifique el T-SQL generado automáticamente para proporcionar un Id. de cliente, como ALFKI. A continuación, seleccione la condición de prueba predeterminada y elimínela haciendo clic en el botón Delete (Eliminar) (a la derecha del cuadro combinado Test Conditions [Condiciones de prueba]). Si amplía el cuadro combinado Test Conditions (Condiciones de prueba), verá una lista de condiciones de prueba integradas, incluidas Execution Time, Not Empty ResultSet y Row Count (Tiempo de ejecución, Conjunto de resultados no vacío y Recuento de filas). Además, puede escribir sus propias condiciones de prueba personalizadas mediante código administrado.

Para la prueba unitaria dbo_CustOrderHistTest, agregue la condición de prueba Not Empty ResultSet (Conjunto de resultados no vacío). Agregue también la condición de prueba Row Count (Recuento de filas) y cambie la propiedad Row Count a 11. Observe que puede cambiar el nombre de cada condición de prueba y habilitar o deshabilitar condiciones de prueba según sea necesario.

Con la ventana del diseñador activa, presione F5 para ejecutar las pruebas. Esta acción guarda el proyecto y lo compila. Entonces, el motor de prueba ejecuta todas las pruebas unitarias. En la figura 7 se detalla el flujo de ejecución de una clase de prueba unitaria de base de datos.

Figura 7 Ejecución de prueba unitaria de base de datos
Figura 7 Ejecución de prueba unitaria de base de datos (Hacer clic en la imagen para reducirla)

Figura 7 Ejecución de prueba unitaria de base de datos
Figura 7 Ejecución de prueba unitaria de base de datos (Hacer clic en la imagen para ampliarla)

Para ejecutar una prueba individual, abra la ventana Vista de pruebas, seleccione una prueba unitaria determinada, haga clic con el botón secundario del mouse sobre ella y seleccione el comando Ejecutar selección. También puede depurar las pruebas. Si usa DB Pro Edition con Team Foundation Server, puede publicar los resultados de la prueba en Team Foundation Server y hacer que las pruebas se ejecuten como parte de las construcciones en equipo. Además, si está ejecutando una versión de Visual Studio 2005 que incluye las características de Team Test, puede crear un número ilimitado de listas de pruebas para agrupar de manera lógica las pruebas en diferentes conjuntos de prueba que contengan cualquier tipo de prueba válida.

Back to top

Comparación de bases de datos

Cuando haya efectuado todas estas tareas en la base de datos, habrá llegado el momento de trasladar los cambios al sistema de prueba. DB Pro Edition le permite comparar el esquema del proyecto con cualquier base de datos que esté en ejecución. También puede comparar los datos de las tablas y vistas de dos bases de datos usando las herramientas de comparación de datos. Puede ejecutar las herramientas de comparación de datos o de esquemas con o sin un proyecto de DB Pro Edition abierto.

La herramienta de comparación de esquemas se puede usar para comparar dos esquemas y, si se desea, generar una secuencia de comandos de cambio DDL. Se puede aplicar la secuencia de comandos inmediatamente desde DB Pro Edition o exportarla para usarla más tarde. Para tener acceso a la herramienta de comparación de esquemas, vaya a Data | Schema Compare | New Schema Comparison (Datos – Comparación de esquemas – Nueva comparación de esquemas). Se abre el cuadro de diálogo New Schema Comparison (Nueva comparación de esquemas), donde puede especificar los esquemas de origen y de destino. Puede comparar un proyecto de DB Pro Edition con una base de datos o comparar una base de datos con otra.

Una vez que haya definido un origen y un destino, empieza la comparación. La ventana Schema Compare (Comparación de esquemas), que tiene tres secciones, se abre y muestra los resultados. En la sección superior, hay una lista de todos los objetos de esquema, agrupados por tipo. En la sección Object Definitions (Definiciones de objeto), de sólo lectura, se muestran dos ventanas de comparación con el T-SQL del objeto seleccionado actualmente. En la ventana Schema Update Script (Secuencia de comandos de actualización de esquema), de sólo lectura, se muestra la secuencia de comandos de actualización propuesta.

Puede filtrar los objetos visualizados según si los resultados de la comparación son diferente, falta, nuevo o igual. Cuando estudie los objetos, puede incluirlos o excluirlos de la secuencia de comandos de actualización de esquemas cambiando la propiedad Update Action del elemento. DB Pro Edition establece la propiedad Update Action en Skip para objetos iguales. Todos los demás objetos están establecidos en Create, Update o Drop y la propiedad Update Action predeterminada se puede cambiar a Skip. A continuación, puede filtrar fácilmente los objetos que desea modificar y los objetos que desea omitir. Mientras tanto, DB Pro Edition actualiza la secuencia de comandos propuesta en tiempo real.

Cuando encuentre la secuencia de comandos de actualización que desea, tiene varias opciones. Si es atrevido, puede escribir los cambios en el esquema de destino. Puede que sea lo más adecuado para su laboratorio, pero el DBA seguramente no lo apruebe. Si no, puede exportar la secuencia de comandos de actualización a un archivo o al editor T-SQL integrado de DB Pro Edition. Después de revisarlo concienzudamente, ya puede actualizar la base de datos de destino. Puede controlar cómo se realizan las comparaciones de esquemas a través de Tools | Options | Database Tools | Schema Compare (Herramientas- Opciones – Herramientas de base de datos – Comparación de esquemas).

Para comparar datos, primero especifique las bases de datos de origen y de destino. Las tablas y las vistas deben tener el mismo nombre, el mismo propietario y esquemas coincidentes. Las tablas deben tener el mismo diseño de índice y la misma clave. Para iniciar el asistente, seleccione el elemento de menú Data | Data Compare | New Data Comparison (Datos – Comparación de datos – Nueva comparación de datos). Hay varios opciones relacionadas con el proceso de comparación de datos que se pueden ajustar; para ello, vaya a Tools | Options | Database Tools | Data Compare (Herramientas – Opciones – Herramientas de base de datos – Comparación de datos). Cuando haya terminado la comparación de datos, puede usar la secuencia de comandos generada para trasladar los datos entre las bases de datos de origen y de destino.

Back to top

Generación e implementación

Hemos visto que se puede generar una secuencia de comandos de actualización T-SQL manualmente mediante la herramienta de comparación de esquemas. No obstante, como parte del proceso de generación, DB Pro Edition puede generar una secuencia de comandos completa para implementar el proyecto de base de datos. Esta secuencia de comandos de implementación puede llevar a cabo una generación completa o una actualización progresiva. El proceso de generación también puede consolidar todas las secuencias de comandos anteriores y posteriores a la implementación en una sola secuencia de comandos completa. Puede implementar la secuencia de comandos mediante el comando Generar | Implementar selección desde Visual Studio 2005.

En las propiedades del proyecto, encontrará varias opciones para controlar y ajustar el proceso de generación. La ficha Generar contiene la configuración principal, como la conexión de destino, el nombre de la base de datos de destino y la implementación progresiva de bloques por si se produce una pérdida de datos. Verá que también hay una ficha Eventos de generación, que se puede usar para escribir los comandos de eventos anteriores y posteriores a la generación. DB Pro Edition usa MSBuild para el proceso de generación y es compatible con la integración de Team Build si se usa Team Foundation Server.

Back to top

Conclusión

Si es un profesional que trabaja con SQL Server 2000 o SQL Server 2005, Visual Studio 2005 Team Edition para Database Professionals es una herramienta esencial para generar soluciones con copia en una base de datos. El producto ofrece una característica enriquecida diseñada especialmente para una primera versión que cambiará su manera de administrar bases de datos en un entorno de desarrollo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s