SQL Server
SQL Server
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:
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
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]
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.
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]
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.
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]
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]
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]
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]
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.