Compartir a través de


Ventajas de utilizar código administrado para crear objetos de base de datos

Actualización: noviembre 2007

Puede usar los lenguajes de .NET Framework además del lenguaje de programación Transact-SQL para crear objetos de base de datos, así como para recuperar y actualizar los datos de las bases de datos de Microsoft SQL Server 2005. En proyectos de Visual Basic, Visual C# o Visual C++, se pueden crear procedimientos almacenados, desencadenadores, agregados, funciones definidas por el usuario y tipos definidos por el usuario.

Nota:

De forma predeterminada, la característica de integración de Common Language Runtime (CLR) está desactivada en Microsoft SQL Server. Debe estar habilitada para poder usar elementos de proyecto de SQL Server. Para habilitar la integración de CLR, utilice la opción clr enabled del procedimiento almacenado sp_configure. Para obtener más información, vea Habilitación de la integración CLR.

En la siguiente lista aparece un resumen de las ventajas de usar un lenguaje de .NET Framework en vez de Transact-SQL:

  • Modelo de programación mejorada: los lenguajes de .NET Framework proporcionan construcciones y funcionalidades previamente no disponibles para los desarrolladores de SQL.

  • Seguridad mejorada: el código administrado ejecuta un entorno de Common Language Runtime que se hospeda en el motor de la base de datos. De esta forma, los objetos de base de datos de .NET Framework están más seguros que los procedimientos almacenados extendidos disponibles en versiones anteriores de SQL Server.

  • Tipos y agregados definidos por el usuario: los tipos y agregados definidos por el usuario son dos nuevos objetos de base de datos administrados que expanden el almacenamiento y las funcionalidades de compilación de consultas del servidor SQL Server.

  • Entorno de desarrollo común: el desarrollo de la base de datos se integra al entorno de desarrollo de Microsoft Visual Studio. Los desarrolladores utilizan las mismas herramientas para desarrollar y depurar objetos de base de datos y scripts que las que usan para escribir componentes y servicios de .NET Framework de nivel medio o nivel de cliente.

  • Mejor rendimiento: algunas funciones, como aquellas que ejecutan operaciones matemáticas en cada fila de una base de datos, pueden funcionar mejor cuando son ensamblados generados que se integran a partir de un proyecto de Visual Basic, Visual C# o Visual C++ en lugar de escribirse en Transact-SQL, que es código interpretado. Por ejemplo, se lograrán mejoras de rendimiento para las funciones, sobre todo para aquéllas que realizan operaciones con números enteros. Sin embargo, los procedimientos almacenados que sólo tienen acceso a datos no funcionarán mejor.

  • Riqueza del lenguaje: Visual Basic, Visual C# y Visual C++ proporcionan funcionalidades que no están disponibles en Transact-SQL, como las matrices, el control de excepciones sofisticado y la reutilización de código.

  • Reutilización de Código: es posible crear y distribuir con mayor facilidad una biblioteca de ensamblados administrados que un script de Transact-SQL.

  • Extensibilidad: mediante Visual Basic, Visual C# o Visual C++, es posible crear dos objetos de base de datos que no se pueden crear con Transact-SQL: agregados y tipos definidos por el usuario.

  • Utilización de conocimientos existentes: es posible utilizar y mejorar sus conocimientos en los lenguajes y desarrollar entornos en los que ya existe experiencia para crear objetos de base de datos.

  • Experiencia del programador más enriquecida: al desarrollar objetos de base de datos mediante la plantilla de proyecto de SQL Server, se cuenta con integración completa con el sistema de proyectos. Esto incluye compilación, depuración e implementación a varios servidores.

  • Estabilidad y confiabilidad: los objetos de base de datos que se crean utilizando Visual Basic, Visual C# o Visual C++ son más seguros, estables, sólidos y confiables que los procedimientos almacenados extendidos, que podrían generar pérdidas de memoria u otros problemas que reducen el rendimiento y la confiabilidad del servidor. Cuando se ejecutan procedimientos almacenados creados en Visual Basic, Visual C# o Visual C++, el procedimiento almacenado no realiza administración de memoria ni subprocesamiento y, por lo tanto, se controlan de manera más sólida.

  • Seguridad: al usar objetos de base de datos creados en Visual Basic, Visual C# o Visual C++, la seguridad de acceso a código de aquellos lenguajes se combina con los permisos basados en usuario en el servidor SQL Server.

Procedimientos almacenados y desencadenadores

Los procedimientos almacenados son una colección precompilada de instrucciones de programación, que realizan operaciones en la base de datos y que se almacenan bajo un nombre y se procesan como una unidad. Para obtener más información sobre los procedimientos almacenados, consulte la documentación del servidor SQL Server.

Un desencadenador es un tipo especial de procedimiento almacenado, que se activa al modificar datos en una tabla especificada mediante una o más de las operaciones de modificación de datos: UPDATE, INSERT o DELETE. Para obtener más información sobre desencadenadores, consulte la documentación del servidor SQL Server.

La riqueza de lenguaje de Visual Basic y Visual C# mejora el desarrollo de desencadenadores y procedimientos almacenados, sobre todo cuando se implementa una lógica de procedimientos compleja, que se necesita para aplicar las reglas de la empresa. Además, .NET Framework contiene muchas bibliotecas. De especial interés son aquéllas que le habilitan para administrar muchos aspectos de criptografía, las bibliotecas matemáticas extensas y el acceso externo a los servicios web, archivos y sistemas de comunicación entre empresas.

Funciones

Las funciones operan en uno o más valores para devolver un valor escalar o una tabla. Para obtener más información sobre los tipos de funciones que el lenguaje de programación de Transact-SQL proporciona, consulte la documentación del servidor SQL Server.

Al igual que en el caso de los procedimientos almacenados y los desencadenadores, el desarrollo de las funciones se ve mejorado por la riqueza del lenguaje de Visual Basic, Visual C# y Visual C++ y el acceso a las numerosas bibliotecas que .NET Framework contiene.

Agregados

Las funciones de agregado se utilizan para resumir todos los datos en una tabla. Realizan un cálculo en un conjunto de valores y devuelven un valor escalar único. Para obtener más información sobre las funciones de agregado proporcionadas por el lenguaje de programación Transact-SQL, consulte la documentación del servidor SQL Server.

Para complementar esas funciones de agregado, puede definir nuevos agregados que realicen funciones aritméticas más complejas. Por ejemplo, puede realizar un cálculo de los datos en varias filas y devolver un valor o crear una cadena concatenada.

Tipos definidos por el usuario

Los tipos especifican la naturaleza de los datos. Para obtener información sobre los tipos de datos del sistema proporcionados con el servidor SQL Server, consulte la documentación del servidor SQL Server.

Mediante Visual Basic, Visual C# y Visual C++, es posible definir nuevos tipos, para no limitarse a los tipos predefinidos proporcionados con el servidor SQL Server. Es posible crear tipos simples como códigos postales o más complejos para analizar la información devuelta de una transacción de tarjetas de crédito. Además, cuando se trabaja con tipos definidos por el usuario, es posible interpretar los datos y manipularlos en el cliente de SQL y en el servidor SQL Server; mediante ADO.NET, se puede descargar un ensamblado que contenga una definición de tipo del servidor SQL Server y utilizarla para examinar los datos en el cliente de SQL.

Vea también

Tareas

Cómo: Crear un proyecto de SQL Server

Cómo: Crear y ejecutar un procedimiento CLR almacenado de SQL Server

Cómo: Crear y ejecutar un desencadenador CLR de SQL Server

Cómo: Crear y ejecutar un agregado CLR de SQL Server

Cómo: Crear y ejecutar una función CLR de servidor SQL Server definido por el usuario

Cómo: Crear y ejecutar un tipo CLR de servidor SQL Server definido por el usuario

Tutorial: Crear un procedimiento almacenado en código administrado

Cómo: Depurar un procedimiento almacenado de SQL CLR

Conceptos

Introduction to SQL Server CLR Integration (ADO.NET)

Ventajas de utilizar código administrado para crear objetos de base de datos

Plantillas de elementos para proyectos de SQL Server

Referencia

Atributos para proyectos de servidor SQL Server y objetos de base de datos

Otros recursos

Depuración de bases de datos de SQL CLR