Información general de SQL Server 2005 Express Edition

SQL Server 2005

Noviembre de 2005

Publicado: 26 de Diciembre de 2005

Rajesh George

Este artículo se aplica a:
Microsoft SQL Server 2005 Express Edition
Microsoft Visual Studio 2005

Resumen: SQL Server Express Edition es un producto gratuito basado en la tecnología SQL Server 2005 e incluye la función exclusiva Application XCopy, además de una serie de funciones de red y seguridad distintas de las del resto de ediciones de SQL Server 2005. En este artículo se describen estos temas y la integración de SQL Server Express con Visual Studio 2005. Además, se compara este producto con las bases de datos gratuitas de Microsoft como MSDE y Jet. (19 páginas impresas.)

En esta página

 Introducción
 Escenarios objetivo
 Características clave de SQL Server Express 2005 Express Edition
 Especificaciones del motor
 Compatibilidad con herramientas
 Compatibilidad con redes
 Compatibilidad con acceso a datos
 Seguridad
 Compatibilidad con réplica
 SQL Service Broker
 Instancias de usuario
 Instalación e implementación
 Compatibilidad con idiomas
 Consideraciones acerca de la compatibilidad
 Requisitos de hardware y software
 Compatibilidad con 64 bits
 Características no presentes en SQL Server Express
 Integración con Visual Studio
 Comparación con otras bases de datos gratuitas de Microsoft
 Comparación con MSDE
 Comparación con Jet
 Conclusión

Introducción

SQL Server Express es un producto de base de datos gratuito y fácil de utilizar basado en la tecnología SQL Server 2005. Se ha diseñado para proporcionar una plataforma de base de datos que ofrezca la máxima facilidad de uso y permita una implementación rápida en los escenarios objetivo. Esta facilidad de uso empieza por la instalación de una interfaz gráfica de usuario (GUI) sencilla y eficaz que guía al usuario durante el proceso de instalación. Las herramientas de GUI suministradas de forma gratuita con SQL Server Express incluyen SQL Server Management Studio Express Edition (versión Technical Preview disponible en el lanzamiento), una herramienta de configuración de superficie y el Administrador de configuración de SQL Server. Estas herramientas simplifican las operaciones básicas de base de datos. El diseño y desarrollo de aplicaciones de base de datos resultan más sencillos gracias a la integración con los proyectos de Visual Studio. Además, se ofrece la posibilidad de implementar aplicaciones de base de datos tan sólo con moverlas como si se tratara de archivos normales de Windows. El servicio y las revisiones también se han simplificado y automatizado.

SQL Server Express utiliza el mismo motor de base de datos confiable y de alto rendimiento que el resto de las versiones de SQL Server 2005. Asimismo, utiliza las mismas API de acceso a datos que ADO.NET, SQL Native Client y T-SQL. De hecho, sólo se diferencia del resto de las ediciones de SQL Server 2005 por lo siguiente:

  • Falta de compatibilidad con características empresariales

  • Límite de una CPU

  • Límite de 1 GB de memoria para el grupo de búferes

  • Bases de datos con un tamaño máximo de 4 GB

Algunas características como Cerrar automáticamente y la posibilidad de copiar bases de datos como archivos están habilitadas de forma predeterminada en SQL Server Express, mientras que las características de alta disponibilidad e inteligencia empresarial no están presentes. La escalabilidad se facilita al máximo en caso de ser necesaria dado que las aplicaciones Express funcionan perfectamente con las versiones Workgroup, Standard y Enterprise de SQL Server 2005. La descarga en Internet permite una implementación gratuita, rápida y fácil.

En este artículo se analiza una serie de componentes y características exclusivos de SQL Server Express como, por ejemplo, Application XCopy (instancias de usuario) y funciones de red y seguridad. También se proporciona un conjunto de directrices para escenarios de uso comunes. Y, además, se trata lo fácil que es desarrollar aplicaciones de datos con Microsoft Visual Studio 2005. Este análisis se dirige a:

  • Desarrolladores aficionados y no profesionales

  • Desarrolladores de bases de datos, administradores y especialistas en operaciones

  • Analistas empresariales

  • Directores técnicos

Escenarios objetivo

SQL Server Express se ha desarrollado teniendo en mente dos usos diferenciados. En primer lugar, se ha diseñado como un producto de servidor y, más concretamente, como un servidor Web o un servidor de base de datos. El segundo uso se corresponde con un almacén de datos de cliente local en que el acceso a los datos de la aplicación no depende de la red. La facilidad de uso y la sencillez son los objetivos clave de este diseño.

Los tres escenarios principales de uso de SQL Server Express son:

  • Desarrolladores no profesionales que crean aplicaciones Web

  • Proveedores de software independientes que redistribuyen SQL Server Express como un servidor de baja disponibilidad o un almacén de datos de cliente

  • Desarrolladores aficionados que crean aplicaciones cliente y servidor

SQL Server Express ofrece una plataforma de base de datos fácil de utilizar y confiable con multitud de características para abarcar estos escenarios. Se destacan la facilidad y confiabilidad de la instalación y la implementación para facilitar a los proveedores de software independientes el uso y la redistribución.

Escenarios objetivo

SQL Server Express utiliza el mismo motor de base de datos y características de programación que el resto de las ediciones de SQL Server 2005. Para obtener información adicional acerca de estas áreas, vea los Libros en pantalla de SQL Server 2005. Las características exclusivas de SQL Server Express o que tienen una mayor repercusión para los clientes se describen detalladamente a continuación.

Características clave de SQL Server Express 2005 Express Edition

Especificaciones del motor

El motor de SQL admite 1 CPU, 1 GB de RAM y un tamaño de base de datos de 4 GB. Este mecanismo facilita la diferenciación del resto de las ediciones de SQL Server 2005 mediante una serie de límites bien definidos. En caso contrario, no habría ninguna aceleración de la carga de trabajo y el motor funcionaría del mismo modo que en el resto de las ediciones. No existe ningún límite codificado de forma rígida para el número de usuarios que pueden utilizar SQL Server Express, aunque las limitaciones de CPU y memoria imponen una serie de límites prácticos en cuanto al número de usuarios que pueden obtener unos tiempos de respuesta aceptables en una base de datos de SQL Server Express.

SQL Server Express se puede instalar y ejecutar en equipos con varios procesadores, pero sólo se puede utilizar una CPU. Internamente, el motor limita el número de subprocesos del programador del usuario a 1 de modo que sólo se utilice 1 CPU cada vez. Algunas características como la ejecución de consultas en paralelo no se admiten debido al límite de una sola CPU.

El límite de 1 GB de RAM constituye el límite de memoria disponible para el grupo de búferes. El grupo de búferes se utiliza para almacenar páginas de datos y otros tipos de información. No obstante, la memoria necesaria para realizar un seguimiento de las conexiones, bloqueos, etc. no se incluye en el límite del grupo de búferes. Por consiguiente, es posible que el servidor utilice más de 1 GB en total, aunque nunca utilizará más de 1 GB para el grupo de búferes. Las extensiones de ventana de dirección (AWE) o el acceso a datos de 3 GB no se admiten ni son necesarios.

El límite de tamaño de base de datos de 4 GB sólo se aplica a los archivos de datos y no a los archivos de registro. Sin embargo, no existe ningún límite para el número de bases de datos que se pueden conectar al servidor. Hay algunos cambios secundarios en el inicio de SQL Server Express. Las bases de datos de usuario no se inician automáticamente, así como tampoco se inicializa de forma automática el Coordinador de transacciones distribuidas. No obstante, para el usuario no puede haber diferencia alguna salvo un inicio más rápido. Se recomienda a los programadores que deseen utilizar SQL Server Express que tengan estos cambios en cuenta al diseñar las aplicaciones.

Pueden coexistir varias instalaciones de SQL Server 2005 Express en el mismo equipo con otras instalaciones de SQL Server 2000, SQL Server 2005 o Microsoft Desktop Engine (MSDE). En general, es preferible actualizar las instancias de SQL Server 2000 a Service Pack 4 (SP4). El límite máximo para el número de instancias de SQL Server Express en un mismo equipo es de 16. Se debe asignar un nombre exclusivo a estas instancias con el fin de identificarlas.

De forma predeterminada, SQL Server Express instala una instancia con nombre llamada SQLEXPRESS. Esta instancia concreta se puede compartir entre varias aplicaciones y proveedores de aplicaciones. Se recomienda utilizar esta instancia a menos que la aplicación necesite una configuración especial.

Las API disponibles para programar en SQL Server Express son las mismas que para SQL Server 2005 de modo que los usuarios tengan la misma experiencia si deciden cambiar a otras ediciones de SQL Server 2005. Todas las características nuevas de SQL Server 2005 como la integración de Common Language Runtime (CLR), los tipos de datos nuevos como VARCHAR(MAX) y XML, los tipos definidos por el usuario y los agregados definidos por el usuario son compatibles. Además, las bases de datos de SQL Server Express se pueden conectar a SQL Server 2005 y las aplicaciones programadas con una instancia de SQL Server Express funcionan igual de bien con una instancia de SQL Server 2005. Las características de réplica y SQL Service Broker también están disponibles y se describen detalladamente más adelante.

Compatibilidad con herramientas

SQL Server Express se ha diseñado para facilitar su uso y las herramientas de la interfaz gráfica de usuario (GUI) facilitan el uso de las características básicas de base de datos de SQL Server Express incluso para los usuarios no familiarizados con bases de datos. Hay disponible de forma gratuita una herramienta de GUI nueva llamada SQL Server Management Studio Express Edition que se puede descargar por separado en Internet. SSMS-EE facilita la administración de bases de datos y las funciones de análisis de consultas además de ser redistribuible de forma gratuita.

SSMS-EE admite las conexiones a SQL Server Express y otras ediciones de SQL Server 2005, SQL Server 2000, y MSDE 2000. Un sencillo cuadro de diálogo de conexión guía al usuario durante la selección de la instancia y los métodos de autenticación que se van a utilizar. Se pueden realizar conexiones locales y remotas. El Explorador de objetos enumera y muestra de modo jerárquico los objetos utilizados comúnmente como la instancia, las tablas, el proceso almacenado, etc. y facilita al usuario la visualización del acceso a la base de datos.

Todas las características de administración de base de datos están disponibles al hacer clic con el botón secundario en el menú contextual del Explorador de objetos. Algunas características de SSMS-EE como la creación y modificación de bases de datos, tablas, vistas, inicios de sesión y usuarios son idénticas a las de la versión completa de SQL Server Management Studio, disponible en otras ediciones. Esto permite al usuario aprovechar de inmediato los conocimientos adquiridos con SSMS-EE al actualizar a la versión completa de SSMS.

Muchos usuarios de bases de datos prefieren administrar los servidores con T-SQL dado que este enfoque ofrece un control más preciso que el uso de la interfaz gráfica de usuario. El Editor de consultas de SSMS-EE permite a los usuarios desarrollar y ejecutar instrucciones y secuencias de comandos T-SQL. El Editor de consultas incluye una amplia variedad de características como la codificación en colores de las palabras clave y un panel de resultados que devuelve los resultados en una cuadrícula de datos. Los mensajes de error, si los hay, también se muestran en el panel de resultados. SSMS-EE es compatible con todas las funciones del Editor de consultas de SSMS, entre las que se incluyen los planes de consultas gráficos.

ms345154.sseoverview01S(es-es,SQL.90).gif

Figura 1. Editor de consultas

SSMS-EE se distribuye por separado mediante una descarga en Internet. Los usuarios no tienen más que hacer clic en el ejecutable para iniciar la instalación. Si SSMS ya está instalado, SSMS-EE no se instalará dado que no es necesario. De forma similar, los usuarios pueden desinstalar SSMS-EE si reinician el programa de instalación o utilizan el menú Agregar o quitar programas del Panel de control.

