Primeiramente, antes de falarmos sobre sgbds precisamos definir dados e consequentemente como gerenciados. Assim, podemos entender por que utilizamos banco de dados.
Precisamos em primeiro momento definir a abordagem tradicional, onde o gerenciamento e a estrutura dos dados são definidas dentro da aplicação.
A segunda abordagem, SGBDs, é a abordagem mais interessante com diversas vantagens.
Contudo, precisamos primeiro fazer uma introdução para que vocês possam entender o motivo de sua utilização.
Como utilizamos os dados?
Historicamente a humanidade produz dados de diversas formas diferentes contudo com a evolução da tecnologia e sua consequente democratização o volume de dados apenas aumentou.
Antigamente o poder computacional estava concentrado em grandes nem frames, seja em a na academia ou em grandes empresas.
A partir da década de 80 com a IBM os PCS começaram a surgir no mercado.
Consequentemente, o público em geral começou a ter contato com a tecnologia.
Com a democratização da tecnologia as pessoas passaram a utilizar os computadores em seu cotidiano.
Com o passar do tempo evoluímos em termos de software e hardware fornecendo assim a maior capacidade computacional.
Da mesma forma, os serviços disponíveis na internet evoluíram.
Abordagem tradicional
Antes da criação do sistema de gerenciamento de banco de dados, utilizou-se a abordagem de criar a estrutura dos dados e seu gerenciamento dentro das aplicações de usuário.
Neste caso, o programa era responsável pela lógica de negócio, estrutura e gerenciamento destes dados.
Nesta abordagem encontramos alguns problemas. Retrabalho, inconsistência de dados e dependência de dados de aplicação são alguns destes problemas.
Além disso, é complicado imaginar que 2 aplicações distintas utilizem o mesmo conjunto de dados.
Não há como garantir consistência dos dados, muito menos haver controle de concorrência.
Supondo que cada aplicação tinha seu conjunto de dados específicos, outra questão que poderia ocorrer era a redundância.
Além de redundância, teríamos retrabalho esforço redundante para manter esses dados. Isso acontece por não haver centralização dos dados.
Vamos para o exemplo…
Vamos supor um cenário de universidade onde o setor financeiro e o setor de educação teriam acesso aos dados dos alunos.
Cada setor tem uma perspectiva diferente sobre os dados.
Por exemplo, não é necessário que outro setor, além do financeiro, tenha acesso aos dados de pagamento dos alunos.
Consequentemente, essas informações podem estar restritas ou vinculadas a um grupo de usuários.
Ainda assim, diversos setores de uma universidade precisam acessar informações de alunos, como nome, curso, disciplina, nota, entre outros atributos.
Utilizando a abordagem tradicional, cada aplicação teria seu conjunto de arquivos com as mesmas informações.
Isso acarreta em redundância e retrabalho para a manter esses dados.
Como surgiram os SGBDs?
O surgimento dos sgbds vieram de acordo com a necessidade de determinar maior eficiência para o gerenciamento dos dados.
Antigamente, a estrutura e o gerenciamento desses dados eram feitos por pessoas distintas e aplicavam ações específicas, cada uma com seu conjunto de informações.
Dessa forma, os sgbds possuem um papel centralizador, onde eles determinam tanto a estrutura como o gerenciamento e várias outras vantagens relacionadas aos dados.
Antes do surgimento dos sgbds relacionais existiram outros modelos hierárquico em rede. Esses modelos tinham suas limitações.
Modelos de banco de dados
Assim, o modelo relacional veio para trazer maior eficiência nas consultas aos bancos de dados e, consequentemente, definir uma estrutura mais geral e independente da aplicação.
Em modelos anteriores, era interessante que os seus usuários soubessem das especificidades do banco de dados.
O modelo relacional veio trazer um isolamento entre a aplicação e o sistema.
Assim, usuários que desconhecem a estrutura de um banco de dados ou seu funcionamento podem estar realizando consultas/queries para o seu banco de dados.
O que é o SQL?
O SQL é uma linguagem de consulta a banco de dados relacionais.
Baseado na álgebra relacional, ele define a operações e cláusulas que o são utilizadas dentro da teoria de conjuntos.
O SQL permite o maior nível de abstração com relação à estrutura das entidades das tabelas dentro do banco de dados.
Por estar baseado na teoria de conjuntos, é possível realizarmos consultas a essas entidades sem necessariamente saber quantos atributos cada uma possui.
As cláusulas são utilizadas na construção de uma query ou consulta. Essa consulta é submetida ao sgbd, que processa a consulta e acesso ao banco de dados.
A partir da consulta realizada o SGBD retorna aos resultados a partir das tabelas instanciadas dentro do seu sistema.
Abaixo um exemplo de queries SQL.
O que são sgbds?
Afinal de contas, o que são sgbds? São sistemas voltados especificamente para a estruturação e gerenciamento dos dados.
Sua estrutura é definida por meio de tabelas e linhas.
Essas tabelas, denominadas entidades dentro da modelagem de dados, possuem relacionamentos entre si.
Podemos entender as entidades como objeto do mundo real, possuindo propriedades que as definem e características que as descrevem.
Assim, essas propriedades são dispostas dentro de um esquema relacional como atributos.
Os relacionamentos entre esses objetos do mundo real são tratados dentro da modelagem de dados.
Posteriormente Falaremos, em outro artigo, sobre o mapeamento do ER para o esquema relacional.
SGBDs – Sistemas de Gerenciamento de Banco de Dados
Um SGBD é um software de propósito geral que tem por objetivo auxiliar o usuário na definição, implementação, manipulação e compartilhamento de banco de dados entre diversas aplicações.
As etapas que envolvem um banco de dados são:
Definição:
Esta etapa envolve a especificação de tipos de dados, estruturas e constrains dos dados a serem armazenados no SGBD.
A definição do BD, ou informação descritiva é armazenada no catálogo do SGBD (Metadados).
Implementação:
é o processo de inserção dos dados em algum meio de armazenamento controlado pelo SGBD.
Manipulação:
execução de queries para recuperação de dados e atualizações a fim de refletir mudanças no mini-mundo.
Compartilhamento:
permissão de múltiplo-acesso por usuários ou programas simultaneamente.
Funcionalidades de um Banco de Dados
Outra importante funcionalidade de um SGBD consiste na proteção dos dados.
A proteção de um SGBD consiste na proteção contra mal-funcionamento de hardware e software.
Além disso, contra acessos não autorizados ou maliciosos.
Por outro lado, os SGBDs possuem um ciclo de vida de vários anos de funcionamento.
Dessa forma, o sistema deve ser capaz de manter o banco de dados considerando as mudanças no decorrer do tempo.
Características de um SGBD
Um banco de dados possui uma fonte de dados de onde os dados são derivados, algum nível de interação com eventos do mundo real.
Além disso, há público interessado em consumir seu conteúdo.
O consumo dos dados acontece em sua maioria a partir de alguma API. Contudo, podemos utilizar serviços ou mesmo realizar consultas/queries ao BD.
Diversas ações podem modificar o estado do SGBD.
Sendo assim, alguns exemplos dessas ações são: compra de um produto via e-commerce; adicionar um dependente ao funcionário da empresa e realização do cadastro de um aluno.
Para que o BD seja confiável, é preciso que toda mudança seja “imediatamente” refletida no BD.
Consequentemente, essa mudança ocorre no mini-mundo que o BD representa.
Alguns dos conceitos atrelados a banco de dados estão descritos abaixo:
- Contexto do mundo real
Representação de algum contexto limitado, sendo este um escopo do mundo real. O termo “mini mundo” ou “universo de discurso” é adotado neste caso.
Mudanças que ocorram no mini-mundo devem ser refletidas no banco de dados.
- Coerência:
Os dados de um database são uma coleção logicamente coerente e consistente dos dados armazenados.
Dados randômicos não podem ser corretamente referenciados em um banco de dados.
Seria um trabalho árduo tentar inserir dados aleatórios à uma estrutura rígida como de um BD.
- Propósito:
Um SGBD é projetado, implementado e populado com um objetivo. Esse objetivo está atrelado ao contexto do mini-mundo que você deseja modelar.
Há um grupo de usuários e algumas aplicações pré-definidas objetivos de design do banco de dados.
Sendo assim, pessoas e aplicações irão consumir os dados persistidos no banco de dados.
Considerações finais
Esse foi nosso primeiro passo… espero que tenha ficado mais claro pra você sobre o que se trata um banco de dados.
Esse é um dos temas de TI que extrapolam as barreiras e são utilizados na grande maioria dos cenários.
Onde há dados, há um sistema de gerenciamento de banco de dados.
Vídeos sobre Banco de Dados
Vídeos em nosso canal no Youtube sobre banco de dados.
Leia sobre outros temas relevantes:
- Tutorial Instalar VNC em Linux Ubuntu
- Tutorial: Instale seu Servidor DNS no Linux com Bind9 Passo a Passo
- SSH: Como criar chave pública
- Socket em Python criando chat UDP
- Socket em Python, criando um Chat
Juliana Mascarenhas
Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer