Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Respostas livro Navathe, Exercícios de Banco de Dados Dedutivos

Capitulo 17, com todas as questões e problemas resolvidos.

Tipologia: Exercícios

2019
Em oferta
30 Pontos
Discount

Oferta por tempo limitado


Compartilhado em 31/10/2019

nequita-mozielly-8
nequita-mozielly-8 🇧🇷

3.8

(5)

1 documento

1 / 16

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE FEDERAL DO TOCANTINS
CAMPUS DE PALMAS
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
PALMAS/TO
2019
FELIPE COSTA; GABRIEL BORGES; NEQUITA TELES
QUESTÕES DE PROJETO DE BANCO DE DADOS
CAPÍTULO 17
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
Discount

Em oferta

Pré-visualização parcial do texto

Baixe Respostas livro Navathe e outras Exercícios em PDF para Banco de Dados Dedutivos, somente na Docsity!

UNIVERSIDADE FEDERAL DO TOCANTINS

CAMPUS DE PALMAS

BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

PALMAS/TO

FELIPE COSTA; GABRIEL BORGES; NEQUITA TELES

QUESTÕES DE PROJETO DE BANCO DE DADOS

CAPÍTULO 17

PALMAS/TO

FELIPE COSTA; GABRIEL BORGES; NEQUITA TELES

QUESTÕES DE PROJETO DE BANCO DE DADOS

Capítulo 17

Esta atividade foi avaliada (o) e apresentada (o) à UFT – Universidade Federal do Tocantins – Campus Universitário de Palmas, Curso de ciência da computação para obtenção de nota como forma de avaliação. Orientador: Ary Henrique de Oliveira

  1. Por que o acesso a um bloco de disco é dispendioso? Discuta os componentes de tempo envolvidos no acesso a um bloco de disco.

R: Pois os passo de pesquisa e gastam processos da CPU.

  1. Como o buffering duplo melhora o tempo de acesso ao bloco?

R: O buffering duplo permite a leitura ou gravação contínua de dados em blocos de disco consecutivos, o que elimina o tempo de busca e o atraso rotacional para todas as transferências de bloco, com exceção da primeira. E eles ficam prontos para processamento, reduzindo assim o tempo de espera nos programas.

  1. Quais são os motivos para a existência de registros de tamanho variável? Que tipos de caracteres separadores são necessários para cada um?

R:

● Os registros do arquivo são do mesmo tipo de registro, mas um ou mais dos campos são tamanho variável (campos de tamanho variável). ● Os registros do arquivo são do mesmo tipo de registro, mas um ou mais dos campos podem ter múltiplos valores para registros individuais. ● Os registro do arquivo são do mesmo tipo de registro, mas um ou mais dos campos são opcionais, ou seja, eles podem ter valores para alguns, mas não para todos os registros do arquivo. ● O arquivo contém registro de tipos de registro diferentes e, portanto, de tamanho variável (arquivo misto).

  1. Discuta as técnicas para alocar blocos de arquivo no disco.

R:

● Alocação contígua: os blocos de arquivo são alocados a blocos de disco consecutivos. ● Alocação ligada: Cada bloco de arquivo contém um ponteiro para o próximo bloco de arquivo. ● Alocação indexada: Um ou mais blocos de índice contém ponteiros para os blocos de arquivo reais.

  1. Qual é a diferença entre uma organização de arquivo e um método de acesso?

R: Uma organização de arquivo refere-se à organização dos dados de um arquivo de registros, blocos e estruturas de acesso.

Um método de acesso, por sua vez, oferece um grupo de operações que podem ser aplicadas a um arquivo.

  1. Qual é a diferença entre arquivos estáticos e dinâmicos?

R: Arquivos estáticos: As operações de atualização raramente são realizadas.

Arquivos dinâmicos: Mudam com frequência, de modo que as operações de atualizações são constantemente aplicadas a eles.

  1. Quais são as operações típicas de um registro cada vez para acessar um arquivo? Quais delas dependem do registro de arquivo atual?

