stringtranslate.com

Servidor Microsoft SQL

Microsoft SQL Server (Structured Query Language) es un sistema de gestión de bases de datos relacionales desarrollado por Microsoft . Como servidor de bases de datos , es un producto de software cuya función principal es almacenar y recuperar datos según lo solicitado por otras aplicaciones de software , que pueden ejecutarse en la misma computadora o en otra computadora a través de una red (incluida Internet). Microsoft comercializa al menos una docena de ediciones diferentes de Microsoft SQL Server, dirigidas a diferentes audiencias y para cargas de trabajo que van desde pequeñas aplicaciones para una sola máquina hasta grandes aplicaciones orientadas a Internet con muchos usuarios simultáneos .

Historia

La historia de Microsoft SQL Server comienza con el primer producto de Microsoft SQL Server (SQL Server 1.0, un servidor de 16 bits para el sistema operativo OS/2 en 1989) y se extiende hasta la actualidad. Su nombre es completamente descriptivo, ya que se trata de un software de servidor que responde a consultas en lenguaje SQL .

Hitos

Actualmente

A partir de febrero de 2024 , Microsoft admite las siguientes versiones:

A partir de SQL Server 2016, el producto solo es compatible con procesadores x64 y debe tener un procesador de 1,4 GHz como mínimo; se recomienda 2,0 GHz o más rápido. [7]

La versión actual es Microsoft SQL Server 2022, lanzada el 16 de noviembre de 2022. La versión RTM es 16.0.1000.6. [8]

Ediciones

Microsoft ofrece SQL Server en varias ediciones, con diferentes conjuntos de características y dirigidas a distintos usuarios. Estas ediciones son: [9] [10]

Ediciones convencionales

Empresa
SQL Server Enterprise Edition incluye tanto el motor de base de datos principal como los servicios complementarios, con una gama de herramientas para crear y administrar un clúster de SQL Server. Puede administrar bases de datos de hasta 524 petabytes y direccionar 12 terabytes de memoria y admite 640 procesadores lógicos (núcleos de CPU). [11]
Estándar
La edición estándar de SQL Server incluye el motor de base de datos principal, junto con los servicios independientes. Se diferencia de la edición Enterprise en que admite menos instancias activas (número de nodos en un clúster) y no incluye algunas funciones de alta disponibilidad, como la memoria agregada en caliente (que permite agregar memoria mientras el servidor aún está en ejecución) y los índices paralelos.
Web
SQL Server Web Edition es una opción de alojamiento web con bajo costo total de propiedad .
Inteligencia empresarial
Introducido en SQL Server 2012 y centrado en el autoservicio y la inteligencia empresarial corporativa. Incluye las capacidades de la edición estándar y las herramientas de inteligencia empresarial: Power Pivot , Power View, el modelo semántico de BI, Master Data Services, Data Quality Services y análisis en memoria xVelocity. [12]
Grupo de trabajo
SQL Server Workgroup Edition incluye la funcionalidad básica de la base de datos, pero no incluye los servicios adicionales. Tenga en cuenta que esta edición se retiró de SQL Server 2012. [13]
Expresar
SQL Server Express Edition es una edición reducida y gratuita de SQL Server, que incluye el motor de base de datos principal. Si bien no hay limitaciones en la cantidad de bases de datos o usuarios admitidos, está limitada al uso de un procesador, 1 GB de memoria y archivos de base de datos de 10 GB (archivos de base de datos de 4 GB antes de SQL Server Express 2008 R2). [14] Está pensada como un reemplazo de MSDE . Dos ediciones adicionales proporcionan un superconjunto de características que no estaban en la Express Edition original. La primera es SQL Server Express con herramientas , que incluye SQL Server Management Studio Basic. SQL Server Express con servicios avanzados agrega capacidad de búsqueda de texto completo y servicios de informes. [15]

Ediciones especializadas

Azur
Microsoft Azure SQL Database es la versión basada en la nube de Microsoft SQL Server, presentada como una oferta de plataforma como servicio en Microsoft Azure .
MPP de Azure
Azure SQL Data Warehouse es la versión basada en la nube de Microsoft SQL Server en una arquitectura MPP (procesamiento paralelo masivo) para cargas de trabajo de análisis, presentada como una oferta de plataforma como servicio en Microsoft Azure .
Compacto (SQL CE)
La edición compacta es un motor de base de datos integrado. A diferencia de las otras ediciones de SQL Server, el motor SQL CE se basa en SQL Mobile (inicialmente diseñado para su uso con dispositivos portátiles) y no comparte los mismos binarios. Debido a su pequeño tamaño (huella DLL de 1 MB), tiene un conjunto de características notablemente reducido en comparación con las otras ediciones. Por ejemplo, admite un subconjunto de los tipos de datos estándar, no admite procedimientos almacenados ni vistas ni lotes de múltiples instrucciones (entre otras limitaciones). Está limitado a un tamaño máximo de base de datos de 4 GB y no se puede ejecutar como un servicio de Windows; Compact Edition debe estar alojado por la aplicación que lo utiliza. La versión 3.5 incluye compatibilidad con los servicios de sincronización ADO.NET. SQL CE no admite la conectividad ODBC, a diferencia de SQL Server propiamente dicho.
Revelador
SQL Server Developer Edition incluye las mismas características que SQL Server Enterprise Edition, pero está limitada por la licencia y solo se puede utilizar como sistema de desarrollo y prueba, y no como servidor de producción. A principios de 2016, Microsoft puso esta edición a disposición del público de forma gratuita. [16]
Integrado (SSEE)
SQL Server 2005 Embedded Edition es una instancia con nombre especialmente configurada del motor de base de datos SQL Server Express a la que sólo pueden acceder determinados servicios de Windows.
Evaluación
SQL Server Evaluation Edition, también conocida como Trial Edition , tiene todas las características de Enterprise Edition, pero está limitada a 180 días, después de los cuales las herramientas seguirán funcionando, pero los servicios del servidor se detendrán. [17]
Vía rápida
SQL Server Fast Track está diseñado específicamente para el almacenamiento de datos a escala empresarial y el procesamiento de inteligencia empresarial, y se ejecuta en hardware de arquitectura de referencia optimizado para Fast Track. [18]
Base de datos local
Introducido en SQL Server Express 2012, LocalDB es una versión mínima y a pedido de SQL Server que está diseñada para desarrolladores de aplicaciones. [19] También se puede utilizar como una base de datos integrada. [20]
Sistema de plataforma analítica (APS)
Anteriormente Parallel Data Warehouse (PDW) Un dispositivo de SQL Server de procesamiento paralelo masivo (MPP) optimizado para el almacenamiento de datos a gran escala, como cientos de terabytes. [21]
Edición de dispositivo de almacenamiento de datos
Preinstalado y configurado como parte de un dispositivo en asociación con Dell y HP basado en la arquitectura Fast Track. Esta edición no incluye SQL Server Integration Services, Analysis Services ni Reporting Services. SQLCMD

