Está en la página 1de 52

UNIVERSIDAD MAYOR DE SAN SIMÓN

FACULTAD DE CIENCIAS Y TECNOLOGÍA


CARRERA DE INGENIERÍA DE SISTEMAS

PROYECTO TALLER DE BASE DE DATOS

PROYECTO CAR SERVICES


Grupo 5

Docente: Boris Marcelo Calancha Navia

Estudiantes:Alarcón Castro Iván Douglas

Daza Soto Juan Andrés

Monje Aranibar Antonio

Perez Montes Sisa Eduarda

Carrera: Ing.Sistemas

Materia: Taller de Base de Datos


INTRODUCCIÓN
El ser humano siempre ha tenido la necesidad de guardar información es por
ello que los orígenes de tener bases de datos provienen de la antigüedad en
donde ya se tenía en existencia grandes bibliotecas y toda clase de registros
entre ellos los que se llevaban de las cosechas.
Las bases de datos se usan ampliamente en diversas situaciones:Comercio
para almacenar información sobre las ventas, las compras, el inventario y los
clientes. Telecomunicaciones: para hacer un registro de facturas, llamadas,
tarjetas telefónicas, redes de comunicaciones.
Con este fin el taller mecánico Car services nos presenta un problema dentro
de su taller que sería una mala administración de sus datos administrativos y
de personal, también carecen totalmente de una app que gestione dichos
datos llevando únicamente un registro escrito de toda su información por este
motivo el taller mecánico Car services nos pide subsanar los problemas de
administración de datos del personal,ingresos, egresos y clientes de dicho
taller para ello se necesitará una app con su respectiva base de datos
teniendo como principales problemas los siguientes:

● ingresos, egresos
● registro histórico de clientes y servicios
● registro de inventarios
● datos del personal

En el presente documento se llevará a cabo la documentación de todo el


proceso de diseño e implementación de dicha base de datos.
Requerimientos de Almacenamiento:
● Para empezar se necesita almacenar los datos de los empleados en la
base de datos cada uno con su código
Personal,nombre,fechaNac,teléfono,correo electrónico,fecha
contratación para saber qué trabajos realizó y en qué vehículos, la fecha
de fin contrato,cargo empleado.

● Se debe almacenar los datos del vehículo con los requerimientos


necesarios o fallas para el diagnóstico y su respectiva reparación.

● La empresa necesita el registro de los datos históricos de las


reparaciones realizadas en cada automóvil

● Registrar los datos personales de los empleado y así también de los


usuarios o también llamados clientes

● Es necesaria una información de los inventarios en el almacén para


verificar los stocks disponibles en el taller.

● Necesitaremos guardar la información de las herramientas disponibles


si están en uso o en mal estado para respectivo cambio o reparación

● Necesitaremos guardar la información de los productos adquiridos o


trabajos realizados por los distintos tipos de trabajo a realizar

● Registrar el control de horarios de entrada y de salida de los empleados


en el trabajo así también como la asignación de turnos, para la
verificación de posibles descuentos por inasistencias o atrasos ,bonos
por horas extras.

● Necesitaremos controlar si un cliente es frecuente (casero) para saber si


es merecedor o no de un descuento.
Clientes tipo A
Clientes tipo B
Cliente normal
Modelo ER Base de Datos (Inicial)
Como un primer paso fue plantearnos cómo sería nuestro primer modelo de la base
de datos siguiendo la información inicial que nos brindó el cliente a través de eso se
llego a sacar el siguiente modelo ER de la base de datos.
Chequeos Realizados
Con el fin de verificar la calidad de nuestro modelo ER inicial realizamos varios tipos
de chequeos.

Navigation Check
1. Mostrar el mecánico o mecánicos que realizaron el cambio de anillas en la
reparación del motor del auto Mazda del señor Carlos Sejas, y la fecha en la
cual fue entregado es
2 Mostrar la lista de repuestos e insumos que el Sr. Roger Tapia tuvo que comprar
para su auto Toyota RAV4 en la reparación del mes de febrero del presente año.
3 Mostrar los horarios y sus respectivos turnos de este mes, en los que está
asignado al empleado Jorge Chávez.

4 Mostrar la asistencia del mes de febrero del empleado Jorge Chávez, esto
significa por cada día de trabajo de febrero, por cada turno del mencionado mes,
hora de registro de ingreso y de salida.
(los turnos están en la tabla intermedia del relacionamiento entre empleado y
horario)
5 Mostrar las movilidades (marca, modelo, año, color y tipo) en los que se usó el
scanner en la última quincena del mes de febrero y la falla o fallas que detecte si
existe alguna y el costo individual que representó.
(para esta prueba tuvimos que aumentar el costo del servicio como atributo)
6.-Mostrar la lista de ayudantes (nombre y apellido, edad, fecha de ingreso al
trabajo) que ganan entre 2200 y 2400 Bs.
7.- Mostrar las vagonetas rojas o guindas que entraron a chapería con daños en por
lo menos el parachoque delantero, qué empleados se hicieron cargo, y que ya se
entregaron a sus dueños, la fecha en que se dejó el móvil en el taller y fecha de
entrega a su dueño.
8.-Mostrar cuantos autos tiene registrados en el taller el cliente Juan Carlos Díaz
hasta el mes anterior.
Derivable relationship check

