O que é um SGBD?

Em muitos sistemas informatizados é necessário armazenar informações em bancos de dados, podemos constatar isso observando que nas últimas décadas o banco de dados se tornou o coração de muitos sistemas. A informação é muitas vezes a coisa mais valiosa das empresas, mantê-las e poder acessá-las sempre que necessário é primordial para tomar decisões importantes. Mas controlar o acesso a essas informações também é importantíssimo. Já pensou se elas caíssem em mãos erradas? E a perda de informações? Já imaginou se estragasse o HD do servidor onde está o banco de dados? Backup é uma forma de garantir que informações não serão perdidas.

Enfim, já deu para perceber que a gerência de um banco de dados não é uma coisa a se deixar de lado, pois uma empresa pode depender dele, ou seja, pode ajudar a empresa a ter sucesso, mas também pode levá-la ao fracasso. Para garantir a consistência dos dados, controlar o acesso, manter os dados seguros, fornecer meios de acesso aos dados, … foram criados os Sistemas de Gerenciamento de Bancos de Dados, ou SGBD (DBMS em inglês Database Management System).

A definição de SGBD

“Um Sistema de Gerenciamento de Banco de Dados (SGBD) – do inglês Data Base Management System (DBMS) – é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma base de dados. Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, a manipulação e a organização dos dados. O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. Em bancos de dados relacionais a interface é constituída pelas APIs (Application Programming Interface) ou drivers do SGBD, que executam comandos na linguagem SQL (Structured Query Language).”

Fonte: Wikipédia

database-organograma

Tudo que fazemos em um banco de dados passa pelo SGBD! O SGBD é responsável por tudo, salvar os dados no HD, manter em memória os dados mais acessados, ligar dados e metadados, disponibilizar uma interface para programas e usuários externos acessem o banco de dados (para banco de dados relacionais, é utilizada a linguagem SQL), encriptar dados, controlar o acesso a informações, manter cópias dos dados para recuperação de uma possível falha, garantir transações no banco de dados, enfim, sem o SGBD o banco de dados não funciona!

É comum as pessoas chamarem um SGBD de banco de dados, por exemplo: banco de dados Oracle, banco de dados MySQL, banco de dados SQL Server, etc. Na verdade esses são os SGBDs, banco de dados é o que eles oferecem, o correto é chamá-los de: SGBD Oracle, SGBD MySQL, SGBD SQL Server, etc. Cada um implementa um banco de dados (ou vários) de uma maneira diferente, mas para o usuário isso é quase transparente, pois a linguagem de acesso aos dados é a mesma, o SQL.

Agora você já sabe, pra acessar um banco de dados você precisa usar um SGBD.

