Microsoft SQL Server es un sistema de gestión de base de datos relacional, desarrollado por la empresa Microsoft.
El lenguaje de desarrollo utilizado (por línea de comandos o mediante la interfaz gráfica de Management Studio) es Transact-SQL (TSQL), una implementación del estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas (DDL).
Dentro de los competidores más destacados de SQL Server están: Oracle, MariaDB, MySQL, PostgreSQL. SQL Server ha estado tradicionalmente disponible solo para sistemas operativos Windows de Microsoft, pero desde 2016 está disponible para GNU/Linux, y a partir de 2017 para Docker también.
Puede ser configurado para utilizar varias instancias en el mismo servidor físico, la primera instalación lleva generalmente el nombre del servidor, y las siguientes - nombres específicos (con un guion invertido entre el nombre del servidor y el nombre de la instalación).
Versiones + Historia de versionesSQL Server Development History Versión Año Nombre de la versión Nombre clave 1.0(OS/2) 1989 SQL Server 1-0 SQL 4.21(WinNT) 1993 SQL Server 4.21 SEQUEL 6.0 1995 SQL Server 6.0 SQL95 6.5 1996 SQL Server 6.5 Hydra 7.0 1998 SQL Server 7.0What's New in Microsoft SQL Server 7 Sphinx - 1999 SQL Server 7.0OLAP Tools Plato 8.0 2000 SQL Server 2000What's New in Microsoft SQL Server 2000Shiloh 8.0 2003 SQL Server 200064-bit Edition Liberty 9.0 2005 SQL Server 2005Novedades de SQL Server 2005Yukon 10.0 2008 SQL Server 2008Novedades (SQL Server 2008) Katmai 10.25 2010 SQL Azure DB CloudDatabase10.50 2010 SQL Server 2008 R2What's New in Microsoft SQL Server 2008 R2 Kilimanjaro11.0 2012 SQL Server 2012Novedades de SQL Server 2012 Denali12.0 2015 SQL Server 2014Novedades de SQL Server 2014 SQL14 (antes Hekaton)13.02016SQL Server 2016SQL1614.02017SQL Server 2017vNext 201715.02019SQL Server 2019Dafne16.02022SQL Server 2022 El código fuente original de SQL Server que fue utilizado en las versiones previas a la versión 7.0 habría sido comprado de Sybase, pero fue actualizado en las versiones 7.0 y 2000, y reescrito en la versión 2005. Generalmente, cada 2-3 años, una nueva versión es lanzada y, entre estos lanzamientos, se proponen service packs con mejoras y correcciones de bugs, y hotfixes por problemas urgentes en el sistema de seguridad o bugs críticos.
Disponibilidad Microsoft SQL Server se vende como licencia. Sin embargo, los usuarios que quieran utilizar SQL Server, siendo todo sobre el programa, como solicitar y almacenar información, necesitan una CAL.
Modelos de licencia Microsoft SQL Server utiliza diferentes modelos de licencias, estas son las licencias Server + CAL y las licencias por núcleo.
Modelo de servidor + CAL Este modelo de licencia es una opción más económica, se compra con la licencia y se tiene que comprar CAL adicionales para usuarios o dispositivos.
Licencias por núcleo Al elegir la concesión de licencias por núcleo, concede la licencia a varios núcleos del procesador físico del servidor. Con Microsoft SQL Server 2019, al menos 4 núcleos siempre deben tener licencia. Este modelo de licencia suele ser elegido por grandes empresas. No se requieren CAL para esto.
Client Access License (CAL) (Una licencia de acceso de cliente) Una licencia de acceso de cliente está destinada a proporcionar derechos de uso para permitir que los usuarios o dispositivos accedan al software del servidor. Esto significa que cada computadora o usuario que necesita acceso al software del servidor necesita una CAL.
User CALsimanol Una CAL de usuario da acceso a la función antes mencionada a un usuario en la red. Esto significa que este usuario también puede acceder a la red del servidor a través de otros dispositivos.
Device CALsimanol Una CAL de dispositivo da acceso a un dispositivo. Esto significa que todos los usuarios de este dispositivo pueden iniciar sesión para acceder al servidor. A menudo, esto solo es beneficioso cuando hay más usuarios que dispositivos dentro de una organización,
Características Soporte de transacciones. Soporta procedimientos almacenados. Incluye también un entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente. Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y los terminales o clientes de la red solo acceden a la información. Además permite administrar información de otros servidores de datos.
Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en sus versiones 2005 y 2008 pasa a ser el SQL Express Edition, que es una edición que se distribuye en forma gratuita.
Es común desarrollar proyectos completos empleando Microsoft SQL Server y Microsoft Access a través de los llamados ADP (Access Data Project). De esta forma se completa la base de datos (Microsoft SQL Server), con el entorno de desarrollo (VBA Access), a través de la implementación de aplicaciones de dos capas mediante el uso de formularios Windows.
En el manejo de SQL mediante líneas de comando se utiliza el SQLCMD, osql, o PowerShell.
Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor solo está disponible para Sistemas Operativos.
El tipo NUMERIC fue mejorado para ser usado como identificador de columna a partir de la versión 2008 R2.
Programación
T-SQL
T-SQL (Transact-SQL) es el principal medio de interacción con el Servidor, el cual permite realizar las operaciones claves en SQL Server, incluyendo la creación y modificación de esquemas de base de datos, inserción y modificación de datos en la base de datos, así como la administración del servidor como tal. Esto se realiza mediante el envío de sentencias en T-SQL y declaraciones que son procesadas por el servidor y los resultados (o errores) regresan a la aplicación cliente.
Cliente nativo de SQL Cliente Nativo de SQL, es la biblioteca de acceso a datos para los clientes de Microsoft SQL Server versión 2005 en adelante. Implementa de forma nativa soporte para las características de SQL Server, incluyendo la ejecución de la secuencia de datos tabular, soporte para bases de datos en espejo de SQL Server, soporte completo para todos los tipos de datos compatibles con SQL Server, conjuntos de operaciones asíncronas, las notificaciones de consulta, soporte para cifrado, así como recibir varios conjuntos de resultados en una sola sesión de base de datos. Cliente Nativo de SQL se utiliza como extensión de SQL Server plug-ins para otras tecnologías de acceso de datos, incluyendo ADO u OLE DB. Cliente Nativo de SQL puede también usarse directamente, pasando por alto las capas de acceso de datos.
Ediciones y servicios Cada edición de SQL Server posee distintas versiones con distintos precios (para cada versión) que dependen también en la configuración física del servidor. Características compatibles con las ediciones de SQL Server 2014 A continuación se presentan las versiones principales:
Enterprise Contempla todas las características (deshabilitadas en otras ediciones).Es el tipo de versión con más privilegios existente en el mercado.
Developer Una edición con las mismas características que la Enterprise, con el fin de ser instalada solamente en ambiente de desarrollo y no en producción. Si se desarrolla para una edición Standard hay que tener en cuenta las características deshabilitadas para esta versión.
Standard Una versión limitada según la configuración del servidor y sus características, diseñada para servidores inferiores.
Por ejemplo: en la versión 2012, la edición Enterprise soporta un número ilimitado de procesadores, y la agregación de memoria y CPUs en caliente sin la interrupción del servicio o del servidor; mientras la edición Standard esta limitada a 16 procesadores y no soporta la "agregación en caliente".
Express Una versión gratuita que posibilita la creación de bases de datos limitadas con características básicas, con el fin de apoyar aplicaciones que necesiten una solución simple para almacenamiento de una cantidad limitada de datos, o usuarios que sus recursos y necesidades son limitados.
En la versión 2012, esta edición puede utilizar un máximo de 1 GB de memoria, y almacenar no más de 10GB, funciona en servidores con un número máximo de cuatro procesadores. Estas limitaciones se mantienen en la versión 2014 (4 cores, 1GB ram, y 10Gb por base de datos).
SQL Azure Es una versión de SQL Server en la nube, que permite pagar mensualmente por el servicio sin la necesidad de mantener un servidor físico (On Premise). La empresa paga solo por el servicio, y el servicio es manejado a través de torres de servidores en distintos lugares en el mundo.
Con SQL Azure no es necesario instalar, mantener o actualizar un servidor físico; a pesar de que este servicio depende de aspectos relacionados con problemas de seguridad con respecto a su presencia fuera de la empresa y a la disponibilidad de conexión a Internet.
Durante un tiempo, el servicio fue ampliado con la opción de crear un servidor virtual por la red, e instalar SQL Server tanto como uno de los servicios competidores, y manejar el servidor virtual como si fuera un servidor físico local (aunque físicamente no está accesible); y se puede diferenciar entre la opción original que esta denominada PAAS (Platform as a Service: Plataforma como un Servicio) y la nueva opción de los servidores virtuales denominada IAAS (Infrastructure as a Service: Infraestructura como un Servicio).
Este servicio esta otorgado por Microsoft desde 2009 y se une a servicios similares de empresas de third-party.
Interfaz de usuario SQL Server proporciona unas interfaces que han cambiado durante los años, de los cuales los más conocidos son las interfaces gráficas que están utilizadas como herramienta de desarrollo estándar a los desarrolladores y administradores.
La interfaz gráfica hasta 2005 incluyó el Enterprise Manager con una vista de árbol de los distintos objetos y con la capacidad de manejarlos; y el Query analyzer como interfaz textual para ejecutar comandos de TSQL.
En la versión 2005 las dos herramientas se unificaron a una –el SQL Server Management Studio (SSMS), y a partir de 2008 fue incluida la opción de trabajar con el Visual Studio– la interfaz estándar de desarrollo de Microsoft (a los distintos lenguajes, BI, etc.). Otra interfaz opcional es la utilización de la Línea de comandos, con herramientas como SQLCmd, ISQL, OSQL que posibilita la ejecución de scripts y procesamiento por lotes. Desde 2008 se puede desarrollar con SQLCmd (SQL Command) a través del SSMS sin interconectarse al interfaz textual de Windows. Otra opción en el ámbito de scripts es la utilización del lenguaje de scripts Powershell de Microsoft.
Aparte de las interfaces estándares de SQL Server, se puede ejecutar comandos de TSQL con herramientas de conexión como ODBC y OLE-DB.Connection Strings
Servicios A contrario de sistemas de bases de datos como Microsoft Access que son "pasivas" y contienen un archivo a cual hay que conectar y la ejecución de los comandos se lleva a cabo en el cliente (la computadora de usuario), en SQL Server hay número de servicios, software que están ejecutadas en la memoria del servidor por parte del sistema, y por lo tanto aprovechan las capacidades del servidor que es más potente que los clientes, previenen congestión en la red, y pueden programar tareas que corran aunque el cliente no está conectado.
Los servicios principales: SQL Server - El "motor" del sistema SQL Agent - Ejecución de tareas (Jobs, scripts programados) y envío de advertencias en caso de carga pesada e irregulares en el sistema Full-Text Filter Daemon Launcher - La utilización de los índices especiales del "Full text search" por búsqueda textual avanzada