SGDB: Gerenciamento de banco de dados

Bancos de dados ou bases de dados são coleções organizadas de dados que se relacionam de forma a criar algum sentido (Informação) e dar mais eficiência durante uma pesquisa ou estudo. São de vital importância para empresas, e há duas décadas se tornaram a principal peça dos sistemas de informação. Normalmente existem por vários anos sem alterações em sua estrutura.

Este trabalho tem por objetivo mostrar a relação e utilizações de sistemas de gerenciamento de banco de dados (SGBD).

O que é SGDB? Como Funciona?

Uma base de dados é um conjunto organizado de dados (segundo um modelo de dados) existentes num sistema informático, disponíveis a todos os utilizadores ou processamentos da organização em que o acesso e atualização são realizados através de software específico. O Sistema de Gestão de Bases de Dados (SGBD) ou Data Base Management System (DBMS) e software utilizado para gerir Bases de Dados, permitindo criar base de dados, modificar Base de dados, eliminar bases de dados, inserir dados na Base de Dados e Eliminar dados da base de dados.

Os SGBD (Sistemas de Gestão de Bases de Dados) têm um conjunto de requisitos funcionais: a Segurança, a Integridade (só inclui dados válidos relativamente à realidade), o Controlo de Concorrência (Locking, Etiquetagem ou Optimista), e recuperação e tolerância a falhas (Backup e Transactionlogging).

Um SGBD (Sistemas de Gestão de Bases de Dados) tem tipicamente como elementos, o motor de base de dados, o subsistema de definição de dados, o subsistema de manipulação de dados, o subsistema de administração de dados e o subsistema de geração de aplicações.

Os SGBDs (Sistemas de Gestão de Bases de Dados) têm as sistemas de gestão utilizados e da repartição geográfica dos dados.

Ao nível conceitual de análise, a preocupação essencial reside na semântica dos dados que representa o nível de invariante o mais elevado.

Neste contexto podem ser utilizadas várias ferramentas conceituais, nomeadamente a Entidade Associação (também chamado Entidade Relacionamento) ou o diagrama de classes do UML.

Um esquema lógico é um modelo de dados específico a um domínio de problema expresso em termos de uma tecnologia específica de bases de dados. O esquema lógico não deve ser específico a um produto específico (ou SGBD concreto). Por exemplo, deve indicar quais as tabelas, colunas e relacionamento (se o esquema seguir o modelo relacional), classes (se seguir o modelo de objetos) ou XML.

Na concepção do esquema lógico, o modelo relacional é dos mais utilizados.

O esquema físico descreve os meios físicos através dos quais os dados são armazenados.

Um modelo de base de dados é uma teoria ou especificação que descreve como a base de dados é estruturada e utilizada.

Função de um SGBD

  • Segurança: O SGBD cria um sistema de segurança que protege a base de dados de acessos não autorizados. São impostas regras que definem quais os utilizadores que podem ter acesso à base de dados, e dentro dos utilizadores autorizados a que ficheiros podem aceder e que tipos de operações podem efetuar (ler, adicionar,atualizar, apagar,etc.). Existem ainda procedimentos que permitem efetuar cópias de segurança e recuperação de dados em caso de falhas, de modo a assegurar a segurança e a integridade dos dados.
  • Segurança física: A informação não pode estar, ao alcance de pessoas não autorizadas, ou seja, tem de estar bem guardada.
  • Segurança lógica: A informação pode ser protegida através de métodos lógicos de segurança, exemplo passwords.
  • Integridade: O SGBD assegura a verificação das restrições de integridade de forma a manter sempre válidos s dados, diminuindo a redundância e maximizando a consistência dos dados. A gestão de transações é um aspecto muito importante da manutenção da integridade de dados. Uma transação consiste num conjunto de ações efetuadas por um utilizador ou aplicação. Um exemplo de uma transação poderá ser uma operação de transferência de dinheiro entre duas contas. Se a transação é interrompida antes do fim (falha de energia, problemas no disco, etc.) o sistema terá de evitar um estado de inconsistência, acionando o rollback, que é um mecanismo que desfaz o que foi feito até à altura do problema e devolve a base de dados ao seu estado de consistência.

Controle de Concorrência

Nas bases de dados multi-utilizadores (que serão a maioria), pode haver uma tentativa de acesso aos mesmos dados por mais de que um utilizador em simultâneo. O SGBD fornece mecanismo que asseguram que a base de dados é atualizada corretamente, este mecanismo recebe o nome de mecanismo de controlo de concorrência.

  • Backup: Cópia de segurança, geralmente mantida em disquetes, fitas magnéticas ou CD-R, que permitem a recuperação de informações importantes ou programas em caso de falha do disco rígido.
  • Inside Backup a informação é guardada dentro da empresa.
  • Outside Backup a informação é guardada fora da empresa

Modelos de Base de Dados

Têm sido propostos diversos modelos de bases de dados, nomeadamente:

  • 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, conforme podemos ver na Figura 1.
