0% encontró este documento útil (0 votos)
129 vistas

SQL Server

Microsoft SQL Server es un sistema de gestión de bases de datos relacional desarrollado por Microsoft. Viene en varias ediciones dirigidas a diferentes usuarios, desde pequeñas aplicaciones individuales hasta grandes aplicaciones empresariales. Almacena y recupera datos para otras aplicaciones de software que pueden ejecutarse localmente o a través de una red. La versión actual es SQL Server 2019.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
129 vistas

SQL Server

Microsoft SQL Server es un sistema de gestión de bases de datos relacional desarrollado por Microsoft. Viene en varias ediciones dirigidas a diferentes usuarios, desde pequeñas aplicaciones individuales hasta grandes aplicaciones empresariales. Almacena y recupera datos para otras aplicaciones de software que pueden ejecutarse localmente o a través de una red. La versión actual es SQL Server 2019.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

Microsoft SQL Server

De Wikipedia, la enciclopedia libre


Ir a navegaciónSaltar a buscar
Microsoft SQL Server
Desarrollador (es) Microsoft
Versión inicial 24 de abril de 1989 ; Hace 31 años , como SQL Server 1.0
Lanzamiento estable
SQL Server 2019 [1] / 2019-11-04 [±]
Escrito en C , C ++ [2]
Sistema operativo Linux , Microsoft Windows Server , Microsoft Windows
Disponible en Inglés, chino, francés, alemán, italiano, japonés, coreano,
portugués (Brasil), ruso, español e indonesio [3]
Tipo Sistema de gestión de bases de datos relacionales
Licencia Software propietario
Sitio web www .microsoft .com / sql-server
Microsoft SQL Server es un sistema de administració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 según lo soliciten
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 públicos y para cargas de trabajo que van desde pequeñas aplicaciones de
una sola máquina hasta grandes aplicaciones orientadas a Internet con muchos
usuarios simultáneos .

Contenido
1 Historia
1.1 Hitos
1.2 Actualmente
2 Ediciones
2.1 Ediciones principales
2.2 Ediciones especializadas
2.3 Ediciones discontinuadas
3 Arquitectura
4 Almacenamiento de datos
4.1 Gestión de búfer
4.2 Simultaneidad y bloqueo
5 Recuperación de datos y programabilidad
5.1 T-SQL
5.2 Cliente nativo de SQL Server (también conocido como SNAC)
5.3 SQL CLR
6 Servicios
6.1 Servicios de aprendizaje automático
6.2 Agente de servicio
6.3 Servicios de replicación
6.4 Servicios de análisis
6.5 Servicios de informes
6.6 Servicios de notificación
6,7 Servicios de integración
6,8 Servicio de búsqueda de texto completo
6,9 SQLCMD
6,10 Estudio visual
6.11 Estudio de administración de SQL Server
6.12 Azure Data Studio
6.13 Estudio de desarrollo de inteligencia empresarial
7 Ver también
8 Referencias
9 Otras lecturas
10 enlaces externos
Historia
Artículo principal: Historia de Microsoft SQL Server
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.

Hitos
MS SQL Server para OS / 2 comenzó como un proyecto para trasladar Sybase SQL Server
a OS / 2 en 1989, por Sybase , Ashton-Tate y Microsoft .
SQL Server 4.2 para NT se lanzó en 1993, marcando la entrada en Windows NT .
SQL Server 6.0 se lanza en 1995, marcando el final de la colaboración con Sybase ;
Sybase continuaría desarrollando su propia variante de SQL Server , Sybase Adaptive
Server Enterprise , independientemente de Microsoft.
SQL Server 7.0 se lanza en 1998, marcando la conversión del código fuente de C a C
++.
SQL Server 2005, lanzado en 2005, finaliza la revisión completa del antiguo código
Sybase en el código de Microsoft.
SQL Server 2017, lanzado en 2017, agrega compatibilidad con Linux para estas
plataformas Linux: Red Hat Enterprise Linux , SUSE Linux Enterprise Server , Ubuntu
y Docker Engine . [4]
Actualmente
A partir de mayo de 2020 , Microsoft admite las siguientes versiones:

SQL Server 2012 [5]


