Buenas, reciban ante todo un cordial saludo, en esta nueva
oportunidad daré a conocer cómo hacer un análisis de estimación sobre el crecimiento
de las tablas de una base de datos (BD), ¿con qué fin hacer estos cálculos? Esto debe realizarse
cuando deseamos conocer cuánto espacio en disco necesitaremos al momento de crear nuestra BD e implementarla en un manejador y/o motor de base de datos posiblemente para ser
usada en el campo laboral propiamente, ya sea porque se dispone de pocos
recursos de hardware y se desea hacer
una asignación optima de recursos (mantenimiento y gestión de una BD, realizado
por un DBA), o simplemente para tener una idea de cuánto pueden crecer cada una
de las tablas.
Para este artículo se empleará el modelo de BD realizado en
un post anterior llamado: “SQL Developer Data Modeler y un ejemplo de uso” el
cual muestra como descargar, instalar y utilizar una herramienta grafica para
representar un modelo relacional en caso de que no se posea ya una herramienta
o un modelo relacional digitalizado. Más detalles pueden contemplarse en el
siguiente link:
Antes de comenzar deben tenerse presente ciertos aspectos:
a) El tipo de dato de las columnas: Esto es de
vital importancia como se había mencionado en el link del artículo anterior, ya que cada tipo de dato tiene un tamaño diferente.
b) Estimación aproximada de registros ingresados: Al
definirse el tipo de dato, debe tenerse presente una estimación básica (si el
modelo será implementado) de cuantos registros serán ingresados en un periodo de tiempo; este puede ser
de una semana, un mes, o un año dependiendo de la frecuencia con la que se realizara el mantenimiento a la base de datos, para este ejemplo se asume que el
mantenimiento se efectuara 1 vez al año en circunstancias normales.
c) La cantidad de columnas que posea la tabla:
Todas las columnas deben ser tomadas en cuenta al momento de hacer el análisis de
crecimiento.
Dicho esto podemos proseguir con
el análisis de las tablas.
1) para la tabla Almacen:
|
Almacen
|
|
Columna
|
Tipo
|
Tamaño
en bytes
|
Id_almacen
|
NUMBER
|
3
|
Ubicacion
|
VARCHAR2
|
50
|
Metros_cuadrados
|
FLOAT
|
6
|
Tamaño
total en bytes: 59
|
Como puede apreciarse en la tabla anterior, se identifica
cada columna (las palabras que deberían tener acentos no los poseen ya que en
el modelo y/o script de la BD no se asignan nombres con acentos), su tipo de
dato, y el tamaño de dicha columna, luego se realiza una suma del tamaño de
todas las columnas y se obtiene su total en bytes.
Estimando que por mucho al año se lleguen a ingresar o
adquirir un máximo de 15 almacenes al año.
15 * 59 = 885 bytes / 1024 bytes = 0.864 = 1 M.
En esta operación se toman los 15 posibles almacenes que se adquirirán
en un año, se multiplican por el total en bytes, luego este valor es llevado a
megabytes (por comodidad) lo cual se consigue dividiendo entre 1024 bytes.
Ahora se realiza el mismo procedimiento para la próxima tabla,
en este caso Area.
2) para la tabla Area:
Area
|
Columna
|
Tipo
|
Tamaño
en bytes
|
Id_area
|
NUMBER
|
2
|
Descripcion
|
VARCHAR2
|
50
|
Metros_cuadrados
|
FLOAT
|
2
|
Tamaño
total en bytes: 54
|
De igual manera se representan cada una de las columnas, su
tipo y tamaño en bytes, y se suman todos los valores.
Suponiendo que el local tenga un total de áreas o estimando
un incremento de áreas máximo total al año de 50.
Nota: Todos estos son estimados a la realidad, para tener una exactitud en valores, se pueden
realizar mediciones en sistemas ya implementados, o conseguirlos consultando propiamente
a los usuarios de dicho sistema.
50 * 54 = 2700 bytes / 1024 = 2.637 = 3 M.
Se toma el total máximo de áreas estimadas y se multiplica
por el tamaño total en bytes de la tabla, nuevamente se realiza la conversión a
megabytes.
Este proceso se repite para cada una de las tablas
faltantes del modelo; ahora para finalizar se explicara una forma de estimar
los datos de 2 de las tablas más complejas de predecir valores en el presente
modelo, estas tabla son Cliente; ya que es un modelo para un mercado, y en
nuestras reglas del mercado propiamente se registra propiamente 1 sola vez al
cliente en la tabla cliente.
3) para la tabla Cliente:
Cliente
|
Columna
|
Tipo
|
Tamaño
en bytes
|
Cedula_cliente
|
VARCHAR2
|
10
|
Nombre
|
VARCHAR2
|
30
|
Apellido
|
VARCHAR2
|
30
|
Telefono
|
VARCHAR2
|
20
|
Direccion
|
VARCHAR2
|
60
|
Tamaño
total en bytes: 150
|
La estimación para
esta tabla se hará considerando lo siguiente:
a) Alrededor de 1 persona cada 3 minutos.
b) Con 2 cajas atendiendo en promedio.
Esto nos daría 40 personas en 1 hora, durante 10 horas de
trabajo al día en promedio.
Lo que traería como resultado 400 personas al día *
358 (365 – 7) días en promedio (estos 7 días
son en promedio 7 días al año no laborales).
Se estima un total de 143200 personas hipotéticas al año y
suponiendo que al menos todas las personas vuelven a comprar en el
establecimiento al menos 15 veces al año.
Para poder finalmente tener una idea de en realidad cuantos
clientes diferentes se registran únicamente en la tabla, se divide el resultado
anteriormente calculado y se divide entre 15.
143200 / 15 = 9546.6687 = 9547 personas hipotéticas
diferentes en el año.
Nota: Si no se
tiene esta restricción, la división anterior no se efectúa.
Ahora con este valor, se procede a calcular su
crecimiento.
9547 * 140 = 1336580 bytes / 1024 = 1305.25 = 1.5 M
Esto ha sido todo por ahora finalmente, espero haya podido
ser de utilidad, si el tema fue de su interés, próximamente escribiré un artículo
para la gestión y mantenimiento de una BD, donde para la estimación realizada, podrá
observarse su importancia propiamente.