Algunas de las herramientas que se suministran con SQL Server Express son SQL Computer Manager, Comando SQL y BCP. SQL Computer Manager se utiliza para iniciar y detener el servicio SQL Server y para habilitar y deshabilitar los protocolos de red. El comando SQL se utiliza para realizar conexiones y consultas mediante la línea de comandos, mientras que BCP se utiliza para realizar copias masivas de datos.

SQL Computer Manager permite a los administradores establecer configuraciones de servicios básicos y protocolos de red. Se trata del equivalente para SQL Server 2005 de herramientas anteriores como Herramienta de red de servidor, Herramienta de red de cliente y Administrador de servicios. No se utiliza para ajustar las características de rendimiento u operaciones de SQL Server.

En Computer Manager hay un nodo para "Servidores de Microsoft SQL Server" en el que se incluyen todos los servicios, protocolos de red de servidor y protocolos de red de cliente. El nodo de servicios incluye todos los servicios de Express disponibles y ofrece información detallada como el nombre de la instancia de servidor, el estado del servicio y el tipo de inicio. Puede seleccionar un servicio concreto y realizar operaciones como iniciar, detener, pausar o reiniciar el servicio. El nodo de protocolos de red de servidor incluye la lista de protocolos para cada instancia del equipo. Haga clic con el botón secundario en el protocolo (por ejemplo, TCP) para habilitar o deshabilitar el protocolo o cambiar sus propiedades. En el nodo de protocolos de red de cliente se incluyen opciones similares. Tenga en cuenta que el nodo de protocolos de red de servidor funciona directamente en la configuración de protocolo de la instancia de SQL Server, mientras que el nodo de protocolos de red de cliente trata la configuración de protocolo de clientes como MDAC o el proveedor de SQL Native Client. El nodo de protocolos de red de cliente también permite crear un alias como nombre alternativo para SQL Server y puede contener información como el nombre del servidor, el protocolo utilizado, la cadena de conexión o el cifrado.

El comando SQLes una versión OLE DB de la herramienta osql. No sólo intenta mantener la compatibilidad funcional con osql, sino que también es compatible con los tipos de datos nuevos de SQL Server 2005. Todas las opciones de línea de comandos convierten la información de salida en una salida estándar salvo en el caso de los mensajes de error que pueden aparecer si la operación no se realiza correctamente. El comando SqlCmd -? muestra el resumen de la sintaxis de los modificadores de sqlcmd.

SQL Computer Manager y el comando SQL son iguales en SQL Server Express y en las demás ediciones de SQL Server 2005.

Compatibilidad con redes

De forma predeterminada, SQL Server Express sólo puede tener acceso al tipo de conexión de memoria compartida del equipo local, aunque el usuario puede activar de forma explícita otros protocolos compatibles como TCP/IP y canalizaciones con nombre. Los protocolos VIA y HTTP no son compatibles con SQL Server Express. Con tan solo la memoria compartida disponible de forma predeterminada, las conexiones desde un equipo remoto a SQL Server Express no dan resultado a menos que las funciones de red estén activadas. Para activar las funciones de red, tiene las siguientes opciones:

  • Utilice la herramienta de configuración de superficie para habilitar las funciones de red y habilitar e iniciar el servicio SQLBROWSER.

  • Utilice el Administrador de configuración de SQL Server para habilitar los protocolos correspondientes e iniciar el Explorador SQL. En la figura 2 se muestra el uso de esta herramienta para habilitar los protocolos de red.

  • Utilice DISABLENETWORKPROTOCOLS=0 en la línea de comandos de instalación si sabe de antemano que la compatibilidad con redes es necesaria.

  • Utilice una secuencia de comandos basada en SMO para habilitar los protocolos.

El Explorador SQL es un servicio nuevo de SQL Server 2005 utilizado para identificar los puertos en que escuchan las instancias con nombre. Dado que la memoria compartida no lo utiliza, este servicio se desactiva en SQL Server Express de forma predeterminada. Esto significa que el usuario debe iniciar este servicio para que el acceso a la red funcione.

Nota

Un aspecto interesante es que el Explorador SQL escucha en el puerto UDP 1434. Sin embargo, las versiones anteriores a SP3 de SQL Server 2000 que incluyen el puerto UDP 1434 pueden generar un error en la resolución de nombres del Explorador S QL debido a que es posible que se rechace la salida del puerto. La solución consiste en actualizar todas las instancias de SQL Server 2000/MSDE del equipo a SP3 o posterior.

ms345154.sseoverview02S(es-es,SQL.90).gif

Figura 2. Uso del Administrador de configuración de SQL Server para habilitar los protocolos

Compatibilidad con acceso a datos

SQL Server 2005 Express es compatible con los mismos proveedores nativos y administrados que el resto de las ediciones de SQL Server 2005. Esto conlleva la considerable ventaja de que una aplicación escrita para SQL Server Express funciona perfectamente con otras ediciones de SQL Server.

SQL Server 2005 Express es compatible con ADO.NET para el acceso administrado. Se recomienda el uso del proveedor de datos SqlClient para desarrollar aplicaciones nuevas dado que la mayoría de las características de Application XCopy están disponibles sólo con SqlClient. Los proveedores de datos de ADO.NET 2.0 (disponibles en Visual Studio 2005) son compatibles con los tipos de datos nuevos de SQL Server como varchar(MAX) y XML además de con los tipos definidos por el usuario.

Empezando por SQL Server 2005, las sesiones lógicas del servidor se separan de las conexiones físicas. Los niveles de transporte del cliente y el servidor se actualizan para ofrecer funciones de multiplexación de modo que varias sesiones lógicas puedan tener lugar en una sola conexión física. Esto permite a los clientes disponer de varios conjuntos de resultados activos (MARS) en la misma conexión. Tenga en cuenta que el objetivo de MARS no es eliminar la necesidad de disponer de varias conexiones. MARS está desactivado de forma predeterminada en SQL Server 2005 y permite intercalar operaciones de SQL. Por ejemplo, puede trabajar con un conjunto de resultados y ejecutar además instrucciones en la base de datos a la vez que la procesa sin abrir una conexión nueva. MARS puede reemplazar de forma eficaz los cursores de servidor en muchos de estos escenarios y resulta especialmente útil si las operaciones de recuperación y actualización de datos se producen en la misma transacción.

