Objetivos e Arquitetura de um Banco de Dados
Objetivos de uma base de dados
Um banco de dados busca atender diversos objetivos essenciais para sistemas de informação. Entre eles:
- Independência entre dados e aplicações. Isso inclui independência física (é possível modificar o esquema físico sem afetar a camada lógica) e independência lógica (se o esquema conceitual for alterado, não é necessário modificar os programas de aplicação).
- Redundância mínima de informações: reduzir ao máximo a repetição de dados para evitar inconsistências e facilitar a manutenção.
- Mecanismos de monitoramento para controlar operações no banco de dados; esse processo pode ser conseguido por mecanismos de auditoria (por vezes chamados de "espiões").
- Versatilidade nas possibilidades de pesquisa, fornecendo ao usuário informações com diversos critérios de consulta.
- Segurança: proteção de dados contra usuários não autorizados ou mal-intencionados.
- Integridade das informações: garantir resistência a falhas de hardware, defeitos em código de aplicações, atualizações incompletas e entradas incorretas ou inválidas.
- Backup e recuperação: fornecer mecanismos para realizar cópias de segurança e recuperar informações.
- Desempenho: obter um tempo de resposta suficientemente baixo para evitar a frustração do usuário. O tempo de resposta é o intervalo entre a solicitação do usuário e o recebimento da primeira resposta.
- Satisfação de requisitos do público: resolver os problemas colocados pelos usuários ou pelo público-alvo.
Definição: Um banco de dados é um conjunto de dados armazenados de forma organizada e estruturada em um suporte de informação, manipulados por um computador.
Arquitetura de um banco de dados
Um dos objetivos de um sistema de banco de dados é prover o máximo de abstração possível: ocultar detalhes de como os dados são organizados e armazenados.
Nível interno
Representa a forma mais próxima do armazenamento físico dos dados. Está associado ao esquema interno, que descreve como os dados são armazenados no computador, especificando arquivos, organização, acesso a registros, tipos e comprimentos de registros, campos, chaves e índices.
Nível conceitual
Descreve o esquema conceitual, também conhecido como esquema do banco de dados. Define todos os dados que farão parte do sistema, obtidos a partir das exigências dos usuários, independentemente de como e onde os dados são armazenados. Inclui elementos de dados (campos), dados compostos (registros), relações entre registros, regras de negócio e outras restrições.
Nível externo
Reflete a visão particular de um usuário ou grupo de usuários do banco de dados. É descrito pelo esquema externo, ou conjunto de visões individuais do banco de dados. Cada visão é chamada de subesquema ou visão. O subesquema define a parte do esquema conceitual de interesse, sem se preocupar com detalhes de armazenamento. Um subesquema pode ser compartilhado por vários usuários, e cada usuário pode ter vários subesquemas. Ao criar um subesquema, é possível combinar diferentes campos de registros, omitir campos, alterar a ordem dos campos ou adicionar campos calculados a partir dos dados do esquema conceitual.