# MySQL/Introducción/Aspectos técnicos del sistema gestor

Vamos a continuación a exponer los componentes y aspectos de maquetación presentes en toda base de datos para poder desarrollar el diseño lógico de esta así como señalar algunas características particulares que implementa MySQL.
El motor de la base de datos acepta peticiones lógicas de los otros subsistemas del SGBD, las convierte en su equivalente físico y accede a la base de datos y diccionario de datos en el dispositivo de almacenamiento.
El subsistema de definición de datos ayuda a crear y mantener el diccionario de datos y define la estructura del fichero que soporta la base de datos.
El subsistema de manipulación de datos ayuda al usuario a añadir, cambiar y borrar información de la base de datos y la consulta para extraer información. Suele ser la interfaz principal del usuario con la base de datos. Permite al usuario especificar sus requisitos de la información desde un punto de vista lógico.
El subsistema de generación de aplicaciones contiene utilidades para ayudar a los usuarios en el desarrollo de aplicaciones. Usualmente proporciona pantallas de entrada de datos, lenguajes de programación e interfaces.
El subsistema de administración ayuda a gestionar la base de datos ofreciendo funcionalidades como almacenamiento y recuperación, gestión de la seguridad, optimización de preguntas, control de concurrencia y gestión de cambios.
La arquitectura de un SGBD especifica sus componentes (incluyendo su descripción funcional) y sus interfaces. Trata de conceptos distintos que la arquitectura de la base de datos. Los componentes principales de un SGBD son:
Interfaces externas: medios para comunicarse con el SGDB en ambos sentidos (E/S) y explotar a todas sus funciones. Pueden afectar a la BD o a la operación del SGBD, por ejemplo:
-Operaciones directas con la base de datos; definición de tipos, asignación de niveles de seguridad, actualización de datos, consulta de la base de datos...
-Operaciones relativas a la operación del SGBD; copias de seguridad y restauración, recuperación tras una caída, monitorización de seguridad, gestión del almacenamiento, reserva de espacio, monitorización de la configuración, monitorización de prestaciones, afinado...
-Las interfaces externas bien pueden ser utilizadas por usuarios (p. e. administradores) o bien por programas que se comunican a través de una API.
Intérprete o procesador del lenguaje: la mayor parte de las operaciones se efectúan mediante un lenguaje de base de datos. Existen lenguajes para definición de datos, manipulación de datos (p. e. SQL), para especificar aspectos de la seguridad y más. Las sentencias en ese lenguaje se introducen en el SGBD mediante la interfaz adecuada. Se procesan las expresiones en dicho lenguaje (ya sea compilado o interpretado) para extraer las operaciones de modo que puedan ser ejecutadas por el SGBD.
Optimizador de consultas: realiza la optimización de cada pregunta y escoge el plan de actuación más eficiente para ejecutarlo.
Motor de la base de datos: realiza las operaciones requeridas sobre la base de datos, tipicamente representándolo a alto nivel.
Mecanismo de almacenamiento: traduce las operaciones a lenguaje de bajo nivel para acceder a los datos. En algunas arquitecturas el mecanismo de almacenamiento está integrado en el motor de la base de datos.
Motor de transacciones: para conseguir corrección y fiabilidad, la mayoría de las operaciones internas del SGBD, se realizan encapsuladas dentro de transacciones. Las transacciones pueden ser especificadas externamente al SGBD para encapsular un grupo de operaciones. El motor de transacciones sigue la ejecución de las transacciones y gestiona su ejecución de acuerdo con las reglas que tiene establecidas (p. e., control de concurrencia y su ejecución o cancelación).
Gestión y operación de SGBD: comprende muchos otros componentes que tratan de aspectos de gestión y operativos del SGBD como monitorización de prestaciones, gestión del almacenamiento, mapas de almacenamiento.
MySQL es un SGBD que ha ganado popularidad por una serie de atractivas características o ventajas:
* • Está desarrollado en C/C++.
* • Se distribuyen ejecutables para cerca de diecinueve plataformas diferentes.
* • La API se encuentra disponible en C, C++, Eiffel , Java, Perl, PHP, Python, Ruby y TCL.
* • Está optimizado para equipos de múltiples procesadores.
* • Es muy destacable su velocidad de respuesta.
* • Se puede utilizar como cliente-servidor o incrustado en aplicaciones.
* • Cuenta con un rico conjunto de tipos de datos.
* • Soporta múltiples métodos de almacenamiento de las tablas, con prestaciones y rendimiento diferentes para poder optimizar el SGBD a cada caso concreto.
* • Su administración se basa en usuarios y privilegios.
* • Se tiene constancia de casos en los que maneja cincuenta millones de registros, sesenta mil tablas y cinco millones de columnas.
* • Sus opciones de conectividad abarcan TCP/IP, sockets UNIX y sockets NT, además de soportar completamente ODBC.
* • Los mensajes de error pueden estar en español y hacer ordenaciones correctas con palabras acentuadas o con la letra ’ñ’.
* • Es altamente confiable en cuanto a estabilidad se refiere.
Desventajas:
* Un gran porcentaje de las utilidades de MySQL no están documentadas.
* No es intuitivo, como otros programas (ACCESS)