Microsoft SQL Server
Microsoft SQL Server
Microsoft SQL Server
Microsoft SQL Server es un sistema de manejo de bases de datos del modelo relacional, desarrollado
por la empresa Microsoft.
Dentro de los competidores ms destacados de SQL Server estn: Oracle, MariaDB, MySQL,
PostgreSQL. SQL Server ha estado tradicionalmente disponible solo para sistemas operativos Windows
de Microsoft, pero desde 2017 tambin est disponible para Linux y Docker containers.34
Puede ser configurado para utilizar varias instancias en el mismo servidor fsico, la primera instalacin
lleva generalmente el nombre del servidor, y las siguientes - nombres especficos (con un guion
invertido entre el nombre del servidor y el nombre de la instalacin).
ndice
1 Versiones
2 Caractersticas
3 Programacin
o 3.1 T-SQL
o 3.2 Cliente Nativo de SQL
4 Ediciones y servicios
o 4.1 Enterprise
o 4.2 Developer
o 4.3 Standard
o 4.4 Express
o 4.5 SQL Azure
5 Interfaz de usuario
6 Servicios
7 Capacidades y herramientas bsicas
o 7.1 Bases de datos
o 7.2 Tablas fijas y temporales
o 7.3 Tipos de datos
o 7.4 Vistas
o 7.5 Procedimientos almacenados
o 7.6 Funciones definidas por el usuario
o 7.7 Consultas Distribuidas
o 7.8 Transacciones
o 7.9 El optimizador
8 Privilegios y seguridad de datos
9 Otras herramientas de servicio
o 9.1 Respaldos y recuperaciones
o 9.2 Compresin
o 9.3 Replicacin, alta disponibilidad, y recuperacin de desastres
o 9.4 El agente y la programacin de tareas
o 9.5 Mantenimiento
o 9.6 Service Broker
o 9.7 Enviar Correos Electrnicos
o 9.8 Full Text Search (Bsqueda de Textos completos)
o 9.9 Rastrear
o 9.10 Combinacin de CLR
o 9.11 Herramientas de Inteligencia empresarial
9.11.1 SSIS (SQL Server Integration Services)
9.11.2 SSAS (SQL Server Analysis Services)
9.11.3 SSRS (SQL Server Reporting Services)
10 Desventajas
11 Vase tambin
12 Referencias
13 Enlaces externos
Versiones
Historia de versiones
Versin Ao Nombre de la versin Nombre clave
1.0
1989 SQL Server 1-0 SQL
(OS/2)
4.21
1993 SQL Server 4.21 SEQUEL
(WinNT)
6.0 1995 SQL Server 6.0 SQL95
6.5 1996 SQL Server 6.5 Hydra
5
7.0 1998 SQL Server 7.0 Sphinx
SQL Server 7.0
- 1999 Plato
OLAP Tools
8.0 2000 SQL Server 20006
SQL Server 2000
8.0 2003 Liberty
64-bit Edition
9.0 2005 SQL Server 20057 Yukon
8
10.0 2008 SQL Server 2008 Katmai
10.25 2010 SQL Azure DB CloudDatabase
9
10.50 2010 SQL Server 2008 R2 Kilimanjaro
11.0 2012 SQL Server 201210 Denali
1
12.0 2014 SQL Server 2014 SQL14 (antes Hekaton)
13.0 2016 SQL Server 2016
El cdigo fuente original de SQL Server que fue utilizado en las versiones previas a la versin 7.0
habra sido comprado de Sybase, pero fue actualizado en las versiones 7.0 y 2000, y reescrito en la
versin 2005. Generalmente, cada 2-3 aos, una nueva versin es lanzada y, entre estos lanzamientos,
se proponen service packes con mejoras y correcciones de bugs, y hotfixes por problemas urgentes en
el sistema de seguridad o bugs crticos.
Caractersticas
Soporte de transacciones.
Soporta procedimientos almacenados.
Incluye tambin un entorno grfico de administracin, que permite el uso de comandos DDL y
DML grficamente.
Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el servidor
y los terminales o clientes de la red slo acceden a la informacin.
Adems permite administrar informacin de otros servidores de datos.
Este sistema incluye una versin reducida, llamada MSDE con el mismo motor de base de datos pero
orientado a proyectos ms pequeos, que en sus versiones 2005 y 2008 pasa a ser el SQL Express
Edition, que se distribuye en forma gratuita.
Es comn desarrollar proyectos completos empleando Microsoft SQL Server y Microsoft Access a
travs 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 travs de la implementacin de
aplicaciones de dos capas mediante el uso de formularios Windows.
Para el desarrollo de aplicaciones ms complejas (tres o ms capas), Microsoft SQL Server incluye
interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor slo est
disponible para Sistemas Operativos.
El tipo NUMERIC fue mejorado para ser usado como identificador de columna a partir de la versin
2008 R2.
Programacin
T-SQL
T-SQL (Transact-SQL) es el principal medio de interaccin con el Servidor, el cual permite realizar las
operaciones claves en SQL Server, incluyendo la creacin y modificacin de esquemas de base de
datos, insercin y modificacin de datos en la base de datos, as como la administracin del servidor
como tal. Esto se realiza mediante el envo de sentencias en T-SQL y declaraciones que son procesadas
por el servidor y los resultados (o errores) regresan a la aplicacin cliente.
Cliente Nativo de SQL, es la biblioteca de acceso a datos para los clientes de Microsoft SQL Server
versin 2005 en adelante. Implementa de forma nativa soporte para las caractersticas de SQL Server,
incluyendo la ejecucin 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 asncronas, las notificaciones de consulta, soporte para cifrado, as como recibir varios
conjuntos de resultados en una sola sesin de base de datos. Cliente Nativo de SQL se utiliza como
extensin de SQL Server plug-ins para otras tecnologas de acceso de datos, incluyendo ADO u OLE
DB. Cliente Nativo de SQL puede tambin usarse directamente, pasando por alto las capas de acceso
de datos.
Ediciones y servicios
Cada versin de SQL Server posee distintas versiones con distintos precios (para cada versin) que
dependen tambin en la configuracin fsica del servidor. 11 A continuacin se presentan las versiones
principales:
Enterprise
Contempla todas las caractersticas (deshabilitadas en otras ediciones).Es el tipo de versin con ms
privilegios existente en el mercado.
Developer
Una edicin con las mismas caractersticas que la Enterprise, con el fin de ser instalada solamente en
ambiente de desarrollo y no en produccin. Si se desarrolla para una edicin Standard hay que tener en
cuenta las caractersticas deshabilitadas para esta versin.
Standard
Una versin limitada segn la configuracin del servidor y sus caractersticas, diseada para servidores
inferiores.
Por ejemplo: en la versin 2012, la edicin Enterprise soporta un nmero ilimitado de procesadores, y
la agregacin de memoria y CPUs en caliente sin la interrupcin del servicio o del servidor; mientras la
edicin Standard esta limitada a 16 procesadores y no soporta la "agregacin en caliente".
Express
Una versin gratuita que posibilita la creacin de bases de datos limitadas con caractersticas bsicas,
con el fin de apoyar aplicaciones que necesiten una solucin simple para almacenamiento de una
cantidad limitada de datos, o usuarios que sus recursos y necesidades son limitados.
SQL Azure
Es una versin de SQL Server en la nube, que permite pagar mensualmente por el servicio sin la
necesidad de mantener un servidor fsico (On Premise). La empresa paga solo por el servicio, y el
servicio es manejado a travs de torres de servidores en distintos lugares en el mundo.
Con SQL Azure no es necesario instalar, mantener o actualizar un servidor fsico; a pesar que este
servicio depende de aspectos relacionados a problemas de seguridad con respecto a su presencia fuera
de la empresa y a la disponibilidad de conexin a Internet.
Durante un tiempo, el servicio fue ampliado con la opcin 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 fsico local (aunque fsicamente no est accesible); y se puede diferenciar entre la
opcin original que esta denominada PAAS (Platform as a Service: El Plataforma como un Servicio) y
la nueva opcin 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 unos interfaz que han cambiado durante los aos, de los cuales los ms
conocidos son los interfaz grficos que estn utilizados como herramienta de desarrollo estndar a los
desarrolladores y administradores.
La interfaz grfica 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 versin 2005 las dos herramientas se unificaron a una el SQL Server Management Studio
(SSMS), y a partir de 2008 fue incluida la opcin de trabajar con el Visual Studio la interfaz estndar
de desarrollo de Microsoft (a los distintos lenguajes, BI, etc.). Otro interfaz opcional es la utilizacin de
Lnea de comandos, con herramientas como SQLCmd, ISQL, OSQL que posibilita la ejecucin de
scripts y procesamiento por lotes. Desde 2008 se puede desarrollar con SQLCmd (SQL Command) a
travs del SSMS sin interconectarse al interfaz textual de Windows. Otra opcin en el mbito de scripts
es la utilizacin del lenguaje de scripts Powershell de Microsoft.
Aparte de los intefazes estndares de SQL Server, se puede ejecutar comandos de TSQL con
herramientas de conexin como ODBC y OLE-DB.12
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 ejecucin de los comandos se lleva a cabo en el cliente (la
computadora de usuario), en SQL Server hay nmero de servicios, software que estn ejecutadas en la
memoria del servidor por parte del sistema, y por lo tanto aprovechan las capacidades del servidor que
es ms potente que los clientes, previenen congestin en la red, y pueden programar tareas que corran
aunque el cliente no est conectado.
En cada instalacin de SQL Server hay 4 bases de datos de sistema, y la capacidad de crear nuevas
bases de datos por el usuario, en los cuales los datos estn almacenados en tablas.
Estas bases de datos, creadas por parte de los usuarios, incluyen bsicamente un archivo de datos (con
el sufijo mdf) con las tablas y los distintos objetos a nivel de la base de datos; y un archivo de registro
(con el sufijo ldf) con las transacciones abiertas, y transacciones cerradas, Sujeto al modelo de
recuperacin seleccionado (se puede acumular en el archivo de registro todos los cambios en la base de
datos desde el ltimo respaldo). Se puede crear un conjunto de archivos de datos adems del principal
(con el sufijo ndf) por consideraciones de eficiencia, particin de carga de trabajo entre los discos
rgidos, etc.
master - Todos los procedimientos, funciones y tablas del sistema que estn utilizadas por parte
de todas las bases de datos y que estn instaladas automticamente, tanto como las que han sido
creado por parte de los administradores del sistema. Adems, todas las definiciones en respecto
a la seguridad a nivel del servidor, estn almacenadas en esta base de datos.
msdb - Almacenamiento de las tareas del agente, los cdigos de CLR combinados en el
sistema, los paquetes de SSIS, y otros ms.
model - El molde de las bases de datos. Cada nueva base de datos se crea como una copia de
esta base de datos, menos que algo ms estaba definido explcitamente.
tempdb - Base de datos temporal que se crea de nuevo cada vez que el servicio reinicia. Se
utiliza para almacenar tablas temporales creadas por parte de los usuarios o el sistema (por
ejemplo en ordenaciones complejos).
Desde la perspectiva lgica, los datos almacenados en las bases de datos en tablas, que mediante ellas
se implementa la teora de las bases de datos relacionales. La tabla se divide en filas y columnas (A
veces se les conoce como registros y campos). Las tablas pueden ser fijas o temporales, mientras que
en el segundo caso existen fsicamente en la base de datos tempdb, y se borran automticamente en
caso de desconexin de la sesin o de la conexin al servidor, depende en el tipo de la tabla temporal.
Desde la perspectiva fsica, el sistema divide los archivos de la base datos en Extents de 64 KB, y cada
cual a ocho pginas de 8 KB. Generalmente, cada Extent se asigna a una tabla o un ndice, menos las
tablas pequeas; y cada pgina se asigna siempre a una tabla especfica. El sistema es responsable del
aumento de los archivos, de acuerdo con los ajustes del usuario, y de asignar Extents y pginas a las
tablas.
A las tablas se puede crear ndices. Los ndices se almacenan junto a la tabla (Non Clustered Index) o
son la tabla en s (Clustered Index). Los ndices asisten en la bsqueda de datos en las tablas (como los
ficheros en las libreras), en ordenarlas, y la definicin de claves primarias.
Aparte de las tablas de los usuarios, hay tablas que almacenan meta data: datos sobre el sistema mismo,
los diferentes objetos, los derechos, estadsticas sobre el rendimiento del sistema (DMV), etc.
Tipos de datos
Para cada columna en una tabla y a cada variable o parmetro, se define un tipo de datos que sean
almacenados en l, entre ellos:
Vistas
Las vistas representan generalmente comandos de extraccin de datos, que se almacenan sin los datos
(que estn almacenados en las tablas). Esta opcin nos posibilita crear extracciones complejas o
estndares, almacenarlas como vistas, y utilizar las vistas sin la necesidad de escribir de nuevo los
comandos o mantener los cdigos donde ellas aparecen. Adicionalmente, es un medio muy importante
para otorgar derechos selectivos de lectura (en caso que queremos posibilitar a un usuario contemplar
parcialmente las columnas o las filas de una tabla).
Una vista se puede considerar una tabla virtual o una consulta almacenada. Los datos accesibles a
travs de una vista no estn almacenados en un objeto distinto de la base de datos. Lo que est
almacenado en la base de datos es una instruccin SELECT. El resultado de la instruccin SELECT
forma la tabla virtual que la vista devuelve. El usuario puede utilizar dicha tabla virtual haciendo
referencia al nombre de la vista en instrucciones Transact-SQL, de la misma forma en que se hace
referencia a las tablas. Las vistas se utilizan para alguna de estas funciones, o para todas:
Restringir el acceso del usuario a filas concretas de una tabla. Por ejemplo, permitir que un empleado
slo vea las filas que guardan su trabajo en una tabla de seguimiento de actividad laboral.
Restringir el acceso del usuario a columnas especficas. Por ejemplo, permitir que los empleados que
no trabajen en el departamento de nminas vean las columnas de nombre, oficina, telfono y
departamento de la tabla de empleados, pero no permitir que vean las columnas con los datos de salario
u otra informacin personal.
Combinar columnas de varias tablas de forma que parezcan una sola tabla.
Agregar informacin en lugar de presentar los detalles. Por ejemplo, presentar la suma de una
columna o el valor mximo o mnimo de una columna.
Las vistas se crean definiendo la instruccin SELECT que recupera los datos presentados por la vista.
Las tablas de datos a las que hace referencia la instruccin SELECT se conocen como las tablas base
para la vista. Las vistas en todas las versiones de SQL Server son actualizables (pueden ser objetivo de
instrucciones UPDATE, DELETE o INSERT) mientras la modificacin afecte slo a una de las tablas
base de la vista.
Procedimientos almacenados
Los procedimientos son scripts de comandos de TSQL, que pueden ser ejecutados con distintos
parmetros. Por ejemplo, procedimiento que obtiene nmero de ao como parmetro, y actualiza una
tabla de resumen de ventas, con las ventas de los agentes en el dicho ao, basada en la tabla de registro
de ventas.
Los procedimientos almacenados pueden facilitar en gran medida la administracin de la base de datos
y la visualizacin de informacin sobre dicha base de datos y sus usuarios. Los procedimientos
almacenados son una coleccin precompilada de instrucciones SQL e instrucciones de control de flujo
opcionales almacenadas bajo un solo nombre y procesadas como una unidad. Los procedimientos
almacenados se guardan en una base de datos; se pueden ejecutar desde una aplicacin y permiten
variables declaradas por el usuario, ejecucin condicional y otras funciones eficaces de programacin.
Los procedimientos almacenados pueden contener flujo de programas, lgica y consultas a la base de
datos. Pueden aceptar parmetros, proporcionar resultados de parmetros, devolver conjuntos de
resultados individuales o mltiples y devolver valores.
Las ventajas de utilizar procedimientos almacenados en SQL Server en vez de programas Transact-SQL
almacenados localmente en equipos clientes consisten en que:
Permiten una programacin modular.
Puede crear el procedimiento una vez, almacenarlo en la base de datos, y llamarlo desde el programa el
nmero de veces que desee. Un especialista en programacin de bases de datos puede crear
procedimientos almacenados, que luego ser posible modificar independientemente del cdigo fuente
del programa. Facilitan el mantenimiento.
Permiten una ejecucin ms rpida.
En situaciones en las que se necesita una gran cantidad de cdigo Transact-SQL, o si las operaciones se
realizan varias veces, los procedimientos almacenados pueden ser ms rpidos que los lotes de cdigo
Transact-SQL. Los procedimientos son analizados y optimizados en el momento de su creacin, y es
posible utilizar una versin del procedimiento que se encuentra en la memoria despus de que se
ejecute por primera vez. Las instrucciones de Transact-SQL que se envan varias veces desde el cliente
cada vez que deben ejecutarse tienen que ser compiladas y optimizadas siempre que SQL Server las
ejecuta.
Pueden reducir el trfico de red.
Una operacin que necesite centenares de lneas de cdigo Transact-SQL puede realizarse mediante
una sola instruccin que ejecute el cdigo en un procedimiento, en vez de enviar cientos de lneas de
cdigo por la red.
Pueden utilizarse como mecanismo de seguridad.
Es posible conceder permisos a los usuarios para ejecutar un procedimiento almacenado, incluso si no
cuentan con permiso para ejecutar directamente las instrucciones del procedimiento.
Las funciones son un objeto que combina algunas capacidades de las vistas, con otras de los
procedimientos. Como las vistas, pueden extraer datos y ejecutar clculos, y devuelven un resultado al
usuario o al programa que les ejecut. Tanto como los procedimientos, incluyen cdigos de TSQL, y
pueden ser ejecutados con parmetros.
Las funciones definidas por el usuario se crean con la instruccin CREATE FUNCTION, se modifican
con la instruccin ALTER FUNCTION y se quitan con la instruccin DROP FUNCTION. Todos los
nombres de funciones completos (database_name.owner_name.function_name) definidos por el usuario
deben ser nicos. Para crear, modificar o quitar funciones definidas por el usuario, debe tener permisos
de CREATE FUNCTION. Los usuarios distintos del propietario deben tener permiso EXECUTE para
una funcin, y solo as podrn utilizarla en una instruccin de Transact-SQL. Para crear o modificar
tablas con referencias a funciones definidas por el usuario en la restriccin CHECK, la clusula
DEFAULT o la definicin de una columna calculada, tambin debe tener permiso REFERENCES para
las funciones. Los errores de Transact-SQL que producen la cancelacin de una instruccin y continan
con la siguiente instruccin del mdulo, como desencadenadores o procedimientos almacenados, se
tratan de forma distinta dentro de una funcin. En las funciones, estos errores hacen que se detenga la
ejecucin de la funcin. Esto hace que se cancele la funcin que invoc la instruccin. Una funcin
definida por el usuario no tiene ninguno o tiene varios parmetros de entrada y devuelve un valor
escalar o una tabla. Una funcin puede tener un mximo de 1024 parmetros de entrada. Cuando un
parmetro de la funcin toma un valor predeterminado, debe especificarse la palabra clave DEFAULT
al llamar a la funcin para poder obtener el valor predeterminado. Este comportamiento es diferente del
de los parmetros con valores predeterminados de los procedimientos almacenados, para los cuales
omitir el parmetro implica especificar el valor predeterminado. Las funciones definidas por el usuario
no admiten parmetros de salida.
Consultas Distribuidas
Las consultas distribuidas tienen acceso a datos de varios orgenes, que pueden estar almacenados en
un equipo o en equipos distintos. Microsoft SQL Server 2000 admite las consultas distribuidas a travs
de OLE DB Las consultas distribuidas proporcionan a los usuarios de SQL Server acceso a:
Datos distribuidos almacenados en mltiples instancias SQL Server.
Datos heterogneos almacenados en varios orgenes de datos relacionales y no relacionales a los que
se tiene acceso mediante un proveedor OLE DB.
Los proveedores OLE DB exponen datos en objetos tabulares llamados conjuntos de filas. En las
instrucciones Transact-SQL, SQL Server 2000 permite que se haga referencia a los conjuntos de filas
de los proveedores OLE DB como si fueran una tabla de SQL Server. En las instrucciones SELECT,
INSERT, UPDATE y DELETE de Transact-SQL, se puede hacer referencia directa a las tablas y vistas
de orgenes de datos externos. Puesto que las consultas distribuidas usan OLE DB como interfaz
subyacente, stas tienen acceso a los sistemas DBMS relacionales tradicionales con procesadores de
consultas SQL, as como a los datos administrados por orgenes de datos de capacidad y sofisticacin
diversas. Siempre que el software propietario de los datos los expone en un conjunto de filas tabular a
travs del proveedor OLE DB, los datos se podrn usar en las consultas distribuidas. Nota: El uso de las
consultas distribuidas en SQL Server es similar a la funcionalidad de las tablas vinculadas mediante
ODBC, que anteriormente admita Microsoft Access. Esta funcionalidad se encuentra ahora integrada
en SQL Server con OLE DB como interfaz para los datos externos.
Transacciones
Atomicidad
Una transaccin debe ser una unidad atmica de trabajo, tanto si se realizan todas sus modificaciones
en los datos, como si no se realiza ninguna de ellas.
Coherencia
Cuando finaliza, una transaccin debe dejar todos los datos en un estado coherente. En una base de
datos relacional, se deben aplicar todas las reglas a las modificaciones de la transaccin para mantener
la integridad de todos los datos. Todas las estructuras internas de datos, como ndices de rbol B o listas
doblemente vinculadas, deben estar correctas al final de la transaccin.
Aislamiento
Las modificaciones realizadas por transacciones simultneas se deben aislar de las modificaciones
llevadas a cabo por otras transacciones simultneas. Una transaccin ve los datos en el estado en que
estaban antes de que otra transaccin simultnea los modificara o despus de que la segunda
transaccin se haya concluido, pero no ve un estado intermedio. Esto se conoce como seriabilidad
debido a que su resultado es la capacidad de volver a cargar los datos iniciales y reproducir una serie de
transacciones para finalizar con los datos en el mismo estado en que estaban despus de realizar las
transacciones originales.
Durabilidad
Una vez concluida una transaccin, sus efectos son permanentes en el sistema. Las modificaciones
persisten an en el caso de producirse un error del sistema.
SQL Server tiene una capacidad limitada de anidar transacciones.
El optimizador
El optimizador es una parte del software que "toma la decisin" de como cada comando se ejecutar,
tanto que la ejecucin ser lo ms eficiente, o por lo menos bastante eficiente (es decir, bastante
eficiente para evitar seguir buscando otra solucin, que an que sea ms eficiente, el precio de la
bsqueda adicional "costar" ms que el ahorro de recursos).
SQL es un lenguaje declarativo, en el cual el desarrollador declara que quiere extraer o actualizar sin la
necesidad de indicar cmo (a contrario de los lenguajes imperativos, y por lo tanto el optimizador juega
un papel protagnico, que de acuerdo con las estadsticas que el sistema almacena sobre las
distribuciones de los datos en las tablas, los indexes, y reglas internas; toma la decisin adecuada.
A nivel de la base de datos, el usuario se identifica como un User que est relacionado generalmente al
Login (que es a nivel del servidor), y los privilegios al User existen solamente en el mbito de la base
de datos (adems a los privilegios al Login). Para otorgar derechos generales puede asistirse con listas
de Server Roles (roles a nivel del servidor) o Database Roles (roles a nivel de la base de datos
especfica), cada cual con privilegios especficos a un rol especfico; y cada usuario asociado con uno
de estos Roles obtiene los privilegios asociados con l. Adems, el administrador puede otorgar
derechos specificos, y crear otros Database Roles (no se puede crear Server Roles).
Los privilegios a nivel del servidor incluyen la capacidad de crear bases de datos, utilizar las tareas
(Jobs), crear respaldos de bases de datos y restaurarlos, modificar las definiciones del servidor, etc. Los
privilegios a nivel de la base de datos posibilitan extraer y actualizar datos, crear objetos como
procedimientos y tablas, utilizar dichos objetos, etc. Como regla general se puede otorgar derechos
(Grant), revocar privilegios existentes (Revoke), y denegar privilegios an no existen (Deny).
Respaldos y recuperaciones
Aparte de soluciones de alternativas a nivel del sistema operativo (respaldo de los archivos de la base
de datos), hay una herramienta integrada en el SQL Server que posibilita un respaldo completo o
diferencial, de acuerdo con el modelo de recuperacin (Recovery Model) predefinido a la base de
datos; y una recuperacin completa o a un punto de tiempo. Aparte de un respaldo de la base de datos
se puede respaldarlos a travs de un guion (con o sin los datos). A partir de 2008, se puede comprimir
los archivos de respaldo.
Compresin
A partir de 2008 se aadi la opcin de compresin que posibilita comprimir el tamao fsico de las
tablas y los ndices, y utilizar ms eficientemente el volumen de los discos rgidos y reducir
operaciones de IO (lo que aumenta la carga del CPU). Como ya ha sido mencionado, se puede
comprimir tambin los archivos de respaldo.
Algunas herramientas posibilitan crear replicas parciales o completos de las bases de datos, mejorar la
disponibilidad, y recuperar de desastres; aparte de la opcin de respaldar y recuperar las bases de datos,
una opcin que se supone que es muy lenta.
Las copias creadas por estas herramientas, pueden ser utilizadas como un respaldo disponible
inmediatamente en caso de que el sistema falla, tanto como una rplica en un subsistema,
independiente del sistema de origen, para equilibrio de carga; y que las actualizaciones se ejecuten en la
base de datos, y las recuperaciones para los reportajes se ejecuten en la rplica.
Entre dichas herramientas se puede mencionar la replicacin que posibilita crear una rplica
sincronizada de la base de datos, el Mirroring que ejecuta en el servidor de espejo cada actualizacin
que se ejecuta en el servidor de origen, Log Shipping que posibilita almacenar una copia sincronizada a
travs de archivos de registro (Log) con todas las actualizaciones en el servidor de origen, y las
herramientas de alta disponibilidad y recuperacin de desastres (HADR, desde 2012) que solucionan
problemas de Mirroring en relacin con el tiempo de reaccin de los fallos tcnicos y la disponibilidad
de las copias en tiempos de paz.
Mantenimiento
Con el fin de mejorar el rendimiento del sistema hay que mantener las estadsticas, utilizadas por el
optimizador, organizar los archivos fsicos, etc; y se utilizan herramientas dedicadas para estos
propsitos, que se ejecutan peridicamente por tareas programadas, y de una manera coordinada con
las tareas de ETL y de respaldo.
Service Broker
Una tecnologa que fue agregada en 2005 que implementa arquitectura orientada a servicios, y que
posibilita ejecuciones asncronos: primero que nada para enviar mensajes entre distintas aplicaciones
que se ejecutan simultneamente, pero tambin para ejecutar procedimientos asncronamente, en la
manera de dispara y olvida - un procedimiento que se ejecuta en una sesin diferente de la sesin que
lo inicio, y ambos procedimientos siguen ejecutado independientemente uno del otro.
SQL Server tiene la capacidad de enviar correos electrnicos a travs del cdigo. Esta capacidad se
utiliza generalmente para enviar alertas sobre problemas en el sistema (por ejemplo si el CPU aumento
a un umbral predefinido o si el proceso ETL fall), pero tambin cuando el proceso termino
exitosamente.
Una herramienta que posibilita indexar columnas textuales como textos y no solo como cadenas; y
ejecutar bsquedas complejas dependientes en el sentido del texto y en el idioma. Por ejemplo,
buscamos un verbo, y queremos obtener todas las ocurrencias de sus conjugaciones.
Rastrear
Estas herramientas incluyen el Trace que posibilita rastrear actividades con el fin de mantener cargas y
fallos, y seguridad de datos (recuperacin no permitida de datos), el Profiler que posibilita rastrear los
commandos que se ejecutan y los eventos que se ocurren en el servidor, y el Extended Events que fue
agregado en 2008 y cambia el profiler gracias a su baja signatura (la consumicin de recursos y la
influencia sobre el rendimiento del servidor).
Aparte de estos, se puede utilizar 2 tipos de Trigers (disparadores) para rastrear los cambios y las
actividades: DML Trigers pre definidos sobre las tablas y las vistas y que se inician por instrucciones
de actualizacin de datos (Select / Update / Delete), y DDL Triggers que se inician por cambios en los
objetos mismos (y no en los datos), en el nivel de la base de datos o del servidor.
Combinacin de CLR
A partir de 2005 se puede combinar fcilmente en SQL Server procedimientos, funciones, y funciones
de agregado desarrolladas en CLR. Hay que desarrollar el cdigo en una de las herramientas de
desarrollo de .NET, crear un archivo DLL, y combinarlo en el sistema. La ventaja de esta tecnologa es
sus capacidades en problemas que no son exclusivamente de bases de datos (manipulacin de datos), e
incluyen clculos complejos o manipulaciones textuales de cadenas.
Una herramienta para crear Bases de Datos Multidimensionales (no relacionales), que se puede
explorar mediante extracciones de datos en distintos niveles de agrupacin, profundizacin (Drill
Down) de una suma a sus detalles, y utilizacin de MDX (un lenguaje parecido a SQL, adaptado a
bases de datos multidimensionales).
Una herramienta para crear y dar formato a informes, otorgar derechos de contemplacin en ellos, y su
distribucin. Se puede contemplarlos con un Navegador web, y se puede exportarlos a archivos de
Excel, PDF, etc. los datos se extraen generalmente del almacn de datos o del OLAP.
Desventajas
Desde la versin de SQL Server 2012 las consultas escritas en T-SQL no son retrocompatible
con la versin de SQL Server 2008 o anteriores.
En versiones de 32 bits, SQL Server usa Address Windowing Extension (AWE) para hacer el
direccionamiento por encima de 4 GB. Esto le impide usar la administracin dinmica de
memoria, y slo le permite alojar un mximo de 64 GB de memoria compartida. Esta limitacin
es exclusiva de sistemas operativos 32 bits; en sistemas operativos 64 bits, la memoria mxima
que se puede direccionar en Edicin Estndar es 64 Gb y en Edicin Enterprise 4Tb
Vase tambin
Base de datos relacional
Sistema de gestin de base de datos
o Oracle
o Sybase ASE
o PostgreSQL
o Interbase
o Firebird
o MySQL
SQl Server