Además, los clientes de SQL Server 2005 son compatibles con la entrada/salida (E/S) asincrónica de modo que los subprocesos de la aplicación dejen de estar bloqueados por las operaciones de transferencia de datos y la aplicación cliente responda lo mejor posible. En este modelo, las llamadas de E/S se devuelven de inmediato y la finalización se notifica de forma asincrónica a la aplicación. Esto permite que la aplicación continúe con el resto del procesamiento y compruebe los eventos de finalización de E/S posteriormente.

Los componentes de acceso a los datos en el margen de tiempo de SQL Server 2005 se dividen en dos partes: la pila MDAC, que forma parte del sistema operativo, y el proveedor de SQL Native Client, que proporciona a SQL Server una biblioteca de acceso a datos específica para el acceso a los datos nativos. SQL Native Client se destina a los clientes de SQL OLEDB, SQL ODBC y ADO que escriben aplicaciones nuevas o mejoran las aplicaciones existentes para aprovechar al máximo las nuevas funciones de SQL Server 2005.

SQL Native Client contiene las adiciones de SQL Server 2005 para SQL OLE DB, SQL ODBC, SQL BCP y la interfaz de redes de SQL. Algunas características de SQL Server 2005 como MARS, los tipos definidos por el usuario, el tipo de datos XML, etc. están disponibles a través de SQL Native Client sólo para programadores de C o C++. SQL Native Client incluye componentes nuevos (Id. de clase nuevo) independientes y distintos de los componentes de MDAC. Por ejemplo, el Id. de programa de OLE DB utilizado es SQLNCLI, el nombre del controlador de ODBC es SQL Native Client y el archivo de encabezado es SQLNCLI.h.

SQL Native Client se presenta como una DLL única (SQLNCLI.dll). El hecho de no ser un componente del sistema operativo simplifica el servicio además de facilitar la redistribución y la implementación de aplicaciones. Se ofrece una versión actualizada de SQL Native Client con cada versión nueva de SQL Server y las aplicaciones pueden cambiar de forma explícita el manifiesto de configuración para utilizar una versión posterior de este proveedor.

Existe una dinámica interesante basada en las interacciones entre los proveedores de MDAC y los proveedores de SQL Native Client. Por ejemplo, MDAC 2.5, 2.7 o 2.8 no se puede conectar a SQL Server 2005 con la memoria compartida. Esto afecta a todas las aplicaciones nativas que utilizan SQL OLE DB o SQL ODBC y se incluyen no sólo las aplicaciones nativas existentes, sino también las aplicaciones OLE DB o ODBC administradas dado que utilizan MDAC internamente. Por regla general, en el caso de SQL Server, si la conexión de la memoria compartida no se realiza correctamente, se utilizan protocolos de red como, por ejemplo, TCP/IP. No obstante, para SQL Server Express, puesto que las funciones de red están desactivadas de forma predeterminada, estas aplicaciones no se pueden conectar. La solución consiste en cambiar las aplicaciones para utilizar el proveedor de SQL Native Client o habilitar el protocolo de control de transporte (TCP) de red e iniciar el Explorador SQL.

Seguridad

En el caso de SQL Server Express, uno de los objetivos es ofrecer unos valores predeterminados seguros para los distintos componentes. Por ejemplo, los protocolos de red como TCP/IP y las canalizaciones con nombre están desactivados. El servicio Explorador SQL no se inicia a menos que el usuario lo solicite explícitamente en la línea de comandos de instalación. El administrador del sistema o la cuenta de administrador del sistema se deshabilitan de forma predeterminada si se utiliza la autenticación de Windows. Los usuarios normales del equipo apenas tienen privilegios en la instancia de SQL Server Express. Un administrador local del servidor debe conceder de forma explícita los permisos correspondientes a los usuarios normales para que puedan utilizar las funciones de SQL.

El inicio de sesión del administrador del sistema es un inicio de sesión especial de SQL Server además de ser miembro de la función de administrador del sistema (sysadmin). Se utiliza sobre todo en las configuraciones que utilizan el modo de autenticación de SQL y no se utiliza en el modo de autenticación de Windows. SQL requiere una contraseña segura de administrador del sistema por motivos de seguridad y, durante las instalaciones de GUI y las instalaciones en modo de autenticación de SQL silencioso, el usuario debe proporcionar una contraseña segura de administrador del sistema. No obstante, en el caso de las instalaciones en modo de autenticación de Windows silencioso, la contraseña de administrador del sistema no es obligatoria. El motivo es que al utilizar el modo de autenticación de Windows, la instalación de SQL Server Express en modo silencioso ofrece una contraseña segura de administrador del sistema aleatoria si el usuario no ha especificado ninguna contraseña. Además, la instalación deshabilita la cuenta de administrador del sistema en este caso para que pueda habilitar de forma explícita el administrador del sistema en una fase posterior en caso de utilizar T-SQL. Esto se hace así para que el proveedor de software independiente no tenga que proporcionar la contraseña al utilizar la autenticación de Windows y los escenarios de implementación masiva no se bloqueen. En versiones posteriores esta función se puede ampliar para las instalaciones de GUI basadas en Windows.

Compatibilidad con réplica

La réplica permite al usuario conservar copias de los datos en varias ubicaciones mediante un modelo de publicador y suscriptor con la sincronización de dichas copias a los intervalos definidos por el usuario. SQL Server Express es compatible con las suscripciones a publicaciones de mezcla, instantáneas y transaccionales, pero no permite las publicaciones propias. Las suscripciones de réplica de SQL Server Express son totalmente funcionales. Sin embargo, puesto que SQL Server Express no incluye el Agente SQL, la programación de suscripciones resulta más compleja. Puede sincronizar las suscripciones de SQL Server Express mediante los siguientes métodos:

  • Sincronización mediante programación con objetos de administración de réplica (RMO).

  • Uso del Administrador de sincronización de Windows para la sincronización programada.

SQL Service Broker

