Información general acerca de los proyectos de base de datos y servidor

Puede ayudar a su organización a administrar el desarrollo de bases de datos de forma más eficaz si usa Visual Studio Premium para crear un proyecto de base de datos o un proyecto de servidor y coloca el proyecto bajo el control de versiones. Estas representaciones sin conexión contienen las definiciones de objeto, las configuraciones y los scripts de implementación que se pueden usar para crear una instancia independiente de dicha base de datos (o servidor) o para actualizar una existente.

En función de las necesidades de la organización, también puede compartir partes de proyectos o crear un proyecto compuesto. Para obtener más información, vea Compartir partes de proyectos más adelante en este tema o bien la sección "Crear proyectos compuestos mediante referencias" de Uso de referencias en proyectos de base de datos.

Tipos de proyecto disponibles

Si usa Visual Studio 2010 Premium, puede crear proyectos de base de datos, proyectos de servidor y proyectos de componente de aplicación de capa de datos (DAC).

  • Proyecto de componente de aplicación de capa de datos
    DAC es un nuevo concepto. Se introdujo con SQL Server 2008 R2y contiene la definición para una base de datos SQL Server y los objetos de instancia de apoyo que se usan en una aplicación de 3 capas o cliente-servidor. Un DAC incluye objetos de base de datos, como tablas y vistas, junto con entidades de instancia, como inicios de sesión. Puede utilizar Visual Studio para crear un proyecto de DAC, compilar un archivo de paquete de DAC y enviarlo a un administrador de bases de datos para implementarlo en una instancia del motor de base de datos de SQL Server. Para obtener una lista de las características que admiten los proyectos DAC, vea Features Supported in Data-tier Applications.

  • Proyecto de base de datos
    Un proyecto de base de datos contiene las definiciones de todos los objetos de una base de datos. Además, contiene la configuración de la base de datos, de la compilación y de la implementación.

  • Proyecto de servidor
    Un proyecto de servidor contiene las definiciones de los objetos que residen en el servidor o en la base de datos maestra del servidor. Además, contiene la configuración del servidor, de la compilación y de la implementación.

Estructura del proyecto

El Explorador de soluciones muestra el proyecto organizado por archivos. Cada elemento del Explorador de soluciones corresponde a un archivo guardado o a una carpeta. En cambio, la Vista de esquema muestra el proyecto organizado por objetos o por esquemas, lo que permite identificar los objetos de la base de datos independientemente de que se definan como archivos independientes o no.

Un proyecto de base de datos o un proyecto de servidor pueden contener los siguientes tipos de objetos:

  • Archivos de propiedades
    El proyecto de base de datos o de servidor incluye archivos en la carpeta Propiedades que contienen valores de propiedad. Puede controlar cómo se implementa el proyecto si modifica estos valores. Por ejemplo, puede especificar la configuración de la base de datos, la configuración del servidor, variables SQLCMD y permisos de base de datos. Para obtener más información, vea Archivos de propiedades en proyectos de base de datos y proyectos de servidor.

  • Planes de generación de datos
    Los planes de generación de datos contienen información sobre la forma en que se desean generar datos de pruebe realistas y representativos para una base de datos que se piensa implementar o actualizar. Para obtener más información, vea Generar datos de prueba para bases de datos mediante generadores de datos.

  • Comparaciones de esquema
    Una comparación de esquema contiene información sobre una comparación concreta entre el proyecto de base de datos y otro esquema. Puede volver a comparar el proyecto con dicho esquema si vuelve a abrir el archivo .scmp y actualiza la comparación. Para obtener más información, vea Comparar y sincronizar esquemas de base de datos.

  • Objetos de esquema
    Los objetos de esquema se definen en un conjunto de archivos .sql que se almacenan en la carpeta del proyecto. La mayoría de los objetos se definen en archivos independientes. Excepciones a esta norma son las columnas de una tabla y los parámetros de un procedimiento almacenado o una función. Las columnas se almacenan en la definición de la tabla y los parámetros en la definición del procedimiento almacenado o la función. Para obtener más información, vea Crear y modificar objetos de servidor y base de datos.

  • Scripts
    El proyecto contiene scripts anteriores y posteriores a la implementación además de otros scripts que puede usar para administrar la base de datos o el servidor. Para obtener más información, vea Crear y modificar scripts de base de datos.

