stringtranslate.com

Servidor Microsoft SQL

Microsoft SQL Server (lenguaje de consulta estructurado) es un sistema propietario de gestión de bases de datos relacionales desarrollado por Microsoft . Como servidor de base de datos , es un producto de software con la función principal de almacenar y recuperar datos solicitados por otras aplicaciones de software , que pueden ejecutarse en la misma computadora o en otra computadora a través de una red (incluido 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 de una sola máquina hasta grandes aplicaciones conectadas 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 totalmente descriptivo, siendo 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. [6]

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. [7]

Ediciones

Microsoft hace que SQL Server esté disponible en múltiples ediciones, con diferentes conjuntos de características y dirigidos a diferentes usuarios. Estas ediciones son: [8] [9]

Ediciones convencionales

Empresa
SQL Server Enterprise Edition incluye tanto el motor de base de datos principal como servicios complementarios, con una variedad de herramientas para crear y administrar un clúster de SQL Server. Puede gestionar bases de datos de hasta 524 petabytes y direccionar 12 terabytes de memoria y admite 640 procesadores lógicos (núcleos de CPU). [10]
Estándar
La edición SQL Server Standard 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 (cantidad de nodos en un clúster) y no incluye algunas funciones de alta disponibilidad como la adición de memoria en caliente (lo que permite agregar memoria mientras el servidor aún está en ejecución) y índices paralelos.
Web
SQL Server Web Edition es una opción de alojamiento web de bajo coste total de propiedad .
Inteligencia de Negocio
Introducido en SQL Server 2012 y enfocado en Autoservicio e Inteligencia Empresarial Corporativa. Incluye las capacidades de Standard Edition y herramientas de Business Intelligence: Power Pivot , Power View, el modelo semántico de BI, Master Data Services, Data Quality Services y análisis en memoria xVelocity. [11]
grupo de trabajo
SQL Server Workgroup Edition incluye la funcionalidad principal de la base de datos pero no incluye los servicios adicionales. Tenga en cuenta que esta edición se retiró en SQL Server 2012. [12]
Expresar
SQL Server Express Edition es una edición gratuita y reducida 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, se limita al uso de un procesador, 1 GB de memoria y 10 GB de archivos de base de datos (archivos de base de datos de 4 GB antes de SQL Server Express 2008 R2). [13] Está pensado como reemplazo de MSDE . Dos ediciones adicionales proporcionan un superconjunto de funciones que no se encuentran en la Edición Express original. El primero 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 generación de informes. [14]

Ediciones especializadas

Azur
Microsoft Azure SQL Database es la versión basada en la nube de Microsoft SQL Server, presentada como una plataforma como oferta de servicio en Microsoft Azure .
MPP azul
Azure SQL Data Warehouse es la versión basada en la nube de Microsoft SQL Server en una arquitectura MPP (procesamiento masivo paralelo) para cargas de trabajo de análisis, presentada como una plataforma como oferta de 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 archivos binarios. Debido a su pequeño tamaño (espacio DLL de 1 MB), tiene un conjunto de funciones notablemente reducido en comparación con las otras ediciones. Por ejemplo, admite un subconjunto de tipos de datos estándar, no admite procedimientos almacenados ni vistas ni lotes de declaraciones múltiples (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; la aplicación que lo utiliza debe alojar Compact Edition. La versión 3.5 incluye soporte para los servicios de sincronización de ADO.NET. SQL CE no admite conectividad ODBC, a diferencia de SQL Server propiamente dicho.
Desarrollador
SQL Server Developer Edition incluye las mismas características que SQL Server Enterprise Edition, pero está limitado por la licencia a usarse únicamente como sistema de desarrollo y prueba, y no como servidor de producción. A principios de 2016, Microsoft puso esta edición al público de forma gratuita. [15]
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 ciertos servicios de Windows.
Evaluación
SQL Server Assessment 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 continuarán ejecutándose, pero los servicios del servidor se detendrán. [dieciséis]
Vía rápida
SQL Server Fast Track es específicamente para almacenamiento de datos a escala empresarial y procesamiento de inteligencia empresarial, y se ejecuta en hardware de arquitectura de referencia optimizado para Fast Track. [17]
Base de datos local
Introducido en SQL Server Express 2012, LocalDB es una versión mínima y bajo demanda de SQL Server diseñada para desarrolladores de aplicaciones. [18] También se puede utilizar como una base de datos integrada. [19]
Sistema de plataforma de análisis (APS)
Anteriormente Parallel Data Warehouse (PDW), un dispositivo SQL Server de procesamiento masivo paralelo (MPP) optimizado para el almacenamiento de datos a gran escala, como cientos de terabytes. [20]
Edición de dispositivo de almacén 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. [21] Posteriormente, fue reemplazado 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. Diseñado para usarse como componente de la aplicación, no incluía herramientas de administración de GUI. Posteriormente, 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. [22] 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 conexión o carga de trabajo como MSDE, pero sin límite de tamaño de base de datos. Incluye herramientas de gestión estándar. Diseñado para su uso como proxy móvil/desconectado, con licencia para su uso con SQL Server 2000 Standard Edition. [22] 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 se limita al suscriptor. [23]
Centro de datos
SQL Server 2008 R2 Datacenter es una edición con todas las funciones de SQL Server y está diseñada para centros de datos que necesitan altos niveles de escalabilidad y soporte de aplicaciones. Admite 256 procesadores lógicos y memoria prácticamente ilimitada y viene con la edición StreamInsight Premium. [24] La edición Datacenter se ha retirado en SQL Server 2012; Todas sus funciones están disponibles en SQL Server 2012 Enterprise Edition. [12]
Edición Windows CE
Introducido en SQL Server 2000, [25] 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 la primera versión.
SQL Server 2005 Edición compacta
Reemplazado por SQL Server Compact 3.5 después de la primera versión.

Paquetes suplementarios

Las herramientas publicadas por Microsoft incluyen:

  • Ejemplos: [26] Bases de datos de muestra de Northwind y pubs, muestras actualizadas para SQL Server 2000.
  • Herramientas: Herramientas de pruebas de estrés y análisis de rendimiento (Read80Trace y OSTRESS), utilidad de recopilación de datos PSSDIAG, servicios de notificación (hasta el paquete de servicio 1), herramientas de seguridad, Analizador de mejores prácticas 1.0, servicios de informes (hasta el paquete de servicio 2), informe de servicios de informes Packs, Controlador SQL Server 2000 para JDBC (hasta el service pack 3), SQLXML 3.0 (hasta el service pack 3).
  • Documentación: [27] Libros en pantalla 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 que se utiliza para transferir datos entre un servidor de base de datos y un cliente. Inicialmente diseñados y desarrollados 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 pueden encerrarse en otros protocolos dependientes del transporte físico, incluidos TCP/IP , canalizaciones con nombre y protocolos compartidos. memoria . En consecuencia, el acceso a SQL Server está disponible a través de estos protocolos. Además, la API de SQL Server también está expuesta a través de servicios web . [9]

Almacenamiento de datos

El almacenamiento de datos es una base de datos , que es una colección de tablas con columnas escritas . SQL Server admite diferentes tipos de datos, incluidos tipos primitivos como Integer , Float , Decimal , Char (incluidas cadenas de caracteres), Varchar (cadenas de caracteres de longitud variable), binario (para blobs de datos no estructurados), Text (para datos textuales), entre otros. . El redondeo de flotantes a números enteros utiliza redondeo aritmético simétrico o redondeo simétrico hacia abajo ( fix ) dependiendo de 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 hace que las estadísticas del servidor estén disponibles como tablas y vistas virtuales (llamadas vistas de administración dinámica o DMV). Además de las tablas, una base de datos también puede contener otros objetos, incluidas 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 a nivel de sistema operativo con un tamaño de archivo máximo de 2 60 bytes (1 exabyte). [9] 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. [9]

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 está marcada con un encabezado de 96 bytes que almacena metadatos sobre la página, incluido el número de página, el tipo de página, el espacio libre en la página y la identificación 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 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 de gran tamaño, 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 en 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. [28]

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 forma predeterminada, todas las filas están en una sola partición. Una tabla se divide en varias particiones para distribuir una base de datos en un grupo de computadoras . Las filas de cada partición se almacenan en un árbol B o en una estructura de montón . Si la tabla tiene un índice agrupado asociado para permitir una recuperación rápida de las filas, las filas se almacenan en orden según sus valores de índice, con un árbol B que proporciona el índice. Los datos están en el nodo de hoja de las hojas y en otros nodos que almacenan los valores de índice para los datos de la 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 las filas. En algunas situaciones, la estructura de montón tiene ventajas de rendimiento sobre la estructura de clúster. Tanto los montones como los árboles B pueden abarcar múltiples unidades de asignación. [29]

Gestión de búfer

SQL Server almacena páginas en RAM para minimizar la E/S del disco. Cualquier página de 8 KB se puede almacenar en memoria intermedia, y el conjunto de todas las páginas actualmente almacenadas en 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. La caché del búfer es administrada por el Administrador de búfer . Al leer o escribir en cualquier página, se copia en la memoria caché del 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 memoria caché en memoria durante algún tiempo. Mientras se escriben páginas en el disco, se utiliza E/S asíncrona , mediante la cual 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 verificación cuando se escribe. Al volver a leer la página, su suma de verificación se calcula nuevamente y se compara con la versión almacenada para garantizar que la página no haya sido dañada o manipulada mientras tanto. [30]

Simultaneidad y bloqueo

SQL Server permite que varios clientes utilicen la misma base de datos al mismo tiempo. Como tal, necesita controlar el acceso simultáneo a datos compartidos para garantizar la integridad de los datos, cuando varios clientes actualizan los mismos datos o cuando los clientes intentan leer datos que están en proceso de ser modificados por otro cliente. SQL Server proporciona dos modos de control de concurrencia: concurrencia pesimista y concurrencia 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 los datos 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 adquirir un bloqueo exclusivo. Este último tendría que esperar a que se liberen todos los bloqueos compartidos.

Los bloqueos se pueden aplicar en diferentes niveles de granularidad: en tablas enteras, páginas o incluso por fila en tablas. Para los índices, puede estar en todo el índice o en las hojas del índice. El nivel de granularidad que se utilizará lo define el administrador de la base de datos para cada base de datos. Si bien un sistema de bloqueo detallado 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 robustos que los bloqueos pero consumen menos recursos. SQL Server los usa para DMV y otros recursos que normalmente no están ocupados. SQL Server también monitorea todos los subprocesos de trabajo que adquieren bloqueos para garantizar que no terminen en interbloqueos ; en caso de que así sea, SQL Server toma medidas correctivas, que en muchos casos consisten en eliminar uno de los subprocesos enredados en un interbloqueo y revertirlo. la transacción que inició. [9] Para implementar el bloqueo, SQL Server contiene el Administrador de bloqueo . Lock Manager mantiene una tabla en memoria que administra los objetos de la base de datos y los bloquea, si los hay, junto con otros metadatos sobre el bloqueo. El acceso a cualquier objeto compartido está mediado por el administrador de bloqueo, 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 cada vez que se actualiza 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 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 serán almacenadas en la base de datos, identificadas por sus respectivos ID de transacción. [9]

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 procesado 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 combinación y una declaración de selección , ejecutar la combinació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 combinación, pero resultaría en una ejecución diferente. planes. En tal caso, SQL Server elige el plan que se espera que produzca resultados en el menor tiempo posible. Esto se denomina optimización de consultas y lo realiza el propio procesador de consultas. [9]

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 qué secuencia acceder a las tablas a las que se hace referencia en la consulta, qué secuencia ejecutar las operaciones y qué método de acceso utilizar para acceder a las tablas. Por ejemplo, si la tabla tiene un índice asociado, si el índice debe usarse o no: si el índice está en una columna que no es única para la mayoría de las columnas (baja "selectividad"), puede que no valga la pena usarlo. el índice para acceder a los datos. Finalmente, decide si ejecutar la consulta al mismo tiempo o no. Si bien una ejecución simultánea es más costosa en términos de tiempo total del procesador, el hecho de que la ejecución en realidad se divida en diferentes procesadores podría 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 planos no utilizados se descartan después de un tiempo. [9] [31]

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 las emite 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 selectivamente 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, debido a que no es necesario enviar el código desde el cliente cada vez (ya que se puede acceder a él por su nombre), reduce el tráfico de la red y mejora en cierta medida el rendimiento. [32] Los planes de ejecución de procedimientos almacenados también se almacenan en caché según sea necesario.

T-SQL

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

Expone palabras clave para las operaciones que se pueden realizar en SQL Server, incluida 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 administran el servidor aprovecharán la funcionalidad de SQL Server enviando consultas y declaraciones 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 administració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 administración. También es posible crear servidores vinculados utilizando T-SQL. Los servidores vinculados permiten que una única consulta procese las operaciones realizadas en varios servidores. [33]

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 nativo para Microsoft SQL Server, versión 2005 en adelante. Implementa de forma nativa soporte para las funciones de SQL Server, incluida la implementación de Tabular Data Stream , soporte para bases de datos reflejadas de SQL Server, soporte completo para todos los tipos de datos admitidos por SQL Server, operaciones asincrónicas, notificaciones de consultas, soporte de cifrado , además de recibir múltiples conjuntos de resultados. en una única sesión de base de datos. SQL Server Native Client lo utilizan los complementos de SQL Server para otras tecnologías de acceso a datos, incluidos ADO u OLE DB . El SQL Server Native Client también se puede utilizar directamente, sin pasar por las capas genéricas de acceso a datos. [34]

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

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 otras aplicaciones que utilizan .NET Framework, SQL Server aloja el tiempo de ejecución de .NET Framework , es decir, los requisitos de memoria, subprocesos y administració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 interbloqueos para código .NET. Con SQL CLR, los procedimientos almacenados y los desencadenadores 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 ensamblajes CLI y, después de verificar la seguridad del tipo , se registra en la base de datos. Después de eso, se pueden invocar como cualquier otro procedimiento. [36] Sin embargo, solo un subconjunto de la biblioteca de clases base está disponible 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. [36]

Al escribir código para SQL CLR, se puede acceder a los datos almacenados en las 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 ejecuta el código. Para evitar esto, SQL Server proporciona algunas mejoras al proveedor ADO.NET que permite redirigir la conexión a la misma sesión que ya aloja el código en ejecución. Estas conexiones se denominan conexiones de contexto y se establecen estableciendo el parámetro en la cadena de conexión. SQL Server también proporciona 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 funciones XML de SQL Server, incluida la compatibilidad con 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 (consulta, valor, funciones de nodos). [37]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 central de administración de bases de datos. Estos servicios se ejecutan como parte de algún componente de SQL Server o fuera de proceso como servicio de Windows y presentan su propia API para controlarlos e interactuar con ellos.

Servicios de aprendizaje automático

Los servicios de SQL Server Machine Learning operan dentro de la instancia del servidor SQL, 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 comúnmente utilizados para ciencia de datos, junto con algunos paquetes propietarios (por ejemplo, revoscalepy , RevoScaleR , microsoftml) que pueden usarse 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 script, o pueden ejecutar scripts 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 calificar. [38]

Agente de servicios

Utilizado dentro de una instancia, entorno de programación. 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 de SQL Server. [39]

Los servicios de intermediario de servicios constan de las siguientes partes: [40]

El tipo de mensaje define el formato de datos utilizado para el mensaje. Puede ser un objeto XML, texto sin formato 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 de 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 mensajes del intermediario de servicios. Normalmente, el programa de servicio se implementa como procedimiento almacenado o aplicación CLR . Las rutas son direcciones de red donde se encuentra el intermediario de servicios en la red. [40]

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

Servicios de replicación

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

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. [42]
Fusionar replicación
Se realiza un seguimiento de los cambios realizados en las bases de datos del editor y del suscriptor, y periódicamente los cambios se sincronizan bidireccionalmente entre el editor y los suscriptores. Si los mismos datos se han modificado de manera diferente en las bases de datos del editor y del suscriptor, la sincronización generará un conflicto que deberá resolverse, ya sea manualmente o mediante políticas predefinidas. Rowguid debe configurarse en una columna si se fusiona la replicación. está configurado. [43]
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 otros cambios en la instantánea. [44]

Servicios de análisis

SQL Server Analysis Services (SSAS) agrega capacidades OLAP y de minería de datos 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 para análisis como protocolo de comunicación subyacente. Se puede acceder a los datos del cubo mediante consultas MDX y LINQ [45] . [46] 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 la minería de datos. [47]

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. Los servicios de informes cuentan con una interfaz de servicios web para respaldar el desarrollo de aplicaciones de informes personalizados. Los informes se crean como archivos RDL . [48]

Reports can be designed using recent versions of Microsoft Visual Studio (Visual Studio.NET 2003, 2005, and 2008)[49] with Business Intelligence Development Studio, installed or with the included Report Builder. Once created, RDL files can be rendered in a variety of formats,[50][51] including Excel, PDF, CSV, XML, BMP, EMF, GIF, JPEG, PNG, and TIFF,[52] and HTML Web Archive.

Notification Services

Originally introduced as a post-release add-on for SQL Server 2000,[53] Notification Services was bundled as part of the Microsoft SQL Server platform for the first and only time with SQL Server 2005.[54][55] SQL Server Notification Services is a mechanism for generating data-driven notifications, which are sent to Notification Services subscribers. A subscriber registers for a specific event or transaction (which is registered on the database server as a trigger); when the event occurs, Notification Services can use one of three methods to send a message to the subscriber informing about the occurrence of the event. These methods include SMTP, SOAP, or by writing to a file in the filesystem.[56] Notification Services was discontinued by Microsoft with the release of SQL Server 2008 in August 2008, and is no longer an officially supported component of the SQL Server database platform.

Integration Services

SQL Server Integration Services (SSIS) provides ETL capabilities for SQL Server for data import, data integration and data warehousing needs. Integration Services includes GUI tools to build workflows such as extracting data from various sources, querying data, transforming data—including aggregation, de-duplication, de-/normalization and merging of data—and then exporting the transformed data into destination databases or files.[57]

Full Text Search Service

The SQL Server Full Text Search service architecture

El servicio de búsqueda de texto completo de SQL Server es un servicio especializado de indexación y consulta de 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, utilizar el servicio de búsqueda de texto completo de SQL Server puede ser más eficiente. Completo permite una coincidencia inexacta de la cadena de origen, indicada por un valor de Clasificación que puede oscilar entre 0 y 1000; una clasificación más alta significa una coincidencia más precisa. También permite la coincidencia lingüística ("búsqueda flexional"), 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 determinada (pero con un rango inferior que una coincidencia exacta). También se admiten búsquedas de proximidad, es decir, si las palabras buscadas no aparecen en la secuencia especificada 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. [58] [59]

El motor de búsqueda de texto completo se divide en dos procesos: el proceso Filter Daemonmsftefd.exe ( ) y el proceso de búsquedamsftesql.exe ( ). Estos procesos interactúan con SQL Server. El proceso de búsqueda 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 de la base de datos. También puede indexar mediante columnas binarias y utilizar 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 en 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 encontraron. El propio SQL Server incluye un componente Gatherer que monitorea los cambios en las tablas e invoca el indexador en caso de actualizaciones. [60]

Cuando el procesador de consultas de SQL Server recibe una consulta de texto completo, se entrega al procesador de consultas FTS en el proceso de búsqueda. El procesador de consultas FTS divide la consulta en las palabras constituyentes, filtra las palabras irrelevantes y utiliza un diccionario de sinónimos incorporado para descubrir las variantes lingüísticas de cada palabra. Luego, las palabras se comparan con el índice invertido y se calcula un rango de precisión. Los resultados se devuelven al cliente a través del proceso de SQL Server. [60]

SQLCMD

SQLCMD es una aplicación de línea de comandos que viene con Microsoft SQL Server y expone las funciones 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 secuencias de comandos para crear y ejecutar un conjunto de sentencias SQL como secuencia de comandos. 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ó a través de las versiones de SQL Server 2008, 2008 R2, 2012, 2014, 2016 y 2019. 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 comando son idénticos, aunque SQLCMD agrega versatilidad adicional.

Estudio visual

Microsoft Visual Studio incluye soporte nativo para la programación de datos con Microsoft SQL Server. Se puede utilizar para escribir y depurar código que ejecutará SQL CLR. También incluye un diseñador de datos que se puede utilizar para crear, ver o editar gráficamente esquemas de bases de datos. Las consultas se pueden crear visualmente o mediante código. SSMS 2008 en adelante también proporciona inteligencia para consultas SQL.

Estudio de administración de SQL Server

SQL Server Management Studio es una herramienta GUI incluida con SQL Server 2005 y 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 trabajan con objetos y funciones del servidor. [61] 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. Expreso (SSMSE). [62]

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. [63] Puede utilizarse para observar y analizar visualmente planes de consulta y optimizar el rendimiento de la base de datos, entre otros. [64] 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. [9]

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; envíe scripts SQL a repositorios Git y realice diagnósticos básicos del servidor. Azure Data Studio es compatible con sistemas Windows, Mac y Linux. [sesenta y cinco]

Se lanzó a 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 que se utiliza para desarrollar análisis de datos y soluciones de Business Intelligence utilizando los servicios de análisis , los servicios de informes y los servicios de integración de Microsoft SQL Server . Se basa en el entorno de desarrollo de Microsoft Visual Studio , pero está personalizado con extensiones y tipos de proyectos específicos de los servicios de SQL Server, incluidas herramientas, controles y proyectos para informes (usando Reporting Services), cubos y estructuras de minería de datos (usando Analysis Services). [66] Para SQL Server 2012 y versiones posteriores, este IDE pasó a llamarse SQL Server Data Tools (SSDT).

Ver también

Referencias

  1. ^ "Explore las capacidades de SQL Server 2022" . Consultado el 6 de enero de 2023 .
  2. ^ Lextrait, Vincent (julio de 2010). "La baliza de los lenguajes de programación, v10.3". Archivado desde el original el 30 de mayo de 2012 . Consultado el 5 de septiembre de 2010 .
  3. ^ "Descargar Microsoft SQL Server 2008 R2". Centro de evaluación de Microsoft . Corporación Microsoft . Consultado el 18 de julio de 2011 .
  4. ^ "Guía de instalación de SQL Server en Linux". microsoft.com . 21 de diciembre de 2017 . Consultado el 1 de febrero de 2018 .
  5. ^ "Novedades de SQL Server 2019 (15.x)". microsoft.com/ . 6 de abril de 2022 . Consultado el 11 de mayo de 2022 .
  6. ^ "Requisitos para instalar SQL Server 2016". docs.microsoft.com . msdn.microsoft.com. 2 de mayo de 2016 . Consultado el 28 de julio de 2016 .
  7. ^ "Notas de la versión de SQL Server 2022". aprender.microsoft.com . Consultado el 14 de febrero de 2023 .
  8. ^ "Comparar ediciones". Página de inicio de SQL Server . Corporación Microsoft . Consultado el 3 de diciembre de 2007 .
  9. ^ abcdefghi Kalen Delaney (2007). Dentro de Microsoft SQL Server 2005: el motor de almacenamiento . Prensa de Microsoft . ISBN 978-0-7356-2105-3.
  10. ^ "SQL Server 2008: Ediciones". Microsoft . Consultado el 21 de julio de 2011 .
  11. ^ "Sistema de base de datos | Rendimiento y escalabilidad | Ediciones SQL Server 2012 Business Intelligence". Microsoft.com . Consultado el 15 de junio de 2013 .
  12. ^ ab Hoja de datos de licencia de SQL Server 2012 y preguntas frecuentes (marzo de 2012)
  13. ^ "El límite de tamaño de la base de datos de SQL Server 2008 R2 Express aumentó a 10 GB" . Consultado el 23 de abril de 2010 .
  14. ^ "¿Qué pasa con las ediciones SQL Server 2008 Express?" . Consultado el 15 de agosto de 2008 .
  15. ^ "Edición para desarrolladores". Inicio de SQL Server . Corporación Microsoft . Consultado el 18 de julio de 2011 .
  16. ^ "Software de prueba de SQL Server 2008". Microsoft . Consultado el 26 de marzo de 2009 .
  17. ^ "Microsoft SQL Server 2008: almacén de datos rápido". Microsoft . Consultado el 26 de marzo de 2009 .
  18. ^ "SQL Server Express LocalDB". Servidor SQL. Documentos de Microsoft . Consultado el 2 de agosto de 2021 .
  19. ^ "Presentamos LocalDB, un SQL Express mejorado". Registro web de SQL Server Express. Documentos de Microsoft . 12 de julio de 2011 . Consultado el 2 de agosto de 2021 .
  20. ^ "Sistema de plataforma de análisis de Microsoft". Microsoft . Consultado el 29 de abril de 2015 .
  21. ^ Elegir una edición de SQL Server 2000
  22. ^ ab "Profesional de TI".
  23. ^ Funciones admitidas por las ediciones de SQL Server 2000
  24. ^ "Elegir una edición StreamInsight". MSDN . Corporación Microsoft . Consultado el 18 de julio de 2011 .
  25. ^ "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 .
  26. ^ SQL Server 2000 - Descargas
  27. ^ Documentación del producto SQL Server 2000
  28. ^ "Páginas y extensiones" . Consultado el 2 de diciembre de 2007 .
  29. ^ "Organización de tablas e índices" . Consultado el 2 de diciembre de 2007 .
  30. ^ "Gestión de búfer" . Consultado el 2 de diciembre de 2007 .
  31. ^ "Procesamiento de sentencias SQL únicas" . Consultado el 3 de diciembre de 2007 .
  32. ^ "Conceptos básicos de procedimientos almacenados" . Consultado el 3 de diciembre de 2007 .
  33. ^ "Referencia de Transact-SQL" . Consultado el 3 de diciembre de 2007 .
  34. ^ "Características del cliente nativo de SQL Server" . Consultado el 3 de diciembre de 2007 .
  35. ^ "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 .
  36. ^ ab "Descripción general de la integración de CLR" . Consultado el 3 de diciembre de 2007 .
  37. ^ "Soporte XML en SQL Server" . Consultado el 5 de septiembre de 2008 .
  38. ^ "¿Qué son los servicios de aprendizaje automático de SQL Server?". Página de inicio de SQL Server . Corporación Microsoft . Consultado el 10 de abril de 2018 .
  39. ^ "Presentación de Service Broker" . Consultado el 3 de diciembre de 2007 .
  40. ^ 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. Consultado el 15 de diciembre de 2019 .
  41. ^ "Descripción general de los tipos de replicación" . Consultado el 3 de diciembre de 2007 .
  42. ^ "Descripción general de la replicación transaccional" . Consultado el 3 de diciembre de 2007 .
  43. ^ "Descripción general de la replicación de fusión" . Consultado el 3 de diciembre de 2007 .
  44. ^ "Descripción general de la replicación de instantáneas" . Consultado el 3 de diciembre de 2007 .
  45. ^ "Proveedor de marco de entidad SSAS" . Consultado el 29 de septiembre de 2011 .
  46. ^ "Arquitectura de servicios de análisis" . Consultado el 3 de diciembre de 2007 .
  47. ^ "Conceptos de minería de datos" . Consultado el 3 de diciembre de 2007 .
  48. ^ "Servicios de informes de SQL Server" . Consultado el 3 de diciembre de 2007 .
  49. ^ "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 .
  50. ^ Biblioteca MSDN: método de representación de Reporting Services
  51. ^ Configuración de información del dispositivo
  52. ^ Configuración de información del dispositivo de imagen
  53. ^ "Introducción a los servicios de notificación de SQL Server". 3 de septiembre de 2002 . Consultado el 14 de noviembre de 2008 .
  54. ^ "Servicios de notificación de SQL Server eliminados de SQL Server 2008". Archivado desde el original el 16 de octubre de 2008 . Consultado el 17 de septiembre de 2008 .
  55. ^ "Funcionalidad descontinuada en SQL Server 2008 Reporting Services" . Consultado el 17 de septiembre de 2008 .
  56. ^ "Presentación de los servicios de notificación de SQL Server" . Consultado el 3 de diciembre de 2007 .
  57. ^ "Descripción general de los servicios de integración" . Consultado el 3 de diciembre de 2007 .
  58. ^ "Introducción a la búsqueda de texto completo". 19 de noviembre de 2007 . Consultado el 3 de diciembre de 2007 .
  59. ^ "Consulta de SQL Server mediante búsqueda de texto completo" . Consultado el 3 de diciembre de 2007 .
  60. ^ ab "Arquitectura de búsqueda de texto completo" . Consultado el 3 de diciembre de 2007 .
  61. ^ "MSDN: Presentación de SQL Server Management Studio". msdn.microsoft.com . Consultado el 4 de septiembre de 2011 .
  62. ^ "Estudio de administración de SQL Server Express". Microsoft.com. 18 de abril de 2006 . Consultado el 4 de septiembre de 2011 .
  63. ^ "MSDN: uso del Explorador de objetos". msdn.microsoft.com . Consultado el 4 de septiembre de 2011 .
  64. ^ "Herramientas de administración de SQL Server 2005". Sqlmag.com. 19 de julio de 2005 . Consultado el 4 de septiembre de 2011 .
  65. ^ "¿Qué es Microsoft SQL Operations Studio (vista previa)?". docs.microsoft.com . Consultado el 19 de enero de 2018 .
  66. ^ "Presentación de Business Intelligence Development Studio" . Consultado el 3 de diciembre de 2007 .

Otras lecturas

enlaces externos