Está en la página 1de 36

Administración de bases de datos

Introducción a los Manejadores de Bases de Datos

Fecha de actualización: 13 de febrero de 2020


(actualización Docente unidad de software y TIC)
2

Estructura temática

Estructura temática ...................................................................................................................... 1


Ideograma ...................................................................................................................................... 3
3 Introducción a Los Sistemas Manejadores de Bases de Datos ......................................... 4
3.1 Definición ........................................................................................................................... 4
3.2 Funciones de un Sistema Manejador de Bases de Datos .................................................... 4
3.3 Componentes de un DBMS ................................................................................................ 5
3.4 Usuarios de los DBMS........................................................................................................ 6
3.5 Reseña Historia de los Sistemas Manejadores de Bases de Datos...................................... 7
3.6 Algunos de los Sistemas de Manejadores de Bases de Datos ............................................. 8
3.7 Arquitectura de los sistemas de Bases de Datos ............................................................... 11
3.8 Procedimientos Almacenados ........................................................................................... 13
3.9 Ventajas de los procedimientos almacenados ................................................................... 14
3.10 Desventajas de los procedimientos almacenados ............................................................. 14
3.11 Triggers ............................................................................................................................. 15
4 Funciones del Administrador de Bases de datos (DBA Data Base Administrator) ...... 15
5 Administración del DBMS MySQL .................................................................................. 16
5.1 Arquitectura de MySQL ................................................................................................... 17
5.2 Instalación y configuración de MySQL ............................................................................ 18
5.3 Configuración del servidor ............................................................................................... 18
5.4 Variables del sistema ........................................................................................................ 19
5.5 Estructura del diccionario de datos ................................................................................... 21
5.6 Herramientas para la administración de MySQL.............................................................. 23
5.6.1 Consola de comandos: .................................................................................................. 23
5.6.2 Sistemas Gráficos.......................................................................................................... 24
5.6.3 Entorno Web ................................................................................................................. 25
6 Consideraciones de Seguridad ........................................................................................... 26
3

Ideograma

Tipos de
DBMS
Conceptos

Gestión
de DBMS

Introducción a
los DBMS
Procedimient
os
almacenados Seguridad

Procedimientos
almacenados y
triggers

Triggers
Optimiza
Optimización ción del
DBMS

Monitoreo
del DBMS
Bases de
datos
distribuid
as
4

3 Introducción a Los Sistemas Manejadores de Bases de Datos

En el presente curso de Administración de Bases de datos se indagarán los conceptos básicos de


los Sistemas Manejadores o Gestores de Bases de datos, así como herramientas y buenas prácticas
para la administración y el desarrollo de bases de datos. Realizaremos también un trabajo práctico
en MySQL para aplicar los conceptos aprendidos relacionados con procedimientos almacenados
triggers, entre otros.

El curso se ha estructurado a lo largo de tres módulos de la siguiente manera:

 Introducción a los Sistemas Manejadores de Bases de datos: revisión de conceptos y


configuración de un DBMS.
 Procedimientos Almacenados y triggers.
 Optimización, monitorización y bases de datos distribuidas.

Este curso brindará herramientas necesarias para fortalecer competencias técnicas necesarias para
el perfil de Ingeniería de Software.

3.1 Definición

Los Sistemas Manejadores de base de datos (DBMS por sus siglas en ingles Data Base
Management Sistem), a veces llamados simplemente un gestor de base de datos, son programas
que permite crear y acceder a datos en una base de datos. Técnicamente hablando, es un sistema
de software que utiliza un método estándar de catalogación, recuperación y ejecución de consultas
en los datos.

El DBMS gestiona los datos, organiza, y proporciona alternativas para que los datos sean
modificados, actualizados, insertados o extraídos por los usuarios u otros programas.

3.2 Funciones de un Sistema Manejador de Bases de Datos

Los DBMS tienen como función principal realizar de una manera eficiente y coherente las
siguientes operaciones fundamentales de la base de datos:

 Inserción
 Consulta
5

 Actualización
 Borrado

Según Hueso (Hueso 2011) para desarrollar estas operaciones en general los DBMS incorporan
las siguientes funciones:

 Diccionario de datos: Contiene los metadatos que contienen la información de nombre,


tipo y tamaño de los datos, restricciones de integridad de los datos, usuarios autorizados y
estadísticas de utilización, entre otros.
 Integridad de los datos: Cuando se realizan transacciones sobre una base de datos que
involucran varias acciones sobre la misma es importante asegurar que se ejecuten o todas
las acciones o no se ejecute ninguna para que no queden datos inconsistentes en la base de
datos. En el caso de que no se realice la transacción completamente la base de datos
necesitará devolver los cambios realizados al estado anterior para que los datos sean
consistentes.
 Actualizaciones: Cuando dos o más usuarios acceden a la base de datos de manera
concurrente y modifican sus datos es posible que se presenten inconsistencias en los datos,
por lo tanto el DBMS debe de evitar que se presenten inconsistencias cuando existen
actualizaciones de manera concurrente.
 Recuperación de datos: Cómo ya se explicó en caso de presentarse problemas con las
actualizaciones el DBMS debe asegurar que no se presenten inconsistencias, esto es muy
importante por ejemplo en el caso de que se presenten fallos de las aplicaciones o del
hardware, permitiendo volver a un estado consistente.
 Integración: Permite la capacidad de integrarse con los softwares de comunicación a
través de la red, para responder a peticiones y mensajes.
 Restricciones: Para que exista integridad en la base de datos se requiere de validez y
consistencia de los datos y para esto hay que considerar ciertas reglas sobre los datos que
no se pueden violar, estas se establecen a través de restricciones.
 Administración: Herramientas que permiten la gestión de la base de datos de una manera
efectiva, que permiten garantizar la disponibilidad e integridad de los datos, controlar y
monitorear el funcionamiento del servidor y optimizarlo, entre otras.

3.3 Componentes de un DBMS

Dentro de los elementos comúnmente encontrados en los DBMS destacamos los siguientes (Hueso
2011):
6

 Lenguaje de definición de datos (DDL Data Definition Languaje): Define y describe los
objetos de la base de datos, estructura, relaciones y restricciones.
 Lenguaje de control de datos (DLC: Data control Languaje): Encargado del control y
seguridad de los datos, así como de las restricciones, privilegios y tipos de acceso, etc.
Permite especificar la estructura y el tipo de los datos.
 Lenguaje de manipulación de datos (DML: Data Manipulation Language): Para las