Ediciones discontinuadas

Motor de datos de Microsoft
La versión 1.0 se basa en la versión 7.0 de SQL Server. [22] Posteriormente, fue reemplazada por Microsoft SQL Server Data Engine.
Motor de datos de Microsoft SQL Server
También llamado Desktop Engine, Desktop Edition, está basado en SQL Server 2000. Pensado para usarse como un componente de aplicación, no incluía herramientas de administración de GUI. Más tarde, Microsoft también puso a disposición una herramienta de administración web. Incluido con algunas versiones de Microsoft Access , herramientas de desarrollo de Microsoft y otras ediciones de SQL Server. [23] Después de SQL Server 2000, fue reemplazado por SQL Server 2005 Express Edition.
Edición personal
SQL Server 2000. Tenía límites de carga de trabajo o de conexión como MSDE, pero no de tamaño de base de datos. Incluye herramientas de administración estándar. Destinado para usarse como proxy móvil/desconectado, con licencia para usarse con la edición estándar de SQL Server 2000. [23] Similar a la edición estándar en SQL Server 2000, pero la búsqueda de texto completo no funciona en Windows 98, la replicación transaccional está limitada al suscriptor. [24]
Centro de datos
SQL Server 2008 R2 Datacenter es una edición completa de SQL Server y está diseñada para centros de datos que necesitan altos niveles de compatibilidad y escalabilidad de aplicaciones. Admite 256 procesadores lógicos y una memoria prácticamente ilimitada y viene con la edición StreamInsight Premium. [25] La edición Datacenter se retiró de SQL Server 2012; todas sus características están disponibles en SQL Server 2012 Enterprise Edition. [13]
Edición de Windows CE
Introducido en SQL Server 2000, [26] y fue reemplazado por SQL Server 2005 Mobile Edition.
SQL Server 2005 Edición móvil
Reemplazado por SQL Server 2005 Compact Edition después de 1 lanzamiento.
Edición compacta de SQL Server 2005
Reemplazado por SQL Server Compact 3.5 después de 1 lanzamiento.

Paquetes complementarios

Las herramientas publicadas por Microsoft incluyen:

  • Muestras: [27] Northwind y pubs Bases de datos de muestra, muestras actualizadas para SQL Server 2000.
  • Herramientas: Herramientas de análisis de rendimiento y pruebas de estrés (Read80Trace y OSTRESS), Utilidad de recopilación de datos PSSDIAG, Servicios de notificación (hasta el Service Pack 1), Herramientas de seguridad, Best Practices Analyzer 1.0, Reporting Services (hasta el Service Pack 2), Reporting Services Report Packs, Controlador SQL Server 2000 para JDBC (hasta el Service Pack 3), SQLXML 3.0 (hasta el Service Pack 3).
  • Documentación: [28] Libros en línea de SQL Server 2000, Mapa de tablas del sistema de SQL Server 2000, Kit de recursos, SQL Server 2000 — Guía de introducción.

Arquitectura

La capa de protocolo implementa la interfaz externa a SQL Server. Todas las operaciones que se pueden invocar en SQL Server se le comunican a través de un formato definido por Microsoft, llamado Tabular Data Stream (TDS). TDS es un protocolo de capa de aplicación, utilizado para transferir datos entre un servidor de base de datos y un cliente. Inicialmente diseñado y desarrollado por Sybase Inc. para su motor de base de datos relacional Sybase SQL Server en 1984, y más tarde por Microsoft en Microsoft SQL Server, los paquetes TDS se pueden incluir en otros protocolos dependientes del transporte físico, incluidos TCP/IP , canalizaciones con nombre y memoria compartida . En consecuencia, el acceso a SQL Server está disponible a través de estos protocolos. Además, la API de SQL Server también se expone a través de servicios web . [10]

Almacenamiento de datos

El almacenamiento de datos es una base de datos , que es una colección de tablas con columnas tipificadas . SQL Server admite diferentes tipos de datos, incluidos los tipos primitivos como Integer , Float , Decimal , Char (incluidas las cadenas de caracteres), Varchar (cadenas de caracteres de longitud variable), binary (para blobs de datos no estructurados), Text (para datos textuales), entre otros. El redondeo de flotantes a enteros utiliza redondeo aritmético simétrico o redondeo descendente simétrico ( fix ) según los argumentos: SELECT Round(2.5, 0)da 3.

Microsoft SQL Server también permite definir y utilizar tipos compuestos definidos por el usuario (UDT). También pone a disposición estadísticas del servidor como tablas y vistas virtuales (denominadas vistas de gestión dinámica o DMV). Además de las tablas, una base de datos también puede contener otros objetos, como vistas , procedimientos almacenados , índices y restricciones , junto con un registro de transacciones. Una base de datos de SQL Server puede contener un máximo de 2 31 objetos y puede abarcar varios archivos de nivel de sistema operativo con un tamaño máximo de archivo de 2 60 bytes (1 exabyte). [10] Los datos de la base de datos se almacenan en archivos de datos primarios con una extensión .mdf. Los archivos de datos secundarios, identificados con una .ndfextensión, se utilizan para permitir que los datos de una única base de datos se distribuyan en más de un archivo y, opcionalmente, en más de un sistema de archivos. Los archivos de registro se identifican con la .ldfextensión. [10]

