Wilfredo Meneses
Profesor universitario
Taller
DROP DATABASE IF EXISTS tienda;
CREATE DATABASE tienda CHARACTER SET utf8mb4;
USE tienda;
CREATE TABLE fabricante (
codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
CREATE TABLE producto (
codigo INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
precio DOUBLE NOT NULL,
codigo_fabricante INT UNSIGNED NOT NULL,
FOREIGN KEY (codigo_fabricante) REFERENCES fabricante(codigo)
);
INSERT INTO fabricante VALUES(1, 'Asus');
INSERT INTO fabricante VALUES(2, 'Lenovo');
INSERT INTO fabricante VALUES(3, 'Hewlett-Packard');
INSERT INTO fabricante VALUES(4, 'Samsung');
INSERT INTO fabricante VALUES(5, 'Seagate');
INSERT INTO fabricante VALUES(6, 'Crucial');
INSERT INTO fabricante VALUES(7, 'Gigabyte');
INSERT INTO fabricante VALUES(8, 'Huawei');
INSERT INTO fabricante VALUES(9, 'Xiaomi');
INSERT INTO producto VALUES(1, 'Disco duro SATA3 1TB', 86.99, 5);
INSERT INTO producto VALUES(2, 'Memoria RAM DDR4 8GB', 120, 6);
INSERT INTO producto VALUES(3, 'Disco SSD 1 TB', 150.99, 4);
INSERT INTO producto VALUES(4, 'GeForce GTX 1050Ti', 185, 7);
INSERT INTO producto VALUES(5, 'GeForce GTX 1080 Xtreme', 755, 6);
INSERT INTO producto VALUES(6, 'Monitor 24 LED Full HD', 202, 1);
INSERT INTO producto VALUES(7, 'Monitor 27 LED Full HD', 245.99, 1);
INSERT INTO producto VALUES(8, 'Portátil Yoga 520', 559, 2);
INSERT INTO producto VALUES(9, 'Portátil Ideapd 320', 444, 2);
INSERT INTO producto VALUES(10, 'Impresora HP Deskjet 3720', 59.99, 3);
INSERT INTO producto VALUES(11, 'Impresora HP Laserjet Pro M26nw', 180, 3);Taller
La seguridad de datos se refiere a medidas de protección de la privacidad digital que se aplican para evitar el acceso no autorizado a los datos, los cuales pueden encontrarse en ordenadores, bases de datos, sitios web, etc. La seguridad de datos también protege los datos de una posible corrupción.
Se denomina corrupción de datos a los errores en los datos informáticos que se producen durante la escritura, lectura, almacenamiento, transmisión o procesamiento, que introducen cambios no deseados en los datos originales.
Podemos establecer diferentes clasificaciones:
En frío: Este tipo de copias de seguridad se realizan parando el servicio de base de datos, para evitar que los usuarios puedan acceder a los datos mientras se realiza la copia. Tiene el inconveniente de que el servicio no estará disponible durante el tiempo que dure el proceso de copia.
En caliente: En este caso no es necesario detener el servicio de base de datos, de modo que los usuarios pueden acceder a la base de datos mientras se realiza la copia de seguridad.
Física o Binaria: Este tipo de copias consiste en copiar desde el disco los archivos binarios que utiliza el sistema gestor de bases de datos para almacenar las bases de datos. Este tipo de copias tienen la ventaja de que son muy rápidas y se pueden realizar tanto en frío como en caliente.
La restauración de estas copias de seguridad consiste en copiar los archivos a sus ubicaciones originales. Para realizar copias físicas podemos hacer uso de comandos de copia de archivos (cp, scp, tar, rsync), mysqlhotcopy o InnoDB Hot Backup.
Completa: Una copia completa es una copia de todos los datos de la base de datos (o de varias bases de datos).
Incremental: Es una copia que contiene sólo los aquellos datos que han cambiado respecto a la última copia.
Manual: Son las copias que ejecutamos nosotros de forma manual.
Automática: Lo normal es que el proceso de copias de seguridad esté automatizado y que las copias de seguridad se realicen de forma automática.
/var/lib/mysqlLinux/Ubuntu
Mac
/usr/local/var/mysqlWindows
INSTALLDIR/mysql/dataDentro de este directorio se crea un directorio para cada una de las bases de datos. Ejemplo para tienda
.ibd Los archivos con extensión .ibd almacenan los datos y los índices de las tablas de tipo InnoDB. Hay tantos archivos .ibd como tablas tenga nuestra base de datos.
.myi Los archivos con extensión .myi almacenan los índices de las tablas de tipo MyISAM. Hay tantos archivos .myi como tablas tenga nuestra base de datos.
-- Paso 1
USE tienda;
-- Paso 2
SHOW TABLES;
-- Paso 3
SELECT *
FROM producto;
-- Forzar a que el servidor cierre la tabla y provea conexión con bloqueo de lectura (Read)
FLUSH TABLES producto FOR EXPORT;
-- Paso 4
-- Hacemos una copia del archivo producto.ibd
-- Después de copiar el o los archivos, liberamos el bloqueo de la tabla.
UNLOCK TABLES;
-- Paso 5
DELETE
FROM producto;
-- Paso 6
SELECT *
FROM producto;
-- Paso 7
ALTER TABLE tienda.producto DISCARD TABLESPACE;
-- Paso 8
-- Restauramos el archivo producto.idb
-- Paso 9
ALTER TABLE tienda.producto IMPORT TABLESPACE;
-- Paso 10
SELECT *
FROM producto;By Wilfredo Meneses