Se determina que no hay ningún cambio porque el modelo está adecuado para este
chequeo

Entity/value checks

Se añadió una entidad (retrasos) que nos permite traer un mejor registro de las
faltas y retrasos en los meses solicitados.

Entity/link checks
Realizamos el chequeo de entidad/relacionamiento y llegamos a la conclusión de
que el relacionamiento tenía que ser una entidad pero al realizar esto nos dimos
cuenta que la entidad “horario” ya no era necesaria y los atributos de este los
acoplamos a la nueva entidad “turno”.

(antes)
(después)

Minimal arity checks


al realizar el chequeo pudimos evidenciar que dos entidades anteriormente puestas
en nuestra base de datos podrían ser omitidas y sus atributos de estas se podrían
añadir a la tabla de “salario” y aumentamos un atributo más, a parte de las
mencionadas, “salarioNeto” el cual tendrá los datos del salario después de pasar por
los bonos y descuentos

(antes)
(después)

Modelo ER Base de Datos (Final )


Una vez se verificó nuestro modelo ER inicial fuimos añadiendo nuevas entidades
asi como tambien quitamos o modificamos otras
Modelo Logico - Fisico
de la Base de Datos

Modelo Lógico:
Modelo Físico:
Scripts SQL
Consultas:
1. Mostrar el mecánico o mecánicos que realizaron el cambio de anillas en la
reparación del motor del auto Mazda del señor Carlos Sejas, y la fecha en la cual
fue entregado este año.

2. Mostrar la lista de repuestos e insumos que el Sr. Roger Tapia tuvo que comprar
para su auto Toyota RAV4 en la reparación del mes de febrero del presente año.
3. Mostrar los horarios y sus respectivos turnos de este mes, en los que está
asignado el empleado Jorge Chávez.

4. Mostrar la asistencia del mes de febrero del empleado Jorge Chávez, esto
significa por cada día de trabajo de febrero, por cada turno del mencionado mes,
hora de registro de ingreso y de salida.
5. Mostrar las movilidades (marca, modelo, año, color y tipo) en los que se usó el
scanner en la última quincena del mes de febrero y la falla o fallas que detecto si
existe alguna y el costo individual que representó.

6. Mostrar la lista de ayudantes (nombre y apellido, edad, fecha de ingreso al


trabajo) que ganan entre 2200 y 2400 Bs.
7. Mostrar las vagonetas rojas o guindas que entraron a chapería con daños en por
lo menos el parachoque delantero, qué empleados se hicieron cargo, y que ya se
entregaron a sus dueños, la fecha en que se dejó el móvil en el taller y fecha de
entrega a su dueño.
8. Mostrar cuántos autos tiene registrados en el taller el cliente Juan Carlos Díaz
hasta el mes anterior.

INVESTIGACIÓN(ADICIONAL)
Seguridad en base de datos
● Introducción
La seguridad de las bases de datos se refiere al conjunto de herramientas, medidas y
controles diseñados para establecer y mantener la confidencialidad, la integridad y la
disponibilidad de las bases de datos manteniendo un equilibrio entre estas tres
cualidades..
La seguridad de las bases de datos debe tratar y proteger lo siguiente:

● Los datos de la base de datos


● El sistema de gestión de bases de datos (DBMS)
● Cualquier aplicación asociada
● El servidor de base de datos físico y/o el servidor de base de datos virtual, y el
hardware subyacente
● La infraestructura informática y/o de red utilizada para acceder a la base de datos

¿Por qué es importante?


En la actualidad la información se ha vuelto un activo demasiado importante para las empresas ya
que esta puede dar ventaja por encima de la competencia o puede ser la base de funcionamiento de
la empresa y la vulnerabilidad de esta dependera de su valor o de su manejo. Esto puede acarrear
consecuencias como:

● Propiedad intelectual comprometida: la propiedad intelectual puede ser