El espacio de almacenamiento asignado a una base de datos se divide en páginas numeradas secuencialmente , cada una de 8 KB de tamaño. Una página es la unidad básica de E/S para las operaciones de SQL Server. Una página se marca con un encabezado de 96 bytes que almacena metadatos sobre la página, incluidos el número de página, el tipo de página, el espacio libre en la página y el ID del objeto que la posee. El tipo de página define los datos contenidos en la página. Estos datos incluyen: datos almacenados en la base de datos, un índice, un mapa de asignación, que contiene información sobre cómo se asignan las páginas a las tablas e índices; y un mapa de cambios que contiene información sobre los cambios realizados en otras páginas desde la última copia de seguridad o registro, o que contiene tipos de datos grandes como imágenes o texto. Si bien una página es la unidad básica de una operación de E/S, el espacio en realidad se administra en términos de una extensión que consta de 8 páginas. Un objeto de base de datos puede abarcar las 8 páginas en una extensión ("extensión uniforme") o compartir una extensión con hasta 7 objetos más ("extensión mixta"). Una fila de una tabla de base de datos no puede abarcar más de una página, por lo que su tamaño está limitado a 8 KB. Sin embargo, si los datos superan los 8 KB y la fila contiene datos varchar o varbinary , los datos de esas columnas se mueven a una nueva página (o posiblemente a una secuencia de páginas, denominada unidad de asignación ) y se reemplazan con un puntero a los datos. [29]

Para el almacenamiento físico de una tabla, sus filas se dividen en una serie de particiones (numeradas del 1 al n). El tamaño de la partición lo define el usuario; de manera predeterminada, todas las filas se encuentran en una sola partición. Una tabla se divide en varias particiones para distribuir una base de datos en un clúster de computadoras . Las filas de cada partición se almacenan en una estructura de árbol B o de montón . Si la tabla tiene un índice agrupado asociado para permitir una recuperación rápida de filas, las filas se almacenan en orden según sus valores de índice, y un árbol B proporciona el índice. Los datos se encuentran en el nodo hoja de las hojas y otros nodos almacenan los valores de índice de los datos hoja a los que se puede acceder desde los nodos respectivos. Si el índice no está agrupado, las filas no se ordenan según las claves del índice. Una vista indexada tiene la misma estructura de almacenamiento que una tabla indexada. Una tabla sin un índice agrupado se almacena en una estructura de montón desordenada. Sin embargo, la tabla puede tener índices no agrupados para permitir una recuperación rápida de filas. En algunas situaciones, la estructura de montón presenta ventajas de rendimiento con respecto a la estructura agrupada. Tanto los montones como los árboles B pueden abarcar varias unidades de asignación. [30]

Gestión de buffer

SQL Server almacena páginas en la memoria RAM para minimizar la E/S del disco. Cualquier página de 8 KB se puede almacenar en la memoria y el conjunto de todas las páginas almacenadas actualmente en el búfer se denomina caché de búfer. La cantidad de memoria disponible para SQL Server decide cuántas páginas se almacenarán en caché en la memoria. El Administrador de búfer administra la caché de búfer . Al leer o escribir en cualquier página, se copia en la caché de búfer. Las lecturas o escrituras posteriores se redirigen a la copia en memoria, en lugar de a la versión en disco. El Administrador de búfer actualiza la página en el disco solo si no se ha hecho referencia a la caché en memoria durante algún tiempo. Al volver a escribir páginas en el disco, se utiliza la E/S asincrónica , por lo que la operación de E/S se realiza en un subproceso en segundo plano para que otras operaciones no tengan que esperar a que se complete la operación de E/S. Cada página se escribe junto con su suma de comprobación cuando se escribe. Al volver a leer la página, se calcula nuevamente su suma de comprobación y se compara con la versión almacenada para garantizar que la página no haya sido dañada o alterada mientras tanto. [31]

Simultaneidad y bloqueo

SQL Server permite que varios clientes utilicen la misma base de datos simultáneamente. Por lo tanto, necesita controlar el acceso simultáneo a los datos compartidos para garantizar su integridad (cuando varios clientes actualizan los mismos datos o intentan leer datos que otro cliente está modificando). SQL Server ofrece dos modos de control de simultaneidad: simultaneidad pesimista y simultaneidad optimista . Cuando se utiliza el control de simultaneidad pesimista, SQL Server controla el acceso simultáneo mediante bloqueos. Los bloqueos pueden ser compartidos o exclusivos. Un bloqueo exclusivo otorga al usuario acceso exclusivo a los datos (ningún otro usuario puede acceder a ellos mientras se mantenga el bloqueo). Los bloqueos compartidos se utilizan cuando se leen algunos datos (varios usuarios pueden leer datos bloqueados con un bloqueo compartido, pero no pueden adquirir un bloqueo exclusivo). Este último tendría que esperar a que se liberaran todos los bloqueos compartidos.

Los bloqueos se pueden aplicar en diferentes niveles de granularidad: en tablas completas, páginas o incluso en una base por fila en las tablas. Para los índices, puede ser en el índice completo o en las hojas del índice. El nivel de granularidad que se utilizará lo define el administrador de la base de datos en función de cada base de datos. Si bien un sistema de bloqueo de grano fino permite que más usuarios utilicen la tabla o el índice simultáneamente, requiere más recursos, por lo que no produce automáticamente un mayor rendimiento. SQL Server también incluye dos soluciones de exclusión mutua más ligeras (pestillos y bloqueos giratorios), que son menos robustas que los bloqueos, pero consumen menos recursos. SQL Server los usa para DMV y otros recursos que generalmente no están ocupados. SQL Server también monitorea todos los subprocesos de trabajo que adquieren bloqueos para asegurarse de que no terminen en interbloqueos ; en caso de que lo hagan, SQL Server toma medidas correctivas, que en muchos casos son matar uno de los subprocesos enredados en un interbloqueo y revertir la transacción que inició. [10] Para implementar el bloqueo, SQL Server contiene el Administrador de bloqueos . El administrador de bloqueos mantiene una tabla en memoria que administra los objetos de la base de datos y los bloqueos, si los hay, junto con otros metadatos sobre el bloqueo. El acceso a cualquier objeto compartido está mediado por el administrador de bloqueos, que otorga acceso al recurso o lo bloquea.