Representação de um
modelo hierárquico
Figura 1. Representação de um modelo hierárquico
  • Modelo de rede: Sua organização é semelhante à dos Bancos de Dados hierárquicos, com diferença de que cada registro filho pode ser ligado a mais de um registro pai, criando conexões bastante complexas e são bastante utilizados em sistemas para computadores de grande porte (mainframe). Sendo que esse modelo é composto de uma estrutura mais completa, possui as propriedades básicas de registros, conjuntos e ocorrências, e utiliza a linguagem de definição (DDL) e a linguagem de manipulação de dados (DML), além de permitir evolução mais eficiente do modelo. Veja um exemplo na Figura 2.
Representação de um
modelo de Rede
Figura 2. Representação de um modelo de Rede
  • Modelo relacional: modelo relacional é um modelo de dados, adequado a ser o modelo subjacente de um Sistema Gerenciador de Banco de Dados(SGBD), que se baseia no princípio em que todos os dados estão guardados em tabelas (ou,matematicamente falando, relações). Toda sua definição é teórica e baseada na lógica de predicados e na teoria dos conjuntos. Veja um exemplo na Figura 3.
Representação de um
modelo Relacional
Figura 3. Representação de um modelo Relacional
  • Modelagem dimensional:é uma técnica de projeto lógico normalmente usado para data warehouses que contrasta com a modelagem entidade-relacionamento. Segundo o professor Kimball, a modelagem dimensional é a única técnica viável para bancos de dados que devem responder consultas em uma data warehouse. Ainda segundo ele, a modelagem entidade-relacionamento é muito útil para registro de transações e para fase de administração da construção de um datawarehouse, mas deve ser evitada na entrega do sistema para o usuário final. Veja um exemplo na Figura 4.
Representação de um
modelo Dimensiona
Figura 4. Representação de um modelo Dimensional
  • Modelo relacionado a objeto(SGBDO, Sistema de gestão de bancos de dados objeto): os dados são armazenados sob a forma de objetos, quer dizer, de estruturas chamadas classes que apresentam dados membros. Os campos são instâncias destas classes, conforme a Figura 5.
Representação de um
modelo Relacionado
Figura 5. Representação de um modelo Relacionado

Módulos Componentes de um SGBD

Os principais módulos componentes que integram um SGBD são (Figura 6):

  • Pré Compiladores;
  • Compiladores;
  • Interpretadores;
  • Mecanismo de consultas;
  • Gerenciador de Buffer;
  • Gerenciador de transações;
  • Gerenciador de arquivos.
Esquema do SGBD
Figura 6. Esquema do SGBD

Exemplos de alguns SGBD’s

  • IBM Informix
  • PostgreSQL
  • Firebird
  • HSQLDB
  • DB2
  • mSQL
  • MySQL
  • Oracle
  • SQL-Server
  • TinySQL
  • ZODB
  • JADE
  • Sybase
  • Microsoft Access (Alguns o consideram SGBD mas é um SGBDR)
  • Microsoft Visual Foxpro
  • Paradox

Utilização e Comparação entre SGBD’s (SQL-SERVER e ORACLE)

SQL Server

OMS SQL Server é um SGBD desenvolvido pela Microsoft. Foi criado em parceria com a Sybase em 1988 inicialmente para a plataforma OS/2. Esta parceria durou até 1994, com o lançamento da versão para Windows NT e desde então a Microsoft mantém a manutenção do produto. Como um Banco de dados, é um produto de software cuja principal função é a de armazenar e recuperar dados solicitados por outras aplicações de software seja aqueles no mesmo computador ou aqueles em execução em outro computador através de uma rede.

  • SGBD comercializado atualmente pela Microsoft.
  • Custo de uma licença da versão Enterprise por CPU: aprox. U$ 28.000 por CPU;
  • Pode ser instalado somente em SO Windows;
  • Possui ferramentas de administração com interface gráfica excelentes, que possibilitam um gerenciamento mais fácil e produtivo. Ex.: SQL Server Management Studio 2008;
  • Como toda ferramenta Microsoft, o Banco de Dados SQL Server em geral, é mais fácil de administrar e de programar do que em Oracle;
  • Divisão lógica de uma instância contendo vários BDs. O SQL Server possui uma camada extra onde cada BD pode conter vários usuários ou esquemas. Desse modo, podemos organizar e gerenciar melhor esquemas correlacionados, pertencentes a uma mesma aplicação, em um BD isolado dos demais esquemas do BD;
  • Possui uns esquemas do sistema chamado MODEL que serve como template para esquemas de usuários. Se por exemplo, o esquema MODEL tiver 2 tabelas e uma visão, ao criar um novo esquema de usuário, ele será criado com estes mesmos objetos.

Oracle