fundamental para poder mantener una ventaja competitiva en el mercado. Si dicha
propiedad intelectual es robada o queda expuesta, su ventaja competitiva puede ser
difícil o imposible de mantener o recuperar.
● Daño a la reputación de la marca: los clientes o los socios pueden no estar
dispuestos a comprar sus productos o servicios si no sienten que pueden confiar en
usted para proteger los datos.
● Continuidad de negocio: algunas operaciones de negocio no pueden continuar
hasta que se resuelva la infracción.
● Multas o sanciones por falta de conformidad: el impacto financiero por no cumplir
con las normativas globales, como la Sarbannes-Oxley Act (SAO) o Payment Card
Industry Data Security Standard (PCI DSS); las normativas de privacidad de datos
específicas del sector, como la HIPAA, o las normativas regionales de privacidad de
datos, puede ser devastador, con multas superiores a varios millones de dólares por
incumplimiento.

No hay duda de que los cibercriminales en general son muy inteligentes. Por lo tanto, para
anular los factores de riesgo existentes, hay que actuar con más inteligencia que ellos. Con
las técnicas de seguridad de datos, es necesario conocer los pasos esenciales que
debemos tomar para asegurar la información y mantenerla intacta.

● Técnicas de seguridad

Es primordial tener en cuenta que hay diferentes técnicas de seguridad de datos, y no todas
son relevantes o aplicables a todas las empresas. Sin embargo, aquí os mostramos 7 de las
técnicas de seguridad de datos más efectivas para asegurar nuestros datos.

1. Encriptación de datos

Las regulaciones de la industria requieren que algunos tipos de datos sean encriptados,
pero también se podrían encriptar otros tipos de datos que no se suelen tener en cuenta.
Algunos de los datos que se suelen encriptar son los mensajes SMS, correos electrónicos,
bases de datos, contraseñas, nombres de usuario, etc. Una vez tenemos el control de
nuestros datos mediante una auditoría de datos y un proceso de data governance o data
management, descubriremos que, tal vez, los datos de los empleados, los datos de los
clientes, la propiedad intelectual y otros datos sensibles también deben ser encriptados.

Antes de considerar la encriptación, debemos comprobar los datos y asegurar que son de
calidad, ya que pueden causar daños a la reputación y perjuicios financieros si se filtran.
Especialmente teniendo en cuenta la posibilidad de que los detalles de desencriptación
caigan en manos de la persona equivocada. Sin embargo, este es un primer paso esencial y
muestra la seriedad de una empresa respecto a la seguridad de los datos.

2. Optimización de la copia de seguridad y la recuperación de datos

Muchas empresas tienen planes para hacer copias de seguridad y recuperar sus datos, que
se basan en la tecnología DR (recuperación de desastres). Este proceso podría darse en un
servicio cloud o en servidores externos. Este proceso es especialmente relevante ya que, si
se corre el riesgo de perder los datos de los clientes, es imposible asegurar que los estamos
protegiendo.

Los incidentes cibernéticos pueden ocurrir durante mucho tiempo sin ser detectados, por lo
que es esencial restaurar los datos a su condición original y prediseñada. Por eso los
procesos de integración de datos son fundamentales. El proceso es bastante complicado,
pero con la tecnología adecuada, siempre podremos recuperar los datos en su estado
original.

3. Data masking

El data masking es una tecnología emocionante que se utiliza para garantizar la seguridad
de los datos. El data masking o enmascaramiento de datos, también se conoce como
ofuscación de datos, e implica ocultar la información original que contienen los datos con
códigos y otros caracteres aleatorios. Esta es una técnica de seguridad de datos ideal para
situaciones en las que se busca asegurar información clasificada que no debe ser leída por
nadie. De esta manera, enmascarando la información, nos aseguramos de que somos los
únicos que la entendemos y que nadie más, especialmente un hacker o un usuario no
autorizado, podrá descifrarla si accede a ella.

4. Seguridad de acceso a datos

Otra manera de proteger los datos confidenciales o sensibles es restringiendo el acceso a


los datos a determinados usuarios. Power BI permite agregar filtros restrictivos en sus
dashboards, reports y conjuntos de datos, a través de Row Level Security (seguridad de
accesos a fila). De esta manera, los distintos usuarios de una empresa solo tendrán acceso
y podrán gestionar aquellos datos que les competen y que tiene sentido que vean. Esta
técnica es especialmente relevante cuando se trabaja con una data warehouse o en
business intelligence.

5. Promocionar la transparencia y el cumplimiento de las leyes

Muchas organizaciones ya han adoptado y están cumpliendo el Reglamento General de


Protección de Datos (GDPR), que es la norma de la Unión Europea para manejar los datos
de los clientes. Con el GDPR, el cliente tiene el poder en sus manos, permitiéndole controlar
el almacenamiento y la gestión de sus datos. Es un mandato detallado y minucioso para
que las organizaciones de todo el mundo manejen correctamente los datos de cualquier
ciudadano europeo.
Las empresas que cumplen con la GDPR utilizan su cumplimiento como palanca para
promover la recolección, uso y almacenamiento de datos de los consumidores, ya que
demuestra la seriedad de la organización y su compromiso con la protección de la
información personal de los consumidores.

6. Seguro cibernético