SQL Server también proporciona el mecanismo de control de concurrencia optimista, que es similar al control de concurrencia multiversión utilizado en otras bases de datos. El mecanismo permite crear una nueva versión de una fila siempre que se actualice la fila, en lugar de sobrescribir la fila, es decir, una fila se identifica adicionalmente por el ID de la transacción que creó la versión de la fila. Tanto la versión antigua como la nueva de la fila se almacenan y mantienen, aunque las versiones antiguas se trasladan fuera de la base de datos a una base de datos del sistema identificada como Tempdb. Cuando una fila está en proceso de actualización, cualquier otra solicitud no se bloquea (a diferencia del bloqueo) sino que se ejecuta en la versión anterior de la fila. Si la otra solicitud es una declaración de actualización, dará como resultado dos versiones diferentes de las filas: ambas se almacenarán en la base de datos, identificadas por sus respectivos ID de transacción. [10]

Recuperación de datos y programabilidad

El modo principal de recuperar datos de una base de datos de SQL Server es consultarlos . La consulta se expresa utilizando una variante de SQL llamada T-SQL , un dialecto que Microsoft SQL Server comparte con Sybase SQL Server debido a su legado. La consulta especifica de forma declarativa lo que se va a recuperar. Es procesada por el procesador de consultas, que determina la secuencia de pasos que serán necesarios para recuperar los datos solicitados. La secuencia de acciones necesarias para ejecutar una consulta se denomina plan de consulta . Puede haber varias formas de procesar la misma consulta. Por ejemplo, para una consulta que contiene una declaración de unión y una declaración de selección , ejecutar la unión en ambas tablas y luego ejecutar la selección en los resultados daría el mismo resultado que seleccionar de cada tabla y luego ejecutar la unión, pero daría como resultado diferentes planes de ejecución. En tal caso, SQL Server elige el plan que se espera que produzca los resultados en el menor tiempo posible. Esto se llama optimización de consultas y lo realiza el propio procesador de consultas. [10]

SQL Server incluye un optimizador de consultas basado en costos que intenta optimizar el costo, en términos de los recursos que se necesitarán para ejecutar la consulta. Dada una consulta, el optimizador de consultas analiza el esquema de la base de datos , las estadísticas de la base de datos y la carga del sistema en ese momento. Luego decide en qué secuencia acceder a las tablas a las que se hace referencia en la consulta, en qué secuencia ejecutar las operaciones y qué método de acceso se utilizará para acceder a las tablas. Por ejemplo, si la tabla tiene un índice asociado, si se debe utilizar el índice o no: si el índice está en una columna que no es única para la mayoría de las columnas ("selectividad" baja), puede que no valga la pena utilizar el índice para acceder a los datos. Finalmente, decide si ejecutar la consulta de manera simultánea o no. Si bien una ejecución simultánea es más costosa en términos de tiempo total de procesador, debido a que la ejecución en realidad se divide en diferentes procesadores, puede significar que se ejecutará más rápido. Una vez que se genera un plan de consulta para una consulta, se almacena en caché temporalmente. Para futuras invocaciones de la misma consulta, se utiliza el plan almacenado en caché. Los planes no utilizados se descartan después de un tiempo. [10] [32]

SQL Server también permite definir procedimientos almacenados . Los procedimientos almacenados son consultas T-SQL parametrizadas, que se almacenan en el propio servidor (y no son emitidas por la aplicación cliente como es el caso de las consultas generales). Los procedimientos almacenados pueden aceptar valores enviados por el cliente como parámetros de entrada y enviar resultados como parámetros de salida. Pueden llamar a funciones definidas y a otros procedimientos almacenados, incluido el mismo procedimiento almacenado (hasta un número determinado de veces). Se les puede proporcionar acceso de forma selectiva a . A diferencia de otras consultas, los procedimientos almacenados tienen un nombre asociado, que se utiliza en tiempo de ejecución para resolver las consultas reales. Además, como no es necesario enviar el código desde el cliente cada vez (ya que se puede acceder a él por nombre), reduce el tráfico de red y mejora un poco el rendimiento. [33] Los planes de ejecución de los procedimientos almacenados también se almacenan en caché según sea necesario.

T-SQL

T-SQL (Transact-SQL) es una extensión de lenguaje procedimental patentada de Microsoft para SQL Server. Proporciona instrucciones REPL (Read-Eval-Print-Loop) que amplían el conjunto de instrucciones estándar de SQL para las instrucciones de manipulación de datos ( DML ) y definición de datos ( DDL ), incluidas las configuraciones específicas de SQL Server, la seguridad y la gestión de estadísticas de bases de datos.

Expone palabras clave para las operaciones que se pueden realizar en SQL Server, incluyendo la creación y modificación de esquemas de bases de datos, la introducción y edición de datos en la base de datos, así como la supervisión y gestión del propio servidor. Las aplicaciones cliente que consumen datos o gestionan el servidor aprovecharán la funcionalidad de SQL Server enviando consultas y sentencias T-SQL que luego son procesadas por el servidor y los resultados (o errores) devueltos a la aplicación cliente. Para ello, expone tablas de sólo lectura desde las que se pueden leer las estadísticas del servidor. La funcionalidad de gestión se expone a través de procedimientos almacenados definidos por el sistema que se pueden invocar desde consultas T-SQL para realizar la operación de gestión. También es posible crear servidores vinculados utilizando T-SQL. Los servidores vinculados permiten que una única consulta procese operaciones realizadas en varios servidores. [34]

Cliente nativo de SQL Server (también conocido como SNAC)

SQL Server Native Client es la biblioteca de acceso a datos del lado del cliente nativa para Microsoft SQL Server, versión 2005 en adelante. Implementa de forma nativa el soporte para las características de SQL Server, incluyendo la implementación de Tabular Data Stream , soporte para bases de datos SQL Server reflejadas, soporte completo para todos los tipos de datos soportados por SQL Server, operaciones asincrónicas, notificaciones de consultas, soporte de cifrado , así como la recepción de múltiples conjuntos de resultados en una sola sesión de base de datos. SQL Server Native Client es utilizado en segundo plano por los complementos de SQL Server para otras tecnologías de acceso a datos, incluyendo ADO u OLE DB . SQL Server Native Client también se puede utilizar directamente, omitiendo las capas genéricas de acceso a datos. [35]

El 28 de noviembre de 2011, se lanzó una versión preliminar del controlador ODBC de SQL Server para Linux . [36]

CLR de SQL