actividades de manejo de datos se utiliza SQL (Standard Query Language), que permite
realizar las acciones para insertar, actualizar, consultar o eliminar los datos.
 Diccionario de datos: Describen el contenido del DBMS incluyendo sus objetos y
propiedades.
 Objetos: Incluye las tablas base y derivadas, consultas. dominios tipos de datos,
restricciones de tablas, procedimientos almacenados y triggers.
 Planificador: Permite programar y realizar tareas de forma automática.
 Copia de seguridad: Permite establecer puntos de restauración a los cuales se puede
volver en caso de presentarse fallos

Aunque no todos los DBMS presentan las mismas funcionalidades en general los más utilizados
cuentan cómo mínimo con las anteriormente mencionadas.

3.4 Usuarios de los DBMS

En general se encuentran cuatro tipos diferentes de usuarios de Bases de Datos que permiten
abarcar todos los roles y funcionalidades que se pueden desarrollar y se describen a continuación:

 Administrador de Base de Datos (DBA Database Administrator): Es el usuario principal


de la base de datos. se encarga del diseño de la base de datos tanto a nivel físico, así como
de aspectos fundamentales en la implementación tales como el control de la seguridad y la
concurrencia, con el fin de mantener el sistema operativo. El administrador de base de datos
debe ser un conocedor tanto del DBMS como del equipo físico en el que opera para poder
realizar un trabajo que permita la eficiencia e integración de las soluciones. El
Administrador de la base de datos tiene el máximo nivel de privilegios, y así mismo cuenta
con una gran responsabilidad. Será el encargado de establecer que usuarios se conectarán
a la BD y sus perfiles. Como buena práctica para la implementación de bases de datos hay
que procurar que haya el menor número de administradores, y en lo posible que solo sea
una sola persona.
7

 Diseñadores de Base de Datos: Realizan el diseño lógico de la base de datos, identificando


los datos, así como las relaciones y restricciones sobre estos. Debe ser un conocedor de la
lógica del negocio, con el fin de describir las características de los datos tal y como los
necesita la empresa. Este diseño lógico es único según se defina para las características del
negocio y en su elaboración se recomienda involucrar a los diferentes usuarios de la Base
de datos que estarán involucrados en su uso.
 Programadores: Se encargan de implementar programas y aplicaciones que utilizarán las
bases de datos y que serán utilizados por los usuarios finales.
 Usuarios finales: Clientes de la base de datos que hacen uso de ella a través de aplicaciones
o programas, sin conocer de su funcionamiento y estructuración, y que en general no tienen
conocimiento de informática.

3.5 Reseña Historia de los Sistemas Manejadores de Bases de Datos

DBMS jerárquico1960-1970

El primer tipo de DBMS fue desarrollado por IBM 360 y se llamó IMS. Originalmente fue
desarrollado para el programa Apolo de la NASA con el fin de inventariar la extensa cantidad de
materiales de la nave Apolo y el cohete lunar Saturno V. Este tipo de DBMS se basó en árboles
binarios. Los beneficios de este tipo de DBMS son numerosos, entre ellos menos datos
redundantes, independencia de los datos, seguridad e integridad de los datos y búsquedas mucho
más eficientes. Sin embargo tenía algunas desventajas ya que era difícil de manejar pues carecía
de estándares, lo que hacía difícil el manejo de muchas relaciones.

DBMS de red 1960-1970

Charles Bachmann (1965) implementó IDS (Integrated Data Store) el primer DBMS comercial.
En este modelo, cada registro puede tener varios “padres” no solo uno como en los DBMS
jerárquicos. El sistema consiste de conjuntos de relaciones en las que un conjunto representa una
relación de uno a muchos. La desventaja principal consistía en que el sistema es complejo y difícil
de diseñar y el mantener, así como la falta de independencia estructural.

DBMS relacionales 1970-1990

La aparición de los DBMS relacionales se debió a Edgar Codd quien trabajó en IBM. En 1970
propuso un nuevo enfoque para la construcción de bases DBMS relacionales que permitía trabajar
con grandes bases de datos, utilizando tablas de registros. Todas las tablas se vinculan mediante
relaciones de uno a muchos o muchos a muchos. En 1990, el DBMS cambió su enfoque incluyendo
8

la orientación a objetos e integrándolo con los DBMS relacionales e incluyó el uso de tipos de
datos multimedia entre otros permitiendo una gran versatilidad. Los DBMS relacionales se han
impuesto hasta dominar prácticamente el mercado actual, debido en gran parte a su flexibilidad y
sencillez de manejo. Así mismo el lenguaje SQL se ha convertido en el estándar de manejo de
datos para el modelo relacional.

3.6 Algunos de los Sistemas de Manejadores de Bases de Datos

Microsoft SQL Server: Es el DBMS de Microsoft


basado en el modelo relacional. Es una herramienta
basante completa, incluye una interfaz gráfica que se
puede combinar con funciones y scripts. Requiere
ser usado en sistemas operativos Microsoft, no es
compatible con Linux.

Microsoft Access: Es un gestor de base de datos


incluido en el paquete Office de Microsoft, dentro de
sus ventajas se cuenta que es un software sencillo en
comparación con los otros DBMS, sin embargo no
está pensado para múltiples usuarios, es más usado
por usuarios personales o micro empresas que no
requieren de grandes volúmenes de datos ni usuarios
concurrentes.

My SQL: Es un gestor de base de datos de código


abierto (open source), dentro de sus ventajas se
encuentra que soporta varios sistemas operativos
incluidos Linux y Windows, así mismo es uno de los
DBMS de mayor rendimiento, cuenta con más de 6
millones de instalaciones y sitios como twitter,
wikipedia y facebook son usuarios de la aplicación,
debido a que en entornos web, intensivas en lectura
concurrente de datos es muy eficiente.
9

PostgreSQL: Al igual que My SQL es un gestor de


base de datos de código abierto, dentro de sus
ventajas se encuentra que permite una alta
concurrencia de usuarios gracias a un sistema de
acceso concurrente multi-versión que permite que
varios usuarios puedan acceder a la misma tabla sin
que existan bloqueos, así como su seguridad e
integridad de la información.

Oracle: Es un DBMS relacional orientado a objetos,


y uno de los más completos y potentes del mercado y
el líder en el segmento de servidores empresariales.
Al ser un sistema comercial tiene un costo de
licenciamiento, lo que puede ser importante para
considerar frente a otros DBMS

DB2: DB2 es el DBMS de IBM, uno de los DBMS


