Vous êtes sur la page 1sur 9

1.

- Anlisis de la estructura de almacenamiento del gestor de bases de datos


MySQL

MySQL tiene como caracterstica principal en su estructura que separa todos los
detalles de Entrada/Salida adems de la asignacin de la informacin en memoria
secundaria, esto es: separa el motor de almacenamiento al resto de los
componentes de la estructura general.

La segmentacin de un disco, es utilizada para implementacin de espacios en


direcciones virtuales lgicas, que tendrn su uso para el almacenamiento de
datos, cumpliendo con los dos principales requerimientos de asignacin de
nombre y longitud.

El almacenamiento de la base de datos ser alojado en fichero o archivos


incluidos dentro del espacio del disco duro, segmentado para su propsito. MySQL
utiliza diferente motores para el almacenamiento de los datos. Un motor de
almacenamiento es la parte fundamental de MySQL ya que es el encargado de
crear, recuperar eliminar y actualizar los registros de una base de datos los cuales
pueden ser almacenados de diversas formas.

Al conocer estos datos el administrador y planeador de la base de datos conocer


el mximo crecimiento al que puede llegar una base de datos.

El tamao de las tablas variar dependiendo del tamao de los tipos de datos, los
cuales pueden ser comnmente: numricos, caracteres y fechas.

Existen valores null, este se considera como valor no existente y se puede aplicar
a todos los tipos de columnas; existen tambin smbolos utilizados para la
definicin de los diferentes tipos de datos en MySQL

El tamao ocupado de acuerdo a cada tipo de columnas en el disco duro, esta en


funcin de las especificaciones.

De acuerdo al anlisis anterior de los tipos de datos y diferentes tamaos de los


valores de caracteres y nmero usados para la creacin de tablas de una base de
datos, se puede asumir el tamao que utilizar la base de datos dentro del
segmento asignado en el disco duro, asistido por el motor de almacenamiento
usado por MySQL. El motor de almacenamiento InnoDB, emplea E/S en disco
asncrona simulada, creando un nmero de procesos que usarn las operaciones
de almacenamiento.
2.- Segmentacin del disco duro
Cada disco duro constituye una unidad fsica. Sin embargo, los sistemas
operativos no trabajan con unidades fsicas directamente sino con unidades
lgicas. Dentro de una misma unidad fsica de disco duro puede haber varias
unidades lgicas. Cada una de estas unidades lgicas constituye una particin del
disco duro. Esto quiere decir que podemos dividir un disco duro en, por ejemplo,
dos particiones (dos unidades lgicas dentro de una misma unidad fsica) y
trabajar de la misma manera que si tuvisemos dos discos duros (una unidad
lgica para cada unidad fsica).

Particiones y directorios Ambas estructuras


permiten organizar datos dentro de un
disco duro. Sin embargo, presentan
importantes diferencias:

1) Las particiones son divisiones de


tamao fijo del disco duro los directorios
son divisiones de tamao variable de la
particin.

2) Las particiones ocupan un grupo de


cilindros contiguos del disco duro (mayor seguridad); los directorios suelen tener
su informacin desperdigada por toda la particin (por ello es necesaria la de
fragmentacin peridica).

3) Cada particin del disco duro puede tener un sistema de archivos (FAT, FAT32,
NTFS, etc.) distinto. Todos los directorios de una particin tienen el mismo sistema
de archivos. Como mnimo, es necesario crear una particin para cada disco duro.
Esta particin puede contener la totalidad del espacio del disco duro o slo una
parte. Las razones que nos pueden llevar a crear ms de una particin por disco
se suelen reducir a tres:

1) Razones organizativas - Considrese el caso de una computadora que es


compartida por dos usuarios y, con objeto de lograr una mejor organizacin y
seguridad de sus datos, deciden utilizar particiones separadas.
2) Instalacin de ms de un sistema operativo - Debido a que cada sistema
operativo requiere (como norma general) una particin propia para trabajar, si
queremos instalar dos sistemas operativos a la vez en el mismo disco duro (por
ejemplo, Windows 98 y Linux), ser necesario particionar el disco.
3) Razones de eficiencia - Por ejemplo, suele ser preferible tener varias
particiones FAT pequeas antes que una gran particin FAT. Esto es debido a que
cuanto mayor es el tamao de una particin, mayor es el tamao del grupo
(clster) y, por consiguiente, se desaprovecha ms espacio de la particin. Ms
adelante, explicaremos esto con mayor detalle.

Particiones primarias y particiones lgicas

