Sei sulla pagina 1di 12

Tabla de contenido

TABLA DE CONTENIDO 1

1. CASO PLANTEAO 2

1.1 Diagrama Entidad Relación 1

1.2 Esquema Relacional 1

1.3 Modelo lógico Relacional 4

1.4 Diccionario de Datos 5

1.5 Restricciones 6
1.5.1 Funciones y procedimientos 6
Consulta1: Crear, consultar, eliminar y modificar Cliente 6
Consulta2: Crear, consultar, eliminar y modificar Departamento 7
Consulta3: Crear, consultar, eliminar y modificar País 7
Consulta4: Listar el servicio prestado a un cliente dado su DNI, en un rango de fechas dado 8
Consulta5: Listar el repuesto que mayor número de veces se ha usado en el servicio prestado en un rango
de fechas 8
1.5.2 Trigger 9

1.6 Código SQL para crear database 9

1.7 Link video base de datos taller poli 9

1
1. CASO PLANTEAO

Usted es contratado para construir una base de datos para la administración de un taller
mecánico.

La base de datos incluirá información acerca de los clientes, los autos, los empleados que
trabajan en el taller y los repuestos utilizados para cada servicio.

La base de datos debe:

● Registrar el cliente y auto de cada servicio.


● Del cliente se registra la cédula, nombres y apellidos, teléfono y dirección.
● Del auto se registra la placa, el modelo, el color, fecha y hora de ingreso.
● A cada servicio se asigna un empleado disponible.
● El empleado a cargo del servicio registrará los repuestos con su referencia,
descripción, marca y precio al igual que las horas empleadas en el servicio.
● Con base en el precio de los repuestos, el número de horas empleadas y la utilidad
estimada se crea una factura que además incluye un IVA del 19%

Para el desarrollo del ejercicio iniciamos creando el diagrama de flujo de datos o mejor
conocido como el modelo entidad relación, identificando plenamente los datos principales
que se asignarían como entidad, para posteriormente definir los atributos que permitieran
determinar esas cualidades únicas y especificas de cada entidad, para la adecuada gestión de
la información a partir de la base de datos. Al tener esta información identificada, se procedió
a precisar las relaciones que se generan entre las entidades para el uso efectivo de la
información dentro de la base, definiendo los insumos que puede generar una entidad para el
desempeño de otra y así mismo las dependencias que surgen de las relaciones entre las
entidades del ejercicio de la empresa.

En el diagrama definimos 6 entidades principales, con sus correspondientes atributos, el


cliente, los automóviles, los empleados, los repuestos, los servicios y las facturas, logrando
cubrir toda la información importante del negocio, para su adecuada gestión y control dentro
del ejercicio del taller.

2
1.1 Diagrama Entidad Relación

Muestr
a

Refier
e
Contiene

Contie
ne
Gener
a Gener
a

Paga

Registra
Registra

Registr
a Pertene
ce
Tiene

1
1.2 Esquema Relacional