SQL Service Broker (SSB) es una infraestructura de mensajería nueva y confiable de SQL Server 2005. Los programas del servicio pueden comunicarse mediante contratos de intercambio de mensajes punto a punto llamados diálogos. A esta característica se puede tener acceso mediante las extensiones del lenguaje T-SQL.

SQL Server Express puede utilizar Service Broker sólo en combinación con otras ediciones de SQL Server 2005. Si SQL Server Express recibe un mensaje de Service Broker de otra instancia de Express y si otra edición de SQL Server 2005 no ha procesado el mensaje, dicho mensaje se elimina. De este modo, el mensaje se puede originar en una instancia de Express y terminar en otra, pero se debe enrutar a través de una instancia que no sea de Express en este caso. Puede marcar un evento de traza Mensaje quitado al que se puede tener acceso desde el analizador o bien utilizar procedimientos almacenados de seguimiento para realizar un seguimiento de este tipo de evento. El mensaje de error asociado al mensaje quitado incluye una alusión al respecto: "Se quitó este mensaje debido a restricciones de la licencia".

Imagine un escenario de ejemplo escalado. La aplicación incluye 100 instancias de SQL Server Express implementadas en cajas registradoras. Se conectan a un servidor que no pertenece a SQL Server Express en el servidor de servicios de fondo. Este escenario funciona mientras el servidor de servicios de fondo participa en todos los diálogos. Las instancias de SQL Server Express no pueden interaccionar correctamente en los diálogos sin pasar por el servidor de servicios de fondos.

Instancias de usuario

Las instancias de usuario son una característica nueva de SQL Server Express que ofrece la posibilidad de tratar las bases de datos como archivos. Ahora, la base de datos local se puede mover, copiar o enviar por correo electrónico junto con la aplicación. En la nueva ubicación, no se necesita ninguna configuración adicional para que funcione. Hay tres características principales que permiten la compatibilidad de la instancia de usuario de la aplicación con SQL Server Express: la opción AttachDBFilename de la cadena de conexión, la ausencia del requisito de especificación del nombre lógico de la base de datos y la opción de instancia de usuario.

Hay algunos supuestos implícitos en la compatibilidad con las instancias de usuario. Se supone que SQL Server Express con el nombre de instancia SQLEXPRESS ya está instalado en el equipo. Además, existe una solución administrada sólo mediante pila y debe utilizar el proveedor de datos de .NET SQL Server para desarrollar aplicaciones que se puedan implementar con XCopy. Es decir, no puede utilizar SQL Native Client o MDAC para desarrollar aplicaciones que se puedan utilizar con instancias de usuario.

Normalmente, el desarrollador de la aplicación debe copiar sólo la base de datos de usuario y el archivo de registro junto con la aplicación. Sin embargo, en SQL Server hay algunas entradas de configuración presentes en una base de datos del sistema especial llamada master. Las características que se basan en las entradas de master incluyen la autenticación de SQL (se recomienda utilizar la autenticación de Windows siempre que sea posible). Si la aplicación se basa en todas las entradas de master, el desarrollador de la aplicación debe asegurarse de que estas entradas de configuración se replican en el sistema de destino. Una forma de asegurarse de esto consiste en incluir una secuencia de comandos de configuración de SMO, DMO o T-SQL junto con la aplicación que se ejecuta al instalar la aplicación en el equipo de destino. Para la mayoría de las aplicaciones que se ejecutan con la autenticación de Windows, la información de réplica de la base de datos master no debe ser un problema.

AttachDBFileName

Puede especificar una ruta de acceso de archivo relativa o absoluta para la entrada de la cadena de conexión AttachDBFileName. El archivo de base de datos especificado se adjunta cuando la conexión está abierta y esta base de datos se utiliza como predeterminada para dicha conexión. Si la base de datos ya se ha adjuntado al invocar AttachDBFileName, dicha asociación no surte efecto. Esta palabra clave admite una cadena especial llamada |DataDirectory| que señala el tiempo de ejecución para el directorio de datos de la aplicación en que están almacenados los archivos de la base de datos. Esta cadena especial debe estar al principio de la ruta de acceso del archivo, funciona sólo en un sistema de archivos local y se realizan las comprobaciones de la sintaxis \..\ para que la ruta de acceso del archivo no sea superior al directorio señalado por la cadena de sustitución.

Hay determinadas variaciones en el uso de los archivos de registro al utilizar AttachDBFileName. El nombre del archivo de registro debe tener el formato <Nombre_archivo-base_de_datos>_log.ldf y no existe ninguna opción para especificar el nombre del archivo de registro cuando se utiliza AttachDBFileName. Por ejemplo, si el nombre de archivo de la base de datos es miBD.mdf y se encuentra en la ubicación c:\misApls, el nombre del archivo de registro debe ser miBD_log.ldf. Si SQL no encuentra este archivoen el mismo directorio que el archivo de base de datos, se crea un archivo de registro nuevo al adjuntar la base de datos. Esto significa que los nombres de archivos de registro definidos por el usuario no son compatibles si se utiliza AttachDBFileName.

SQL Server admite el uso de varios archivos de datos y registro para una base de datos y estos archivos se pueden distribuir en varios grupos de archivos. Esto no se admite en la sintaxis de AttachDBFileName. Además, el recurso compartido de red, las rutas de acceso HTTP o las bases de datos remotas de Convención de nomenclatura universal (UNC) no son compatibles.

Nombre lógico de base de datos

Si no se especifica ningún nombre lógico de base de datos en la cadena de conexión, se genera un nombre automático para la base de datos que se va a adjuntar. El nombre generado se basa en la ruta de acceso relativa del archivo .mdf. Por ejemplo, si el archivo se encuentra en c:\misDocumentos\Misapls\miBD.mdf, el nombre lógico de base de datos se basa en la ruta completa. Si la ruta de acceso del archivo tiene más de 128 caracteres, esta función utiliza la ruta existente y un valor hash para generar el nombre lógico de base de datos. Esto es nuevo en SQL Server Express, ya que la ausencia de especificación del nombre de la base de datos en SQL Server 2000 genera un error. La sintaxis compatible incluye database=; o initial catalog=; o bien el usuario puede omitir dicha sintaxis por completo en la cadena de conexión.