SQL Server 2014
SQL Server 2016
SQL Server 2017
SQL Server 2019
Desde SQL Server 2016 en adelante, el producto solo es compatible con procesadores
x64. [6]

La versión actual es Microsoft SQL Server 2019, lanzada el 4 de noviembre de 2019.


La versión RTM es 15.0.2000.5. [7]

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

Ediciones principales
Empresa
SQL Server Enterprise Edition incluye tanto el motor de base de datos central 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 abordar 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 central, 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 memoria de adición en caliente (lo que
permite agregar memoria mientras el servidor aún se está ejecutando), y índices
paralelos.
Web
SQL Server Web Edition es una opción de bajo TCO para alojamiento web.
Inteligencia de Negocio
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: PowerPivot, Power View, el modelo
semántico de BI, los servicios de datos maestros, los servicios de calidad de datos
y el análisis en memoria de 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]
Rápido
SQL Server Express Edition es una edición gratuita y reducida de SQL Server, que
incluye el motor de base de datos central. Si bien no existen limitaciones en la
cantidad de bases de datos o usuarios admitidos, se limita 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 anteriores a SQL Server Express 2008 R2). [13] Está pensado como un reemplazo
de MSDE . Dos ediciones adicionales proporcionan un superconjunto de funciones que
no se encuentran en la Express Edition original. El primero es SQL Server Express
con herramientas , que incluye SQL Server Management Studio Basic. SQL Server
Express con Advanced Services agrega capacidad de búsqueda de texto completo y
servicios de informes. [14]
Ediciones especializadas

Disco de instalación de SQL Server 2005 Developer Edition


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 .
Azur
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
analíticas, 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 de 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 (1 MB de espacio en DLL), tiene un
conjunto de funciones 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 o vistas o lotes de instrucciones 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 ADO.NET Synchronization
Services. SQL CE no admite la 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 para ser utilizado
únicamente como un sistema de desarrollo y prueba, y no como servidor de
producción. A principios de 2016, Microsoft hizo esta edición de forma gratuita
para el público. [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 solo pueden
acceder determinados servicios de Windows.
Evaluación
La edición de evaluación de SQL Server, también conocida como edición de prueba ,
tiene todas las características de la edición empresarial, 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]
LocalDB
Introducido en SQL Server Express 2012, LocalDB es una versión mínima, bajo
demanda, de SQL Server diseñada para desarrolladores de aplicaciones. [18] También
se puede utilizar como base de datos incorporada. [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 Datawarehouse
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 o Reporting Services.sqlcmd
Ediciones discontinuadas
MSDE
Motor de datos de Microsoft SQL Server / Desktop Engine / Desktop Edition. SQL
Server 7 y SQL Server 2000. Diseñado 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. [21]
Edición personal
SQL Server 2000. Tenía límites de carga de trabajo o conexión 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. [21]
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 compatibilidad
y escalabilidad de aplicaciones. Admite 256 procesadores lógicos y memoria
prácticamente ilimitada y viene con la edición StreamInsight Premium. [22] La
edición Datacenter se retiró en SQL Server 2012; todas sus funciones están
disponibles en SQL Server 2012 Enterprise Edition. [12]
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 se pueden
encerrar en otros protocolos dependientes del transporte físico, incluidos TCP / IP
, canalizaciones con nombre y compartidas. la 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 se expone sobreservicios 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 las cadenas de
caracteres), Varchar (cadenas de caracteres de longitud variable), binario (para
bloques de datos no estructurados ), Text (para datos textuales), entre otros. . El
redondeo de flotantes a números enteros utiliza el redondeo aritmético simétrico o
el redondeo hacia abajo simétrico ( fijo ) 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 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 de
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 extensión .mdf. Archivos de datos secundarios, identificados con
un.ndfextensión, se utilizan para permitir que los datos de una sola 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 / Spara 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 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
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 extensiónque 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 tiene un tamaño
limitado de 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. [23]

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;
por defecto, 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 árbol B o estructura de montón . Si la
tabla tiene un índice agrupado asociadoPara permitir la recuperación rápida de
filas, las filas se almacenan en orden de acuerdo con sus valores de índice, con un
árbol B que proporciona el índice. Los datos están en el nodo hoja de las hojas y
otros nodos que almacenan los valores de índice para los datos hoja accesibles
desde los nodos respectivos. Si el índice no está agrupado, las filas no se ordenan
según las claves de í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 rápida recuperación de filas. En algunas
situaciones, la estructura del montón tiene ventajas de rendimiento sobre la
estructura agrupada. Tanto los montones como los árboles B pueden abarcar varias
unidades de asignación. [24]

