Está en la página 1de 10

Desde Cero con MySQL

Unidad
4

Normalización, respaldo
y mantenimiento de Bases
de datos en MySQL
DESDE CERO CON MySQL | Unidad 4: Normalización, respaldo y mantenimiento de Bases de datos en MySQL

Unidad 4 - Normalización, respaldo y


mantenimiento de Bases de datos en
MySQL
3
En esta unidad desarrollaremos los siguientes contenidos básicos:
1) Conectándose con el servidor.
2) Normalización de base de datos y claves.
3) Técnicas de mantenimiento, respaldo y optimización de Base de Datos.

Conectándose con el servidor


Para conectarse con el servidor deberemos asegurarnos de que éste está funcionan-
do y de que admite conexiones, sean éstas locales (el SGBD se está ejecutando en la
misma máquina que intenta la conexión) o remotas.Los usuarios deben ser creados
por el administrador con sus respectivos privilegios y restricciones. Es la persona
administradora quien decide si los nombres de los usuarios de MySQL se correspon-
den o no a los del sistema operativo.

Ir arriba al menú SERVER , Seleccionar Startup / Shutdown y presionar


Stop Server y podrás reiniciar apretando Start server. Seguramente te soli-
citará la clave cuando realices acciones.
DESDE CERO CON MySQL | Unidad 4: Normalización, respaldo y mantenimiento de Bases de datos en MySQL

Normalización de base de datos.


La normalización es un proceso de estandarización y validación de datos que con-
siste en eliminar las redundancias o inconsistencias, completando datos mediante
una serie de reglas que actualizan la información, protegiendo su integridad y favo-
reciendo la interpretación, para que así sea más fácil de consultar y más útil para
quien la gestiona.
4

Video aquí
https://www.youtube.com/watch?v=4SP6PTL3bMQ&feature=youtu.be

Claves y el atributo de auto incrementación


El atributo de auto incrementación
AUTO_INCREMENT: Permite generar un número único cuando insertamos un nuevo
registro en la tabla.Se utiliza para tener una clave primaria de una tabla mediante la
generación automática de un número secuencial único en la tabla.
El valor inicial de una valor autoincremental (AUTO_INCREMENT) es 1, y se le va su-
mando 1 cada nuevo registro grabado en la tabla.Si queremos que el valor inicial sea
100 en lugar de 1

Ejemplo: CREATE TABLE `categories` ( `category_id` int (11)


AUTO_INCREMENT, `category_name` varchar (150) DEFAULT
NULL,`observaciones` varchar (500) DEFAULT NULL,PRIMARY KEY
(`category_id`)
DESDE CERO CON MySQL | Unidad 4: Normalización, respaldo y mantenimiento de Bases de datos en MySQL

Tené en cuenta que no proporcionamos la identificación de categoría. MyS-


QL la genera automáticamente para nosotras y nosotros porque la identifi-
cación de categoría se define como incremento automático.

Para mayor información en la página de MySQL en el manual de uso: 5


https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html

Las Claves
Las restricciones en SQL Server son reglas y restricciones predefinidas que se apli-
can en una sola columna o en varias columnas, relacionados a los valores permitidos
en las columnas, para mantener la integridad, precisión y confiabilidad de los datos
de esa columna. En otras palabras, si los datos insertados cumplen con la regla de
restricción, se insertarán con éxito.
Las restricciones en SQL Server se pueden considerar a nivel de columna, donde se
especifica como parte de la definición de columna y se aplicarán solo a esa columna,
o se declararán de forma independiente a nivel de tabla. En este caso, las reglas de
restricción se aplicarán a más de una columna en la tabla especificada. La restric-
ción se puede crear dentro del comando CREATE TABLE al crear la tabla o agregarse
usando el comando ALTER TABLE después de crear la tabla. Al agregar la restricción
después de crear la tabla, se verificará previamente la regla de restricción en los da-
tos existentes antes de crear esa restricción.
DESDE CERO CON MySQL | Unidad 4: Normalización, respaldo y mantenimiento de Bases de datos en MySQL

Las claves nos permiten identificar información de manera única y se dividen en:

Claves Primarias/PRIMARY KEY Únicas/UNIQUE KEY Foráneas/FOREIGN KEY

La clave primaria, iden- La clave única se puede La clave externa es una


tifica de manera única añadir a una columna de una columna o varias co-
Descrip-
cada fila de una tabla.La tabla, después de ser creada, lumnas, que sirven para
ción
columna definida como mediante la sentencia ALTER señalar cuál es la clave 6
clave primaria (PRIMARY TABLE.Crea una restricción primaria de otra tabla.La
KEY) debe ser UNIQUE UNIQUE (valor único en toda columna o columnas se-
(valor único) y NOT NULL la tabla). ñaladas como FOREIGN
(no puede contener valo- KEY, solo podrán tener
res nulos).Cada tabla sólo valores que ya existan
puede tener una clave en la clave primaria
primaria (PRIMARY KEY). PRIMARY KEY de la otra
tabla.
Las claves primarias pue-
den estar compuestas por
una o más columnas.
Las claves primarias pue- CREATE TABLE nueva_ta- La sintaxis esencial para
den especificarse cuando bla (id_nueva Tipo_de_dato definir una restricción de
Sintaxis
se crea la tabla (utilizan- AUTO_INCREMENT PRIMARY clave externa en una ins-
Sentencia
do CREATE TABLE) o KEY, nombre Tipo_de_dato trucción CREATE TABLE
cambiando la estructura NOT NULL UNIQUE KEY); o ALTER TABLE incluye lo
existente de la tabla (utili- siguiente:
zando ALTER TABLE)
[CONSTRAINT [symbol]]
CREATE TABLE nom- FOREIGN KEY [index_
bre_tabla { identificador name] (col_name, ...)
int NOT NULL, columna1
REFERENCES tbl_name
tipo_de_dato () NOT NULL,
(col_name,...) [ON DELE-
columna2 tip_de_dato()
TE reference_option] [ON
NOT NULL, PRIMARY KEY
UPDATE reference_op-
(identificador) };
tion]

Opción de referencia:
RESTRICT | CASCADE |
SET NULL | NO ACTION |
SET DEFAULT

Video aquí:
https://www.youtube.com/watch?v=5a9menJ8oKY&feature=youtu.be
Para mayor información en la página de MySQL en el manual de uso:
https://dev.mysql.com/doc/refman/8.0/en/partitioning-limitations-partitio-
ning-keys-unique-keys.html
https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html
DESDE CERO CON MySQL | Unidad 4: Normalización, respaldo y mantenimiento de Bases de datos en MySQL

Técnicas de mantenimiento, respaldo y optimización de Base de Datos


Indexación
CREATE INDEX: Los índices nos ayudan a obtener datos de las tablas en forma más
rápida, y no tener que recorrer toda la tabla secuencialmente en busca alguna fila
concreta.. El mismo principio se aplica para la obtención de datos desde una tabla de
base de datos. Sin un índice, el sistema de base de datos lee a través de toda la tabla 7
(este proceso se denomina “escaneo de tabla”) para localizar la información desea-
da. Con el índice correcto en su lugar, el sistema de base de datos puede entonces
primero dirigirse al índice para encontrar de dónde obtener los datos, y luego dirigirse
a dichas ubicaciones para obtener los datos necesarios. Esto es mucho más rápido.
Por lo tanto, generalmente se recomienda crear índices en tablas. Un índice puede
cubrir una o más columnas.Si una columna es el índice de una tabla, al buscar por
un valor de esa columna, iremos directamente a la fila correspondiente. La búsqueda
así es mucho más óptima en recursos y más rápida en tiempo. Si esa columna de
búsqueda no fuese índice, entonces tendríamos que recorrer de forma secuencial la
tabla en busca de algún dato. Por eso, es importante crear un índice por cada tipo de
búsqueda que queramos hacer en la tabla.
Actualizar una tabla con índices tarda más tiempo porque también hay que actualizar
los índices, así que solo se deben poner índices en las columnas por las que busca-
mos frecuentemente.Se pueden crear índices ÚNICOS, es decir, índices que no admi-
ten valores duplicados.

Sentencia:CREATE INDEX nombreindice ON nombretabla


(nombrecolumna)

La columna que forma parte de este índice admite valores duplicados en su columna.

Sentencia: INDEX CREATE UNIQUE INDEX nombreindice ON


nombretabla (nombrecolumna)

La columna que forma parte de este índice NO admite valores duplicados en su colum-
na, porque es una clave única.
Para mayor información en la pagina de MySQL en el manual de uso:
https://dev.mysql.com/doc/refman/8.0/en/create-index.html
video indexación aquí:
https://www.youtube.com/watch?v=KwmvWKVpwyg&feature=youtu.be
DESDE CERO CON MySQL | Unidad 4: Normalización, respaldo y mantenimiento de Bases de datos en MySQL

Optimización de consultas con EXPLAIN


MySQL nos ofrece también facilidades a la hora de evaluar las sentencias SQL,gra-
cias a la sentencia EXPLAIN. Esta sentencia devuelve una fila de información para
cada tabla utilizada en la SELECT declaración. Enumera las tablas en la salida en el
orden en que MySQL las leería mientras procesa la declaración.
Esto significa que MySQL lee una fila de la primera tabla, luego encuentra una fila 8
coincidente en la segunda tabla, y luego en la tercera tabla, y así sucesivamente.
Cuando se procesan todas las tablas, MySQL genera las columnas seleccionadas y
retrocede a través de la lista de tablas hasta que se encuentra una tabla para la que
hay más filas coincidentes. La siguiente fila se lee de esta tabla y el proceso conti-
núa con la siguiente tabla.Proporciona información sobre cómo MySQL ejecuta las
declaraciones.

EXPLAIN trabaja con SELECT, DELETE, INSERT, REPLACE, y UPDATE


declaraciones.

Aquí mayor información de EXPLAIN en el manual de MySQL


https://dev.mysql.com/doc/refman/8.0/en/explain.html
Aquí información de optimización de base de datos en el manual de MySQL
https://dev.mysql.com/doc/refman/8.0/en/optimizing-database-structure.html

Creando respaldo y exportando base de datos en SQL


Comencemos mirando el video de como realizar un respaldo e importar dicha base:
https://www.youtube.com/watch?v=n8NSeiHW0b4&feature=youtu.be

Importación y exportación de datos SQL


En muchas ocasiones es necesario mover datos de una aplicación a otra, para ello
son necesarios formatos estándares que puedan ser escritos por la aplicación ori-
gen y leídos por la aplicación destino. El más simple de esos formatos es el texto
plano, donde cada archivo es una tabla, cada fila es un registro y los valores de los
campos se separan por tabuladores.

La exportación masiva se refiere a la copia de datos de una tabla de SQL


Server en un archivo de datos.
La importación masiva significa cargar datos de un archivo de datos a una
tabla de SQL Server . Por ejemplo, puede exportar datos de una aplicación
de Microsoft Excel a un archivo de datos y, después, importarlos masiva-
mente en una tabla de SQL Server.
DESDE CERO CON MySQL | Unidad 4: Normalización, respaldo y mantenimiento de Bases de datos en MySQL

EXPORT DATA: Puede exportar datos en los siguientes formatos: Texto, Texto de
longitud fija, XML, SYLK, DIF, DBF (dBase) y 4D.
Un proyecto de exportación contiene todos los parámetros de exportación, tales
como las tablas y campos a exportar, los delimitadores, etc. Los proyectos pueden
crearse por programación (proyectos de formato XML únicamente) o cargando los
parámetros previamente definidos en la caja de diálogo de exportación. En el último
caso, hay dos soluciones disponibles: 9
1) Usar el comando EXPORT DATA con un parámetro proyecto vacío y el parámetro
opcional *, luego guardar el parámetro proyecto en un campo Texto o BLOB (ver a
continuación). Esta solución le permite guardar el proyecto con el archivo de datos.
Guardar el proyecto en el disco, luego cargarlo utilizando el comando DOM Parse
XML source y pasando su referencia en el parámetro proyecto.
2) El parámetro opcional *, si se especifica, hace que aparezca la caja de diálogo de
exportación con los parámetros definidos en proyecto. Esta característica le permite
utilizar un proyecto predefinido, mientras tiene aún la posibilidad de modificar uno o
más parámetros. Además, el parámetro proyecto contiene, después de cerrar la caja
de diálogo de exportación, los parámetros del “nuevo” proyecto. Entonces puede al-
macenar el nuevo proyecto en un campo BLOB, en disco, etc.
Si la exportación fue exitosa, la variable sistema OK es igual a 1.
IMPORT TABLE: La declaración importa tablas basadas en la información contenida
en si archivos de metadatos (información de diccionario serializada). Requiere el
FILE privilegio de leer los archivos de contenido de la tabla y, y el CREATE privilegio
de crear la tabla. Las tablas se pueden exportar desde un servidor usando mysql-
dump para escribir un archivo de declaraciones SQL e importarse a otro servidor
usando mysql para procesar el archivo de volcado. Proporciona una alternativa más
rápida utilizando los archivos de tabla “sin procesar “ .
Antes de la importación, los archivos que proporcionan el contenido de la tabla de-
ben colocarse en el directorio de esquema apropiado para el servidor de importación
y el .sdi archivo debe ubicarse en un directorio accesible para el servidor. Por ejem-
plo, el .sdi archivo se puede colocar en el directorio nombrado por la secure_file_priv
variable del sistema o (si secure_file_privestá vacío) en un directorio debajo del di-
rectorio de datos del servidor.

Sentencia: IMPORT TABLE FROM sdi_file [, sdi_file] ...

Aquí paso a paso cómo exportar e importar en el manual de MySQL:


https://dev.mysql.com/doc/workbench/en/wb-admin-export-import-management.html
https://dev.mysql.com/doc/refman/8.0/en/import-table.html
Para mayor información de copias de seguridad en MySQL aquí:
https://dev.mysql.com/doc/refman/8.0/en/backup-and-recovery.html
DESDE CERO CON MySQL | Unidad 4: Normalización, respaldo y mantenimiento de Bases de datos en MySQL

10

@puntodigitalAR
/puntodigitalAR
/programapuntodigital
puntodigital.gob.ar

También podría gustarte