O que é um SGBD?
4.17 (83.42%) 292 votos
  • Outro bom artigo. Estava com imprecisão na importancia do SGBD enquanto definicao. Agora ficou mais claro a posicao do SGBD na estrutura do banco.

    • Oi Demerius, que bom que o artigo te ajudou a clarear o conceito do SGBD.

      Abraço!

  • eric

    Ola vou começar a fazer banco de dados e praticamente nao sei nada, se tem alguma dica pra começar a estudando

    valeu eric

    • Eric, minha dica é começar a aprender SQL, instale um SGBD simples no seu computador como MySQL, crie um banco de dados.

  • APARECIDA GRAÇA SILVA

    oi GUSTAVO GOSTEI DO CONTEÚDO, PODE MANDAR MAIS SIMPLES PARA INICIANTE.

  • Excelentes artigos! Dica: Por que você não coloca algo que produza a citação de seu site automaticamente, isso porque, muitas pessoas tomam seus trabalhos como referência.

    • Olá Fábio, a citação vai depender do padrão utilizado na documentação do trabalho.

  • Florindo Sanongue

    Engº. Furtado eu preciso fazer o curso de linguagem PHP, com objectivo de passar a criar meus próprios softwares. e como vou receber o diploma?

  • Muito bom o artigo. Estou cursando Análise e Desenvolvimento de Sistemas e dicas como essas são bem-vindas e ajudarão bastante no meu aprendizado.
    Obrigado Gustavo Furtado e um forte abraço.

    • Muito obrigado Domingos, fico feliz em saber que estou ajudando.

      Um abraço!

  • Ricardo

    Olá, Gustavo!

    Muito bom o teu site, parabéns! Sou um “fuçador” em Computação: apesar de ser engenheiro químico, gosto muito de programar. Aprendi JavaScript e C somente por curioso, mas nunca desenvolvi nada em específico (só fiz diversos algoritmos de fixação). O que eu faço muito é programar em Excel (VBA), afinal no dia-a-dia de trabalho lido muito com planilhas no Excel e meu “hobby” é fazer de simples planilhas um “mini software”.

    Buenas, estou começando a me aventurar nos bancos de dados agora. Já li muitos artigos sobre o que é, como é a arquitetura, a modelagem etc, mas uma coisa eu confesso que ainda não me entrou 100% na cabeça: o tal SGBD.

    Teoricamente (veja bem, digo teoricamente), eu posso montar uma base de dados “na unha”, em qualquer linguagem de programação, sem utilizar um SGBD “comercial”, e estabelecer todas as regras do negócio, controle de acesso, utilização dos dados etc utilizando algoritmos escritos exclusivamente por mim? Penso que sim, mas tudo o que eu leio sobre bancos de dados todos falam que o uso de um SGBD é quase que “obrigatório”, como se não existisse banco de dados sem um SGBD.

    Se eu estiver certo na pergunta acima, peço que por favor me diga quais são as desvantagens de não usar um SGBD para “criar” um banco de dados (como mySQL, Microsoft SQL Server, Oracle etc). E também quais são as vantagens de utilizá-los.

    A outra coisa que não entendi é: onde entram as funções, procedimentos, definições de objetos, algoritmos, telas, menus, botões etc quando eu uso um SGBD? Todos estes algoritmos são desenvolvidos dentro do próprio SGBD em sua linguagem ou estes algoritmos obrigatoriamente ficam em um “software a parte” (que pode ser feito em outras linguagens, como Python, Ruby, Javascript etc) e que depois “conversa” com o SGBD? O SGBD só faz a “gestão” da base ou ele é uma plataforma onde tudo se cria nele (algoritmos, funções, telas, menus etc)?

    Muito obrigado!!

    • Ricardo, muito interessante seu comentário.

      Você pode sim criar o seu banco de dados na unha, utilizando arquivos, etc. Mas pra quê reinventar a roda? Na minha opinião, implementar a gerência dos seus dados na unha é um trabalho extremamente desnecessário, você vai passar por dificuldades que já foram resolvidas a muitos anos pela comunidade. Os SGBDs disponíveis hoje já passaram por um período de maturidade muito forte, são softwares especializados em gestão de bancos de dados criados pelos melhores profissionais do mundo nesta área. Então, a não ser que você tenha um motivo MUITO bom, sugiro não perder tempo em fazer um tipo de software que já existe. Tem SGBD de tudo que é jeito pronto.

      Próximo assunto do seu comentário…
      O mais comum é você trabalhar as suas regras de negócio no seu software e usar os SGBDs apenas para armazenar e gerenciar os seus dados, ou seja, seu software faz o serviço específico dele e “terceiriza” as particularidades relacionadas a dados, armazenamento, segurança, backups, etc.
      Mas também existem sistemas inteiros desenvolvidos sobre o SGBD, no caso, este passa a ser uma “plataforma” e não apenas o SGBD. Posso citar a plataforma Oracle, onde tem o “SGBD” e também podemos criar nossas funções, formulários, relatórios, objetos, etc.

      O mundo do desenvolvimento de software é fascinante por causa disso. Não há uma regra geral: “tem que ser assim.” Existe sempre uma forma mais indicada por pessoas que já passaram por problemas parecidos.

      Forte abraço!

  • Ricardo

    Muito obrigado pelos esclarecimentos, Gustavo. Uma última dúvida, bem de projeto de banco de dados: depois de passada a modelagem conceitual, entendida a regra do negócio, estabelecidas as relações entre os dados etc, do ponto de vista de implementação de códigos, o que “nasce” primeiro (imagino que todas as opções sejam possíveis, mas o que é mais recomendado e evita menos retrabalho)?

    a) O desenvolvimento inicial no SGBD, para depois desenvolver o software, escrever as funções, algoritmos, criar objetos telas etc, ou;
    b) A criação do software propriamente dito por inteiro para depois “linká-lo” ao SGBD, ou;
    c) Fazer tudo em paralelo aos poucos.

    Abraço!

  • ezequiel

    estouestudando sobre o assunto e a compreenção que tive de um sgdb é que ele gerencia as informações de forma a organizar e não manipular.
    ex: eu acabo de criar um site vamos supor eu programei tudo manualmente é claro que eu vou ter que utilizar um banco de dados sem estar online; a partir do momento que eu quero diponibilizalo on-line eu vou ter que utilizar um sgdb pois meu banco de dados vai ter de estar disponivel em algum lugar.

    alguem pra comentar