Independência de dados em DBMS: física e lógica com exemplos
⚡ Resumo Inteligente
A independência de dados é uma propriedade dos SGBDs (Sistemas de Gerenciamento de Banco de Dados) que permite que o esquema em um nível seja alterado sem forçar uma mudança no nível superior seguinte. Ela se apresenta de duas formas, física e lógica, e mantém os dados separados dos programas que os utilizam.

O que é independência de dados em um SGBD?
A independência de dados é definida como uma propriedade de um SGBD (Sistema de Gerenciamento de Banco de Dados) que permite alterar o esquema do banco de dados em um nível do sistema sem exigir alterações no esquema do nível superior seguinte. A independência de dados ajuda a manter os dados separados de todos os programas que os utilizam.
Você pode usar esses dados armazenados para computação e apresentação. Em muitos sistemas, a independência de dados é uma função essencial para os componentes do sistema.
Tipos de independência de dados
In DBMS Existem dois tipos de independência de dados:
- Independência de dados físicos.
- Independência lógica de dados.
Ambos os tipos se baseiam no design em camadas de um banco de dados, portanto, é útil revisar esses níveis primeiro.
Níveis de um banco de dados
Antes de aprendermos sobre independência de dados, é importante relembrar os níveis de um banco de dados. Um banco de dados possui três níveis, conforme mostrado no diagrama abaixo:
- Físico/Interno
- Conceitual
- Externo

Essas são as mesmas camadas descritas em detalhes em esquemas de SGBDConsidere o exemplo de um banco de dados universitário. Nos diferentes níveis, a implementação se parece com isto:
| Tipo de Esquema | Implementação |
|---|---|
| Esquema Externo |
Vista 1: Informações do curso (cid:int, cname:string) Vista 2: informações_do_aluno(id:int, nome:string) |
| Esquema conceitual |
Students(id: int, name: string, login: string, age: integer) Courses(id: int, cname: string, credits: integer) Enrolled(id: int, grade: string) |
| Esquema Físico |
|
Independência de dados físicos
A independência física dos dados permite separar o nível conceitual do nível interno ou físico. Ela possibilita fornecer uma descrição lógica do banco de dados sem a necessidade de especificar estruturas físicas. Comparada à independência lógica, a independência física dos dados é mais fácil de alcançar.
Com independência física, você pode alterar as estruturas ou dispositivos de armazenamento físico sem afetar o esquema conceitual. Qualquer alteração feita é absorvida pelo mapa.ping entre os níveis conceitual e interno. A independência física dos dados é alcançada pela presença do nível interno do banco de dados e pela transformação do nível conceitual para o nível interno.
Exemplos de mudanças sob independência de dados físicos
Devido à independência física, nenhuma das alterações abaixo afetará a camada conceitual:
- Utilizando um novo dispositivo de armazenamento, como um disco rígido ou uma fita magnética.
- Modificar a técnica de organização de arquivos no banco de dados.
- Mudando para diferentes estruturas de dados.
- Alterando o método de acesso.
- Modificando índices.
- Alterações nas técnicas de compressão ou algoritmos de hash.
- Alterar a localização do banco de dados, por exemplo, da unidade C para a unidade D.
Independência de dados lógicos
A independência lógica de dados é a capacidade de alterar o esquema conceitual sem alterar:
- Vistas externas.
- APIs ou programas externos.
Qualquer alteração feita é absorvida pelo mapa.ping entre os níveis externo e conceitual. Em comparação com a independência física dos dados, alcançar a independência lógica dos dados é um desafio.
Exemplos de alterações sob independência lógica de dados
Devido à independência lógica, nenhuma das alterações abaixo afetará a camada externa:
- É possível adicionar, modificar ou excluir um novo atributo, entidade ou relacionamento sem reescrever os programas de aplicação existentes.
- Unir dois registros em um só.
- Dividir um recorde existente em dois ou mais recordes.
Diferença entre independência de dados físicos e lógicos
| Independência de dados lógicos | Independência de dados físicos |
|---|---|
| Preocupa-se principalmente com a estrutura ou com a alteração da definição dos dados. | Principalmente preocupado com o armazenamento dos dados. |
| Difícil, pois a recuperação dos dados depende principalmente da estrutura lógica. | Fácil de recuperar. |
| Comparada à independência física, é difícil de alcançar. | Comparado à independência lógica, é fácil de alcançar. |
| Você precisa fazer alterações no programa do aplicativo se novos campos forem adicionados ou excluídos. | Uma alteração no nível físico geralmente não exige uma alteração no nível do programa aplicativo. |
| A modificação no nível lógico é significativa sempre que as estruturas lógicas do banco de dados são alteradas. | Modificações no nível interno podem ou não ser necessárias para melhorar o desempenho. |
| Preocupado com o esquema conceitual. | Preocupado com o esquema interno. |
| Exemplo: adicionar, modificar ou excluir um novo atributo. | Exemplo: mudanças nas técnicas de compressão, algoritmos de hash, dispositivos de armazenamento, etc. |
Importância da Independência de Dados
- Ajuda a melhorar a qualidade dos dados.
- Torna a manutenção do sistema de banco de dados mais acessível.
- Garante o cumprimento de normas e aprimora a segurança do banco de dados.
- Não é necessário alterar as estruturas de dados nos programas de aplicação.
- Permite que os desenvolvedores se concentrem na estrutura geral do banco de dados em vez da implementação interna.
- Reduz substancialmente a inconsistência do banco de dados.
- Permite fazer modificações no nível físico para melhorar o desempenho do sistema.
