📝 SQLServer_tema_estudio
← Volver

1.3 Microsoft SQL Server

Contexto en la UAH

La Universidad de Alcalá (UAH) tiene contratadas licencias de Microsoft SQL Server desde 2023, utilizadas como plataforma de base de datos para aplicaciones y servicios complementarios que no corren sobre Oracle. Este escenario de coexistencia de dos grandes motores de base de datos —Oracle para los sistemas centrales como UXXI y SQL Server para aplicaciones secundarias— es habitual en grandes organizaciones públicas y universidades. La elección de SQL Server en determinados proyectos responde generalmente a criterios de integración con el ecosistema Microsoft (Active Directory, .NET, Azure), al perfil tecnológico de las aplicaciones contratadas a terceros o al menor coste de administración en ciertos entornos.


1. Arquitectura y Conceptos Fundamentales de SQL Server

¿Qué es Microsoft SQL Server?

Microsoft SQL Server es el sistema gestor de bases de datos relacionales (RDBMS) de Microsoft. Al igual que Oracle Database, implementa el modelo relacional y el estándar SQL, pero con extensiones propietarias y una arquitectura diferente. SQL Server es ampliamente utilizado en entornos empresariales, especialmente en organizaciones con infraestructura Microsoft, y cuenta con integración nativa con herramientas como Visual Studio, .NET, Power BI y Azure.

Las ediciones más relevantes en el ámbito universitario y empresarial son:


Instancias de SQL Server

Una instancia de SQL Server es una instalación independiente y completa del motor de base de datos que se ejecuta en un servidor. A diferencia de Oracle, donde una instancia se asocia a una única base de datos, SQL Server permite que una sola instalación del motor gestione múltiples bases de datos simultáneamente bajo la misma instancia.

En un mismo servidor físico o virtual pueden coexistir varias instancias de SQL Server:

Cada instancia tiene su propio conjunto de bases de datos, configuración, servicio de Windows y puertos de red. El puerto predeterminado de SQL Server es el 1433 TCP.


Bases de datos del sistema

Al instalar SQL Server se crean automáticamente varias bases de datos del sistema que no deben modificarse salvo por personal experto:


Bases de datos de usuario

Una base de datos de usuario es el contenedor lógico donde residen los objetos y datos de una aplicación concreta. Cada base de datos SQL Server se compone de:


Schemas (Esquemas)

En SQL Server, un esquema es un contenedor de objetos (tablas, vistas, procedimientos, funciones) dentro de una base de datos, separado del concepto de usuario propietario. A diferencia de Oracle, donde usuario y esquema son inseparables, en SQL Server un usuario puede tener acceso a objetos de múltiples esquemas y un esquema puede no estar ligado a un usuario concreto. El esquema predeterminado es dbo (database owner). Esta separación permite una organización más flexible de los objetos: Academico.Matriculas, Economico.Facturas, RRHH.Empleados.


Seguridad: Inicios de sesión, usuarios y roles

SQL Server implementa la seguridad en dos niveles:

Nivel de instancia: mediante inicios de sesión (Logins), que pueden ser:
- Autenticación de Windows (Windows Authentication): el inicio de sesión se mapea a una cuenta de Windows o Active Directory. Es el modo recomendado en entornos corporativos por su integración con las políticas de seguridad del dominio.
- Autenticación de SQL Server (SQL Server Authentication): credenciales propias almacenadas en SQL Server (usuario/contraseña). Necesario cuando el cliente no pertenece al dominio Windows.

El modo mixto permite ambos tipos de autenticación simultáneamente.

Nivel de base de datos: cada Login se mapea a un usuario de base de datos (Database User) en las bases de datos a las que debe acceder. Los permisos se gestionan mediante roles de base de datos:

Los roles de servidor (Server Roles) gestionan los privilegios a nivel de instancia:
- sysadmin: administración total de la instancia. Equivalente al DBA de Oracle.
- securityadmin, serveradmin, setupadmin, processadmin, diskadmin, dbcreator, bulkadmin.


SQL Server Agent

SQL Server Agent es el servicio de automatización y programación de tareas de SQL Server. Funciona como demonio de Windows (servicio NT) y permite definir y ejecutar tareas de mantenimiento y administración de forma automática y programada. Es el equivalente funcional al Oracle Scheduler (DBMS_SCHEDULER) en Oracle.

Sus componentes principales son:

Jobs (Trabajos)

Un Job es la unidad de trabajo automatizable en SQL Server Agent. Cada Job se compone de uno o varios pasos (Steps), donde cada paso puede ejecutar código T-SQL, un paquete SSIS, un script PowerShell, un comando del sistema operativo o un comando de replicación. El Job también define la programación (Schedule) que determina cuándo se ejecuta (una vez, periódicamente, al arrancar el agente, etc.) y las notificaciones a enviar en caso de éxito, fallo o finalización.

Usos habituales de los Jobs:
- Ejecución automatizada de backups nocturnos.
- Reconstrucción o reorganización de índices fragmentados.
- Actualización de estadísticas del optimizador.
- Purga de datos históricos o temporales.
- Transferencia o sincronización de datos entre sistemas.
- Ejecución de procesos ETL (paquetes SSIS).

Alerts (Alertas)

Las alertas responden automáticamente a eventos de SQL Server: errores de severidad determinada, condiciones de rendimiento (uso de CPU, espacio en tempdb) o eventos WMI. Permiten notificar a operadores o ejecutar un Job en respuesta al evento.

Operators (Operadores)

Un operador es la definición de un destinatario de notificaciones (correo electrónico, pager, net send). SQL Server Agent utiliza el Database Mail configurado en la instancia para enviar los correos de notificación.


2. T-SQL — Transact-SQL

¿Qué es T-SQL?

T-SQL (Transact-SQL) es la extensión procedural del lenguaje SQL desarrollada por Microsoft (y originalmente por Sybase) para SQL Server. Es el equivalente de PL/SQL en Oracle: añade al SQL estándar capacidades procedurales como variables, estructuras de control, manejo de errores y módulos de código reutilizables. Sin embargo, ambos lenguajes tienen diferencias sintácticas y funcionales significativas.


Estructura básica de T-SQL

A diferencia de PL/SQL, T-SQL no requiere una estructura de bloque formal. Las variables se declaran con DECLARE y el código se escribe de forma más lineal:

-- Declaración de variables
DECLARE @nombre    NVARCHAR(100);
DECLARE @contador  INT = 0;

-- Asignación con SELECT
SELECT @nombre = nombre FROM empleados WHERE id = 1;

-- Asignación con SET
SET @contador = @contador + 1;

-- Salida
PRINT 'Nombre: ' + @nombre;
SELECT @nombre AS Nombre, @contador AS Contador;

Las variables en T-SQL se preceden siempre del símbolo @. No existe una sección DECLARE separada del cuerpo ejecutable; todo va en la misma secuencia.


Control de flujo en T-SQL

-- Condicional
IF @contador > 10
BEGIN
    PRINT 'Mayor que 10';
END
ELSE
BEGIN
    PRINT 'Menor o igual a 10';
END

-- Bucle WHILE (T-SQL no tiene FOR LOOP nativo como PL/SQL)
WHILE @contador < 100
BEGIN
    SET @contador = @contador + 1;
END

-- CASE (disponible también dentro de SELECT)
SELECT nombre,
       CASE
           WHEN salario < 20000 THEN 'Bajo'
           WHEN salario BETWEEN 20000 AND 40000 THEN 'Medio'
           ELSE 'Alto'
       END AS rango_salarial
FROM empleados;

Procedimientos almacenados en T-SQL