Las particiones pueden ser de dos tipos: primarias o lgicas. Las particiones
lgicas se definen dentro de una particin primaria especial denominada particin
extendida. En un disco duro slo pueden existir 4 particiones primarias (incluida la
particin extendida, si existe).

Ambos tipos de particiones generan las correspondientes unidades lgicas de la


computadora. Sin embargo, hay una diferencia importante: slo las particiones
primarias se pueden activar. Adems, algunos sistemas operativos no pueden
acceder a particiones primarias distintas a la suya.
Lo anterior nos da una idea de qu tipo de particin utilizar para cada necesidad.
Los sistemas operativos (SO) deben instalarse en particiones primarias, ya que de
otra manera no podran arrancar. El resto de particiones que no contengan un
sistema operativo, es ms conveniente crearlas como particiones lgicas (por
ejemplo, un sector del disco duro que ha de servir como depsito de instaladores,
imgenes, mp3, documentos de textos, e-books. etc.). Por dos razones: primera,
no se malgastan entradas de la tabla de particiones del disco duro y, segunda, se
evitan problemas para acceder a estos datos desde los sistemas operativos
instalados. Las particiones lgicas son los lugares ideales para contener las
unidades que deben ser visibles desde todos los sistemas operativos. Algunos
sistemas operativos presumen de poder ser instalados en particiones lgicas
(Windows NT), sin embargo, esto no es del todo cierto: necesitan instalar un
pequeo programa en una particin primaria que sea capaz de cederles el
control.

TECNOLOGA RAID
Pese a que la tecnologa en el desarrollo de dispositivos de almacenamiento
secundario (especialmente discos duros) ha evolucionado espectacularmente, las
prestaciones que se pueden alcanzar con una nica unidad de disco resultan
insuficientes para el almacenamiento eficiente de grandes cantidades de datos.

Es por este motivo por el que se ha desarrollado la tecnologa conocida con el


nombre de RAID (Redundant Array of Inexpensive Disk).La idea original de RAID
fue la de igualar los rendimientos de los discos a los de los procesadores y
memorias principales. Mientras la capacidad de la RAM se cuadruplica cada dos o
tres aos, los tiempos de acceso a disco apenas mejoran un 10% al ao, y los
tiempos de transferencia menos de un 20%.
Como solucin RAID plantea crear un array de pequeos discos independientes
que actan como un nico disco lgico de alto rendimiento.

Adems, se utiliza una estrategia de almacenamiento conocida como data striping


(franjeo de datos) que se basa en el paralelismo. Segn esta tcnica un mismo
fichero se distribuye entre varios discos para que su lectura completa se realice
simultneamente desde todos los discos. El acceso en paralelo a todos los discos
es mucho ms rpido que un acceso secuencial a
BD1 2006-2007128 uno de ellos. De ah que las lecturas y escrituras de los datos
resulten mucho ms rpidas.

RAID tiene como objetivo principal mejorar el rendimiento de los discos


magnticos, aunque sin olvidar un aspecto fundamental que es la fiabilidad.
Para un array de n discos, la posibilidad de fallo es n veces mayor que para un
nico disco. El mantenimiento de una nica copia de los datos en este tipo de
estructura conllevara una importantsima prdida de fiabilidad. La solucin
es introducir redundancia de datos.
Una tcnica que permite la redundancia es lo que se conoce como mirroring o
shadowing, tambin conocido en espaol como espejo. Segn esta tcnica, los
datos se escriben fsicamente en dos discos diferentes de forma redundante. Al
leer los datos, stos se recuperan del disco que tenga menos carga de peticiones,
o que sea ms rpido. Si un disco falla, se usa el otro hasta que se repare el
primero.
ORGANIZACIN Y NIVELES RAID
Hay diferentes organizaciones RAID atendiendo a la forma de hacer el franjeo de
los datos y a la forma de acceder a los datos redundantes. Estas organizaciones
se jerarquizan en 7 niveles: desde RAID nivel 0 hasta RAID nivel 6.

RAID 0 no tiene redundancia de datos. De todas las organizaciones RAID, sta


tiene el mejor rendimiento en escritura ya que no tiene que duplicar
modificaciones. Sin embargo, el rendimiento en lectura es
menor.

RAID 1 ya plantea la redundancia de datos mediante discos espejo. El


rendimiento en lectura es mayor que en RAID 0 debido a que la peticin de lectura
se aplica al disco que sea ms rpido en cada momento.

RAID 2 optimiza el almacenamiento de informacin redundante alalmacenar los


