PortalSQL.Com
Bienvenido a tu sitio web sobre tecnologías Microsoft de desarrollo en general y sobre Sql-Server, Visual Basic y V.Studio .NET en particular.
Mantienen este site Emilio Boucau y Miguel Egea.
Contigo desde Agosto de 2001

Si lo que quieres es comprar SQL-Server ...

 

 

 

 

 

 

Trabajando con SQL Server 2005

Microsoft SQL Server 2005 viene con muchas nuevas características comparadas con las versiones anteriores. Los desarrolladores de base de datos necesitan estar al tanto de la nueva funcionalidad incluida en SQL Server 2005 para planificar soluciones de negocio, además de aprender como usar el nuevo entorno de desarrollo para desarrollar estas soluciones.

En este apartado se mostrará las principales características nuevas y las mejoras en SQL Server 2005 y se describirá las nuevas herramientas de desarrollo.

Uno de los cambios importantes de los que tiene que estar conciente es la separación del esquema y el objeto propietario en esta versión.

En las versiones anteriores, los objetos de las bases de datos tales como las tablas y vistas se creaban automáticamente en un esquema implícito basado en el nombre del usuario quien las creó.

En SQL Server 2005, se puede crear esquemas explícitos y usarlos para organizar los objetos de base de datos en espacios de nombre lógicos (logical namespaces). Las bases de datos de ejemplo que vienen con SQL Server 2005 reflejan esta nueva filosofía de trabajo, y verá muchos esquemas usados en los ejemplos de código que aparecen en la ayuda del producto. Por lo tanto deberíamos habituarnos a usar el objeto con el respectivo prefijo del esquema apropiado en las sentencias Transact-SQL para hacer que el código no sea ambiguo y para minimizar los errores.

Los temas específicos a tratar son:

·         Componentes y Arquitectura de SQL Server 2005.

·         Uso del SQL Server Management Studio para crear soluciones de base de datos.

·         Uso de las características de seguridad en SQL Server 2005.

Un Nuevo Paradigma para Desarrollo de Base de Datos

Con el lanzamiento de Microsoft SQL Server 2005, el mundo del desarrollo de bases de datos esta cambiando. Como desarrollador de bases de datos, usted tiene la opción de ubicar su código apropiadamente en relación a su funcionalidad, acceder datos en formatos nativos como XML, y construir sistemas complejos que se manejen por el poder del servidor de bases de datos. El desarrollo de bases de datos se esta volviendo más integrado que nunca, y todas las herramientas que usted necesita están al alcance de su mano.

En este apartado se discute algunas de las características de SQL Server 2005 que le permitirán construir una nueva clase de aplicación de base de datos.

Componentes de SQL Server 2005

SQL Server 2005 es más que un sistema de administración de base de datos. Éste incluye múltiples componentes y servicios que lo convierten en una plataforma integral para aplicaciones corporativas.

A continuación se detallan los componentes de SQL Server 2005.

Relational Dabatabase Engine

Motor de base de datos relacional. Este es el corazón de SQL Server 2005 y proporciona un alto rendimiento, escalabilidad, entorno seguro para el almacenamiento, recuperación y modificación de datos relacionales o en formato XML (Extensible Markup Language).

Figura 1.1 – Motor de Base de Datos Relacional

Análisis Services

Servicio de Análisis. Estos servicios son los cimientos básicos para una poderosa solución de negocios inteligente que soporte aplicaciones con procesamiento analítico en línea (OLAP) y minería de datos.

Figura 1.2 – Servicio de Análisis

SQL Server Integration Services (SSIS)

Servicios de Integración SQL Server. Se trata de un motor para construir soluciones de importación y exportación de datos para hacer transformaciones sobre los datos según se transfieren.

 

Figura 1.3 – Servicios de Integración SQL Sever (SSIS)

 

Notification Services

Servicios de Notificación. Es un marco de trabajo para soluciones en las cuales se les envía notificaciones as los suscriptores cuando ocurren ciertos eventos. Las notificaciones pueden ser generadas eficientemente y enviadas a múltiples tipos de dispositivos.

Microsoft SQL Server Notification Services es una plataforma para desarrollar e instalar aplicaciones que generan y envían notificaciones a los usuarios. Las notificaciones son mensajes personalizados y oportunos que pueden ser enviados a una amplia variedad de dispositivos.

Las notificaciones reflejan las preferencias del suscriptor. El suscriptor ingresa una suscripción para expresar un interés en información. Por ejemplo, “notifíqueme cuando el precio de la acción de Adventure Works llegue a $70.00,” o “notifíqueme cuando el documento de estrategia que esta escribiendo mi equipo este actualizado”.

Una notificación puede ser generada y enviada al usuario tan pronto como ocurra el evento disparador, o puede ser generada y enviada en un calendario predeterminado que especifica el usuario. La suscripción del usuario especifica cuando la notificación debe ser generada y enviada.

Las notificaciones pueden ser enviadas a una amplia variedad de dispositivos. Por ejemplo, una notificación puede ser enviada al teléfono móvil de un usuario, a su PDA, o cuenta de e-mail o Microsoft Windows Messenger. Ya que estos dispositivos suelen acompañar al usuario, las notificaciones son ideales para enviar información de alta prioridad.

Figura 1.4 – Servicios de Notificación

Reporting Services

Servicios de Informes. Servicios que extraen información de SQL Server y generan informes.

Con el lanzamiento de SQL Server 2005, Microsoft extiende un nuevo componente a su plataforma de inteligencia integrada de negocios (BI por sus siglas en ingles). SQL Server Reporting Services expande la visión de inteligencia de negocios de Microsoft haciendo que la gente correcta obtenga la información correcta, en cualquier ambiente de negocios.