Se estima que el coste medio de la violación de datos aumentó en un 6,4% en 2018,


alcanzando un promedio de 3,86 millones de dólares. El alto precio de una brecha de
seguridad es la razón por la que muchas empresas están invirtiendo en seguros de riesgo
cibernético, mediante los cuales adquieren pólizas que cubren los gastos comunes
reembolsables. Estos gastos podrían incluir el examen forense para la revisión de la
violación de datos, las multas reglamentarias, los gastos legales, los costos de gestión y las
pérdidas monetarias por la interrupción del negocio.

7. Trabajar con expertos en datos

Puede ser difícil decidir qué técnica y tecnologías de seguridad de datos utilizar o cuál es la
mejor para cada organización. Hay numerosas estrategias y tecnologías que podemos
implementar. Reglamentos como el GDPR sólo aumentan las expectativas de los clientes.
Por ello, es recomendable trabajar con expertos en datos que tengan el conocimiento y la
comprensión necesarios de los cambios que se necesitan llevar a cabo para salvaguardar la
información.

● Otros aspectos importantes

Asegurar la seguridad e integridad en base de datos

Se debe tener un sistema de integridad en base de datos único, bien definido y bien controlado ya
que esto aumenta la estabilidad, el rendimiento, la reutilización y facilita el mantenimiento.

Es claro que el riesgo implícito en este tipo de acciones maliciosas varía de una organización a
otra, aunque entre los ataques más comunes se encuentran como objetivo:

➢ Datos personales de clientes, números de tarjetas de crédito.


➢ Detalles estratégicos del negocio.
➢ Información financiera de la propia compañía y de sus socios.
➢ Datos sensibles acerca de los empleados.

Podría decirse que se trata de la mayoría de las bases de datos activas en los directorios de la
empresa, al menos, todas las que, de alguna forma, resultan relevantes para el negocio.
Precisamente por ello, es necesario mantener sólidas prácticas de seguridad y estrategias de
defensa que permitan combatir este tipo de ataques

Una de las formas más efectivas de garantizar la integridad en base de datos es implementando
algunas de las mejores prácticas de seguridad. Entre ellas se encuentran las siguientes:
➢ Recurrir al enmascaramiento de datos o permitir a los usuarios acceder a cierta
información sin poder verla ayuda a mantener la confidencialidad incluso en entornos de
pruebas.
➢ Minimizar los extras y limitarse a los servicios, aplicaciones y funcionalidades que
realmente son necesarios para asegurar el normal funcionamiento de las operaciones del
negocio, de esta forma se reduce el riesgo.
➢ Asegurarse de que los administradores de la base de datos entiendan la importancia
de garantizar su protección.
➢ Mantener actualizadas las bases de datos y eliminar los componentes desconocidos.
➢ Recurrir a herramientas como el análisis de código estático, que ayudan a reducir los
problemas de inyección de SQL, desbordamiento de búfer y problemas de configuración.
➢ Hacer copias de seguridad frecuentes para evitar la pérdida de datos.
➢ Realizar una auditoría Después de crear una configuración totalmente segura, debemos
realizar una auditoría para asegurarnos de que estamos siguiendo la hoja de ruta establecida
para mantener segura nuestra base de datos.

● Conclusiones
*la base de datos a hecho avances significativos en el manejo de la seguridad de las
bases de datos
*Varias de las aplicaciones que manejamos en nuestra vida diaria requieren
confidencialidad necesitamos modelos más sofisticados de seguridad:Entidades
bancarias, medicas, gobierno, militar,etc
*aunque la implementación de seguridad más sofisticadas no es tarea fácil,
debemos hacer el esfuerzo por lograr que nuestros datos estén completamente
seguros

● Bibliografía

★ https://blog.bismart.com/6-tecnicas-de-seguridad-de-datos-efectivas
★ https://www.ibm.com/es-es/cloud/learn/database-security#:~:text=La%20seguridad%20de%
20las%20bases,de%20las%20bases%20de%20datos.
★ https://es.slideshare.net/mesarango/bd-avanzada
★ https://www.monografias.com/trabajos26/seguridad-base-datos/seguridad-base-datos2
★ https://www.monografias.com/trabajos7/bada/bada
MOTORES, TRIGGERS Y BITÁCORAS EN

BASE DE DATOS TALLER MECÁNICO

1. Investigar qué tipos de tablas usa considerando el manejador que están


administrando y otro adicional, explicar sus características más importantes.

Mysql
Tablas MyISAM
Es el tipo de tabla por defecto en MySQL desde la versión 3.23. Optimizada para sistemas
operativos de 64 bits, permite ficheros de mayor tamaño que ISAM. Además los datos se
almacenan en un formato independiente, con lo que se pueden copiar tablas de una
máquina a otra de distinta plataforma. Posibilidad de indexar campos BLOB y TEXT.
Internamente, hay dos variantes de este tipo de tabla, el servidor MySQL elige el tipo
apropiado por sí mismo:

● MyISAM Static: Estas tablas se usan cuando todas las columnas de la tabla se han
definido predeterminado su tamaño. El acceso en tales tablas es particularmente
eficiente. Esto es cierto incluso si la tabla tiene frecuentes cambios (es decir, cuando
hay muchos comandos INSERT, UPDATE y DELETE sobre ella). Además, la
seguridad de los datos es bastante alta, ya que, en el caso de archivos corruptos u
otros problemas, es relativamente fácil de extraer registros.

● MyISAM Dynamic: Si en la declaración de una tabla también hay solo un


VARCHAR, xxxTEXT o campo xxxBLOB, entonces MySQL selecciona
automáticamente este tipo de tabla. La ventaja significativa sobre la variante estática
MyISAM es que el requisito de espacio suele ser significativamente menor: Las
cadenas de caracteres y los objetos binarios requieren un espacio acorde con su
tamaño real .

Sin embargo, es un hecho que los registros de datos no son del mismo tamaño. Si los
registros son luego alterados, entonces su ubicación dentro del archivo de la base de datos
puede tener que cambiar. En el viejo lugar aparece un agujero en el archivo de base de
datos. Además, es posible que los campos de un registro no estén todos almacenados
dentro de un bloque contiguo dentro del archivo de la base de datos, es decir, puede estar
en varias ubicaciones. Todo esto da como resultado cada vez más tiempos de acceso más
largos a medida que la tabla editada se fragmenta cada vez más, a menos que use
OPTIMIZE TABLE o el programa de optimización myisamchk que se puede ejecutar de vez
en cuando.

INNODB
Además del formato MyISAM, MySQL admite un segundo formato de tabla, InnoDB. Esto es
una alternativa moderna a MyISAM, que ofrece sobre todo las siguientes funciones
adicionales:
● Transacciones: las operaciones de la base de datos en tablas InnoDB se pueden
ejecutar como transacciones. Esto permite ejecutar varios comandos SQL
conectados lógicamente como una sola entidad. Si un error ocurre durante la
ejecución, luego todos los comandos (no solo aquel durante el cual se produjo el
error) son anulados. Además, las transacciones ofrecen otras ventajas que mejoran
la seguridad de aplicaciones de bases de datos.
Las transacciones se pueden ejecutar en los cuatro niveles de aislamiento del
estándar ANSI-SQL/92 (LEER NO COMPROMETIDO, LEÍDO COMPROMETIDO,
REPETIBLE LEÍDO, SERIALIZABLE).
● Bloqueo de nivel de fila: Al implementar transacciones, el controlador de tabla
InnoDB utiliza una fila interna de nivel de bloqueo. Esto significa que, durante una
transacción, toda la tabla no tiene que ser bloqueada para el acceso de otros
usuarios (que es el caso de una tabla MyISAM durante un comando LOCK TABLE),
pero solo los registros de datos se ven realmente afectados. Si muchos usuarios
están simultáneamente haciendo cambios en una tabla grande, el bloqueo a nivel de
fila puede traer una gran ventaja en eficiencia.
● Foreign Key Constraints (Restricciones de claves externas): Cuando se definen
relaciones entre tablas, la tabla del controlador InnoDB asegura automáticamente
que la integridad referencial de la tabla se conserve después de utilizar comandos
DELETE. Por lo tanto, es imposible, por ejemplo, que un registro en la tabla A se
refiera a un ya no existente en la tabla B.
● Recuperación tras error: Después de un error, las tablas InnoDB se devuelven de
forma automática y muy rápida a un estado consistente (siempre que el sistema de
archivos del ordenador no haya sido dañado).

ORACLE database
Los tipos de tablas mas comunes en “oracle database” son las tablas relacionales, otros dos
tipos de tablas soportadas por oracle son tablas de objetos y del tipo “xml”, cualquiera de los
tres tipos de tablas pueden ser definidas como permanentes o temporales.
las tablas temporales mantienen datos de sesiones privadas que se mantienen hasta que se
realice la transacción o termine la sesión.
puede crearse tablas relacionales estructuras organizadas por índices y por monton.
montón
En las estructuras de montón las filas no son guardadas en ninguna forma en particular
Índice
En las estructuras organizadas por índices el orden de las filas es determinado por los
valores de una o mas filas seleccionadas,para algunas aplicaciones esta estructura
proporciona mayor rendimiento y un uso mas optimo del espacio en disco

2. Implementar los siguientes triggers:


a) Cada que se culmine con todas las sub-tareas que involucra a su vez la conclusión total
del trabajo que se realizó sobre un automóvil, y considerando que cada tarea culminada
(sea mantenimiento o reparación) tiene un sub costo, implementar un trigger que calcule
automáticamente el costo total del trabajo y lo almacene en el campo y en la tabla
correspondiente de acuerdo a su modelo.
b) Cada que se culmine una transacción con el cliente (es decir que se le entregue el auto
reparado), evaluar y recalcular mediante un trigger la categoría del cliente.

Declaramos el trigger
Para el trabajo trabajaremos con los clientes Juan Andres y Carlos, está tablas se reevalúa
la “CATEGORÍA” según lo que contenga “FRECUENCIAUSOSERVICIO” para que un
cliente de categoría A el cliente minimamente tiene que haber frecuentado el taller como
mínimo 4 veces , para lo que es un cliente de tipo B este tiene que haber frecuentado 3
veces y para uno de tipo C menor a 3

En este caso Juan Andres tiene una frecuencia de uso del servicio igual a 2 y por tanto es
un cliente de categoría C y Carlos una frecuencia de 3 con una categoría de tipo B.

Como se puede ver aquí nos muestra lo que seria el codigo del auto en la tabla SERVICIO
buscamos esos autos en nuestra tabla VEHÍCULO para poder ver el código de dueño si
son iguales a los de la tabla CLIENTE

Ahora para ver q si funciona nuestro TRIGGER de recalcular la categoría de los clientes es
necesario ingresar una fecha de la salida en la tabla SERVICIO
Al modificar dicha columna de FECHASALIDA

Nuestro TRIGGER se activará en consecuencia y se modificará en la tabla CLIENTE

Como se ve se actualizó la “FRECUENCIAUSOSERVICIO” y “CATEGORÍA”

Y recalculo la categoría Juan Andres ahora es de tipo B y Carlos es de tipo A

c) Cada que un empleado registre su entrada, evaluar considerando su horario de ingreso


al turno si llego en hora o con retraso, si marco con retraso, guardar los datos que se
requiera (puede ser un campo o una tabla) donde se guarde el tiempo de retraso y el dato
retraso; se aclara que el ingreso debe ser igual o mayor a 10 minutos para ser
considerado retraso.

DECLARAMOS EL TRIGGER

CREATE TRIGGER `ASISTENCIA ACTUALIZAR` AFTER INSERT ON `ASISTENCIA`


FOR EACH ROW
insertamos una nueva asistencia

verificamos el registro del dato

vemos que llego tarde asi que se registra en la tabla retrasos


d) Implementar en la tabla Cliente los triggers que ayuden en la validación de datos de
entrada como caracteres en nombres, datos numéricos y/o fechas válidas.

3. Implementar las siguientes bitácoras:


I. Identificar las tablas críticas, aquellas que manejan datos como dinero y otros
similares, la modificación no autorizada puede ocasionar serios problemas a la
empresa

Entre las tablas críticas tenemos:

INSUMO

SERVICIO

SALARIO

Cada tabla tiene un atributo que maneja dinero y un cambio en este afectaría y pondría en
riesgo las finanzas de la empresa
II. Implementamos una bitácora a la tabla critica “Salario”

Creamos una nueva tabla en nuestra base de datos donde se pueda almacenar la siguiente
información:
➔ Detalle: que es la acción o el comando que llega a ser ejecutado
➔ Fecha: fecha y hora actual en la cual se modifica la base de datos
➔ ID: el IDSALARIO de cada empleado
➔ SalarioActual: la información de registro que fue insertado o actualizado
➔ SalarioAnterior: la información de registro que acaba de ser actualizado o eliminado
➔ Usuario: el usuario que realizó un cambio en la base de datos

Bitácora Salario.-
Se creó los siguientes tres triggers

SALARIOINSERCION

DELIMITER $$
CREATE TRIGGER SALARIOINSERCION AFTER INSERT
ON SALARIO FOR EACH ROW
BEGIN
INSERT INTO
BITACORASALARIO(BITACORASALARIO.Usuario,BITACORASALARIO.SalarioAnterior,BITACORASALARIO.Sala
rioActual,BITACORASALARIO.Fecha,BITACORASALARIO.ID,BITACORASALARIO.Detalle)
VALUES(CURRENT_USER,0,NEW.SALARIO,NOW(),NEW.IDSALARIO,'Se INSERTO');
END $$
DELIMITER ;
SALARIOBORRADO

DELIMITER $$
CREATE TRIGGER SALARIOBORRADO AFTER DELETE
ON SALARIO FOR EACH ROW
BEGIN
INSERT INTO
BITACORASALARIO(BITACORASALARIO.Usuario,BITACORASALARIO.SalarioAnterior,BITACORASALARIO.Sala
rioActual,BITACORASALARIO.Fecha,BITACORASALARIO.ID, BITACORASALARIO.Detalle)
VALUES(CURRENT_USER,OLD.SALARIO,0,NOW(),OLD.IDSALARIO,'Se ELIMINO');
END $$
DELIMITER ;

