fbpx
Wikipedia

Microsoft SQL Server

Microsoft SQL Server es un sistema de gestión de base de datos relacional, desarrollado por la empresa Microsoft.

Microsoft SQL Server
Parte de sistema de gestión de bases de datos relacionales
Información general
Tipo de programa sistema de gestión de bases de datos relacionales
Desarrollador Microsoft
Lanzamiento inicial 24 de abril de 1989
Licencia Microsoft EULA
Información técnica
Programado en C, C++
Archivos legibles
Archivos editables
Enlaces
Sitio web oficial

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,[2][3]​ 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).

Versiones

Historia de versiones[5]
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.0[6] Sphinx
- 1999 SQL Server 7.0
OLAP Tools
Plato
8.0 2000 SQL Server 2000[7] Shiloh
8.0 2003 SQL Server 2000
64-bit Edition
Liberty
9.0 2005 SQL Server 2005[8] Yukon
10.0 2008 SQL Server 2008[9] Katmai
10.25 2010 SQL Azure DB CloudDatabase
10.50 2010 SQL Server 2008 R2[10] Kilimanjaro
11.0 2012 SQL Server 2012[11] Denali
12.0 2015 SQL Server 2014[12] 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 packs con mejoras y correcciones de bugs, y hotfixes por problemas urgentes en el sistema de seguridad o bugs críticos.