Reporting Services es una plataforma completa basada en el servidor para crear, manejar y entregar reportes tradicionales e interactivos. La misma incluye todo lo que necesita para crear, distribuir y manejar reportes. Al mismo tiempo, el diseño modular y las interfases externas de programación de aplicación (APIs) de Routing Services permiten a los desarrolladores de software, proveedores de servicios y empresas integrar los reportes a sus sistemas legacy o aplicaciones de terceros.

Reporting Services esta incorporado en SQL Server 2005 e incluye:

·         Un grupo complete de herramientas para crear, manejar y ver reportes.

·         Un motor para hostear y procesar reportes

·         Una arquitectura extensible e interfases abiertas para reportes embeber reportes o integrar la solución a diversos ambientes de tecnología.

Figura 1.5 – Servicios de Informes

Service Broker

Servicio de Agente de Cambio. Un mecanismo de cola  para mensajes confiables y transaccionales basadas en una comunicación entre servicios de software.

Durante los últimos 10 años, la proliferación de aplicaciones de e-commerce ha creado la necesidad de aumentar el manejo de flujo de trabajo a través de las aplicaciones de bases de datos. Cuando un cliente en línea ingresa una orden para comprar un libro, esta orden necesita comprometer transacciones en los sistemas de inventario, envío y tarjetas de crédito, y también necesita enviar una confirmación de orden utilizando otra aplicación Web. Esperar que cada uno de estos procesos se lleve a cabo en orden no escala bien. SQL Server 2005 brinda una nueva arquitectura escalable para construir ruteo de mensajes asincrónico.

La tecnología Service Broker permite a procesos internos o externos enviar y recibir flujos de mensajes confiables y asincrónicos utilizando extensiones a lenguaje de manipulación de datos Transact-SQL. Los mensajes son enviados a una fila en la misma base de datos que envía, a otra base de datos en la misma instancia de SQL Server, o a otra instancia de SQL Server ya sea en el mismo servidor o en un servidor remoto.

Figura 1.6 – Servicio de Agente de Cambio

Native HTTP Support

Soporte nativo HTTP. Cuando se instala en Windows Server 2003, SQL Server 2005 puede responder a solicitudes hechas a través del protocolo HTTP (Hypertext Transfer Protocol). Este soporte nativo para este protocolo hace posible construir servicios Web para SQL Server sin requerir de un servidor Web como IIS (Internet Information Services).

Figura 1.7 –Soporte Nativo HTTP

En SQL Server 2005 podrá desarrollar servicios Web XML en la capa de la base de datos, convirtiendo SQL Server en un listener HTTP. Esto brinda un nuevo tipo de capacidad de acceso de datos para aplicaciones que se encuentran centralizadas alrededor de los servicios Web. En SQL Server 2005, usted puede utilizar HTTP para acceder a SQL Server directamente, sin utilizar un listener de capa media como Microsoft Internet Information Services (IIS). SQL Server expone una interfase de servicio Web, para permitir la ejecución de declaraciones de SQL y la invocación de funciones y procedimientos. Los resultados de las consultas se muestran en formato XML y puede tomar ventaja de la infraestructura de servicios Web de Visual Studio.

SQL Server Agent

Agente SQL Server. Este es un motor que permite realizar tareas programadas que automatizan el mantenimiento de la base de datos y administran tareas, eventos y alertas.

 

Figura 1.8 –  Agente SQL Server

.NET Common Language Runtime (CLR)

El CLR se hospeda en SQL Server,  haciendo posible implementar soluciones de base de datos, usando soluciones con código administrado escrito en un lenguaje .NET tal como Microsoft Visual C# .NET o Microsoft Visual Basic .NET.

Figura 1.9 – .NET common Language Runtime (CLR)

Con ésta nueva e importante característica, los programadores de bases de datos pueden tomar ventaja de la biblioteca de clases de Microsoft .NET Framework y lenguajes modernos de programación para implementar funcionalidades en el servidor. Utilizando la integración con Common Language Runtime (CLR), usted puede codificar sus procedimientos almacenados, funciones, y desencadenadores en el lenguaje .NET Framework de su elección. Microsoft Visual Basic .NET y C# ofrecen construcciones orientadas a los objetos, manejo de excepciones estructurados, vectores, espacio de nombres, y clases. Además, .NET Framework brinda miles de clases y métodos que contienen extensas capacidades incorporadas que puede utilizar fácilmente en el servidor. Muchas tareas que fueron extrañas o difíciles de realizar en Transact-SQL pueden lograrse con facilidad al utilizar código managed, además, existen dos tipos nuevos de objetos de base de datos – agregados y tipos definidos por usuarios. Ahora, puede utilizar mejor el conocimiento y las habilidades que ya tiene incorporadas para escribir código en proceso. En resumen, SQL Server 2005 le permite extender su servidor de base de datos para realizar más procesos de cálculo y operaciones en el back-end con más facilidad.

Esta integración entre SQL Server y CLR brinda varios beneficios importantes:

·         Mejora en el modelo de programación: Los lenguajes de programación que son compatibles con .NET Framework son, en muchos aspectos, más ricos que Transact-SQL, ofreciendo construcciones y capacidades que antes no estaban disponibles para desarrolladores SQL.

·         Mejoras en seguridad: El código managed corre en un ambiente CLR, el cual esta hosted por el motor de base de datos. Esto permite a los objetos de la base de datos de .NET Framework estar más seguros que los procedimientos de almacenamientos extendidos disponibles anteriormente en versiones previas de SQL Server.

·         Tipos y agregados definidos por el usuario: Dos nuevos objetos de bases de datos que expanden el almacenamiento y las capacidades de consulta de SQL Server son permitidas al hostear el CLR.

