1
Microsoft SQL Server
Integrantes:
Paul Torres
Alejandro Pozo
Andy Landázuri
Jefferson Tupiza
Instituto Tecnológico Superior Cordillera
Desarrollo De Software
Segundo nivel “B”
Base De Datos
Ingeniero: Diego Román
26 de noviembre de 2023
2
Índice
Resumen...........................................................................................................................................5
Introducción....................................................................................................................................5
Desarrollo........................................................................................................................................5
Historia de Microsoft Windows SQL Server...............................................................................5
SQL Server 2012:........................................................................................................................6
SQL Server 2014:........................................................................................................................6
Microsoft SQL Server 2016:......................................................................................................6
SQL Server 2017:........................................................................................................................6
SQL Server 2019.........................................................................................................................6
Arquitectura y Estructura Interna de SQL Server.....................................................................7
1. Motor de Base de Datos:........................................................................................................7
2. Estructura de Almacenamiento:............................................................................................8
3. Jerarquía de Objetos:.............................................................................................................8
4. Administración de Transacciones:........................................................................................8
5. Memoria Caché:......................................................................................................................9
6. Plan de Ejecución de Consultas:............................................................................................9
7. Seguridad:................................................................................................................................9
8. Procedimientos almacenados y Triggers:.............................................................................9
Ventajas y desventajas de Windows SQL Server........................................................................9
Windows SQL Server Tiene dos tipos de servicios....................................................................11
3
Optimización de Consultas en SQL Server................................................................................13
Diseño de Índices:.....................................................................................................................13
Estadísticas Actualizadas:........................................................................................................13
Uso de Vistas Indexadas:..........................................................................................................13
Reescritura de Consultas:........................................................................................................13
Uso de Índices Incluidos:..........................................................................................................13
Evitar el Uso Excesivo de Funciones en el WHERE:............................................................13
Limitar el Uso de SELECT:.....................................................................................................14
Partitioning de Tablas:.............................................................................................................14
Configuración Adecuada de la Memoria y Configuración del Servidor:............................14
Monitoreo del Rendimiento:....................................................................................................14
Seguridad en Microsoft SQL Server...........................................................................................14
1. Autenticación y Autorización:.............................................................................................14
2. Roles:......................................................................................................................................15
3. Permisos:................................................................................................................................15
4. Esquema de Propietario:......................................................................................................15
5. Procedimientos almacenados de Sistema:..........................................................................15
6. Auditoría:..............................................................................................................................16
7. Cifrado:..................................................................................................................................16
8. Firewall y Conectividad Segura:.........................................................................................16
Herramientas de Desarrollo en SQL Server..............................................................................17
4
1. Azure Data Studio..............................................................................................................17
2. SQL Server Data Tools..................................................................................................17
3. Interfaz de la línea de comandos y herramientas de administración........................18
4. Extensión de SQL para Visual Studio Code................................................................18
Conclusiones:.................................................................................................................................19
Referencias....................................................................................................................................19
5
Resumen
Microsoft SQL Server se presenta como una solución completa y escalable para las necesidades
actuales y futuras de gestión de bases de datos empresariales. Su continua evolución y mejora demuestran
su relevancia continua en un mundo empresarial que demanda flexibilidad, rendimiento y capacidad de
adaptación a medida que avanza hacia el futuro digital.
Introducción
Microsoft SQL Server, la potente plataforma de gestión de bases de datos de Microsoft, ha sido
un catalizador fundamental en la transformación de datos en decisiones estratégicas. Desde su origen,
SQL Server ha evolucionado para satisfacer las crecientes demandas empresariales, destacándose por su
capacidad para almacenar, gestionar y analizar datos de manera eficiente. En esta breve introducción,
exploraremos cómo SQL Server se ha convertido en una herramienta esencial para la toma de decisiones
basada en datos, impulsando la eficiencia y la agilidad en entornos empresariales dinámicos.
Desarrollo
Historia de Microsoft Windows SQL Server
Versiones de SQL Server
SQL Server 2012:
Ofrecía nuevas características, como los índices columnstore, que pueden utilizarse para almacenar datos
en un formato basado en columnas para aplicaciones de almacenamiento de datos y análisis, y AlwaysOn
Availability Groups, una tecnología de alta disponibilidad y recuperación ante desastres.
SQL Server 2014:
Permite a los usuarios ejecutar aplicaciones de procesamiento de transacciones en línea (OLTP) contra los
datos almacenados en tablas optimizadas para memoria en lugar de las estándar basadas en disco. La
extensión del buffer pool, que integra la caché de memoria del buffer pool de SQL Server con una unidad
6
de estado sólido, otra característica diseñada para aumentar el rendimiento de E/S descargando los datos
de los discos duros convencionales.
Microsoft SQL Server 2016:
Se puso a disposición del público en junio de 2016. Añadió nuevas funciones para el ajuste del
rendimiento, el análisis operativo en tiempo real y la visualización de datos y la elaboración de informes
en dispositivos móviles, además de la compatibilidad con la nube híbrida que permite a los DBA ejecutar
bases de datos en una combinación de sistemas locales y servicios de nube pública para reducir los costos
de TI.
SQL Server 2017:
La compatibilidad con la ejecución de SQL Server en Linux trasladó la plataforma de la base de datos a
un sistema operativo de código abierto habitual en las empresas, lo que permitió a Microsoft realizar
posibles incursiones con clientes que no utilizan Windows o tienen entornos de servidores mixtos.
SQL Server 2019
SQL Server 2019 se mostró en septiembre de 2018, introduciendo nuevas características y ajustes
centrados en el rendimiento, la seguridad y el aumento del volumen de trabajo de los datos. Permite a los
usuarios unir contenedores de SQL Server, HDFS y Spark utilizando una nueva función de Big Data
Cluster también introduce la construcción de índices columnstore, la reconstrucción y el enmascaramiento
de datos estáticos. También es nueva la recuperación de datos acelerada, que realiza y deshace una fase de
rehacer en el número de secuencia de registro de página más antiguo.
Arquitectura y Estructura Interna de SQL Server.
SQL Server es un sistema de gestión de bases de datos relacional (RDBMS) desarrollado por
Microsoft. Su arquitectura y estructura interna son fundamentales para comprender cómo funciona y
cómo se gestionan los datos en este entorno. Esta es la descripción general de la arquitectura y estructura
interna de SQL Server:
7
1. Motor de Base de Datos:
- El motor de base de datos es el núcleo del sistema y se encarga de procesar las consultas,
administrar transacciones y gestionar la seguridad de la base de datos.
- Se divide en dos subcomponentes principales:
- Motor de Almacenamiento: Administra la creación, modificación y eliminación de las
páginas de datos en el disco.
- Motor de Consultas: Procesa las consultas T-SQL enviadas por los usuarios y devuelve los
resultados.
2. Estructura de Almacenamiento:
- Los datos se almacenan en páginas de 8 KB en el disco. Cada base de datos SQL Server se
compone de al menos dos archivos: el archivo de datos (.mdf) y el archivo de registro de transacciones
(.ldf).
- Los datos se organizan en estructuras como tablas, índices, vistas, procedimientos
almacenados, etc.
3. Jerarquía de Objetos:
- Instancia de SQL Server: Una instalación única de SQL Server que puede contener múltiples
bases de datos.
- Bases de Datos: Contienen tablas, índices, procedimientos almacenados, funciones y otros
objetos relacionados.
- Tablas: Almacenan los datos de la base de datos en filas y columnas.
- Índices: Mejoran el rendimiento de las consultas al proporcionar un acceso rápido a los datos.
8
4. Administración de Transacciones:
- SQL Server garantiza la atomicidad, consistencia, aislamiento y durabilidad (ACID) de las
transacciones.
- El registro de transacciones mantiene un registro de todas las operaciones de la base de datos
para garantizar la recuperación y la consistencia.
5. Memoria Caché:
- SQL Server utiliza la memoria RAM del sistema para almacenar en caché datos y consultas
frecuentes, lo que mejora el rendimiento al reducir la necesidad de acceder a los datos desde el disco.
6. Plan de Ejecución de Consultas:
- Antes de ejecutar una consulta, SQL Server crea un plan de ejecución que describe cómo se
realizará la operación.
- El Optimizador de Consultas evalúa diferentes planes y selecciona el más eficiente en función
de las estadísticas de la base de datos y otras consideraciones.
7. Seguridad:
- SQL Server gestiona la seguridad a través de roles, permisos y autenticación.
- Se pueden aplicar permisos a nivel de servidor, base de datos y objeto.
Ventajas y desventajas de Windows SQL Server
Tabla 1:Ventajas y Desventajas de Windows SQL Server
Ventajas Desventajas
Rendimiento Optimizado: SQL Server está Costo: La licencia y el soporte para Microsoft SQL
diseñado para ofrecer un rendimiento óptimo, Server pueden ser costosos, especialmente en
con capacidades de optimización de consultas, comparación con algunas alternativas de código
indexación eficiente y herramientas de abierto.
9
rendimiento incorporadas. Requisitos de Recursos: Puede tener requisitos de
Escalabilidad: SQL Server es escalable, lo que hardware y recursos significativos, especialmente en
significa que puede manejar grandes entornos con grandes cantidades de datos o en sistemas
cantidades de datos y crecer con las que requieren un alto rendimiento.
necesidades de la empresa. Es adecuado tanto Complejidad: Algunas funciones avanzadas y
para pequeñas empresas como para grandes configuraciones de SQL Server pueden resultar
corporativos. complejas para usuarios no expertos, lo que podría
Integración con Herramientas Microsoft: Se aumentar la curva de aprendizaje.
integra de manera efectiva con otras Limitaciones en Versiones Gratuitas: Las versiones
herramientas y tecnologías de Microsoft, como gratuitas y de menor costo de SQL Server (como SQL
.NET Framework, Visual Studio y Microsoft Server Express) tienen limitaciones en términos de
Azure, facilitando el desarrollo y la capacidad de almacenamiento y características
implementación de aplicaciones. avanzadas.
Seguridad Avanzada: Ofrece robustas medidas Compatibilidad con Otras Plataformas: Aunque SQL
de seguridad, incluyendo autenticación, Server puede integrarse bien con las tecnologías de
autorización y cifrado de datos. Cumple con Microsoft, su compatibilidad con algunas plataformas
estándares de seguridad de la industria y es no Microsoft puede ser menos fluida en comparación
compatible con auditorías y políticas de con soluciones más agnósticas.
seguridad personalizadas. Mantenimiento y Actualizaciones: La gestión y
Servicios de Alta Disponibilidad: Proporciona aplicación de actualizaciones y parches puede ser un
opciones para alta disponibilidad, como la proceso que requiere tiempo y puede afectar la
replicación, el clustering y la recuperación ante disponibilidad del sistema durante el mantenimiento.
desastres, garantizando la continuidad del Complejidad de la Migración: Migrar datos desde
negocio. otros sistemas de gestión de bases de datos o incluso
Inteligencia Empresarial (BI): Ofrece entre diferentes versiones de SQL Server puede ser un
10
herramientas de Business Intelligence proceso complejo.
integradas para el análisis de datos, la creación Requerimientos de Licencia: El modelo de licencias de
de informes y la toma de decisiones basada en SQL Server puede ser complejo y puede requerir una
datos. cuidadosa planificación para garantizar la conformidad
Compatibilidad con Estándares: Cumple con y optimizar los costos.
estándares de la industria como SQL y XML, Competencia de Alternativas de Código Abierto: En el
lo que facilita la integración con otras ámbito de bases de datos, hay alternativas de código
plataformas y aplicaciones. abierto que ofrecen soluciones sólidas a un costo
Gestión Centralizada: Incluye herramientas de potencialmente más bajo, como PostgreSQL o
gestión centralizadas, como SQL Server MySQL.
Management Studio (SSMS), que permiten a Dependencia de Tecnologías Microsoft: La integración
los administradores gestionar bases de datos de estrecha con otras tecnologías de Microsoft puede
manera eficiente. limitar la flexibilidad en entornos que desean utilizar
herramientas o plataformas no vinculadas a Microsoft.
(itsoftware, 2023)
Windows SQL Server Tiene dos tipos de servicios
Tabla 2: Tipos de servicios
VERSIÓN GRATUITA VERSIÓN PAGO
Limitaciones de Almacenamiento: SQL Sin Limitaciones de Tamaño: Las ediciones de pago no
Server Express tiene limitaciones en cuanto tienen restricciones de tamaño de base de datos, lo que
al tamaño de la base de datos, lo que puede las hace adecuadas para grandes conjuntos de datos
ser un factor restrictivo para grandes empresariales.
conjuntos de datos. Rendimiento y Escalabilidad Mejorados: Ofrece un
11
Recursos de Hardware: Hay limitaciones en mejor rendimiento y escalabilidad, con capacidades para
el uso de recursos de hardware, como la manejar mayores cargas de trabajo y utilizar más
cantidad de memoria utilizada y el número recursos de hardware.
de núcleos de CPU. Herramientas de Administración Complejas: Incluye
Herramientas de Administración: Incluye un herramientas de administración más completas, como
subconjunto de herramientas de SQL Server Management Studio, que brindan un
administración en comparación con las conjunto completo de funcionalidades para administrar
ediciones de pago, como SQL Server bases de datos.
Management Studio Express. Funcionalidades Avanzadas: Proporciona acceso a
Escalabilidad Limitada: Aunque es características avanzadas, como la replicación avanzada,
adecuado para aplicaciones más pequeñas y la alta disponibilidad, la virtualización y capacidades
entornos de desarrollo, puede no ser tan avanzadas de inteligencia empresarial.
escalable como las versiones de pago para
grandes aplicaciones empresariales.
(microsoft, 2023)
Optimización de Consultas en SQL Server
Diseño de Índices:
Asegúrate de tener índices adecuados en las columnas que se utilizan con frecuencia en
las cláusulas WHERE y JOIN.
Evita tener demasiados índices, ya que esto puede afectar el rendimiento en operaciones
de escritura.
Uso de Vistas Indexadas:
Las vistas indexadas pueden mejorar el rendimiento al pre calcular y almacenar los
resultados de una vista. Esto es especialmente útil si la vista se utiliza con frecuencia.
12
Reescritura de Consultas:
Examina las consultas y busca oportunidades para reescribirlas de manera más eficiente.
A veces, pequeños cambios en la lógica de la consulta pueden mejorar significativamente el
rendimiento.
Uso de Índices Incluidos:
Índices incluidos pueden cubrir una consulta, lo que significa que contienen todas las
columnas necesarias para ejecutar una consulta sin necesidad de buscar en la tabla.
Evitar el Uso Excesivo de Funciones en el WHERE:
El uso de funciones en la cláusula WHERE puede dificultar que el optimizador de
consultas utilice índices. Intenta evitar funciones en las columnas de búsqueda si es posible.
Limitar el Uso de SELECT:
Evita utilizar SELECT * en tus consultas. Especifica solo las columnas que necesitas.
Esto reduce la cantidad de datos que SQL Server debe recuperar y puede mejorar el rendimiento.
Configuración Adecuada de la Memoria y Configuración del Servidor:
Asegúrate de que la configuración de la memoria se ajuste a las necesidades de tu
sistema. SQL Server utiliza la memoria para almacenar datos en caché y mejorar el rendimiento.
Configura adecuadamente otros parámetros del servidor, como el nivel de aislamiento de
transacciones, para adaptarse a los requisitos de la aplicación.
Monitoreo del Rendimiento:
Utiliza herramientas de monitoreo para evaluar el rendimiento de tus consultas. Esto
puede incluir el uso del Profiler de SQL Server, Extended Events, y la revisión de planes de
ejecución.
13
Seguridad en Microsoft SQL Server
La seguridad en Microsoft SQL Server es crucial para proteger la integridad de los datos y
garantizar que solo usuarios autorizados tengan acceso a la información. Aquí hay una descripción de los
conceptos clave relacionados con la seguridad en SQL Server:
1. Autenticación y Autorización:
Autenticación: Es el proceso de verificar la identidad de un usuario o una aplicación que intenta
acceder al servidor. SQL Server admite varios métodos de autenticación, como Windows
Authentication (integra la autenticación con el sistema operativo Windows) y SQL Server
Authentication (nombre de usuario y contraseña específicos de SQL Server).
Autorización: Después de la autenticación, SQL Server determina qué acciones específicas puede
realizar el usuario o la aplicación. Esto se basa en roles, permisos y reglas que se han configurado
en el servidor.
2. Roles:
Los roles son colecciones lógicas de usuarios o grupos que comparten un conjunto común de
permisos. SQL Server tiene roles predefinidos (como db_datareader, db_datawriter, etc.) y
permite la creación de roles personalizados para adaptarse a los requisitos específicos de
seguridad.
3. Permisos:
Los permisos son derechos que se conceden a usuarios o roles para realizar acciones específicas
en objetos de la base de datos (tablas, vistas, procedimientos almacenados, etc.).
Los permisos incluyen operaciones como SELECT, INSERT, UPDATE, DELETE, EXECUTE,
entre otros.
14
4. Esquema de Propietario:
Cada objeto en SQL Server pertenece a un esquema, y los esquemas están asociados a usuarios o
roles. El esquema de propietario de un objeto determina quién tiene control sobre ese objeto y sus
permisos por defecto.
5. Procedimientos almacenados de Sistema:
SQL Server proporciona procedimientos almacenados de sistema que permiten gestionar la
seguridad. Por ejemplo, los procedimientos almacenados sp_adduser y sp_addrolemember se
utilizan para agregar usuarios y agregar miembros a roles, respectivamente.
6. Auditoría:
SQL Server permite realizar auditorías para realizar un seguimiento de eventos específicos, como
intentos de inicio de sesión fallidos, cambios en permisos y otras actividades relacionadas con la
seguridad. La información de auditoría se almacena en registros de auditoría que se pueden
revisar para realizar un seguimiento de las actividades en el servidor.
7. Cifrado:
SQL Server proporciona funciones de cifrado para proteger datos sensibles. Se pueden usar
funciones de cifrado de columna o de celda para cifrar datos a nivel de columna o a nivel de
celda.
8. Firewall y Conectividad Segura:
SQL Server puede configurarse para permitir o denegar conexiones desde ubicaciones específicas
a través de reglas de firewall. Además, se puede habilitar la conexión segura mediante el uso de
certificados para cifrar la comunicación entre el cliente y el servidor.
15
Herramientas de Desarrollo en SQL Server.
1. Azure Data Studio
Azure Data Studio es una herramienta
multiplataforma que permite desarrollar y
administrar bases de datos en SQL Server,
Azure SQL Database y Azure SQL Data
Warehouse también ofrece una experiencia de
editor moderna para administrar datos en
varias fuentes con IntelliSense rápido,
Ilustración 1: Azure data Studio
fragmentos de código, integración de control
de código fuente y un terminal integrado. Accede, configura, supervisa y administra la familia de Azure
Data de plataformas de datos locales y en la nube en Windows, MacOS y Linux con esta herramienta
gráfica.
2. SQL Server Data Tools
Compila, depura, mantén y refactoriza
fácilmente bases de datos en Visual Studio. SQL
Server Data Tools (SSDT) introduce un modelo
declarativo que abarca todas las fases del
desarrollo de base de datos, lo que permite la
integración continua y el desarrollo de tus bases de Ilustración 2: SQL Server Data Tools
datos. Trabaja con un proyecto de base de datos o directamente con una instancia de base de datos
conectada en Azure SQL Database, Azure SQL Data Warehouse y SQL Server, en Windows o Linux, en
local o en cualquier nube
16
3. Interfaz de la línea de comandos y herramientas de administración
Automatiza numerosas tareas de desarrollo
de base de datos en Windows y Linux utilizando el
símbolo del sistema o scripts, incluido el uso de
SqlPackage y SQLCMD para ejecutar instrucciones
T-SQL, o creando un archivo. DACPAC de
instantánea de base de datos desde una instancia
activa de SQL Server o Azure SQL Database. Ilustración 3: Interfaz de la línea de comandos y
herramientas de administración
4. Extensión de SQL para Visual Studio
Code
Habilita un bucle interno T-SQL en tu editor
de código favorito para Windows, Linux o macOS.
Conecta tu base de datos SQL que se ejecuta en
Windows o Linux, en local o en cualquier nube.
Accede a características de edición de código, como
IntelliSense y finalización de palabras clave, para
escribir código T-SQL, ejecutar consultas, ver
resultados y guardar en formatos CSV o JSON de
Ilustración 4: Extensión de SQL para Visual Studio
Code
forma más eficiente.
Conclusiones:
En conclusión, Microsoft SQL Server se destaca como una plataforma integral que aborda de
manera efectiva los aspectos críticos de seguridad, rendimiento y disponibilidad. La flexibilidad y
las opciones de configuración permiten adaptar SQL Server a una amplia variedad de entornos y
17
necesidades empresariales. La gestión adecuada, el monitoreo constante y la implementación de
las mejores prácticas son clave para aprovechar al máximo estas capacidades y garantizar un
rendimiento óptimo y una alta disponibilidad de los datos.
Comprender la arquitectura y estructura interna de SQL Server es esencial para diseñar,
implementar y mantener bases de datos eficientes y seguras. La optimización del rendimiento, la
gestión de transacciones y la seguridad son aspectos clave de la administración de bases de datos
en este entorno.
La configuración de la seguridad en SQL Server debe ser una parte integral del diseño y la
administración de bases de datos para garantizar la protección adecuada de los datos y prevenir
accesos no autorizados. Además, es importante seguir las mejores prácticas de seguridad y
mantenerse al tanto de las actualizaciones y parches de seguridad proporcionados por Microsoft.
Referencias
Administracion de sistemas. (08 de 10 de 2013). Administracion de sistemas. Obtenido de
https://administraciondesistemas.com/historia-microsoft-windows-server/#windows-nt-4-0-
server-1996
computerweekly. (s.f.). computerweekly. Obtenido de
https://www.computerweekly.com/es/definicion/Microsoft-SQL-Server
dbamemories. (11 de 07 de 2011). dbamemories. Obtenido de
https://dbamemories.wordpress.com/2011/07/11/arquitectura-de-bases-de-datos-sql-server/
#:~:text=La%20arquitectura%20interna%20de%20las,cada%20una%20de%20estas
%20estructuras.
imagar. (27 de 07 de 2021). Obtenido de imagar: https://www.imagar.com/blog-desarrollo-web/ventajas-
y-desventajas-de-windows-server/
18
itsoftware. (19 de 07 de 2023). itsoftware. Obtenido de https://itsoftware.com.co/content/que-es-sql-
server-su-historia-ventajas-y-beneficios/#:~:text=La%20historia%20de%20SQL%20Server,de
%20SQL%20Server%20en%201993.
microsoft. (2022). Obtenido de microsoft.com: https://www.microsoft.com/es-es/windows-server?
ranMID=43674&ranEAID=FE4O7wtxe6g&ranSiteID=FE4O7wtxe6g-
vAg1KGImjj0gH5CSIiEsCQ&epi=FE4O7wtxe6g-
vAg1KGImjj0gH5CSIiEsCQ&irgwc=1&OCID=AIDcmm549zy227_aff_7795_1243925&tduid=
%28ir__obcowaru2ckfd2qj1wtavqylov2xbv9np
microsoft. (22 de 11 de 2023). microsoft. Obtenido de
https://learn.microsoft.com/es-es/sql/sql-server/editions-and-components-of-sql-server-2022?
view=sql-server-ver16
Master, W. (2021, septiembre 10). Optimizar consultas SQL con estos 6 consejos. gpsos.es;
GPSOS Gestión de Proyectos y Soluciones Open Source.
https://www.gpsos.es/2021/09/optimizar-consultas-sql-con-estos-6-consejos/
Pollack, E. (2019, septiembre 30). Técnicas de optimización de consultas en SQL Server:
consejos y trucos de aplicación. SQL Shack - articles about database auditing, server performance, data
recovery, and more; SQL Shack.
https://www.sqlshack.com/es/tecnicas-de-optimizacion-de-consultas-en-sql-server-
consejos-y-trucos-de-aplicacion/
Sergio. (2010, febrero 10). Blog de Linube. Blog de Linube; Linube.
https://linube.com/blog/virtualizando-sql-server-2008-sobre-hyper-v-r2/
(S/f). Codigofacilito.com. Recuperado el 25 de noviembre de 2023, de
19
https://codigofacilito.com/articulos/tips-rendimiento-sql
Salvatierra Lucano, C. G. (2010). Desarrollo de una aplicación software para visualización de
líneas de tendencia de redes industriales
erez, M. (2011). Microsoft SQL Server 2008 R2. Motor de base de datos y administración. RC
Libros.
20