Oracle é um SGBD que surgiu no fim dos anos 70 quando Larry Ellison vislumbrou uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia.

  • Comercializado atualmente pela Oracle, que nasceu em 1979 e que foi o primeiro BD relacional comercializado no mundo;
  • Custo de uma licença da versão Enterprise por CPU: U$ 47.500 (até 2 core);
  • Pode ser instalado em múltiplas plataformas desde 1985. Entre as principais, podemos citar: Unix, Linux, HP/UX, BIM AIX, IBM VMS e Windows;
  • Possui ferramentas de administração com interface gráfica menos amigável que as do SQL Server. Isso vem mudando e melhorando a cada nova versão do Oracle. No 10G, o Enterprise Manager possui muitos recursos e sua interface gráfica evoluiu muito, mas ainda acho que as ferramentas da Microsoft são mais intuitivas e mais produtivas.
  • Possui mais recursos de segurança e performance que o SQL Server.
  • Por padrão, o Oracle não commita transações. Isso permite que você desfaça as alterações de uma instrução SQL, caso ela tenha sido submetido erroneamente.
  • Por padrão, o Oracle permite efetuar leitura consistente de dados. Esse recurso permite que um usuário "B" leia os dados de uma linha de uma tabela, no mesmo momento em que ela está sendo alterada por um usuário "A", sem que o usuário "B" visualize os dados que estão sendo alterados pelo "A".
  • Arquitetura mais flexível e com mais recursos para otimização de performace. No Oracle é possível criar e gerenciar diversas estruturas de memória no BD. É possível, por exemplo, definir estruturas de armazenamento com tamanhos de blocos que podem variar de 2k à 32k. No SQL Server só é possível criar estruturas de armazenamento de 8k. Em Oracle, sistemas OLAP e índices em geral, são otimizados com tamanhos de blocos maiores (32k);
  • Possui Packages, que são objetos que permitem (entre diversos outros benefícios) agrupar e encapsular código de stored procedures e funções;
  • O Oracle possui mais tipos de índices que o SQL Server.

Ou seja:

Ambos são ótimos BDs e cada um tem suas vantagens e desvantagens. O SQL Server tem a principal vantagem de ter um custo menor, aproximadamente metade do preço de um Oracle. No SGBD SQL Server, todas as funcionalidades (Ex.: Particionamento de tabelas) estão inclusas no seu valor de licenciamento inicial, enquanto que, no SGBD Oracle, é necessário adquirir licenças adicionais (chamadas Options), que tornam o produto da Oracle até 10 vezes mais caro que o produto da Microsoft. Outra vantagem do SQL Server é a facilidade de uso e gerenciamento. Eu, particularmente, quando comecei a trabalhar com Oracle, achava tudo muito difícil. As ferramentas do SQL Server eram mais produtivas e mais intuitivas.

O Oracle tem um custo mais alto que o SQL Server e é mais difícil de administrar, porém é um produto que possui mais recursos de segurança e performance, que podem ser muito importantes e cruciais para empresas que possuem aplicações críticas e que possuem muitos dados e muitos usuários concorrentes, em geral

Do ponto de vista técnico, SGBDs podem diferir amplamente. Os termos relacional, rede, plana, e todos hierárquica se referem à forma de um SGBD organiza as informações internamente. A organização interna pode afetar a rapidez e flexibilidade que você pode extrair informações.

Recentes

  • Usabilidade e experiência do usuário em aplicativos sensíveis ao contexto:
    Este artigo trata de questões de usabilidade em aplicativos sensíveis ao contexto, tendo como principal objetivo o aprimoramento da experiência do usuário, exemplificando e conceituando algumas questões que devem ser consideradas.
  • Delphi: Cadastro Orientado a Objetos com FireDAC:
    Neste curso você aprenderá a criar CRUD em Delphi com uma entidade. Trabalhar com manipulação de dados (inserir, editar, deletar e buscar) em Delphi é fundamental para desenvolvermos a maioria das aplicações é de suma importância no desenvolvimento de software.
  • Engenharia de Software para programadores:
    Neste guia você encontrará o conteúdo que precisa, como desenvolvedor, para ter uma boa base dos conceitos e práticas da Engenharia de Software. Tal conhecimento é muito importante para todo programador.

Saiba mais sobre SGBDs ;)

  • Banco de Dados para Programadores:
    Neste guia você encontrará os principais conteúdos que você precisa estudar, como desenvolvedor, para trabalhar com bancos de dados.
  • Guia Completo de MySQL:
    Neste guia de consulta você encontrará diversos conteúdos que podem ser usados ao longo dos seus estudos sobre o banco de dados MySQL. Consulte este guia para aprender mais sobre a administração e uso desse SGBD.
  • Guia Completo de SQL Server:
    Este guia traz uma compilação das melhores publicações e ensina como resolver os mais diferentes problemas que tornam o dia a dia desse profissional tão desafiador.
  • Guia Completo de PostgreSQL:
    Neste guia de consulta você encontrará diversos conteúdos que podem ser usados ao longo dos seus estudos sobre o banco de dados PostgreSQL. Consulte este guia para aprender mais sobre a administração e uso desse SGBD.
  • Guia Completo de NoSQL e MongoDB:
    Neste guia de consulta você encontrará diversos conteúdos sobre bancos de dados NoSQL, principalmente sobre o MongoDB, que é um dos mais utilizados na atualidade. Encontre também conteúdo sobre Cassandra, Redis, entre outros.

Referências Bibliográficas: ;)