·         Ambiente de desarrollo común: El desarrollo de base de datos esta integrado con el ambiente de desarrollo de Visual Studio 2005. Usted puede utilizar las mismas herramientas para desarrollar y eliminar los errores de objetos de bases de datos y scripts que utiliza para escribir componentes y servicios .NET Framework capa media o capa cliente.

·         Performance y escalabilidad: Debido a que el código managed compila a código nativo antes de la ejecución, usted puede mejorar significativamente la performance en algunos escenarios.

Usted puede capitalizar de la integración CLR para escribir código con lógica más compleja y que sea más apropiado para tareas de cálculo, utilizando lenguajes como Visual Basic .NET y C#. Además, Visual Basic .NET y C# ofrecen capacidades orientadas a objetos como encapsulamiento, herencia, y polimorfismo.

Puede organizar fácilmente código relacionado a clases y espacio de nombres, lo que significa que puede organizar y mantener sus inversiones de código con facilidad cuando esta trabajando con grandes cantidades de código. Esta habilidad para organizar código de manera lógica y física en asambleas y espacio de nombres es un beneficio enorme, y le permitirá encontrar y relacionar diferentes pedazos de código con facilidad en una implementación grande de base de datos.

El código managed es más eficiente que Transact-SQL para procesar números y lógica de ejecución complicada, y brinda un soporte extenso a manejo de cadenas, expresiones regulares, etc. También, con la funcionalidad disponible en la biblioteca de clases .NET Framework, usted tendrá acceso completo a miles de clases pre-construidas y rutinas a las cuales podrá acceder fácilmente de cualquier procedimiento almacenado, disparadores, o funciones definidas por el usuario.

Funciones mejoradas de manejo de cadenas, funciones de matemáticas, operaciones de fechas, acceso a recursos del sistema, algoritmos de encriptación avanzados, acceso a archivos, procesamiento de imágenes y manipulación de datos XML, todos son accesibles con facilidad desde procedimientos de almacenamiento managed, funciones, disparadores y agregados.

Uno de los beneficios más importantes de código managed es la seguridad de tipo. Antes de que el código managed sea ejecutado, el CLR realiza varias verificaciones, mediante un proceso conocido como “verificación”, para asegurarse que el código es seguro. Por ejemplo, el código es verificado para asegurarse que no se lea memoria a la cual no se ha escrito.

Eligiendo entre Transact-SQL y Código Managed

Cuando usted escribe procedimientos almacenados, disparadores, y funciones definidas por el usuario, una decisión que deberá tomar es si utilizará Transact-SQL o un lenguaje de programación compatible con .NET Framework, como por ejemplo Visual Basic .NET o C#. La respuesta a esta pregunta dependerá de la situación particular en la que este involucrado; en algunas situaciones querrá utilizar Transact-SQL, mientras que en otras situaciones querrá utilizar código managed.

Transact-SQL es mejor para situaciones en las cuales el código realizara acceso a datos con lógica de procedimiento poca o casi nula. Los lenguajes de programación que son compatibles con .NET Framework son mejores para funciones de cálculo intensas y procedimientos de lógica compleja, o para situaciones en las cuales querrá tomar ventaja de la biblioteca de clases .NET Framework.

La colocación de código también es importante. Tanto Transact-SQL como el código managed corren en el servidor. Esto ubica cerca a la funcionalidad y a los datos, y le permite tomar ventaja del poder de procesamiento de un servidor. Esto es beneficioso porque disminuye el tráfico entre los datos y la capa media. Al realizar de manera sencillo el cálculo cerca de los datos, un sistema que es I/O-bound encuentra este método significativamente beneficioso. Las funciones CLR también pueden tomar ventaja del procesador de consultas de SQL Server, el cual puede procesar en paralelo y optimizar la ejecución. Por otro lado, puede querer evitar cargar a su servidor de base de datos con tareas de procesador intensivas. La mayoría de los computadores hoy en día son muy potentes, y puede querer tomar ventaja de este poder de procesamiento poniendo la mayor cantidad de código posible en el cliente. No existe un respuesta estándar para todos.

Replication

Replicación. Es un conjunto de tecnologías para copiar y distribuir datos y objetos de base de datos desde una base de datos a otra y luego sincronizarlas para mantener la consistencia.

Figura 1.10 – Replicación

 

Full-Text Search

Habilita la indexación flexible y rápida para consultas basadas en palabras claves de texto almacenado en la base de datos de  SQL Server.

Figura 1.10 – Full -Text Search

 

SQL Server Mobile Edition

SQL Server 2000 fue lanzado con SQL Server 2000 Windows CE Edition, el cual es ahora SQL Server Mobile Edition versión 3.0. Existen una cantidad de características nuevas en SQL Server Mobile Edition que se relacionan con los desarrolladores:

·         Usted puede crear una base de datos SQL Server Mobile Edition en su escritorio o en el dispositivo, directamente desde SQL Server Management Studio. También puede manipular el esquema de la base de datos de SQL Server Mobile Edition directamente desde Management Studio, sin importar si la base de datos reside en el dispositivo móvil o en el escritorio. Puede utilizar SQL Server Management Studio para correr consultas sobre la base de datos SQL Server Mobile Edition en el dispositivo o en su escritorio. También puede tomar ventaja de las nuevas características de SQL Server Mobile Edition, las cuales incluyen un plan XML que se entrega en formato GUI justo como SQL Server nativo, y la habilidad de utilizar pistas de consulta para anular el optimizador de consultas en SQL Server Mobile Edition. Por primera vez, usted puede controlar el plan de optimización en un dispositivo.

·         Ahora puede codificar contra objetos de Data Transformation Services (DTS) para intercambiar datos.

·         La nueva función SqlCeResult deriva de la función SQLResult en SQL Server 2005. Esto permite a SQL Server Mobile Edition tener un cursor actualizable. También le permite vincular a objetos de datos que están en los dispositivos.