cdigos de deteccin de error (bits de paridad) una nica vez (no una para cada
copia como ocurre en RAID 1) comunes. De esta manera, un ejemplo concreto de
4 discos, slo necesitara 3 discos espejo (en lugar de los 4 que necesita RAID 1).

RAID 3 a RAID 6 optimizan RAID 2 con diferentes estrategias para deteccin de


errores que minimizan el nmero de discos necesarios aumentando el rendimiento
del sistema sin perder fiabilidad.

Como conclusin para este apartado podramos concluir que el disco magntico
es una de las fuentes de almacenamiento secundario ms extendidas para el
almacenamiento de bases de datos. Sin embargo, la organizacin fsica de las
bases de datos evolucin tecnolgica del disco magntico no ha sido tan
espectacular como lo ha sido la evolucin tecnolgica de la memoria RAM o de los
procesadores.

Por este motivo ha sido necesario la introduccin de tcnicas de almacenamiento


redundante que han conseguido mejorar los rendimientos de estos dispositivos.
En concreto, la organizacin RAID es una de las ms extendidas en los servidores
que tienen como principal misin el almacenamiento de grandes bases de datos.
Una vez sentados los fundamentos del hardware que se usa para la
implementacin de las bases de datos, introduciremos algunos conceptos sobre
cmo se almacena fsicamente un fichero.

3.- Los motores de almacenamiento que se usan en MySQL

MySQL dispone de una docena de motores de almacenamiento propios, ms los


motores externos desarrollados por terceras partes que se pueden incorporar al
servidor. Algunos de los ms conocidos son: MyISAM, InnoDB, HEAP, NDB.

A continuacin se describe brevemente cada uno de los motores de


almacenamiento.

MyISAM trata tablas no transaccionales.

Proporciona almacenamiento y recuperacin de datos rpida, as como posibilidad


de bsquedas fulltext. MyISAM se soporta en todas las configuraciones MySQL, y
es el motor de almacenamiento por defecto a no ser que tenga una configuracin
distinta a la que viene por defecto con MySQL.

El motor de almacenamiento MEMORY anteriormente conocido como el montn


motor de almacenamiento almacena todos los datos en memoria, una vez que se
ha decidido apagar el servidor MySQL, cualquier informacin almacenada en una
base de datos MEMORY se han perdido. Sin embargo, el formato de las tablas
individuales se mantiene y esto le permite crear tablas temporales que se pueden
utilizar para almacenar informacin para un acceso rpido sin tener que recrear las
tablas cada vez que el servidor de base de datos es iniciado.

A largo plazo, el uso del motor MEMORY en general, no una buena idea, porque
los datos podran ser tan perdidos fcilmente. Sin embargo, se tiene la RAM para
soportar las bases de datos en las que se estn trabajando, el uso de tablas
MEMORY es una forma eficiente de correr consultas complejas sobre
grandes conjuntos de datos y beneficindonos de las ganancias del rendimiento.

El motor de almacenamiento MERGE permite una coleccin de tablas MyISAM


idnticas ser tratadas como una simple tabla. Como MyISAM, los motores de
almacenamiento MEMORY y MERGE tratan tablas no transaccionales y ambos se
incluyen en MySQL por defecto. Podemos ejecutar consultas que devuelven los
resultados de mltiples tablas como si se tratara de una sola tabla. Cada tabla
fusionada debe tener la misma definicin de tabla. Las tablas MERGE son
particularmente efectivas si estamos logging directorios de datos, directa o
indirectamente, en una base de datos MySQL y creando una tabla individual por
da, semana o mes y queriendo ser capaces de producir consultas agregadas de
mltiples tablas. Hay limitaciones para esto sin embargo, podemos fusionar tablas
MyISAM y la restriccin de definicin de idntica de tabla es estrictamente forzada.

El motor de almacenamiento ISAM es el motor original disponible en las


versiones de MySQL hasta que se introdujo el motor de almacenamiento MyISAM
en MySQL.

ISAM tiene un nmero de diferentes limitaciones que lo hacen poco prctico como
un motor de base de datos. Estos incluyen el formato de almacenamiento, que es
nativo de la plataforma y por lo tanto, no entre sistemas porttiles, un tamao
mximo de tabla de 4GB y limitado a bsquedas de solo texto. Los ndices son
tambin son ms limitados, desde que MyISAM es compatible con las mismas
plataformas que ISAM, y ofrece una mejor compatibilidad, portabilidad y
rendimiento.

El motor EXAMPLE es en realidad un ejemplo de programacin de un motor de


almacenamiento que puede ser utilizado como base para otros motores en el
sistema de MySQL. No soporta las inserciones de datos y no es un motor prctico
para cualquier forma de acceso a bases de datos. Sin embargo, es una buena
gua de cmo desarrollar su propio motor de almacenamiento y, por tanto, una
eficaz gua para los programadores.

NDB Cluster es el motor de almacenamiento usado por MySQL Cluster para


implementar tablas que se particionan en varias mquinas. Estando disponible en
distribuciones binarias MySQLMax 5.0. Este motor de almacenamiento est
disponible para Linux, Solaris, y Mac OS X.

El motor de almacenamiento ARCHIVE se usa para guardar grandes cantidades


de datos sin ndices con una huella muy pequea.
El motor de almacenamiento CSV guarda datos en ficheros de texto usando
formato de valores separados por comas.

El motor de almacenamiento FEDERATED se aadi en MySQL 5.0.3. Este


motor guarda datos en una base de datos remota. En esta versin solo funciona
con MySQL a traves de la API MySQL C Client

4.- Definicin del espacio para la base de datos

Son muchas las consideraciones a tomar en cuenta al momento de hacer el


diseo de la base de datos, quiz las ms fuertes sean:

La velocidad de acceso,

El tamao de la informacin,

El tipo de la informacin,

Facilidad de acceso a la informacin,

Facilidad para extraer la informacin requerida,

El comportamiento del manejador de bases de datos con cada tipo de


informacin.

No obstante que pueden desarrollarse sistemas de procesamiento de archivo e


incluso manejadores de bases de datos basndose en la experiencia del equipo
de desarrollo de software logrando resultados altamente aceptables, siempre es
recomendable la utilizacin de determinados estndares de diseo que garantizan
el nivel de eficiencia ms alto en lo que se refiere a almacenamiento y
recuperacin de la informacin.

De igual manera se obtiene modelos que optimizan el aprovechamiento


secundario y la sencillez y flexibilidad en las consultas que pueden proporcionarse
al usuario.

5.- Diferencias entre un disco preparado y un disco que no sea preparado


para instalarlos

Todo mecanismo de funcionamiento tiene unas caractersticas particulares. Las


caractersticas en las que podemos encontrar diferencias entre los distintos
mecanismos de almacenamiento son principalmente:
Almacenamiento fsico: aqu se incluye desde consideraciones del
tamao de pgina de tablas e ndices, el soporte de almacenamiento hasta
el formato de almacenamiento en disco.

Cach de memoria: diferentes aplicaciones responden mejor a ciertas


estrategias de cach que otras, por lo que aunque algunos cach de
memoria son comunes a todos los mecanismos (como los usados para
conexiones de usuario o al cach de sentencias de alta velocidad), otros
son particulares a cada uno de ellos.

Concurrencia: algunas aplicaciones necesitan granularidad de bloqueo


ms fina (i.e. bloqueo a nivel de fila) que otras. La eleccin de la estrategia
de bloqueo adecuada puede reducir tiempos de espera y aumentar la
prestacin general. Este factor incluye las capacidades concurrencia multi
-versin (MVCC) o toma de "instantneas".

Integridad referencial: caracterstica que responde a la necesidad de que


el servidor asegure la integridad referencial de la base de datos mediante
claves externas.

Particionado: algunos mecanismos permiten que diferentes secciones de


una misma tabla pueden ser almacenadas en diferentes porciones de disco.
Las reglas por las que se realiza este particionado se denominan funciones,
que en MySQL pueden ser el mdulo, lista de rangos o valores, una funcin
de hash interna o una funcin lineal.

Prestaciones: las diferencias pueden estar causadas por los hilos mltiples
para operaciones en paralelo, la concurrencia de hilos, la toma de puntos
de control y el manejo de inserciones masivas.

Soporte de ndices: diferentes aplicaciones necesitan diferentes


estrategias en cuanto a ndices. Cada mecanismo de almacenamiento tiene
sus propios mtodos de indexacin -aunque los B-tree son comunes a casi
todos ellos- aunque algunos carecen de ndices.

Soporte de transacciones: no todas las aplicaciones necesitan


transacciones, pero aqullas que las necesiten tendrn definidos de manera
precisa los requisitos ACID que deben satisfacer los mecanismos
adecuados a ellas.

Caractersticas varias: aqu se puede incluir soporte para operaciones


geo-espaciales y restricciones de seguridad para ciertas operaciones de
manipulacin de datos.
En base a esta informacin podemos concluir el xito de nuestra base de datos ya
que de la preparacin del almacenamiento del mismo depender el correcto
funcionamiento y eficiencia de nuestro sistema.