Presentación
Introducción
Desde hace ya algunas versiones, SQL Server ha alcanzado una cierta madurez en lo referente a la gestión de una base de datos relacional, y las evoluciones más destacadas se sitúan en la parte de BI aunque también en la integración de SQL Server en Windows Azure (estos dos puntos son objeto de este libro).
Sin embargo, esto no significa en ningún caso que no existen mejoras a nivel del propio SQL Server.
Primero, en lo referente a la distribución, la instalación de la herramienta cliente SQL Server Management Studio está completamente desligada de la instalación del motor de la base de datos, lo cual es algo bueno dado que el puesto donde se ejecuta SQL Server Management Studio no es, en general, el mismo sobre el que funciona la base de datos.
Como complemento a la evolución de algunos comandos, las herramientas mejoran con la intención de integrarse. Así, SQL Server Profiler ya no existe (al menos es recomendable no utilizarlo), sino que se propone una solución completamente integrada en SQL Server Management Studio.
De la misma forma, el almacén de consultas permite un mejor seguimiento de los tiempos de ejecución de las mismas además de asegurar la buena salud del servidor con indicadores como el tiempo consumido por el procesador, el número de lecturas lógicas, el tiempo de ejecución de las consultas…
SQL Server...
Presentación de SQL Server
El objetivo de este capítulo es presentar SQL Server de manera global y adquirir una visión general de SQL Server en su conjunto, a saber:
-
Entender el concepto de SGBDR y el modo de funcionamiento cliente/servidor.
-
Presentar los componentes de SQL Server y las plataformas de ejecución.
-
Presentar la arquitectura de administración y de programación.
-
Presentar el concepto de base de datos y las bases de datos instaladas en el servidor SQL.
SQL Server es un SGBDR (sistema de gestión de base de datos relacional) completamente integrado en Windows, lo que permite realizar numerosas simplificaciones a nivel de administración, ofreciendo un máximo de posibilidades.
1. ¿Qué es un SGBDR?
SQL Server es un sistema de gestión de base de datos relacional (SGBDR), lo que le confiere una gran capacidad de gestionar los datos, conservando su integridad y su coherencia.
SQL Server se encarga de:
-
Almacenar los datos.
-
Verificar las restricciones de integridad definidas.
-
Garantizar la coherencia de los datos que almacena, incluso en caso de error (parada repentina) del sistema.
-
Asegurar las relaciones entre los datos definidos por los usuarios.
Este producto está completamente integrado en Windows a varios niveles:
-
Observador de eventos: se utiliza el diario de las aplicaciones para registrar los errores generados por SQL Server. Windows centraliza la gestión de errores, lo que facilita el diagnóstico.
-
Analizador de rendimientos: mediante la adición de numerosos contadores, es sencillo detectar los cuellos de botella y reaccionar de manera más adecuada para evitar estos problemas. Se utiliza toda la potencia del Analizador de rendimiento y es posible, dentro de la misma herramienta, tener los contadores tanto sobre SQL Server como sobre Windows y, de esta manera, poder detectar cuál es y dónde se encuentra el verdadero problema.
-
Tratamientos en paralelo: SQL Server es capaz de aprovechar las capacidades de las arquitecturas mutiprocesador. Cada instancia de SQL Server dispone de su propio proceso de ejecución, y los threads de Windows o bien los hilos (si la opción está activada) se ejecutan con el objetivo de explotar al máximo la arquitectura material disponible. Cada instancia de SQL Server ejecuta siempre varios threads de Windows. Para tener en cuenta todos los procesadores presentes...
Arquitectura
1. Administración
El lenguaje natural de SQL Server es Transact SQL. Por tanto, es necesario transmitir las instrucciones en este lenguaje. Como este lenguaje no es forzosamente natural para el usuario, es posible realizar la instrucción de manera gráfica con SQL Server Management Studio, y después ejecutarla en el servidor con los botones Aceptar, Aplicar... Las herramientas gráficas utilizan la biblioteca SMO (SQL Server Management Object) para establecer un diálogo eficaz con el servidor.
SQL SMO engloba y extiende SQL DMO. Por lo tanto, la biblioteca SMO es compatible con SQL Server 7, SQL Server 2000, 2005, 2008, 2012, 2014 y 2016.
Incluso aunque las tareas de administración se tratan en este libro, un conocimiento adecuado de Transac SQL y de las posibilidades ofrecidas por este lenguaje es muy aconsejable para el lector que quiera administrar una base de datos.
Es posible escribir scripts Transact SQL para ejecutar operaciones administrativas en forma de procesamientos batch.
Administración de SQL Server
2. Programación
El desarrollo de aplicaciones clientes para visualizar los datos del servidor se puede apoyar en diferentes tecnologías.
La DLL SQL Native Client es un método de acceso a los datos que está disponible para tecnologías OLE-DB u ODBC de acceso a datos. Con este nuevo API, se puede usar el conjunto de funcionalidades de SQL Server, como los tipos personalizados...
Base de datos SQL Server
1. Objetos de base de datos
Las bases de datos contienen cierto número de objetos lógicos. Es posible agrupar estos objetos en tres grandes categorías:
-
Gestión y almacenamiento de los datos: tablas, tipos de datos, restricciones de integridad, valores por defecto, reglas e índices.
Los valores por defecto y las reglas definidas en la base de datos estaban marcadas como obsoletas (deprecated) desde hace ya algunas versiones y ya no están disponibles en SQL Server 2016.
-
Acceso a los datos: vistas y procedimientos almacenados.
-
Gestión de integridad compleja: triggers (procedimientos almacenados que se ejecutan automáticamente en el momento de la ejecución de una orden SQL que modifique el contenido de una tabla: INSERT, UPDATE y DELETE). El trigger está siempre asociado a una tabla y a una instrucción SQL. Permite establecer reglas de integridad complejas entre varias tablas o mantener datos no normalizados.
Objetos de base de datos
Nombre completo de los objetos
La regla aplicada para denominar a los objetos permite una identificación perfecta. El nombre completo se compone de la siguiente manera: servidor.nombreBase.propietario.objeto. Por defecto, solo es necesario el nombre de los objetos. Este concepto se explica en profundidad en el capítulo Gestión de la base de datos.
2. Bases de datos de sistema y tablas de sistema
Para gestionar el conjunto de datos almacenados, SQL Server se utiliza a sí mismo. Por lo tanto, existen bases de datos de sistema y, en cada base de datos de usuario, algunas tablas de sistema. La inserción y la actualización de datos en estas tablas no se efectúan nunca de manera directa, sino a través de comandos Transact SQL o de procedimientos almacenados.
Organigrama de bases de datos
Los nombres de base de datos y de tablas de sistema son fijos y conocidos por SQL Server. Por lo tanto, no es necesario renombrar una tabla o una base de datos de sistema.
Master
Es la base de datos principal de SQL Server, donde está almacenado el conjunto de datos estratégicos para el buen funcionamiento del servidor (cuentas de conexión, opciones de configuración, existencia de bases de datos de usuario y las referencias a los archivos que componen estas bases...). Por tanto, se hará regularmente copia de seguridad de esta base de datos, como parte de un plan...