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

Microsoft SQL Server

Microsoft SQL Server es un sistema de gestión de base de datos relacional desarrollado por Microsoft. Se ha lanzado desde 1989 y actualmente está en su versión 2017. Ofrece varias ediciones como Enterprise, Standard y Express, y se puede usar en Windows, Linux y Docker. El lenguaje principal para interactuar con las bases de datos es T-SQL.

Cargado por

Sergio Ortega
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
60 vistas

Microsoft SQL Server

Microsoft SQL Server es un sistema de gestión de base de datos relacional desarrollado por Microsoft. Se ha lanzado desde 1989 y actualmente está en su versión 2017. Ofrece varias ediciones como Enterprise, Standard y Express, y se puede usar en Windows, Linux y Docker. El lenguaje principal para interactuar con las bases de datos es T-SQL.

Cargado por

Sergio Ortega
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

Microsoft SQL Server

Ir a la navegaciónIr a la búsqueda
Microsoft SQL Server
www.microsoft.com/sql/
Tipo de programa sistema de gestión de bases de datos relacionales
software privativo
Desarrollador Microsoft
Lanzamiento 24 de abril de 1989
Última versión estable SQL Server 2017 (14.0)
Octubre de 2017
Género RDBMS
Programado en C, C++
Sistema operativo Microsoft Windows, Linux12
Licencia Microsoft EULA
[editar datos en Wikidata]
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,23 y a partir de 2017 para Docker también.4

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).

Índice
1 Versiones
2 Características
3 Programación
3.1 T-SQL
3.2 Cliente nativo de SQL
4 Ediciones y servicios
4.1 Enterprise
4.2 Developer
4.3 Standard
4.4 Express
4.5 SQL Azure
5 Interfaz de usuario
6 Servicios
7 Capacidades y herramientas básicas
7.1 Bases de datos
7.2 Tablas fijas y temporales
7.3 Tipos de datos
7.4 Vistas
7.5 Procedimientos almacenados
7.6 Funciones definidas por el usuario
7.7 Consultas distribuidas
7.8 Transacciones
7.9 El optimizador
8 Privilegios y seguridad de datos
9 Otras herramientas de servicio
9.1 Respaldos y recuperaciones
9.2 Compresión
9.3 Replicación, alta disponibilidad, y recuperación de desastres
9.4 El agente y la programación de tareas
9.5 Mantenimiento
9.6 Service broker
9.7 Enviar correos electrónicos
9.8 Full text search (Búsqueda de textos completos)
9.9 Rastrear
9.10 Combinación de CLR
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 Véase también
12 Referencias
13 Enlaces externos
Versiones
Historia de versiones5
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.06 Sphinx
- 1999 SQL Server 7.0
OLAP Tools Plato
8.0 2000 SQL Server 20007 Shiloh
8.0 2003 SQL Server 2000
64-bit Edition Liberty
9.0 2005 SQL Server 20058 Yukon
10.0 2008 SQL Server 20089 Katmai
10.25 2010 SQL Azure DB CloudDatabase
10.50 2010 SQL Server 2008 R210 Kilimanjaro
11.0 2012 SQL Server 201211 Denali
12.0 2015 SQL Server 201412 SQL14 (antes Hekaton)
13.0 2016 SQL Server 2016 SQL16
14.0 2017 SQL Server 2017 vNext 2017
15.0 2019 SQL Server 2019 Seattle
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
packes con mejoras y correcciones de bugs, y hotfixes por problemas urgentes en el
sistema de seguridad o bugs críticos.

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 sólo 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 sólo 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
Artículo principal: 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 versió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. 13A
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 a 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.14

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 envió 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
SQL Browser - El "oyente" dedicado a comandos enviados y redirigirlos a su destino
SSIS Server - La operación del SSIS (la herramienta de ETL)
SSAS Server - La operación del SSAS (la herramienta de OLAP)
SSRS Server - La operación del SSRS (la herramienta de informes)
Capacidades y herramientas básicas
Bases de datos
En cada instalación 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 están
almacenados en tablas.

Estas bases de datos, creadas por parte de los usuarios, incluyen básicamente 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 recuperación
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 además del principal (con el sufijo ndf) por consideraciones de eficiencia,
partición de carga de trabajo entre los discos rígidos, etc.

Las bases de datos del sistema:

master - Todos los procedimientos, funciones y tablas del sistema que están
utilizadas por parte de todas las bases de datos y que están instaladas
automáticamente, tanto como las que han sido creado por parte de los
administradores del sistema. Además, todas las definiciones en respecto a la
seguridad a nivel del servidor, están almacenadas en esta base de datos.
msdb - Almacenamiento de las tareas del agente, los códigos de CLR combinados en el
sistema, los paquetes de SSIS, y otros más.
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 más estaba definido explícitamente.
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).
Tablas fijas y temporales
Desde la perspectiva lógica, los datos almacenados en las bases de datos en tablas,
que mediante ellas se implementa la teoría 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 físicamente en la base de datos tempdb, y se borran automáticamente en caso
de desconexión de la sesión o de la conexión al servidor, depende en el tipo de la
tabla temporal.