·         Puede codificar una aplicación para sincronizar información dejando la aplicación principal abierta, y tener dos accesos a aplicaciones separados en la misma base de datos en el dispositivo al mismo tiempo.

·         Puede recibir notificaciones que puede codificar en barras de estado que le darán el estado de una sincronización. Anteriormente no existía una manera de saber el estado de una sincronización, para notificar a los usuarios que el dispositivo no había dejado de responder.

·         Puede mantener el mismo tamaño pequeño de la base de datos por medio de una política de reclamación de páginas más agresiva.

·         Puede compartir código de consultas parametrizado con sintaxis SQL Server.

Figura 1.11 – SQL Mobile Edition

Nuevas características para los Administradores de Base de Datos

 

Frecuentemente los desarrolladores de base de datos tienen que poseer ciertas habilidades o conocimientos de administración de base de datos a fin de crear una aplicación. A continuación se describe algunas de las mejoras en cuanto a la administración en SQL Server 2005.

Instalación mejorada del producto.

Los componentes de SQL Server 2005 se instalan a través de pasos sencillos gracias al programa de instalación basado en Microsoft Windows Installer (MSI), haciendo que el despliegue y mantenimiento sea más fácil que en las versiones anteriores. La rutina de instalación incluye rigurosas verificaciones de consistencia que proporcionan información crucial acerca de la compatibilidad del sistema y otros temas que pueden afectar la instalación. Estas mejoras nos ayudan a asegurarnos que las aplicaciones de bases de datos pueden instalarse en un entorno seguro y estable.

Herramientas de administración centralizadas

SQL Server 2005 incluye la herramienta de administración llamada Server Management Studio, que es una herramienta que tiene una interfase centralizada para la administración de los servidores de base de datos, Analisis Services, soluciones para SQL Server CE y los servidores de Reporting Services. Esta herramienta proporciona un soporte de control de versiones. Al tener una herramienta de administración centralizada para el desarrollo y mantenimiento de base de datos se nos facilita la colaboración en una determinada solución.

Nueva arquitectura de seguridad

La seguridad ha sido mejorada significativamente. Ahora se tiene una nueva organización jerárquica de asignación de permisos a través de sistema, donde todos los permisos son concedidos, de acuerdo a la jerarquía en la que se les asigna.

Los administradores ahora puede aplicar políticas de contraseñas a los inicios de sesión de SQL Server 2005. Las características mejoradas de seguridad de SQL Server 2005 ayudan a hacer posible la creación de aplicaciones altamente seguras.

 

Soporte de alta Disponibilidad

El soporte para las instalaciones clustered ha sido mejorado con el soporte de instancias múltiples que ahora soportan ocho nodos clusters. Además, ahora se presenta una nueva técnica llamada Database Mirroring para mantener a un servidor de respaldo en standby, el cual puede ser configurado para que entre en marcha automáticamente en el caso de que el servidor principal falle. Estas técnicas se pueden usar para asegurar que las aplicaciones de base de datos se mantengan siempre disponibles.

Mejoras en el Sistema

Las mejoras en el sistema de SQL Server 2005 incluyen la posibilidad de agregar memoria física sin reiniciar el servidor, la habilidad de tomar la ventaja que tiene Microsoft Windows Server 2003 para Address Windowing Extensions (AWE) y el uso de la memoria física mas allá de los límites de los 32 bits, y la posibilidad de ajustar la afinidad del CPU dinámicamente sin reiniciar el servicio de SQL Server. Estas mejoras hacen de que SQL Server 2005 sea una plataforma altamente escalable en la cual se pueden desarrollar soluciones de nivel empresarial.

Nuevas características para Desarrolladores de soluciones Informáticas

SQL Server 2005 proporciona una plataforma comprensiva para las aplicaciones basadas en base de datos. A continuación se describe algunas de las características que se pueden usar para construir soluciones informáticas para el mundo de hoy.

Mejoras en Transact-SQL

Ha habido muchas mejoras y adiciones al lenguaje Transact-SQL en esta versión de SQL server, incluyendo el soporte para nuevos tipos de datos, manejo de excepciones estructuradas, operadores relacionales, y funciones de ranking.

Transact-SQL ha sido por mucho tiempo la base de toda la programabilidad de SQL Server. SQL Server 2005 brinda muchas nuevas capacidades de lenguaje para desarrollar aplicaciones de bases de datos escalables. Estas mejoras incluyen manejo de errores, nuevas capacidades de consultas, y soporte para las nuevas capacidades de SQL Server Database Engine. Las mejoras en Transact-SQL en SQL Server 2005 aumentan sus poderes expresivos en escritura de consultas, permitiéndole mejorar la performance de su código y extender sus capacidades de manejo de errores. El continuo esfuerzo que se esta poniendo en mejorar Transact-SQL muestra una firme creencia acerca de su importancia en SQL Server.

Consultas Recursivas y Expresiones Comunes de Tabla

Una expresión común de tabla (CTE por sus siglas en ingles) es un grupo de resultados temporarios que pueden ser referidos a una declaración definida. Para hacerlo más sencillo, una CTE es una versión mejorada de una tabla derivada que se parece más a un tipo de vistas no persistente. Usted se remite a una CTE en la cláusula FROM de una consulta, similar a la manera en que se remite a tablas y vistas derivadas. La CTE se define solo una vez, y puede remitirse a la misma varias veces durante su consulta. En la definición de CTE, puede referirse a variables que están definidas en el mismo batch. También puede utilizar CTEs en INSERT, UPDATE, DELETE y CREATE VIEW, de manera similar a la manera en que utiliza las vistas. Sin embargo, el verdadero poder de las CTEs son sus capacidades recursivas, donde las CTEs contienen referencias a si mismas. Cuando desea referirse a los resultados de una consulta como si estuvieran en una tabla, usted utiliza tablas derivadas, pero no desea crear una vista persistente en la base de datos. Sin embargo, las tablas derivadas tienen una limitación que es relajada por las CTEs: no puede definir una tabla derivada una vez que este en su consulta y utilizarla varias veces; en su lugar, debe definir varias tablas derivadas con la misma consulta. De manera alternativa, puede definir una CTE una vez y utilizarla varias veces en una consulta sin persistirla en la base de datos.