CREATE OR ALTER PROCEDURE usp_ActualizarSalario
    @p_id       INT,
    @p_nuevo    DECIMAL(10,2),
    @p_anterior DECIMAL(10,2) OUTPUT
AS
BEGIN
    SET NOCOUNT ON;  -- Suprime el mensaje "n rows affected"

    SELECT @p_anterior = salario
    FROM empleados
    WHERE id = @p_id;

    IF @p_anterior IS NULL
    BEGIN
        RAISERROR('Empleado no encontrado: %d', 16, 1, @p_id);
        RETURN;
    END

    UPDATE empleados
    SET salario = @p_nuevo
    WHERE id = @p_id;
END;
GO

-- Ejecución
DECLARE @sal_anterior DECIMAL(10,2);
EXEC usp_ActualizarSalario @p_id = 1, @p_nuevo = 32000, @p_anterior = @sal_anterior OUTPUT;
PRINT 'Salario anterior: ' + CAST(@sal_anterior AS NVARCHAR);

Funciones en T-SQL

T-SQL distingue varios tipos de funciones definidas por el usuario:

CREATE OR ALTER FUNCTION fn_CalcularIRPF (@salario DECIMAL(10,2))
RETURNS DECIMAL(10,2)
AS
BEGIN
    DECLARE @tipo DECIMAL(5,4);
    SET @tipo = CASE
        WHEN @salario < 12000 THEN 0
        WHEN @salario < 20000 THEN 0.19
        ELSE 0.30
    END;
    RETURN ROUND(@salario * @tipo, 2);
END;
GO

Triggers en T-SQL

Los triggers en T-SQL son similares a los de PL/SQL, con algunas diferencias importantes. En lugar de las pseudovariables :OLD y :NEW de Oracle, SQL Server utiliza las tablas lógicas inserted y deleted:

CREATE OR ALTER TRIGGER trg_AuditoriaSalario
ON empleados
AFTER UPDATE
AS
BEGIN
    SET NOCOUNT ON;
    IF UPDATE(salario)  -- Solo si la columna salario fue modificada
    BEGIN
        INSERT INTO auditoria_salarios (empleado_id, salario_anterior, salario_nuevo, fecha_cambio, usuario)
        SELECT
            d.id,
            d.salario,
            i.salario,
            GETDATE(),
            SYSTEM_USER
        FROM deleted d
        INNER JOIN inserted i ON d.id = i.id;
    END
END;
GO

Una diferencia clave respecto a Oracle: en SQL Server, el trigger no opera fila a fila por defecto; recibe el conjunto completo de filas afectadas a través de inserted y deleted, por lo que el código del trigger debe estar preparado para trabajar con conjuntos de filas, no con filas individuales.


Manejo de errores en T-SQL: TRY...CATCH

T-SQL utiliza la estructura TRY...CATCH para el manejo de errores, diferente al bloque EXCEPTION de PL/SQL:

BEGIN TRY
    BEGIN TRANSACTION;
        UPDATE empleados SET salario = salario * 1.10 WHERE dpto = 10;
        DELETE FROM empleados WHERE activo = 0;
    COMMIT TRANSACTION;
END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION;
    SELECT
        ERROR_NUMBER()    AS numero_error,
        ERROR_SEVERITY()  AS severidad,
        ERROR_STATE()     AS estado,
        ERROR_PROCEDURE() AS procedimiento,
        ERROR_LINE()      AS linea,
        ERROR_MESSAGE()   AS mensaje;
END CATCH;

Las funciones ERROR_*() solo tienen valor dentro del bloque CATCH. RAISERROR lanza errores personalizados; THROW (disponible desde SQL Server 2012) es la forma moderna recomendada.


Cursores en T-SQL

T-SQL soporta cursores explícitos con una sintaxis diferente a PL/SQL:

DECLARE @nombre NVARCHAR(100), @salario DECIMAL(10,2);