Esta característica resulta útil para mover o copiar la base de datos en el mismo equipo dado que el nombre lógico basado en la ruta de acceso del archivo es exclusivo. Si esta característica no está presente, se producen conflictos de nombres en SQL Server si se utiliza el mismo nombre lógico para abrir bases de datos en dos directorios distintos. Application XCopy también es compatible entre distintos equipos.

Tenga en cuenta que se puede especificar de forma explícita el nombre lógico de base de datos con las palabras clave base de datos o Catálogo original. Puede que los usuarios deseen especificar de forma explícita el nombre lógico de base de datos al utilizar la réplica, SQL Service Broker, nombres de varias partes en las consultas de T-SQL o escenarios entre bases de datos.

Cerrar automáticamente

La función de cierre automático ya existía en SQL 2000 y se ha habilitado de forma predeterminada en SQL Server Express. Esta característica libera los bloqueos de archivo de las bases de datos de usuario si no hay ninguna conexión activa. Por consiguiente, la base de datos está lista para moverla o copiarla una vez cerrada la aplicación que la utiliza.

Sin embargo, desde la perspectiva del usuario, la función de cierre automático no siempre funciona, sobre todo durante la terminación inesperada del cliente o al utilizar un grupo de conexiones. En el caso de la terminación inesperada del cliente, las conexiones se limpian mediante un mecanismo de tiempo de espera. Si el grupo de conexiones está habilitado, las conexiones no se cierran realmente si el usuario invoca el cierre de las conexiones, ya que se devuelven al grupo. Para cerrar todas las conexiones, se debe cerrar el dominio de la aplicación o todas las conexiones abiertas. ADO.NET contiene además funciones como ClearPool para los restablecimientos manuales.

Instancias de usuario

Las instancias de usuario permiten que un usuario que no es administrador adjunte y administre la base de datos de SQL Server Express. Para ello, se debe crear una copia privada de SQL Server que se ejecute en el contexto de seguridad del usuario que abre la conexión a la base de datos. El usuario que abre la conexión se convierte en la cuenta de servicio para la instancia de usuario y, por consiguiente, tiene todos los permisos de administrador del sistema para la base de datos. Estos permisos permiten que un usuario de Windows distinto del administrador tenga permisos de administrador de base de datos, lo que permite a dicho usuario adjuntar bases de datos con AttachDBFilename. Dichos permisos permiten además al usuario crear todos los objetos de base de datos necesarios, lo que hace que este método sea perfecto para desarrollar aplicaciones de base de datos.

Instalación e implementación

El programa de instalación de SQL Server Express es una versión simplificada del proceso de SQL Server 2005. Es estable, confiable y compatible con los modos de instalación mediante GUI y silencioso. Sólo se admite la tecnología basa en Windows Installer (.msi).

La descarga en Internet de SQL Server Express se empaqueta como un único ejecutable mediante una tecnología de instalación de Microsoft llamada SFXCab. Puede descargar SQL Server Express en el Centro de descarga Microsoft. Al hacer doble clic en .exe se inicia automáticamente el proceso de instalación.

La versión de Visual Studio 2005 de .NET Framework es un requisito previo para la instalación de SQL Server Express y el programa de instalación genera un error si no se encuentra la versión correcta en el equipo. El programa de instalación incluye un componente llamado Comprobación de configuración del sistema (SCC) que se ejecuta antes de iniciar la instalación. Este componente comprueba si el sistema cumple los criterios mínimos para la instalación; dichos criterios son los requisitos de hardware mínimos, los requisitos mínimos del sistema operativo, los requisitos de reinicio pendiente, etc. Muchos usuarios pueden obtener un error de requisito de reinicio pendiente, lo que significa que deben reiniciar el equipo para poder continuar con la instalación de SQL Server Express. La ventaja principal de SCC es que los errores de instalación comunes debidos a una configuración incorrecta del equipo se identifican al inicio y además se generan las advertencias y los mensajes de error correspondientes para el usuario. Por ejemplo, SCC genera una advertencia y continúa con la instalación sólo si se dispone de una memoria de 256 MB en el equipo. En la figura 3 se incluye una captura de pantalla de SCC de ejemplo.

ms345154.sseoverview03(es-es,SQL.90).gif

Figura 3. Comprobación de configuración del sistema

Una vez iniciada la instalación, puede ver que las pantallas se simplifican para facilitar el acceso a los desarrolladores de todos los niveles de experiencia. Por ejemplo, algunos cuadros de diálogo complejos como los destinados a las intercalaciones y cuentas de servicio se ocultan de forma predeterminada mediante la casilla de verificación Ocultar configuración avanzada. Si el usuario desactiva esta casilla, se muestran los cuadros de diálogo de configuración avanzada. El registro de instalación se activa de forma predeterminada para que el usuario pueda consultar fácilmente los errores de instalación con los archivos de registro creados en el directorio \Archivos de programa\Microsoft SQL Server\90\Setup Bootstrap\LOG.

SQL Server Express instala una instancia con nombre llamada SQLEXPRESS de forma predeterminada y se recomienda que las aplicaciones utilicen la instancia compartida SQLEXPRESS. Además, dado que varias características están desactivadas de forma predeterminada en SQL, debe elegir de forma explícita los componentes que desea instalar. A continuación se muestra la pantalla del árbol de componentes de características, donde debe comprobar manualmente los elementos que se van a instalar. La línea de comandos de instalación ADDLOCAL=All selecciona todos los componentes para la instalación. Las entradas de GUI de componentes de características, además de las opciones de línea de comandos correspondientes, se muestran en la tabla 1 a continuación.

Tabla 1. Árbol de componentes de características de SQL Server Express

GUI de componentes de características

Parámetros de línea de comandos de componentes de características: debe proporcionar una lista delimitada por comas sin espacios de las características que se van a instalar después de ADDLOCAL

Servicios de bases de datos de SQL Server

SQL_Engine

Archivos de datos