pioneros. En su versión actual tiene integración con
XML, lo que le permite realizar operaciones
directamente sobre este tipo de datos. Cuenta con una
versión gratuita la Express-C

La página db-engines realiza un ranking mundial de acuerdo a la popularidad de los sistemas de


gestión de bases de datos, la siguiente es la tabla del mes de noviembre de 20141.

Ranking DBMS Modelo de base de datos


1. Oracle DBMS relacional
2. MySQL DBMS relacional
3. Microsoft SQL Server DBMS relacional
4. PostgreSQL DBMS relacional
5. MongoDB Document store

1
DB-Engines: http://db-engines.com/en/ranking
10

6. DB2 DBMS relacional


7. Microsoft Access DBMS relacional
8. SQLite DBMS relacional
9. Cassandra Wide column store
10. Sybase ASE Relational DBMS

Los DBMS son herramientas poderosas en la medida que permiten administrar de una forma
eficiente los datos que almacenamos y que pueden ser accedidos en la web, o a través de
aplicaciones.
Los DBMS en general cuentan con herramientas para hacer gestión de la base de datos, aplicar
políticas de seguridad, y contar con procedimientos almacenados, que permiten ejecutar de una
manera mucho más eficiente rutinas, actividades periódicas, entre otras funcionalidades. A
continuación se muestra un esquema general de cómo funcionan los DBMS.
11

Fuente: Universidad Nacional2

3.7 Arquitectura de los sistemas de Bases de Datos

Como describe Ramos (Ramos 2011) el comité del instituto americano para estándares ANSI-
SPARC (American National Standard Institute - Standards Planning and Requirements
Committee) propuso una arquitectura de tres niveles para los DBMS con el objetivo de separar los
programas y las aplicaciones de la bases de datos, con el fin de tener una mejor gestión en cada
una de las capas. Esta arquitectura define los siguientes niveles:

• Nivel físico: Describe la estructura física de la base de datos mediante esquemas que definen el
modelo físico y los detalles sobre cómo se guardan físicamente los datos

2
Unalmed: Sistemas administradores de Bases de Datos
http://www.unalmed.edu.co/~mstabare/Dbms.htm#Lenguajes del DBMS
12

• Nivel lógico o conceptual: establece la estructura de la base de datos mediante un esquema que
describe las entidades, atributos, relaciones, operaciones y restricciones.

• Nivel externo: es el nivel en el que interactúan los usuarios, a través de esquemas externos o
vistas de usuarios. En este nivel se representa la visión individual de un usuario o de un grupo de
usuarios.

A continuación se muestra la figura de la arquitectura de base de datos según los Niveles de


abstracción de la arquitectura ANSI.

Fuente: Sistemas gestores de bases de datos. McGraw-Hill

Este tipo de arquitectura permite la independencia de datos, que tiene dos modalidades, una la
independencia lógica, que permite modificar el esquema conceptual sin que se tengan que
modificar los programas o aplicaciones. De otro lado se encuentra la independencia física, ésta
permite modificar los esquemas internos sin necesidad de modificar los esquemas externos ni
los conceptuales. Con esto por ejemplo se puede para mejorar el rendimiento, reorganizar los
archivos físicos sin necesidad de alterar la lógica de la base de datos.
13

3.8 Procedimientos Almacenados

Los procedimientos almacenados (stored procedures en inglés) son segmentos de sentencias SQL
guardadas físicamente en la base de datos. La ventaja de estos procedimientos es que se ejecutan
directamente en el motor de base de datos lo que se traduce en mayor eficiencia en el manejo de
datos y mayor rapidez. Estos procedimientos almacenados pueden ser llamados por aplicaciones
externas o como Java, C #, PHP, etc., por otros procedimientos almacenados o por triggers.
Los procedimientos almacenados varían de un motor de base de datos a otro así como el lenguaje
de programación utilizado para implementarlos, la siguiente es una tabla de resumen que muestra
los lenguajes utilizados para desarrollar procedimientos almacenados en algunos de los motores
de bases de datos más importantes.

Motor de base de datos Lenguaje de implementación


DB2 SQL PL o Java
Microsoft SQL Server Transact-SQL y lenguajes del framework .NET
MySQL Procedimientos almacenados propios, utilizando el standard SQL/PSM
Oracle PL/SQL o Java
PostgreSQL PL/pgSQL, y lenguajes como pl/perl o pl/php
3
Adaptado de Wikipedia

Existen procedimientos almacenados recursivos, es decir procedimientos que llaman a sí mismos.


La mayor parte del sistema de gestión de base de datos soporta procedimientos almacenados
recursivos.
Dentro de los usos más destacados de los procedimientos almacenados se encuentra el control de
la gestión de las operaciones, y transacciones.

3
Stored Procedures http://en.wikipedia.org/wiki/Stored_procedure
14

3.9 Ventajas de los procedimientos almacenados

Dentro de las ventajas más importantes de los procedimientos almacenados se encuentran las
siguientes4:
 Los procedimientos almacenados ayudan a aumentar el rendimiento de las aplicaciones.
Una vez creados, los procedimientos almacenados se compilan y almacenan en la base de
datos.
 Los procedimientos almacenados ayudan a reducir el tráfico entre la aplicación y el
servidor de base de datos porque en lugar de enviar varias sentencias SQL largas, la
aplicación tiene que enviar sólo el nombre y los parámetros del procedimiento almacenado.
 Los procedimientos almacenados son reutilizables y pueden ser accedidos por varias
aplicaciones, con esto los desarrolladores no tienen que desarrollar nuevamente funciones
que ya estén soportadas en los procedimientos almacenados.
 Los procedimientos almacenados son seguros. Es labor del administrador de base de datos
conceder permisos apropiados para aplicaciones que acceden a los procedimientos
almacenados en la base de datos, esto sin que se tenga que dar ningún permiso de acceso a
las tablas de bases de datos subyacentes.
 La lógica del negocio puede encontrarse como un API en la base de datos gracias a los
procedimientos almacenados, lo que permite reducir la necesidad de codificar la lógica en
la capa de aplicación, esto evita que los datos sean corrompidos por aplicaciones.

3.10 Desventajas de los procedimientos almacenados

Dentro de las desventajas que pueden tener los procedimientos almacenados están las siguientes:
 Si se utiliza una gran cantidad de procedimientos almacenados, el uso de la memoria de
cada conexión que está utilizando los procedimientos almacenados se incrementará
sustancialmente. Además, si hay un uso excesivo de operaciones lógicas dentro de
procedimientos almacenados, el uso de la CPU también aumentará porque el servidor de
base de datos no está bien diseñado para operaciones lógicas.
 Es difícil depurar procedimientos almacenados.

4
Introduction to MySQL Stored Procedures:
http://www.mysqltutorial.org/introduction-to-sql-stored-procedures.aspx
15

 No es fácil de desarrollar y mantener procedimientos almacenados. El desarrollo y


mantenimiento de procedimientos almacenados a menudo requiere habilidades
especializadas que no todos los desarrolladores de aplicaciones poseen.
 La modificación de un procedimiento almacenado puede afectar todo el software que
utilice la funcionalidad del procedimiento, por lo que hay que hacer un análisis de los
impactos que los cambios que un procedimiento puede llegar a tener.

3.11 Triggers

Los triggers o disparadores son procedimientos que se ejecutan automáticamente cuando se


cumple una condición o evento establecido. Se definen para tablas o vistas específicas, por ejemplo
se puede definir una condición en la cual si se modifica una tabla a través de procedimientos de
inserción, actualización o eliminación, se dispara un procedimiento para ejecutar la acción definida
en el trigger de forma automática.
La diferencia de un trigger con un procedimiento almacenado normal es que no pueden ser
invocados directamente, ya que solo se ejecutan dependiendo un evento definido, que es el que
permite la ejecución automática, otra diferencia es que no usa parámetros para su ejecución.
En general los triggers son usados para mantener la integridad de los datos, no se utilizan para
obtener resultados de consultas.

4 Funciones del Administrador de Bases de datos (DBA Data Base Administrator)

Cada base de datos independientemente de su nivel requiere que exista un Administrador de base
de datos, independientemente si en una base de datos personal y sencilla a la base de datos de una
organización compleja, aunque los roles y funciones del DBA variaran según el nivel de
complejidad ya que para una base de datos personal el mismo usuario de la base de datos es el
DBA, en una base de datos organizacional de una empresa grande seguramente exista todo un
equipo dedicado de tiempo completo a las labores de administración, con muchos usuarios y
diferentes privilegios de acceso a las mismas, debido al volumen de procesos que deben realizarse,
controlarse y supervisarse.

La tarea del DBA es crear la base de datos y realizar los controles técnicos necesarios para apoyar
las políticas de seguridad, manejo de la información gestión de usuarios y privilegios sobre la base
de datos. El DBA se encarga de garantizar el funcionamiento adecuado del sistema y brindar todo
el soporte técnico relacionado. En grandes organizaciones el DBA cuenta con un grupo que apoyan
16

las labores de programación y otros asistentes técnicos que permiten la gestión integral de la base
de datos. El DBA es responsable principalmente de:

 Administrar el Sistema Manejador de Base de Datos


 Administrar la estructura de la Base de Datos
 Gestionar y monitorear la actividad de los datos
 Establecer el Diccionario de Datos
 Asegurar la confiabilidad e integridad de la Base de Datos
 Asegurar la seguridad de la Base de Datos

La administración de la estructura de la Base de Datos incluye la participación en el diseño inicial


de la misma y su puesta en marcha que incluye labores como la selección del DBMS dependiendo
las necesidades, el control y la gestión de requerimientos de datos, la creación y captura inicial de
los datos, el desarrollo de procedimientos y controles de seguridad para garantizar la integridad de
la base de datos, entre otros. Como los requerimientos no son estáticos, sino que evolucionan según
las necesidades el mantenimiento y actualización del diseño y la estructura de la base de datos así
como de sus procedimientos requiere de un trabajo cuidadoso que implica evaluar impactos
posibles sobre los cambios que se puedan generar.

5 Administración del DBMS MySQL

Para el trabajo práctico que realizaremos a través del curso se realizará una revisión del DBMS
MySQL. Como ya lo vimos MySQL es un DBMS de código Abierto (Open Source), lo que
significa que es posible para cualquier usuario realizar modificaciones sobre el código fuente del
programa con el fin de realizar soluciones a la medida. Otra de las ventajas de MySQL por ser de
código abierto es que cualquier usuario puede descargarlo libremente de Internet y usarlo de
manera libre, sin costo alguno.
En el mercado se encuentran varios sistemas de gestión de base de datos gratuitos o de bajo costo
como MySQL, PostgreSQL o SQLite. Cuando se compara MySQL con otros sistemas de bases de
datos, se encuentran características tales como las siguientes que hacen de MySQL muy atractiva:
 Velocidad: MySQL es uno de los DBMS más rápidos del mercado.
 Facilidad de uso: MySQL es un gestor de base de datos de alto rendimiento, pero a la vez
mucho más simple de configurar y administrar que los sistemas más grandes.
 SQL: MySQL entiende SQL (Structured Query Language), el lenguaje estándar de
elección para todos los sistemas de bases de datos modernos.
17

 Capacidad: El servidor MySQL es multi-hilo (multi-threaded), por lo que muchos


clientes pueden conectarse a él y utilizar varias bases de datos al mismo tiempo mediante
varias interfaces que permiten introducir consultas y ver los resultados ya sea a través de
interfaces gráficas o de línea de comandos.
 Conectividad y seguridad: MySQL funciona en red, y las bases de datos se puede acceder
desde cualquier lugar a través de Internet, sin embargo MySQL tiene el control de acceso
de tal forma que una persona solo puede acceder a los datos que le han sido permitido ver.
Para proporcionar seguridad adicional, MySQL soporta conexiones encriptadas utilizando
el Secure Sockets Layer (SSL).
 Portabilidad. MySQL se ejecuta en muchas variedades de Unix y Linux, así como en
Windows. MySQL se puede ejecutar en pequeños dispositivos como routers y
computadoras personales hasta en servidores de gama alta con múltiples CPU y enormes
cantidades de memoria.
 Disponibilidad y costo. MySQL es un proyecto de código abierto (Open Source)
disponible bajo múltiples términos de la licencia. En especial se encuentra bajo GNU-
GPL. Esto significa que MySQL está disponible sin costo para la mayoría de los usos. Así
mismo existen licencias comerciales disponibles según las necesidades de las
organizaciones.
 Distribución abierta y código fuente. El código fuente de MySQL es fácil de obtener y
descargar a través de Internet. Si usted no entiende cómo funciona algo, tienen curiosidad
acerca de un algoritmo, puede preguntar en los diversos foros que hay en la red y obtendrá
respuestas de la comunidad de desarrolladores.
 LAMP: MySQL es una pieza fundamental en las arquitecturas LAMP (Linux, Apache,
MySQL, PHP) de servidores de aplicaciones bajo gnuLinux