DECLARE cur_empleados CURSOR FOR
    SELECT nombre, salario FROM empleados WHERE dpto = 10;

OPEN cur_empleados;
FETCH NEXT FROM cur_empleados INTO @nombre, @salario;

WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT @nombre + ': ' + CAST(@salario AS NVARCHAR);
    FETCH NEXT FROM cur_empleados INTO @nombre, @salario;
END

CLOSE cur_empleados;
DEALLOCATE cur_empleados;

Al igual que en Oracle, el uso de cursores debe evitarse cuando sea posible en favor de operaciones basadas en conjuntos, que son más eficientes en bases de datos relacionales.


Tablas temporales y variables de tabla

T-SQL ofrece dos mecanismos para almacenamiento temporal de datos:

-- Tabla temporal
CREATE TABLE #resultados_temporales (
    id INT,
    nombre NVARCHAR(100),
    total DECIMAL(10,2)
);

-- Variable de tabla
DECLARE @resumen TABLE (
    dpto INT,
    total_empleados INT
);

3. SQL Server Management Studio (SSMS)

¿Qué es SSMS?

SQL Server Management Studio (SSMS) es el entorno integrado de administración y desarrollo de Microsoft para SQL Server. Es la herramienta equivalente a TOAD en el ecosistema Oracle, aunque con la diferencia de ser gratuita y oficial de Microsoft. Se distribuye como descarga independiente y admite la administración de instancias SQL Server locales y remotas, así como Azure SQL Database y Azure Synapse Analytics.


Funcionalidades principales de SSMS

Object Explorer

El Explorador de objetos es el panel central de SSMS. Muestra en forma de árbol jerárquico todos los objetos de la instancia: bases de datos, tablas, vistas, procedimientos almacenados, funciones, triggers, índices, usuarios, roles, trabajos del Agente, servidores vinculados, etc. Permite realizar la mayoría de las operaciones de administración mediante menús contextuales sin necesidad de escribir código.

Query Editor (Editor de consultas)

El editor de código T-SQL de SSMS ofrece:
- Resaltado de sintaxis y autocompletado (IntelliSense) con sugerencias de objetos y palabras clave.
- Ejecución de sentencias individuales o scripts completos (F5).
- Visualización del plan de ejecución estimado (Ctrl+L) o real (ejecutando con Ctrl+M activado).
- Ventana de resultados en formato cuadrícula o texto.
- Ventana de mensajes para PRINT y errores.
- Soporte para múltiples conexiones en diferentes ventanas.

Activity Monitor

El Monitor de actividad proporciona una vista en tiempo real del estado de la instancia: procesos activos, esperas, E/S de datos, actividad reciente de consultas costosas. Es la herramienta de diagnóstico rápido de rendimiento en SQL Server.

Template Explorer

Biblioteca de plantillas de código T-SQL para operaciones habituales (crear base de datos, crear login, hacer backup, etc.), que el desarrollador puede personalizar mediante parámetros.

Generación de scripts

SSMS puede generar automáticamente scripts DDL de cualquier objeto de la base de datos: tablas, vistas, procedimientos, índices, usuarios, la base de datos completa, etc. Útil para documentación, control de versiones y migración entre entornos.

Diseñador de tablas y diagramas

SSMS incluye un diseñador visual de tablas (definición de columnas, tipos de datos, claves primarias, restricciones) y un diseñador de diagramas de base de datos para visualizar las relaciones entre tablas.

Administración del SQL Server Agent

Desde SSMS se gestionan de forma visual todos los Jobs, Schedules, Alerts y Operators del SQL Server Agent: creación, edición, ejecución manual, consulta del historial de ejecuciones y gestión de notificaciones.


4. Backup y Restore en SQL Server

Modelos de recuperación (Recovery Models)

Antes de diseñar la estrategia de backup en SQL Server, es imprescindible entender los modelos de recuperación, que determinan cómo se gestiona el log de transacciones y hasta qué punto es posible recuperar los datos:


