Está en la página 1de 29

POLITÉCNICO INTERNACIONAL INSTITUCIÓN

UNIVERSITARIA

Fundamentos de Bases de Datos

Base de datos para la administración de un taller mecánico.

Presentado por:

CRISTIAN EDUARDO PARRA OROZCO

Docente
JAVIER PINEDA
19 DE DICIEMBRE DE 2022
OBJETIVOS

Objetivo General

Realizar el análisis y construcción de una base de datos para brindar solución al


manejo de información de un taller mecánico.

Objetivos específicos

• Analizar problemática actual presentada al administrar la información de un


taller mecánico.
• Diseñar el modelo entidad relación y esquema relacional.
DISEÑO CONCEPTUAL

1. Identificación de entidades, atributos y relaciones

Basado en la problemática actual y de acuerdo con la información suministrada por la


administración del taller mecánico, se identifican los componentes entidades, atributos y
relaciones que intervendrán en la construcción de la base de datos.
Para ello se manejará información de los clientes, los autos, los empleados que
trabajan en el taller y los repuestos utilizados para cada servicio prestado. Las entidades
cuentan con diferentes atributos, a continuación, se indican aquellos identificados para cada
una:
• Clientes: NroCedulaCliente, NombresCliente y ApellidosCliente, Teléfono
y Dirección.
• Autos: Nroplaca, Modelo, Color, Fecha y HoraIngreso
• Empleados: NroCedulaEmpleado, NombresEmpleado y
ApellidosEmpleado.
• Repuestos: NroReferencia, Descripción, Marca y Precio.
• Servicios: NroServicio, FechaServicio, CantidadRepuesto, Horas, y
ValorNeto.
• Facturas: NroFactura, FechaFactura, ValorNeto, ValorIva, ValorTotal
Dentro de las principales relaciones identificadas en el análisis encontramos:
• Un cliente puede tener muchos autos.
• Muchos clientes pueden utilizar muchos servicios.
• Un empleado puede atender muchos servicios.
• Muchos Servicios pueden hacer uso de muchos repuestos.
• Muchas facturas pueden tener muchos servicios.

2. Construcción del modelo conceptual

Con la identificación de los componentes principales que intervienen en la


construcción de la base de datos, a continuación, se visualiza la representación del diseño o
modelo conceptual de acuerdo con las principales entidades y sus relaciones.
A continuación, se visualiza el modelo conceptual definido en notación CHEN
(Ilustración 1).

Ilustración 1. Diseño Conceptual: Modelo Entidad Relación


3. Proceso de normalización

Luego de la definición del modelo conceptual, se procede a realizar la normalización


de las tablas que intervendrán en el ejercicio, con el fin de eliminar errores lógicos, datos
repetidos y tener ordenada la base de datos.

3.1. Base de datos no normalizada

Se realiza diagrama de dependencia funcional de la tabla no normalizada con el fin de


determinar la relación/dependencia que se genera (Ilustración 2), con este diagrama se tendrá
el insumo necesario para el proceso de normalización.

Ilustración 2. Diagrama de dependencia funcional


Primera Forma Normal (1FN)

La primera forma normal nos indica que debemos identificar los campos que se
repetirán en los registros cuando estos empiecen a ser ingresados.
Toda la subdivisión se debe realizar sin perder ningún dato de la información
necesaria.

Segunda Forma Normal (2FN)

En la segunda forma se identifican las formas de dependencia que se da entre los


campos de las diferentes tablas.
Es importante tener la primera forma realizada para continuar con el ejercicio.

Tercera Forma Normal (3FN)

Luego del análisis realizado se evidencian las tablas resultantes y su relación.


Tabla. Tabla Clientes
NroCedula Nombres Apellidos Teléfono Dirección
Cliente Cliente Cliente

La tabla 1 muestra los datos en tercera forma normal para la entidad Clientes.
Tabla 2. Tabla Autos
NroPlaca Modelo Color Fecha HoraIngreso

La tabla 2 muestra los datos en tercera forma normal para la entidad Autos.

Tabla 3. Tabla Empleados


NroCedulaEmpleado NombresEmpleado ApellidosEmpleado

