Integrantes: Céspedes F, Alexa Y. C.I.: 19.264.953. Escobar Y

Anuncio
Integrantes:
Céspedes F, Alexa Y. C.I.: 19.264.953.
Escobar Y, Vanessa B. C.I.: 17.854.173.
Hernández L, Mixyeli J. C.I.: 15.444.333.
Mejias S, Edgar C.I.: 15.177.077.
Peraza S, Eduardo J. C.I.: 15.580.007.
Arquitectura de My SQL.
MySQL, es un sistema de administración de bases de datos SQL, el cual se emplea para
almacenar la información de los dominios virtuales y sus usuarios.
Arquitectura de MySQL
El elemento más notable de la arquitectura de MySQL es la denominada
arquitectura de motores de almacenamiento reemplazables (pluggable storage engine
architecture). La idea de esa arquitectura es hacer una interfaz abstracta con funciones
comunes de gestión de datos en el nivel físico. De ese modo, el gestor de almacenamiento
puede intercambiarse, e incluso un mismo servidor MySQL puede utilizar diferentes
motores de almacenamiento para diferentes bases de datos o para diferentes tablas en la
misma base de datos, permitiendo utilizar el motor de almacenamiento más adecuado para
cada necesidad concreta y también que terceros puedan implementar motores de
almacenamiento nuevos para necesidades específicas, o adaptar el código de los existentes
a ciertos requisitos de almacenamiento. Así, las interfaces definidas por MySQL aíslan el
resto de los componentes de la arquitectura de las complejidades de la gestión física de
datos, facilitando el mantenimiento de los motores de almacenamiento. También esto
permite que ciertos motores de almacenamiento no implementen parte de los servicios, lo
cual les hace inapropiados para algunas aplicaciones pero más eficientes para otros. Por
ejemplo, un motor de almacenamiento que no implementa bloqueos en la base de datos no
debe utilizarse en aplicaciones multi-usuario, pero la ausencia de sobrecarga de
procesamiento en la gestión de los bloqueos para el acceso concurrente lo hará mucho más
eficiente para una aplicación monousuario.
En consecuencia, una primera tarea de diseño físico en MySQL es la de decidir el
motor de almacenamiento más apropiado.
Los elementos que puede implementar un motor de almacenamiento son los siguientes:
 Concurrencia. Es responsabilidad del motor implementar una política de bloqueos
(o no implementar ninguna). Una estrategia de bloqueos por fila permite una mayor
concurrencia, pero también consume más tiempo de procesamiento en aplicaciones
en las que la concurrencia no es realmente grande.
 Soporte de transacciones. No todas las aplicaciones necesitan soporte de
transacciones.
 Comprobación de la integridad referencial, declarada como restricciones en el DDL
de SQL.
 Almacenamiento físico, incluyendo todos los detalles de la representación en disco
de la información.
 Soporte de índices. Dado que la forma y tipo de los índices depende mucho de los
detalles del almacenamiento físico, cada motor de almacenamiento proporciona sus
propios métodos de indexación.
 Cachés de memoria. La eficiencia de los cachés de datos en memoria depende
mucho de cómo procesan los datos las aplicaciones. MySQL implementa cachés
comunes en el gestor de conexiones y la caché de consultas, pero algunos motores
de almacenamiento pueden implementar cachés adicionales.
 Otros elementos para ayudar al rendimiento, como puede ser el uso de múltiples
hilos para operaciones paralelas o mejoras de rendimiento para la inserción masiva.
La implementación de un gestor de almacenamiento implica escribir un software
con una interfaz en lenguaje C, que implemente una biblioteca de funciones (storage engine
API) que es la que el servidor MySQL invoca para pedir los servicios al gestor. Por
ejemplo, si estamos implementando un gestor de almacenamiento, una de las funciones es
la que crea una nueva tabla, que tiene la siguiente signatura.
int ha_tina::create(const char *name, TABLE *table_arg,
HA_CREATE_INFO *create_info)
{
...
}
El parámetro name es, como cabe esperar, el nombre de la nueva tabla, y TABLE es
una estructura que representa el esquema de la tabla. Las opciones de creación están en
create_info, que incluye, por ejemplo, la asociación con índices, restricciones en el tamaño
de la tabla, y otros.
MySQL crea una representación del esquema de las tablas independiente del motor
de almacenamiento, en ficheros denominados nombretabla.frm, uno por cada tabla del
esquema. TABLE es una referencia a esa representación.
Ejemplo de la arquitectura lógica de MySQL.
La imagen anterior nos muestra la estructura de la arquitectura de MySql en donde
podemos observar los componentes de la misma entre ellos los conectores que poseen las
bibliotecas que permiten la conexión remota o local con servidores MySQL, seguida de esta
el gestor de conexiones que permite mantener conexiones de los clientes y crear o eliminar
algunas de las mismas, siendo este un proceso costoso, es por ello que se limita el número
de conexiones concurrentes, otro de los componentes es el procesamiento y optimización de
consultas que depende directamente de las capacidades del gestor de almacenamiento que
se emplee, ya que este emite un análisis según las consultas recibidas para así ofrecer una
serie de decisiones que ayudan al optimizador elegir el tipo de optimización más adecuado
según las características que soporte el gestor. La misma estructura contiene los cache de
consultas que guarda las consultas y sus resultados también cuenta con controles de
concurrencias. como un gestor de base de datos el cual evita que lecturas o escrituras
simultáneas a la misma porción de datos terminen en inconsistencias o efectos no deseados,
empleando para este control bloqueos (Locks), bloqueos compartidos (Shared Locks) y
bloqueos exclusivos (Exclusive Locks) y una de sus últimos componentes es la Gestión de
transacciones y recuperación que permite dotar de semántica a una consulta que se declara
como una sola transacción mientras que la recuperación permite volver hacia atrás
(rollback) partes de una transacción.
Los motores de almacenamientos se subdividen a su vez en varios motores entre
ellos tenemos:
 El motor de almacenamiento InnoDB proporciona tablas transaccionales también se