5.1 Arquitectura de MySQL

La organización general de MySQL corresponde al siguiente esquema que describe los distintos
subsistemas del DBMS de MySQL y que permite desarrollar toda la gestión de la base de datos.
18

Fuente: Oracle5

5.2 Instalación y configuración de MySQL

En el curso de introducción a las Bases de Datos se realizó la instalación de MySQL sin embargo
en este curso vamos a revisar algunas de las configuraciones que es importante tener en cuenta
para la gestión de las bases de datos MySQL.
En caso de requerir información acerca de la instalación de MySQL puede acceder al siguiente
enlace: http://mysqlepn.blogspot.com/2013/05/instalacion.html

5.3 Configuración del servidor

El asistente de configuración de MySQL realiza de forma automática el proceso de configuración


en el servidor Windows. Al realizar el proceso de esta manera se crea un fichero my.ini que
responderá a la configuración realizada y aplicando las respuestas dadas por el usuario.
Normalmente no se necesita modificar este archivo, aunque conviene saber qué es y para qué se

5
MySQL Architecture: http://www.oracle.com/technetwork/articles/java/mysql-acq-139875.html
19

usa. Solo en caso de tener que optimizar el rendimiento de nuestro servidor necesitaremos trabajar
con este archivo.
Hay disponibles dos tipos de configuración una detallada para usuarios avanzados que deseen un
control mayor y preciso sobre la configuración, otra estándar para usuarios nuevos que no
requerirán tomar decisiones sobre la configuración del servidor.
Para iniciar el servidor, desde la consola de Windows se ejecuta el programa mysqld.exe

5.4 Variables del sistema

Cada variable del sistema tiene un valor por defecto. El comando SHOW VARIABLES, muestra
el valor de las variables del sistema.

mysql> SHOW VARIABLES;


+---------------------------------+-------------------------------------+
| Variable_name | Value |
+---------------------------------+-------------------------------------+
| back_log | 50 |
| basedir | /usr/local/mysql |
| bdb_cache_size | 8388600 |
| bdb_home | /usr/local/mysql |
| bdb_log_buffer_size | 32768 |
| bdb_logdir | |
| bdb_max_lock | 10000 |
| bdb_shared_data | OFF |
| bdb_tmpdir | /tmp/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
20

...
| innodb_additional_mem_pool_size | 1048576 |
| innodb_autoextend_increment | 8 |
| innodb_buffer_pool_awe_mem_mb | 0 |
| innodb_buffer_pool_size | 8388608 |
| innodb_data_file_path | ibdata1:10M:autoextend |
| innodb_data_home_dir | |
...
| version | 4.1.18-max-log |
| version_comment | MySQL Community Edition - Max (GPL) |
| version_compile_machine | i686 |
| version_compile_os | pc-linux-gnu |
| wait_timeout | 28800 |
+---------------------------------+-------------------------------------+

Algunas de las variables son las siguientes (Jaque 2007):


● auto_increment_increment: establece el incremento para columnas autoincrementadas. Por
defecto tiene el valor 1.
● back_log: tamaño de la cola de espera de conexiones TCP/IP.
● basedir: directorio de instalación del servidor.
● binlog_cache_size: tamaño de la caché binaria para sentencias SQL de transacciones.
● character_set_client: conjunto de caracteres para sentencias de cliente.
● character_set_database: conjunto de caracteres por defecto para las bases de datos.
● character_set_results: conjunto de caracteres para los conjuntos de resultados.
● character_set_server: conjunto de caracteres por defecto para el servidor.
● connect_timeout: tiempo de espera en segundos de los paquetes de conexión.
● data_dir: directorio de datos del servidor.
● expire_logs_days: Número de días para la eliminación automática de logs binarios.
Entre muchas otras,.
21

Todas las variables están descritas en el Manual de MySQL, en la sección “System Variables” 6.
Aunque el valor de las variables se establece al arrancar el servidor, muchas de ellas pueden
modificarse en tiempo de ejecución mediante el comando SET, las asignaciones pueden ser
globales o de sesión, según se requiera, la sintaxis sería de la siguiente manera:

SET variable [, variable] ...

variable:
nombre_variable_usuario = expresión
| [GLOBAL | SESSION] system_var_name = nombre_variable_usuario
| [@@global. | @@session. | @@]system_var_name = nombre_variable_usuario

Ejemplos de lo anterior pueden ser los siguientes:

SET sort_buffer_size=10000;
SET @@local.sort_buffer_size=10000;
SET GLOBAL sort_buffer_size=1000000, SESSION sort_buffer_size=1000000;
SET @@sort_buffer_size=1000000;
SET @@global.sort_buffer_size=1000000, @@local.sort_buffer_size=1000000;

5.5 Estructura del diccionario de datos

Los Metadatos son datos relevantes acerca de los datos que tenemos en la base de datos, tales como
el nombre de las bases de datos, tablas, tipo de datos de una columna, permisos de acceso, entre
otra información. El diccionario de datos es un componente esencial en cualquier DBMS ya que
contiene los metadatos de los objetos de las bases de datos alojadas en el servidor Otros términos
sinónimos son "Diccionario de datos" o "Catálogo del sistema".

Para el caso de MySQL, el diccionario de datos reposa en una base de datos


denominada information_schema que se crea una vez realizamos la instalación.

6
MySQL System Variables: http://dev.mysql.com/doc/refman/4.1/en/server-system-variables.html
22

A continuación se muestra un ejemplo que consulta la información de las tablas de la base de datos
llamada ‘db5’7 La sentencia solicita una lista de todas las tablas en la base de datos DB5, mostrando
sólo tres piezas de información: el nombre de la tabla, su tipo, y su motor de almacenamiento.

mysql> SELECT table_name, table_type, engine


-> FROM information_schema.tables
-> WHERE table_schema = 'db5'
-> ORDER BY table_name;
+------------+------------+--------+
| table_name | table_type | engine |
+------------+------------+--------+
| fk | BASE TABLE | InnoDB |
| fk2 | BASE TABLE | InnoDB |
| goto | BASE TABLE | MyISAM |
| into | BASE TABLE | MyISAM |
| k | BASE TABLE | MyISAM |
| kurs | BASE TABLE | MyISAM |
| loop | BASE TABLE | MyISAM |
| pk | BASE TABLE | InnoDB |
| t | BASE TABLE | MyISAM |
| t2 | BASE TABLE | MyISAM |
| t3 | BASE TABLE | MyISAM |
| t7 | BASE TABLE | MyISAM |
| tables | BASE TABLE | MyISAM |
| v | VIEW | NULL |
| v2 | VIEW | NULL |
| v3 | VIEW | NULL |
| v56 | VIEW | NULL |
+------------+------------+--------+