Las CTEs no recursivas aumentan su poder de expresión. Para cada pedazo de código que utiliza una CTE no recursiva, usualmente puede escribir código más largo que obtenga los mismos resultados al utilizar otra construcción Transact-SQL, como por ejemplo tablas derivadas. El caso es diferente con CTEs recursivas. Cuando una CTE se refiere a si misma, se considera recursiva. Las CTEs recursivas son construidas de por lo menos dos partes de consulta (o miembros, en idioma de consultas recursivas). Una parte es una parte de consulta no recursiva, también denominada miembro ancla (AM por sus siglas en inglés). La otra parte es la parte de consulta recursiva, también denominada miembro recursivo (RM por sus siglas en inglés). Las partes de consultas se unen por la operación UNION ALL en una sola CTE.

Operadores Pivot Y Unpivot

SQL Server 2005 brinda dos nuevos operadores relacionales, PIVOT y UNPIVOT, los cuales utiliza en la cláusula FROM de una consulta. Estos operadores realizan alguna manipulación de un ingreso de una expresión en una tabla, y produce una tabla resultado. El operador PIVOT rota filas en columnas, posiblemente realizando agregados en el camino. Amplia la expresión de tabla de ingreso basada en una columna dinámica, generando una tabla resultado con una columna para cada valor único en la columna dinámica.

El operador PIVOT es útil para manejar escenarios de esquemas abiertos y para generar reportes entre distintas tabs. En un escenario de esquema abierto, mantiene entidades con grupos de atributos que pueden ser o no conocidos o diferentes para cada tipo de entidad. Los usuarios de su aplicación definen los atributos de manera dinámica. En lugar de predefinir muchas columnas y almacenar muchos NULLs en sus tablas, divide los atributos en diferentes filas y almacena solo los atributos relevantes para cada instancia de cada entidad. PIVOT le permite generar reportes entre distintas tabs para escenarios de esquema abierto y otros en los cuales rotan filas en columnas, posiblemente calculando los agregados a lo largo del camino, y presentando los datos en un formato útil.

El operador UNPIVOT realiza la operación opuesta a PIVOT, rotando columnas en filas. Estrecha la expresión de la tabla basándose en una columna dinámica. El operador UNPIVOT le permite normalizar los datos que han sido pivotados previamente.

Operador APPLY

Con el operador APPLY, SQL Server 2005  le permite referirse a una función valuada en la tabla en una consulta secundaria correlacionada. El operador relacional APPLY le permite invocar una función específica valuada en la tabla una vez por cada fila de una expresión externa de la tabla. Usted especifica APPLY en la cláusula FROM de una consulta, similar a la manera en que utiliza el operador relacional JOIN. APPLY se encuentra disponible en dos formatos; CROSS APPLY y OUTER APPLY.

CROSS APPLY invoca una función valuada en la tabla por cada fila en una expresión externa de la tabla. Usted puede referirse a las columnas de la tabla externa como argumentos para la función valuada de la tabla. CROSS APPLY devuelve un grupo de resultados unificados, compilados de todos los resultados devueltos por las invocaciones individuales de la función valuada de la tabla. Si la función valuada de la tabla devuelve un grupo vacío por una fila externa, la fila externa no será devuelta en el resultado.

OUTER APPLY es muy similar a CROSS APPLY, con el agregado que también devuelve filas de la tabla externa por las cuales la función valuada de la tabla devolvió un grupo vacío. Los NULLs son devueltos como los valores de columnas que corresponden a las columnas de la función valuada de la tabla.

Manejo de Excepciones para Transacciones

Las versiones previas de SQL Server requerían que usted incluyera el código de manejo de errores después de cada declaración que fuera sospechada de un error, de manera similar a Microsoft Visual Basic 6.0. Para centralizar el código de chequeo de errores, debía utilizar etiquetas y declaraciones GOTO. Es más, errores del estilo de errores de conversión de tipo de datos causaban la terminación de su batch, por lo que usted no podía atraparlos con Transact-SQL. SQL Server 2005 resuelve muchos de estos problemas al presentar un mecanismo simple pero poderoso de manejo de excepciones en el formato de una construcción TRY/CATCH Transact-SQL, similar a aquellas en Visual Basic .NET y C#. Los errores que anteriormente causaban la terminación de una declaración, nivel, batch o transacción ahora pueden ser atrapados y manejados, siempre que estos errores no sean lo suficientemente severos para causar una rotura de la conexión.

Para implementar el manejo de errores, simplemente escriba el código que desea ejecutar dentro de un bloque BEGIN TRY/END TRY, y siga con el código de manejo de errores en un bloque BEGIN CATCH/END CATCH. Note que un bloque TRY debe tener un bloque CATCH correspondiente; de lo contrario, obtendrá un error de sintaxis.

Notificaciones de Eventos DDL

SQL Server 2005 le permite capturar eventos DDL y de sistema y enviar una notificación de eventos a un servicio de Service Broker. A diferencia de los disparadores que son procesados sincronizadamente, una notificación de evento es un mecanismo de evento que permite la consumición asincrónica. Una notificación de evento envía datos XML a un servicio específico de Service Broker, y los consumidores de eventos los consumen de manera asincrónica. Un consumidor de eventos puede esperar por la llegada de nuevos datos utilizado extensiones a la cláusula WAITFOR de la declaración de Service Broker Receive.