Microsoft SQL Server 2005 incluye un componente llamado SQL CLR ("Common Language Runtime") a través del cual se integra con .NET Framework . A diferencia de la mayoría de las demás aplicaciones que utilizan .NET Framework, SQL Server aloja el entorno de ejecución de .NET Framework , es decir, los requisitos de memoria, subprocesamiento y gestión de recursos de .NET Framework los satisface el propio SQLOS, en lugar del sistema operativo Windows subyacente. SQLOS también proporciona servicios de detección y resolución de bloqueos para el código .NET. Con SQL CLR, los procedimientos almacenados y los activadores se pueden escribir en cualquier lenguaje .NET administrado , incluidos C# y VB.NET . El código administrado también se puede utilizar para definir UDT ( tipos definidos por el usuario ), que pueden persistir en la base de datos. El código administrado se compila en ensambles CLI y, después de verificarse la seguridad de tipos , se registra en la base de datos. Después de eso, se pueden invocar como cualquier otro procedimiento. [37] Sin embargo, solo está disponible un subconjunto de la biblioteca de clases base cuando se ejecuta código bajo SQL CLR. La mayoría de las API relacionadas con la funcionalidad de la interfaz de usuario no están disponibles. [37]

Al escribir código para SQL CLR, se puede acceder a los datos almacenados en bases de datos de SQL Server mediante las API de ADO.NET como cualquier otra aplicación administrada que acceda a datos de SQL Server. Sin embargo, al hacerlo se crea una nueva sesión de base de datos, diferente de aquella en la que se está ejecutando el código. Para evitar esto, SQL Server proporciona algunas mejoras al proveedor ADO.NET que permiten redirigir la conexión a la misma sesión que ya aloja el código en ejecución. Dichas conexiones se denominan conexiones de contexto y se establecen estableciendo el parámetro en en la cadena de conexión. SQL Server también proporciona varias otras mejoras a la API de ADO.NET , incluidas clases para trabajar con datos tabulares o una sola fila de datos, así como clases para trabajar con metadatos internos sobre los datos almacenados en la base de datos. También proporciona acceso a las características XML en SQL Server, incluido el soporte XQuery . Estas mejoras también están disponibles en los procedimientos T-SQL como consecuencia de la introducción del nuevo tipo de datos XML (funciones de consulta, valor y nodos). [38]context connectiontrue

Servicio

SQL Server también incluye una variedad de servicios complementarios. Si bien no son esenciales para el funcionamiento del sistema de base de datos, brindan servicios de valor agregado además del sistema de administración de base de datos principal. Estos servicios se ejecutan como parte de algún componente de SQL Server o fuera de proceso como un servicio de Windows y presentan su propia API para controlarlos e interactuar con ellos.

Servicios de aprendizaje automático

Los servicios de aprendizaje automático de SQL Server funcionan dentro de la instancia de SQL Server, lo que permite a las personas realizar aprendizaje automático y análisis de datos sin tener que enviar datos a través de la red o estar limitados por la memoria de sus propias computadoras. Los servicios vienen con las distribuciones R y Python de Microsoft que contienen paquetes de uso común para la ciencia de datos, junto con algunos paquetes propietarios (por ejemplo, revoscalepy , RevoScaleR , microsoftml) que se pueden usar para crear modelos de máquinas a escala.

Los analistas pueden configurar su máquina cliente para conectarse a un servidor SQL remoto y enviarle las ejecuciones de scripts, o pueden ejecutar scripts de R o Python como un script externo dentro de una consulta T-SQL. El modelo de aprendizaje automático entrenado se puede almacenar dentro de una base de datos y usarse para puntuar. [39]

Corredor de servicios

Se utiliza dentro de un entorno de programación de instancias. Para aplicaciones entre instancias, Service Broker se comunica a través de TCP/IP y permite sincronizar los diferentes componentes mediante el intercambio de mensajes. Service Broker, que se ejecuta como parte del motor de base de datos, proporciona una plataforma confiable de mensajería y colas de mensajes para aplicaciones SQL Server. [40]

Los servicios de intermediación de servicios constan de las siguientes partes: [41]

El tipo de mensaje define el formato de datos utilizado para el mensaje. Puede ser un objeto XML, texto simple o datos binarios, así como un cuerpo de mensaje nulo para notificaciones. El contrato define qué mensajes se utilizan en una conversación entre servicios y quién puede poner mensajes en la cola. La cola actúa como proveedor de almacenamiento para los mensajes. SQL Server los implementa internamente como tablas, pero no admiten la funcionalidad de inserción, actualización o eliminación. El programa de servicio recibe y procesa los mensajes del agente de servicio. Por lo general, el programa de servicio se implementa como un procedimiento almacenado o una aplicación CLR . Las rutas son direcciones de red en las que se encuentra el agente de servicio en la red. [41]

Además, el agente de servicios admite funciones de seguridad como autenticación de red (usando NTLM , Kerberos o certificados de autorización ), verificación de integridad y cifrado de mensajes . [41]

Servicios de replicación

SQL Server Replication Services es utilizado por SQL Server para replicar y sincronizar objetos de base de datos, ya sea en su totalidad o un subconjunto de los objetos presentes, entre agentes de replicación, que pueden ser otros servidores de base de datos en la red o cachés de base de datos en el lado del cliente. Replication Services sigue un modelo de publicador/suscriptor, es decir, los cambios son enviados por un servidor de base de datos ("publicador") y son recibidos por otros ("suscriptores"). SQL Server admite tres tipos diferentes de replicación: [42]

Replicación de transacciones
Cada transacción realizada en la base de datos del editor (base de datos maestra) se sincroniza con los suscriptores, quienes actualizan sus bases de datos con la transacción. La replicación transaccional sincroniza las bases de datos casi en tiempo real. [43]
Replicación de fusión
Se realiza un seguimiento de los cambios realizados en las bases de datos del publicador y del suscriptor, y periódicamente los cambios se sincronizan de forma bidireccional entre el publicador y los suscriptores. Si los mismos datos se han modificado de forma diferente en las bases de datos del publicador y del suscriptor, la sincronización generará un conflicto que se debe resolver, ya sea manualmente o mediante el uso de políticas predefinidas. Rowguid debe configurarse en una columna si se configura la replicación de combinación. [44]
Replicación de instantáneas
La replicación de instantáneas publica una copia de toda la base de datos (la instantánea de los datos) y la replica a los suscriptores. No se realiza un seguimiento de los cambios posteriores a la instantánea. [45]

Servicios de análisis

SQL Server Analysis Services (SSAS) agrega capacidades de minería de datos y OLAP para bases de datos de SQL Server. El motor OLAP admite los modos de almacenamiento de datos MOLAP , ROLAP y HOLAP . Analysis Services admite el estándar XML for Analysis como protocolo de comunicación subyacente. Se puede acceder a los datos del cubo mediante consultas MDX y LINQ [46] . [47] La ​​funcionalidad específica de minería de datos se expone a través del lenguaje de consulta DMX . Analysis Services incluye varios algoritmos ( árboles de decisión , algoritmo de agrupamiento, algoritmo Naive Bayes , análisis de series temporales, algoritmo de agrupamiento de secuencias, análisis de regresión lineal y logística y redes neuronales ) para su uso en minería de datos. [48]

Servicios de informes

SQL Server Reporting Services (SSRS) es un entorno de generación de informes para datos recopilados de bases de datos de SQL Server. Se administra a través de una interfaz web. Reporting Services cuenta con una interfaz de servicios web para respaldar el desarrollo de aplicaciones de informes personalizadas. Los informes se crean como archivos RDL . [49]

Los informes se pueden diseñar utilizando versiones recientes de Microsoft Visual Studio (Visual Studio.NET 2003, 2005 y 2008) [50] con Business Intelligence Development Studio instalado o con el Generador de informes incluido. Una vez creados, los archivos RDL se pueden representar en una variedad de formatos, [51] [52] incluidos Excel, PDF , CSV , XML , BMP , EMF , GIF , JPEG , PNG y TIFF , [53] y HTML Web Archive.

Servicios de notificación

Originalmente introducido como un complemento posterior al lanzamiento para SQL Server 2000, [54] Notification Services se incluyó como parte de la plataforma Microsoft SQL Server por primera y única vez con SQL Server 2005. [55] [56] SQL Server Notification Services es un mecanismo para generar notificaciones basadas en datos, que se envían a los suscriptores de Notification Services. Un suscriptor se registra para un evento o transacción específicos (que se registra en el servidor de base de datos como un disparador); cuando ocurre el evento, Notification Services puede usar uno de tres métodos para enviar un mensaje al suscriptor informando sobre la ocurrencia del evento. Estos métodos incluyen SMTP, SOAP o escribiendo en un archivo en el sistema de archivos. [57] Notification Services fue descontinuado por Microsoft con el lanzamiento de SQL Server 2008 en agosto de 2008, y ya no es un componente oficialmente compatible de la plataforma de base de datos de SQL Server.

Servicios de Integración

SQL Server Integration Services (SSIS) proporciona capacidades ETL para SQL Server para la importación de datos , la integración de datos y las necesidades de almacenamiento de datos . Integration Services incluye herramientas GUI para crear flujos de trabajo como la extracción de datos de varias fuentes, la consulta de datos, la transformación de datos (incluida la agregación, la deduplicación, la desnormalización/normalización y la fusión de datos) y, a continuación, la exportación de los datos transformados a bases de datos o archivos de destino. [58]

Servicio de búsqueda de texto completo

La arquitectura del servicio de búsqueda de texto completo de SQL Server

El servicio de búsqueda de texto completo de SQL Server es un servicio especializado de indexación y consulta para texto no estructurado almacenado en bases de datos de SQL Server. El índice de búsqueda de texto completo se puede crear en cualquier columna con datos de texto basados ​​en caracteres. Permite buscar palabras en las columnas de texto. Si bien se puede realizar con el LIKEoperador SQL, el uso del servicio de búsqueda de texto completo de SQL Server puede ser más eficiente. Full permite la coincidencia inexacta de la cadena de origen, indicada por un valor de rango que puede variar de 0 a 1000; un rango más alto significa una coincidencia más precisa. También permite la coincidencia lingüística ("búsqueda flexiva"), es decir, las variantes lingüísticas de una palabra (como un verbo en un tiempo diferente) también serán una coincidencia para una palabra dada (pero con un rango más bajo que una coincidencia exacta). También se admiten las búsquedas de proximidad, es decir, si las palabras buscadas no aparecen en la secuencia en la que se especifican en la consulta pero están cerca unas de otras, también se consideran una coincidencia. T-SQL expone operadores especiales que se pueden utilizar para acceder a las capacidades de FTS. [59] [60]

El motor de búsqueda de texto completo se divide en dos procesos: el proceso Filter Daemonmsftefd.exe ( ) y el proceso Searchmsftesql.exe ( ). Estos procesos interactúan con SQL Server. El proceso Search incluye el indexador (que crea los índices de texto completo) y el procesador de consultas de texto completo. El indexador escanea las columnas de texto en la base de datos. También puede indexar columnas binarias y usar iFilters para extraer texto significativo del blob binario (por ejemplo, cuando un documento de Microsoft Word se almacena como un archivo binario no estructurado en una base de datos). Los iFilters están alojados por el proceso Filter Daemon. Una vez que se extrae el texto, el proceso Filter Daemon lo divide en una secuencia de palabras y se lo entrega al indexador. El indexador filtra las palabras irrelevantes , es decir, palabras como A , And , etc., que aparecen con frecuencia y no son útiles para la búsqueda. Con las palabras restantes se crea un índice invertido , asociando cada palabra con las columnas en las que se encontró. El propio SQL Server incluye un componente Gatherer que monitoriza los cambios en las tablas e invoca al indexador en caso de actualizaciones. [61]

Cuando el procesador de consultas de SQL Server recibe una consulta de texto completo, la transfiere al procesador de consultas de FTS en el proceso de búsqueda. El procesador de consultas de FTS divide la consulta en las palabras que la componen, filtra las palabras irrelevantes y utiliza un diccionario de sinónimos integrado para averiguar las variantes lingüísticas de cada palabra. A continuación, se consultan las palabras en función del índice invertido y se calcula un rango de su precisión. Los resultados se devuelven al cliente a través del proceso de SQL Server. [61]

SQLCMD

SQLCMD es una aplicación de línea de comandos que viene con Microsoft SQL Server y expone las características de administración de SQL Server. Permite escribir y ejecutar consultas SQL desde el símbolo del sistema. También puede actuar como lenguaje de script para crear y ejecutar un conjunto de instrucciones SQL como un script. Dichos scripts se almacenan como un .sqlarchivo y se utilizan para la administración de bases de datos o para crear el esquema de la base de datos durante la implementación de una base de datos.

SQLCMD se introdujo con SQL Server 2005 y continuó hasta las versiones 2008, 2008 R2, 2012, 2014, 2016 y 2019 de SQL Server. Su predecesor para versiones anteriores fue OSQL e ISQL, que eran funcionalmente equivalentes en lo que respecta a la ejecución de T-SQL, y muchos de los parámetros de la línea de comandos son idénticos, aunque SQLCMD agrega versatilidad adicional.

Estudio visual

Microsoft Visual Studio incluye compatibilidad nativa con la programación de datos con Microsoft SQL Server. Se puede utilizar para escribir y depurar código que se ejecutará mediante SQL CLR. También incluye un diseñador de datos que se puede utilizar para crear, ver o editar esquemas de bases de datos de forma gráfica. Las consultas se pueden crear de forma visual o mediante código. A partir de SSMS 2008, también se proporciona intellisense para consultas SQL.

Estudio de administración de SQL Server

SQL Server Management Studio es una herramienta GUI incluida con SQL Server 2005 y versiones posteriores para configurar, gestionar y administrar todos los componentes dentro de Microsoft SQL Server. La herramienta incluye editores de scripts y herramientas gráficas que funcionan con objetos y características del servidor. [62] SQL Server Management Studio reemplaza a Enterprise Manager como la interfaz de administración principal para Microsoft SQL Server desde SQL Server 2005. También está disponible una versión de SQL Server Management Studio para SQL Server Express Edition, por lo que se conoce como SQL Server Management Studio Express (SSMSE). [63]

Una característica central de SQL Server Management Studio es el Explorador de objetos, que permite al usuario explorar, seleccionar y actuar sobre cualquiera de los objetos dentro del servidor. [64] Se puede utilizar para observar y analizar visualmente los planes de consulta y optimizar el rendimiento de la base de datos, entre otras cosas. [65] SQL Server Management Studio también se puede utilizar para crear una nueva base de datos, alterar cualquier esquema de base de datos existente agregando o modificando tablas e índices, o analizar el rendimiento. Incluye las ventanas de consulta que proporcionan una interfaz basada en GUI para escribir y ejecutar consultas. [10]

Estudio de datos de Azure

Azure Data Studio es un editor de consultas multiplataforma disponible como descarga opcional. La herramienta permite a los usuarios escribir consultas, exportar resultados de consultas, confirmar scripts SQL en repositorios de Git y realizar diagnósticos básicos del servidor. Azure Data Studio es compatible con sistemas Windows, Mac y Linux. [66]

Se lanzó con disponibilidad general en septiembre de 2018. Antes del lanzamiento, la versión preliminar de la aplicación se conocía como SQL Server Operations Studio.

Estudio de desarrollo de inteligencia empresarial

Business Intelligence Development Studio (BIDS) es el IDE de Microsoft utilizado para desarrollar soluciones de análisis de datos e inteligencia empresarial utilizando Microsoft SQL Server Analysis Services , Reporting Services e Integration Services . Se basa en el entorno de desarrollo de Microsoft Visual Studio , pero se personaliza con las extensiones y los tipos de proyectos específicos de los servicios de SQL Server, incluidas herramientas, controles y proyectos para informes (mediante Reporting Services), cubos y estructuras de minería de datos (mediante Analysis Services). [67] Para SQL Server 2012 y versiones posteriores, este IDE ha cambiado de nombre a SQL Server Data Tools (SSDT).

Véase también

