Sistema Gerenciador de Banco de Dados#
Até a década de 70, era comum que o sistema de informação fosse responsável por gerenciar sua base de dados, ou seja, possuir rotinas de armazenamento e recuperação. Porém, existem vários desafios para realizar essas rotinas de modo seguro e eficiente. Desenvolver essas rotinas exigiam muito tempo do desenvolvimento que poderia ser direcionado a um problema específico de uma dada empresa. Como armazenar e recuperar dados era uma necessidade comum, logo surgiram sistemas específicos para essas tarefas denominados de sistemas gerenciadores de banco de dados (SGBD).
Em geral, o sistema gerenciador de banco de dados (SGBD) é um software que controla banco de dados, e, por sua vez, é uma estrutura computacional que compartilha e integra dados. Um sistema de banco de dados é composto de um conjunto de metadados, que armazena informações sobre os elementos por meio dos quais dados do usuário são integrados e gerenciados 1.
Uma engine (mecanismo) é a parte do sistema gerenciador de banco de dados que realmente armazena e recupera dados. Na maioria das vezes, o sistema possui uma interface de programação (API) que permite o controle direto do motor, sem a interação com a interface do
usuário do SGBD.
Um sistema gerenciador de banco de dados como uma coleção de programas que permite aos usuários criar e manter um banco de dados. Ele facilita o processo de definição, construção, manipulação e compartilhamento de bancos de dados entre diversos usuários e aplicações. Outras funções e vantagens de usar um sistema gerenciador de banco de dados incluem:
Restringir acesso não autorizado, como são usados em ambiente multiusuário, o SGBD funciona geralmente como servidor e permite criar diferentes níveis de usuário e acesso.
Tornar as consultas mais eficientes, pois por serem especialistas esses sistemas tendem a possuir todo um conhecimento acumulado através de algoritmos eficientes para armazenar e consultar dados.
Backup e recuperação, os sistemas normalmente possuem utilitários que ajudam no processo de criar e recuperar backup.
Controlar a redundância, pois permitem relacionar os dados de modo a evitar esse problema.
Representar relacionamentos complexos inclui diversos tipos de relacionamentos.
Impor restrições de integridade, após definido um esquema com os relacionamentos, pois esses sistemas têm mecanismos que garantem a integridade dos dados.

Alguns gerenciadores de banco de dados dão suporte à manipulação de dados espaciais, sendo referidos como banco de dados espaciais (ou geográficos). Dessa forma, um banco de dados espacial é um sistema que oferece tipos de dados espaciais, uma linguagem de consulta que suporta operações espaciais e fornece métodos de indexação espacial.2
O banco de dados geográficos é um importante componente dos sistemas de informação geográfica, são os sistemas que realizam o tratamento computacional de dados geográficos, sendo um sistema imprescindível para as atividades de geoprocessamento. O banco de dados geográfico ou espacial é destacado como o componente base para a arquitetura de um sistema de informação geográfica.
ATENÇÃO!
Vale destacar que uma pasta organizada com seus arquivos shapefiles não define um banco de dados geográficos.
-
ROB, P.; CORONEL, C. Sistema de banco de dados: projeto, implementação e gerenciamento. São Paulo: Cengage Learning, 2011. cap.1, p. 6-10.↩︎
-
GÜTING, RALF HARTMUT. An introduction to spatial database systems. The VLDB Journal—The International Journal on Very Large Data Bases, v. 3, n. 4, p. 357-399, 1994. ↩︎
Arquitetura dos gerenciadores de bancos de dados#
Os gerenciadores de banco de dados, como outros sistemas, foram implementados inicialmente através de uma arquitetura centralizada, onde todo o processamento ocorria em grandes computadores denominados de Mainframes. Nela, os usuários tinham acesso a esses sistemas através de terminais burros, que eram apenas dispositivos de entrada e saída de dados equipados como monitores e teclados conectados ao computador central.
Arquitetura SGBD Centralizada. |
---|
Com a redução dos preços, os terminais foram substituídos por computadores que agora eram capazes de realizar parte do processamento. Desse modo, foi possível migrar para a arquitetura cliente/servidor. Essa é a arquitetura utilizada pelos atuais sistemas gerenciadores de banco de dados como o PostgreSQL.
Essa arquitetura não é exclusiva para gerenciadores de banco de dados, mas é usada em diversos outros sistemas que usamos atualmente,
como a web, correio eletrônico, impressoras, sincronização de arquivos entre outros. Quando digitamos um endereço em um navegador, que é uma aplicação cliente, é enviado uma requisição a um recurso em um computador servidor que está localizado naquele endereço. O mesmo ocorre com os gerenciadores de banco de dados.
Note que nessa arquitetura não é obrigatório que o cliente e o servidor
estejam em computadores distintos. Veremos exemplificações onde serão apresentados alguns tutoriais onde o cliente e servidor são instalados no mesmo computador. Em ambientes institucionais e corporativos é mais comum que exista um computador que irá centralizar os dados para serem acessados por diversos usuários.
Arquitetura Cliente/Servidor em 2 camadas. |
---|
Modelos de Banco de dados#
Além de classificar os gerenciadores de banco de dados pela arquitetura, é comum usar como base a forma que eles organizam a informação. Os primeiros SGBDs organizavam os dados geralmente em forma de árvores (modelo hierárquico) ou estruturas de rede (arestas e vértices). Atualmente, o modelo mais utilizado é o relacional (SGBR-R), que surgiu com base na álgebra relacional proposta pelo pesquisador da IBM Ted Codd, onde ele propôs conceitos como relações, tuplas e atributos. Nesse modelo, um banco é representado como uma coleção de tabelas, denominadas também de relações.
Estrutura de uma relação. |
---|
Com a popularização das linguagens orientadas a objetos, esperava-se que os gerenciadores de banco de dados suportassem os conceitos desse paradigma, como herança, composição e agregação. Elmasri e Ramez1 definem os bancos de dados orientados a objetos como aquele que lida com objetos, suas propriedades e operações. Os objetos com a mesma estrutura e comportamento pertencem a uma classe, e as classes são organizadas em hierarquias. As operações de cada classe são especificadas com procedimentos pré definidos, chamados métodos.
Exemplo diagrama de classe. |
---|
Os sistemas de banco de dados orientados a objetos não se tornaram populares, porém eles influenciaram os sistemas conhecidos como objeto-relacional (SGBR-OR) ou relacional estendido. Essa nova família de sistemas permite a criação de tipos de dados complexos, que vão além dos tipos convencionais como texto, número e datas, mantendo a compatibilidade do modelo relacional e, sendo assim, muito mais fácil a migração. Um exemplo de sistema gerenciador de banco de dados objeto-relacional é o PostgreSQL.
Os bancos de dados relacionais e os objeto-relacionais são predominantes, mas atualmente têm surgido algumas alternativas a esse modelo que estão sendo agrupados com a denominação de banco de dados não relacional, ou NoSQL. Esses sistemas agrupam as informações baseados em documentos, grafos, chave valor, triplas entre outros modelos. Inclusive, alguns deles possuem algum suporte para armazenamento e consulta de dados espaciais. Um exemplo é o mongoDB que permite armazenar dados no formato GeoJSON, como no fragmento a seguir:
{
type: "MultiPolygon",
coordinates: [
[ [ [ -73.958, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.9814, 40.7681 ], [ -73.958, 40.8003 ] ] ],
[ [ [ -73.958, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.958, 40.8003 ] ] ]
]
}
-
ELMASRI, RAMEZ; NAVATHE, SHAMKANT B. Sistemas de Banco de Dados. 4. ed. São Paulo, Pearson Addison Wesley, 2005. ↩︎