Mejoras en Búsqueda de Texto Completo

SQL Server 2005 incluye soporte para aplicaciones rich de texto completo. Las capacidades de catalogo han sido mejoradas para brindar mayor flexibilidad sobre lo que ya se encuentra catalogado. La performance y escalabilidad de las consultas han sido mejoradas dramáticamente, y las nuevas herramientas de manejo brindan un mayor poder sobre la implementación de texto completo.

Mejoras de Seguridad

SQL Server 2005 se beneficia de la iniciativa Trustworthy Computing, una iniciativa de Microsoft para mejorar la experiencia de los clientes en las áreas de seguridad, privacidad, confiabilidad e integridad de negocios. Como parte de esta iniciativa que fue presentada en Enero del 2002, hoy en día Microsoft sigue los procesos de desarrollo que ayudan a asegurar que nuestros productos e instalaciones de productos sean seguras. El equipo de desarrollo de Microsoft SQL Server ha incorporado estos procesos al desarrollo de SQL Server 2005. Después del lanzamiento, Microsoft brinda soporte a los clientes y a los socios de negocios con comunicaciones acerca de problemas de seguridad. El resultado es que SQL Server 2005 incorporará las características de seguridad más extensivas que ningún otro lanzamiento de SQL Server hasta este momento.

Generalmente, estas características y mejoras se agrupan en tres áreas:

·         Restringiendo el acceso de usuarios al servidor SQL: Mayor control de acceso a SQL Server, e inversiones en mecanismos que permiten al administrador controlar el acceso a SQL Server mediante políticas.

·         Deshabilitar servicios y restringir configuraciones de servicios: Brindar a los administradores la habilidad de restringir el acceso a los recursos dentro de SQL Server, en el panorama del administrador designado y con un fino grado de granularidad, y para asegurarse que tengan un sistema fácil de manejar sin violar el principio de menor privilegios. Debido a que ciertos servicios están deshabilitados de manera predeterminada para instalaciones de nuevos servidores, ahora los clientes pueden estar más involucrados en decidir que servicios adicionales específicos desean habilitar.

·         Reduciendo la superficie de ataque para nuevas características: Comenzando con la instalación de SQL Server, la superficie de ataque se minimiza. A lo largo del ciclo de desarrollo del producto, las nuevas características fueron revisadas y evaluadas por seguridad para ayudar a reducir el área de ataque.

Soporte nativo de XML

SQL Server 2005 soporta XML en forma nativa en la base de datos. Se puede usar un tipo de datos XML para almacenar, validad y consultar información en este formato.

Servicios basados en mensajería

Service Broker (como se mostró anteriormente) es un componente de SQL Server 2005 que proporciona una plataforma para el desarrollo de aplicaciones basadas en servicio de mensajería; se pueden desarrollar servicios que se comunican en forma asíncrona usando mensajes transmitidos en cola.

Esta funcionalidad ayuda a desarrollar aplicaciones basados en servicios altamente escalables y estables.

Soporte nativo de HTTP

Soporte nativo HTTP. Cuando se instala en Windows Server 2003, SQL Server 2005 puede responder a solicitudes hechas a través del protocolo HTTP (Hypertext Transfer Protocol).

Notification Services

Servicios de Notificación. Es un marco de trabajo para soluciones en las cuales se les envía notificaciones as los suscriptores cuando ocurren ciertos eventos. Las notificaciones pueden ser generadas eficientemente y enviadas a múltiples tipos de dispositivos.

Common Language Runtime integration

El CLR se hospeda en SQL Server,  haciendo posible implementar soluciones de base de datos, usando soluciones con código administrado escrito en un lenguaje .NET tal como Microsoft Visual C# .NET o Microsoft Visual Basic .NET.

Reporting Servicies

Servicios de Informes. Servicios que extraen información de SQL Server y generan informes.

SQL Management Objects

El modelo de SQL Management Objects (SMO) es un modelo de manejo de objetos para SQL Server 2005. SMO representa mejoras significativas en diseño y arquitectura para el modelo de manejo de objetos de SQL Server.

ADO.NET

No hay muchas noticias acerca de la nueva versión de ADO .NET. Desde el nuevo soporte para notificaciones de cambios de consultas, a MARS, ADO.NET evoluciona el acceso y la manipulación de datos para alcanzar más escalabilidad y flexibilidad.

Notificación de Soporte de ADO.NET

SQL Server 2005 presenta notificación de soporte para consultas de SQL Server. Usted puede utilizar este soporte para enviar un comando a SQL Server, y pedir que se genere una notificación si ejecutar el mismo comando nuevamente produce diferentes resultados de aquellos obtenidos inicialmente. Usted logrará esto utilizando un objeto de dependencia que detecta cuando se cambian los datos subyacentes. Los comandos que son enviados al servidor mediante cualquiera de los clientes API como ADO .NET, OLE DB, Open Database Connectivity (ODBC), Microsoft ActiveX Data Objects (ADO), o SOAP pueden incluir un tag que requiere una notificación. Para cada declaración que es ejecutada como parte del pedido, el servidor crea una “Suscripción de Notificación” que se dispara una vez por cada declaración que se encuentra incluida en el pedido. Las notificaciones son entregadas mediante una fila de SQL Service Broker que las aplicaciones pueden consultar, y utilizar servicios de activación o bloqueo de declaraciones que retorna cada vez que las notificaciones están disponibles. Las notificaciones de consultas son útiles para permitir el cacheo de resultados en aplicaciones como bases de datos impulsadas por sitios Web.

Multiple Active Result Sets