7
Información adicional del “information_schema” http://dev.mysql.com/doc/refman/5.5/en/information-
schema.html
23

5.6 Herramientas para la administración de MySQL

Para la administración de MySQL se cuenta con herramientas de consola, que pueden ejecutarse a
través de una simple conexión ssh, aunque pueden ser poco amigables y no es fácil recordar sus
opciones y sintaxis. Por otro lado están las herramientas gráficas, más fáciles de manejar además
de resultar intuitivas. Debido a que no siempre contamos con las condiciones para acceder desde
entornos gráficos vamos a revisar las dos alternativas para conocer el uso de las dos.

5.6.1 Consola de comandos:

Una vez se realiza la instalación de mysql-client se encuentran disponibles los comandos de


administración de MySQL.
A continuación explicaremos algunos de los comandos más útiles para la administración de
MySQL:

 mysql: Este comando inicia una sesión de consola en MySQL. Ofrece un intérprete de SQL
que permite realizar consultas, modificar tablas, crear bases de datos, prácticamente todo
lo que se necesita para la administración de la base de datos desde una sencilla línea de
comandos. Al comenzar, se le puede indicar la base de datos a la que queremos conectarnos
así como el usuario y su contraseña de la siguiente manera:

mysql -u Nombre_Usuario -p Base_Datos

Con este comando se abrirá una sesión conectándonos con el usuario Nombre_Usuario
a la base de datos Base_Datos El parámetro p indica que el acceso está protegido por
contraseña y el comando nos la pedirá antes de intentar conectar.
El comando mysql se utiliza para realizar scripts que hacen uso de la base de datos. El
siguiente ejemplo es una muestra de ello:

mysql -u Nombre_Usuario --password= Contraseña Base_Datos


24

En este caso se conectará a la base de datos con la clave Contraseña y no la solicitará al


inicio de la sesión.
 mysqladmin: Este comando permite crear y eliminar bases de datos (también puede
hacerse con CREATE/DROP DATABASE), cambiar la contraseña del administrador
(root), o incluso cambiarlo.
 mysqlcheck: Este comando permite reparar y optimizar las tablas con el servidor en
marcha.
 mysqldump: permite realizar copias de seguridad de una base de datos o de un conjunto de
tablas generando un fichero de texto SQL.
 mysqlimport: Permite cargar un archivo SQL y ejecutar sus comandos.

5.6.2 Sistemas Gráficos

MySQL Workbench es una herramienta gráfica que ofrece a los administradores de bases
de datos y desarrolladores un entorno de herramientas integrado que permite las siguientes
actividades:
 Diseño y Modelado de base de datos
 Desarrollo de sentencias SQL
 Administración de bases de datos
 Migración de base de datos
Permite diseñar diagramas de entidad-relación para MySQL, realizar la documentación de
una base de datos existente y facilita el proceso de migración. Así mismo puede generar el
script de creación para la base de datos a partir de la representación gráfica diseñada y
soporta las novedades incorporadas en MySQL 5.

A continuación se muestra la interfaz gráfica de MySQL workbench:


25

En los siguientes enlaces se encuentra información detallada acerca del manejo de la


interfaz gráfica de
Tutorial básico Workbench
http://coba.dc.fi.udc.es/~bd/bd2/MySQLWB/tutorialWB.html#Q120

Curso MySQL con Workbench en español


https://www.youtube.com/playlist?list=PLx9gPtuzG7IZyYqcKq290SKpgFzimJfAO

5.6.3 Entorno Web

phpMyAdmin es una herramienta de administración de MySQL a través de un entorno


web desarrollada en PHP. A través de la herramienta se puede crear y eliminar Bases de
Datos, así como crear, borrar y modificar tablas, instertar y añadir campos a las tablas,
ejecutar sentencias SQL, administrar usuarios, entre muchas otras facilidades. Dentro
26

de las ventajas que presenta es que se encuentra disponible en 72 idiomas, entre ellos el
español.
Herramientas como easy PHP8 incluyen por defecto. La siguiente imagen ilustra la interfaz
gráfica de phpmyadmin:

El uso de una u otra herramienta dependerá de la necesidad puntual del administrador de


la base de datos, o del desarrollador, según sea el entorno en el que se encuentra.

6 Consideraciones de Seguridad

La seguridad es una de las piedras angulares de los DBMS y por lo tanto uno de los elementos que
hay que tener en cuenta para su administración. La seguridad, no solo se refiere al servidor de

8
EasyPHP: http://www.easyphp.org/
27

MySQL, es necesario proteger totalmente la máquina completa contra todos los tipos de ataques
posibles: intercepción de paquetes, alteración, reproducción de comandos, y denegación de
servicio.
MySQL utiliza seguridad basada en Listas de Control de Acceso (ACL) que permite controlar las
conexiones, consultas, y otras operaciones que los usuarios pueden intentar realizar sobre la base
de datos. También hay soporte para conexiones cifradas mediante SSL entre clientes y servidores
MySQL.
Muchos de los conceptos que aquí se exponen no son específicos de MySQL; las mismas ideas
generales se pueden aplicar a cualquier aplicación. Dentro de los aspectos que hay que tener en
cuenta en este sentido es importante hacer un muy buen manejo de los perfiles de los usuarios que
acceden a la base de datos, manejo de privilegios, entre otras. A continuación explicamos con
mayor detalle algunos conceptos previos para entender cómo funciona la seguridad den MySQL.

6.1 Cuentas de usuario


Estamos familiarizados con el manejo de cuentas y cuando hacemos uso de ellas lo común es que
se nos pida para el acceso a un sistema el nombre de usuario y su contraseña. En MySQL
adicionalmente deberemos añadir también el “host” desde el que se conecta el usuario. Para
MySQL, existe diferencia entre el “usuario” que se conecta desde la máquina “localhost”, al
“usuario” que se conecta desde la máquina “www.umb.edu.co”. Así que es algo para tener en
cuenta.
De otro lado es importante tener en cuenta los permisos de acceso, una cuenta identificada por su
usuario/clave/host, puede tener la misma clave de acceso para todas las bases de datos de un
servidor, sin embargo tener diferentes permisos para cada una de las bases de datos.

6.2 Comprobaciones

Cada vez que se realiza una conexión a la base de datos MySQL realiza tres tipos de
comprobaciones que tienen que ver con los siguientes elementos (Jaque 2007):
 Autenticación
Para cada nueva conexión, MySQL comprueba la cuenta con los siguientes elementos: nombre de
usuario, la clave y el host de origen. Con esta información se establecen los privilegios del usuario.
 Autorización
Para cada operación, MySQL verifica que el usuario tiene los permisos necesarios para
desarrollarla.
 Control de acceso
28

Para cada operación, MySQL comprueba que el usuario tiene permiso para ver o modificar las
tablas y columnas involucradas.

6.3 Privilegios
MySQL utiliza privilegios sobre objetos de la base de datos, especialmente relacionados con el
control de acceso y privilegios globales que tienen que ver con la autorización.
Para el primer tipo de privilegios, es decir los de control de acceso, las cuentas de acceso pueden
tener privilegios distintos para los diferentes objetos del servidor, por ejemplo puede tener
concedidos o denegados privilegios sobre los objetos disponibles:
● Bases de Datos
● Tablas
● Columnas
● Índices
Algunos de los privilegios son: Select, Insert, Update, Index, Delete, Drop, Index, Alter, Create,
Grant, References, entre otros. Existen nombres de permisos agrupados, como el caso de All y
Usage. Hay que tener en cuenta que los privilegios son booleanos, es decir se tienen o no se tienen
(falso o verdadero), no hay valores intermedios, ni numéricos.
Por parte de los privilegios globales se aplican a objetos del servidor (datos), entre este tipo de
privilegios se cuentan los siguientes:

● Reload: Muy inofensivo, permite al usuario realizar FLUSH.


● Shutdown: Para cerrar el servidor.
● Process: Permite ver la lista de procesos (SHOW PROCESSLIST) y matar (KILL) sus procesos.
El acceso a la lista de procesos permite ver los datos de las mismas, incluyendo las claves de
acceso.
● File: Permite cargar datos de ficheros (LOAD DATA FILE).
● Super: Permite matar cualquier proceso (del servidor de base de datos), incluso los que no
pertenezcan al usuario.
29

6.4 Recomendaciones de seguridad

Con la información previa clara presentamos algunas de las recomendaciones de seguridad a tener
en cuenta al ejecutar MySQL, y que se encuentran presentes en el manual de referencia de MySQL9
En la medida de lo posible debe seguir siempre estas sugerencias:
 La cuenta root de MySQL es la única que debe tener acceso a la tabla user en la base de
datos, esto es debido a que la clave cifrada es la verdadera clave en MySQL. Cualquiera
que sepa cuál es la clave que hay en la tabla user tendrá acceso de administrador a la
máquina host de la cuenta y por ende a toda la base de datos con privilegios ilimitados.
 Las sentencias GRANT y REVOKE se utilizan para controlar el acceso a MySQL. No
otorgue más privilegios de los necesarios.
 Nunca otorgue privilegios a un mismo usuario sin tener en cuenta el equipo desde el que
se conecta.
 Lista de comprobaciones:
o Pruebe el comando mysql -u root. Al ejecutarlo no debería tener acceso a la base
de datos sin ingresar la clave, en caso contrario tiene problemas ya que cualquiera
puede conectar a su servidor MySQL como el usuario root de MySQL con
privilegios totales. Revise las instrucciones de instalación de MySQL, prestando
atención en concreto a la información sobre establecer una clave para el usuario
root.
o Utilice la sentencia SHOW GRANTS y compruebe que usuarios tienen acceso a
qué objetos. Después utilice la sentencia REVOKE para denegar los privilegios que
no son necesarios.
 No almacene ninguna clave sin cifrar en su base de datos. Si alguien tuviera acceso a su
ordenador, al intruso podría obtener la lista completa de claves y utilizarlas. En vez de eso,
utilice cifrados con MD5(), SHA1(), o cualquier otra función de hashing.
 No elija claves que puedan aparecer en un diccionario. Existen programas especiales para
romperlas. Incluso claves como ``xperro98'' son muy malas. Es mucho mejor ``oweei98'',
que contiene la misma palabra ``perro'' pero escrita desplazándose una tecla a la izquierda
en un teclado convencional. Otro método es usar técnicas como tomar las primeras letras
de cada palabra de la una frases cualquiera, por ejemplo “Mtupc'', corresponde a las
iniciales de “María tuvo un pequeño corderito.'' Así es fácil de recordar y escribir, pero
difícil de adivinar para cualquiera que no la conozca.

9
MySQL 5.0 Reference Manual http://downloads.mysql.com/docs/refman-5.0-es.a4.pdf
30

 Utilice un firewall. Le protegerá de al menos el 50% de todos los tipos de vulnerabilidades


de cualquier software. Ponga MySQL tras el firewall o en una zona desmilitarizada (DMZ).

La siguiente lista de comprobaciones es importante tenerla en cuenta para las aplicaciones y


servicios web que hagan uso de bases de datos:
• Intente introducir comillas simples y dobles (''' y '"') en todos sus formularios web. Si
obtiene cualquier clase de error MySQL, investigue el problema sin demora.
• Intente modificar las URL dinámicas añadiendo las cadenas %22 ('"'), %23 ('#'), y %27
(''').
• Intente modificar los tipos de datos en las URL dinámicas de tipos numéricos a
alfanuméricos, usando los caracteres mostrados en los ejemplos previos. Su aplicación
debería ser segura contra estos y otros ataques similares.
• Intente introducir letras, espacios, y símbolos especiales en vez de números en los campos
numéricos. Su aplicación debería eliminarlos antes de pasarlos a MySQL, o en todo caso
generar un error. ¡Pasar valores sin comprobar a MySQL es muy peligroso! Pues se pueden
ejecutar consultas desde códigos maliciosos que permitan acceder a los datos de la base de
datos.
• Compruebe el tamaño de los datos antes de pasárselos a MySQL.
• No dé a sus aplicaciones ningún acceso que no necesiten.

• No transmita datos sin cifrar por Internet. Esta información es accesible para cualquiera que tenga
el tiempo y la habilidad para interceptarla y utilizarla para sus propios propósitos. En vez de eso,
utilice un protocolo de cifrado como SSL o SSH. MySQL soporta conexiones SSL internas desde
la versión 4.0.0. El redireccionamiento de puertos de SSH se puede utilizar para crear un túnel
cifrado (y comprimido) para la comunicación.

3.5 Gestión de usuarios


