Informe Final MySQL
INTRODUCCIÓN
Las bases de datos requieren de un sistema gestor que permita el almacenamiento, modificación y
extracción de datos y puede también actualizar los registros modificando, añadiendo, analizando o
borrando datos, la mayoría también como MySQL generan informes de datos e implementan un
lenguaje de consulta (SQL en inglés).
Otra función del SGBD (Sistema gestor de bases de datos) es el de mantener integridad y la seguridad
de los datos. Para la seguridad el sistema administra los permisos de acceso a los datos mediante
usuarios con credenciales y distintos tipos de usuarios.
La integridad, para que sea de dominio se comprueba la validez de las columnas, para que sea de la
entidad la clave primaria tendrá un valor único para cada fila de la tabla, y para que sea referencial
asegura la integridad entre las llaves foráneas y primarias (Wikilibros, 2017).
MySQL es un sistema de gestión de base de datos relacional (RDBMS) de código abierto, basado en
lenguaje de consulta estructurado (SQL).
MySQL se ejecuta en prácticamente todas las plataformas, incluyendo Linux, UNIX y Windows. A
pesar de que se puede utilizar en una amplia gama de aplicaciones, MySQL se asocia más con las
aplicaciones basadas en la web y la publicación en línea y es un componente importante de una pila
empresarial de código abierto llamado LAMP. LAMP es una plataforma de desarrollo web que utiliza
Linux como sistema operativo, Apache como servidor web, MySQL como sistema de gestión de base
de datos relacional y PHP como lenguaje de programación orientado a objetos (a veces, Perl o Python
se utiliza en lugar de PHP), (Margaret Rouse, 2019).
3 Administración de Base de Datos con MySQL
ÍNDICE GENERAL
CAPITULO I
Evolución Historica del Gestor de Base de Datos ............................................................................... 4
CAPITULO II
Conociendo el Gestor de Base de Datos ........................................................................................... 13
CAPITULO III
Diccionario de Datos ......................................................................................................................... 46
CAPITULO IV
Integridad en Base de Datos .............................................................................................................. 62
CAPITULO V
Seguridad en Base de Datos .............................................................................................................. 70
CAPITULO VI
Migración de Datos ........................................................................................................................... 82
CAPITULO VII
Rendimiento en Base de Datos.......................................................................................................... 97
CAPITULO VIII
Encriptación o Cifrado de Datos ..................................................................................................... 104
CAPITULO IX
Disponibilidad en Base de Datos .................................................................................................... 112
4 Administración de Base de Datos con MySQL
CAPITULO I
Evolución Histórica del Gestor de Base de Datos
5 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO I ..................................................................................................................................... 4
EVOLUCIÓN HISTÓRICA DEL GESTOR MySQL ............................................................... 6
1.1. Como, Cuando y Donde se Creo ...................................................................................... 6
1.2. Hechos Trascendentales .................................................................................................... 7
1.3. Evolución de Versiones y Ediciones ................................................................................. 7
1.3.1 MySQL Enterprise Edition ............................................................................................. 7
1.3.2. MySQL Standard Edition .............................................................................................. 8
1.3.3. MySQL Classic Edition .................................................................................................. 8
1.3.4. MySQL Cluster CGE ...................................................................................................... 8
1.3.5. MySQL Embedded (OEM/ISV) ............................................................................... 9
1.3.6. MySQL Community Edition .................................................................................. 10
1.4. Mejoras hasta la fecha (Ultima Versión) ....................................................................... 10
Referencias Bibliográficas .............................................................................................................. 12
6 Administración de Base de Datos con MySQL
Según página MySQL (2019), Comenzamos con la intención de utilizar el mSQL sistema de
base de datos para conectarnos a nuestras tablas utilizando nuestras propias rutinas rápidas de
bajo nivel (ISAM). Sin embargo, después de algunas pruebas, llegamos a la conclusión de que
mSQL no era lo suficientemente rápido o lo suficientemente flexible para nuestras necesidades.
Esto dio como resultado una nueva interfaz SQL para nuestra base de datos, pero con casi la
misma interfaz API que mSQL. Esta API fue diseñada para permitir que el código de terceros
que fue escrito para su uso mSQL sea portado fácilmente para su uso con MySQL.
MySQL lleva el nombre de la hija del cofundador Monty Widenius, My.
El nombre de la MySQL Dolphin (nuestro logo) es “Sakila,” que fue elegido de una gran lista
de nombres sugeridos por los usuarios en “Nombre del delfín” concurso. El nombre ganador fue
presentado por Ambrose Twebaze, un desarrollador de software de código abierto de
Swazilandia, África. Según Ambrose, el nombre femenino Sakila tiene sus raíces en SiSwati, el
idioma local de Swazilandia. Sakila es también el nombre de una ciudad en Arusha, Tanzania,
cerca del país de origen de Ambrose, Uganda.
Según la página oficial de Wikipedia (2019), el gestor MySQL fue creado por una compañía
sueca MySQL AB en 1995. Los desarrolladores de la plataforma fueron Michael Widenius David
Axmark y Allan Larsson.
MySQL es un sistema gestor de base de datos el cual sigue el modelo relacional de CODD,
además de utilizar SQL (Structured Query Language).
Según la página oficial de Ecured (2019), Edgar Frank Codd fue un científico informático
inglés, conocido por sus aportes a la teoría de bases de datos relacionales, considerado el modelo
más usado hoy en día y para muchas personas, el único que conocen.
Según la página oficial de Logicalis (2015), el Modelo relacional es, actualmente, el modelo
más utilizado en la gestión de datos dinámicos (o lo que es lo mismo, aquellos datos sujetos a
modificaciones y actualizaciones). Sin embargo, la gestión de bases de datos relacionales entraña
una espesa red de conceptos que a veces, para los profanos, pueden resultar algo difíciles de
manejar.
Según la página oficial de Wikipedia (2019), La Open Source Initiative (OSI, en español
Iniciativa para el Código Abierto) es una organización dedicada a la promoción del código
abierto. Fue fundada en febrero de 1998 por Bruce Perens y Eric S. Raymond.
Según la página Universia Perú (2015), redacta que, tras numerosos estudios, la OSI establece
que para poder catalogar a un software como Open Source debe responder a los siguientes
parámetros: distribución libre, código fuente, trabajos derivados, integridad del autor, no
restringir otros programas, así como también disponer de licencias neutras en lo que refiere a
tecnología. Como sucede con toda innovación, el software libre generó posiciones a favor y en
contra. Los más conservadores consideran que esta clase de software conduce al anarquismo
digital; por el contrario, quienes lo defienden lo ven como una gran posibilidad de negocio para
la industria de los softwares. A pesar de las posturas en contra, el Open Source ha recibido el
respaldo de muchos negocios tradicionales, por lo que se espera que en los próximos años su
crecimiento continué en ascenso, al punto de formar parte de la vida cotidiana de todos los
usuarios. Asimismo, uno de los logros más reconocidos en esta área ha sido el sistema operacional
Linux.
Según la página de Wikipedia (2019), Sun Microsystems fue una empresa informática que se
dedicaba a vender estaciones de trabajo, servidores, componentes informáticos, software
(sistemas operativos) y servicios informáticos. En febrero 2008, Sun compró MySQL AB, un
sistema de gestión de base de datos.
Según Wikipedia (2019), Oracle fue adquirida en el año 2010 por Oracle Corporation, y
formó parte de los iconos de Silicon Valley, como fabricante de semiconductores y software. Los
ingenieros Larry Ellison, Ed Oates y Bob Miner fundan en 1977 una empresa de consultoría
llamada Software Development Laboratories (SDL), y tiempo después obtienen un contrato con
la CIA para diseñar un sistema especial de bases de datos con código clave "Oracle".
El 20 de abril se anuncia la adquisición de Sun Microsystems, en una operación que ronda
los 7.400 millones de dólares y que amplía enormemente la cartera de servicios de Oracle.
1.3. Evolución de Versiones y Ediciones
Versiones
Según Laura gittins (2010). La compañía de software de MySQL AB creó la versión original
el 23 de mayo 1995. En 1999, se lanzó la versión 3.23.0, la primera versión importante. En
octubre de 2001, MySQL AB lanzó la versión 4.0.0 y, en abril de 2003, la versión 4.1.0. En
diciembre de 2003, se liberó la versión 5.0.0, y la versión 5.5 fue lanzada en diciembre de 2009.
Y la última versión, 8.0.15 se lanzó el 1 de febrero de 2019.
Ediciones
1.3.1 MySQL Enterprise Edition
MySQL Cluster 7.6 se trata de soportar el último hardware, escalando a sistemas aún
más grandes y fáciles de mantener.
Según página oficial de MySQL (2019), más de 2000 ISV, OEM y VAR confían
en MySQL como la base de datos integrada de sus productos para hacer que sus
aplicaciones, hardware y dispositivos sean más competitivos, llevarlos al mercado
más rápido y reducir sus COG (costo de los bienes vendidos),
Estos clientes de ISV y OEM eligen MySQL por su:
✓ Bajo costo, hasta un 90% menos que Microsoft SQL Server con
características que aseguran que los COGS permanezcan bajos durante el
ciclo de vida de una aplicación. Los costos más bajos de la base de datos
permiten a los proveedores ofrecer sus productos a una fracción del costo de
las soluciones de la competencia y la flexibilidad para atraer a clientes más
sensibles al precio.
✓ Flexibilidad multiplataforma con soporte para más de 20 plataformas que
brindan la libertad de enviar productos en múltiples combinaciones de
hardware y sistema operativo y en más mercados.
✓ Alto rendimiento, confiabilidad y escalabilidad para cumplir con los
requisitos de las aplicaciones más exigentes, como Telco y gestión de redes.
La inclusión de un RDBMS con todas las funciones ayuda a que los
productos sean más competitivos inicialmente y con el tiempo a medida que
las necesidades de datos de los clientes aumentan inevitablemente.
✓ Facilidad de uso con instalación, configuración e integración rápidas para
que los desarrolladores puedan enfocarse en el desarrollo de aplicaciones,
reduciendo costos y tiempo de comercialización.
✓ Administración cero, eliminando la necesidad de que los clientes contraten
un DBA dedicado o gasten cualquier ciclo en la administración de la base de
datos, y reducen o eliminan las costosas llamadas de soporte relacionadas
con la base de datos.
10 Administración de Base de Datos con MySQL
A partir de MySQL 8.0.16, el servidor realiza las tareas previamente manejadas por
mysql_upgrade. Después de la instalación de una nueva versión de MySQL, el servidor ahora
realiza automáticamente todas las tareas de actualización necesarias en el próximo inicio y no
depende del DBA que invoca mysql_upgrade. Además, el servidor actualiza el contenido de las
tablas de ayuda (algo que mysql_upgrade no hizo). Una nueva --upgrade opción de servidor
proporciona control sobre cómo el servidor realiza el diccionario de datos automático y las
operaciones de actualización del servidor.
12 Administración de Base de Datos con MySQL
Referencias Bibliográficas
CAPITULO II
Conociendo el Gestor de Base de Datos
14 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO II................................................................................................................................ 133
CONOCIENDO EL GESTOR DE BASE DE DATOS .............................................................. 155
2.1. Características Propias del Gestor ................................................................................... 155
2.1.1. Partes internas y portabilidad .................................................................................... 155
2.1.2. Tipo de datos ................................................................................................................ 156
2.1.3. Declaraciones y funciones ............................................................................................. 16
2.1.4. Seguridad ....................................................................................................................... 16
2.1.5. Escabilidad y limites...................................................................................................... 16
2.1.6. Conectividad ................................................................................................................ 177
2.1.7. Localización ................................................................................................................... 17
2.1.8. Clientes y herramientas ................................................................................................ 17
2.2. Diferencias Frente a otros Gestores .................................................................................. 188
2.3. Demostración del Gestor y sus Herramientas Básicas (Creación de base de datos,
Tablas, Vistas, etc.) en modo Gráfico y en Comandos SQL .................................................. 199
2.3.1. Proceso de Instalación de MySQL (Versión 8.0.18) ................................................. 199
[Link]. Requerimientos y prerrequisitos ......................................................................... 199
[Link]. Descarga e instalación de MySQL ........................................................................ 19
2.3.2. Creación de base de datos ........................................................................................... 377
2.3.3. Creación de tablas ......................................................................................................... 40
2.3.4. Creación de vistas .......................................................................................................... 42
Referencias Bibliográficas ............................................................................................................ 455
15 Administración de Base de Datos con MySQL
Fuente: [Link]
✓ El ancho máximo del índice para las MyISAM tablas es de 1000 bytes. Un índice puede
usar un prefijo de una columna para CHAR, VARCHAR, BLOB, o TEXT tipos de
columna.
2.1.6. Conectividad
Los clientes pueden conectarse al servidor MySQL usando varios protocolos:
✓ Los clientes pueden conectarse mediante sockets TCP / IP en cualquier plataforma.
✓ En los sistemas Windows, los clientes pueden conectarse utilizando canalizaciones con
nombre si el servidor se inicia con la named_pipevariable del sistema habilitada. Los
servidores de Windows también admiten conexiones de memoria compartida si se inicia
con la shared_memoryvariable del sistema habilitada. Los clientes pueden conectarse a
través de la memoria compartida utilizando la --protocol=memoryopción
✓ En los sistemas Unix, los clientes pueden conectarse utilizando archivos de socket de
dominio Unix.
✓ Los programas cliente MySQL pueden escribirse en muchos idiomas. Una biblioteca de
clientes escrita en C está disponible para clientes escritos en C o C ++, o para cualquier
lenguaje que proporcione enlaces en C.
✓ Las API para C, C ++, Eiffel, Java, Perl, PHP, Python, Ruby y Tcl están disponibles, lo
que permite que los clientes MySQL se escriban en muchos idiomas.
✓ MySQL Connector / NET permite a los desarrolladores crear fácilmente aplicaciones
.NET que requieren conectividad de datos segura y de alto rendimiento con MySQL.
Implementa las interfaces [Link] necesarias y se integra en las herramientas
compatibles con [Link]. Los desarrolladores pueden crear aplicaciones utilizando su
elección de lenguajes .NET. MySQL Connector / NET es un controlador [Link]
totalmente administrado escrito en C # 100% puro.
2.1.7. Localización
✓ El servidor puede proporcionar mensajes de error a los clientes en muchos idiomas
✓ Soporte completo para distintos conjuntos de caracteres, incluyendo latin1(CP1252),
german, big5, ujis, varios conjuntos de caracteres Unicode, y mucho más. Por ejemplo,
los caracteres escandinavos " å”, " ä" y " ö" están permitidos en los nombres de tablas y
columnas.
✓ Todos los datos se guardan en el juego de caracteres elegido.
✓ La clasificación y las comparaciones se realizan de acuerdo con el conjunto de caracteres
y la clasificación predeterminados. es posible cambiar esto cuando se inicia el servidor
MySQL.
2.1.8. Clientes y herramientas
✓ MySQL incluye varios clientes y programas de utilidad. Estos incluyen tanto programas
de línea de comandos como mysqldump y mysqladmin, como programas gráficos como
MySQL Workbench.
✓ MySQL Server tiene soporte incorporado para sentencias SQL para verificar, optimizar
y reparar tablas. Estas declaraciones están disponibles desde la línea de comandos a
través del cliente mysqlcheck. MySQL también incluye myisamchk, una utilidad de línea
de comandos muy rápida para realizar estas operaciones en MyISAM tablas. Consulte el
Capítulo 4, Programas MySQL.
✓ Los programas MySQL se pueden invocar con la opción: “--help u –?”, para obtener
asistencia en línea.
18
MYSQL
No tiene soporte capacidad limitada Multiplataforma, aunque pertenezca a Microsoft. Pertenece a Oracle licencia GLP/licencia
comercial
GESTORES
Transacciones.
Precio muy elevado Es el más usado al nivel mundial. Dispone de su propio lenguaje PL/SQL,
soporta
Elevado coste de información, tratado por trabajadores Multiplataforma.
formados por Oracle Base de datos de gran tamaño
ORACLE
Respuesta lenta. Código abierto y gratuito, multiplataforma. Tiene la extensión POSTGIS para base
de datos espaciales
2.2. Diferencias Frente a otros Gestores
La migración de un sistema muy testado y fiable como es Nuevos motores de almacenamiento más eficientes. Aria y Existen algunas mejoras al código
MySQL. Aunque se garantiza una absoluta XtraDB vienen a reemplazar a MyISAM e InnoDB DBUG para hacer su ejecución más
compatibilidad, y un gran sistema estable y potente, hay respectivamente. rápida cuando se compila, pero no se
que valorar si a día de hoy merece pasar todo mi sistema a usa.
MariaDB. Estadísticas para índices y tablas que pueden ayudar para
la optimización de la base de datos. LA TABLA DE CHEQUEO DE
REDUNDANCIA es más rápida.
MARIA DB
A continuación, exponemos una comparativa con los distintos SGBD.
En sistemas grandes la base más usada es DB2 ya que corre Permite agilizar el tiempo de respuestas de esta consulta Al igual que otros motores de bases de
en diferentes plataformas operativas, pero en realidad, en datos de alto rendimiento, IBM Db2
la mayoría de los casos la decisión para optar por Recuperación utilizando accesos de sólo índices. cuenta con todas las funciones capaces
un software de estas características es corporativa. de manejar grandes cantidades de datos
Predicados correlacionados.
DB2
Desventajas Características
AS
DIF
NCI
ERE
ventajas
19 Administración de Base de Datos con MySQL
2.3. Demostración del Gestor y sus Herramientas Básicas (Creación de base de datos, Tablas,
Vistas, etc.) en modo Gráfico y en Comandos SQL
2.3.1. Proceso de Instalación de MySQL (Versión 8.0.18)
[Link]. Requerimientos y prerrequisitos
Características mínimas
✓ Procesador con 2 núcleos
✓ 2 GB de RAM
✓ Subsistema de E/S de disco aplicable a una base de datos de escritura
intensiva
Características recomendadas
✓ Procesador con 4 núcleos
✓ 8 GB de RAM o mas
✓ Arreglo de disco en RAID 10
Prerrequisitos
✓ Tener instalado .Net framework 4.5.2
2. Desplazar la página hacia abajo y hacer clic en MySQL Community (GPL) Downloads»
4. De los productos disponibles seleccionar para instalar ‘MySQL Server 8.0’. Tomar en
cuenta la distribución correcta según el procesador en el equipo en que está instalando.
Para equipos con procesador de 64bits seleccionar la distribución marcada como ‘X64’.
Nota: Puede omitir este paso si no le es necesario instalar en una ruta diferente a la
predeterminada.
6. Esta ventana muestra los requerimientos necesarios para la instalación, si alguno de ellos
esta faltante el instalador tiene la capacidad de descargar estos elementos, el usuario
tendrá que vigilar y aceptar la instalación de cada uno.
Haga clic en ‘Execute’ para iniciar. Dependiendo de la conexión a internet las ventanas
emergentes para la instalación de estos elementos
pueden demorar en mostrarse.
Nota: Es necesario instalar
✓ Microsoft Visual C++ 2015 Runtime
14. En la ventana ‘Type and Networking’ sobre la opción ‘Config Type’se muestran tres
opciones:
✓ ‘Develepment Machine’ - consumo de memoria bajo - seleccione esta
opción si el equipo de cómputo tendrá otras funciones además de funcionar
como servidor de base de datos (es un equipo de uso personal).
✓ ‘Server Machine’ consumo de memoria medio - seleccione esta opción si el
equipo de cómputo realizara otras funciones o Servicios
✓ ‘Dedicated Machine’ consumo de memoria alto - seleccione esta opción si
la única función del equipo en que se instala será el servidor de base de datos.
Esta opción presenta el mejor rendimiento.
En el apartado ‘Connectivity’ asegurarse que las siguientes opciones se encuentran
marcadas: marcar la casilla ‘TCP/IP’
‘Port Number’: 3306 marcar la casilla ‘Open Firewall por for network access’.
Hacer clic en ‘Next’ para continuar
18. Una vez que se ha captura la contraseña para el usuario ‘Root’ y se ha agregado un
usuario haga clic en ‘Next’.
24. Al iniciar la aplicación se muestra la siguiente ventana. Hacer clic sobre ‘Local
instance MySQL80’.
25. Finalmente se mostrará una interfaz grafica de MYSQL Workbench, y esta listo para
empezar a trabajar.
Figura 29. Selección del icono Server para crear un nuevo Schema.
2. Una vez que hemos dado clic nos mostrará una interfaz donde, nombramos a nuestra base
de datos en mi caso tendrá el nombre de naturaldiaz y luego damos en Apply.
5. Una vez finalizada la acción vemos el panel de navegación y la salida de acciones nos
mostrara el mensaje que la base de datos fue creada correctamente.
2. Una vez hecho lo anterior se mostrará una ventana para crear una nueva vista, en mi caso
creare una vista que me muestre solo al usuario 1.
Referencias Bibliográficas
[Link] (2019), Conociendo el gestor de base de datos, recuperado (24 ago. 2019),
[Link]
[Link]
[Link] (2017), Diferencias frente a otros gestores, recuperado (24 ago. 2019),
[Link]
datos-sgbd/
[Link]
[Link] (2019), Creación de base de datos, recuperado (24 ago. 2019),
[Link]
46 Administración de Base de Datos con MySQL
CAPITULO III
Diccionario de Datos
47 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO III .............................................................................................................................. 466
DICCIONARIO DE DATOS ....................................................................................................... 488
3.1. Definición de Metadatos .................................................................................................... 488
3.1.1. Tipos de Metadatos ..................................................................................................... 488
3.2. Definición de Diccionario de Datos ................................................................................... 499
3.2.1. Significado .................................................................................................................... 499
3.2.2. Importancia.................................................................................................................. 499
3.3. Que Aplicaciones/Herramientas hacen uso el Diccionario de Datos ............................... 49
3.4. En qué consisten los siguientes estándares: ....................................................................... 50
3.5. Trabajo de Demostración de Diccionario de Datos en el Gestor ..................................... 51
Referencias Bibliográficas .............................................................................................................. 61
48 Administración de Base de Datos con MySQL
DICCIONARIO DE DATOS
3.1. Definición de Metadatos
Según [Link] (2019), aporta que, la definición más concreta de los metadatos es qué
son “datos acerca de los datos” y sirven para suministrar información sobre los datos producidos.
Los metadatos consisten en información que caracteriza datos, describen el contenido, calidad,
condiciones, historia, disponibilidad y otras características de los datos.
Datos estructurados que describen y permiten encontrar, gerenciar, comprender o preservar
documentos archivísticos al largo del tiempo. (CTDE - Cámara Técnica de Documentos
Electrónicos – Conselho Nacional de Arquivos – Brasil).
Según [Link] (2007) tiene como funciones:
✓ Apoyar el acceso a los documentos;
✓ Apoyar y documentar la gestión y la preservación de documentos digitales.
Los metadatos deben ser registrados durante todo el ciclo de vida de los documentos,
incluyendo las actividades de: creación, identificación, descripción, acceso, almacenamiento y
preservación.
Nota: Los productores TIENEN que registrar los metadatos desde la creación de los documentos.
3.1.1. Tipos de Metadatos
• Clasificación.
• Asunto, etc.
3.2. Definición de Diccionario de Datos
3.2.1. Significado
Según Diana Gabriela Higuera Robles en [Link] (2019), el diccionario de datos
es un listado organizado de todos los datos que pertenecen a un sistema.
El objetivo de un diccionario de datos es dar precisión sobre los datos que se manejan en
un sistema, evitando así malas interpretaciones o ambigüedades. Define con precisión los
datos de entrada, salida, componentes de almacenes, flujos, detalles de las relaciones entre
almacenes, etc.
Los diccionarios de datos son buenos complementos a los diagramas de flujo de datos,
los diagramas entidad-relación, etc.
3.2.2. Importancia
El diccionario de datos guarda y organiza los detalles del Diagrama de Flujo de Datos
(DFD). Es el segundo componente del análisis estructurado. También se conoce como "Data
Repository". Incluye el contenido de los data flow (flujos de datos), los "data store", las
entidades externas y los procesos.
Data elements (elementos de datos). Es la parte más pequeña de los datos que tiene
significado en el sistema de información. Se combinan varios elementos de datos para hacer
los récords o "data structures". Ejemplo: nombre, dirección, seguro social.
Data Structure (Estructura de datos) También se conocen como récord. Es la
combinación de elementos de datos relacionados que se incluye en un flujo de datos o se
retiene en un "data store".
3.3. Que Aplicaciones/Herramientas hacen uso el Diccionario de Datos
Según Ana Isabel Gomez Carrero (2015), aporta lo siguiente:
✓ DaD18K Tool (Aplicación para la gestión de diccionario de datos)
✓ DaD18k Services (Servicios web para la gestión de diccionario de datos)
✓ Herramienta CASE. Base de datos central de una herramienta CASE. El repositorio
amplio el concepto de diccionario de datos para incluir toda la información que se va
generando a lo largo del ciclo de vida del sistema, como, por ejemplo: componentes de
análisis y diseño (diagramas de flujo de datos, diagramas entidad-relación, esquemas de
bases de datos, diseños de pantallas), estructuras de programas, algoritmos, etc. En
algunas referencias se le denomina Diccionario de Recursos de Información.
✓ DDBuilder. Es una herramienta que, de una manera rápida y fácil, le permite definir y
modificar diccionarios de datos de BASIS, para ser usados con PRO/5, Visual PRO/5,
BBxPROGRESSION/4, y TAOS (El Workbench del Diseñador), así como también
definir Vistas SQL para ser usadas con el ODBC driver de BASIS.
Fuente: [Link]
51 Administración de Base de Datos con MySQL
Fuente: [Link]
3.5. Trabajo de Demostración de Diccionario de Datos en el Gestor
1. Crear una base de datos con al menos 5 tablas relacionadas, 3 vistas, 3 procedimientos
almacenados y 2 disparadores en el Gestor MySQL
Creación de la Base de Datos
Creación de Disparadores
Figura 55. Consulta que muestra todas las tablas de la base de datos.
Figura 56. Consulta que muestra todas las vistas en la base de datos
✓ Consulta SQL que muestre una lista de los campos de una de las tablas creadas con sus
respectivos tipos de datos y tamaños.
Figura 61. Consulta para mostrar Tipo de Datos, Tamaño de una tabla
✓ Consulta SQL que muestre las Definiciones SQL de Vistas, Procedimientos Almacenados,
Disparadores.
60 Administración de Base de Datos con MySQL
Definiciones de Vistas
Referencias Bibliográficas
[Link] (2019), Definición de metadatos, recuperado (28 ago. 2019),
[Link]
Conarq (2007), Definición de metadatos, recuperado (28 ago. 2019);
[Link]
atos_2007.pdf
Diana Gabriela Higuera Robles (2019), Definición de diccionario de datos, recuperado (28 ago.
2019)
[Link]
Ana Isabel Gómez Carrero (2015), Aplicaciones y herramientas que hacen uso del diccionario
de datos, recuperado (28 ago. 2019),
[Link]
B3mez_Carretero.pdf?sequence=1
[Link] (2019), Concepto de estándares, recuperado (29 ago. 2019),
[Link]
[Link]
[Link] (2019), Conceptos de estandarización, recuperado (29 ago. 2019)
[Link]
[Link]
62 Administración de Base de Datos con MySQL
CAPITULO IV
Integridad en Base de Datos
63 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO IV ................................................................................................................................ 62
INTEGRIDAD EN BASE DE DATOS........................................................................................ 644
4.1. Definición de Integridad .................................................................................................... 644
4.2. Definición de Integración de Datos ................................................................................... 644
4.3. Categorías de Integridad de Datos.................................................................................... 644
4.2.1. Integridad de Entidad ................................................................................................. 644
4.2.2. Integridad de Dominio ................................................................................................ 644
4.2.3. Integridad Referencial ................................................................................................ 655
4.2.4. Integridad Definida por el Usuario ............................................................................ 655
4.4. Trabajo Demostración de la Integridad de Datos en el Gestor ...................................... 666
Referencias Bibliográficas ............................................................................................................ 699
64 Administración de Base de Datos con MySQL
✓ La segunda condición sirve para establecer que los operadores que pueden aplicarse
sobre los valores dependen de los dominios de estos valores; es decir, un operador
determinado sólo se puede aplicar sobre valores que tengan dominios que le sean
adecuados.
4.2.3. Integridad Referencial
Según [Link] (2013), La integridad referencial protege las relaciones definidas
entre las tablas cuando se crean o se eliminan filas. En SQL Server la integridad referencial
se basa en las relaciones entre claves externas y claves principales o entre claves externas y
claves exclusivas, mediante restricciones FOREIGN KEY y CHECK. La integridad
referencial garantiza que los valores de clave sean coherentes en las distintas tablas. Para
conseguir esa coherencia, es preciso que no haya referencias a valores inexistentes y que, si
cambia el valor de una clave, todas las referencias a ella se cambien en consecuencia en toda
la base de datos.
Cuando se exige la integridad referencial, SQL Server impide a los usuarios:
✓ Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila asociada en
la tabla principal.
✓ Cambiar valores en una tabla principal que crea filas huérfanas en una tabla
relacionada.
✓ Eliminar filas de una tabla principal cuando hay filas relacionadas coincidentes.
Regla de integridad referencial
La regla de integridad referencial está relacionada con el concepto de clave foránea.
Concretamente, determina que todos los valores que toma una clave foránea deben ser valores
nulos o valores que existen en la clave primaria que referencia.
4.2.4. Integridad Definida por el Usuario
La integridad definida por el usuario permite definir reglas de empresa específicas que
no pertenecen a ninguna otra categoría de integridad. Todas las categorías de integridad
admiten la integridad definida por el usuario. Esto incluye todas las restricciones de nivel de
columna y nivel de tabla en CREATE TABLE, procedimientos almacenados y
desencadenadores.
66 Administración de Base de Datos con MySQL
Integridad de Entidad
1. Para aplicar la integridad de entidad utilizaremos la base de datos pizzaramos, la cual
insertaremos un nuevo usuario, pero con la columna idusuario repetida y nos mostrara el
siguiente mensaje:
Integridad de Dominio
1. Para aplicar la integridad de dominio, insertamos un nuevo usuario con idusuario
diferente al tipo de dato especificado al momento de crear la tabla. Nos mostrar el siguiente
mensaje:
Integridad Referencial
1. Para aplicar la integridad referencial, insertamos un nuevo usuario con idempleado
referenciado en la tabla empleados con un empleado que no existe. Nos mostrara el siguiente
mensaje:
Figura 68. Restricción del tamaño de dato del campo dni definida por el usuario.
Referencias Bibliográficas
PowerData (2019), Definición de Integridad, recuperado (10 set 2019),
[Link]
BlogPost (2013), Integridad de Entidad, Referencial y Definida por él usuario, recuperado (10
set 2019),
[Link]
[Link]
CAPITULO V
Seguridad en Base de Datos
71 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO V .................................................................................................................................. 70
SEGURIDAD EN BASE DE DATOS............................................................................................ 72
5.1. Definición de Seguridad ....................................................................................................... 72
5.1.1. Confidencialidad en Base de Datos .............................................................................. 72
5.2. Seguridad del Gestor............................................................................................................ 72
5.2.1. Inicios de Sesión............................................................................................................. 72
5.2.2. Usuarios .......................................................................................................................... 73
5.2.4. Roles ............................................................................................................................... 73
5.2.5. Funciones en el Servidor ............................................................................................... 73
5.2.6. Privilegios ....................................................................................................................... 73
5.3. Autenticación o Autentificación .......................................................................................... 74
5.3.1. Políticas de Contraseñas ............................................................................................... 74
5.4. Trabajo de Demostración de la Seguridad en el Gestor ................................................... 75
Referencias Bibliográficas .............................................................................................................. 81
72 Administración de Base de Datos con MySQL
se usa para la conexión a MySQL Workbench se le conoce como inicio de sesión de MySQL
Server.
5.2.2. Usuarios
Según [Link] (2019), Hay 2 tipos de usuarios:
✓ Usuario con derecho a crear, borrar y modificar objetos y que además puede conceder
privilegios a otros usuarios sobre los objetos que ha creado.
✓ Usuario con derecho a consultar, o actualizar, y sin derecho a crear o borrar objetos.
Privilegios sobre los objetos, añadir nuevos campos, indexar, alterar la estructura de
los objetos, etc.
5.2.4. Roles
Según [Link] (2019), con MySQL, un usuario puede seleccionar roles para los
usuarios de bases de datos, así como añadir o eliminar privilegios de forma independiente.
Asimismo, MySQL ofrece soporte para el rol Personalizado, que corresponde a un grupo
de privilegios definidos por los usuarios. Los usuarios de SQL Server no pueden modificar
los conjuntos de permisos incluidos en los roles.
5.2.5. Funciones en el Servidor
Según [Link] (2019). Un servidor de base de datos, también conocido como
database server o RDBMS (Relational DataBase Management Systems) en caso de bases de
datos relacionales, es un tipo de software de servidor que permiten la organización de la
información mediante el uso de tablas, índices y registros.
A nivel de hardware, un servidor de base de datos es un equipo informático especializado en
servir consultas a clientes remotos o locales que solicitan información o realizan
modificaciones a los registros y tablas que existen dentro de las bases de datos del sistema
(en muchos casos desde un servidor web o de aplicaciones). Si vamos a la función
fundamental de un servidor de base de datos, encontraremos que es el servicio que provee de
información a otras aplicaciones web o equipos/hosts, tal como se especifica en el modelo
cliente servidor.
Mediante el uso de un cliente de base de datos, se puede acceder a la información que se
guarda en las diferentes bases de datos. Una vez el cliente ha accedido mediante un usuario,
contraseña y nombre de host, se le permiten realizar diferentes tareas, dependiendo del nivel
de privilegios que posea. Algunos usuarios tienen privilegios de administrador y pueden
administrar por completo las bases de datos a las que se conectan, mientas que otros usuarios
tienen privilegios parciales para solo leer datos (hacer consultas de lectura, también llamado
(SELECT).
Los motores de bases de datos modernos permiten simultaneidad de consultas, lo que
significa que un usuario puede escribir en determinada tabla, mientras que otro hace lectura
de datos, o también escribe al mismo tiempo, todos desde diferentes lugares geográficos
incluso una vez que el cliente de base de datos termina la consulta, la conexión con el server
finaliza.
5.2.6. Privilegios
Según [Link] (2019), el servidor de base de datos permite que más de un usuario
pueda trabajar con los recursos del servidor (registros, tablas, bases de datos, funciones, etc.).
Hasta este punto del curso, todos los ejercicios los hemos realizado utilizando el usuario root.
74 Administración de Base de Datos con MySQL
Si nosotros somos los únicos administradores del servidor (algo que muy pocas veces sucede)
no deberíamos tener problemas en seguir utilizando root, sin embargo, si más personas
trabajarán con el servidor, será necesario que generemos nuevos usuarios y asignemos los
permisos pertinentes.
Los privilegios que se otorgan a los usuarios son los siguientes: (Seleccionar, Insertar,
Actualizar, Eliminar, Crear, Drop, Alter, Index, Create temporary tables, Lock tables, Create
views, Show Views).
5.3. Autenticación o Autentificación
En un SGBD existen diversos elementos que ayudan a controlar el acceso a los datos.
En primer lugar, el sistema debe identificar y autentificar a los usuarios utilizando alguno de las
siguientes formas:
✓ Código y contraseña
✓ Identificación por hardware
✓ Conocimiento, aptitudes y hábitos del usuario
✓ Información predefinida (Aficiones, cultura)
Además, el administrador deberá especificar los privilegios que un usuario tiene sobre los objetos:
✓ Usar una base de datos
✓ Consultar ciertos datos
✓ Actualizar datos
✓ Crear o actualizar objetos
✓ Referencias objetos
✓ Indexar objetos
✓ Crear identificadores
5.3.1. Políticas de Contraseñas
El validate_password complemento sirve para mejorar la seguridad al requerir contraseñas
de cuenta y permitir pruebas de resistencia de contraseñas potenciales. Este complemento
expone un conjunto de variables del sistema que le permiten configurar la política de
contraseña.
✓ Se necesita el rol Admin (Administrador) (a) para configurar las propiedades de la
política de contraseñas.
✓ Toda contraseña correspondiente a cuentas de usuario final es personal e
intransferible, por lo tanto, no debe compartirse por ningún motivo.
✓ La política de contraseñas se aplica solo a las cuentas de usuario local. No afecta a
las cuentas del servicio de autenticación de usuario remoto como LDAP o Active
Directory.
Una vez guardados los cambios de las propiedades de política de contraseñas, sucede lo
siguiente:
✓ Se suprimen todas las configuraciones de cuenta de usuario local
✓ Se restaura la cuenta de usuario local por defecto (root) que se incluye en el sistema
de fábrica.
✓ En el primer inicio de sesión de root, se solicita que el usuario root cambie la
contraseña de la cuenta root.
75 Administración de Base de Datos con MySQL
Luego de conectarse con el usuario2 tendremos acceso solo la tabla clientes de la base de datos
ejemplodba, como se muestra en la siguiente imagen:
Usando INSERT y DELETE respectivamente, nos mostrara resultado que las acciones no están
privilegiadas en este usuario:
Referencias Bibliográficas
[Link] (2019), Definición de seguridad, recuperado (13 sep. 2019),
[Link]
[Link] (2019), Confidencialidad de datos, recuperado (13 sep. 2019),
[Link]
[Link]
[Link] (2019), Usuarios en base datos, recuperado (14 sep. 2019),
[Link]
[Link] (2019), Roles de los usuarios en base de datos, recuperado (14 sep. 2019),
[Link]
[Link] (2019), Funciones en el servidor de base de datos, recuperado (14 sep.
2019),
[Link]
82 Administración de Base de Datos con MySQL
CAPITULO VI
Migración de Datos
83 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO VI ................................................................................................................................ 82
MIGRACIÓN DE DATOS ............................................................................................................. 84
6.1. Definición de Migración de Datos, Propósito de una migración ...................................... 84
6.2. Fuentes u Orígenes de Datos ............................................................................................... 85
6.3. Etapas Básicas de una Migración de Datos........................................................................ 86
6.4. Proveedores de Acceso a Datos (ADO, OLEDB, ODBC y JDBC) ................................... 86
6.4.1. ADO ................................................................................................................................ 86
6.4.2. OLEDB ........................................................................................................................... 87
6.4.3. ODBC ............................................................................................................................. 88
6.4.4. JDBC .............................................................................................................................. 89
6.5. Herramientas de Migración de Datos................................................................................. 89
6.5.1. Migración de almacenamiento ..................................................................................... 89
6.5.2. Migración de la base de datos ...................................................................................... 90
6.5.3. Migración de aplicaciones............................................................................................. 90
6.5.4. Codificación de caracteres ............................................................................................ 90
6.6. Demostración de Migración de Datos en el Gestor hacia Otros Gestores ....................... 91
Referencias Bibliográficas .............................................................................................................. 96
84 Administración de Base de Datos con MySQL
MIGRACIÓN DE DATOS
6.1. Definición de Migración de Datos, Propósito de una migración
Según [Link] (2019). La información es un activo esencial para cualquier
organización y el potencial de su valor reside en los datos que, en ocasiones, deben migrar para
mejorar el desempeño de una base de datos, actualizar versiones, reducir costes o aplicar políticas
de seguridad. Pero, ¿qué es la migración de datos? Este proceso consiste en la transferencia de
datos de un sistema a otro y suele tener lugar en momentos de transición provocados por la llegada
de una nueva aplicación, un cambio en el modo o medio de almacenamiento o las necesidades
que impone el mantenimiento de la base de datos corporativa.
Generalmente, una migración de datos se produce durante una actualización de hardware o
la transferencia de un sistema existente a otro completamente nuevo. Algunos ejemplos son:
✓ Actualización de una base de datos.
✓ Migración hacia o desde la plataforma de hardware.
✓ Migración a un nuevo software.
Fusión de dos sistemas paralelos en uno solo que se requiere cuando una empresa absorbe a
otra o cuando dos negocios se fusionan.
En ningún caso se debe confundir el término migración de datos con otros que, aunque
similares, muestra diferencias esenciales en cuanto al número de fuentes de origen y destino de
datos o a su diversidad. Consolidación, integración o actualización de datos son procesos
diferentes con propósitos distintos.
La migración de datos se ve muy bien representada por las siglas ETL, que corresponden a
los términos: extracción, transformación y carga. Pese a que se puede aplicar un proceso ETL con
otros objetivos, al plantearse qué es la migración de datos es inevitable aludir a su tarea principal:
extracción y carga (ya que la transformación no tiene por qué aplicarse en todos los casos, sólo
si fuese necesario).
Hay tres opciones principales para llevar a cabo la migración de datos:
✓ Combinar los sistemas de las dos empresas o fuentes en uno nuevo.
✓ Migrar uno de los sistemas al otro.
✓ Mantener la integridad de ambos sistemas, dejándolos intactos, pero creando una visión
común a ambos: un almacén de datos.
Según [Link] (2019). La herramienta más indicada para llevar a cabo una
migración de datos es una de extracción transformación y carga, frente a opciones menos
productivas, como la codificación manual; a otras inaplicables, como la integración de
aplicaciones (EAI) o a otras que no aportan todo lo necesario para realizar el proceso con plenas
garantías, como es el caso de las de replicación.
Para llevar a cabo una migración de datos es necesario recorrer los siguientes pasos:
1. Planificación: Desde la definición de la estrategia y el alcance del proyecto hasta el análisis
de viabilidad.
2. Analítica: Considerando variables como la integridad, exactitud o consistencia de los datos
a migrar y teniendo en cuenta las características de las bases de datos de origen y destino.
3. Selección de aplicación: Puede desarrollarse de forma interna o adquirirse tras evaluar las
distintas alternativas.
85 Administración de Base de Datos con MySQL
4. Testing: Aplicación de los ciclos de pruebas a las aplicaciones que emplearán la base de
datos.
5. Migración: Comprende las etapas de extracción, transformación y carga.
6. Evaluación: Se trata de medir los resultados y analizarlos, determinando los ajustes
necesarios.
6.2. Fuentes u Orígenes de Datos
Según [Link] (2019). En realidad, el volumen de datos que pueden llegar a
manejar las organizaciones es cada día más ingente y para sacar beneficio a ese caudal de
información, que ayuda a tomar las mejores decisiones o conocer más al cliente, lo primero que
conviene comprender es cuáles son las categorías de datos a los que se enfrenta y las fuentes de
origen de los mismos, lo que le ayudará a dirigirse a lo que verdaderamente necesita.
Se trata de identificar primero para capturar, evaluar y analizar sólo aquellos activos que
propicien información relevante a su objetivo, ya que sin él la información que maneje
probablemente no le lleven a ningún lado.
La primera división que nos encontramos en las compañías en función de la categoría de
datos existentes son los datos no estructurados, estos conforman nada menos que el 80 por ciento
de la información que manejamos en el entorno empresarial. Estos son: archivos de audio, vídeo,
fotografías, formatos de texto, SMS, artículos, correos electrónicos. Conviene saber que este tipo
de datos no tiene campos fijos y normalmente se tiene poco control sobre ellos. Su manipulación
requiere herramientas como Hadoop (la más popular), bases de datos NoSQL, entre otras.
De otro lado, están los llamados datos estructurados, son lo que se encuentran en un formato
definido y bien especificado, son los datos tradicionales de las bases de datos relacionales, hojas
de cálculo, archivos y cuentan con un orden claro. Ejemplo: fecha de nacimiento, DNI, el número
de la cuenta corriente de un banco.
Luego están los datos semiestructurados que, si bien no tienen formatos fijos, sí contienen
etiquetas u otros marcadores que permiten su comprensión. Ejemplo: las etiquetas XML y
HTML.
Es importante saber si quiere sacar beneficios del Big Data, que la procedencia de estos datos
viene de un total de cinco fuentes, lo que le ayudará a su estrategia de identificación para lograr
una buena analítica de Big Data y con la que podrá descubrir realmente aquellos datos que han
cambiado para reaccionar o conseguir mayores oportunidades de negocio, e incluso aumento de
ingresos.
✓ Biométricos. Son los referidos a la identificación automática de una persona basada en
sus características anatómicas o trazos personales, como la firma biométrica. Hablamos
tanto de reconocimiento facial pero también genético (ADN).
✓ Máquina a máquina. Se refiere a Internet de las Cosas, son aquellas tecnologías que
permiten la conexión de diferentes dispositivos entre sí. Un ejemplo son los GPS, pero
también los denominados chips NFC (aquella tecnología que se sustenta en la
comunicación inalámbrica y que permite la transmisión de datos de forma segura:
integrada fundamentalmente en smarphone y tablets). Todo un mundo de posibilidades
que puede hallarse también en parquímetros, cajeros, máquinas expendedoras…
✓ Datos de transacciones. Los datos que se registran en los departamentos de facturación
forman parte de las operaciones normales que se producen en las transacciones
habituales. También están los centros de llamada, mensajería, reclamaciones,
86 Administración de Base de Datos con MySQL
presentación y registro de documentos y los que se generan con los pagos por tarjeta,
pago online.
✓ Generados por los humanos. Todas aquellas grabaciones a operadores de atención al
cliente: Call Center, también los e-mails o los registros médicos electrónicos.
✓ Web y medios sociales. Son los que se originan en la red y configuran, según los
expertos, el trozo más grande del pastel llamado Big Data y es una de las fuentes de datos
más utilizadas en la actualidad. Hablamos de la información que se genera sobre clics en
vínculos y elementos. Pero también de toda aquella contenida en las búsquedas que
realizamos por ejemplo en Google, las publicaciones en las Redes sociales (Twitter,
Facebook, LinkedIn) y el contenido web como páginas, enlaces o imágenes.
Una vez hayamos identificado cuáles son las fuentes de datos necesarias para nuestra estrategia,
aplicaremos las técnicas de analítica para operar sobre ellos y sacar así, valor a la información.
6.3. Etapas Básicas de una Migración de Datos
Según [Link] (2019). En líneas generales, al hablar de etapas de la migración de datos
se pueden concretar cuatro:
1. Extraer los datos relevantes y depositarlos en un área intermedia donde la estructura sea
similar a la estructura de origen.
2. Realizar el proceso de calidad de datos, que puede contener varias iteraciones, hasta
lograr garantizar que el dato está limpio y es confiable. Para ello se procederá a la eliminación
de inconsistencias y errores; y se continuará con la homogeneización de los datos y su
enriquecimiento.
3. Una vez que la calidad de los datos está asegurada, se procede a la fase de transformación,
en la que se aplican una serie de reglas del negocio o funciones sobre los datos extraídos para
convertirlos en los datos que serán cargados.
4. Por último, la última etapa se ocupa en llevar a cabo la carga de los datos, ya convertidos
y validados.
6.4. Proveedores de Acceso a Datos (ADO, OLEDB, ODBC y JDBC)
Según [Link] (2008), aclara todos los puntos a tratar:
6.4.1. ADO
ADO es un contenedor COM de OLE DB que facilita la programación de aplicaciones
de acceso a datos (consumidores). OLE DB es una tecnología de acceso a datos universal
basada en COM, que permite utilizar cualquier origen de datos, no sólo los indizados, los de
método de acceso secuencial (ISAM) o las bases de datos basadas en SQL.
Los proveedores OLE DB permiten tener acceso a datos desde varios orígenes de datos
diferentes y no están limitados a utilizar consultas SQL para obtener datos, sino que pueden
utilizar consultas definidas en el proveedor.
ADO es el sucesor de DAO y RDO. La funcionalidad de ADO 2.0 es prácticamente
idéntica a la de RDO y en general existe una correspondencia de funciones similares en ambos
modelos. ADO permite “allanar” el modelo de objetos empleado por DAO y RDO, en el
sentido de que contiene menos objetos y más propiedades, métodos (y argumentos) y eventos.
Por ejemplo, en ADO no existe un equivalente de los objetos rdoEngine y rdoEnvironment
expuestos por el administrador de controladores ODBC y las interfaces hEnv. Tampoco es
posible crear orígenes de datos ODBC desde ADO, a pesar de que puede exponer su propia
interfaz a través del proveedor de servicios OLE DB de ODBC.
87 Administración de Base de Datos con MySQL
Muchas de las características incluidas en los modelos DAO y RDO fueron refundidas
en objetos únicos para simplificar en gran medida el modelo de objetos. No obstante, debido
a esto es posible que inicialmente encuentre dificultades cuando intente localizar un objeto,
colección, propiedad, método o evento de ADO apropiado a sus necesidades. A diferencia de
DAO y RDO, aunque los objetos ADO son jerárquicos, se pueden crear también fuera del
alcance de la jerarquía.
Sin embargo, conviene tener en cuenta que ADO no admite actualmente toda la
funcionalidad de DAO. ADO incluye principalmente funcionalidad para interactuar con los
orígenes de datos OLE DB en una forma similar a RDO, así como operaciones remotas y
tecnología DHTML. En general, dado el estado de la evolución de ADO, probablemente sea
prematuro migrar directamente a ADO la mayoría de las aplicaciones DAO (excepto
posiblemente las que utilizan ODBCDirect), ya que ADO no admite por el momento
definición de datos (bibliotecas DDL), usuarios, grupos y otras características. Sin embargo,
probablemente podrá migrar desde ahora a ADO si utiliza DAO únicamente para aplicaciones
cliente-servidor y no se basa en el motor de base de datos Jet ni utiliza bibliotecas DDL. Con
el tiempo, Microsoft proporcionará un componente DDL de ADO para facilitar la migración
de DAO a ADO y compatibilidad genérica con DDL para los proveedores de OLE DB.
6.4.2. OLEDB
Es una interfaz de programación de aplicaciones (API) basada en COM para el acceso a
datos. OLE DB admite el acceso a datos almacenados en cualquier formato (bases de datos,
hojas de cálculo, archivos de texto, etc.) para el que haya un proveedor OLE DB disponible.
Cada proveedor OLE DB expone datos en un tipo particular de origen de datos (como bases
de datos de SQL Server, bases de datos de Microsoft Access u hojas de cálculo de Microsoft
Excel). Estructura OLE DB permite separar los datos de la aplicación que los requiere. Esto
se hizo así ya que diferentes aplicaciones requieren acceso a diferentes tipos y almacenes de
datos, y no necesariamente desean conocer cómo tener acceso a cierta funcionalidad con
métodos de tecnologías específicas. OLE DB está conceptualmente dividido en consumidores
y proveedores; el consumidor es la aplicación que requiere acceso a los datos y el proveedor
es el componente de software que expone una interfaz OLE DB a través del uso del
Component Object Model (COM).
Familia tecnológica OLEDB
OLE DB hace parte de los “Componentes de Microsoft para Acceso a Datos” o Microsoft
Data Access Components (MDAC); MDAC es un grupo de tecnologías de Microsoft que
interactúan en conjunto como una infraestructura que brinda a los programadores una forma
para desarrollar aplicaciones con acceso a casi cualquier almacén de datos. Los proveedorees
OLE DB pueden ser creados para tener acceso a almacenes de datos que van desde simples
archivos de texto y hojas de cálculo, hasta bases de datos complejas como Oracle, Microsoft
SQL Server o Sybase ASE.
Como las diferentes fuentes de datos pueden tener diferentes capacidades, es posible que
los proveedores OLE DB no implementen todas las interfaces posibles para OLE DB. Las
capacidades disponibles son implementadas a través del uso de objetos COM – el proveedor
OLE DB asocia la funcionalidad de una tecnología a una interfaz COM particular.
Microsoft califica la disponibilidad de una interfaz como “específica del proveedor”, ya
que puede no ser aplicable dependiendo de la tecnología de base de datos involucrada.
Adicionalmente, los proveedores pueden aumentar las capacidades de una fuente de datos –
capacidades conocidas como servicios, usando la jerga de Microsoft.
88 Administración de Base de Datos con MySQL
Conexiones OLE DB
Puede utilizar un proveedor OLE DB para comunicar con la base de datos. La creación
de una conexión directa de base de datos OLE puede mejorar la velocidad de la conexión
mediante la eliminación de la capa ODBC entre la aplicación Web y la base de datos
Si no especifica un proveedor OLE DB para la base de datos, ASP utilizará el proveedor
OLE DB predeterminado para controladores ODBC para comunicar con un controlador
ODBC que, a su vez, comunica con la base de datos.
OLE DB está disponible sólo con Windows NT, 2000 o XP.
Existen distintos proveedores OLE DB para las distintas bases de datos. Puede obtener
proveedores OLE DB para Microsoft Access y SQL Server descargando e instalando los
paquetes Microsoft Data Access Components (MDAC) 2.5 y 2.7 en el equipo Windows que
está ejecutando IIS.
6.4.3. ODBC
ODBC es una abreviatura para la Conectividad abierta de base de datos, y es una interfaz
para acceder a bases de datos a través de consultas SQL. El ODBC se puede utilizar como
una herramienta de acceso a diferentes bases de datos tales como MS-Access, dBase, DB2,
Excel y Texto. A través de estos Nivel Call Interface (CLI) de las especificaciones de SQL
Access Group, el OBDC permite una forma neutral de acceso a los datos almacenados en las
computadoras personales y diversas bases de datos. Fue creado por Microsoft y Simba
Technologies. ODBC 1.0 fue liberado en septiembre de 1992, y eventualmente se convirtió
en una parte del SQL estándar internacional en 1995. Microsoft originalmente enviado el
ODBCs como un conjunto de DLLs y todavía hoy, el conjunto de buques con cada copia de
Microsoft Windows. Hoy en día, más y más los sistemas operativos tales como UNIX y Apple
están adoptando los ODBC.
La fuerza de ODBC es que, al ofrecer un acceso universal de datos de interfaz, que
permite a las empresas de software independientes y los partidos para no tener que aprender
múltiples interfaces de programación de aplicaciones. Para simplemente, con ODBC, las
aplicaciones pueden acceder simultáneamente, ver y modificar la base de datos de numerosas
y muy diversas bases de datos. Esto se debe a que el ODBC “volver a los códigos de” la
consultas SQL a fin de que pueda ser leído por las diferentes bases de datos.
Sin embargo, el ODBC también tiene sus inconvenientes. Como la gestión de un gran
número de clientes ODBC puede significar una inmensa cantidad de conductores y DLLs
ejecutándose, esto podría dar lugar a un sistema de administración generales. Sin embargo,
esta cuestión menor condujo a los usos adicionales de la tecnología de servidores ODBC (o
el “Multi-Tier ODBC Drivers”) para aliviar la carga. Además, como los conductores son un
elemento clave en ODBCs, algunos han planteado la cuestión de los nuevos conductores de
‘estabilidad, como a menudo muchos de ellos han demostrado tener errores en ellas.
¿Cómo se procesa ODBC?
Para usar el ODBC, tres componentes son necesarios: cliente ODBC, el controlador
ODBC, DBMS y un servidor (por ejemplo, Microsoft Access, SQL Server, Oracle, y FoxPro).
En primer lugar, el cliente ODBC utilizará un comando (denominado “ODBC”) para
interactuar (solicitante y / o envío de datos) con el servidor DBMS (back-end). Sin embargo,
el DBMS servidor no entender el comando de la ODBC cliente aún, como el comando todavía
no se ha procesado a través del controlador ODBC (front-end). Entonces, el controlador
ODBC se decodificar el comando que puede ser procesado por el servidor ODBC y ser
89 Administración de Base de Datos con MySQL
enviados allí. El servidor ODBC entonces en contacto con el controlador ODBC que se
encargará de traducir el producto final al cliente ODBC.
6.4.4. JDBC
JDBC (Java DataBase Connectivity) es un API de Java que permite al programador
ejecutar instrucciones en lenguaje estándar de acceso a Bases de Datos, SQL (Structured
Query Language, lenguaje estructurado de consultas), que es un lenguaje de muy alto nivel
que permite crear, examinar, manipular y gestionar Bases de Datos relacionales. Para que una
aplicación pueda hacer operaciones en una Base de Datos, ha de tener una conexión con ella,
que se establece a través de un driver, que convierte el lenguaje de alto nivel a sentencias de
Base de Datos. Es decir, las tres acciones principales que realizará JDBC son las de establecer
la conexión a una base de datos, ya sea remota o no; enviar sentencias SQL a esa base de
datos y, en tercer lugar, procesar los resultados obtenidos de la base de datos.
Conectividad JDBC
Para la gente del mundo Windows, JDBC es para Java lo que ODBC es para Windows.
Windows en general no sabe nada acerca de las bases de datos, pero define el estándar ODBC
consistente en un conjunto de primitivas que cualquier driver o fuente ODBC debe ser capaz
de entender y manipular. Los programadores que a su vez deseen escribir programas para
manejar bases de datos genéricas en Windows utilizan las llamadas ODBC.
Con JDBC ocurre exactamente lo mismo: JDBC es una especificación de un conjunto de
clases y métodos de operación que permiten a cualquier programa Java acceder a sistemas de
bases de datos de forma homogénea. Lógicamente, al igual que ODBC, la aplicación de Java
debe tener acceso a un driver JDBC adecuado. Este driver es el que implementa la
funcionalidad de todas las clases de acceso a datos y proporciona la comunicación entre el
API JDBC y la base de datos real.
La necesidad de JDBC, a pesar de la existencia de ODBC, viene dada porque ODBC es
un interfaz escrito en lenguaje C, que, al no ser un lenguaje portable, haría que las
aplicaciones Java también perdiesen la portabilidad. Y, además, ODBC tiene el inconveniente
de que se ha de instalar manualmente en cada máquina; al contrario que los drivers JDBC,
que al estar escritos en Java son automáticamente instalables, portables y seguros.
6.5. Herramientas de Migración de Datos
El éxito en un proyecto de migración de datos dependerá en gran medida del nivel de comprensión
que se llegue a alcanzar acerca del proceso y sus implicaciones. Conocer los retos que implica
una iniciativa de este tipo es el primer paso. Entre los más importantes se encuentran los
siguientes:
6.5.1. Migración de almacenamiento
En un proyecto de este tipo no debería existir problema, siempre y cuando la aplicación
sólo utilice interfaces generales para acceder a los datos. En la mayoría de los sistemas esto
no es ningún inconveniente, aunque, cuando se trate de aplicaciones antiguas que se ejecutan
en sistemas propietarios, sí podría serlo. En ese caso, la iniciativa se complicaría y sería
preciso llevar a cabo las pruebas necesarias antes de liberar la solución en producción.
Principalmente por dos motivos:
✓ El código fuente de la aplicación puede no estar disponible.
✓ Podría darse el caso de que el proveedor de la aplicación no continuase activo en el
mercado.
90 Administración de Base de Datos con MySQL
4. En este paso hacemos clic en “Finish” para empezar el proceso de migración como se
muestra en la siguiente figura:
5. Para garantizar que los datos fueron migrados correctamente, como último paso nos resta
verificar, que los datos de la base de datos de origen sea la misma en nuestro gestor MySQL,
ya sea utilizando cualquier sentencia mostrada a continuación (SELECT, UPDATE,
INSERT, DELETE, ALTER, etc.).
Al ejecutar el script “select count (*) from DetalleVentas;” en el gestor SQL Server, nos
muestra como resultado las cifras de “2879675” datos contados.
Referencias Bibliográficas
[Link] (2019), Definición de una migración de datos, recuperado (25 sep. 2019),
[Link]
datos
[Link]
[Link] (2019), Etapas básicas de una migración de datos, recuperado (25 sep. 2019),
[Link]
migraci-n-de-datos-el-lado-pr-ctico
[Link] (2008), Proveedores de acceso a datos, recuperado (27 sep. 2019),
[Link]
97 Administración de Base de Datos con MySQL
CAPITULO VII
Rendimiento de Base de Datos
98 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO VII ............................................................................................................................... 97
RENDIMIENTO DE BASE DE DATOS ...................................................................................... 99
7.1. Control de Concurrencia ..................................................................................................... 99
7.2. Optimización ......................................................................................................................... 99
7.2.1. Consultas ...................................................................................................................... 100
7.2.2. Heurística ..................................................................................................................... 100
7.2.3. Creación de Índices ..................................................................................................... 101
7.2.4. Plan de Ejecución de Consultas ................................................................................. 101
7.3. Estimación de Costos de Procesamiento de Consultas.................................................... 101
7.4. Balanceo de Carga.............................................................................................................. 102
7.5. Demostración del Rendimiento en el Gestor .................................................................... 102
Referencias Bibliográficas ............................................................................................................ 103
99 Administración de Base de Datos con MySQL
Lo que pasa en estos casos es que los requisitos del cliente cambian, ya sea durante el
desarrollo o el mantenimiento, por lo que el esquema de la base de datos tiene que modificarse,
dejando de ser el SGBD NoSQL una alternativa que se pueda ajustar al modelo de negocio, siendo
al final el programador el que termina implementado en el código lo que hace el SGBD relacional,
pero con código mucho más lento del que tendríamos con uno de estos SGBD.
7.2.1. Consultas
Según el Dr. Víctor J. Sosa (2019), la optimización de consultas es el proceso de
selección del plan de evaluación de las consultas más eficiente entre las estrategias
disponibles para el procesamiento de una consulta dada.
✓ A través del álgebra relacional intenta hallar una expresión equivalente a la expresión
dada.
✓ Elección de una estrategia detallada para el procesamiento de la consulta:
• Selección del algoritmo que se usará para ejecutar una operación
• Selección de los índices concretos que se van a emplear
La diferencia en costo (en términos de tiempo de evaluación) entre una estrategia buena
y una mala suele ser sustancial, por tanto, vale la pena la selección de una buena estrategia
para el procesamiento de la consulta.
Etapas en la generación de planes de evaluación de consultas:
1. Generación de expresiones lógicas equivalentes a la expresión dada.
2. Anotación de las expresiones resultantes en maneras alternativas de generar planes de
evaluación de consultas alternativos.
Estas etapas están entrelazadas en el optimizador de consultas y se ejecutan en ese orden
consecutivamente.
7.2.2. Heurística
Según [Link] (2019). Basada en equivalencia de las expresiones del álgebra y ciertas
estrategias básicas para limitar el tamaño de los resultados. Además, implica la aplicación de
determinadas estrategias (heurísticas) y consultas al catálogo para tamaños de las relaciones
para transformar el árbol original.
✓ Cambiar la consulta original por otra equivalente de forma de minimizar los
resultados intermedios.
✓ Pueden existir varias alternativas.
✓ Se basa en aplicar equivalencias de los operadores del álgebra de forma que:
Las selecciones y las proyecciones se apliquen lo antes posible.
• Las operaciones de selección y JOIN que son más restrictivas se apliquen antes
que las demás.
• Reglas para reducir los tamaños intermedios:
- Cambiar las selecciones conjuntivas por una “cascada” de selecciones
simples.
- Mover las selecciones lo más abajo que se pueda en el árbol.
✓ Reacomodar las hojas del árbol de modo que las selecciones más restrictivas son
ejecutadas antes, evitando productos cartesianos.
✓ Cambiar secuencias de selecciones y productos por JOIN.
✓ Mover las proyecciones lo más abajo posible en el árbol, agregando las proyecciones
que sean necesarias.
101 Administración de Base de Datos con MySQL
Referencias Bibliográficas
[Link] (2019), Optimización de consultas, recuperado (15 de oct. 2019),
[Link]
[Link] (2019), Optimización, recuperado (15 de oct.2019),
[Link]
[Link] (2019), Optimización heurística, recuperado (15 de oct 2019),
[Link]
[Link] (2019), Optimización de consultas, recuperado (18 de oct 2019),
[Link]
[Link] (2015), Plan de ejecución de consultas, recuperado (18 de oct 2019),
[Link]
planes/
[Link] (2018), Balanceo de carga, recuperado (19 de oct 2019),
[Link]
104 Administración de Base de Datos con MySQL
CAPITULO VIII
Encriptación o Cifrado de Datos
105 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO VIII ........................................................................................................................... 104
ENCRIPTACION O CIFRADO DE DATOS............................................................................. 106
8.1. Demostración de Encriptación en el Gestor..................................................................... 106
8.1.1. Password ...................................................................................................................... 106
8.1.2. Encriptación MD5 ....................................................................................................... 106
8.1.3. Encriptación SHA O SHA1 ........................................................................................ 107
8.1.4. Encriptación AES ........................................................................................................ 108
Referencias Bibliográficas ............................................................................................................ 111
106 Administración de Base de Datos con MySQL
Para demostrar que se encripto correctamente damos clic derecho en dato BLOB, del usuario
Edinson
3. Para poder desencriptar ejecutaremos sentencias SQL como por ejemplo SELECT.
Referencias Bibliográficas
[Link] (2019), Encriptación de datos, recuperado (5 nov 2019),
[Link]
[Link] (2019), Solución al problema AES_DECRYPT, recuperado (5 nov 2019),
[Link]
112 Administración de Base de Datos con MySQL
CAPITULO IX
Disponibilidad en Base de Datos
113 Administración de Base de Datos con MySQL
ÍNDICE
CAPITULO IX .............................................................................................................................. 112
DISPONIBILIDAD EN BASE DE DATOS ................................................................................ 114
9.1. Definición e Importancia de una Disponibilidad ............................................................. 114
9.2. Copia de Seguridad (Backups) de una Base de Datos ..................................................... 114
9.3. Técnicas de Recuperación de Datos para la Restauración de una base de datos corrupta
a un estado previo libre de daños............................................................................................. 115
9.4. Alta Disponibilidad, Estrategias (Clustering, Replicación, Otros) ................................ 115
9.5. Demostración de las Herramientas de Disponibilidad en el Gestor. ............................. 117
Referencias Bibliográficas ............................................................................................................ 126
114 Administración de Base de Datos con MySQL
9.3. Técnicas de Recuperación de Datos para la Restauración de una base de datos corrupta a
un estado previo libre de daños.
Según Apañ[Link] (2019). A veces, los datos pueden ser recuperados utilizando métodos y
herramientas relativamente simples
La recuperación de datos desde el hardware dañado físicamente puede implicar múltiples
técnicas. Algunos daños puedes ser reparados mediante la sustitución de las piezas en el disco
duro. Esto por sí solo puede hacer el disco utilizable, pero aún se puede presentar daño lógico. Se
utiliza para recuperar todos los bits de lectura de la superficie un procedimiento especializado de
imágenes de disco. Una vez que esta imagen se adquiere y se guarda en un soporte fiable, la
imagen puede ser analizada de forma segura para buscar daños lógicos y posiblemente permitir
que sea reconstruido la mayor parte del sistema de archivos original.
Recuperación de hardware
Un error común es que una placa de circuito impreso (PCB) dañada puede ser simplemente
reemplazada durante los procedimientos de recuperación por una PCB idéntica de una unidad en
buena salud. Aunque esto puede funcionar en raras circunstancias en unidades de discos duros
fabricados antes de 2003, no va a funcionar en unidades más nuevas. Las tarjetas electrónicas de
las unidades modernas suelen contener datos de adaptación específicos de la unidad, necesarios
para acceder a las áreas del sistema, por lo que los componentes relacionados deben ser
reprogramados (si es posible) o sin soldar transferidos entre dos placas electrónicas.
Daño lógico
El término "daño lógico" se refiere a situaciones en las que el error no es un problema en el
hardware y requiere soluciones a nivel de software.
En algunos casos, los datos de una unidad de disco duro pueden ser ilegibles debido a daños
a la tabla de particiones o al sistema de archivos o a errores de medios (intermitentes). En la
mayoría de estos casos, se pueden recuperar al menos una parte de los datos originales reparando
la tabla de particiones dañada o el sistema de archivos utilizando software especializado de
recuperación de datos como Testdisk.
El software como el rescate del disco duro puede ver la imagen del medio a pesar de errores
intermitentes, y los datos de imagen en bruto cuando hay tabla de particiones o daños en el sistema
de archivos. Este tipo de recuperación de datos puede ser realizada por personas sin experiencia
en unidades de hardware, ya que no requiere ningún equipo especial o el acceso físico a los platos.
A veces, los datos pueden ser recuperados utilizando métodos y herramientas relativamente
simples. Casos más graves pueden requerir la intervención de expertos, sobre todo si son
irrecuperables partes de los archivos. La talla de datos es la recuperación de partes de archivos
dañados usando el conocimiento de su estructura.
9.4. Alta Disponibilidad, Estrategias (Clustering, Replicación, Otros)
Según [Link] (2019), el gestor MySQL utiliza InnoDB Cluster como herramienta
para proporcionar la Alta Disponibilidad que le exigen sus usuarios. Además de desplegar y
replicar los datos entre nodos y mientras sostiene una alta tolerancia frente a posibles fallos. La
aplicación no requiere conocer nada acerca de los nodos: ni cuántos ni dónde.
✓ Alta disponibilidad
• Servicios siempre disponibles.
• Tolerancia a fallos.
• Redundancia y sistemas de remplazo.
116 Administración de Base de Datos con MySQL
✓ Replicación
• Replicar datos de un servidor MySQL (maestro) a otro (maestro/esclavo).
• Herramienta asincrónica
• Escalar soluciones
• Backup a nivel de esclavos
• Distribución de datos
✓ DRBD
• Raid 1 a nivel de red
• Nodo primario/secundario
✓ Heartbeat
• Migración de servicio más IP de nodo a otro
• Comunicación entre dos nodos
✓ Ruteando las consultas
• Maestro: Insert, Update y Select
• Esclavo: Select
• Enlazados con la aplicación
• Transparente: MySQL Proxy
✓ Mejoras esperadas
• Replicación Master – Master en anillo
• Inclucion de un MySQL Heartbeat
• Autorrecuperación del relay log (CRASH)
117 Administración de Base de Datos con MySQL
2. Después de hacer clic en Data Export, nos mostrara una ventana con las opciones para
seleccionar que base de datos queremos restaurar, además la opción de objectos a exportar,
como también la ruta de exportación llevara donde se guardara nuestro backup.
2. Luego hacemos clic en Start Import, y a continuación nos mostrara la ventana de Proceso
de Importación.
2. Implemente una copia de seguridad automática (programada) a una cierta fecha y hora.
Para implementar una copia de seguridad automáticamente seguiremos una serie de pasos para
configurarlo.
Para realizar backup automático de base de datos MySQL, lo más cómodo es crear una tarea
con:
1. Creamos un archivo en el bloc de notas y lo guardamos como [Link] que será el archivo
ejecutable que hará el backup de la base de datos.
Referencias Bibliográficas
[Link] (2019), Definición la importancia de la disponibilidad, recuperado (9 nov. 2019),
[Link]
data-masking
[Link]
ghavail/c_ctr_ha_for_databases.html
[Link] (2019), Copias de seguridad, recuperado (9 nov. 2019),
[Link]
Apañ[Link] (2019), Técnicas de recuperación de datos, recuperado (9 nov 2019),
[Link]
[Link]
[Link] (2019), Alta disponibilidad de datos, recuperado (10 nov 2019),
[Link]
[Link]