SQL Server como sistema de gestión de base de datos
Microsoft SQL Server es un sistema de gestión de base de datos (DBMS o RDBMS abreviada de «sistema de gestión de base de datos relacional»), desarrollado y comercializado por Microsoft.
Aunque en su origen fue co-desarrollado por Sybase y Microsoft, Ashton-Tate también se asoció con la primera versión, publicada en 1989, esta versión fue lanzada en plataformas Unix y OS / 2. Desde entonces, Microsoft ha llevado a la base de datos del sistema en Windows y está ahora solo compatible con este sistema.
En sus inicios, Sybase SQL Server hereda los principios del motor de Ingres originalmente desarrollados por la Universidad de Berkeley.
En 1994, la alianza entre las dos compañías se rompió, Microsoft ha lanzado la versión 6.0 y 6.5 sólo en la plataforma Windows NT.
Microsoft continuó comercializar el motor de base de datos como SQL Server
Mientras Sybase, para evitar confusiones, rebautizado Sybase SQL Server Sybase Adaptive Server Enterprise.
Microsoft SQL Server es ahora parte de la estrategia técnica para la base de datos de Microsoft. Motor MSDE, que es el SQL Server eventualmente debe reemplazar el motor Jet (el que administra las bases de datos Access) en aplicaciones como Exchange y Active Directory.
La versión 2005 de SQL Server fue lanzado 03 de noviembre 2005 junto con Visual Studio 2005 soporte para Windows Vista y Windows Server 2008 se ha añadido que a partir del Service Pack 2 (SP2). Actualmente SP3 está disponible. El optimizador ha sido completamente renovado, al igual que el motor relacional.
La versión 2008 de SQL Server (nombre de código Katmai) está disponible desde agosto de 2008 y se encuentra actualmente en el Service Pack.
La versión 2012 de SQL Server ha estado disponible desde abril de 2012.
Durante el desarrollo de la versión de 2005, el proyecto fue en su momento uno de los mayores proyectos de TI en el mundo. Más de 1.600 desarrolladores han participado en la codificación del núcleo y se estima que más de 10 000 personas trabajaban allí desde cerca y lejos (interacciones hombre-máquina, documentación, traducción).
Para consultas, SQL Server utiliza T-SQL (Transact-SQL), que es una implementación de SQL que soporta procedimientos almacenados, funciones definidas por el usuario o UDF (User Defined Function) y disparadores (trigger) . T-SQL es incompatible con el PL / SQL de Oracle.
Para la transferencia de datos, SQL Server utiliza el formato (Tabular Data Stream) TDS que se ha implementado en otras bases de datos (especialmente su homólogo Sybase) cuyas especificaciones son públicas. Una implementación de código abierto de un cliente TDS está disponible y constituye la base de clientes de SQL Server FreeTDS proyecto Mono.
SQL Server está equipado con dos motores, bases de datos relacional y una decisión, es posible consultar en MDX o DMX específica para el análisis de datos para la base de toma de decisiones.
SQL Server es una base de datos transaccional. Es capaz de preparar cambios en los datos de bases de datos y validar o cancelar de forma atómica, es decir «todo o nada». Esto garantiza la coherencia e integridad de la información almacenada en la base de datos. Durante una transacción, los conjuntos de datos que contienen las líneas de datos siendo modificados por esta transacción están bloqueados. Otros usuarios no tienen que esperar para que la transacción podrá modificar. En parte, los usuarios concurrentes también pueden leer los datos, incluso la modificación bloqueado por otra transacción, dependiendo del nivel de aislamiento elegido.
Los bloqueos se realizan en las líneas, páginas, extensiones, o tablas de bases de datos. Bloqueos de SQL Server sólo los recursos que necesita (líneas por defecto) y, según sea necesario puede bloquear en un nivel más alto (página o tabla). Esto libera a los usuarios a esperar a una transacción para actualizar las líneas de datos que no han sido afectadas por un cambio y reduce la cantidad de recursos consumidos. El bloqueo puede ser pesimista – usuarios en competencia no pueden tener acceso a las filas de la transacción – u optimista – en este caso los usuarios de la competencia pueden acceder a la última versión de las líneas. Para proporcionar esta función, SQL Server le permite controlar el nivel de aislamiento de seis maneras diferentes: los 4 niveles previstos por el estándar SQL (READ, READ COMMITTED, REPEATABLE READ y SERIALIZABLE) basado en el bloqueo pesimista y dos niveles «optimista «(instantánea y leer INSTANTÁNEA COMPROMETIDO). El nivel de aislamiento es dinámico, puede cambiar el curso de una sola transacción.
Las transacciones se registran en el registro de transacciones, cambios de datos están disponibles inmediatamente en la memoria y se escriben en los archivos de datos durante el puesto de control (checkpoint) lanzaron periódicamente y de forma asíncrona. Sin embargo, es posible forzar a través de un puesto de control en la instrucción CHECKPOINT.
El registro de transacciones registra los datos de manera diferente y esto en tres formas:
Modo completo: Todos los cambios se registran en el registro. Las operaciones llevadas a cabo en el que los datos se escriben en el disco se eliminarán del registro de transacciones en las copias de seguridad transaccionales.
Bloque de modo de registro en diario (BULK registrada) registra mínimamente (por ejemplo, la inserción de archivos de datos, construcción de índice.) operaciones reproducibles. Pero como en el modo completo, el registro será purgado por una copia de seguridad transaccional.
Simple Mode: modo de bloque diario de manera similar, excepto que el papel es auto servicio en cada punto de control.
En los modos de bloques completos y en diario, debe realizar una copia de seguridad del registro de transacciones periódicamente, de lo contrario se ve crecer indefinidamente. Y gracias a la copia de seguridad de transacciones puede restaurar la base de datos como lo fue en cualquier punto del tiempo a la segunda o transacción estrecha cercana (aunque con algunas limitaciones para el diario bloque de modo).
Las bases de datos están contenidas en los archivos físicamente. Los archivos suelen tener extensiones:
MDF (Principal Database File) para el primer archivo de datos
NDF (Siguiente Database File) para otros archivos de datos
LDF (registro de base de datos de archivos) para archivos de registro de transacciones
Los archivos se dividen en bloques de 8196 bytes llamados páginas, organizadas en grupos de ocho páginas consecutivas llamadas extensiones. Hasta la versión 2000, las líneas estaban limitados a un tamaño máximo de 8060 bytes (columnas LOB tipo (imagen, texto, ntext) no se cuenta en este límite). Desde la versión 2005 es posible superar con creces este límite y hasta 2 mil millones de bytes. Sin embargo es útil el tamaño de página es 8096 bytes.
Bases de datos sólo puede funcionar cuando todos los archivos están presentes.
Los archivos de datos se agrupan lógicamente en los grupos de archivos de base de datos que es el destino de los objetos de base de datos (tabla, índice.). Estos archivos y grupos de archivos se pueden copiar de forma independiente, aunque hay una interdependencia lógica entre objetos en un archivo y otro (integridad referencial en particular).