Referencias

  1. ^ "Explorar las capacidades de SQL Server 2022" . Consultado el 6 de enero de 2023 .
  2. ^ Últimas actualizaciones e historial de versiones de SQL Server
  3. ^ Lextrait, Vincent (julio de 2010). "The Programming Languages ​​Beacon, v10.3". Archivado desde el original el 30 de mayo de 2012. Consultado el 5 de septiembre de 2010 .
  4. ^ "Descargar Microsoft SQL Server 2008 R2". Centro de evaluación de Microsoft . Microsoft Corporation . Consultado el 18 de julio de 2011 .
  5. ^ "Guía de instalación para SQL Server en Linux". microsoft.com . 21 de diciembre de 2017 . Consultado el 1 de febrero de 2018 .
  6. ^ "Novedades de SQL Server 2019 (15.x)". microsoft.com/ . 6 de abril de 2022 . Consultado el 11 de mayo de 2022 .
  7. ^ "Requisitos para instalar SQL Server 2016". docs.microsoft.com . msdn.microsoft.com. 2 de mayo de 2016 . Consultado el 28 de julio de 2016 .
  8. ^ "Notas de la versión de SQL Server 2022". learn.microsoft.com . Consultado el 14 de febrero de 2023 .
  9. ^ "Comparar ediciones". Página de inicio de SQL Server . Microsoft Corporation . Consultado el 3 de diciembre de 2007 .
  10. ^ abcdefghi Kalen Delaney (2007). Dentro de Microsoft SQL Server 2005: el motor de almacenamiento . Microsoft Press . ISBN 978-0-7356-2105-3.
  11. ^ "SQL Server 2008: Ediciones". Microsoft . Consultado el 21 de julio de 2011 .
  12. ^ "Sistema de base de datos | Rendimiento y escalabilidad | Ediciones de SQL Server 2012 Business Intelligence". Microsoft.com . Consultado el 15 de junio de 2013 .
  13. ^ Hoja de datos y preguntas frecuentes sobre licencias de SQL Server 2012 (marzo de 2012)
  14. ^ "El límite de tamaño de la base de datos de SQL Server 2008 R2 Express se ha incrementado a 10 GB" . Consultado el 23 de abril de 2010 .
  15. ^ "¿Qué ocurre con las ediciones de SQL Server 2008 Express?" . Consultado el 15 de agosto de 2008 .
  16. ^ "Developer Edition". Página de inicio de SQL Server . Microsoft Corporation . Consultado el 18 de julio de 2011 .
  17. ^ "Software de prueba de SQL Server 2008". Microsoft . Consultado el 26 de marzo de 2009 .
  18. ^ "Microsoft SQL Server 2008: almacén de datos Fast Track". Microsoft . Consultado el 26 de marzo de 2009 .
  19. ^ "SQL Server Express LocalDB". SQL Server. Microsoft Docs . Consultado el 2 de agosto de 2021 .
  20. ^ "Presentación de LocalDB, una versión mejorada de SQL Express". WebLog de SQL Server Express. Microsoft Docs . 12 de julio de 2011. Consultado el 2 de agosto de 2021 .
  21. ^ "Sistema de la plataforma Microsoft Analytics". Microsoft . Consultado el 29 de abril de 2015 .
  22. ^ Cómo elegir una edición de SQL Server 2000
  23. ^ ab "Profesional de TI".
  24. ^ Características admitidas por las ediciones de SQL Server 2000
  25. ^ "Elección de una edición de StreamInsight". MSDN . Microsoft Corporation . Consultado el 18 de julio de 2011 .
  26. ^ "Capítulo 3: Elección de una edición de SQL Server 2000". 1 de noviembre de 2010. Archivado desde el original el 1 de noviembre de 2010 . Consultado el 4 de noviembre de 2022 .
  27. ^ SQL Server 2000 - Descargas
  28. ^ Documentación del producto SQL Server 2000
  29. ^ "Páginas y extensiones" . Consultado el 2 de diciembre de 2007 .
  30. ^ "Organización de tablas e índices" . Consultado el 2 de diciembre de 2007 .
  31. ^ "Buffer Management" . Consultado el 2 de diciembre de 2007 .
  32. ^ "Procesamiento de sentencias SQL individuales" . Consultado el 3 de diciembre de 2007 .
  33. ^ "Conceptos básicos de procedimientos almacenados" . Consultado el 3 de diciembre de 2007 .
  34. ^ "Referencia de Transact-SQL" . Consultado el 3 de diciembre de 2007 .
  35. ^ "Características de SQL Server Native Client" . Consultado el 3 de diciembre de 2007 .
  36. ^ "Disponible hoy: versión preliminar del controlador ODBC de SQL Server para Linux". Blog del equipo de SQL Server. 28 de noviembre de 2011. Consultado el 15 de junio de 2013 .
  37. ^ ab "Descripción general de la integración de CLR" . Consultado el 3 de diciembre de 2007 .
  38. ^ "Soporte XML en SQL Server" . Consultado el 5 de septiembre de 2008 .
  39. ^ "¿Qué es SQL Server Machine Learning Services?". Página de inicio de SQL Server . Microsoft Corporation . Consultado el 10 de abril de 2018 .
  40. ^ "Presentación de Service Broker" . Consultado el 3 de diciembre de 2007 .
  41. ^ abc Klaus Aschenbrenner (2011). "Presentación de Service Broker". Agente de servicios Pro SQL Server 2008 (1ª ed.). Viena: Apress . págs. 17–31. ISBN 978-1-4302-0865-5. Recuperado el 15 de diciembre de 2019 .
  42. ^ "Descripción general de los tipos de replicación" . Consultado el 3 de diciembre de 2007 .
  43. ^ "Descripción general de la replicación transaccional" . Consultado el 3 de diciembre de 2007 .
  44. ^ "Descripción general de la replicación de fusión" . Consultado el 3 de diciembre de 2007 .
  45. ^ "Descripción general de la replicación de instantáneas" . Consultado el 3 de diciembre de 2007 .
  46. ^ "Proveedor de SSAS Entity Framework" . Consultado el 29 de septiembre de 2011 .
  47. ^ "Arquitectura de Analysis Services" . Consultado el 3 de diciembre de 2007 .
  48. ^ "Conceptos de minería de datos" . Consultado el 3 de diciembre de 2007 .
  49. ^ "SQL Server Reporting Services" . Consultado el 3 de diciembre de 2007 .
  50. ^ "No se puede abrir un archivo .rptproj de SQL Reporting Services | Microsoft Connect". Connect.microsoft.com. Archivado desde el original el 3 de febrero de 2012. Consultado el 4 de septiembre de 2011 .
  51. ^ Biblioteca MSDN: Método de representación de Reporting Services
  52. ^ Configuración de información del dispositivo
  53. ^ Configuración de información del dispositivo de imagen
  54. ^ "Introducción a SQL Server Notification Services". 3 de septiembre de 2002. Consultado el 14 de noviembre de 2008 .
  55. ^ "SQL Server Notification Services eliminado de SQL Server 2008". Archivado desde el original el 16 de octubre de 2008 . Consultado el 17 de septiembre de 2008 .
  56. ^ "Funcionalidad discontinuada en SQL Server 2008 Reporting Services" . Consultado el 17 de septiembre de 2008 .
  57. ^ "Introducción a SQL Server Notification Services" . Consultado el 3 de diciembre de 2007 .
  58. ^ "Descripción general de los servicios de integración" . Consultado el 3 de diciembre de 2007 .
  59. ^ "Introducción a la búsqueda de texto completo". 19 de noviembre de 2007. Consultado el 3 de diciembre de 2007 .
  60. ^ "Consulta de SQL Server mediante búsqueda de texto completo" . Consultado el 3 de diciembre de 2007 .
  61. ^ ab "Arquitectura de búsqueda de texto completo" . Consultado el 3 de diciembre de 2007 .
  62. ^ "MSDN: Introducción a SQL Server Management Studio". Msdn.microsoft.com . Consultado el 4 de septiembre de 2011 .
  63. ^ "SQL Server Management Studio Express". Microsoft.com. 18 de abril de 2006. Consultado el 4 de septiembre de 2011 .
  64. ^ "MSDN: Uso del Explorador de objetos". Msdn.microsoft.com . Consultado el 4 de septiembre de 2011 .
  65. ^ "Herramientas de administración de SQL Server 2005". Sqlmag.com. 19 de julio de 2005. Consultado el 4 de septiembre de 2011 .
  66. ^ "¿Qué es Microsoft SQL Operations Studio (versión preliminar)?". docs.microsoft.com . Consultado el 19 de enero de 2018 .
  67. ^ "Presentación de Business Intelligence Development Studio" . Consultado el 3 de diciembre de 2007 .

Lectura adicional

Enlaces externos