Projeto e Normalização de Bancos de Dados

Domine o projeto e a normalização de bancos de dados. Aprenda sobre registros fixos/variáveis, busca, ordenação e formas normais. Otimize seu aprendizado!

O projeto e normalização de bancos de dados é um pilar fundamental na gestão da informação, essencial para garantir a eficiência, integridade e consistência dos dados. Este processo envolve estruturar a informação de maneira lógica e física, otimizando seu armazenamento e acesso. Compreender seus princípios é crucial para estudantes e profissionais da área.

Fundamentos do Projeto de Bancos de Dados para Estudantes

Um banco de dados (BD) é um conjunto de dados inter-relacionados, enquanto um Sistema Gerenciador de Banco de Dados (SGBD) é o software que permite acessá-los e administrá-los. A importância do projeto e normalização de bancos de dados reside em evitar problemas como redundância, inconsistências e anomalias de atualização.

Os SGBDs utilizam dois tipos de linguagens: a Linguagem de Definição de Dados (LDD) para especificar o esquema (estrutura, relacionamentos, restrições) e a Linguagem de Manipulação de Dados (LMD) para recuperar, adicionar, modificar ou excluir informações. Os LMDs podem ser procedimentais (indicam o quê e como obter dados) ou não procedimentais (apenas quais dados são necessários).

Os objetivos-chave de um SGBD incluem:

  • Controlar a concorrência: Evitar inconsistências quando múltiplos usuários acessam ou modificam o mesmo dado simultaneamente.
  • Controle centralizado: Gerenciar dados e programas que os acessam.
  • Facilitar o acesso a dados: Através de linguagens de consulta.
  • Prover segurança: Impor restrições de acesso a usuários autorizados.
  • Manter a integridade dos dados: Garantir que os dados respeitem as condições definidas e permitir a restauração em caso de falhas.

Níveis de Visão e Modelos de Dados

Para simplificar a interação com estruturas de dados complexas, os BDs são representados em três níveis de abstração:

  • Nível de Visão: O nível mais alto, descreve uma parte específica do BD que um usuário deseja ver.
  • Nível Lógico: Descreve o BD completo, indicando quais dados serão armazenados e seus relacionamentos, levando a estruturas mais complexas no nível físico.
  • Nível Físico: O nível mais baixo, detalha como os dados são realmente armazenados, incluindo estruturas de baixo nível.

Um modelo de dados é um conjunto de ferramentas conceituais para descrever dados, sua semântica, relacionamentos e restrições. Dividem-se em:

  • Modelos lógicos baseados em objetos: Usados nos níveis de visão e lógico, como o modelo Entidade-Relacionamento (ER) com entidades e atributos, e o modelo orientado a objetos.
  • Modelos lógicos baseados em registros: Usados nos níveis lógico e físico, empregam estruturas de registro. Incluem o modelo hierárquico (estrutura de árvore), de rede (estrutura de grafo) e o modelo relacional (o mais utilizado, baseado em tabelas ou tuplas com colunas ou atributos).

Os usuários de bancos de dados são classificados em:

  • Administrador de BD: Controle centralizado, define esquemas, concede direitos de acesso e estabelece restrições.
  • Programadores de aplicações: Desenvolvem sistemas de software que interagem com o BD.
  • Usuários sofisticados: Realizam consultas diretas ao BD com linguagens de consulta.
  • Usuários especializados: Desenvolvem aplicações não tradicionais (Sistemas Especialistas, SIG).
  • Usuários comuns: Utilizam sistemas desenvolvidos por outros, com acesso indireto.

Otimização do Armazenamento: Registros de Tamanho Fixo vs. Variável

Uma parte crítica do projeto e normalização de bancos de dados é o gerenciamento do espaço em disco. Os arquivos podem conter registros de tamanho fixo ou variável.

Registros de Tamanho Fixo:

  • Cada registro ocupa um tamanho predefinido (ex., 314 bytes para um funcionário com campos Nome, Endereço, Documento, Idade, Observações).
  • Vantagens: Facilita a entrada/saída de informações, e as operações de inclusão, exclusão e modificação são simples.
  • Desvantagens: Pode haver um desperdício significativo de espaço se os campos não usarem toda a sua capacidade alocada (ex., de 314 bytes, apenas 124 úteis, o restante preenchido).
  • Maior tempo de processamento ao transferir bytes inúteis.

Registros de Tamanho Variável:

  • Utilizam apenas o espaço necessário para armazenar a informação, sem um tamanho predefinido a priori.
  • Vantagens: Otimização do espaço em disco e redução do tempo de processamento ao transferir apenas dados úteis.
  • Desvantagens: Requerem uma organização de arquivos diferente e algoritmos mais complexos para sua administração, já que a operação de leitura/escrita deve resolver a transferência caractere a caractere ou elemento a elemento.

Para gerenciar registros de tamanho variável, é necessário usar marcadores de fim de campo (ex. '#') e marcadores de fim de registro (ex. '@') para delimitar os elementos. O programador deve resolver de forma minuciosa as operações de adicionar e remover elementos.

Alternativas para Registros de Tamanho Variável

Existem variantes na implementação de registros de tamanho variável:

  • Delimitadores de campo: Como visto, utilizam-se caracteres especiais para marcar o final de cada campo.
  • Indicadores de tamanho: Antes de armazenar um campo ou registro, indica-se seu tamanho em bytes. Os bytes seguintes correspondem aos dados.

Exclusão e Recuperação de Dados em Bancos de Dados

O processo de exclusão permite remover informações de um arquivo. Historicamente, buscava-se recuperar espaço; hoje, com a informação como bem precioso, frequentemente ela é preservada em repositórios históricos.

Existem dois modos principais de exclusão:

  1. Exclusão Física: Apaga a informação e recupera o espaço físico. Isso mantém o arquivo em seu tamanho mínimo, mas pode impactar a performance devido aos rearranjos.
  • Gerando um novo arquivo: Cria-se um arquivo sem os elementos a serem excluídos, copiando apenas os válidos. Isso implica ler o arquivo completo e escrever um novo.
  • Utilizando o mesmo arquivo: Rearranjam-se os elementos dentro do arquivo existente. Um registro a ser excluído pode ser substituído pelo último registro válido, e a quantidade total de elementos é decrementada.
  1. Exclusão Lógica: Marca a informação como excluída sem recuperar o espaço físico. Isso é feito atribuindo um valor especial a um campo (ex., um campo borrado ou estado).
  • Vantagens: Algoritmicamente mais simples e rápido, já que não requer rearranjos físicos.
  • Desvantagens: Não libera espaço físico imediatamente, o que pode requerer um processo de compactação posterior.

Recuperação e Reatribuição de Espaço

Para recuperar espaço de exclusões lógicas ou físicas e reutilizá-lo, especialmente com registros de tamanho variável, devem-se considerar novas complexidades. Não basta dispor de um local, mas o local deve ter um tamanho suficiente para o novo elemento.

Utiliza-se uma lista invertida com um registro cabeçalho para dispor dos endereços livres dentro do arquivo, indicando a quantidade de bytes disponíveis em cada caso. O processo de inserção deve localizar o local mais adequado, seguindo estratégias:

  • Primeiro ajuste: Selecionar o primeiro espaço disponível onde o registro caiba.
  • Melhor ajuste: Selecionar o menor espaço onde o registro caiba.

A fragmentação ocorre quando registros de tamanho variável são inseridos e excluídos, deixando

Temas relacionados