• No se han encontrado resultados

Los siguientes pasos pueden utilizarse para calcular el espacio necesario para almacenar datos en una tabla:

N/A
N/A
Protected

Academic year: 2022

Share "Los siguientes pasos pueden utilizarse para calcular el espacio necesario para almacenar datos en una tabla:"

Copied!
10
0
0

Texto completo

(1)

ESTIMAR EL TAMAÑO DE UNA BASE DE DATOS

Cuando diseña una base de datos, puede que necesite realizar una estimación del tamaño que tendrá la base de datos cuando esté llena. Esta estimación puede ayudarle a determinar la configuración de hardware que necesitará para realizar lo siguiente:

Conseguir el rendimiento que necesitan las aplicaciones.

Asegurar la cantidad física adecuada de espacio en disco necesario para almacenar los datos y los índices.

Asimismo, la estimación del tamaño de la base de datos puede ayudarle a determinar si el diseño de su base de datos necesita reajustes. Por ejemplo, puede determinar que el tamaño estimado de la base de datos es demasiado grande para una implementación en su organización, y que se necesita un mayor grado de normalización. Por el contrario, el tamaño estimado puede inferior al esperado, con lo que podrá reducir la normalización de la base de datos para mejorar el rendimiento de las consultas.

Para realizar una estimación del tamaño de una base de datos, efectúe una estimación del tamaño de cada tabla por separado y sume los valores

obtenidos. El tamaño de una tabla depende de si tiene índices y, si los tiene, del tipo de índices.

Calcular el tamaño de una tabla

Los siguientes pasos pueden utilizarse para calcular el espacio necesario para almacenar datos en una tabla:

1. Calcular el espacio necesario para el montón o para el índice agrupado siguiendo las instrucciones indicadas en estimar el tamaño de un montón o en estimar el tamaño de un índice agrupado.

2. Calcular el espacio necesario para cada índice no agrupado mediante las instrucciones que se detallan en Estimar el tamaño de un índice no agrupado.

3. Sumar los valores calculados en los pasos 1 y 2.

Estimar el tamaño de un montón:

Los siguientes pasos pueden utilizarse para calcular el espacio necesario para almacenar datos en un montón:

1. Especifique el número de filas que habrá en la tabla:

(2)

Num_Rows = número de filas de la tabla

2. Especifique el número de columnas de longitud fija y de longitud variable, y calcule el espacio necesario para su almacenamiento:

Calcule el espacio que ocupa cada uno de estos grupos de columnas en la fila de datos. El tamaño de una columna depende del tipo y de la longitud especificados para los datos.

Num_Cols = número total de columnas (de longitud fija y variable) Fixed_Data_Size = tamaño total en bytes de todas las columnas de longitud fija

Num_Variable_Cols = número de columnas de longitud variable

Max_Var_Size = tamaño máximo total en bytes de todas las columnas de longitud variable

3. Una parte de la fila, conocida como el mapa de bits NULL, se reserva para administrar la nulabilidad en las columnas. Calcule el tamaño:

Null_Bitmap = 2 + ((Num_Cols + 7) / 8)

Solo debe utilizarse la parte entera de la expresión anterior. Descarte el resto.

4. Calcule el tamaño de los datos de longitud variable:

Si hay columnas de longitud variable en la tabla, determine cuánto espacio se utiliza para almacenar las columnas en la fila:

Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size Los bytes agregados a Max_Var_Size son para el seguimiento de cada columna de longitud variable. En esta fórmula se supone que todas las columnas de longitud variable están llenas al 100%. Si prevé que se va a usar un porcentaje inferior del espacio de almacenamiento de columnas de longitud variable, puede ajustar el valor de Max_Var_Size en función de ese porcentaje para obtener una estimación más precisa del tamaño global de la tabla.

Estimar el tamaño de un índice agrupado:

(3)

Los siguientes pasos pueden utilizarse para calcular el espacio necesario para almacenar datos en un índice clúster:

1. Calcule el espacio utilizado para almacenar datos en el nivel hoja del índice clúster.

2. Calcule el espacio utilizado para almacenar información del índice clúster.

3. Sumar los valores calculados.

Paso 1: Calcular el espacio utilizado para almacenar datos en el nivel hoja

1. Especifique el número de filas que habrá en la tabla:

Num_Rows = número de filas de la tabla

2. Especifique el número de columnas de longitud fija y de longitud variable, y calcule el espacio necesario para su almacenamiento:

Calcule el espacio que ocupa cada uno de estos grupos de columnas en la fila de datos. El tamaño de una columna depende del tipo y de la longitud especificados para los datos.

Num_Cols = número total de columnas (de longitud fija y variable) Fixed_Data_Size = tamaño total en bytes de todas las columnas de longitud fija

Num_Variable_Cols = número de columnas de longitud variable Max_Var_Size = tamaño máximo en bytes de todas las columnas de longitud variable

3. Si el índice clúster no es único, tenga en cuenta la columna de valor de unicidad:

La columna de valor de unicidad es una columna de longitud variable que admite valores NULL. No será NULL y tendrá 4 bytes de tamaño en filas que tienen valores de clave no únicos. Este valor forma parte de la clave de índice y es necesario para asegurarse de que cada fila tiene un valor de clave único.

Num_Cols = Num_Cols + 1

Num_Variable_Cols = Num_Variable_Cols + 1

(4)

Max_Var_Size = Max_Var_Size + 4

Estas modificaciones presuponen que todos los valores no serán únicos.

4. Una parte de la fila, conocida como el mapa de bits NULL, se reserva para administrar la nulabilidad en las columnas. Calcule el tamaño:

Null_Bitmap = 2 + ((Num_Cols + 7) / 8)

Solo debe utilizarse la parte entera de la expresión anterior; descarte el resto.

5. Calcule el tamaño de los datos de longitud variable:

Si hay columnas de longitud variable en la tabla, determine cuánto espacio se utiliza para almacenar las columnas en la fila:

Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size Los bytes agregados a Max_Var_Size son para el seguimiento de cada columna de longitud variable. En esta fórmula se supone que todas las columnas de longitud variable están llenas al 100%. Si prevé que se va a usar un porcentaje inferior del espacio de almacenamiento de columnas de longitud variable, puede ajustar el valor de Max_Var_Size en función de ese porcentaje para obtener una estimación más precisa del tamaño global de la tabla.

Estimar el tamaño de un índice no agrupado:

Siga estos pasos para estimar el espacio necesario para almacenar un índice no clúster:

1. Calcular las variables que deben usarse en los pasos 2 y 3.

2. Calcular el espacio utilizado para almacenar información del índice en el nivel hoja del índice no clúster.

3. Calcular el espacio utilizado para almacenar información del índice en los niveles no hoja del índice no clúster.

4. Sumar los valores calculados.

Paso 1. Calcularlas variables que deben usarse en los pasos 2 y 3

Los siguientes pasos pueden utilizarse para calcular las variables que se utilizan para estimar el espacio necesario para almacenar los niveles superiores del índice:

(5)

1. Especifique el número de filas que habrá en la tabla:

Num_Rows = número de filas de la tabla

2. Especifique el número de columnas de longitud fija y variable de la clave de índice, y calcule el espacio necesario para su almacenamiento:

Las columnas de clave de un índice pueden incluir columnas de longitud fija y de longitud variable. Para estimar el tamaño de las filas de índice de nivel interior, calcule el espacio que ocupa cada uno de estos grupos de columnas en la fila de índice. El tamaño de una columna depende del tipo y de la longitud especificados para los datos.

Num_Key_Cols = número total de columnas de clave (de longitud fija y variable)

Fixed_Key_Size = tamaño total en bytes de todas las columnas de clave de longitud fija

Num_Variable_Key_Cols = número de columnas de clave de longitud variable

Max_Var_Key_Size = tamaño máximo en bytes de todas las columnas de clave de longitud variable

3. Tenga en cuenta el localizador de fila de datos necesario si el índice no es único:

Si el índice no clúster no es único, el localizador de fila de datos se combina con la clave de índice no clúster para generar un valor de clave único para cada fila.

Si el índice no clúster se encuentra sobre un montón, el localizador de fila de datos es el RID del montón. Tiene un tamaño de 8 bytes.

Num_Key_Cols = Num_Key_Cols + 1

Num_Variable_Key_Cols = Num_Variable_Key_Cols + 1 Max_Var_Key_Size = Max_Var_Key_Size + 8

Si el índice no clúster se encuentra sobre un índice clúster, el localizador de fila de datos es la clave de agrupación en clústeres. Las columnas que se deben combinar con la clave de índice no clúster son las columnas de la

(6)

clave de agrupación en clústeres que ya no están presentes en el conjunto de columnas de clave de índice no clúster.

Num_Key_Cols = Num_Key_Cols + número de columnas de clave de agrupación en clústeres no presentes en el conjunto de columnas de clave de índice no agrupado (+ 1 si el índice agrupado no es único)

Fixed_Key_Size = Fixed_Key_Size + tamaño total en bytes de las columnas de clave de agrupación en clústeres de longitud fija que no están presentes en el conjunto de columnas de clave de índice no agrupado

Num_Variable_Key_Cols = Num_Variable_Key_Cols + número de columnas de clave de agrupación en clústeres de longitud variable no presentes en el conjunto de columnas de clave de índice no agrupado (+ 1 si el índice agrupado no es único)

Max_Var_Key_Size = Max_Var_Key_Size + tamaño máximo en bytes de las columnas de clave de agrupación en clústeres de longitud variable no presentes en el conjunto de columnas de clave de índice no agrupado (+ 4 si el índice agrupado no es único)

4. Se puede reservar parte de la fila, conocida como el mapa de bits NULL, para administrar la nulabilidad de las columnas. Calcule el tamaño:

Si existen columnas que aceptan valores NULL en la clave del índice, incluidas las columnas de clave de agrupación en clústeres necesarias que se describen en el paso 1.3, se reserva parte de la fila de índice para el mapa de bits NULL.

Index_Null_Bitmap = 2 + ((número de columnas de la fila de índice + 7) / 8)

Solamente debe utilizarse la parte entera de la expresión anterior. Descarte el resto.

Si no existen columnas de clave que aceptan valores NULL, establezca Index_Null_Bitmap en 0.

5. Calcule el tamaño de los datos de longitud variable:

Si hay columnas de longitud variable en la clave de índice, incluidas las columnas de clave de índice clúster necesarias, determine cuánto espacio se utiliza para almacenar las columnas de la fila de índice:

(7)

Variable_Key_Size = 2 + (Num_Variable_Key_Cols x 2) + Max_Var_Key_Size

Los bytes agregados a Max_Var_Key_Size son para el seguimiento de cada columna de longitud variable. En esta fórmula se supone que todas las columnas de longitud variable están llenas al 100 %. Si prevé que va a usarse un porcentaje inferior del espacio de almacenamiento de columnas de longitud variable, puede ajustar el valor de Max_Var_Key_Size en función de ese porcentaje para obtener una estimación más precisa del tamaño global de la tabla.

Si no hay columnas de longitud variable, establezca Variable_Key_Size en 0.

6. Calcule el tamaño de la fila del índice:

Index_Row_Size = Fixed_Key_Size + Variable_Key_Size + Index_Null_Bit map + 1 (para la sobrecarga de encabezado de una fila de índice) + 6 (para el puntero de identificador de página secundaria)

7. Calcule el número de filas de índice por página (8.096 bytes disponibles por página):

Index_Rows_Per_Page = 8096 / (Index_Row_Size + 2)

Dado que las filas de índice no abarcan varias páginas, el número de filas de índice por página debe redondearse hacia abajo a la fila completa más cercana. El valor 2 de la fórmula representa la entrada de la fila en la matriz de zonas de la página.

(8)

TALLER BASE DE DATOS

Identificación de entidades La entidad que surge inmediatamente es Pacientes. Otras entidades posibles son Médicos e Ingresos. La primera se refiere a los médicos que son responsables de los pacientes y la segunda al ingreso en el hospital.

Las entidades modelan en general tanto objetos y personas (pacientes y médicos) como acciones (ingresos).

Podrían surgir las siguientes preguntas

 ¿Por qué no eliminar Médicos y hacer que forme parte como atributos de Pacientes?

Como un médico será responsable en general de varios pacientes, repetir la información del médico para cada paciente no es buena idea.

 ¿Por qué no eliminar Ingresos y hacer que forme parte como atributos de Pacientes?

Un paciente puede ingresar varias veces en el hospital y tener asignado en cada ocasión diferentes médicos, con lo que nos encontraríamos con atributos multivalorados.

Identificación de atributos

A cada tipo de entidad se le debe asignar tantos atributos como sea necesario en la especificación del problema.

• Entidad Pacientes:

Número de Seguridad Social.

Nombre del paciente.

Apellidos del paciente.

Domicilio.

Población.

Provincia Código postal.

Número de teléfono.

Número de historial clínico.

Observaciones

• Entidad Ingresos:

Procedencia.

Fecha de ingreso.

Número de planta.

Número de cama.

Observaciones

• Entidad Médicos:

(9)

Código de identificación del médico.

Nombre.

Apellidos.

Especialidad.

Número de colegiado.

Cargo.

Observaciones

Restricciones de clave primaria para las entidades En las entidades Pacientes y médicos parece claro:

 Entidad Pacientes: Número de historial clínico.

 Entidad Médicos: Código de identificación del médico.

Sin embargo, en la entidad ingresos hay varios atributos que, aisladamente, no parecen formar clave. El ingreso depende de un paciente en concreto, por lo que esta entidad debería guardar información de a qué paciente corresponde. De hecho, se trata de un tipo de entidad conocida como débil, que debería tomar prestado el atributo clave de Pacientes para formar clave. Pero no es suficiente, es necesario añadir al menos la fecha en que ingresó el paciente. Pero, ¿qué ocurre si el paciente ingresa dos veces en el mismo día? Habría que añadir otro atributo, como la hora, para indicarlo. En la práctica, se elige muchas veces usar un nuevo atributo sin

significado que sirva únicamente para identificar unívocamente a las entidades. En este caso usaremos un atributo denominado ID (de identificador).

• Entidad Ingresos: ID

Restricciones de cardinalidad

• Relación Realiza:

• Pacientes -1- Realiza - Ingresos: Un ingreso sólo corresponde a un paciente.

• Pacientes - Realiza -N- Ingresos: Un paciente puede sufrir varios ingresos.

• Relación Atiende:

• Médicos -1- Atiende - Ingresos: Un ingreso sólo es atendido por un médico.

• Médicos - Atiende -N- Ingresos: Un médico puede atender varios ingresos.

(10)

ESTADISTICAS DEL HOSPITAL

Cuanto deberia ser el valor inicial de creacion de la base de datos y cual seria el crecimiento anual.

Referencias

Documento similar

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

[r]

SVP, EXECUTIVE CREATIVE DIRECTOR JACK MORTON

Una vez hecho esto, se realiza una espera, leyendo el registro de salida del coprocesador para el control de qué está haciendo el procesador en este momento, a la espera que nos

[r]

[r]