O que é um banco de dados, um SGDB e quais as diferenças?

Banco de dados

O que é um banco de dados?

Um banco de dados é uma Uma coleção de dados com relacionamentos entre si.

  • Uma representação de um microuniverso (informações sobre um tópico específico. Ex: clientes).
  • Pode ser uma complexidade e tamanho infinitos.
  • Precisa ser constantemente atualizado para refletir às mudanças do mundo real.

 

 

O que é um SGDB?

  • Def: Sistema Gerenciador de Banco de Dados
  • Programa que auxilia a: definição, construção, manipulação e compartilhamento do banco.
  • Responsável pelo controle de acesso ao banco
  • As aplicações interagem com o SGDB, que por sua vez realiza a consulta ou transação no banco e devolve essas informações.
  • Camada de abstração para acesso das aplicações.

Etapas para a construção de um banco de dados

Definição: especificação da estrutura dos registros (CREATE TABLE …).

Manipulação: consulta e atualização dos dados. Essas operações são realizadas através da linguagem SQL.

Vantagens do banco de dados

  • Centralização dos dados em um local só
  • Remoção de redundância no banco de dados (informações repetidas em locais diferntes)
  • Acesso e processamento simultâneo de atualizações (multiusuario)

Universalidade de um SGDB

  • Funciona para qualquer banco de dados

O SGDB do MySQL vai funcionar para QUALQUER banco de dados MySQL, visto que utilizará os metadados sobre as tabelas para manipulá-las

  • O SGDB funciona como uma abstração para os programas que acessam o banco de dados
  • As aplicações não precisam conhecer a estrutura de como os dados são armazenados, somente os comandos do SGDB que servem como interface
  • A independência dos dados em relação à aplicação fornece uma flexibilidade ímpar durante a adição de novos dados no banco
  • É possível definir rotinas (PROCEDURES) no banco responsáveis por realizar alguma operação nos dados e retornar um resultado

Ex: media_mensal -> aplicação chama o procedimento e o banco se preocupa em buscar os resultados.

Atores e responsabilidades

Administradores (DBA): responsável pelo controle de acesso, disponibilidade e correção de falhas no banco de dados.

Projetista: responsável por definir a melhor estrutura e forma para armazenar os dados da aplicação.

Usuário: são as pessoas que precisam de acessar os dados armazenados para desempenhar suas funções. Incluem gerentes, engenheiros de software, atendentes e etc. Cada um com suas necessidades e níveis de acesso específicos.

Vale notar que nem todos eles precisam conhecer o SGDB, dependendo do nível, podem interagir através de interfaces projetadas e restritas ao uso específicos no qual são responsáveis.

Vantagens de um banco de um SGDB

Eliminação de redundância: elimina a necessidade de dados duplicados, visto que os dados podem ser referenciados entre as diversas aplicações. Para analisar e remover essas inconsistências, técnicas de normalização de dados podem ser utilizadas.

Controle de acesso: é possível definir quais operações e dados um determinado usuário do banco de dados é capaz de realizar. Com isso, o Administrador (DBA) pode ter um controle preciso dos acessos aos dados.

Armazenamento de estrutura de dados: alguns bancos de dados possuem suporte a conversão automática de estruturas de dados da linguagem para objetos no banco.

Ex: armazenar um struct de c dentro do banco chamando uma função.

Otimizações de busca: possuem técnicas como índices e cache para retornar os dados de forma mais rápida.

Backup e recuperação: os SGDB possui ferramentas para recuperação de dados em casos de falhas e a garantia de que uma operação foi finalizada corretamente, através das transações.

Diversas interfaces com o usuário: a grande parte dos SGDBs possuem bibliotecas e interfaces para implementação em múltiplas linguagens de programação, além de interfaces gráficas para interação com os dados.

Relacionamento entre dados: possibilita a criação e modificação dos relacionamento entre dados inter-relacionados.

Restrições de integridade: pode-se restringir os dados a serem adicionados.

  • Restrição de tipo: integer, varchar, char
  • Integridade referencial: são aceitas apenas vendas de produtos cadastrados previamente.

Em resumo

  • Padronização: imposição de padrões dentro do próprio banco para evitar erros e garantir a normalização.
  • Redução no desenvolvimento e manutenção de aplicações: quando o banco de dados está corretamente adequado e configurado, torna-se muito mais simples desenvolver aplicações para manipular e consumir esses dados.
  • Flexibilidade: grande parte dos SGDB modernos permite alterações na estrutura do banco sem perda de dados previamente cadastrados. Essa funcionalidade é especialmente útil quando trata-se da implementação de novas funcionalidades da aplicação, mantendo recontrocompatibilidade com as versões anteriores.
  • Informações atualizadas: quando um usuário atualiza algo, essa mudança já está disponível para toda a base e os outros usuários acessando a aplicação.
  • Escala: oferece a possibilidade de centralizar o processamento dos dados em uma máquina, que pode ser focada nesse tipo de operação para entregar o melhor desempenho possível para as consultas da empresa.

 

Bibliografia:

Elmasri, Ramez; Navathe, Shamkant B. (2010) Sistemas de Bancos de Dados. Addison-Wesley, 6a edição em português.

Caso tenha interesse em adquirir o livro e apoiar o blog, clique no link abaixo. A cada compra recebo uma porcentagem e você estará me ajudando a criar mais conteúdos como esse. 😉