Tipos de backup en SQL Server

Backup completo (Full Backup)

Copia todos los datos de la base de datos en el momento del backup, incluyendo la parte del log de transacciones necesaria para que el backup sea consistente. Es la base de cualquier estrategia de recuperación; todos los demás tipos de backup dependen de él.

BACKUP DATABASE UAH_Aplicacion
TO DISK = 'D:\Backups\UAH_Aplicacion_Full.bak'
WITH FORMAT, COMPRESSION, STATS = 10,
     NAME = 'Backup completo UAH_Aplicacion';

Backup diferencial (Differential Backup)

Copia únicamente los extents (páginas de datos) que han sido modificados desde el último backup completo. Es más rápido que un nuevo backup completo y requiere menos espacio. Para restaurar, se necesita el último backup completo más el último backup diferencial.

BACKUP DATABASE UAH_Aplicacion
TO DISK = 'D:\Backups\UAH_Aplicacion_Diff.bak'
WITH DIFFERENTIAL, COMPRESSION, STATS = 10;

Backup del log de transacciones (Transaction Log Backup)

Solo disponible en modelos FULL y BULK_LOGGED. Copia la porción activa del log de transacciones desde el último backup de log y trunca el log, liberando espacio. Permite la recuperación hasta cualquier punto en el tiempo. Deben realizarse con frecuencia (cada 15-60 minutos en producción) para limitar la pérdida máxima de datos (RPO).

BACKUP LOG UAH_Aplicacion
TO DISK = 'D:\Backups\UAH_Aplicacion_Log_' + 
          CONVERT(NVARCHAR, GETDATE(), 112) + '.trn'
WITH COMPRESSION, STATS = 10;

Backup de archivos y grupos de archivos (File/Filegroup Backup)

Permite hacer backup de ficheros .mdf/.ndf individuales. Útil en bases de datos muy grandes donde el backup completo lleva demasiado tiempo.

Backup de solo copia (Copy-Only Backup)

Realiza un backup completo o de log sin afectar a la cadena de backups establecida. Útil para extraer una copia de la base de datos para pruebas o desarrollo sin interferir con la estrategia de producción.

BACKUP DATABASE UAH_Aplicacion
TO DISK = 'D:\Backups\UAH_Aplicacion_CopyOnly.bak'
WITH COPY_ONLY, COMPRESSION;

Restore (Restauración)

La restauración en SQL Server sigue la cadena de backups en el orden correcto:

-- 1. Restaurar el backup completo (WITH NORECOVERY para seguir restaurando)
RESTORE DATABASE UAH_Aplicacion
FROM DISK = 'D:\Backups\UAH_Aplicacion_Full.bak'
WITH NORECOVERY, STATS = 10;

-- 2. Restaurar el backup diferencial más reciente (WITH NORECOVERY)
RESTORE DATABASE UAH_Aplicacion
FROM DISK = 'D:\Backups\UAH_Aplicacion_Diff.bak'
WITH NORECOVERY, STATS = 10;

-- 3. Restaurar backups de log en orden cronológico
RESTORE LOG UAH_Aplicacion
FROM DISK = 'D:\Backups\UAH_Aplicacion_Log_1.trn'
WITH NORECOVERY;

-- 4. Último paso: poner la base de datos online (WITH RECOVERY)
RESTORE DATABASE UAH_Aplicacion WITH RECOVERY;

La opción WITH NORECOVERY mantiene la base de datos en estado restoring para aplicar más backups. WITH RECOVERY aplica el roll forward/roll back final y pone la base de datos online. WITH STANDBY es una opción intermedia que permite acceso de solo lectura entre restauraciones.

Point-in-Time Recovery

Para recuperar hasta un instante exacto (modelo FULL):

RESTORE LOG UAH_Aplicacion
FROM DISK = 'D:\Backups\UAH_Aplicacion_Log_ultimo.trn'
WITH STOPAT = '2024-11-15T09:30:00', RECOVERY;