Desde la perspectiva física, el sistema divide los archivos de la base datos en


Extents de 64 KB, y cada cual a ocho páginas de 8 KB. Generalmente, cada Extent se
asigna a una tabla o un índice, menos las tablas pequeñas; y cada página se asigna
siempre a una tabla específica. El sistema es responsable del aumento de los
archivos, de acuerdo con los ajustes del usuario, y de asignar Extents y páginas 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
búsqueda de datos en las tablas (como los ficheros en las librerías), en
ordenarlas, y la definición de claves primarias.

Entre las tablas se puede crear una relación de uno a muchos.

Aparte de las tablas de los usuarios, hay tablas que almacenan meta data: datos
sobre el sistema mismo, los diferentes objetos, los derechos, estadísticas sobre el
rendimiento del sistema (DMV), etc.

Tipos de datos
Para cada columna en una tabla y a cada variable o parámetro, se define un tipo de
datos que sean almacenados en él, entre ellos:

Numeros: Números enteros y no enteros en distintos tamaños, y en diferentes niveles


de precisión; y auto incremento opcional.
Textos: Cadenas de distintas longitudes, y distintas capacidades de apoyar
distintas lenguas.
Fechas: Fechas en distintos niveles de precisión, desde días completos hasta
fracciones menores de un segundo, que apoyan fechas a partir del principio del
siglo XX o del calendario gregoriano, y la capacidad de diferenciar entre distintos
usos de horarios.
XML: Datos textuales (cadenas) que representan conjuntos estándares de datos
(estándar SGML).
Datos binarios: Datos almacenados como datos binarios (bits y bytes), que
posibilitan el almacenamiento de archivos gráficos, etc.
Geography: Representación estándar de información geográfica, tales como estados,
zonas geográficas, localidades; y las cálculos como distancias.
Geometry: Representación estándar de puntas, líneas, superficies en el plano; y las
relaciones entre ellas.
Hierarchid: Representación estándar de información jerárquica como lista de
materiales, relaciones de subordinación entre empleados, etc.
Vistas
Las vistas representan generalmente comandos de extracción de datos, que se
almacenan sin los datos (que están almacenados en las tablas). Esta opción nos
posibilita crear extracciones complejas o estándares, almacenarlas como vistas, y
utilizar las vistas sin la necesidad de escribir de nuevo los comandos o mantener
los códigos 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 través de una vista no están almacenados en un objeto distinto
de la base de datos. Lo que está almacenado en la base de datos es una instrucción
SELECT. El resultado de la instrucción 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 sólo vea las filas que guardan su trabajo en una tabla de
seguimiento de actividad laboral.
• Restringir el acceso del usuario a columnas específicas. Por ejemplo, permitir
que los empleados que no trabajen en el departamento de nóminas vean las columnas
de nombre, oficina, teléfono y departamento de la tabla de empleados, pero no
permitir que vean las columnas con los datos de salario u otra información
personal.
• Combinar columnas de varias tablas de forma que parezcan una sola tabla.
• Agregar información en lugar de presentar los detalles. Por ejemplo, presentar la
suma de una columna o el valor máximo o mínimo de una columna.

Las vistas se crean definiendo la instrucción SELECT que recupera los datos
presentados por la vista. Las tablas de datos a las que hace referencia la
instrucción 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 modificación afecte sólo 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 parámetros. Por ejemplo, procedimiento que obtiene número de año como
parámetro, y actualiza una tabla de resumen de ventas, con las ventas de los
agentes en el dicho año, basada en la tabla de registro de ventas.

Los procedimientos almacenados pueden facilitar en gran medida la administración de


la base de datos y la visualización de información sobre dicha base de datos y sus
usuarios. Los procedimientos almacenados son una colección 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 aplicación y permiten
variables declaradas por el usuario, ejecución condicional y otras funciones
eficaces de programación. Los procedimientos almacenados pueden contener flujo de
programas, lógica y consultas a la base de datos. Pueden aceptar parámetros,
proporcionar resultados de parámetros, devolver conjuntos de resultados
individuales o múltiples 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 programación modular.
Puede crear el procedimiento una vez, almacenarlo en la base de datos, y llamarlo
desde el programa el número de veces que desee. Un especialista en programación de
bases de datos puede crear procedimientos almacenados, que luego será posible
modificar independientemente del código fuente del programa. Facilitan el
mantenimiento.
• Permiten una ejecución más rápida.
En situaciones en las que se necesita una gran cantidad de código Transact-SQL, o
si las operaciones se realizan varias veces, los procedimientos almacenados pueden
ser más rápidos que los lotes de código Transact-SQL. Los procedimientos son
analizados y optimizados en el momento de su creación, y es posible utilizar una
versión del procedimiento que se encuentra en la memoria después de que se ejecute
por primera vez. Las instrucciones de Transact-SQL que se envían 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 tráfico de red.
Una operación que necesite centenares de líneas de código Transact-SQL puede
realizarse mediante una sola instrucción que ejecute el código en un procedimiento,
en vez de enviar cientos de líneas de código 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.

