A abstração de dados permite que desenvolvedores e administradores exibam apenas os dados necessários para usuários front-end, pois não precisam ter acesso a um silo de dados inteiro. A abstração é usada em várias áreas do desenvolvimento de software, e a camada de dados de um aplicativo separa o banco de dados da interface do usuário. O objetivo é aproveitar melhor escalabilidade e menos refatoração durante as mudanças de infraestrutura.
O que é um DBMS?
Um sistema de gerenciamento de banco de dados (DBMS, Database Management System) é uma ferramenta usada como uma interface entre um usuário e os dados armazenados brutos. Usando um DBMS, os administradores podem visualizar dados armazenados em um banco de dados, atualizar ou inserir novos dados e executar consultas para recuperar dados. Os administradores também podem gerenciar itens do banco de dados, como procedimentos armazenados, acionadores, tabelas, índices e outros objetos. Um DBMS é frequentemente usado para criar o banco de dados e gerenciá-lo posteriormente.
Um exemplo de DBMS é o MySQL . MySQL é um banco de dados relacional, portanto, os administradores usam o DBMS para visualizar objetos de banco de dados, criar tabelas ou consultar dados. Um aplicativo usa o DBMS para consultar dados ou adicionar dados ao banco de dados. Como o MySQL é um banco de dados relacional, os dados são armazenados em tabelas com restrições em cada coluna para controlar o tipo de dados armazenados.
Outro exemplo de DBMS é o MongoDB . O MongoDB é um banco de dados de código aberto NoSQL que armazena dados não estruturados. Os dados são armazenados em documentos e os administradores podem armazenar qualquer número e tipo de itens no documento. Os administradores usam o DBMS MongoDB para gerenciar a estrutura do banco de dados e os aplicativos o usam para consultar e adicionar dados.
O que é abstração de dados?
A abstração de dados é uma função lógica em um aplicativo para separar os dados brutos do front end. Em termos simples, a camada de dados lida com a conexão ao banco de dados e a consulta do front-end. A abstração de dados permite que o aplicativo de front-end consulte dados, independentemente de onde os dados estejam armazenados. Os desenvolvedores podem trocar bancos de dados de back-end sem refatorar grandes seções do código para se conectar e trabalhar com um novo mecanismo de banco de dados.
Por exemplo, suponha que você use o MongoDB em desenvolvimento até que possa determinar o tipo de dados com os quais precisa trabalhar. Em seguida, você deseja usar o MySQL na produção. A camada de abstração de dados lida com a conexão ao banco de dados e consultas do MongoDB e do MySQL sem afetar a base de código front-end. Os usuários não estão cientes das mudanças nos mecanismos de banco de dados, mas ainda podem obter as informações necessárias.
Níveis de abstração de dados
A abstração de dados é um termo abrangente que lida com vários aspectos diferentes do gerenciamento de dados. Quando os desenvolvedores criam um aplicativo e trabalham com administradores, há três níveis de abstração: física, lógica e visualização. Veja uma breve explicação sobre esses níveis:
- Nível físico/interno: Esse nível engloba a infraestrutura para abrigar o banco de dados, incluindo as informações de rede para o servidor e a localização do servidor. Por exemplo, os componentes físicos podem ser uma VM na nuvem com CPU de nível médio e recursos de memória.
- Nível lógico/conceitual: A camada lógica é o código usado para se conectar à camada física. Ele contém a lógica para conexões, consultas e tratamento de erros. As camadas lógicas podem incluir código para conexão a vários bancos de dados, dependendo dos fatores de entrada.
- Visualizar/nível externo: O aplicativo de front-end permite que os usuários visualizem os dados. Esse nível de abstração é o mais distante do local de armazenamento de dados brutos, mas formata e apresenta os dados ao visualizador para que possam ser úteis.
Arquiteturas de banco de dados multicamadas
As camadas de abstração podem ser camadas lógicas integradas ao seu aplicativo, mas também podem estar localizadas em recursos fisicamente diferentes. O objetivo da abstração em vários níveis é facilitar muito a expansão de uma única camada sem afetar outras camadas. A arquitetura de vários níveis também é chamada de “arquitetura de vários níveis”, onde os administradores podem optar por ter vários níveis para cada componente no aplicativo.
É comum ter três camadas em uma arquitetura de vários níveis: apresentação, dados e aplicativo. Veja uma breve descrição dessas camadas:
- Camada de dados: Essa camada armazena os dados e executa o mecanismo de banco de dados. Pode ser em um servidor bare bones dedicado ou em uma máquina virtual. Os bancos de dados também podem trabalhar em clusters em um data warehouse com fluxos de dados complexos, dependendo do cenário do caso de uso.
- Camada de aplicativo: Essa camada lida com o aplicativo. Por exemplo, se o front end for um aplicativo da Web personalizado, um servidor da Web armazenará os arquivos do aplicativo e o executará. Os usuários se conectam a este servidor para executar o aplicativo.
- Camada de apresentação: A camada de apresentação é distinta da camada de aplicativo, embora pareça semelhante. As camadas de aplicativos têm a base de código e a lógica de aplicativos, enquanto a camada de apresentação é o que o usuário vê. Em um aplicativo da Web, a camada de apresentação é o CSS e o HTML usados para formatar e exibir o código do aplicativo para o usuário.
Quais são os benefícios da abstração de dados?
Separar camadas de dados do aplicativo de front-end permite a expansão granular de recursos. As alterações na camada de dados também não afetariam o front-end, portanto, a abstração de dados limita a refatoração do código quando outro mecanismo de banco de dados é usado ou a camada de dados muda de local.
Por exemplo, digamos que sua organização decida mover o banco de dados para a nuvem de locais locais. Somente a camada de dados precisaria mudar e nenhuma alteração no código do aplicativo front-end seria necessária. Os administradores podem dimensionar recursos para a camada de dados sem a necessidade de dimensionar recursos para a camada de aplicativos, se não for necessário.
Conclusão
Em um aplicativo corporativo, ter uma camada de abstração de dados para se conectar ao seu DBMS permite expandir ou reduzir. Você também pode fazer alterações na arquitetura da camada de dados em sua arquitetura sem muitas alterações de código em sua base de códigos. Você pode usar vários mecanismos de banco de dados ou mover seu banco de dados para um novo local sem muita sobrecarga.
Ao planejar sua arquitetura de abstração de dados, confira o Pure Storage ® FlashArray. Para armazenamento na nuvem, confira o armazenamento em bloco na nuvem da Pure Storage.