SALARIOACTUALIZACION

DELIMITER $$
CREATE TRIGGER SALARIOACTUALIZACION AFTER UPDATE
ON SALARIO FOR EACH ROW
BEGIN
INSERT INTO
BITACORASALARIO(BITACORASALARIO.Usuario,BITACORASALARIO.SalarioAnterior,BITACORASALARIO.Sala
rioActual,BITACORASALARIO.Fecha,BITACORASALARIO.ID,BITACORASALARIO.Detalle)
VALUES(CURRENT_USER,OLD.SALARIO,NEW.SALARIO,NOW(),OLD.IDSALARIO,'Se ACTUALIZO');
END $$
DELIMITER ;

Tabla de BitacoraSalario con los datos Insertados,Borrados o Actualizados


TECNOLOGÍAS DE ACCESO A BASE DE DATOS E
INTERFACES DE USUARIO
TALLER MECANICO

OBDC(Open DataBase Connectivity)

Conectividad de base de datos abierta (Open Database Connectivity, ODBC) es una


interfaz de programación de aplicaciones (API) de estándar abierto para acceder a
una base de datos desarrollado por SQL Access Group (SAG) en 1989 y lanzada la
primera versión por Microsoft en 1992.
Mediante el uso de sentencias de ODBC en un programa se puede acceder a los
archivos de diferentes bases de datos como ser: Access, dBase, DB2, Excel y Text.
Además del software de ODBC, se necesita un módulo o controlador independiente
para acceder a cada base de datos. El principal promotor y proveedor del soporte de
programación ODBC es Microsoft.
Objetivo.-
El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier
aplicación, sin importar qué sistema de gestión de bases de datos (DBMS)
almacene los datos.
ODBC logra esto al insertar una capa intermedia llamada nivel de Interfaz de Cliente
SQL (CLI),
el software funciona bajo la filosofía de cliente-servidor y utiliza dos modos de
comunicación
● En el primer modo, el driver interpreta las conexiones y llamadas SQL y las
traduce desde el API ODBC hacia el DBMS.
● En el segundo modo para conectarse a la base de datos se crea una DNS
dentro del ODBC que define los parámetros, ruta y características de la
conexión según los datos que solicite el creador o fabricante.
Ventajas.-
ODBC tiene la ventaja de ser un estándar internacional que permite manipular un
amplio número de orígenes de datos relacionales mediante diversos controladores
ODBC de Microsoft y de otros fabricantes.

Quizás, la mayor ventaja es que el acceso a datos a través del ODBC permite el
poder gestionar un amplio rango de datos con una sola interfaz. Desde que las más
populares DBMS ofrecen drivers ODBC, muchas son las aplicaciones que lo
incluyen como drivers de acceso.

Otra ventaja es que al poderse variar la fuente de datos, el cambio de una DBMS a
otra es muy simple.
Desventajas.-

La principal desventaja son las capas a través de las cuales tiene que pasar la
consulta, esto hace que el tiempo de respuesta hasta que se obtienen los datos se
incremente.

El proceso es que la petición ha de "traducirse" a ODBC, para que éste entienda la


consulta. ODBC determina qué fuente de datos contiene los datos que se piden y
transmite la petición a la siguiente capa que es la fuente de datos ODBC (ODBC
data source). La fuente de datos analiza la petición y "traduce" de nuevo la consulta
a un formato que pueda ser "comprendido" por la DBMS.

Otro inconveniente de ODBC es que se limita a datos relacionales basados en la


sintaxis de SQL.

Arquitectura.- ODBC tiene cuatro componentes:

● Aplicación: Realiza el procesamiento y llama a funciones ODBC para enviar


sentencias SQL y recuperar resultados.
● Drive Manager: Carga y descarga controladores en nombre de una
aplicación. Procesa llamadas a funciones ODBC o las pasa a un controlador.
● Controlador: Procesa llamadas a funciones ODBC, envía solicitudes SQL a
una fuente de datos específica y devuelve los resultados a la aplicación. Si es
necesario, el controlador modifica la solicitud de una aplicación para que la
solicitud se ajuste a la sintaxis admitida por el DBMS asociado.
● Fuente de datos: Consiste en los datos a los que el usuario desea acceder y
su sistema operativo asociado, DBMS y plataforma de red (si corresponde)
utilizada para acceder al DBMS.

JDBC (Java Database Connectivity)

Es un API (Application programming interface) que describe o define una librería estándar
para acceso a fuentes de datos, principalmente orientado a Bases de Datos relacionales
que usan SQL (Structured Query Language). JDBC no sólo provee un interfaz para acceso
a motores de bases de datos, sino que también define una arquitectura estándar, para que
los fabricantes puedan crear los drivers que permitan a las aplicaciones java el acceso a los
datos.