Funciones definidas por el usuario


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
cálculos, y devuelven un resultado al usuario o al programa que les ejecutó. Tanto
como los procedimientos, incluyen códigos de TSQL, y pueden ser ejecutados con
parámetros.

Las funciones devuelven un valor o un conjunto de valores.

Las funciones definidas por el usuario se crean con la instrucción CREATE FUNCTION,
se modifican con la instrucción ALTER FUNCTION y se quitan con la instrucción 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 función, y solo así podrán utilizarla en una instrucción
de Transact-SQL. Para crear o modificar tablas con referencias a funciones
definidas por el usuario en la restricción CHECK, la cláusula DEFAULT o la
definición de una columna calculada, también debe tener permiso REFERENCES para las
funciones. Los errores de Transact-SQL que producen la cancelación de una
instrucción y continúan con la siguiente instrucción del módulo, como
desencadenadores o procedimientos almacenados, se tratan de forma distinta dentro
de una función. En las funciones, estos errores hacen que se detenga la ejecución
de la función. Esto hace que se cancele la función que invocó la instrucción. Una
función definida por el usuario no tiene ninguno o tiene varios parámetros de
entrada y devuelve un valor escalar o una tabla. Una función puede tener un máximo
de 1024 parámetros de entrada. Cuando un parámetro de la función toma un valor
predeterminado, debe especificarse la palabra clave DEFAULT al llamar a la función
para poder obtener el valor predeterminado. Este comportamiento es diferente del de
los parámetros con valores predeterminados de los procedimientos almacenados, para
los cuales omitir el parámetro implica especificar el valor predeterminado. Las
funciones definidas por el usuario no admiten parámetros de salida.

Consultas distribuidas
Las consultas distribuidas tienen acceso a datos de varios orígenes, que pueden
estar almacenados en un equipo o en equipos distintos. Microsoft SQL Server 2000
admite las consultas distribuidas a través de OLE DB Las consultas distribuidas
proporcionan a los usuarios de SQL Server acceso a:
• Datos distribuidos almacenados en múltiples instancias SQL Server.
• Datos heterogéneos almacenados en varios orígenes 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 orígenes
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 orígenes de
datos de capacidad y sofisticación diversas. Siempre que el software propietario de
los datos los expone en un conjunto de filas tabular a través del proveedor OLE DB,
los datos se podrán 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 admitía Microsoft Access. Esta
funcionalidad se encuentra ahora integrada en SQL Server con OLE DB como interfaz
para los datos externos.
Transacciones
Una transacción es un conjunto de comandos, que se está ejecutado completamente o
no ejecutado en absoluto: todo o nada. Por ejemplo, si una suma de dinero fue
trasladada de una cuenta bancaria a otra, y hay que actualizar ambas cuentas sobre
el depósito y la retirada; es obligatorio que ambas cuentas se actualicen juntas, o
ninguna (en caso que una de las actualizaciones falle); para evitar consecuencias
inconsistentes de un depósito sin ninguna retirada, o viceversa. Por lo tanto, una
transacción es una secuencia de operaciones realizadas como una sola unidad lógica
de trabajo. Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas
como propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), para ser
calificada como transacción:

Atomicidad
Una transacción debe ser una unidad atómica de trabajo, tanto si se realizan todas
sus modificaciones en los datos, como si no se realiza ninguna de ellas.

Coherencia
Cuando finaliza, una transacción 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 transacción 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 transacción.

Aislamiento
Las modificaciones realizadas por transacciones simultáneas se deben aislar de las
modificaciones llevadas a cabo por otras transacciones simultáneas. Una transacción
ve los datos en el estado en que estaban antes de que otra transacción simultánea
los modificara o después de que la segunda transacción 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
después de realizar las transacciones originales.

Durabilidad
Una vez concluida una transacción, sus efectos son permanentes en el sistema. Las
modificaciones persisten aún 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 decisión" de como cada
comando se ejecutará, tanto que la ejecución será lo más eficiente, o por lo menos
bastante eficiente (es decir, bastante eficiente para evitar seguir buscando otra
solución, que aún que sea más eficiente, el precio de la búsqueda adicional
"costará" más 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 cómo (a contrario de los lenguajes
imperativos, y por lo tanto el optimizador juega un papel protagónico, que de
acuerdo con las estadísticas que el sistema almacena sobre las distribuciones de
los datos en las tablas, los índices, y reglas internas; toma la decisión adecuada.

También podría gustarte