incluye por defecto en todas las distribuciones binarias de MySQL 5.0. y ofrece
funcionalidades como: transacciones, bloqueo a nivel de registro, restricciones
sobre claves foráneas y recuperación de datos perdidos.
 El motor de almacenamiento MyISAM trata tablas no transaccionales, proporciona
almacenamiento y recuperación de datos rápido, así como posibilidad de búsquedas
fulltext. MyISAM se soporta en todas las configuraciones MySQL, y es el motor de
almacenamiento por defecto a no ser que tenga una configuración distinta.
 El motor de almacenamiento MEMORY proporciona tablas en memoria y trata
tablas no transaccionales este se incluyen en MySQL por defecto, anteriormente
conocido como HEAD.
Los sistemas que manejan bases de datos se describen en tres capas;
MySql no se escapa de esta descripción y posee la capa de aplicación que es la
parte más externa del sistema y es la interfice a través de la que los usuarios se comunican
con el sistema.
La funcionalidad central de este sistema la encontramos en la capa lógica que es
donde se realizan todas las operaciones del sistema. Esta capa se puede refinar de la
siguiente manera:
En esta capa se realizan varias operaciones. La primera y que sirve de interficie con
la capa de aplicación es el procesamiento de las instrucciones SQL. Después hay dos
módulos: el manejo de transacciones, y la recuperación después de errores. Finalmente está
la parte que se encarga de traducir las instrucciones SQL en acciones sobre el
almacenamiento de datos.
Y finalmente, la capa física es donde están almacenados los datos.
Conclusiones:
De acuerdo a lo expresado anteriormente se puede decir que el aspecto más
resaltante que posee la arquitectura de MySQL es que permite la creación de motores de
almacenamiento especializado para cualquier requerimiento que tenga el usuario lo que le
permite incluir nuevos motores de almacenamiento en cuanto sea necesario y al emplear
diferentes motores se hace posible utilizar diferentes bases de datos a la vez, esto debido a
que separa los motores del resto de los componentes de la arquitectura del manejador de
bases de datos.
Es notable que debido a esto se hace más fácil y accesible el empleo o uso de este
sistema (MySQL) al usuario debido a la amplitud que brinda su arquitectura, además que
permite la adaptación de su código haciéndolo compatible con otros sistemas operativos ya
que soporta gran cantidad de lenguajes como php, c++, perl, java entre otros que se harán
necesarios según las especificaciones y requerimientos que se puedan presentar es por ello
que también se hace fiable y seguro.
Uno de los elementos más destacables que se implementan en los motores de
almacenamiento mencionados anteriormente es el de multihilos ya que le permite a MySql
aprovechar la potencia de sistemas multiprocesador haciendo su base de datos muy veloz
también resalta la cache de memoria que se hace más eficiente a medida que los motores de
almacenamiento trabajan con mayor rapidez
Otro de los beneficios que aporta esta arquitectura es que al usar el sistema como un
monousuario este le permite crear respaldos sin tener que cerrar todos los objetos
bloqueados por el usuario. Para finalizar se puede decir que gracias a la separación de los
motores de almacenamiento del resto de los componentes de la arquitectura de MySql
hacen la misma un sistema multiplataformico, además de facilitar el mantenimiento de
motores y le permiten al usuario obtener una configuración simple e instalación rápida a
través de las diferentes interfaces dinámicas que este presenta.
Información obtenida de la dirección electrónica:
http://cnx.org/content/m18938/latest/
http://alfa.facyt.uc.edu.ve/computacion/pensum/cs0347/download/exposiciones20052006/Oracle%20POstgre%20MySQL.pdf
http://www.google.co.ve/#hl=es&biw=1280&bih=934&q=arquitectura+de+mysql&aq=f&aqi=g1&
aql=&oq=&gs_rfai=&fp=ac9387fd6a393d8f
Descargar