Una vez revisados los temas de seguridad vamos a revisar cómo se realiza la gestión de usuarios
en MySQL, en esta sección revisaremos como gestionar cuentas y privilegios. Existen dos
alternativas para crear cuentas con MySQL
 Haciendo uso del comando GRANT
 Realizando manipulación directa de las tablas de permisos en MySQL.
El método recomendado es utilizar GRANT para evitar errores.
MySQL tiene cinco niveles de privilegios para asignar a los usuarios de la base de datos y son los
siguientes:
31

 Globales: es el nivel más alto de privilegios y se aplica a todas las bases de datos que se
encuentren en el servidor.
 Base de datos: aplica a una base de datos específica incluyendo todos los objetos que tiene,
es decir, tablas y procedimientos.
 Tabla: aplica a una tabla específica, incluyendo todas sus columnas.
 Columna: aplica a una columna en una tabla específica.
 Procedimientos: aplica a los procedimientos almacenados creados en una base de datos.
La sintaxis básica del comando GRANT es la siguiente:

GRANT privilegios ON baseDatos / tabla TO usuario IDENTIFIED BY 'password'

De otro lado también podemos quitar privilegios con el comando REVOKE. Las
sentencias GRANT y REVOKE permiten a los administradores del sistema crear cuentas de
usuario MySQL y conceder y revocar derechos de esas cuentas. La sintaxis es muy similar a la
de GRANT:

REVOKE privilegios ON baseDatos / tabla FROM usuario IDENTIFIED BY 'password'

Los privilegios más destacados que utilizan los comandos GRANT y REVOKE encuentran en la
siguiente tabla, para revisar todos los permisos posibles sobre la base de datos se puede consultar
el manual de usuario de MySQL10:

10 GRANT Syntax

http://dev.mysql.com/doc/refman/5.1/en/grant.html
32

Permiso Permiso Significado


Significado
ALL Da todos los permisos sobre la base de datos u objeto
ALTER Permite el uso de ALTER TABLE
CREATE Permite el uso de CREATE TABLE
DELETE Permite el uso de DELETE
DROP Permite el uso de DROP TABLE
INSERT Permite el uso de INSERT
SELECT Permite el uso de SELECT
SHOW muestra todas las bases de datos
DATABASES
UPDATE Permite el uso de UPDATE
USAGE Sinónimo de “no privileges”. USAGE puede especificarse cuando quiere
crear un usuario sin permisos

Normalmente, un administrador de base de datos utiliza primero el comando CREATE USER para
crear una cuenta, y a continuación, concede y define sus privilegios y características. Los
siguientes son ejemplos que muestran cómo se pueden otorgar permisos a una base de datos
completa o a una tabla específicamente.

CREATE USER 'umb'@'localhost' IDENTIFIED BY 'p4ssw0rd';


GRANT ALL ON base_datos.* TO 'umb'@'localhost';
GRANT SELECT ON base_datos.tabla TO 'umb'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP on base_datos TO
'umb'@'localhost';
REVOKE ALL ON base_datos.* from USER@localhost;

En el ejemplo anterior estamos creando el usuario “umb” que se podrá conectar desde el servidor
local, y que se encuentra identificado con la clave “p4ssw0rd”. A este usuario se le están asignando
en primera instancia todos los permisos para el acceso a todas las tablas de la base de datos
“base_datos”. En segunda instancia se le asignan permisos a la tabla “tabla” de la base de datos
“base_datos”. El comando GRANT permite otorgar varios tipos de permisos en una sola consulta
33

solamente separándolos por coma (“ ,”) como se muestra en el ejemplo. La última sentencia le
quita todos los permisos a todas las tablas del usuario USER que accede desde el servidor local.
Otras funciones útiles para la gestión de usuarios son las siguientes:
RENAME: Permite cambiar el nombre de usuario a un usuario existente en la base de datos, la
sintaxis es la siguiente:

RENAME USER nombre_anterior TO nuevo_nombre;

SET PASSWORD: permite cambiar la clave de un usuario, la sintaxis es como sigue:

SET PASSWORD FOR ‘usuario’@’servidor’= PASSWORD(‘nueva_clave’);

En caso de tener un usuario con varios servidores (host) definidos se puede realizar un cambio de
password para todos los usuarios, realizando una actualización de la tabla USER de MySQL de la
siguiente manera:

UPDATE USER SET password=PASSWORD("nueva_clave") where user="usuario"

DROP USER: permite eliminar un usuario, la sintaxis es como sigue:

DROP USER ‘usuario’@’servidor’


34

Glosario

 DBMS: Data Base Management System. Sistema gestor o Manejador de Bases de datos.
 Base de datos: Conjunto de datos de varios tipos, organizados e interrelacionados libres
de redundancias.
 Consulta o Query: Es una petición al DBMS para procesar un comando SQL.
 Redundancia: Cuando se encuentra información almacenada varias veces en la misma
base de datos.
 Inconsistencia: Cuando los datos almacenados no contienen información coherente. Por
ejemplo si realizamos consultas por diferentes vías para obtener los mismos datos, y sus
resultados son diferentes.
 Integridad de datos: Asegurar que las interrelaciones entre registros respetan las
dependencias y tienen identificadores únicos. Como ejemplo, un usuario no debe poder
borrar una tabla de una base de datos, si otro usuario la está usando. Los problemas de
integridad se producen cuando varios usuarios editan datos de la misma base de datos de
forma simultánea.

Bibliografía:

HUESO IBAÑEZ, LUIS. Administración de Sistemas Gestores de Bases de Datos. Ra-Ma 2011.

RAMOS, MARÍA JESÚS. Sistemas gestores de bases de datos. McGraw-Hill. 2006

JAQUE BARBERO, MIGUEL. Manual de Supervivencia del Administrador de MySQL. 2007

DUBOIS, PAUL. MySQL Developer’s Manual:The definitive guide to using, programming and
administering MySQL 5.5 and MySQL 5.6. 2013.

WEBGRAFIA

MySQL Reference Manual


http://dev.mysql.com/doc/refman/5.7/en/index.html

Database Systems – Present and Future


http://revistaie.ase.ro/content/49/009%20-%20Lungu,%20Velicanu,%20Botha.pdf
35

Sugerencias didácticas

Para la revisión y apropiación de los conceptos se realizará una actividad colaborativa con el fin
de construir un mapa conceptual en grupo con todos los participantes del grupo.

Se realizarán talleres prácticos para interactuar con el DBMS MySQL y aplicar conceptos
aprendidos en el curso.

También podría gustarte