Importar objetos y configuraciones

Después de crear un proyecto, puede importar los objetos y las configuraciones desde una instancia de base de datos o desde un script. Al importar una base de datos, se validan sus definiciones de objeto y las instrucciones que no se pueden analizar se colocan en el archivo ScriptsIgnoredOnImport.sql. Si importa definiciones de objeto que hagan referencia a objetos que ya no existen, debe resolver esos errores para poder compilar e implementar el proyecto. Por ejemplo, podría importar un procedimiento almacenado que haga referencia a una tabla que ya no existe. Para resolver el error, podría quitar ese procedimiento almacenado.

Quizá tenga que pasar mucho tiempo resolviendo tales errores después de importar un esquema grande. Sin embargo, los miembros del equipo no pueden incluir errores adicionales de este tipo de manera inadvertida cuando actualicen el esquema en Visual Studio Premium. Cuando modifiquen y guarden cualquier definición de objeto, se validarán todos los cambios para que los miembros del equipo puedan corregirlos inmediatamente y evitar la implementación esos errores en una base de datos activa.

Después de resolver las advertencias en las definiciones de objeto, también debe considerar el análisis del código de la base de datos en cuanto a problemas de diseño, nomenclatura y rendimiento. Para obtener más información, vea Analizar el código de base de datos para mejorar la calidad del código.

Compartir partes de proyectos

Si desea volver a usar un conjunto de archivos en más de un proyecto, puede exportar cualquier parte de un proyecto como un proyecto parcial. Esta acción crea un archivo .files, que puede incluir en uno o más proyectos. Por ejemplo, puede tener varios procedimientos almacenados comunes que usa para auditar todas las bases de datos. Puede definir estos procedimientos almacenados en un proyecto, exportarlos e incluirlos en los demás proyectos. Si actúa con este enfoque, evita la necesidad de mantener el mismo código en varios proyectos. Para obtener más información, vea Cómo: Importar y exportar proyectos de base de datos parciales.

Consideraciones de seguridad

Los proyectos de base de datos y los archivos .dbschema relacionados contienen información sobre los activos de la base de datos. De manera muy similar a la forma en que limita el acceso al código fuente, debe limitar el acceso a los proyectos de base de datos y archivos .dbschema.

Puede utilizar los siguientes métodos para controlar el acceso a los proyectos de base de datos y archivos .dbschema:

  • Utilizar el control de versiones para los proyectos y los permisos del sistema de archivos adecuados
    Puede permitir el acceso a los proyectos de base de datos solamente a los desarrolladores que lo requieran. Además, puede restringir los permisos en cualquier recurso compartido de archivos que contenga archivos de proyecto de base de datos o archivos .dbschema para evitar el acceso por parte de personas no autorizadas.

  • Crear particiones de un proyecto de base de datos mediante proyectos parciales
    Puede dividir los objetos de base de datos entre varios proyectos y utilizar permisos de control de versiones para controlar quién puede ver o cambiar dichos proyectos. Para obtener más información, vea Iniciar el desarrollo en equipo de bases de datos grandes.

  • Crear un archivo .dbschema con los cuerpos de procedimiento vacíos
    Puede crear una copia de los procedimientos almacenados que no contenga implementación y compartir el archivo .dbschema de dicha copia con los desarrolladores que deben llamar a dichos procedimientos pero que no tienen por qué ver su implementación. Para obtener más información sobre cómo hacer referencia a los archivos .dbschema, vea Uso de referencias en proyectos de base de datos.

Escenarios relacionados

Vea también

Tareas

Tutorial: Crear e implementar una nueva base de datos con control de versiones

Tutorial: Agregar un esquema de base de datos al sistema de control de versiones

Conceptos

Compilar e implementar bases de datos en un entorno de desarrollo aislado

Configurar proyectos de base de datos y realizar una implementación de prueba

Escribir y cambiar código de base de datos