Beneficios.-

Hasta antes de la API JDBC, la única forma de acceso a bases de datos desde el Web fue a
través de los programas CGI . El uso de CGI por lo regular requiere que se invoque a otro
programa que tiene que ser ejecutado por la computadora en donde se encuentra la
aplicación CGI. Esto abrevia en forma muy notable el tiempo que se necesita para ejecutar
las instrucciones de SQL. En principio, ODBC está limitado a que el cliente se encuentre en
un sistema Microsoft mientras que el cliente JDBC puede residir en prácticamente cualquier
sistema operativo ya que JDBC está escrito en Java y es portable a cualquier plataforma.

¿Qué son los drivers y qué hacen?

Todos los programas Java que se conectan a una base de datos vía JDBC, utilizan un driver
o controlador de bases de datos. Es el intermediario entre la capa de negocio y la capa de
base de datos y así mismo funge como el “traductor” de las sentencias Java a sentencias
SQL propias del manejador de bases de datos.

Tipos de drivers y arquitecturas.-

Muchos motores de bases de datos tienen diferentes tipos de drivers asociados. Los drivers
JDBC caen en una de las siguientes cuatro categorías:

● Driver tipo 1: El bridge JDBC-ODBC (JDBC-ODBC bridge) provee accesos JDBC


vía la mayor parte de los drivers ODBC. Es importante notar que el código binario de
algunos drivers ODBC, y en muchos casos el código del cliente de la base de datos
también, deberá ser cargado en cada máquina cliente que utiliza este driver, por lo
que este tipo de driver es más apropiado en una red corporativa.
● Driver tipo 2: (Native)Un driver basado en tecnología Java parcialmente con
API nativo (native-API partly-Java technology-based driver) convierte las
llamadas JDBC en llamadas de la API del cliente para Oracle, Sybase, Informix, DB2
u otros DBMS (Sistemas Manejadores de Bases de Datos). Es importante notar que
este tipo de driver requiere que algún código binario sea cargado en cada máquina
cliente.
● Driver tipo 3: (Network) Un driver basado en tecnología Java totalmente con
protocolo de red (net-protocol all-Java technology-based driver) Traslada las
llamadas de JDBC en un protocolo de red independiente del DBMS y dicho protocolo
es, entonces, trasladado a un protocolo DBMS por un servidor. El protocolo de red
específico depende del proveedor
● Driver tipo 4: (Thin) Un driver basado en tecnología Java totalmente con
protocolo nativo (native-protocol all-Java technology-based driver) Esto permite
una llamada directa de la máquina cliente al servidor DBMS y es una solución
práctica para el acceso a Intranet.
2. DESARROLLO DEL PROTOTIPO DE ACCESO A LA BASE DE DATOS

a) El prototipo debe permitir ingresar los datos del cliente, el auto y el

detalle de fallas.

como se puede ver en las siguientes imágenes se logró implementar una interfaz en la que
se nos permite añadir nuevos clientes a nuestra base de datos, así como también el registro
de nuevos autos según los clientes que ya contenga nuestra base de datos por último
también se puede registrar un detalles de las fallas que tenga algun auto en concreto dentro
de nuestra base de datos.

Interfaz para añadir nuevos clientes.


Interfaz para añadir nuevos vehículos

Interfaz para registrar las fallas de los vehículos


b)ADO.NET provee una arquitectura extensible, posibilitando que terceras partes creen sus
propios proveedores de acceso nativo para aplicaciones .NET. Algunos ejemplos de esto
son:
• Data Provider For DB2, desarrollado por IBM
• Oracle Data Provider For .NET, desarrollado por Oracle
• Providers de acceso nativo a bases de datos Open Source, como MySQL y PostgreSQL.
Es importante volver a destacar que utilizando estos proveedores de acceso a datos
cualquier aplicación .NET puede utilizar casi cualquier base de datos relacional existente en
la actualidad como repositorio de información persistente (esto incluye, además de MS SQL
Server, a IBM DB2, Oracle, Sybase, Informix, TeraData, MySQL y PostgreSQL, entre otras).
c)PL/SQL.
d)

e)Se implementaron las siguientes transacciones


BIbliografía
https://docs.microsoft.com/en-us/sql/odbc/reference/what-is-odbc?view=sql-server-ver16
https://dbpedia.org/page/SQL_Access_Group
https://www.oocities.org/milagrosmejias
https://www.uv.es/jac/guia/gestion/gestion3.htm
https://www.computerweekly.com/es/definicion/Open-Database-Connectivity-ODBC
https://desarrolloweb.com/faq/que-es-odbc
https://es.wikipedia.org/wiki/Open_Database_Connectivity
http://profesores.fi-b.unam.mx/carlos/java/JDBC.html

También podría gustarte