Multiple active result sets (MARS) brinda la habilidad de tener más de un pedido pendiente por conexión, en particular el tener más de un grupo de resultados predeterminados abiertos por conexión. Los grupos de resultados predeterminados son grupos de resultados solo de lectura. Para los grupos de resultados predeterminados, los drivers del cliente recuperan los datos de manera transparente en trozos (trozos del tamaño del buffer Tabular Data Stream) para que los pedidos de la aplicación sean satisfechos sin tener que ir y volver al servidor (como en el caso de cursores de servidor). La aplicación puede utilizar un sencillo modelo de programación sin comprometer la performance.

Soporte de Aislamiento de Fotografía

SQL Server 2005 presenta un nuevo nivel de aislamiento de fotografía. El aislamiento de fotografía es un mecanismo en el cual las versiones de datos son almacenadas en lectores de datos. El nuevo nivel de aislamiento brinda los siguientes beneficios:

·         Aumento en la disponibilidad de datos para aplicaciones solo de lectura. Se permiten las operaciones de lectura no bloqueantes en un ambiente OLTP.

·         Detección automática mandatoria de conflictos para transacciones de escritura.

·         Migración simplificada de aplicaciones de Oracle a SQL Server.

Por ejemplo, bloquear puede causar bloqueos entre aplicaciones que están leyendo y escribiendo los mismos datos de manera simultanea. Si una transacción cambia una fila, otra transacción no puede leer la fila hasta que la escritura se comprometa. Con el aislamiento de fotografía, el lector puede acceder al valor precio de la fila.

El nivel de aislamiento de fotografía es soportado y expuesto mediante ADO, OLE DB, SQLOLEDB, Shape Provider, SQLODBC, el OLE DB Managed Provider, y el SQL Managed Provider.

SQL Management Objects

El modelo de SQL Management Objects (SMO) es un modelo de manejo de objetos para SQL Server 2005. SMO representa mejoras significativas en diseño y arquitectura para el modelo de manejo de objetos de SQL Server. Es fácil de utilizar, pero un modelo de objetos rich que esta basado en código managed de .NET Framework. SMO es la herramienta principal para desarrollar aplicaciones de manejo de bases de datos utilizando .NET Framework. SMO es utilizado por cada cuadro de dialogo en SQL Server Management Studio, y cada acción administrativa que pueda realizar en SQL Server Management Studio también puede lograrla utilizando SMO.

El nuevo modelo de objetos SMO y los APIs de Microsoft Windows Management Instrumentation (WMI) reemplazan a SQL-DMO. Cuando es posible, SMO incorpora objetos similares como SQL-DMO para más facilidad de uso. Aún puede utilizar SQL Server 2005 con SQL-DMO, pero SQL-DMO no será reemplazado para manejar características que son especificas de SQL Server 2005.

SMO y SQL-DMO

El modelo de objetos SMO es una continuación lógica del trabajo realizado en SQL-DMO. SMO es compatible con las características de SQL-DMO, conteniendo muchos de los mismos objetos. Donde es posible, se continúa el diseño original de SQL-DMO, pero SMO contiene un número de características adicionales más allá de SQL-DMO. Para obtener el máximo lenguaje de definición de datos (DDL por sus siglas en ingles) y cobertura administrativa para SQL Server 2005, SMO incorpora más de 150 clases nuevas.

Las ventajas principales de SMO se encuentran en su performance y escalabilidad. SMO tiene un modelo de objetos cached, el cual le permite cambiar varias propiedades de un objeto antes de efectuar los cambios a SQL Server. Como resultado de estos, SMO realiza menos viajes al servidor, y esto vuelve más flexibles sus objetos. SMO también ha optimizado la capacidad de producir una versión más definida de un objeto al reemplazar variables por valores (u otras variables) llamada instantiation. Lo cual significa que puede realizar esta acción con objetos parcial o completamente. También puede cargar muchos objetos rápidamente al no realizar instantiation en todas las propiedades de los objetos.

Al contrario que SQL-DMO, el cual tiene un solo directorio raíz de la aplicación que mantiene las referencias a todos los objetos de servidor creados, SMO le permite establecer múltiples raíces para servidores sin establecer una nueva conexión. SMO implementa scripting avanzado de múltiples fases, además de soportar el estilo de scripting de SQL-DMO. También puede conmutar un objeto a modo captura y capturar cualquier DDL que sea emitida por ese objeto, sin tener que aplicar cambios al servidor.

SQL-DMO también tiene objetos de computador managed que simplifican la interfase a WMI, para poder soportar el monitoreo y la configuración de servidor de WMI mediante la interfase de objetos SMO.

Tecnologías XML

XML se ha convertido en el formato común para almacenar y transferir información, y es una elección popular para información marcada, estructurada o semi-estructurada. Algunos ejemplos de este tipo de información incluyen texto (marcado para identificar estructura de documento), objetos nested (estructurados), y datos heterogéneos que pueden cambiar su estructura de una a otra instancia (semi estructurados). XML también es un estándar importante y altamente aceptado para diseminar información entre diferentes aplicaciones a través de redes locales e Internet.

Microsoft SQL Server 2000 soporta el uso de XML mediante Microsoft SQLXML, el cual le permite convertir datos relacionales a un formato XML y almacenar datos XML en tablas relacionales. Microsoft SQL Server 2005  construye sobre esta funcionalidad al soportar XML como un tipo de dato de primera clase, así como brindando un nuevo lenguaje de consulta para documentos XML y permitiéndole realizar modificaciones en el lugar.

Para soportar mejor las necesidades de usuarios trabajando con datos XML, se presenta un nuevo tipo de dato XML. Este tipo de dato tiene métodos —query(), exist(), value(), nodes(), y modify() — los cuales implementan un importante subconjunto de la especificación XML Query (XQuery). De hecho, esta especificación ha sido extendida en SQL Server 2005 con el agregado de construcciones de modificación de datos XML. Para poder soportar el tipeo de XML, se han incorporado palabras claves para registrar y manejar esquemas XML. También existen cambios en FOR XML y OPENXML, dos características que fueron presentadas en SQL Server 2000 para generar XML de datos relacionales y viceversa. Ahora, estos han sido mejorados con soporte para el tipo de datos XML.

