Skip to content

Proyecto final

El objetivo es construir una base SQL Server para gestion de pedidos: modelo, T-SQL, indices, transacciones, backups, seguridad y diagnostico.

Arquitectura

mermaid
flowchart LR
  API["API .NET"] --> DB["SQL Server"]
  DB --> B["Backups"]
  DB --> QS["Query Store"]
  DB --> R["Replica/HA opcional"]

Modelo

sql
CREATE TABLE dbo.Clientes (
  Id INT IDENTITY(1,1) PRIMARY KEY,
  Email NVARCHAR(255) NOT NULL UNIQUE,
  Nombre NVARCHAR(150) NOT NULL
);

CREATE TABLE dbo.Pedidos (
  Id INT IDENTITY(1,1) PRIMARY KEY,
  ClienteId INT NOT NULL,
  Estado NVARCHAR(30) NOT NULL,
  CreadoEn DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(),
  CONSTRAINT FK_Pedidos_Clientes FOREIGN KEY (ClienteId) REFERENCES dbo.Clientes(Id)
);

Indices

sql
CREATE INDEX IX_Pedidos_Cliente_Fecha
ON dbo.Pedidos (ClienteId, CreadoEn DESC);

Transaccion

sql
BEGIN TRANSACTION;

INSERT INTO dbo.Pedidos (ClienteId, Estado)
VALUES (1, 'confirmado');

COMMIT;

Backup

sql
BACKUP DATABASE Tienda TO DISK = 'C:\backups\tienda.bak';

Entregable

  • Modelo con constraints.
  • Indices justificados.
  • Procedimiento almacenado para crear pedido.
  • Query Store activado.
  • Backup y restore probado.
  • Usuario de aplicacion con permisos minimos.
  • Checklist de rendimiento.