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. Por lo tanto, SQL Server Management Studio debe descargarse de manera gratuita, desde el sitio web de Microsoft.
Como complemento a la evolución de algunos comandos, las herramientas mejoran con la intención de integrarse. Así que, SQL Server Profiler está en desuso aunque todavía existe, pero se reemplaza por eventos extendidos.
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 2019 propone también las tablas temporales, lo que permite seguir la evolución...
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...
Incluso aunque las tareas de administración se tratan en este libro, un conocimiento adecuado de Transact 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.
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 definidos CLR (UDT: User Defined Type), MARS (Multiple Active Result Sets) o el tipo XML.
SQL Native Client es un API que permite aprovechar al máximo las funcionalidades de SQL Server y disponer de un programa de acceso óptimo al servidor.
Es posible utilizar los objetos ADO para acceder a la información....
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.
-
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.esquema.objeto. Para todas las consultas, recomendamos que nombre los objetos al menos con schema.object, incluso si el esquema es el predeterminado, es decir, dbo. Esto evitará una fase de búsqueda en la ejecución de consultas.
2. Bases de datos de sistema y tablas de sistema
Casi toda la información de configuración del servidor y de las bases de datos de usuario, se almacena en SQL Server. 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 de administración Transact SQL o de procedimientos almacenados de sistema.
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 de copias de seguridad.
Model
Esta base...