Gestión de búfer
SQL Server almacena las páginas en la memoria RAM para minimizar la E / S del
disco. Cualquier página de 8 KB se puede almacenar en búfer en la memoria, 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 la memoria caché. 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 caché en
memoria durante algún tiempo. Al volver a escribir páginas en el disco, E / S
asíncronase utiliza mediante el 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
comprobación cuando se escribe. Al volver a leer la página, su suma de comprobación
se calcula de nuevo y se compara con la versión almacenada para garantizar que la
página no se haya dañado o manipulado mientras tanto. [25]

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 los 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
cambiados por otro cliente. SQL Server proporciona dos modos de control de
concurrencia: concurrencia pesimista y concurrencia optimista. Cuando se utiliza un
control de simultaneidad pesimista, SQL Server controla el acceso concurrente
mediante bloqueos. Los candados pueden ser compartidos o exclusivos. El 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 adquieren 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


completas, páginas o incluso en tablas por fila. Para los índices, puede estar en
todo el índice o en hojas de í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 de grano fino permite que más usuarios usen 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 cierres giratorios, que son menos robustos 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
eninterbloqueos: en caso de que lo hagan, SQL Server toma medidas correctivas, que
en muchos casos son eliminar uno de los hilos enredados en un interbloqueo y
revertir 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 simultaneidad optimista,


que es similar al control de simultaneidad multiversion 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 mueven fuera de la base de datos a una base de
datos del sistema identificada comoTempdb. 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 por 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 qué se va a recuperar. Es
procesado por el procesador de consultas, que calcula 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 selección, ejecutar la combinación en
ambas tablas y luego ejecutar seleccionar en los resultados daría el mismo
resultado que seleccionar de cada tabla y luego ejecutar la combinación, pero daría
como resultado planes de ejecución diferentes. En tal caso, SQL Server elige el
plan que se espera que produzca los 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 necesarios para ejecutar la
consulta. Dada una consulta, el optimizador de consultas observa 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 referidas 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 ("selectividad" baja), puede que no valga la pena usar el índice para
acceder a los datos. Finalmente, decide si ejecutar la consulta al mismo tiempo.o
no. Si bien una ejecución concurrente 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, podría significar que se ejecutará más rápido. Una vez que se genera
un plan de consulta para una consulta, se almacena temporalmente en caché. Para más
invocaciones de la misma consulta, se utiliza el plan almacenado en caché. Los
planes no utilizados se descartan después de un tiempo. [9] [26]

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 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 red y mejora un poco el rendimiento. [27] Los planes
de ejecución para procedimientos almacenados también se almacenan en caché según
sea necesario.

T-SQL
Artículo principal: T-SQL
T-SQL (Transact-SQL) es la extensión de lenguaje de procedimientos propiedad 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 ), incluida la
configuración específica de SQL Server, la seguridad y la gestión de estadísticas
de la base 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 base de datos, la introducción y
edición de datos en la base de datos, así como el seguimiento y la 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 solo
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
usando T-SQL. Los servidores vinculados permiten que una sola consulta procese las
operaciones realizadas en varios servidores.[28]

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


SQL Server Native Client es la biblioteca nativa de acceso a datos del lado del
cliente para Microsoft SQL Server, versión 2005 en adelante. Implementa de forma
nativa el soporte para las características de SQL Server, incluida la
implementación Tabular Data Stream , soporte para bases de datos duplicadas de SQL
Server, soporte completo para todos los tipos de datos admitidos por SQL Server,
operaciones asincrónicas, notificaciones de consultas, soporte de cifrado , así
como recibir múltiples conjuntos de resultados. en una sola sesión de base de
datos. Los complementos de SQL Server utilizan el cliente nativo de SQL Server para
otras tecnologías de acceso a datos, como ADO u OLE DB . SQL Server Native Client
también se puede utilizar directamente, sin pasar por las capas de acceso a datos
genéricos. [29]