La tabla 3 muestra los datos en tercera forma normal para la entidad Empleados.
Tabla 4. Tabla Repuestos
NroReferencia Precio Marca Descripcion
La tabla 4 muestra los datos en tercera forma normal para la entidad Repuestos.
Tabla 5. Tabla Servicios
NroServ Horas FechaServici NroCedulaClie NroPlac NroCedulaEmple
icio o nte a ado

La tabla 6 muestra los datos en tercera forma normal para la entidad Servicios.

Tabla 6. Tabla RepuestoServicio


NroServicio Nro.Referencia CantidadRepuesto ValorNeto

La tabla 6 muestra los datos en tercera forma normal para la entidad RepuestoServicio.
Tabla 7. Tabla Facturas
NroFactura NroServicio FechaFactura ValorNeto ValorIva ValorTotal

La tabla 7 muestra los datos en tercera forma normal para la entidad Facturas.

Tabla 8.Tabla AuditoriaClientes


Nombres Apellidos Teléfono Dirección
Cliente Cliente

La tabla 8 muestra los datos registrados cuando haya una actualización en la tabla
Clientes.

Tabla 9. Tabla AuditoriaEmpleados


NroCedulaEmpleado NombresEmpleado ApellidosEmpleado
La tabla 9 muestra los datos registrados cuando haya una actualización en la tabla
Empleados.

Construcción del modelo lógico

Esquema relacional

Finalizada la normalización de las tablas se establece el esquema relacional de la base


de datos, se describen nombre de tablas, campos, tipos y las llaves primarias y foráneas
basada en la estructura definida.
CLIENTES (NroCedulaCliente: entero,
NombresCliente: cadena,
ApellidosCliente: cadena,
Teléfono: entero,
Dirección: cadena)

AUTOS (NroPlaca: cadena,


Modelo: cadena,
Color: cadena,
Fecha: fecha,
HoraIngreso: hora)

EMPLEADOS (NroCedulaEmpleado: entero,


NombresEmpleado: cadena,
ApellidosEmpleado: cadena)

REPUESTOS (NroReferencia: entero,


Precio:decimal,
Marca:cadena,
Descripción:cadena)

SERVICIOS (NroServicio: entero,


NroCedulaEmpleado:entero,
NroPlaca: cadena,
NroCedulaCliente: entero,
FechaServicio: fecha,
Horas: hora)

LLAVE FORANEA: NroCedulaEmpleado REFERENCIA NroCedulaEmpleado EN


EMPLEADOS
LLAVE FORANEA: NroPlaca REFERENCIA NroPlaca EN AUTOS
LLAVE FORANEA: NroCedulaCliente REFERENCIA NroCedulaCliente EN CLIENTES

REPUESTOSERVICIO (NroServicio: entero,


NroReferencia: entero,
CantidadRepuesto: entero,
ValorNeto: decimal)

FACTURA (NroFactura: cadena,


NroReferencia: entero,
FechaFactura: fecha,
ValorNeto: decimal,
ValorIva: decimal,
ValorTotal: decimal)

AUDITORIACLIENTES (NroCedulaCliente: entero,


NombresCliente: cadena,
ApellidosCliente: cadena,
Teléfono: entero,
Dirección: cadena)

AUDITORIAEMPLEADOS (NroCedulaEmpleado: entero,


NombresEmpleado: cadena,
ApellidosEmpleado: cadena) Diagrama relacional
Para la realización del modelo lógico se define la estructura lógica que tendrá la
base de datos, de tal manera que logre identificarse los campos con sus tipos de datos.

Ilustración 3. Diseño Lógico: Diagrama Relacional

Diseño Físico

El diseño físico tiene como objetivo definir como se realizará la implementación del
diseño lógico establecido para la base de datos, en ella se describirá el diccionario de datos
para tener mejor entendimiento de los componentes de la base de datos, así como definir los
comportamientos que la misma tendrá.
Creación de la base de datos

• Teniendo en cuenta el diseño lógico establecido se procede con la


realización de la base de datos y estructura de esta.
• Script
CREATE DATABASE [TALLER]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'TALLER', FILENAME = N'C:\Program
Files\Microsoft SQL
Server\MSSQL11.SERVIDORBD\MSSQL\DATA\TALLER.mdf' ,
SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'TALLER_log', FILENAME = N'C:\Program
Files\Microsoft SQL
Server\MSSQL11.SERVIDORBD\MSSQL\DATA\TALLER_log.ldf' , SIZE
= 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO

Creación de tablas