Planes de mantenimiento (Maintenance Plans)

SQL Server ofrece una interfaz visual en SSMS para crear planes de mantenimiento automáticos que combinen backups, reconstrucción de índices, actualización de estadísticas y verificación de integridad mediante DBCC CHECKDB. Estos planes se implementan como Jobs del SQL Server Agent.


5. Comparativa: SQL Server vs. Oracle en Entorno Universitario

Diferencias arquitectónicas fundamentales

Aspecto Oracle Database Microsoft SQL Server
Relación instancia/BD Una instancia = una BD (salvo RAC) Una instancia = múltiples BD
Usuario vs. esquema Usuario y esquema son inseparables Usuario y esquema son independientes
Puerto por defecto 1521 (Listener) 1433 (TCP)
Proceso de red Oracle Listener (lsnrctl) SQL Server Browser + servicio TCP
Modo archivado ARCHIVELOG / NOARCHIVELOG FULL / SIMPLE / BULK_LOGGED
Herramienta de backup RMAN (nativa) SSMS / T-SQL / SQL Server Agent
Lenguaje procedural PL/SQL T-SQL
Herramienta de admin TOAD (de pago), SQL Developer (gratuito) SSMS (gratuito, oficial Microsoft)
Scheduler de tareas DBMS_SCHEDULER SQL Server Agent
Tablas temporales Tablas globales temporales (GTT) #tablas y ##tablas (tempdb)
Directorio de objetos DBA_*, ALL_*, USER_*, V$* sys.*, INFORMATION_SCHEMA.*

Diferencias entre PL/SQL y T-SQL

Característica PL/SQL (Oracle) T-SQL (SQL Server)
Bloque de código Estructura formal DECLARE/BEGIN/EXCEPTION/END Sin estructura formal; código lineal
Variables Sin prefijo (v_nombre) Prefijo @ obligatorio (@nombre)
Condicional IF...THEN...ELSIF...ELSE...END IF IF...BEGIN...END...ELSE BEGIN...END
Bucle LOOP, WHILE, FOR WHILE (no existe FOR LOOP nativo)
Manejo de errores Sección EXCEPTION con WHEN ... THEN Bloque TRY...CATCH con funciones ERROR_*()
Cursores OLD/NEW Pseudovariables :OLD y :NEW Tablas lógicas inserted y deleted
Paquetes PACKAGE + PACKAGE BODY No existe el concepto de paquete
Compilación Los objetos se compilan al crearse en la BD Igual; compilación JIT en ejecución
Tipo booleano BOOLEAN nativo en PL/SQL No existe BOOLEAN; se usa BIT (0/1)
Concatenación Operador \|\| Operador + o función CONCAT()
Fecha actual SYSDATE GETDATE() o SYSDATETIME()
Conversión de tipo TO_CHAR(), TO_DATE(), TO_NUMBER() CAST(), CONVERT(), TRY_CAST()
Secuencias Objeto SEQUENCE IDENTITY en columna o SEQUENCE (desde 2012)

Cuándo se usa cada plataforma en la UAH

La coexistencia de ambas plataformas implica que los administradores del Servicio de Informática de la UAH deben tener competencias en los dos entornos, aunque el grado de profundidad requerida es mayor en Oracle al ser la plataforma principal.


6. Herramientas Complementarias

SQL Server Profiler y Extended Events

SQL Server Profiler (heredado) y Extended Events (mecanismo moderno) permiten capturar y analizar eventos de SQL Server en tiempo real: sentencias ejecutadas, tiempos de ejecución, errores, bloqueos. Son esenciales para el diagnóstico de problemas de rendimiento y seguridad.

SQL Server Integration Services (SSIS)