SQLEngine_Data_Files

Réplica

SQL_Replication

Componentes de cliente

Client_Components

Herramientas de línea de comandos SQL

Server_tools

Componentes de conectividad

Connectivity

Kit de desarrollo de software

SDK

Se recomienda el modo de instalación de GUI si desea instalar el producto usted mismo. Normalmente, tiene acceso a SQL Server Express como descarga en Internet desde el sitio Web de Microsoft o desde el CD de la aplicación.

Se recomienda utilizar el modo de instalación silencioso para instalar SQL Server Express como parte de una aplicación de aplicación. En este modo, puede comprobar si el nombre de instancia SQLEXPRESS está presente en el equipo y, en caso contrario, puede instalarla en modo silencioso. Hay dos métodos sencillos para identificar las instancias de SQL Server Express en el equipo:

  • ServerInstance del proveedor del Instrumental de administración de Windows (WMI) para SQL contiene la edición de SQL y la información de versión.

  • El comando T-SQL Select SERVERPROPERTY("ENGINEEDITION") devuelve un valor de 4 para SQL Server Express.

Puede utilizar un programa previo a la instalación o la tecnología "Click Once" de Visual Studio para incluir SQL Server Express Microsoft Windows Installer (MSI) o descargar el ejecutable en Internet, lo que resulta especialmente útil para los proveedores de software independientes. No puede continuar con la instalación de SQL Server Express si la instancia SQLEXPRESS ya está presente. Un aspecto importante que se debe tener en cuenta es que el encadenamiento .msi no es admitido por Microsoft y, por lo tanto, no se puede utilizar. Además, los módulos de mezcla no son compatibles con SQL Server Express. Si ya hay una instalación de MSDE que no aparece en el menú Agregar o quitar programas del Panel de control, debe realizar una instalación limpia de SQL Server Express.

Algunos de los parámetros de línea de comandos utilizados comúnmente se incluyen a continuación.

  • SAPWD se utiliza para proporcionar la contraseña de la cuenta de administrador del sistema. Se utiliza fundamentalmente si se utiliza también SECURITYMODE=SQL. SECURITYMODE=SQL habilita la autenticación en modo mixto y es importante para proporcionar una contraseña segura de administrador del sistema. Para la autenticación de Windows, este parámetro no es obligatorio.

  • ADDLOCAL=ALL selecciona todos los componentes de SQL Server Express para la instalación

  • DISABLENETWORKPROTOCOLS se utiliza para habilitar y deshabilitar los protocolos de red. De forma predeterminada, el valor es 1, lo que significa que las funciones de red se deshabilitan de forma predeterminada. Utilice DISABLENETWORKPROTOCOLS=0 para habilitar las funciones de red en la instancia.

  • /qn se utiliza para realizar la instalación en modo silencioso.

  • El parámetro INSTANCENAME se utiliza para especificar el nombre de la instancia con nombre. Se recomienda el valor predeterminado SQLEXPRESS

Compatibilidad con idiomas

El motor de base de datos de SQL Server Express es compatible con los 12 idiomas compatibles con MSDE. Estos idiomas son inglés, portugués (Brasil), neerlandés, sueco, chino simplificado, chino tradicional, francés, alemán, italiano, japonés, coreano y español.

Consideraciones acerca de la compatibilidad

SQL Server Express es compatible con los grupos de noticias, la documentación basada en Web y recursos como los Libros en pantalla y los artículos de SQL.

Requisitos de hardware y software

  • Requisitos de hardware

    • Procesador a 600 MHz como mínimo

    • Se recomienda un procesador a 1 GHz

    • 256 MB de RAM como mínimo (advertencia de instalación)

    • Se recomiendan 512 MB de RAM

    • Espacio mínimo en disco duro de 170 MB (con Microsoft .NET Framework como requisito previo)

    • Mínimo de 800 x 600, 256 colores para vídeo

    • Se recomiendan 1024 x 768, y color de alta densidad de 16 bits para vídeo

  • Requisitos de software:

    • Microsoft Internet Explorer 6.0 SP1 o posterior

    • Microsoft .NET Framework 2.0

  • Sistema operative

    • Microsoft Windows 2000 SP4 Professional

    • Microsoft Windows 2000 SP4 Server

    • Microsoft Windows 2000 SP4 Advanced

    • Microsoft Windows 2000 SP4 Data Center

    • Microsoft Windows XP SP1 Professional o posterior

    • Microsoft Windows 2003 Server o posterior

    • Microsoft Windows 2003 Enterprise o posterior

    • Microsoft Windows 2003 Data Center o posterior

    • Microsoft Windows Small Business Server 2003 Standard o posterior

    • Microsoft Windows Small Business Server 2003 Premium o posterior

Compatibilidad con 64 bits

SQL Server Express es compatible con Windows on Windows (WOW) en plataformas x64. WOW implica básicamente la ejecución de Express de 32 bits en equipos de 64 bits. SQL Server Express no se instala en equipos IA64.

Características no presentes en SQL Server Express

Algunas de las características disponibles en otras ediciones de SQL, pero no en SQL Server Express, son las siguientes:

  • Características de disponibilidad como el reflejo de datos, clústeres, etc.

  • Búsqueda de texto completo

  • Agente de SQL

  • Reporting Services

  • Plataforma Business Intelligence como los servicios de notificación y análisis

  • SQL Management Studio, que es la nueva herramienta de GUI que sustituye a SQL 2000 Enterprise Manager

Tenga en cuenta que la búsqueda de texto completo y Reporting Services se agregarán a SQL Server Express en el año 2006.

Integración con Visual Studio

SQL Server Express se instala con todas las ediciones de Visual Studio. Visual Studio instala SQL Server Express con el nombre de instancia SQLEXPRESS. En SQL Server Express, las aplicaciones se basan en el nombre de instancia SQLEXPRESS. El objetivo de la integración de Visual Studio con SQL Server Express es facilitar el acceso a la base de datos con SQL Server Express en la misma medida que con Jet. Esto no sólo es válido para las aplicaciones cliente, sino también para los escenarios de servidor Web de ASP.NET.