El 28 de noviembre de 2011, se lanzó una versión preliminar del controlador ODBC de


SQL Server para Linux . [30]

SQL CLR
Artículo principal: SQL CLR
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, el propio SQL Server
aloja el tiempo de ejecución de .NET Framework , es decir, los requisitos de
gestión de memoria, subprocesos y recursos de .NET Framework son satisfechos por el
propio SQLOS, en lugar del sistema operativo Windows subyacente. SQLOS también
proporciona servicios de resolución y detección de interbloqueos para código .NET.
Con SQL CLR, los procedimientos almacenados y los disparadores se pueden escribir
en cualquier lenguaje .NET administrado , incluidos C # y VB.NET . Código
administradotambié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 ensamblados CLI y, después de ser verificado para seguridad de tipos ,
se registra en la base de datos. Después de eso, se pueden invocar como cualquier
otro procedimiento. [31] Sin embargo, solo un subconjunto de la biblioteca de
clases base está disponible cuando se ejecuta código en SQL CLR. La mayoría de las
API relacionadas con la funcionalidad de la interfaz de usuario no están
disponibles. [31]

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 los 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. Estas 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 ADO.NETcontext
connectiontrueAPI, que incluye 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 en
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 (funciones de consulta, valor, nodos). [32]

Servicios
SQL Server también incluye una variedad de servicios complementarios. Si bien estos
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 la base
de datos. Estos servicios se ejecutan como parte de algún componente de SQL Server
o están fuera de proceso como el 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 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 distribuciones
de Microsoft R y Python que contienen paquetes de uso común para la ciencia de
datos, junto con algunos paquetes de su propiedad (por ejemplo revoscalepy ,
RevoScaleR , microsoftml) que se puede utilizar para crear modelos de máquinas a
escala.

Los analistas pueden configurar su máquina cliente para que se conecte a un


servidor SQL remoto y enviar las ejecuciones del script a él, o pueden ejecutar un
script 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. [33]

Agente de servicio
Se utiliza dentro de una instancia, entorno de programación. Para aplicaciones de
instancia cruzada, 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 la base de datos, proporciona una
plataforma confiable de mensajería y cola de mensajes para aplicaciones de SQL
Server. [34]

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

tipos de mensajes
contratos
colas
programas de servicio
rutas
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 para los mensajes. Se implementan internamente
como tablas por SQL Server, pero no admiten la funcionalidad de inserción,
actualización o eliminación. El programa de servicio recibe y procesa los mensajes
del intermediario de servicios. Por lo general, el programa de servicio se
implementa como procedimiento almacenado o aplicación CLR . Las rutas son
direcciones de red donde se encuentra el agente de servicios en la red. [35]

Además, el agente 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 . [35]
Servicios de replicación
Los servicios de replicación de SQL Server son utilizados por SQL Server para
replicar y sincronizar objetos de base de datos, ya sea en su totalidad o en un
subconjunto de los objetos presentes, en 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. Replication Services sigue 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: [36]

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. [37]
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 de forma
bidireccional entre el editor y los suscriptores. Si los mismos datos se han
modificado de forma diferente en las bases de datos del editor y del suscriptor, la
sincronización dará lugar a un conflicto que deberá resolverse, ya sea manualmente
o mediante políticas predefinidas. rowguid debe configurarse en una columna si se
configura la replicación de combinación. [38]
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 en ese momento) y se replica a los suscriptores. No se
realiza un seguimiento de los cambios adicionales en la instantánea. [39]
Servicios de análisis
Artículo principal: SQL Server Analysis Services
SQL Server Analysis Services agrega OLAP y capacidades 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 for Analysis
como protocolo de comunicación subyacente. Se puede acceder a los datos del cubo
mediante consultas MDX y LINQ [40] . [41] 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, Naive
Bayesalgoritmo, análisis de series de tiempo, algoritmo de agrupación de
secuencias, análisis de regresión lineal y logística y redes neuronales, para su
uso en minería de datos. [42]

