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. 😉