Conceito e História
Conceito
Não se pode conceituar um SGBD (Sistema de Gerenciamento de Banco de Dados), sem antes definir o que é um Banco de Dados. Basicamente, todos os programas que precisam armazenar dados devem possui um banco de dados com as informações organizadas de maneira a se relacionar quando necessário, para uma busca. Programas ficam armazenados nos mais diversos dispositivos, quando os executamos, ficam em uma memória temporária, na medida que encerramos o programa, todos os dados são limpos. É aí que entra o banco de dados. Os programas possuem um local onde os dados ficam armazenados, assim quando o programa está sendo executado, os dados apresentados são buscados, armazenados ou modificados diretamente do banco de dados.
O que difere os SGBD’s é o conjunto de requisitos e funcionalidades que eles oferecem, como segurança, integridade, controle de concorrência e recuperação/tolerância a falhas.
A origem dos Bancos de Dados
Os primeiros computadores surgiram na década de 50, para uso militar e universitário. No entanto, nessa época, todos os dados eram guardados em papel, e até hoje, em alguns lugares se faz uso do papel como forma de armazenamento de dados, apesar de ser uma forma muito ultrapassada.
As primeiras formas de registros informatizados foram surgindo com o passar dos anos, a primeira foi os arquivos sequenciais, onde todos os documentos que antes estavam no papel, foram sendo digitalizados um atrás do outro, formando uma sequência de arquivos, onde, se a pessoa quisesse acessar algum arquivo, o arquivo seria lido da primeira digitalização até encontrar a desejada, de forma sequencial. A forma mais avançada de armazenamento veio a ser os arquivos de acesso direto, onde se por exemplo você precisasse acessar o registro X, bastava ir diretamente ao registro X.
Na década de 60, o departamento de defesa dos Estados Unidos decidiu criar uma maneira de armazenar dados de uma forma mais segura e inteligente, logo, criou um evento que ficou conhecido como Codasyl, reunindo militares, empresas e universidades. Como resultado dessa união, surgiu o Banco de Dados, e também a linguagem de programação Cobol.
Desde então, os Bancos de Dados passaram por evoluções, a IBM propôs o modelo hierárquico, basicamente os dados seriam armanezados, e haveria uma hierarquia entre os dados. Depois, surgiu o modelo em rede, onde os dados foram interligados em uma rede inteligente, sem hierarquia entre os dados. Contudo, surgiu, da necessidade de maior relação entre os dados armazenados, o modelo relacional, que é usado até os dias de hoje. Surgiram modelos mais recentes, como os modelos orientados a objeto, mas ao se iniciar um estudo de Banco de Dados, costuma-se partir do modelo relacional.
Funções de um SGBD
Segurança
- Talvez a principal funcionalidade de um SGBD. Todos eles devem possuir regras para restringir e garantir o acesso somente de pessoas autorizadas, com o acesso ao banco e qual o nível de acesso que o usuário irá possuir (Leitura, escrita, alteração, exclusão, etc). Outro quesito que um SGBD possui e faz parte da segurança, são as cópias e a recuperação de dados em caso de falhas, permitindo que informações sejam recuperadas a partir de outro local. Grandes corporações possuem backups de seus bancos de dados até em países diferentes para garantir que nenhuma catástrofe destrua os dados armazenados.
Controle de Redundâncias
- Vamos pensar em um sistema rodando em diversos computadores, este sistema possui os dados armazenados em um único local. O Controle de redundâncias organiza esse fluxo, para que dados inconsistentes não sejam armazenados, uma série de regras são criadas para que os dados sejam armazenados corretamente e não tenha dados duplicados ou inválidos.
Acesso
- O controle de acesso irá garantir também a integridade dos dados, pois o SGBD deverá possuir a possibilidade de configurar níveis de autoridade de cada usuário. Enquanto uns poderão ter acesso total, outros poderão ter restrições só liberando alguma das funcionalidades que são a leitura, escrita, atualização, etc; ou até mesmo liberar o acesso a um conjunto restrito de dados.
Interfaceamento
- Deve possui uma forma de acesso gráfico, em linguagem natural, menus de acesso e em SQL. Podendo ser acessada diretamente, não sendo necessário passar pela aplicação que há utiliza.
Esquematização
- Normalmente em um banco de dados as tabelas se relacionam entre si, um SGDB deve fornecer mecanismos que compreendem estes relacionamentos. Deve compreender por exemplo, um diagrama de classes UML.
Integridade
- Um item que também entra em segurança, o controle da integridade deverá impedir que aplicações ou acessos que possam comprometer a integridade dos dados sejam feitos. Deverá garantir o acesso somente de pessoas autorizadas e ainda de acordo com os níveis de acesso.
Backups
- Última característica e uma das mais importantes. Cópias de segurança são imprescindíveis para a segurança de qualquer informação e em um SGBD isto é mais evidente. Pois estamos sujeitos a falhas tanto de hardware quanto de software e através de mecanismos previamente ajustados podemos recuperar as informações minimizando as perdas.
Modelos
Modelo hierárquico
- Os dados são classificados hierarquicamente, de acordo com uma arborescência descendente. Este modelo utiliza apontadores entre os diferentes registros. Trata-se do primeiro modelo de SGBD.
Modelo rede
- Como o modelo hierárquico, ele utiliza cursores para os registros. Contudo, a estrutura já não é necessariamente arborescente no sentido descendente.
Modelo relacional
- Os dados são registrados em quadros de duas dimensões (linhas e colunas). A manipulação destes dados é feita de acordo com a teoria matemática das relações.
Modelo dedutivo
- Os dados são representados sob a forma de tabela, mas a sua manipulação é feita através do cálculo de predicados.
Modelo objeto
- Os dados são armazenados sob a forma de objetos, isto é, de estruturas chamadas classes, que apresentam os dados. Os campos são instâncias destas classes.
A partir do fim dos anos 1990, os bancos de tipo relacional se tornaram os bancos de dados mais comuns, representando cerca de 75% dos bancos existentes.
Vantagens e Desvantagens
Vantagens
- No item que diz respeito as funções de um SGBD, foram mostradas funcionalidades que agregam ao uso de um Sistema Gerenciador de Banco de Dados, como a segurança, o controle de redundância, o acesso, backups, entre outros.
Quando não utilizar um SGBD
Em algumas situações, o uso de um SGBD pode representar uma carga desnecessária aos custos quando comprado à abordagem processamento tradicional de arquivos como por exempo:
- Alto investimento inicial na compra de software e hardware adicionais;
- Generalidade que um SGBD fornece na definição e processamento de dados;
Problemas adicionais podem surgir caso os projetos de banco de dados ou os administrdores de banco de dados não elaboram os projetos corretamente ou se as aplicações não são implementadas de forma apropriada. Se o DBA não administrar o banco de dados de forma apropriada, tanto a segurança quando a integridade dos sistemas podem ser comprometidas. A sobrecarga causada pelo uso de um SGBD e a má administração justificam a utilização da abordagem processamento tradicional de arquivos em casos como:
- O banco de dados e as aplicações são simples, bem definidas e não se espera mudanças no projeto;
- A necessidade de processamento em tempo real de certas aplicações, que são terrivelmente prejudicadas pela sobrecarga causada pelo uso de um SGBD;
- Não haverá múltiplo acesso ao banco de dados.
Alguns exemplos de SGBDs
Pago
- Oracle
- IBM DB2
- dBase
- Microsoft SQL Server
Gratuito
- MySQL
- MariaDB
- PostgreSQL
- Firebird