Servicios de informes
Artículo principal: SQL Server Reporting Services
SQL Server Reporting Services 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 personalizadas. Los informes se
crean como archivos RDL . [43]

Los informes se pueden diseñar utilizando versiones recientes de Microsoft Visual


Studio (Visual Studio.NET 2003, 2005 y 2008) [44] con Business Intelligence
Development Studio , instalado o con el Generador de informes incluido . Una vez
creados, los archivos RDL se pueden renderizar en una variedad de formatos, [45]
[46] incluyendo Excel, PDF , CSV , XML , BMP , EMF , GIF , JPEG , PNG y TIFF , [47]
y HTML Web Archive.

Servicios de notificación
Artículo principal: Servicios de notificación de SQL Server
Presentado originalmente como un complemento posterior al lanzamiento para SQL
Server 2000, [48] Notification Services se incluyó como parte de la plataforma
Microsoft SQL Server por primera y única vez con SQL Server 2005. [49] [50]
Notificación de SQL Server 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ífico (que se registra en
el servidor de la base de datos como un disparador); cuando ocurre el evento,
Notification Services puede utilizar uno de los tres métodos para enviar un mensaje
al suscriptor informándole sobre la ocurrencia del evento. Estos métodos incluyen
SMTP, SOAP o escribiendo en un archivo en el sistema de archivos. [51] Microsoft
descontinuó Notification Services 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
Artículo principal: Servicios de integración de SQL Server
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 extraer datos de varias fuentes, consultar datos,
transformar datos, incluida la agregación, deduplicación, desnormalización y
combinación de datos, y luego exportar los datos transformados a bases de datos o
archivos de destino. [52]

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 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 de SQL , el
uso del 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 rangovalor 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 coincidirán con una palabra
determinada (pero con un rango más bajo que una coincidencia exacta). También se
admiten 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 usar para acceder a las capacidades de FTS. [53] [54]

El motor de búsqueda de texto completo se divide en dos procesos: el proceso Filter


Daemon ( msftefd.exe) y el proceso de búsqueda ( msftesql.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 explora las columnas de texto de la base de datos. También puede indexar
a través de columnas binarias y usar iFilters para extraer texto significativo del
blob binario (por ejemplo, cuando un Microsoft Wordel documento 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 , Y , 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 encuentran. El propio SQL Server incluye un componente Gatherer que
monitorea los cambios en las tablas e invoca el indexador en caso de
actualizaciones. [55]
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 su precisión. Los
resultados se devuelven al cliente a través del proceso de SQL Server. [55]

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 un
lenguaje de secuencias de comandos para crear y ejecutar un conjunto de
instrucciones SQL como una secuencia de comandos. Dichos scripts se almacenan como
un .sqlarchivo y se utilizan para la gestió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 ha continuado hasta las versiones de SQL
Server 2008, 2008 R2, 2012, 2014, 2016 y 2019. Su predecesor para las versiones
anteriores fue OSQL e ISQL, que eran funcionalmente equivalentes en lo que respecta
a la ejecución de TSQL, y muchos de los parámetros de la línea de comando son
idénticos, aunque SQLCMD agrega versatilidad adicional.

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

SQL Server Management Studio


Artículo principal: SQL Server Management Studio
SQL Server Management Studio es una herramienta de GUI incluida con SQL Server 2005
y posterior para configurar, administrar y administrar todos los componentes dentro
de Microsoft SQL Server. La herramienta incluye tanto editores de secuencias de
comandos como herramientas gráficas que funcionan con objetos y funciones del
servidor. [56] SQL Server Management Studio reemplaza a Enterprise Manager como la
interfaz de administración principal para Microsoft SQL Server desde SQL Server
2005. Una versión de SQL Server Management Studio también está disponible para SQL
Server Express Edition, por lo que se conoce como SQL Server Management Studio.
Expreso (SSMSE). [57]

Una característica central de SQL Server Management Studio es el Explorador de


objetos, que permite al usuario navegar, seleccionar y actuar sobre cualquiera de
los objetos dentro del servidor. [58] Se puede utilizar para observar y analizar
visualmente planes de consulta y optimizar el rendimiento de la base de datos,
entre otros. [59] 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]

También podría gustarte