Tabla Clientes

• Scripts
CREATE TABLE [dbo].[Clientes](
[NroCedulaCliente] [int] NOT NULL,
[NombresCliente] [varchar](45) NOT NULL,
[ApellidosCliente] [varchar](45) NOT NULL,
[Telefono] [int] NULL,
[Dirección] [varchar](100) NULL,
Control SMALLINT, CONSTRAINT [PK_Clientes]
PRIMARY KEY CLUSTERED
(
[NroCedulaCliente] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO

Tabla Autos

• Scripts
CREATE TABLE [dbo].[Autos](
[NroPlaca] [varchar](6) NOT NULL,
[Modelo] [varchar](45) NOT NULL,
[Color] [varchar](45) NULL,
[Fecha] [date] NOT NULL,
[HoraIngreso] [time](7) NOT NULL,
CONSTRAINT [PK_Autos] PRIMARY KEY CLUSTERED
(
[NroPlaca] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO

Tabla Repuestos

• Scripts
CREATE TABLE [dbo].[Repuestos](
[NroReferencia] [varchar](8) NOT NULL,
[Precio] [decimal](18, 2) NOT NULL,
[Marca] [varchar](45) NOT NULL,
[Descripcion] [varchar](45) NOT NULL,
CONSTRAINT [PK_Repuestos] PRIMARY KEY CLUSTERED
(
[NroReferencia] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Tabla Empleados

• Scripts
CREATE TABLE [dbo].[Empleados](
[NroCedulaEmpleado] [int] NOT NULL,
[NombresEmpleado] [varchar](45) NOT NULL,
[ApellidosEmpleado] [varchar](45) NOT NULL,
Control SMALLINT,
CONSTRAINT [PK_Empleados] PRIMARY KEY CLUSTERED
(
[NroCedulaEmpleado] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO

Tabla Servicios

• Scripts
CREATE TABLE [dbo].[Servicios](
[NroServicio] [int] NOT NULL,
[NroCedulaCliente] [int] NOT NULL,
[NroPlaca] [varchar](6) NOT NULL,
[NroCedulaEmpleado] [int] NOT NULL,
[Horas] [time](7) NULL,
[FechaServicio] [date] NULL,
CONSTRAINT [PK_Servicios] PRIMARY KEY CLUSTERED
(
[NroServicio] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE Servicios ADD FOREIGN KEY


(NroCedulaCliente)
REFERENCES Clientes (NroCedulaCliente)
GO
ALTER TABLE Servicios ADD FOREIGN KEY (NroPlaca)
REFERENCES Autos (NroPlaca)
GO
ALTER TABLE Servicios ADD FOREIGN KEY
(NroCedulaEmpleado) REFERENCES Empleados (NroCedulaEmpleado)
GO

Tabla RepuestoServicios

• Scripts
CREATE TABLE [dbo].[RepuestoServicios](
[NroServicio] [int] NOT NULL,
[NroReferencia] [int] NOT NULL,
[CantidadRepuesto] [int] NOT NULL,
[ValorNeto] [decimal](18, 2) NOT NULL,
CONSTRAINT [PK_RepuestoServicios] PRIMARY
KEY CLUSTERED
(
[NroServicio] ASC,
[NroReferencia] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE RepuestoServicios ADD FOREIGN KEY
(NroServicio) REFERENCES Servicios (NroServicio)
GO

ALTER TABLE RepuestoServicios ADD FOREIGN KEY


(NroReferencia) REFERENCES Repuestos (NroReferencia)
GO

Tabla Facturas

• Scripts
CREATE TABLE [dbo].[Facturas](
[NroFactura] [varchar](8) NOT NULL,
[NroServicio] [int] NOT NULL,
[FechaFactura] [date] NOT NULL,
[ValorNeto] [decimal](18, 2) NOT NULL,
[ValorIva] [decimal](18, 2) NOT NULL,
[ValorTotal] [decimal](18, 2) NOT NULL,
CONSTRAINT [PK_Facturas] PRIMARY KEY CLUSTERED
(
[NroFactura] ASC,
[NroServicio] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE Facturas ADD FOREIGN KEY (NroServicio)
REFERENCES Servicios (NroServicio) GO

Creación de funciones, procedimientos, cursores, triggers

Procedimiento almacenado RegistrarEmpleado

• Scripts
CREATE PROCEDURE RegistrarEmpleado
@NroCedulaEmpleado int,
@NombresEmpleado nvarchar(45),
@ApellidosEmpleado nvarchar(45)
AS

INSERT INTO [dbo].[Empleados]


([NroCedulaEmpleado]
,[NombresEmpleado]
,[ApellidosEmpleado])
VALUES
(@NroCedulaEmpleado,
@NombresEmpleado,
@ApellidosEmpleado)
GO

EXEC RegistrarEmpleado
@NroCedulaEmpleado='InsertaDato',@NombresEmpleado='InsertaDato
',@ApellidosEmpleado=' InsertaDato'

Procedimiento almacenado ActualizarEmpleado

• Scripts
CREATE PROCEDURE [dbo].[ActualizarEmpleado]
@NroCedulaEmpleado int,
@NombresEmpleado nvarchar(45) ,
@ApellidosEmpleado nvarchar(45)
AS
UPDATE [dbo].[Empleados]
SET
NombresEmpleado=@NombresEmpleado,ApellidosEmpleado=@Apellidos
Empleado
WHERE NroCedulaEmpleado=@NroCedulaEmpleado

Procedimiento almacenado RegistrarCliente

• Scripts
CREATE PROCEDURE RegistrarCliente
@NroCedulaCliente int,
@Nombrescliente nvarchar(45),
@ApellidosCliente nvarchar(45),
@Telefono int,
@Direccion nvarchar(100)
AS

INSERT INTO dbo.Clientes (NroCedulaCliente, NombresCliente,


ApellidosCliente, Telefono, Dirección)
VALUES (@nrocedulacliente, @nombrescliente, @apellidoscliente,
@telefono, @dirección)
GO

Procedimiento almacenado ActualizarCliente

• Scripts
CREATE PROCEDURE [dbo].[ActualizarCliente]
@NroCedulaCliente INT,
@NombresCliente VARCHAR (45),
@ApellidosCliente VARCHAR (45),
@Telefono INT,
@Direccion VARCHAR (100)
AS
UPDATE dbo.Clientes
SET NroCedulaCliente = @nrocedulacliente,
NombresCliente = @nombrescliente,
ApellidosCliente = @apellidoscliente,
Telefono = @telefono,
Dirección = @Direccion
WHERE NroCedulaCliente=@NroCedulaCliente GO

Procedimiento almacenado RegistrarAuto

• Scripts
CREATE PROCEDURE RegistrarAuto
@NroPlaca VARCHAR (6),
@Modelo VARCHAR (45),
@Color VARCHAR (45),
@Fecha DATE,
@HoraIngreso TIME
AS

INSERT INTO dbo.Autos (NroPlaca, Modelo, Color, Fecha,


HoraIngreso)
VALUES (@nroplaca, @modelo, @color, @fecha, @horaingreso)
GO
Procedimiento almacenado ActualizarAuto

• Scripts
CREATE PROCEDURE [dbo].[ActualizarAuto]
@NroPlaca VARCHAR (6),
@Modelo VARCHAR (45),
@Color VARCHAR (45),
@Fecha DATE,
@HoraIngreso TIME
AS

UPDATE dbo.Autos
SET NroPlaca = @nroplaca,
Modelo = @modelo,
Color = @color,
Fecha = @fecha,
HoraIngreso = @horaingreso
WHERE NroPlaca=@nroplaca
GO

Procedimiento almacenado RegistrarRepuesto

• Scripts
CREATE PROCEDURE RegistrarRepuesto
@NroReferencia INT,
@Precio DECIMAL (18, 2),
@Marca VARCHAR (45),
@Descripcion VARCHAR (45)
AS

INSERT INTO dbo.Repuestos (NroReferencia, Precio, Marca,


Descripcion)
Procedimiento almacenado ActualizarRepuesto

• Scripts

CREATE PROCEDURE [dbo].[ActualizarRepuesto]


@NroReferencia INT,
@Precio DECIMAL (18, 2),
@Marca VARCHAR (45),
@Descripcion VARCHAR (45)
AS
UPDATE dbo.Repuestos
SET NroReferencia = @nroreferencia,
Precio = @precio,
Marca = @marca,
Descripcion = @descripcion
WHERE NroReferencia = @nroreferencia
GO

Procedimiento almacenado RegistrarServicio

• Scripts
CREATE ALTER PROCEDURE RegistrarServicio
@NroServicio INT,
@NroCedulaCliente INT,
@NroPlaca VARCHAR (6),
@NroCedulaEmpleado INT,
@Horas TIME,
@FechaServicio DATE
AS
INSERT INTO dbo.Servicios (NroServicio,NroCedulaCliente,
NroPlaca, NroCedulaEmpleado, Horas, FechaServicio)
VALUES (@NroServicio,@nrocedulacliente, @nroplaca,
@nrocedulaempleado, @horas, @fechaservicio)
GOProcedimiento almacenado ActualizarServicio
• Scripts
CREATE PROCEDURE ActualizarServicio
@NroServicio INT,
@NroCedulaCliente INT,
@NroPlaca VARCHAR (6),
@NroCedulaEmpleado INT,
@Horas TIME,
@FechaServicio DATE
AS
UPDATE dbo.Servicios
SET NroServicio=@NroServicio,
NroCedulaCliente = @nrocedulacliente,
NroPlaca = @nroplaca,
NroCedulaEmpleado = @nrocedulaempleado,
Horas = @horas,
FechaServicio = @fechaservicio WHERE
NroServicio=@NroServicio

Procedimiento almacenado RegistrarRepuestoServicio

• Scripts
CREATE PROCEDURE RegistrarRepuestoServicio
@NroServicio INT,
@NroReferencia INT,
@CantidadRepuesto INT ,
@ValorNeto DECIMAL (18, 2)
AS
INSERT INTO dbo.RepuestoServicios (NroServicio, NroReferencia,
CantidadRepuesto, ValorNeto)
VALUES (@nroservicio, @nroreferencia, @cantidadrepuesto,
@valorneto)
GO

Procedimiento almacenado RegistrarFacturas

• Scripts
CREATE PROCEDURE RegistrarFactura
@NroFactura VARCHAR (8),
@NroServicio INT,
@FechaFactura DATE
AS
INSERT INTO dbo.Facturas (NroFactura, NroServicio,
FechaFactura, ValorNeto, ValorIva, ValorTotal)
SELECT
@NroFactura,@NroServicio,@FechaFactura,SUM(R.ValorNeto),
SUM((R.ValorNeto*19)/100),
SUM(((R.ValorNeto*19)/100)+R.ValorNeto)
FROM Servicios S MU
INNER JOIN RepuestoServicios R ON
S.NroServicio=R.NroServicio
WHERE S.NroServicio=@NroServicio
GO

Triggers ActualizarClientes

El presente desencadenador tiene como finalidad registrar un registro en tabla de


auditoria cada vez que se realice una actualización a los datos del cliente
• Scripts
CREATE TRIGGER [dbo].[Trg_ActualizaClientes]
ON [dbo].[Clientes]

FOR UPDATE AS
IF @@ROWCOUNT > 0 AND NOT Update(Control) BEGIN

INSERT INTO dbo.AuditoriaClientes (NroCedulaCliente,


NombresCliente, ApellidosCliente, Accion, Fecha, Hora,
Responsable,control)
SELECT NroCedulaCliente, NombresCliente,
ApellidosCliente,'Update', CONVERT(VARCHAR(10),
GETDATE(),
103),CONVERT(TIME, GETDATE()),'Sistema',Control
FROM Deleted;
END
GO

Triggers ActualizarEmpleados

El presente desencadenador tiene como finalidad registrar un registro en tabla de


auditoria cada vez que se realice una actualización a los datos del empleado.
• Scripts

CREATE TRIGGER [dbo].[Trg_ActualizaEmpleados]


ON [dbo].[Empleados]
FOR UPDATE AS
IF @@ROWCOUNT > 0 AND NOT Update(Control) BEGIN

INSERT INTO dbo.AuditoriaEmpleados


(NroCedulaEmpleado, NombresEmpleado, ApellidosEmpleado, Accion,
Fecha, Hora, Responsable,control)
SELECT NroCedulaEmpleado, NombresEmpleado,
ApellidosEmpleado,'Update', CONVERT(VARCHAR(10), GETDATE(),
103),CONVERT(TIME, GETDATE()),'Sistema',Control
FROM Deleted;
END
GO

Función Facturas

La presente función tiene como finalidad mostrar detalles de las facturas con los
datos relevantes asociados a esta.
• Scripts
CREATE FUNCTION [dbo].[fn_Facturas] (@NroFactura
nvarchar(8)) RETURNS TABLE AS
RETURN (
SELECT
S.NroServicio,C.NroCedulaCliente,C.NombresCliente,C.ApellidosCliente,S.
NroPlaca,S.FechaServicio,
F.FechaFactura,F.NroFactura,F.ValorNeto,F.ValorIva,F.ValorTotal
FROM Facturas F
INNER JOIN Servicios S ON S.NroServicio=F.NroServicio
INNER JOIN Clientes C ON
S.NroCedulaCliente=C.NroCedulaCliente WHERE
F.NroFactura = @NroFactura
)

Para su ejecución se deberá ejecutar el siguiente Query que recibe como parámetro
el número de la factura a consultar.
SELECT * FROM dbo.fn_Facturas (@NroFactura)

3.1.1. Función DetallesFacturas

La presente función tiene como finalidad mostrar detalles de los repuestos asociados
a las facturas con los datos relevantes asociados a esta.
• Scripts
CREATE FUNCTION [dbo].[fn_DetallesFacturas] (@NroFactura
nvarchar(8)) RETURNS TABLE AS
RETURN (

SELECT
F.FechaFactura,F.NroFactura,S.NroServicio,S.FechaServicio,RS.NroRefere
ncia,R.Descripcion, RS.CantidadRepuesto,R.Precio
FROM Facturas F
INNER JOIN Servicios S ON S.NroServicio=F.NroServicio
INNER JOIN RepuestoServicios RS ON
S.NroServicio=RS.NroServicio
INNER JOIN Repuestos R ON
RS.NroReferencia=R.NroReferencia
WHERE F.NroFactura = @NroFactura
)

Para su ejecución se deberá ejecutar el siguiente Query que recibe como parámetro
el número de la factura a consultar.
SELECT * FROM dbo.fn_DetallesFacturas (@NroFactura)

Consultas pertinentes según el caso

Para las consultas de las tablas generadas se debe utilizar las siguientes consultas
con el fin de validar tanto la existencia de las tablas con los registros incluidos en ellas.
• Scripts
SELECT * FROM Clientes
SELECT * FROM Empleados
SELECT * FROM Autos
SELECT * FROM Servicios
SELECT * FROM Repuestos
SELECT * FROM RepuestoServicios
SELECT * FROM Facturas
Informe de pruebas

• Se realizan las validaciones para corroborar la funcionalidad de los


procedimientos almacenados, triggers y funciones.
Ilustración 5. Listado de procedimientos almacenados creados

Fuente: propia 2020


• Scripts
Informe de pruebas procedimientos almacenados
Nombre Procedimiento Almacenado SQL

Registrar EXECUTE
Clientes dbo.RegistrarCliente
1128521458, 'Gabriel', 'Torres
Dominguez', 6541214,
'Soledad Cll 23- 34 '

Actualizar EXECUTE
Clientes dbo.ActualizarCliente
1128521458, 'Gabriel de
Jesus', 'Torres Dominguez',
6541214 , 'Soledad Cll
23- 34 '
SELECT * FROM Clientes
WHERE
NroCedulaCliente='11285214
58'

Registrar EXECUTE
Empleado dbo.RegistrarEmpleados
9010451, 'Ronald
Ricardo','Ortiz'

Actualizar EXECUTE
empleados dbo.ActualizarEmpleado
9010451, 'Ronald','Ortiz'

Registrar EXECUTE
Autos dbo.RegistrarAuto 'RTO123',
'Mercedes Benz', 'Blanco',
'2020-12-14', '10:00:00'

Actualizar EXECUTE
Autos dbo.ActualizarAuto
'RTO123', 'Mercedes Benz
2021', 'Rojo', '2020-12-14',
'10:00:00'
Para el caso de los Triggers, estos están habilitados para cuando se realice una
actualización a los datos de las tablas Empleados y Clientes se inserte un registro con el
dato de la actualización.

. Informe de pruebas Triggers

Fuente: propia 2020

Para finalizar la fase de pruebas se cuenta con dos funciones Fn_Facturas y


Fn_DetallesFacturas que devuelve información relacionada con la factura solicitada.
Ilustración 7. Informe de pruebas Funciones
Modelo de base de datos Taller

También podría gustarte