Tipo de Datos XML

XML puede modelar datos complejos antes que estar limitado a escalar tipos que son soportados por SQL Server. Como tal, un tipo de datos basados en cadenas incorporados como char o varchar, no son suficientes para lograr un uso completo y efectivo del poder y las numerosas ventajas de XML. Por ejemplo, si XML esta almacenado como una cadena, usted puede insertar o seleccionar un documento completo, o extraer bites contiguos del mismo, pero no puede consultar su contenido. Al proveer el tipo de datos XML, SQL Server 2005 le permite consultar porciones del documento XML, validar que el documento este de acuerdo con un esquema XML, y hasta modificar los contenidos del documento XML. También integra datos tradicionales y relacionales con datos en documentos estructurados o semi estructurados en XML de una manera que no era posible con SQL Server 2000. En SQL Server 2005, los datos XML están almacenados como objetos binarios (BLOBs por sus siglas en inglés) en una representación interna que permite reparsing eficiente y alguna compresión.

Una colección de esquemas XML puede ser asociada con una columna de tipo XML. Esto brinda validación para restricciones, introducciones y actualizaciones, y tipeo de valores dentro de datos XML almacenados, así como optimizaciones para almacenamiento y procesamiento de consultas. SQL Server 2005 también brinda varias declaraciones DDL para el manejo de esquemas en el servidor.

Recuperando y Escribiendo XML

SQL Server 2005 también incluye varias mejoras en las funcionalidades FOR XML y OPENXML que fueron presentadas por primera vez en SQL Server 2000.

FOR XML

La cláusula FOR XML en SQL Server 2000 no brinda una manera de consumar los resultados XML en el servidor. Usted no puede almacenar los resultados XML en una tabla (sin, por supuesto, primero devolverlos al cliente) o asignarlos a una variable. SQL Server 2005 mejora a FOR XML al agregar soporte para el tipo de datos XML y permitiendo el consumo XML en el servidor. El mismo logra esto agregando una directiva TYPE en FOR XML. Por ejemplo, el resultado de SELECT...FOR XML TYPE genera una instancia de tipo de dato XML que puede ser asignada a una variable local XML, o que puede ser utilizada en una función subsiguiente INSERT para popular una columna de datos tipo XML. El modo PATH especifica el path en el árbol XML donde debe aparecer el valor de una columna. La opción TYPE y las opciones PATH incluidas en FORM XML simplifican la generación de XML complejo, y son más convenientes para utilizar que las consultar FOR XML EXPLICIT. FOR XML también trabaja sobre columnas de datos tipo XML en SQL Server 2005.

OPENXML

Esencialmente, SQL Server 2000 trataba la cláusula FOR XML y la función OPENXML rowset como compañeros inversos. Esto significa que, con FOR XML usted puede extraer información relacional como XML; y con OPENXML puede volver XML en información relacional, contra la cual puede ejecutar consultas. SQL Server 2005 mejora la funcionalidad de OPENXML. Además del tipo de datos XML, se brinda soporte para varios nuevos tipos de datos, como por ejemplo tipos definidos por el usuario (UDTs por sus siglas en ingles). Puede utilizar los mismos con la cláusula OPENXML WITH, y también puede pasar una instancia de tipo de dato XML a sp_preparedocument.

Soporte XQuery

El Lenguaje XML Query, o XQuery, es un lenguaje inteligente y robusto optimizado para la consulta de todos los tipos de datos XML. Con XQuery, usted puede correr procesos de consultas contra variables y columnas de tipos de datos XML utilizando los últimos métodos de asociación. Como muchos de los estándares XML, el World Wide Web Consortium (W3C) supervisa el desarrollo de XQuery. XQuery ha evolucionado de un lenguaje llamado Quilt, el cual estaba basado en una variedad de otros lenguajes de consulta como por ejemplo XML Path Language (XPath) versión 1.0, XQL, y SQL. También contiene XPath 2.0 como un subgrupo. Por lo tanto, si usted tenía experiencia utilizando XPath 1.0, puede capitalizar sus habilidades y no tendrá que aprender el nuevo lenguaje por completo. Sin embargo, existen mejoras significativas que van más allá de XPath 1.0, como por ejemplo tipeo, funciones especiales, y soporte para mejor iteración, orden de resultados, y construcción.

SQL Server 2005 trae incorporadas capacidades profundas de XQuery que permiten la manipulación de objetos XML en la capa de datos. Soporta un subgrupo tipeado de manera estática del XQuery 1.0 Working Draft del 15 de Noviembre del 2003.

Extensiones DML

La especificación XQuery actualmente contiene sintaxis y semántica para consultas, pero no para modificar documentos XML. El XML Data Modification Language (DML) es una extensión de las características de XQuery para modificación de datos. SQL Server 2005 incorpora tres palabras claves: insert, update, y delete. Cada una de estas tres se utiliza dentro del método modify() del tipo de datos XML.

Resumen

Microsoft SQL Server 2005 provee las herramientas que los desarrolladores necesitan para construir una nueva clase de aplicaciones de bases de datos. Al remover las barreras para la ejecución de código y ubicación de almacenamiento, y al integrar estándares como XML, SQL Server 2005 abre un mundo de posibilidades a los desarrolladores de bases de datos. Este artículo es sólo una introducción a lo que usted podrá lograr con SQL Server 2005.

Juan Carlos Heredia Mayer

Jheredia@librosdigitales.net

http://pagina.de/jheredia