Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Carrera: Ing.Sistemas
● ingresos, egresos
● registro histórico de clientes y servicios
● registro de inventarios
● datos del personal
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)
(antes)
(después)
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ó.
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:
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.
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.
6. Seguro cibernético
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.
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:
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
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.
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
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
DECLARAMOS EL TRIGGER
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 ;
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.
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.
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.
Muchos motores de bases de datos tienen diferentes tipos de drivers asociados. Los drivers
JDBC caen en una de las siguientes cuatro categorías:
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.