Iniciar el desarrollo en equipo de bases de datos grandes
Antes de poder utilizar Visual Studio para administrar los cambios de un esquema de base de datos, primero se crea un proyecto de base de datos, proyecto de servidor o proyecto de aplicación de capa de datos y, a continuación, se importan los objetos y valores de la base de datos que desea administrar. Si desea administrar los cambios en una base de datos muy grande, quizá desee dividir los objetos entre varios proyectos de base de datos. Siguiendo este ejercicio, puede controlar qué equipos o desarrolladores de software pueden agregar, modificar o eliminar código en las diferentes secciones de la base de datos.
Puede utilizar dos enfoques para separar la base de datos en partes menores:
Proyectos compuestos: puede definir secciones de la base de datos en dos o más proyectos de base de datos (en la misma solución, o puede hacer referencia a un archivo .dbschema compilado) vinculados por referencias de proyecto de base de datos. Al implementar el proyecto que contiene la referencia, también implementará todos los proyectos a los que hace referencia. No puede tener referencias circulares entre los proyectos de un proyecto compuesto.
Proyectos parciales: puede exportar una sección del proyecto de base de datos en forma de un archivo .files. A continuación, cree un segundo proyecto de base de datos e incluya el proyecto parcial (el archivo .files). A continuación, puede configurar los permisos de escritura en los archivos originales para restringir los cambios en esos archivos. Por consiguiente, los desarrolladores de software que trabajan en el segundo proyecto pueden crear objetos adicionales que hacen referencia a los objetos de solo lectura pero no los modifican. Al compilar e implementar el segundo proyecto, se compila una copia completa de la base de datos, incluso las secciones de solo lectura. Puede tener referencias circulares en un proyecto parcial.
Cada enfoque tiene limitaciones, tal y como se detalla más adelante en este tema.
Especificar un tipo de proyecto de base de datos
Al crear un proyecto de base de datos, especifique el tipo de proyecto que corresponda a su versión de SQL Server. Por ejemplo, si la base de datos que desea administrar está basada en SQL Server 2005, especifique Proyecto de base de datos de SQL Server 2005 o Asistente para SQL Server 2005. Si utiliza el asistente, no solo puede crear el proyecto, sino también configurar algunos valores de compilación e implementación e importar objetos de base de datos y valores al mismo tiempo.
Importar valores y objetos de base de datos
Después de crear el proyecto, puede importar los objetos y valores desde una instancia de base de datos o desde un script. Al importar una base de datos de un script, 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 cuando importe un esquema grande. Sin embargo, los miembros del equipo no pueden introducir 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, problemas de nomenclatura y problemas de rendimiento. Para obtener más información, vea Analizar el código de base de datos para mejorar la calidad del código.
Tareas comunes
Tareas comunes |
Contenido adicional |
---|---|
Obtenga más información sobre proyectos de base de datos y las limitaciones de proyectos parciales y compuestos: puede leer sobre los conceptos básicos de cómo administrar los cambios de esquema utilizando proyectos de base de datos. |
|
Obtenga el ejercicio práctico: puede seguir un tutorial preliminar para familiarizarse con cómo crear particiones de un proyecto de base de datos utilizando proyectos parciales o utilizando proyectos compuestos. |
|
Coloque un esquema de base de datos existente bajo el control de versiones: puede crear un proyecto, configurar valores de proyecto e importar un esquema utilizando el asistente de proyecto de base de datos. También puede crear un proyecto vacío si desea importar el esquema más tarde o si no tiene permiso para tener acceso a la base de datos de la que desea importar el esquema. Después de importar el esquema, puede agregar el proyecto al control de versiones. |
|
Cree particiones de un proyecto de base de datos para compartir definiciones de objeto: puede exportar definiciones de objeto en un proyecto de base de datos y reutilizarlos en otro proyecto. Ni siquiera los miembros del equipo que pueden tener acceso al proyecto en el que se importa la definición de proyecto parcial pueden modificar los objetos importados. Por consiguiente, puede controlar los cambios en los subconjuntos de código de la base de datos. |
|
Agregue referencias para crear un proyecto compuesto: cree un proyecto compuesto agregando referencias a un proyecto de base de datos pero sin especificar valores para las variables de base de datos y servidor. Al implementar un proyecto, también se implementan los proyectos a los que haga referencia. |
Usos y limitaciones de proyectos parciales
La ilustración siguiente muestra un escenario típico que implica proyectos parciales:
Utilizar proyectos parciales en la edición de bases de datos
En este ejemplo, un proyecto contiene dos conjuntos de objetos. Desea que otro desarrollador de software u otro equipo agreguen procedimientos almacenados al proyecto, pero desea impedirles que realicen cambios accidentales en otros objetos. Para lograr este objetivo utilizando proyectos parciales, debe seguir estos pasos:
Exporte los grupos de objetos, ya sea por esquema o por tipo de objeto, a A.files y B.files.
Cree un segundo proyecto de base de datos en que el otro desarrollador de software o el otro equipo crearán procedimientos almacenados (conocidos a veces como sprocs).
Importe los proyectos parciales exportados, A.files y B.files, en el segundo proyecto de base de datos.
Restrinja los permisos de control de código fuente sobre los objetos de los proyectos parciales importados para permitir únicamente el acceso de solo lectura.
En este punto, el otro desarrollador o el otro equipo puede agregar objetos, así como compilar e implementar su proyecto para probar sus cambios.
Quizá no pueda importar el proyecto parcial (el archivo .files) en otro proyecto de base de datos si la base de datos contiene objetos que tengan nombres largos o si la ruta de acceso en la que se creó el proyecto de base de datos es larga. Puede evitar estos problemas considerando las sugerencias siguientes:
Cree los proyectos de base de datos en una carpeta que tenga un nombre de ruta de acceso más corto. Por ejemplo, es posible que "D:\MyProjects" sea una opción mejor que "C:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects".
Evite usar nombres muy largos para los objetos de base de datos. Las claves externas son el tipo más común de objeto con nombres largos. Si el nombre de la clave externa es "FK_ReferencingTable_ReferencedTable_ReferencedColumn1_ReferencedColumn2", podrían aparecer errores al intentar importar un proyecto parcial que contenga la definición de esa clave.
Usos y limitaciones de proyectos compuestos
La ilustración siguiente muestra un escenario típico que implica proyectos compuestos:
Utilizar proyectos compuestos en la edición de bases de datos
En este ejemplo, puede crear un proyecto de base de datos que contenga las definiciones de los esquemas. A continuación, cree un segundo proyecto de base de datos que contenga las definiciones de las tablas y vistas y un tercer proyecto de base de datos que contiene las definiciones de cualquier procedimiento almacenado. El tercer proyecto (Proyecto de base de datos C) tiene referencias a los otros dos proyectos de base de datos. Al compilar e implementar el tercer proyecto, también implementará automáticamente los otros proyectos.
Si utiliza proyectos compuestos, debe poder compilar e implementar cada proyecto independientemente. No se puede tener dependencias circulares entre los proyectos de un proyecto compuesto. Puede utilizar proyectos compuestos para crear particiones de la base de datos por tipo de objeto. Por ejemplo, puede colocar los esquemas en un proyecto, las tablas y las vistas en otro proyecto y los procedimientos almacenados en un tercer proyecto.
Escenarios relacionados
Iniciar el desarrollo en equipo de bases de datos
Describe cómo crear una representación sin conexión de un esquema de base de datos en un proyecto de base de datos y agregar el proyecto al control de versiones.Iniciar el desarrollo en equipo de bases de datos que hacen referencia a otras bases de datos
Describe cómo crear una representación sin conexión de un esquema de base de datos, definir referencias a otras bases de datos, especificar valores para variables para los entornos de distribución de destino y agregar el proyecto al control de versiones.Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de SQLCLR
Describe cómo crear una representación sin conexión de un esquema de base de datos, definir referencias a ensamblados que contienen objetos de Common Language Runtime (CLR) de SQL, definir objetos de base de datos que hagan referencia a esos objetos SQLCLR y agregar el proyecto al control de versiones.Iniciar el desarrollo en equipo de bases de datos que utilizan colecciones de esquemas XML
Describe cómo crear una representación sin conexión de un esquema de la base de datos, definir referencias a un archivo XSD, definir una colección de esquemas XML que utiliza ese archivo, definir columnas que utilizan la colección de esquemas XML y agregar el proyecto al control de versiones.Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de servidor compartidos
Describe cómo crear una representación sin conexión de un esquema de base de datos, definir las referencias a un proyecto de servidor compartido, agregar referencias a objetos que se definen en el proyecto de servidor y agregar el proyecto de base de datos al control de versiones.