SSIS es la plataforma ETL (Extract, Transform, Load) de SQL Server. Permite diseñar flujos de trabajo para la integración, transformación y carga de datos entre sistemas heterogéneos. Útil en la UAH para la transferencia de datos entre SQL Server y Oracle o entre aplicaciones distintas.

SQL Server Reporting Services (SSRS)

SSRS es la plataforma de informes y reporting de SQL Server. Permite crear informes tabulares, gráficos y dashboards accesibles a través de un portal web.

Azure Data Studio

Herramienta multiplataforma (Windows, macOS, Linux) de Microsoft para la gestión y desarrollo sobre SQL Server y Azure SQL. Más ligera que SSMS, orientada al desarrollo de consultas y notebooks SQL.


Resumen: palabras clave y conceptos esenciales

Término Definición rápida
SQL Server RDBMS de Microsoft; licenciado en la UAH desde 2023
Instancia SQL Server Instalación independiente del motor; puede gestionar múltiples BD
Puerto 1433 Puerto TCP por defecto de SQL Server
master / msdb / model / tempdb Bases de datos del sistema de SQL Server
T-SQL Extensión procedural de SQL de Microsoft/Sybase para SQL Server
SQL Server Agent Servicio de automatización y programación de tareas de SQL Server
Job Unidad de trabajo automatizable en SQL Server Agent
SSMS SQL Server Management Studio; herramienta oficial gratuita de administración
Recovery Model FULL Equivalente a ARCHIVELOG de Oracle; permite Point-in-Time Recovery
Recovery Model SIMPLE Equivalente a NOARCHIVELOG de Oracle; no permite backup de log
Full Backup Copia completa de la base de datos
Differential Backup Cambios desde el último Full Backup
Log Backup Copia del log de transacciones; solo en modelos FULL y BULK_LOGGED
WITH NORECOVERY Mantiene la BD en estado restoring para aplicar más backups
WITH RECOVERY Finaliza la restauración y pone la BD online
inserted / deleted Tablas lógicas en triggers T-SQL (equivalente a :NEW/:OLD en Oracle)
dbo Esquema predeterminado en SQL Server
sysadmin Rol de servidor con privilegios totales en SQL Server
TRY...CATCH Estructura de manejo de errores en T-SQL
tempdb BD del sistema para almacenamiento temporal; crítica para el rendimiento
SSIS SQL Server Integration Services; plataforma ETL de Microsoft

Ideas clave para retener

  1. La UAH tiene licencias de SQL Server desde 2023 para aplicaciones y servicios complementarios, en coexistencia con Oracle como plataforma principal.
  2. En SQL Server, una instancia gestiona múltiples bases de datos, a diferencia de Oracle donde cada instancia se asocia a una sola base de datos.
  3. Las cuatro bases de datos del sistema son master, msdb, model y tempdb; master es la más crítica.
  4. T-SQL es el equivalente de PL/SQL en Oracle, con diferencias clave: variables con @, TRY...CATCH en lugar de EXCEPTION, inserted/deleted en triggers en lugar de :NEW/:OLD.
  5. SQL Server Agent es el scheduler de tareas de SQL Server, equivalente al Oracle Scheduler; sus Jobs automatizan backups, mantenimiento e integraciones.
  6. SSMS es la herramienta oficial y gratuita de administración y desarrollo de SQL Server, equivalente funcional a TOAD.
  7. El Recovery Model FULL es el equivalente al modo ARCHIVELOG de Oracle y el único que permite Point-in-Time Recovery; es obligatorio en producción.
  8. La cadena de restauración sigue siempre el orden: Full → Differential → Log, con WITH NORECOVERY en todos los pasos previos al último.
  9. SQL Server se usa en la UAH para aplicaciones del ecosistema Microsoft y servicios contratados a terceros que lo requieren como plataforma de base de datos.
  10. El conocimiento de las diferencias entre Oracle y SQL Server es fundamental para el personal del Servicio de Informática, que debe administrar ambas plataformas en paralelo.