Conceitos Fundamentais de Arquivos e Bancos de Dados
Classificado em Computação
Escrito em em português com um tamanho de 9,63 KB
Dados: informações que um computador armazena e registra.
Campo: peça discreta de informação em um registro.
Registro: conjunto de informações relacionadas a um produto, evento ou pessoa. Um arquivo é um conjunto de registros.
Arquivo: conjunto de informações relacionadas. Esta informação é armazenada como um arquivo.
Consulta (Query): busca de um registro específico ou uma solicitação para selecionar os registros que atendam a um conjunto de critérios. Há consultas de seleção, exclusão, criação de tabela e atualização.
Relatório: lista de campos selecionados e registros em um formato fácil de ler. Ordenados.
Conceito de Arquivo
Um arquivo é uma riqueza de informações estruturadas no mesmo item, tratado como uma unidade de armazenamento. Seu formato e tipo de arquivo determinam como interpretar as informações contidas nele, pois é apenas um conjunto de 0s e 1s. Os arquivos de banco de dados contêm registros homogêneos com informações de cada objeto de banco de dados. Cada pedaço de informação em um registro é chamado de campo.
Tipos de Arquivo Permanente
Arquivos permanentes (cuja vida útil é tão longa, pelo menos, quanto a aplicação que os utiliza).
Arquivos Mestre (Master Files)
Contêm o estado atual dos dados relevantes para a aplicação.
Arquivos Constantes
Seus dados não são alterados, somente consultados.
Arquivos Históricos
Mantêm um rastreamento dos valores anteriores dos arquivos.
Arquivos Temporários
Arquivos temporários (criados e apagados durante a execução da aplicação).
Arquivos Intermediários
Os resultados são utilizados por outra aplicação. Salvos durante o processo.
Arquivos de Manobra
Dados armazenados na memória principal que não mudam.
Arquivos de Saída
Dados a serem enviados para um dispositivo de saída. Salvos no dispositivo.
Operações com Arquivos de Dados
- Criação e exclusão (marcam o ciclo de vida de um arquivo).
- Alteração do design ou estrutura do banco de dados.
- Modificação, inserção e exclusão de registros.
- Recuperação da informação (consulta).
- Manutenção:
- Reparos (verificar e corrigir erros nos registros, se possível).
- Compactação de arquivos.
Organização de Arquivos de Dados
Sequencial
Mantém registros contíguos (elimina lacunas produzidas por exclusão). Só pode ser acrescentado ao final. A consulta requer a leitura dos registros precedentes. Operações de atualização reescrevem o arquivo inteiro.
Encadeado (Acorrentado)
Todos os registros contêm um ponteiro para o próximo. A inserção é feita no final. A alteração não reescreve o arquivo. A exclusão deixa espaço no arquivo de dados. A consulta ainda é sequencial.
Indexado
O arquivo de índice é processado sequencialmente e cada entrada do índice armazena o endereço onde a informação do registro foi salva. A exclusão é lógica (não libera o espaço ocupado pela informação do registro).
Direta ou Aleatória
Podemos calcular a posição do registro no arquivo com base no endereço.
- Roteamento Direto: Usa uma fórmula numérica.
- Endereçamento por Hash: O endereço é calculado por uma função hash.
Seleção e Pesquisa
Em um arquivo, a pesquisa pode ser ordenada ou não. A gestão sequencial não permite busca direta.
Algoritmos: Direta, Troca, Fusão, Classificação Rápida (Quick Sort).
Outros aspectos a considerar: Manutenção (Atualizações, ordenação, compactação...). Se há muita redundância, a manutenção será cara.
Política de Privacidade e Segurança: Restringir informação a pessoas não autorizadas, evitar alterações indesejadas.
Limitações dos Sistemas de Arquivos Tradicionais
- Redundância de dados.
- Pobre controle e capacidades de manipulação dos dados.
- Excessivo esforço de programação.
Características dos Dados
- Não devem mudar com o tempo (exceto dados efêmeros).
- Estruturados, para facilitar o acesso aos dados.
- Operacionais e transacionais, que podem ser usados pelos operadores para obter certos resultados.
- Com um significado específico (sentido semântico).
- Completos, devem existir na realidade.
Sistema de Gerenciamento de Banco de Dados (SGBD)
É um conjunto coordenado de programas, linguagens e procedimentos que nos fornecem os meios para descrever, recuperar e manipular dados, mantendo sua confidencialidade, integridade e segurança.
Estrutura
Usuário <-> Programa de Aplicação <-> Gerenciador do SGBD <-> Banco de Dados (DB)
Funções
- Descrição ou Definição: Especifica os dados que estão na estrutura do DB e as relações entre eles.
- Manuseio: Permite encontrar, eliminar ou modificar os dados no banco.
- Uso: Fornece as interfaces necessárias para permitir aos usuários se comunicar com o banco de dados.
Características Básicas de um Banco de Dados
- Integridade: Unificação de vários arquivos separados pode ser vista como um banco de dados, total ou parcialmente, eliminando a redundância entre eles.
- Compartilhamento (Sharing): As partes individuais do DB devem ser capazes de ser compartilhadas entre diferentes usuários, mantendo a integridade dos dados.
- Restrições de Segurança e Confidencialidade: É necessário criar uma hierarquia de acesso para manter o acesso seguro aos dados, permitindo ou proibindo que usuários executem determinadas ações no banco de dados.
- Várias Exibições de Dados: Deve ser possível recuperar a informação desejada do banco de dados no formato exigido (listas, gráficos, etc.).
- Proteção contra Falhas: É necessário verificar a integridade dos dados em todos os momentos e criar backups "just in case".
- Interface de Alto Nível: Deve ser possível acessar e modificar (ex: SQL).
Vantagens dos Bancos de Dados
Em relação aos dados:
- Independência dos dados em relação aos programas que os tratam e vice-versa.
- Melhor disponibilidade dos dados.
- Maior eficiência de armazenamento, codificação e entrada.
Em relação aos resultados:
- Maior consistência.
- Maior valor informativo.
- Melhoria e mais documentação padronizada das informações.
Em relação aos usuários:
- Acesso mais rápido e fácil para usuários finais.
- Mais facilidades para compartilhar dados por todos os usuários.
- Maior flexibilidade para atender às demandas em mudança.
Desvantagens dos Bancos de Dados
Em relação à implementação/execução:
- Custo elevado em software e hardware.
- Ausência de padrões (em alguns casos).
- Implementação longa e difícil a médio prazo.
- Rentabilidade (pode demorar a ser percebida).
Em relação aos usuários:
- Necessidade de pessoal especializado.
- Lacuna entre a teoria e a prática.
Arquitetura de Bancos de Dados
(3 níveis de abstração)
Nível Externo
O mais alto nível. Contém esquemas externos que descrevem o conjunto de dados que as necessidades de cada usuário ou grupo. Os mesmos dados podem ter diferentes visões.
Nível Conceitual
Possui um arcabouço conceitual que descreve a estrutura geral do DB com estas características:
- Independente da estrutura física.
- Descreve as entidades, atributos, relacionamentos e restrições.
- É definida a partir do modelo de dados lógico.
Nível Interno (ou Físico)
Descreve a estrutura de armazenamento físico do banco de dados. Influencia a eficiência do banco de dados.
Modelos de Dados
(3 tipos)
Modelos Lógicos Baseados em Objeto
Modelos de Entidade-Relacionamento e Orientados a Objetos.
Modelos Lógicos Baseados em Registro
Usados para especificar a estrutura geral do banco de dados lógico. O mais usado é o Relacional. Os modelos Hierárquico e Rede estão em declínio.
- Modelo de Rede: Constituído por coleções de registros relacionados com ponteiros ou arestas em grafos sem restrições.
- Modelo Hierárquico: Os registros são organizados como coleções de árvores. Não permite relações N:M. O mesmo registro não pode pertencer a dois conjuntos.
- Modelo Relacional: As informações são armazenadas em tabelas onde as linhas têm a mesma estrutura (campos).
Modelos Físicos de Dados
Modelos de dados baseados em arquivos antigos. São pouco usados como um modelo conceitual do banco de dados.
O Modelo Entidade-Relacionamento (ER)
É baseado em uma percepção do mundo composto de objetos, chamados entidades, e as relações entre eles. Entidades diferem em seus atributos.
Elementos do modelo ER:
- Entidade: Objeto sobre o qual se deseja armazenar informações no banco de dados e que deve ser caracterizado.
- Relacionamento: É a associação ou correspondência entre as entidades.
Itens do Relacionamento:
- Nome: Identifica a relação e através da qual é referenciada.
- Grau: Número de tipos de entidades envolvidas em um relacionamento.
- Cardinalidade: Máxima / Mínima.