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
Iniciar el desarrollo en equipo de bases de datos
Puede administrar los cambios realizados en una base de datos creando una representación sin conexión de sus objetos y configuración, y colocando esa representación bajo el control de versiones.Iniciar el desarrollo en equipo de bases de datos que hacen referencia a otras bases de datos
Puede administrar los cambios realizados en una base de datos creando una representación sin conexión de sus objetos y configuración, y colocando esa representación bajo el control de versiones. En dicha representación, define las referencias entre bases de datos para admitir la implementación en diferentes entornos de destino.Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de SQLCLR
Puede administrar los cambios realizados en una base de datos creando una representación sin conexión de sus objetos y configuración, y colocando esa representación bajo el control de versiones. En dicha representación, agrega referencias a un ensamblado de SQLCLR y, a continuación, utiliza objetos que se definen en ese ensamblado.Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de servidor compartidos
Puede administrar los cambios realizados en una base de datos creando una representación sin conexión de sus objetos y configuración, y colocando esa representación bajo el control de versiones. En dicha representación, agrega una referencia a un proyecto de servidor compartido que contiene las definiciones de objetos de servidor, como inicio de sesión o claves.Iniciar el desarrollo en equipo de bases de datos grandes
Puede administrar los cambios realizados en una base de datos grande separando los objetos en varios proyectos.Iniciar el desarrollo en equipo de bases de datos que utilizan colecciones de esquemas XML
Puede administrar los cambios realizados en las bases de datos que utilizan una o más colecciones de esquemas XML para las columnas XML con tipo.
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