R: Operações em arquivos costumam ser agrupadas em operações de recuperação e operações de atualização. As de atualização dependem do arquivo atual.

  1. Discuta as técnicas para exclusão de registro.

R: Primeiro o programa deve encontrar seu bloco, copiá-lo para um buffer, excluir o registro do buffer e, finalmente, regravar o bloco de volta ao disco. Outra técnica é ter um byte ou bit extra, chamado marcador de exclusão, armazenado em cada registro.

  1. Discuta as vantagens e desvantagens do uso de (a) um arquivo desordenado, (b) um arquivo ordenado e (c) um arquivo de hash estático com buckets e encadeamento. Que operações podem ser realizadas de modo eficiente em cada uma dessas organizações, e quais operações são dispendiosas?

R: a) O acesso a um registro por sua posição não ajuda a localizar um registro com base em uma condição de busca, contudo, ele facilita a construção de caminhos de acesso no arquivo.

b) Vantagens: Primeiro, a leitura dos registros na ordem dos valores da chave de ordenação torna- se extremamente eficiente porque nenhuma classificação é necessária. Segundo, encontrar o próximo registro com base no atual na ordem da chave de ordenação em geral não requer acesso de bloco adicionais porque o próximo registro está no mesmo bloco do atual. Terceiro, o uso de uma condição de pesquisa baseada no valor, resulta em acesso mais rápido.

Desvantagens: Não oferece quaisquer vantagens para o acesso aleatório ou ordenado dos registros com base nos valores dos outros campos não ordenados do arquivo.

c)

  1. Discuta as técnicas para permitir que um arquivo de hash se expanda e encolha dinamicamente. Quais são as vantagens e desvantagens de cada uma?

R: Possuem três esquemas, o hashing extensível, hashing linear e hashing dinâmico.

Hashing extensível: Armazena uma estrutura de acesso além do arquivo e, portanto, é semelhante à indexação. A diferença é que a estrutura de acesso se baseia nos valores que resultam após a aplicação da função hash ao campo de pesquisa. A principal vantagem do Hashing extensível é que o desempenho do arquivo não degrada enquanto o arquivo cresce ao contrário do Hashing externo estático. E podem ser alocados buckets adicionais de maneira dinâmica conforme a necessidade. Outra vantagem é que a divisão causa uma pequena reorganização na maior parte dos casos, visto que apenas os registros em um buckets são redistribuídos para os dois novos buckets. Já uma desvantagem é que o diretório precisa ser pesquisado antes do acesso aos próprios buckets, resultando em dois acessos a bloco em vez de um no hashing estático.

R: O objetivo principal do RAID é nivelar as diferentes taxas de melhoria de desempenho dos discos contra aquelas na memória e nos microprocessadores. Com o striping de dados, sendo em nível de bit ou nível de bloco. Striping de dados em nível de bit consiste em dividir um byte de dados e gravar o bit j no j-ésimo disco. O Striping de dados em nível de bloco permite atender, em paralelo por discos separados, várias solicitações independentes que acessam blocos isolados, diminuindo assim o tempo de enfileiramento das solicitações E/S.

  1. Como o espelhamento de disco ajuda a melhorar a confiabilidade? Dê um exemplo quantitativo.

R: Através do escalonamento de uma solicitação de leitura ao disco com o menor atraso esperado de busca e rotacional.

Um array de disco de 100 discos coletivamente tem 1/100 da confiabilidade de um único disco, por meio do espelhamento, a confiabilidade aumenta junto com o desempenho.

  1. O que caracteriza os níveis na organização RAID?

R: A combinação dos dois fatores de detalhamento da intercalação (striping) e do padrão de dados usados para calcular informações redundantes. O RAID nível 0 usa striping de dados, não tem dados redundantes, e portanto, tem o melhor desempenho de gravação. O RAID nível 1 usa dados espelhados. O RAID nível 2 usa a redundância no estilo da memoria ao empregar códigos de Hamming, que contêm bits de paridade para subconjuntos sobrepostos distintos de componentes. O RAID nível 3 utiliza um único disco de paridade contando com o controlador de disco para descobrir qual disco falhou. O RAID nível 4 e 5 usam o striping de dados em nível de bloco, mas o nível 5 distribui informações de dados e paridade por todos os discos. O RAID nível 6 se aplica ao chamado esquema de redundância P + Q usando códigos de Reed- Soloman para proteger contra até duas falhas de disco usando apenas dois discos redundantes.

  1. Quais são os destaques dos níveis de RAID populares 0, 1 e 5?

R: O RAID nível 0, com striping. O RAID nível 1, com espelhamento. O RAID nível 5, com uma unidade extra de paridade.

  1. O que são áreas de armazenamento em rede? Que flexibilidade e vantagens elas oferecem?

R: Áreas de armazenamento em rede (SANs – Storage Area Networks): Os periféricos de armazenamento on-line são configurados como nós em uma rede de alta velocidade e podem ser conectados e desconectados dos servidores de uma maneira bastante flexível.

As principais vantagens:

● Conectividade flexível de muitos-para-muitos entre servidores e dispositivos de armazenamento usando hubs e switches de canal de fibra. ● Até 10 km de separação entre servidor e um sistema de armazenamento usando cabos de fibra ótica apropriados. ● Melhores capacidades de isolamento, permitindo o acréscimo transparente de novos periféricos e servidores.

  1. Descreva os principais recursos do armazenamento conectado à rede como uma solução de armazenamento empresarial.

R: Armazenamento conectado à rede (NAS – Network-Attached Storage), os NAS permitem que uma grande quantidade de espaço de armazenamento de disco rígido seja acrescentada a uma rede e podem tornar esse espaço disponível a múltiplos servidores sem ter de interrompê-los para manutenção e atualizações, eles residem em qualquer lugar em uma rede local (LAN) e podem ser combinados em diferentes configurações.

  1. Como os novos sistemas iSCSI melhoraram a aplicabilidade das redes da área de armazenamento?

R: O iSCSI (Internet SCSI) funciona da seguinte forma. Quando o sistema operacional fera os comandos SCSI apropriados e a requisição de dados, eles passam por procedimentos de encapsulamento e, se for preciso, criptografia. Um cabeçalho de pacote é acrescentado antes que os pacotes IP resultantes sejam transmitidos por uma conexão Ethernet. Quando um pacote é recebido, ele é descriptografado (se foi criptografado antes da transmissão) e desmontado, separando os comandos SCSI e a solicitação. Os comandos SCSI seguem por meio do controlador SCSI para o dispositivo de armazenamento SCSI. Como o iSCSI é bidirecional, o protocolo também pode ser usado para retornar dados em resposta à solicitação original.

  1. Considere um disco com as seguintes características (estes não são parâmetros de qualquer unidade de disco em particular): tamanho de bloco B = 512 bytes; tamanho da lacuna entre blocos G = 128 bytes; número de blocos por trilha = 20; número de trilhas por superfície = 400. Um disk pack consiste em 15 discos de dupla face. a) Qual é a capacidade total de uma trilha e qual é sua capacidade útil (excluindo as lacunas entre blocos)?

R: Capacidade total: (20x512)+(20x128) = 12.800 bytes Capacidade útil: 20x512 = 10,240 bytes

b) Quantos cilindros existem?

R: 15/2 = 7,5 cilindros.

c) O que são a capacidade total e a capacidade útil de um cilindro?

R: Capacidade total: (12.800x7,5)+(400x7,5) = 3.096 bytes Capacidade útil: 12.800x7,5 = 96 bytes

d) O que são a capacidade total e a capacidade útil de um disk pack?

R: bfr = 512/126 = 4. Nº de blocos de arquivo b = 20000/4 = 5000

c) Calcule o tempo médio necessário para localizar um registro ao realizar uma pesquisa linear no arquivo se (i) os blocos do arquivo forem armazenados consecutivamente e o buffering duplo for utilizado; (ii) os blocos de arquivo não forem armazenados de maneira consecutiva.

R: 74.5 ms, 2400 rpms, 512 bytes, 400 (i) s = 74.5 + 4 x (3+6) ms = 110.5 s

(ii) s = 1600 x (74.5 + 3 + 0.000208333) = 124.000,33 s

d) Suponha que o arquivo esteja ordenado por Cpf; ao realizar uma pesquisa binária, calcule o tempo necessário para procurar um registro dado seu valor de Cpf.

R: s = 9 x (74.5+3+0.000208333) = 697.501 s

  1. Suponha que apenas 80 por cento dos registros de ALUNO do Exercício 17. tenham um valor para Telefone, 85 por cento para Dep_princ, 15 por centro para Dep_sec e 90 por cento para Titulo_academico; e suponha ainda que usemos um arquivo com registro de tamanho variável. Cada registro tem um tipo de campo de 1 byte para cada campo no registro, mais o marcador de exclusão de 1 byte e um marcador de fim de registro de 1 byte. Suponha que usemos uma organização de registro espalhada, em que cada bloco tem um ponteiro de 5 bytes para o próximo bloco (esse espaço não é usado para armazenamento de registro). a) Calcule o tamanho médio do registro R em bytes.

R: R = 30+9+40+8+1+16+1+(8+3.4+0.6+2.7)+(4+1+1) = 105 bytes

b) Calcule o numero de blocos necessários para o arquivo.

R: bfr = 512/105 = 4. b = 20000/4.875 = 4,102.

  1. Suponha que uma unidade de disco tenha os seguintes parâmetros: tempo de busca s = 20 ms; atraso rotacional rd = 10 ms; tempo de transferência de bloco btt = 1 ms; tamanho de bloco B = 2.400 bytes; tamanho da lacuna entre blocos G = 600 bytes. Um arquivo FUNCIONARIO tem os seguintes campos: Cpf, 9 bytes; Ultimo_nome, 20 bytes; Primeiro_nome, 20 bytes; Minicial, 1 byte; Data_nascimento, 10 bytes; Endereco, 35 bytes; Telefone, 12 bytes; Cpf_supervisor, 9 bytes; Departamento, 4 bytes; Codigo_cargo, 4 bytes; marcador de exclusão, 1 byte. O arquivo FUNCIONARIO tem r = 30.000 registros, formato de tamanho fixo e blocagem não espalhada. Escreva fórmulas apropriadas e calcule os seguintes valores para o arquivo FUNCIONARIO acima: a) O tamanho do registro R (incluindo o marcador de exclusão), o fator de bloco bfr e o número de blocos de disco b.

R: Registro: 9+20+20+1+10+35+12+9+4+4+1 = 125 bytes

bfr = 2400/125 = 19. b = 30000/19.2 = 1,562.

b) Calcule o espaço desperdiçado em cada bloco de disco devido à organização não espalhada.

R: 1,562.5/600 = 2.604 bytes

c) Calcule a taxa de transferência btt e a taxa de transferência em massa btf para essa unidade de disco (veja no Apêndice B as definições de btt e ttbr).

R: btt = 1 ms ttbr = (2400/(2400+600))x1 = 0.8 bytes/ms

d) Calcule o número de acessos de bloco médio necessário para pesquisar um registro qualquer no arquivo, usando a pesquisa linear.

R: Pesquisa linear = 240 Nº de acessos médio = log 125 + 1 = 3.

e) Calcule, em ms, o tempo médio necessário para pesquisar um registro qualquer no arquivo, usando a pesquisa linear, se os blocos forem armazenados em blocos de disco consecutivos e o buffering duplo for usado.

R: s = (20 + 10 + 1) x 2 = 62 ms

f) Calcule, em ms, o tempo médio necessário para pesquisar um registro qualquer no arquivo, usando a pesquisa linear , se os blocos de arquivo não estiverem armazenados em blocos de disco consecutivos.

R: s = (20 + 10 + 1) = 31 ms

g) Suponha que os registro estejam ordenados por algum campo-chave. Calcule o número de acessos a bloco médio e o tempo médio necessário para pesquisar um registro qualquer no arquivo, usando a pesquisa binária.

R: s = 240 + (20 + 10 + 1) ms = 271 s

  1. Um arquivo PECAS com Num_peca como chave hash inclui registros com os seguintes valores de Num_peca: 2369, 3760, 4692, 4871, 5659, 1821, 1074, 7115, 1620, 2428, 3943, 4750, 6975, 4981 e 9208. O arquivo usa oito buckets, numerados de 0 a 7. Cada bucket é um bloco de disco e mantém dois registros. Carregue esses registros no arquivo na ordem indicada, usando a função de hash na ordem indicada, usando a função de hash h(K) = K mod 8. Calcule o número médio de acessos a bloco para uma leitura aleatória em Num_peca.

R: 15 mod 8 = 1,87 ms

vet[j+1] = x; }

  1. Suponha que tenhamos um arquivo ordenado de registros de tamanho fixo e um arquivo de overflow desordenado para lidar com a inserção. Os dois arquivos usam registros não espalhados. Esboce algoritmos para inserção, exclusão e modificação de um registro de arquivo e para a reorganização do arquivo. Indique quaisquer suposições que você fizer.

R: L ← 1; u ← b; (* b é o número de blocos de arquivo *) enquanto (u >=) faça início i ← (L + u) div 2; leia bloco i do arquivo para buffer; se K < (valor do campo-chave de ordenação do primeiro registro do bloco) então u ← i - 1; senão se K > (valor do campo-chave de ordenação do último registro do bloco i) então L ← i + 1; senão se o registro com valor do campo-chave de ordenação = K está no buffer então vai para found senão vai para notfound; fim; vai para notfound;

void insercao (int vet, int tam){ int i, j, x; for (i=2; i<=tam; i++){ x = vet[i]; j=i-1; vet[0] = x; while (x < vet[j]){ vet[j+1] = vet[j]; j--; } vet[j+1] = x; }

  1. Você consegue pensar em técnicas que não sejam um arquivo de overflow desordenado, que possam ser usadas para tornar as inserções em um arquivo ordenado mais eficiente?

R: Através do método Heap File e Hashed file.

  1. Suponha que tenhamos um arquivo de hash e registros de tamanho fixo, e suponha também que o overflow seja tratado pelo encadeamento. Esboce algoritmos para inserção,

exclusão e modificação de um registro de arquivo. Indique quaisquer suposições que você fizer.

R:

se u = 0; então m <- bi (K) (* m é o valor de hash do registrador com chave K) registro com chave K) senão início m <- bj+1 (K) fim; procure o bucket cujo hash é m ( e seu overflow, se houver)

void insercao (int vet, int tam){ int i, j, x; for (i=2; i<=tam; i++){ x = vet[i]; j=i-1; vet[0] = x; while (x < vet[j]){ vet[j+1] = vet[j]; j--; } vet[j+1] = x; }

  1. Você consegue pensar em técnicas além do encadeamento para lidar com o estouro de buckets no hashing externo?

R: Hashing linear.

  1. Escreva o pseudocódigo para os algoritmos de inserção para hashing linear e hashing extensível.

R:

  1. Escreva o código de programa para acessar campos individuais de registros sob cada uma das seguintes circunstâncias. Para cada caso, indique as suposições que você faz com relação a ponteiros, caracteres separadores, e assim por diante. Determine o tipo de informação necessária no cabeçalho de arquivo a fim de que seu código seja genérico em cada caso.

R: void selecao (int vet, int tam){ int i, j, min, x; for (i=1; i<=n-1; i++){

custo da reorganização econômico? Ou seja, o custo de reorganização e o custo de pesquisa subsequente são menores que o custo de pesquisa antes da reorganização. Explique sua resposta. Considere s = 16 ms, rd = 8,3 ms e btt = 1 ms.

R: s = 16 + 8,3 + 1 = 25,3 ms.

  1. Suponha que queiramos criar um arquivo de hash linear com um fator de carga de arquivo de 0,7 e um fator de bloco de 20 registros por bucket, que deve conter 112. registros inicialmente. a) Quantos buckets devemos alocar na área principal?

R: 20/0,7 = 28.571 bytes.

b) Qual deve ser o número de bits usados para endereços de buckets?

R: De acordo com o buckets, 228 bits.