Características

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 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. [13]​ 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.[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:

  1. Numeros: Números enteros y no enteros en distintos tamaños, y en diferentes niveles de precisión; y auto incremento opcional.
  2. Textos: Cadenas de distintas longitudes, y distintas capacidades de apoyar distintas lenguas.
  3. 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.
  4. XML: Datos textuales (cadenas) que representan conjuntos estándares de datos (estándar SGML).
  5. Datos binarios: Datos almacenados como datos binarios (bits y bytes), que posibilitan el almacenamiento de archivos gráficos, etc.
  6. Geography: Representación estándar de información geográfica, tales como estados, zonas geográficas, localidades; y las cálculos como distancias.
  7. Geometry: Representación estándar de puntas, líneas, superficies en el plano; y las relaciones entre ellas.
  8. 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 solo 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 solo 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.

Privilegios y seguridad de datos

Para conectarse al SQL Server, se necesita un Login (usuario a nivel del servidor). Cuando la política de seguridad se define como Windows Authentication y el servidor se combina con las definiciones del Domain, los Logins se definen en el Active Directory. Cuando la definición es SQL Server Authentication los logins (usuario y contraseña) se definen en el SQL Server mismo. Consecuentemente, en el primer caso hay que identificarse con nombre y contraseña solamente al conectarse a la red, y luego se conecta automáticamente a todos los servidores que son Windows Authentication (con el Login global); y en el segundo caso hay que identificarse al conectarse a cada servidor de SQL Server Authentication (cada vez con un Login local).

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 (además 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 específica), cada cual con privilegios específicos a un rol específico; y cada usuario asociado con uno de estos Roles obtiene los privilegios asociados con él. Además, 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 aún no existen (Deny).

Otras herramientas de servicio

Adicionalmente a sus capacidades elementarías como herramienta de gestión de bases de datos relacionales (crear tablas, definir las relaciones entre ellas, gestión de transacciones, crear índices etc, SQL Server apoya una lista que aumenta de otras herramientas de servicio; aparte de herramientas de terceros que cambian o que completan lo que existe.

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 recuperación (Recovery Model) predefinido a la base de datos; y una recuperación completa o a un punto de tiempo. Aparte de un respaldo de la base de datos se puede respaldarlos a través de un guion (con o sin los datos). A partir de 2008, se puede comprimir los archivos de respaldo.

Compresión

A partir de 2008 se añadió la opción de compresión que posibilita comprimir el tamaño físico de las tablas y los índices, y utilizar más eficientemente el volumen de los discos rígidos y reducir operaciones de IO (lo que aumenta la carga del CPU). Como ya ha sido mencionado, se puede comprimir también los archivos de respaldo.

Replicación, alta disponibilidad, y recuperación de desastres

Algunas herramientas posibilitan crear réplicas parciales o completos de las bases de datos, mejorar la disponibilidad, y recuperar de desastres; aparte de la opción de respaldar y recuperar las bases de datos, una opción 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 réplica 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 réplica.

Entre dichas herramientas se puede mencionar la replicación que posibilita crear una réplica sincronizada de la base de datos, el Mirroring que ejecuta en el servidor de espejo cada actualización que se ejecuta en el servidor de origen, Log Shipping que posibilita almacenar una copia sincronizada a través de archivos de registro (Log) con todas las actualizaciones en el servidor de origen, y las herramientas de alta disponibilidad y recuperación de desastres (HADR, desde 2012) que solucionan problemas de Mirroring en relación con el tiempo de reacción de los fallos técnicos y la disponibilidad de las copias en tiempos de paz.

El agente y la programación de tareas

El agente es el servicio encargado de la programación de tareas, y se encarga de ejecutarlas independientemente. Generalmente el ejecuta tareas de mantenimiento, tareas complejas de ETL, respaldos, etc.

Mantenimiento

Con el fin de mejorar el rendimiento del sistema hay que mantener las estadísticas, utilizadas por el optimizador, organizar los archivos físicos, etc; y se utilizan herramientas dedicadas para estos propósitos, que se ejecutan periódicamente por tareas programadas, y de una manera coordinada con las tareas de ETL y de respaldo.

Service broker

Una tecnología que fue agregada en 2005 que implementa arquitectura orientada a servicios, y que posibilita ejecuciones asíncronos: primero que nada para enviar mensajes entre distintas aplicaciones que se ejecutan simultáneamente, pero también para ejecutar procedimientos asíncronamente, en la manera de dispara y olvida - un procedimiento que se ejecuta en una sesión diferente de la sesión que lo inició, y ambos procedimientos siguen ejecutado independientemente uno del otro.

Enviar correos electrónicos

SQL Server tiene la capacidad de enviar correos electrónicos a través del código. Esta funcionalidad se utiliza generalmente para enviar alertas sobre problemas en el sistema (por ejemplo si el uso de la CPU aumentó hasta un umbral predefinido o si el proceso ETL falló), pero también cuando el proceso terminó exitosamente.

Full text search (Búsqueda de textos completos)

Una herramienta que posibilita indexar columnas textuales como textos y no solo como cadenas; y ejecutar búsquedas 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 (recuperación 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 consumición de recursos y la influencia sobre el rendimiento del servidor).

Aparte de estos, se puede utilizar 2 tipos de Triggers (disparadores) para rastrear los cambios y las actividades: DML Triggers pre definidos sobre las tablas y las vistas y que se inician por instrucciones de actualización 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.

Combinación de CLR

A partir de 2005 se puede combinar fácilmente en SQL Server procedimientos, funciones, y funciones de agregado desarrolladas en CLR. Hay que desarrollar el código en una de las herramientas de desarrollo de .NET, crear un archivo DLL, y combinarlo en el sistema. La ventaja de esta tecnología es sus capacidades en problemas que no son exclusivamente de bases de datos (manipulación de datos), e incluyen cálculos complejos o manipulaciones textuales de cadenas.

Herramientas de inteligencia empresarial

Una instalación típica incluye también las herramientas de Inteligencia empresarial (en inglés, bussiness intelligence o BI):

SSIS (SQL Server Integration Services)

Una herramienta de ETL que posibilita la extracción de datos de distintos orígenes (no solo SQL Server), la transformación de dichos datos, y la carga (generalmente pero no obligatoriamente a almacén de datos).

SSAS (SQL Server Analysis Services)

Una herramienta para crear bases de datos multidimensionales (no relacionales), que se puede explorar mediante extracciones de datos en distintos niveles de agrupación, profundización (Drill Down) de una suma a sus detalles, y utilización de MDX (un lenguaje parecido a SQL, adaptado a bases de datos multidimensionales).

SSRS (SQL Server Reporting Services)

Una herramienta para crear y dar formato a informes, otorgar derechos de contemplación en ellos, y su distribución. Se puede contemplarlos con un Navegador web, y se puede exportarlos a archivos de Excel, PDF, etc. los datos se extraen generalmente del almacén de datos o del OLAP.

Desventajas

  • Desde la versión de SQL Server 2012 las consultas escritas en T-SQL no son retrocompatible con la versión 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 administración dinámica de memoria, y solo le permite alojar un máximo de 64 GB de memoria compartida. Esta limitación es exclusiva de sistemas operativos 32 bits; en sistemas operativos 64 bits, la memoria máxima que se puede direccionar en la Edición Estándar es 64 Gb y en la Edición Enterprise 4Tb

Véase también

Referencias

  1. Guthrie, Scott (7 de marzo de 2016). (html). Microsoft (en inglés). Archivado desde el original el 7 de marzo de 2016. Consultado el 3 de marzo de 2019. 
  2. Domínguez, Andres Zamora (25 de octubre de 2017). (html). Pandora FMS (en inglés). Archivado desde el original el 24 de noviembre de 2018. Consultado el 24 de noviembre de 2018. «On December 28, 2016 – feast of the Holy Innocents, that special day when Spanish speakers make jokes throughout the day – it was announced the acquisition of a “Platinum” type membership by the company Microsoft ® in the Linux Foundation and the launch of Microsoft SQL Server ®.» 
  3. Lerner, Reuve M. (html). Geek Guide (en inglés). Archivado desde el original el 3 de agosto de 2017. Consultado el 24 de noviembre de 2018. «But, even the most skeptical open-source fan must admit that Microsoft has changed during the last few years. It has released many developer tools and libraries as open source, and it has started to include Linux as a supported platform for some of its software.» 
  4. (html). Microsoft (en inglés). Archivado desde el original el 1 de mayo de 2017. Consultado el 24 de noviembre de 2018. «Bring the industry-leading performance and security of SQL Server to Windows, Linux, and Docker containers.» 
  5. SQL Server Development History
  6. What's New in Microsoft SQL Server 7
  7. What's New in Microsoft SQL Server 2000
  8. Novedades de SQL Server 2005
  9. Novedades (SQL Server 2008)
  10. What's New in Microsoft SQL Server 2008 R2
  11. Novedades de SQL Server 2012
  12. Novedades de SQL Server 2014
  13. Características compatibles con las ediciones de SQL Server 2014
  14. Connection Strings


Enlaces externos

  • Página web de Microsoft SQL Server
  • Microsoft SQL Server Developers
  • Libros en pantalla
  • Microsoft SQL Server 2017
  • Revista de bases de datos Database Journal (en inglés)
  • Página de descarga de Microsoft SQL Server 2012


  •   Datos: Q215819
  •   Multimedia: Microsoft SQL Server

microsoft, server, sistema, gestión, base, datos, relacional, desarrollado, empresa, microsoft, parte, sistema, gestión, bases, datos, relacionalesinformación, generaltipo, programasistema, gestión, bases, datos, relacionalesdesarrolladormicrosoftlanzamiento, . Microsoft SQL Server es un sistema de gestion de base de datos relacional desarrollado por la empresa Microsoft Microsoft SQL ServerParte de sistema de gestion de bases de datos relacionalesInformacion generalTipo de programasistema de gestion de bases de datos relacionalesDesarrolladorMicrosoftLanzamiento inicial24 de abril de 1989LicenciaMicrosoft EULAInformacion tecnicaProgramado enC C Archivos legibles variosSQL Server Reporting Services Report Definition LanguageSQL Server Reporting Services Report Definition Language UTF 8 SQL Server Report Model ProjectMicrosoft SQL Server execution PlanSQL Server Integration Services ConfigurationSQL Server Integration Services packageSQL Server Data Tools Database infoSQL Server Data Tools Project UTF 8 SQL Server Data Tools Project ASCII Microsoft SQL Server Backup compressed Archivos editables variosSQL Server Reporting Services Report Definition LanguageSQL Server Reporting Services Report Definition Language UTF 8 SQL Server Report Model ProjectMicrosoft SQL Server execution PlanSQL Server Integration Services ConfigurationSQL Server Integration Services packageSQL Server Data Tools Database infoSQL Server Data Tools Project UTF 8 SQL Server Data Tools Project ASCII Microsoft SQL Server Backup compressed EnlacesSitio web oficial editar datos en Wikidata El lenguaje de desarrollo utilizado por linea de comandos o mediante la interfaz grafica de Management Studio es Transact SQL TSQL una implementacion del estandar ANSI del lenguaje SQL utilizado para manipular y recuperar datos DML crear tablas y definir relaciones entre ellas DDL Dentro de los competidores mas destacados de SQL Server estan Oracle MariaDB MySQL PostgreSQL SQL Server ha estado tradicionalmente disponible solo para sistemas operativos Windows de Microsoft pero desde 2016 esta disponible para GNU Linux 2 3 y a partir de 2017 para Docker tambien 4 Puede ser configurado para utilizar varias instancias en el mismo servidor fisico la primera instalacion lleva generalmente el nombre del servidor y las siguientes nombres especificos con un guion invertido entre el nombre del servidor y el nombre de la instalacion Indice 1 Versiones 2 Caracteristicas 3 Programacion 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 basicas 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 Compresion 9 3 Replicacion alta disponibilidad y recuperacion de desastres 9 4 El agente y la programacion de tareas 9 5 Mantenimiento 9 6 Service broker 9 7 Enviar correos electronicos 9 8 Full text search Busqueda de textos completos 9 9 Rastrear 9 10 Combinacion 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 Vease tambien 12 Referencias 13 Enlaces externosVersiones EditarHistoria de versiones 5 Version Ano Nombre de la version Nombre clave1 0 OS 2 1989 SQL Server 1 0 SQL4 21 WinNT 1993 SQL Server 4 21 SEQUEL6 0 1995 SQL Server 6 0 SQL956 5 1996 SQL Server 6 5 Hydra7 0 1998 SQL Server 7 0 6 Sphinx 1999 SQL Server 7 0OLAP Tools Plato8 0 2000 SQL Server 2000 7 Shiloh8 0 2003 SQL Server 200064 bit Edition Liberty9 0 2005 SQL Server 2005 8 Yukon10 0 2008 SQL Server 2008 9 Katmai10 25 2010 SQL Azure DB CloudDatabase10 50 2010 SQL Server 2008 R2 10 Kilimanjaro11 0 2012 SQL Server 2012 11 Denali12 0 2015 SQL Server 2014 12 SQL14 antes Hekaton 13 0 2016 SQL Server 2016 SQL1614 0 2017 SQL Server 2017 vNext 201715 0 2019 SQL Server 2019 SeattleEl codigo fuente original de SQL Server que fue utilizado en las versiones previas a la version 7 0 habria sido comprado de Sybase pero fue actualizado en las versiones 7 0 y 2000 y reescrito en la version 2005 Generalmente cada 2 3 anos una nueva version 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 criticos Caracteristicas EditarSoporte de transacciones Soporta procedimientos almacenados Incluye tambien un entorno grafico de administracion que permite el uso de comandos DDL y DML graficamente Permite trabajar en modo cliente servidor donde la informacion y datos se alojan en el servidor y los terminales o clientes de la red solo acceden a la informacion Ademas permite administrar informacion de otros servidores de datos Este sistema incluye una version reducida llamada MSDE con el mismo motor de base de datos pero orientado a proyectos mas pequenos que en sus versiones 2005 y 2008 pasa a ser el SQL Express Edition que es una edicion que se distribuye en forma gratuita Es comun desarrollar proyectos completos empleando Microsoft SQL Server y Microsoft Access a traves 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 traves de la implementacion de aplicaciones de dos capas mediante el uso de formularios Windows En el manejo de SQL mediante lineas de comando se utiliza el SQLCMD osql o PowerShell Para el desarrollo de aplicaciones mas complejas tres o mas capas Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo entre ellas NET pero el servidor solo esta disponible para Sistemas Operativos El tipo NUMERIC fue mejorado para ser usado como identificador de columna a partir de la version 2008 R2 Programacion EditarT SQL Editar Articulo principal T SQL T SQL Transact SQL es el principal medio de interaccion con el Servidor el cual permite realizar las operaciones claves en SQL Server incluyendo la creacion y modificacion de esquemas de base de datos insercion y modificacion de datos en la base de datos asi como la administracion del servidor como tal Esto se realiza mediante el envio de sentencias en T SQL y declaraciones que son procesadas por el servidor y los resultados o errores regresan a la aplicacion cliente Cliente nativo de SQL Editar Cliente Nativo de SQL es la biblioteca de acceso a datos para los clientes de Microsoft SQL Server version 2005 en adelante Implementa de forma nativa soporte para las caracteristicas de SQL Server incluyendo la ejecucion 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 asincronas las notificaciones de consulta soporte para cifrado asi como recibir varios conjuntos de resultados en una sola sesion de base de datos Cliente Nativo de SQL se utiliza como extension de SQL Server plug ins para otras tecnologias de acceso de datos incluyendo ADO u OLE DB Cliente Nativo de SQL puede tambien usarse directamente pasando por alto las capas de acceso de datos Ediciones y servicios EditarCada version de SQL Server posee distintas versiones con distintos precios para cada version que dependen tambien en la configuracion fisica del servidor 13 A continuacion se presentan las versiones principales Enterprise Editar Contempla todas las caracteristicas deshabilitadas en otras ediciones Es el tipo de version con mas privilegios existente en el mercado Developer Editar Una edicion con las mismas caracteristicas que la Enterprise con el fin de ser instalada solamente en ambiente de desarrollo y no en produccion Si se desarrolla para una edicion Standard hay que tener en cuenta las caracteristicas deshabilitadas para esta version Standard Editar Una version limitada segun la configuracion del servidor y sus caracteristicas disenada para servidores inferiores Por ejemplo en la version 2012 la edicion Enterprise soporta un numero ilimitado de procesadores y la agregacion de memoria y CPUs en caliente sin la interrupcion del servicio o del servidor mientras la edicion Standard esta limitada a 16 procesadores y no soporta la agregacion en caliente Express Editar Una version gratuita que posibilita la creacion de bases de datos limitadas con caracteristicas basicas con el fin de apoyar aplicaciones que necesiten una solucion simple para almacenamiento de una cantidad limitada de datos o usuarios que sus recursos y necesidades son limitados En la version 2012 esta edicion puede utilizar un maximo de 1 GB de memoria y almacenar no mas de 10GB funciona en servidores con un numero maximo de cuatro procesadores Estas limitaciones se mantienen en la version 2014 4 cores 1GB ram y 10Gb por base de datos SQL Azure Editar Es una version de SQL Server en la nube que permite pagar mensualmente por el servicio sin la necesidad de mantener un servidor fisico On Premise La empresa paga solo por el servicio y el servicio es manejado a traves de torres de servidores en distintos lugares en el mundo Con SQL Azure no es necesario instalar mantener o actualizar un servidor fisico 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 conexion a Internet Durante un tiempo el servicio fue ampliado con la opcion 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 fisico local aunque fisicamente no esta accesible y se puede diferenciar entre la opcion original que esta denominada PAAS Platform as a Service Plataforma como un Servicio y la nueva opcion 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 EditarSQL Server proporciona unas interfaces que han cambiado durante los anos de los cuales los mas conocidos son las interfaces graficas que estan utilizadas como herramienta de desarrollo estandar a los desarrolladores y administradores La interfaz grafica hasta 2005 incluyo el Enterprise Manager con una vista de arbol de los distintos objetos y con la capacidad de manejarlos y el Query analyzer como interfaz textual para ejecutar comandos de TSQL En la version 2005 las dos herramientas se unificaron a una el SQL Server Management Studio SSMS y a partir de 2008 fue incluida la opcion de trabajar con el Visual Studio la interfaz estandar de desarrollo de Microsoft a los distintos lenguajes BI etc Otra interfaz opcional es la utilizacion de la Linea de comandos con herramientas como SQLCmd ISQL OSQL que posibilita la ejecucion de scripts y procesamiento por lotes Desde 2008 se puede desarrollar con SQLCmd SQL Command a traves del SSMS sin interconectarse al interfaz textual de Windows Otra opcion en el ambito de scripts es la utilizacion del lenguaje de scripts Powershell de Microsoft Aparte de las interfaces estandares de SQL Server se puede ejecutar comandos de TSQL con herramientas de conexion como ODBC y OLE DB 14 Servicios EditarA contrario de sistemas de bases de datos como Microsoft Access que son pasivas y contienen un archivo a cual hay que conectar y la ejecucion de los comandos se lleva a cabo en el cliente la computadora de usuario en SQL Server hay numero de servicios software que estan ejecutadas en la memoria del servidor por parte del sistema y por lo tanto aprovechan las capacidades del servidor que es mas potente que los clientes previenen congestion en la red y pueden programar tareas que corran aunque el cliente no esta conectado Los servicios principales SQL Server El motor del sistema SQL Agent Ejecucion de tareas Jobs scripts programados y envio de advertencias en caso de carga pesada e irregulares en el sistema Full Text Filter Daemon Launcher La utilizacion de los indices especiales del Full text search por busqueda textual avanzada SQL Browser El oyente dedicado a comandos enviados y redirigirlos a su destino SSIS Server La operacion del SSIS la herramienta de ETL SSAS Server La operacion del SSAS la herramienta de OLAP SSRS Server La operacion del SSRS la herramienta de informes Capacidades y herramientas basicas EditarBases de datos Editar En cada instalacion 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 estan almacenados en tablas Estas bases de datos creadas por parte de los usuarios incluyen basicamente 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 recuperacion seleccionado se puede acumular en el archivo de registro todos los cambios en la base de datos desde el ultimo respaldo Se puede crear un conjunto de archivos de datos ademas del principal con el sufijo ndf por consideraciones de eficiencia particion de carga de trabajo entre los discos rigidos etc Las bases de datos del sistema master Todos los procedimientos funciones y tablas del sistema que estan utilizadas por parte de todas las bases de datos y que estan instaladas automaticamente tanto como las que han sido creado por parte de los administradores del sistema Ademas todas las definiciones en respecto a la seguridad a nivel del servidor estan almacenadas en esta base de datos msdb Almacenamiento de las tareas del agente los codigos de CLR combinados en el sistema los paquetes de SSIS y otros mas 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 mas estaba definido explicitamente 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 Editar Desde la perspectiva logica los datos almacenados en las bases de datos en tablas que mediante ellas se implementa la teoria 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 fisicamente en la base de datos tempdb y se borran automaticamente en caso de desconexion de la sesion o de la conexion al servidor depende en el tipo de la tabla temporal Desde la perspectiva fisica el sistema divide los archivos de la base datos en Extents de 64 KB y cada cual a ocho paginas de 8 KB Generalmente cada Extent se asigna a una tabla o un indice menos las tablas pequenas y cada pagina se asigna siempre a una tabla especifica El sistema es responsable del aumento de los archivos de acuerdo con los ajustes del usuario y de asignar Extents y paginas a las tablas A las tablas se puede crear indices Los indices se almacenan junto a la tabla Non Clustered Index o son la tabla en si Clustered Index Los indices asisten en la busqueda de datos en las tablas como los ficheros en las librerias en ordenarlas y la definicion de claves primarias Entre las tablas se puede crear una relacion 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 estadisticas sobre el rendimiento del sistema DMV etc Tipos de datos Editar Para cada columna en una tabla y a cada variable o parametro se define un tipo de datos que sean almacenados en el entre ellos Numeros Numeros enteros y no enteros en distintos tamanos y en diferentes niveles de precision y auto incremento opcional Textos Cadenas de distintas longitudes y distintas capacidades de apoyar distintas lenguas Fechas Fechas en distintos niveles de precision desde dias 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 estandares de datos estandar SGML Datos binarios Datos almacenados como datos binarios bits y bytes que posibilitan el almacenamiento de archivos graficos etc Geography Representacion estandar de informacion geografica tales como estados zonas geograficas localidades y las calculos como distancias Geometry Representacion estandar de puntas lineas superficies en el plano y las relaciones entre ellas Hierarchid Representacion estandar de informacion jerarquica como lista de materiales relaciones de subordinacion entre empleados etc Vistas Editar Las vistas representan generalmente comandos de extraccion de datos que se almacenan sin los datos que estan almacenados en las tablas Esta opcion nos posibilita crear extracciones complejas o estandares almacenarlas como vistas y utilizar las vistas sin la necesidad de escribir de nuevo los comandos o mantener los codigos 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 traves de una vista no estan almacenados en un objeto distinto de la base de datos Lo que esta almacenado en la base de datos es una instruccion SELECT El resultado de la instruccion 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 solo vea las filas que guardan su trabajo en una tabla de seguimiento de actividad laboral Restringir el acceso del usuario a columnas especificas Por ejemplo permitir que los empleados que no trabajen en el departamento de nominas vean las columnas de nombre oficina telefono y departamento de la tabla de empleados pero no permitir que vean las columnas con los datos de salario u otra informacion personal Combinar columnas de varias tablas de forma que parezcan una sola tabla Agregar informacion en lugar de presentar los detalles Por ejemplo presentar la suma de una columna o el valor maximo o minimo de una columna Las vistas se crean definiendo la instruccion SELECT que recupera los datos presentados por la vista Las tablas de datos a las que hace referencia la instruccion 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 modificacion afecte solo a una de las tablas base de la vista Procedimientos almacenados Editar Los procedimientos son scripts de comandos de TSQL que pueden ser ejecutados con distintos parametros Por ejemplo procedimiento que obtiene numero de ano como parametro y actualiza una tabla de resumen de ventas con las ventas de los agentes en el dicho ano basada en la tabla de registro de ventas Los procedimientos almacenados pueden facilitar en gran medida la administracion de la base de datos y la visualizacion de informacion sobre dicha base de datos y sus usuarios Los procedimientos almacenados son una coleccion 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 aplicacion y permiten variables declaradas por el usuario ejecucion condicional y otras funciones eficaces de programacion Los procedimientos almacenados pueden contener flujo de programas logica y consultas a la base de datos Pueden aceptar parametros proporcionar resultados de parametros devolver conjuntos de resultados individuales o multiples 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 programacion modular Puede crear el procedimiento una vez almacenarlo en la base de datos y llamarlo desde el programa el numero de veces que desee Un especialista en programacion de bases de datos puede crear procedimientos almacenados que luego sera posible modificar independientemente del codigo fuente del programa Facilitan el mantenimiento Permiten una ejecucion mas rapida En situaciones en las que se necesita una gran cantidad de codigo Transact SQL o si las operaciones se realizan varias veces los procedimientos almacenados pueden ser mas rapidos que los lotes de codigo Transact SQL Los procedimientos son analizados y optimizados en el momento de su creacion y es posible utilizar una version del procedimiento que se encuentra en la memoria despues de que se ejecute por primera vez Las instrucciones de Transact SQL que se envian 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 trafico de red Una operacion que necesite centenares de lineas de codigo Transact SQL puede realizarse mediante una sola instruccion que ejecute el codigo en un procedimiento en vez de enviar cientos de lineas de codigo 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 Editar 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 calculos y devuelven un resultado al usuario o al programa que les ejecuto Tanto como los procedimientos incluyen codigos de TSQL y pueden ser ejecutados con parametros Las funciones devuelven un valor o un conjunto de valores Las funciones definidas por el usuario se crean con la instruccion CREATE FUNCTION se modifican con la instruccion ALTER FUNCTION y se quitan con la instruccion DROP FUNCTION Todos los nombres de funciones completos database name owner name function name definidos por el usuario deben ser unicos 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 funcion y solo asi podran utilizarla en una instruccion de Transact SQL Para crear o modificar tablas con referencias a funciones definidas por el usuario en la restriccion CHECK la clausula DEFAULT o la definicion de una columna calculada tambien debe tener permiso REFERENCES para las funciones Los errores de Transact SQL que producen la cancelacion de una instruccion y continuan con la siguiente instruccion del modulo como desencadenadores o procedimientos almacenados se tratan de forma distinta dentro de una funcion En las funciones estos errores hacen que se detenga la ejecucion de la funcion Esto hace que se cancele la funcion que invoco la instruccion Una funcion definida por el usuario no tiene ninguno o tiene varios parametros de entrada y devuelve un valor escalar o una tabla Una funcion puede tener un maximo de 1024 parametros de entrada Cuando un parametro de la funcion toma un valor predeterminado debe especificarse la palabra clave DEFAULT al llamar a la funcion para poder obtener el valor predeterminado Este comportamiento es diferente del de los parametros con valores predeterminados de los procedimientos almacenados para los cuales omitir el parametro implica especificar el valor predeterminado Las funciones definidas por el usuario no admiten parametros de salida Consultas distribuidas Editar Las consultas distribuidas tienen acceso a datos de varios origenes que pueden estar almacenados en un equipo o en equipos distintos Microsoft SQL Server 2000 admite las consultas distribuidas a traves de OLE DB Las consultas distribuidas proporcionan a los usuarios de SQL Server acceso a Datos distribuidos almacenados en multiples instancias SQL Server Datos heterogeneos almacenados en varios origenes 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 origenes de datos externos Puesto que las consultas distribuidas usan OLE DB como interfaz subyacente estas tienen acceso a los sistemas DBMS relacionales tradicionales con procesadores de consultas SQL asi como a los datos administrados por origenes de datos de capacidad y sofisticacion diversas Siempre que el software propietario de los datos los expone en un conjunto de filas tabular a traves del proveedor OLE DB los datos se podran 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 admitia Microsoft Access Esta funcionalidad se encuentra ahora integrada en SQL Server con OLE DB como interfaz para los datos externos Transacciones Editar Una transaccion es un conjunto de comandos que se esta 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 deposito 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 deposito sin ninguna retirada o viceversa Por lo tanto una transaccion es una secuencia de operaciones realizadas como una sola unidad logica de trabajo Una unidad logica de trabajo debe exhibir cuatro propiedades conocidas como propiedades ACID atomicidad coherencia aislamiento y durabilidad para ser calificada como transaccion AtomicidadUna transaccion debe ser una unidad atomica de trabajo tanto si se realizan todas sus modificaciones en los datos como si no se realiza ninguna de ellas CoherenciaCuando finaliza una transaccion 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 transaccion para mantener la integridad de todos los datos Todas las estructuras internas de datos como indices de arbol B o listas doblemente vinculadas deben estar correctas al final de la transaccion AislamientoLas modificaciones realizadas por transacciones simultaneas se deben aislar de las modificaciones llevadas a cabo por otras transacciones simultaneas Una transaccion ve los datos en el estado en que estaban antes de que otra transaccion simultanea los modificara o despues de que la segunda transaccion 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 despues de realizar las transacciones originales DurabilidadUna vez concluida una transaccion sus efectos son permanentes en el sistema Las modificaciones persisten aun en el caso de producirse un error del sistema SQL Server tiene una capacidad limitada de anidar transacciones El optimizador Editar El optimizador es una parte del software que toma la decision de como cada comando se ejecutara tanto que la ejecucion sera lo mas eficiente o por lo menos bastante eficiente es decir bastante eficiente para evitar seguir buscando otra solucion que aun que sea mas eficiente el precio de la busqueda adicional costara mas 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 como a contrario de los lenguajes imperativos y por lo tanto el optimizador juega un papel protagonico que de acuerdo con las estadisticas que el sistema almacena sobre las distribuciones de los datos en las tablas los indices y reglas internas toma la decision adecuada Privilegios y seguridad de datos EditarPara conectarse al SQL Server se necesita un Login usuario a nivel del servidor Cuando la politica de seguridad se define como Windows Authentication y el servidor se combina con las definiciones del Domain los Logins se definen en el Active Directory Cuando la definicion es SQL Server Authentication los logins usuario y contrasena se definen en el SQL Server mismo Consecuentemente en el primer caso hay que identificarse con nombre y contrasena solamente al conectarse a la red y luego se conecta automaticamente a todos los servidores que son Windows Authentication con el Login global y en el segundo caso hay que identificarse al conectarse a cada servidor de SQL Server Authentication cada vez con un Login local A nivel de la base de datos el usuario se identifica como un User que esta relacionado generalmente al Login que es a nivel del servidor y los privilegios al User existen solamente en el ambito de la base de datos ademas 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 especifica cada cual con privilegios especificos a un rol especifico y cada usuario asociado con uno de estos Roles obtiene los privilegios asociados con el Ademas 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 aun no existen Deny Otras herramientas de servicio EditarAdicionalmente a sus capacidades elementarias como herramienta de gestion de bases de datos relacionales crear tablas definir las relaciones entre ellas gestion de transacciones crear indices etc SQL Server apoya una lista que aumenta de otras herramientas de servicio aparte de herramientas de terceros que cambian o que completan lo que existe Respaldos y recuperaciones Editar 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 recuperacion Recovery Model predefinido a la base de datos y una recuperacion completa o a un punto de tiempo Aparte de un respaldo de la base de datos se puede respaldarlos a traves de un guion con o sin los datos A partir de 2008 se puede comprimir los archivos de respaldo Compresion Editar A partir de 2008 se anadio la opcion de compresion que posibilita comprimir el tamano fisico de las tablas y los indices y utilizar mas eficientemente el volumen de los discos rigidos y reducir operaciones de IO lo que aumenta la carga del CPU Como ya ha sido mencionado se puede comprimir tambien los archivos de respaldo Replicacion alta disponibilidad y recuperacion de desastres Editar Algunas herramientas posibilitan crear replicas parciales o completos de las bases de datos mejorar la disponibilidad y recuperar de desastres aparte de la opcion de respaldar y recuperar las bases de datos una opcion 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 replica 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 replica Entre dichas herramientas se puede mencionar la replicacion que posibilita crear una replica sincronizada de la base de datos el Mirroring que ejecuta en el servidor de espejo cada actualizacion que se ejecuta en el servidor de origen Log Shipping que posibilita almacenar una copia sincronizada a traves de archivos de registro Log con todas las actualizaciones en el servidor de origen y las herramientas de alta disponibilidad y recuperacion de desastres HADR desde 2012 que solucionan problemas de Mirroring en relacion con el tiempo de reaccion de los fallos tecnicos y la disponibilidad de las copias en tiempos de paz El agente y la programacion de tareas Editar El agente es el servicio encargado de la programacion de tareas y se encarga de ejecutarlas independientemente Generalmente el ejecuta tareas de mantenimiento tareas complejas de ETL respaldos etc Mantenimiento Editar Con el fin de mejorar el rendimiento del sistema hay que mantener las estadisticas utilizadas por el optimizador organizar los archivos fisicos etc y se utilizan herramientas dedicadas para estos propositos que se ejecutan periodicamente por tareas programadas y de una manera coordinada con las tareas de ETL y de respaldo Service broker Editar Una tecnologia que fue agregada en 2005 que implementa arquitectura orientada a servicios y que posibilita ejecuciones asincronos primero que nada para enviar mensajes entre distintas aplicaciones que se ejecutan simultaneamente pero tambien para ejecutar procedimientos asincronamente en la manera de dispara y olvida un procedimiento que se ejecuta en una sesion diferente de la sesion que lo inicio y ambos procedimientos siguen ejecutado independientemente uno del otro Enviar correos electronicos Editar SQL Server tiene la capacidad de enviar correos electronicos a traves del codigo Esta funcionalidad se utiliza generalmente para enviar alertas sobre problemas en el sistema por ejemplo si el uso de la CPU aumento hasta un umbral predefinido o si el proceso ETL fallo pero tambien cuando el proceso termino exitosamente Full text search Busqueda de textos completos Editar Una herramienta que posibilita indexar columnas textuales como textos y no solo como cadenas y ejecutar busquedas 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 Editar Estas herramientas incluyen el Trace que posibilita rastrear actividades con el fin de mantener cargas y fallos y seguridad de datos recuperacion 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 consumicion de recursos y la influencia sobre el rendimiento del servidor Aparte de estos se puede utilizar 2 tipos de Triggers disparadores para rastrear los cambios y las actividades DML Triggers pre definidos sobre las tablas y las vistas y que se inician por instrucciones de actualizacion 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 Combinacion de CLR Editar A partir de 2005 se puede combinar facilmente en SQL Server procedimientos funciones y funciones de agregado desarrolladas en CLR Hay que desarrollar el codigo en una de las herramientas de desarrollo de NET crear un archivo DLL y combinarlo en el sistema La ventaja de esta tecnologia es sus capacidades en problemas que no son exclusivamente de bases de datos manipulacion de datos e incluyen calculos complejos o manipulaciones textuales de cadenas Herramientas de inteligencia empresarial Editar Una instalacion tipica incluye tambien las herramientas de Inteligencia empresarial en ingles bussiness intelligence o BI SSIS SQL Server Integration Services Editar Una herramienta de ETL que posibilita la extraccion de datos de distintos origenes no solo SQL Server la transformacion de dichos datos y la carga generalmente pero no obligatoriamente a almacen de datos SSAS SQL Server Analysis Services Editar Una herramienta para crear bases de datos multidimensionales no relacionales que se puede explorar mediante extracciones de datos en distintos niveles de agrupacion profundizacion Drill Down de una suma a sus detalles y utilizacion de MDX un lenguaje parecido a SQL adaptado a bases de datos multidimensionales SSRS SQL Server Reporting Services Editar Una herramienta para crear y dar formato a informes otorgar derechos de contemplacion en ellos y su distribucion Se puede contemplarlos con un Navegador web y se puede exportarlos a archivos de Excel PDF etc los datos se extraen generalmente del almacen de datos o del OLAP Desventajas EditarDesde la version de SQL Server 2012 las consultas escritas en T SQL no son retrocompatible con la version 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 administracion dinamica de memoria y solo le permite alojar un maximo de 64 GB de memoria compartida Esta limitacion es exclusiva de sistemas operativos 32 bits en sistemas operativos 64 bits la memoria maxima que se puede direccionar en la Edicion Estandar es 64 Gb y en la Edicion Enterprise 4TbVease tambien EditarBase de datos relacional Sistema de gestion de base de datos Oracle Sybase ASE PostgreSQL Interbase Firebird MySQL SQL Server Agent SQL SlammerReferencias Editar Guthrie Scott 7 de marzo de 2016 Announcing SQL Server on Linux html Microsoft en ingles Archivado desde el original el 7 de marzo de 2016 Consultado el 3 de marzo de 2019 a b Dominguez Andres Zamora 25 de octubre de 2017 Microsoft SQL Server can now be run on Linux GNU html Pandora FMS en ingles Archivado desde el original el 24 de noviembre de 2018 Consultado el 24 de noviembre de 2018 On December 28 2016 feast of the Holy Innocents that special day when Spanish speakers make jokes throughout the day it was announced the acquisition of a Platinum type membership by the company Microsoft in the Linux Foundation and the launch of Microsoft SQL Server Lerner Reuve M SQL Server on Linux html Geek Guide en ingles Archivado desde el original el 3 de agosto de 2017 Consultado el 24 de noviembre de 2018 But even the most skeptical open source fan must admit that Microsoft has changed during the last few years It has released many developer tools and libraries as open source and it has started to include Linux as a supported platform for some of its software Get ready for SQL Server 2017 html Microsoft en ingles Archivado desde el original el 1 de mayo de 2017 Consultado el 24 de noviembre de 2018 Bring the industry leading performance and security of SQL Server to Windows Linux and Docker containers SQL Server Development History What s New in Microsoft SQL Server 7 What s New in Microsoft SQL Server 2000 Novedades de SQL Server 2005 Novedades SQL Server 2008 What s New in Microsoft SQL Server 2008 R2 Novedades de SQL Server 2012 Novedades de SQL Server 2014 Caracteristicas compatibles con las ediciones de SQL Server 2014 Connection StringsEnlaces externos EditarPagina web de Microsoft SQL Server Microsoft SQL Server Developers Libros en pantalla Microsoft SQL Server 2017 Revista de bases de datos Database Journal en ingles Pagina de descarga de Microsoft SQL Server 2012 Datos Q215819 Multimedia Microsoft SQL ServerObtenido de https es wikipedia org w index php title Microsoft SQL Server amp oldid 136363129, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos