• Matéria: Informática
  • Autor: ccsacris78
  • Perguntado 3 anos atrás

Nos ambientes que utilizam banco de dados, pode-se observar que, para ocorrer o resultado final esperado, sempre se exigem bom desempenho e dados consistentes. Mas, para que isso seja possível, o administrador de banco de dados (DBA) deve se encarregar de manter sempre os recursos alinhados ao bom funcionamento.
Mas o que é manter os recursos alinhados a um bom funcionamento?
É ter as estruturas criadas de acordo com o modelo de dados, criar índices, visões e restrições de integridade na medida adequada às necessidades do ambiente do negócio e dimensionar corretamente tamanho e parâmetros de crescimento do espaço físico. São procedimentos que, alinhados, irão gerar um bom resultado.
Em uma loja, para o funcionamento do sistema de vendas, têm-se as seguintes relações: CLIENTE, PRODUTO, VENDA. Você precisa calcular o tamanho físico necessário para a criação do banco de dados.
As relações apresentam a seguinte estrutura:
CLIENTE = {CPF inteiro; NOME varchar (100)}
PRODUTO = {CODPROD inteiro; DESCRICAO varchar (50)}
VENDA = {CODVENDA inteiro, dtVenda data, valor float, CPF inteiro}
Calcule o tamanho necessário para a criação do espaço físico que deverá armazenar os dados da loja.
Cabe observar que:
> O número de linhas é definido em função da natureza do negócio. Para essa loja, considere os seguintes números de linhas:
CLIENTE = 5.000
PRODUTO = 500
VENDAS = 25.000
> O tamanho da página pode também variar em função do SGBD e do sistema operacional utilizado. 8192 é o tamanho da página para o SQL Server.
> Outra importante informação para a criação de espaços físicos é a determinação das taxas de crescimento do banco. Esse percentual é definido pelo DBA a partir do conhecimento do negócio que estiver atendendo.
Desenvolva os cálculos e verifique o tamanho do espaço a ser adotado.

Respostas

respondido por: santododiaac
1

Resposta:

Para o cálculo do tamanho de uma tabela, você deverá considerar o número de linhas e o número de colunas (atributos) com comprimento fixo e variável. Faça o cálculo para cada tabela e no final some os resultados para determinar o tamanho total do espaço necessário.

Como exemplo, você deve utilizar a estimativa de cálculo apresentada pela Microsoft. Utilize as seguintes fórmulas:

Num_Rows = número de linhas na tabela

Num_Cols = número total de colunas (comprimento fixo e tamanho variável)

Fixed_Data_Size = tamanho total embytes de todas as colunas de tamanho fixo

Num_Variable_Cols = número de colunas de tamanho variável

Max_Var_Size = total máximo em bytes de todas as colunas de tamanho variável

Obs.: o tamanho de uma coluna depende do tipo de dados e da especificação de comprimento.

Null_Bitmap = 2 + ((Num_Cols + 7) / 8) à nulabilidade da coluna (considerar a parte inteira do resultado)

Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size

Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4

Obs: o valor 4 na fórmula é a sobrecarga do cabeçalho da linha de dados.

Rows_Per_Page = 8096 / (Row_Size + 2) (arrendondamento para baixo)

Obs: o valor 2 na fórmula é para a entrada da linha na matriz de slot da página.

Num_Pages = Num_Rows / Rows_Per_Page (arrendondamento para cima)

Tamanho da tabela (bytes) = 8192 x Num_Pages

Aplicando as fórmulas para cada tabela:

TABELA  CLIENTE = {CPF inteiro; NOME varchar (100)}

Num_Rows = 5000

Num_Cols = 2

Fixed_Data_Size = 11

Num_Variable_Cols = 1

Max_Var_Size = 100

Null_Bitmap = 2 + ((2 + 7) / 8) = 3,12

Variable_Data_Size = 2 + (1 x 2) + 100 = 104

Row_Size = 11 + 104 + 3,12 + 4  =  122,12

Rows_Per_Page = 8096 / (122,12 + 2) = 65,22 ~= 65

Num_Pages = 5000 / 65 = 76,92 ~= 77

Tamanho da tabela (bytes) = 8192 x 77 = 630.784bytes = 616KB

PRODUTO = {CODPROD inteiro; DESCRICAO varchar (50)}

Num_Rows = 500

Num_Cols = 2

Fixed_Data_Size = 7

Num_Variable_Cols = 1

Max_Var_Size = 50

Null_Bitmap = 2 + ((2 + 7) / 8) = 3,12

Variable_Data_Size = 2 + (1  x 2) + 50 = 54

Row_Size = 7 + 54 + 3,12 + 4 = 68,12

Rows_Per_Page = 8096 / (68,12 + 2) ~= 115

Num_Pages = 500  / 115  ~= 5

Tamanho da tabela (bytes) = 8192 x 5 = 40.960 bytes = 40KB

VENDA = {CODVENDA inteiro, dtVenda data, valor float, CPF inteiro}

Num_Rows = 25000

Num_Cols = 4

Fixed_Data_Size = (7 + 8 + 8 + 11) = 34

// considerando 7 CODVENDA, 8 dtVenda, 8 valor (6 inteiras e 2 decimais) e 11 CPF.

Num_Variable_Cols = 0

Max_Var_Size = 0

Null_Bitmap = 2 + ((4 + 7) / 8) = 3

Variable_Data_Size = 2 + (0 x 2) + 0 = 2

Row_Size = 34 + 0 + 3 + 4 = 41

Rows_Per_Page = 8096 / (41 + 2) ~= 188

Num_Pages = 25000 / 188 ~= 133

Tamanho da tabela (bytes) = 8192 x 133 = 1.089.536 bytes = 1.064KB

Obtém-se o seguinte resultado:

O espaço físico inicial de alocação para o banco de dados da loja é de:

616 (CLIENTE) + 40 (PRODUTO) + 1064 (VENDA) = 1.720KB

Perguntas similares