“TallerPoli”.” Empleados” ( “IdEmpleados” Serial NOT NULL, “Identificación” Serial


NOT NULL, “PrimerNombre” character(50) NOT NULL, “SegundoNombre”
character(50), “PrimerApellido” character(50) NOT NULL, “SegundoApellido”
character, “IndHabilitado” bit(1) NOT NULL, PRIMARY KEY (“IdEmpleados”)

"TallerPoli"."Horario" ( "IdHorario" serial NOT NULL, "DiaSemana" character(8)


NOT NULL, "HoraInicio" date NOT NULL, "HoraFin" date NOT NULL, "IdHabilitado"
bit(1) NOT NULL, PRIMARY KEY ("IdHorario")

"TallerPoli"."País" ( "IdPais" serial NOT NULL, "Pais" character(50) NOT NULL,


"IndHabilitado" bit(1) NOT NULL, PRIMARY KEY ("IdPais")

"TallerPoli"."Departamentos" ( "IdDepartamento" serial NOT NULL,


"Departamento" character(50) NOT NULL, "IndHabilitado" bit(1) NOT NULL,
PRIMARY KEY ("IdDepartamento")

"TallerPoli"."Municipios"( "IdMunicipios" serial NOT NULL, "Municipios"


character(50) NOT ULL, "IndHabilitado" bit(1) NOT NULL, PRIMARY KEY
("IdMunicipios")

TABLE "TallerPoli"."Modelo"( "IdModelo" serial NOT NULL, "Modelo"


character(30) NOT NULL,
"IndHabilitado" bit(1) NOT NULL, PRIMARY KEY ("IdModelo")

"TallerPoli"."Color"( "IdColor" serial NOT NULL, "Color" character(20) NOT NULL,


"IndHabilitado" bit(1) NOT NULL, PRIMARY KEY ("IdColor")

"TallerPoli"."Marca"( "IdMarca" serial NOT NULL, "Marca" character(100) NOT


NULL, "IndHabilitado" bit(1) NOT NULL, PRIMARY KEY ("IdMarca")

1
"TallerPoli"."Servicio"( "IdServicio" serial NOT NULL, "CodigoServicio" serial NOT
NULL, "Servicio" character(100) NOT NULL, "PrecioUnitario" integer NOT NULL,
"IndHabilitado" bit(1) NOT NULL, PRIMARY KEY ("IdServicio")

"TallerPoli"."Repuesto"( "IdRepuesto" serial NOT NULL, "CodigoRepuesto"


character(8) NOT NULL, "Repuesto" character(100) NOT NULL, "IdMarca" serial
NOT NULL, "PrecioUnitario" integer NOT NULL, "IndHabilitado" bit(1) NOT NULL,
PRIMARY KEY ("IdRepuesto")

FOREIGN KEY (“IdMarca”) REFERENCES “TallerPoli”.”Marca” (“IdEmpleados”)

"TallerPoli"."Factura"( "IdFactura" serial NOT NULL, "IdEmpleado" serial NOT


NULL, "IdCliente" serial NOT NULL, "IdClienteAuto" serial NOT NULL,
"FechaIngreso" date, "FechaSalida" date, "IndHabilitado" bit(1) NOT NULL,
PRIMARY KEY ("IdFactura")

FOREIGN KEY ("IdEmpleado") REFERENCES "TallerPoli"."Empleados"


("IdEmpleados")

FOREIGN KEY ("IdCliente") REFERENCES "TallerPoli"."Cliente" ("IdCliente")

FOREIGN KEY ("IdClienteAuto") REFERENCES "TallerPoli"."ClienteAuto"


("IdAutoCliente")

"TallerPoli"."FacturaServicio"( "IdServicio" serial NOT NULL, "IdFacturaServicio"


serial NOT NULL, "IdFactura" serial NOT NULL, "Cantidad" integer,
"IndHabilitado" bit(1) NOT NULL,
PRIMARY KEY ("IdFacturaServicio")

FOREIGN KEY ("IdFactura") REFERENCES "TallerPoli"."Factura" ("IdFactura")

FOREIGN KEY ("IdServicio") REFERENCES "TallerPoli"."Servicio" ("IdServicio")

"TallerPoli"."FacturaRepuesto"( "IdFacturaRepuesto" serial NOT NULL,


"IdFactura" serial NOT NULL, "IdRepuesto" serial NOT NULL, "Cantidad" integer,
"IndHabilitado" bit(1) NOT NULL,
PRIMARY KEY ("IdFacturaRepuesto")

FOREIGN KEY ("IdFactura") REFERENCES "TallerPoli"."Factura" ("IdFactura")

2
FOREIGN KEY ("IdRepuesto") REFERENCES "TallerPoli"."Repuesto" ("IdRepuesto")

"TallerPoli"."ClienteAuto"( "Color" character, NOT NULL "IdAutoCliente" serial


NOT NULL, "IdCliente" serial NOT NULL, "IdColor" serial NOT NULL, "IdModelo"
serial NOT NULL, "Placa" character(7) NOT NULL, "IndHabilitado" bit(1) NOT
NULL, PRIMARY KEY ("IdAutoCliente")

FOREIGN KEY ("IdCliente") REFERENCES "TallerPoli"."Cliente" ("IdCliente")

FOREIGN KEY ("IdModelo") REFERENCES "TallerPoli"."Modelo" ("IdModelo")

FOREIGN KEY ("IdModelo") REFERENCES "TallerPoli"."Modelo" ("IdModelo")

"TallerPoli"."Cliente" ( "IdCliente" serial NOT NULL, “IdPais” Serial NOT NULL,


“IdDepartamento” Serial NOT NULL, “IdMunicipio” Serial NOT NULL, "Telefono1"
integer, "Telefono2" integer, "Celular1" integer, "Celular2" integer, “IndHabilitado”
Bit(1) NOT NULL, PRIMARY KEY ("IdCliente")

FOREIGN KEY ("IdPais") REFERENCES "TallerPoli"."País" ("IdPais")

FOREIGN KEY ("IdDepartamento") REFERENCES "TallerPoli"."Departamentos"


"IdDepartamento")

FOREIGN KEY ("IdMunicipios") REFERENCES "TallerPoli"."Municipios"


("IdMunicipios")

3
1.3 Modelo lógico Relacional

Este modelo nos permitió identificar lo que se denomina cardinalidad, que es la forma de
representar las diferentes relaciones que surgen entre las entidades, teniendo en cuenta que
una entidad se puede relacionar o puede depender de una o de varias entidades mas para su
funcionamiento y el logro de la gestión de la información para el que fue creado.
La entidad Horario se tiene en cuenta al realizar

4
1.4 Diccionario de Datos
TABLA LLAVE NOMBRE CAMPO TIPO TAMAÑO DESCRIPCION

Identificación Almacena la cedula del


Cliente PK id_cl Numérico 10
cliente cliente
Almacena el nombre del
Cliente FK Nombre cliente nom1_cl Numérico 50
cliente
Almacena el segundo
Cliente FK Nombre cliente nom2_cl Numérico 50
nombre del cliente
Almacena el apellido del
Cliente FK Apellido cliente apel1_cl Numérico 50
cliente
Almacena el asegundo
Cliente FK Apellido cliente apel2_cl Numérico 50
apellido del cliente
Almacena el teléfono del
Cliente FK Teléfono cliente tel1_cl Numérico 10
cliente
Almacena el teléfono del
Cliente FK Teléfono cliente tel2_cl Numérico 10
cliente
Almacena el número
Cliente FK Celular cliente cel1_cl Numérico 10
celular del cliente
Almacena el número
Cliente FK Celular cliente cel2_cl Numérico 10
celular del cliente
Almacena la dirección del
Cliente Dirección cliente dir_cl Alfanumérico 25
cliente
Identificación del Almacena el código que
Departamento FK Id_dpto Numérico 20
Departamento identifica el departamento
Nombre del Almacena el nombre del
Departamento PK Nom_dpto Alfanumérico 20
Departamento departamento
Identificación del Almacena el código que
Municipio FK Id_Munic Numérico 20
Municipio identifica el Municipio
Nombre del Almacena el nombre del
Municipio PK Nom_mun Alfanumérico 20
Municipio municipio
Identificación del Almacena el código que
País FK Id_país Numérico 15
País identifica el país
Almacena el nombre del
País PK Nombre del País Nom_país Alfanumérico 15
país
Almacena la placa del
Automovil PK Placa Automovil plk_aut Alfanumérico 9 automovil al que se le
presto el servicio
Almacena el modelo del
Automovil FK Modelo Automovil mod_aut Alfanumérico 20
automovil
Almacena el color del
Automovil FK Color Automovil col_aut Numérico 10
automovil
Almacena Hora de Ingreso
Automovil FK Horario Ingreso time_in Numérico 5
Automovil
Almacena la fecha en que
Automovil FK Fecha Ingreso date_in Numérico 8
se presta el servicio
Almacena la Referencia
Referencia del
Repuestos PK ref_rep Alfanumérico 15 del Repuesto utilizado en
Repuesto
el servicio
Almacena la descripción
Descripción del
Repuestos FK des_rep Alfanumérico 20 del Repuesto utilizado en
repuesto
el servicio
Almacena la Marca del
Marca del
Repuestos FK mar_rep Alfanumérico 18 repuesto utilizado en el
repuesto
servicio
Descripción del Almacena la descripción
Servicio PK desc_serv Alfanumérico 30
Servicio del servicio prestado
Almacena el código del
Servicio FK Código Servicio cod_serv Numérico 5
Servivio prestado
Almacena el precio del
Servicio FK Precio del repuesto prec_rep Numérico 15 repuesto utilizado en el
servicio
Almacena la fecha en la
Fecha Fecha Ingreso Fech_ing Numérico 10
cual ingreso el auto
Almacena la fecha en la
Fecha Fecha Salida Fech_sal Numérico 10
cual sale el auto
Almacena la Hora en la
Horario Hora Inicio Hor_ini Alfanumérico 10
que inicia el servicio
Almacena la hora en la
Horario Hora Fin Hor_fin Alfanumérico 10
que finaliza el servicio
Almacena el número de
Factura PK Número Factura Num_fac Alfanumérico 20
Factura
Valor Total Almacena el valor total de
Factura FK Valt_fac Numérico 20
Factura la factura incluìdo el iva .
Almacena el nombre del
Empleado PK Nombre Empleado nom_empl Alfanumérico 20 empleado que atiende el
servicio
Almacena el código del
Empleado FK Código Empleado Cod_empl Numérico 10
empleado

5
1.5 Restricciones

● Numero de Factura no puede duplicarse, debe ser unica por cada servicio prestado

CONSTRAINT num_fac CHECK (num_fac int NOT NULL UNIQUE)

● El horario de atención será de 7:00 am a 12:00am y de 2:00pm 6:00 pm

CONSTRAINT hor_aten_am CHECK (hor_aten_am between 7 to 12)


CONSTRAINT hor_aten_pm CHECK (hor_aten_pm between 2 to 6)

● De acuerdo a la hora de llegada se atenderá el automóvil y el empleado que lo reciba


hasta que no finalice el servicio no podrá prestar servicio a otro cliente.

CONSTRAINT aten_auto1_time_in CHECK (aten_auto1_time_in = time_in_auto1


AND empleado_presta_Servivio_auto2 where aten_auto1_finishOk

● El serial del repuesto utilizado en un servicio, no puede duplicarse, debe ser único por
cada auto y servicio prestado.

CONSTRAINT mar_rep CHECK (mar_rep AND ref_rep AND cod_serv int NOT
NULL UNIQUE)

De acuerdo al desempeño del negocio definido en el caso planteado, se sugirieron las


restricciones relacionadas anteriormente, enfocadas al servicio, al horario de atención y a las
facturas registradas, con las que se pretende controlar algunos procesos del trabajo
desarrollado. De igual forma con estas restricciones se busca asegurar que los datos cumplan
con una serie de condiciones predefinidas para la base de datos propuesta.

1.5.1 Funciones y procedimientos

Consulta1: Crear, consultar, eliminar y modificar Cliente

Crear:
insert into CLIENTES values (idefntificación, 'NOMBRES',
'APELLIDOS',´celular´,'dirección',)

6
Consultar:
SELECT * FROM CLIENTES WHERE Identificacion = Id_cl;

Modificar:
UPDATE CLIENTES SET Nombres = 'JORGE', Apellidos = 'ALOSILLA VELAZCO
VERA', celular = 3153872441, Direccion= 'Calle 17 # 24-80, WHERE Identificacion =
213386;

SELECT * FROM CLIENTES WHERE Identificacion = 213386;

Eliminar:
DELETE FROM CLIENTES WHERE Identificacion = 213386;

Consulta2: Crear, consultar, eliminar y modificar Departamento

Crear:
insert into Departamento values ('CUNDINAMARCA','ID_dpto)

Consultar:

SELECT * FROM DEPARTAMENTO WHERE Nombre = 'CUNDINAMARCA';

Modificar:
UPDATE DEPARATAMENTO SET ID_DPTO = '5,'WHERE Nombre dpto =
'CUNDINAMARCA';

Consultar para Eliminar:


SELECT * FROM DEPARTAMENTO WHERE Nombre = 'CUNDINAMARCA';

DELETE FROM DEPARTAMENTO WHERE Nombre = 'CUNDINAMARCA';

Consulta3: Crear, consultar, eliminar y modificar País

Crear:
insert into PAIS values ('COLOMBIA', 1111)

SELECT * FROM CIUDAD WHERE Nombre_País = 'COLOMBIA';


7
Modificar:

UPDATE PAIS SET Nombre_País = 'COLOMBIASURAMERICA' WHERE Nombre_País


= 'COLOMBIA';

Eliminar:
SELECT * FROM CIUDAD WHERE Nombre_País = 'COLOMBIASURAMERICA';

DELETE FROM CIUDAD WHERE Nombre_Ciudad = 'COLOMBIASURAMERICA';

Consulta4: Listar el servicio prestado a un cliente dado su DNI, en un rango de fechas

dado

● Para este caso tomamos la siguiente consulta y le colocamos como parámetro el número

de cédula 60341385, y colocamos la fecha de inicio entre el 1 de Enero de 2019 y el 30

de Junio de 2019:

SELECT ID_servicio, IDENTIFICACION, Id_cl, Fecha_Inicio, Fecha_Fin,


FORMAT((PRECIO_TOTAL), 'C', 'en-us') AS 'VALOR TOTAL'
FROM SERVICIOS, CLIENTES
WHERE Servicios.Id_Cliente = Id_cl AND Identificacion = '60341385' AND Fecha_Inicio
BETWEEN '20190101' AND '20190630'

Consulta5: Listar el repuesto que mayor número de veces se ha usado en el servicio

prestado en un rango de fechas

● Recurriremos a la sentencia TOP, la cual nos permite saber, con parámetros de rango de

Fecha Inicial, cual es el repuesto mas usado en el servicio del taller. La sentencia queda

8
de la siguiente forma, trabajando con Fecha Inicio 1 de Enero de 2019y Fecha Final 30

de Junio de 2019, agrupando los resultados:

SELECT TOP(1) Ref_rep.Referencia_repuesto, AND Des_rep.Descripcion_repuesto.AND


Mar_rep.Marca_repuesto
FROM Servicio, Ref_rep.Referencia_repuesto, Des_rep.Descripcion_repuesto,
Mar_rep.Marca_repuesto
WHERE Servicio, Ref_rep.Referencia_repuesto, Des_rep.Descripcion_repuesto,
Mar_rep.Marca_repuesto AND Ref_rep=Referencia repuesto AND,Des_rep =descripción
del respuesto AND Mar_rep= Marca repuesto AND FECHA_INICIO BETWEEN
'20190101' AND '20190630'

1.5.2 Trigger

APLICACION DE ACID

1.6 Código SQL para crear database

Creat e
Dat abase.docx

Doble click para que se muestre el documento.

1.7 Link video base de datos taller poli

https://youtu.be/MewhDLrHIYg

Doble click para ver el video

Potrebbero piacerti anche