Por ejemplo, un objeto de base de datos, que es una plantilla de base de datos de SQL Server, se introduce en los proyectos de Visual Studio. Este objeto se muestra si el usuario elige la opción Agregar nuevo objeto en un proyecto de Visual Studio. Una vez que se agrega una base de datos al proyecto, la administración de conexiones a la base de datos se realiza automáticamente para que el usuario pueda hacer clic en la base de datos y ver todos los objetos de la base de datos como las tablas, los procedimientos almacenados, etc. Ofrecemos la posibilidad de arrastrar y colocar las tablas correspondientes desde un formulario. En el caso de Visual Web Developer, GridView y SqlDataSource se crean automáticamente sin que el usuario tenga que escribir una línea de código. Además, puede vincular de forma automática un control como un cuadro de texto a un valor de base de datos mediante el método de arrastrar y colocar. Todas las configuraciones de cadenas de conexión se almacenan en un archivo Web.config central para que el usuario pueda ir a una ubicación única para modificarla.

Visual Studio utiliza la instancia de usuario de SQL Server Express de modo que los archivos de base de datos de SQL Server se puedan crear como archivos de Windows en el proyecto de Visual Studio. Por ejemplo, puede cambiar el nombre, eliminar, copiar o mover el archivo de base de datos (.mdf) en el directorio de datos como si tratara de archivos Jet. El archivo de registro (.ldf) asociado se somete a la misma operación que el archivo .mdf debido a que Visual Studio mantiene una asociación entre estos archivos. Visual Studio administra estas operaciones, las cuales se realizan incluso mientras se ejecuta una página o proceso de ASP.NET en la base de datos. Esto significa que un desarrollador de aplicaciones típicas de Visual Studio no tiene que preocuparse de los archivos de registro en un escenario de diseño y desarrollo. Sin embargo, durante la implementación, los archivos de registro se deben transportar junto con los archivos de base de datos.

Comparación con otras bases de datos gratuitas de Microsoft

Comparación con MSDE

SQL Server Express sustituye a Microsoft SQL Server Desktop Engine (MSDE) en SQL Server 2005 y proporciona numerosas características fáciles de utilizar que permiten su uso por parte de desarrolladores aficionados o no profesionales. MSDE se basa en la tecnología SQL 2000 y su uso se recomienda con plataformas Windows 9x, mientras que SQL Server Express se basa en la tecnología SQL Server 2005. SQL Server Express incluye características como Application XCopy, una IU de configuración estable, compatibilidad con CLR, herramientas de GUI e integración con Visual Studio, las cuales no están presentes en MSDE. No obstante, algunas características se han eliminado de SQL Server Express si se compara con MSDE. Estas características son DTS, publicación de réplica y Agente de SQL.

El uso de módulos de mezcla para la implementación ha supuesto un problema de servicio para MSDE y esta función no está disponible en SQL Server Express. El acelerador de carga de trabajo de MSDE resulta difícil de entender y utilizar en ocasiones. En SQL Server Express, el acelerador se ha eliminado y, en su lugar, el motor utiliza limitaciones de CPU, RAM y tamaño de base de datos para diferenciarlos de otras ediciones. En la siguiente tabla se muestra una comparación de estos productos.

Tabla 2. Comparación de MSDE con SQL Server Express

SQL Server Express 2005

MSDE 2000

Compatibilidad con las instancias de usuario

Característica no presente

DTS en descarga por separado

Tiempo de ejecución de DTS

Fácil implementación debido a la ausencia de MDAC

MDAC forma parte de la instalación

Sólo MSI, buen historial de servicio

MSI y MSM, servicio de MSM difícil

Réplica de suscriptor para transaccional, mezcla e instantánea

Publicación de mezcla o instantánea compatible además de la suscripción de réplica

IU de instalación estable

IU de instalación básica

Sin agente

Agente presente

Compatibilidad con Windows 2000 SP4, Windows XP SP1 y Windows 2003

Compatibilidad con Windows 98, Windows Me, Windows 2000, Windows XP, Windows NT4 y Windows 2003

Compatibilidad con CLR

No compatible con CLR

Herramientas de GUI disponibles

Sin herramientas de GUI

Límite de tamaño de base de datos: 4 GB

Límite de tamaño de base de datos: 2 GB

1 CPU, 1 GB de RAM

2 CPU, 2 GB de RAM

Sin acelerador

Acelerador de carga de trabajo forzado para 5 cargas de trabajo coincidentes

Integración completa con Visual Studio

Integración básica con Visual Studio

Comparación con Jet

SQL Server Express se basa en la tecnología SQL Server 2005 más avanzada, mientras que Jet se ha integrado en Service Pack y ha estado en la fase de mantenimiento durante un largo período. Todas las características mejores y más recientes, como la integración con CLR y la compatibilidad con XML, están disponibles sólo en SQL Server Express. La confiabilidad y escalabilidad de SQL Server Express son considerablemente mejores en comparación con Jet. Las aplicaciones escritas en SQL Server Express se pueden mover fácilmente a SQL Server Workgroup, Standard, o Enterprise, mientras que Jet resulta más difícil de escalar. SQL Server Express proporciona además un control de seguridad más preciso sobre los objetos de base de datos. Mediante la integración con Visual Studio 2005 y la característica de instancia de usuario, ofrecemos la facilidad de uso propia de Jet para SQL Server.

Conclusión

SQL Server Express es un producto importante de Microsoft, ya que se ha diseñado especialmente para desarrolladores no profesionales o aficionados y proveedores de software independientes. Es gratuito, fácil de usar, incluye características eficaces y proporciona una ruta de actualización perfecta a otras ediciones de SQL Server. Algunas características como las instancias de usuario, que son exclusivas de esta edición de SQL Server, y la instalación e implementación son seguras de forma predeterminada. Este producto presenta una serie de ventajas considerables frente a otras bases de datos de Microsoft gratuitas como Jet y MSDE. La integración de SQL Server Express con Visual Studio 2005 ofrece además un diseño de base de datos y una experiencia de desarrollo sencillos.

Mostrar: