Conceito de SGBD – Sistema de Banco de dados

Nessa aula, vamos falar sobre o conceito de SGBD (Sistema de Banco de dados). Em inglês, DBMS (Database Management System).

Inicialmente, vamos buscar auxílio nos autores referência na área de banco de dados:

Para Silberschatz,

Um sistema de gerenciamento de banco de dados (DBMS) é uma coleção de dados inter-relacionados e um conjunto de programas para acessar esses dados. (grifo nosso)

Para Date,

Um sistema de banco de dados é basicamente apenas um sistema computadorizado de manutenção de registros. (grifo nosso)

Segundo Navathe,

Um SGBD é uma coleção de programas que permite aos usuários criar e manter um banco de dados. (grifo nosso)

Da nossa parte, no alinhamos a Navathe, no sentido que o SGBD não se confunde com o banco de dados. Ou seja, o SGBD é composto por programas que irão atuar sobre o banco de dados. Contudo, note que, para Silberschatz, O SGBD, além do banco de dados em si, é formado por um conjunto de programas que gerenciam esses dados.

Assim, temos conceitos diferentes a depender do autor. Veja:

SGBD = PROGRAMAS + DADOS A SEREM GERENCIADOS (Silberschatz)

SGDB = PROGRAMAS (Navathe)

Quando falamos em gerenciamento de um banco de dados, estamos falando das operações de manipulação desses dados e as restrições de controle que devem ser impostas. Por exemplo, um SGBD deve fornecer uma maneira para que os dados sejam inseridos, apagados e atualizados em um banco de dados. Além disso, ele não deve permitir operações que gerem problemas de integridade na base de dados.

Note bem. Até esse ponto conseguimos identificar duas funções básicas de um SGBD:

  • Manipulação dos dados.
  • Restrições de Controle/Integridade.

Similar ao conceito de SGBD fornecido pelo Silberschatz, é o conceito de sistema de banco de dados dado por Navathe. Nesse caso, o autor afirma que Sistema de banco de dados é a união do SGBD com o banco de dados. Assim, temos:

SISTEMA DE BANCO DE DADOS = SGBD + BANCO DE DADOS (Navathe)

CESPE

(CESPE/Analista de Sistemas/SUFRAMA/2014) Um sistema gerenciador de banco de dados deve possuir restrições de integridade por meio do controle de relacionamento entre dois registros.

Certo.

As restrições de integridade são usadas para aplicar regras de negócios às tabelas do banco de dados. Por exemplo, uma chave estrangeira, cria uma integridade referencial entre duas tabelas. A chave estrangeira em uma deve ser chave primária de outra tabela. Se essa regra for desrespeitada, então temos uma violação de integridade referencial.

Manipulação dos dados

Como vimos, o banco de dados refere-se à coleção de dados em si. Contudo, essa coleção precisa ser criada na base de dados. Ou seja, precisamos carregar informações no banco de dados. Essa operação é conhecida como inserção. Ora, se inserimos dados também queremos recuperá-los. Ou seja, queremos ler os dados que foram gravados anteriormente no banco. Esse é uma operação de recuperação ou seleção de dados.

Além duas situações descritas, pode ser necessário apagar dados no banco de dados ou atualizar alguma informação. Por exemplo, atualizar o preço de um produto. Essas quatro operações são responsáveis pela manipulação dos dados.

Para realizar essas operações nos bancos de dados, usamos uma linguagem chamada de  DML (Data Manipulation Language).

Restrições de Controle/Integridade

Ao realizar operações no banco de dados, não podemos permitir que essas operações levem o banco a uma situação de inconsistência. Ou seja, devemos manter a sua integridade.

Esse controle também é feito pelo SGBD, por meio de restrições de controle. Por exemplo, imagine que o seu banco de dados armazena preços de produtos e um determinado comando de manipulação tenta inserir um preço negativo. Não existem preços negativos. Assim, o SGBD deve impedir que uma operação como essa seja executada.

Esse exemplo específico em que o banco verifica se um determinado tipo de dados pode ser inserido é chamada de restrição de domínio.

Controle de Acesso

Outras questões também são tratadas pelos SGBD’s, por exemplo, o controle de acesso aos dados. Ou seja, é responsabilidade do SGBD controlar quais usuários podem acessar os dados e quais operações estes usuários podem realizar. Essa última questão também é chamada de segurança do banco de dados. Assim, memorize que são funções do SGBD:

  • Permitir a manipulação dos dados (ler, inserir, apagar e atualizar dados)
  • Prover restrições de controle/acesso
  •  Evitar problemas de integridade

SGBD’s Comerciais

Espero que até aqui já esteja  claro que um banco de dados e um SGBD não são a mesma coisa. O SGBD pode ser um conceito mais amplo, como na visão do Silberchatz, que usa o conceito de banco de dados na sua definição. Por outro lado, na visão estrita do Navathe, com a qual nos alinhamos, o SGBD é um conjunto de programas apartado da base de dados (do banco de dados em si).

São exemplos de SGBD’s reais, ou seja, vendidos comercialmente ou disponibilizados gratuitamente:

  • MySQL
  • MariaDB
  • PostgreSQL
  • SQL Server
  • Oracle Database

(CONTEMAX – 2019 – Instrutor de Informática) “Uma coleção de dados inter-relacionados representando informações de um domínio específico”, essa é a definição de Bancos Dados dada por Henry F. Korth. Partindo desse princípio, destaque o único elemento abaixo que é um Banco de Dados.

A)Oracle.
B)Microsoft Publisher.
C)Apache OpenOffice.
D)SQL RedLine.
E)MyServer SQL.

Comentários:

A questão é ruim porque confundo o conceito de banco de dados com SGBD, mas dentre as alternativas a única que é um SGBD é o Oracle. Portanto, letra A.

Independência de dados

Um SGBD tem como vantagem fornecer uma independência entre os dados e programas.  O que isso quer dizer?

No passado, cada programador geria seu próprio conjunto de dados. Ou seja, era papel do programador lidar diretamente com os dados do seu programa.

Assim, ele tinha que desenvolver diversas rotinas de programação somente para lidar com esses dados. Não exista um programa específico para lidar com as questões de manipulação dos dados. Não exista o conceito de SGBD.

Esse tipo de abordagem tinha diversas desvantagens. A primeira delas é que o programador gastava muito tempo com código que não era propriamente útil. Ou seja, ele não estava criando nada de valor para o seu cliente. Acabava gastando horas e horas com a programação das estruturas que iriam armazenar os dados dos programas. Esse código era complexo e estava sujeito a diversos erros. Quanto mais arquivos seu programa tivesse que lidar, mais complexo esse gerenciamento se tornava por parte do programador. Além disso, nem todos os programadores tinham habilidades suficientes para lidar com algoritmos tão complexos de gerenciamento de dados.

Com a criação dos SGBD’s, toda essa parte do gerenciamento dos dados ficou sendo responsabilidade do SGBD. O programador não tinha mais que se preocupar com código específico de como tratar o armazenamento dos dados. Ele simplesmente precisava conhecer a interface para “falar” com o banco de dados. Ou seja, solicitar por meio de SQL (que é uma linguagem universal de consulta a banco de dados) o que ele gostaria que o banco fizesse.

Dessa forma, ocorre um desacoplamento dos dados e do código do programa. Dito de outra forma, temos uma independência entre os dados e os programas. Os programadores agora se preocupam somente com o código útil (programa em si). Já os dados serão gerenciados pelos SGBD’s.

Para deixar mais claro essa independência, vamos tomar um exemplo. Imagine que o setor do RH e o setor da contabilidade precisam desenvolver sistemas específicos. Considere também que tanto o RH quanto o setor de contabilidade precisem de informações sobre os empregados.

Na abordagem tradicional, o RH desenvolveria o seu programa e, junto com ele, o código necessário para acessar os arquivos com as informações sobre os empregados. Por sua vez, o setor de contabilidade faria o mesmo.

Assim, na prática, houve um esforço duplicado para desenvolver algoritmos  capazes de lidar com o conjunto de arquivos do RH e outro conjunto de algoritmos capazes de lidar com com conjunto de arquivos do setor da contabilidade. Além disso, como nos dois sistemas temos informações sobre os empregados, é muito provável que exista redundância de informação. Ou seja, os sistema estão acessando os mesmos dados em locais diferentes (arquivos diferentes). Isso pode gerar um risco de integridade das informações. Uma vez que um sistema pode atualizar os dados em seus arquivos e outro não fazer a mesma atualização.

Na abordagem com SGBD, o cenário muda drasticamente, pois os dados ficariam em um único local (no banco de dados). Caso o programa do RH ou da contabilidade precisassem dos dados, eles fariam uma consulta ao SGBD. E este entregaria as informações. Assim, os dados agora ficam separados (independentes) do código das aplicações. Além disso, não haveria necessidade de cada sistema desenvolver rotinas específicas para fazer consulta aos dados. Esse trabalho “duro” seria feito pelo SGBD.

CESPE

(CESPE/Técnico/FUB/2016) Em sistemas gerenciados de banco de dados, a independência dos dados refere-se à capacidade de modificar a estrutura lógica ou física do banco, sem a necessidade de uma reprogramação dos programas de aplicativos.

Certo.

O nível conceitual descreve quais dados estão de fato no banco de dados e quais são suas relações. Abaixo dele encontramos o nível físico. No nível físico, descrevemos como os dados estão realmente armazenados. É possível modificar o nível físico sem afetar o nível conceitual. Dessa forma, as aplicações continuam funcionado como antes sem necessidade de reprogramação.

(CESPE/Analista/MPOG/2015) O SGBD proporciona um conjunto de programas que permite o acesso aos dados sem exposição dos detalhes de representação e armazenamento de dados, por meio de uma visão abstrata dos dados, conhecida como independência de dados.

Certo.

Um SGBD fornece uma interface que permite que os programas/usuários tenham acesso aos dados por meio de comandos SQL. A forma como os dados são representados e armazenados é de responsabilidade do SGBD. Ele cria uma abstração para o programador. Essa abstração é chamada de independência de dados.

Sistema de Arquivos do Sistema Operacional

Um ponto importante aqui é perceber que o SGBD gerencia os dados. Não é papel do SGBD gerenciar o sistema de arquivos.

Quando estamos falando de sistemas de arquivos, estamos falando do conjunto de arquivos que existem no seu computador. Todos eles! Quem é responsável por esse gerenciamento é o sistema operacional

O sistema de arquivos é gerenciado pelo sistema operacional. Cada sistema operacional tem seu próprio sistema de arquivos. Por exemplo, no Windows, esse sistema de arquivos é o NTFS. No Linux, um dos sistemas de arquivos é o Ext4.

Note bem! Quando algo é escrito no disco rígido, é o sistema operacional que controla essa operação e não o SGBD. O SGBD está em uma camada superior. Ele controla o que é gravado no banco de dados em um nível mais abstrato.

Vamos deixar mais claro esse ponto. O SGBD é um programa como outro qualquer. Assim, ele é executado sobre um sistema operacional. Da mesma forma que você executa, por exemplo, o Word na sua máquina, você também executa o SGBD.

Toda vez que um arquivo tem que ser escrito no HD, é o sistema operacional que assume o controle e faz essa operação. Então quando um programa precisa salvar algo no disco, ele pede auxílio ao sistema operacional. Quando o sistema operacional faz isso, ele grava um conjunto de bytes no seu HD, mas não sabe exatamente o que aqueles dados significam.

O significado dos dados é dado pelo programa que fez o pedido. É nesse momento que entra, por exemplo, o SGBD. Então do ponto de vista lógico, é o SGBD que gerencia a gravação dos dados, mas quem gerencia efetivamente a gravação no HD (ou seja, no sistema de arquivos) é o sistema operacional.

Independência da Linguagem de Programação

Uma outra vantagem dos SGBD’s é que eles permitem que operações sobre os dados sejam definidas de maneira independente da linguagem de programação da aplicação.

Não importa a linguagem que o programador esteja usando para desenvolver o seu sistema, ele poderá fazer chamadas ao banco de dados usando consulta padronizadas pelo SQL. Assim, podemos enxergar o SGBD como um provedor de serviços. Ele provê o serviço de manipulação de dados para os programadores.

Vamos deixar esse último ponto mais claro também! Para desenvolver programas, os programadores usam linguagens de programação. Essas linguagens são usadas para dar as instruções para o computador. Existem muitas linguagens de programação. Por exemplo, Python, R, C, Java, C++, etc. Cada programador pode escolher a sua.

Contudo, para “falar” com o SGBD, é usada uma linguagem única chamada de SQL (Structured Query Language). O SQL não é uma linguagem de programação. Ela é classificada como linguagem de consulta.

Assim, não importa a linguagem de programação escolhida, pois, para fazer pedidos ao SGDB, os programadores usam SQL. Esse fato garante a independência do banco de dados em relação a linguagem de programação. Assim, podemos enxergar o SGBD como um provedor de serviços. Ele provê o serviço de manipulação de dados para os programadores por meio da SQL.

Mudanças no Minimundo

Como o banco de dados tem uma relação com o mundo real, mudanças no mundo real devem ser refletidas no banco de dados. Assim, por exemplo, se o nosso banco de dados representa as vendas em uma padaria, toda vez que essa operação ocorrer no mundo real, novos dados devem ser inseridos no banco de dados. Se alguém quiser, no final do mês, criar um relatório das vendas, o banco de dados ao ser consultado refletirá o status do mundo real.

Tipicamente, em um sistema real, temos muitas operações ocorrendo a todo momento em um banco de dados. Imagine um banco de dados usado em um supermercado. Cada item comprado deve ter seu registro atualizado. Devido a esse grande número de operações, um banco de dados deve ser confiável. Para tanto, mudanças no mundo real devem estar refletidas no banco de dados o mais rápido possível.

Bancos de dados que registram essas operações do dia a dia de uma organização são chamados de bancos de dados operacionais.

Gostou desse material ? Faço nosso curso completo de TI para carreira fiscal. O curso é composto por vídeo-aulas e aulas em pdf.

 

Rolar para cima