Banco de dados – Wikipédia, a enciclopédia livre

Exemplo de output (saída) de uma interrogação Structured Query Language a uma base de dados

Bancos de dados (português brasileiro) ou bases de dados (português europeu) são conjuntos de arquivos relacionados entre si, podendo conter registros sobre pessoas, lugares ou informações em geral. São coleções organizadas de dados que se relacionam ou não, com o objetivo de armazenar informações. São de vital importância para empresas e tornaram-se a principal fonte de dados dos sistemas de informação e segurança. Normalmente, eles existem por vários anos sem alterações em sua estrutura sistemática.[1][2][3][4][5][6]

A Lei Geral de Proteção de Dados Pessoais (LGPD ou LGPDP), de 14 de agosto de 2018, Capítulo I, Artigo 5º, Inciso IV, define os bancos de dados como "Conjunto estruturado de dados pessoais, estabelecido em um ou vários locais, em suporte eletrônico ou físico".[7]

Os bancos de dados são operados por Sistemas Gerenciadores de Bancos de Dados (SGBD), que surgiram na década de 1970.[8][9] Antes destes, as aplicações usavam sistemas de arquivos do sistema operacional para armazenar suas informações.[9][10] Na década de 1980, a tecnologia de SGBD relacional passou a dominar o mercado; atualmente, é utilizada em praticamente todos os bancos de dados.[8][9]

Outro tipo notável é o SGBD orientado a objetos, implementado em bancos de dados com estruturas complexas ou aplicações que mudam constantemente.[4] Alguns dos SGBD mais usados atualmente incluem o MySQL, Oracle, PostgreSQL, Microsoft SQL Server, SQLite entre outros sistemas que gerenciam bases de dados.

Exemplo de código Structured Query Language feito no editor de código MySQL Workbench.

A principal aplicação de banco de dados é o controle de operações empresariais, normalmente armazenando dados pertinentes para a administração de um negócio, como dados de clientes, funcionários, fornecedores e outras informações.[11][12] Outra aplicação importante é o gerenciamento de informações de estudos, como fazem os Bancos de Dados Geográficos, que unem informações como mapas, imagens de satélite, pontos, linhas, áreas, entre outros dados geográficos.[13]

Um exemplo de um banco de dados de estudos é o banco de informações ambientais (BDIA), gerenciado pelo IBGE, que armazena dados geológicos, de Geomorfologia, vegetação entre outros.

No aspecto de segurança da informação, os bancos de dados precisam garantir a privacidade dos dados armazenados. É importante construir camadas que gerenciem quais informações os usuários podem ou não podem ter acesso. Se usuários não autorizados tiverem acesso a dados sensíveis, ultrapassando a fronteira de informação que podem acessar, isso iria ferir o princípio da confidencialidade. De acordo com a Lei nº 13.709/2018,[14] não garantir esses princípios de segurança podem colocar em risco a qualidade de dados e transparência deste banco de dados.

História[editar | editar código-fonte]

Diante da necessidade humana de registrar os eventos e informações relevantes, inventaram-se diversas técnicas com esse fim. Técnicas como pinturas pré-históricas, hieróglifos, escrita cuneiforme, e, posteriormente, a própria escrita alfabética, foram usadas como meios para registrar dados. Com a invenção do papel em meados de 105 d.C. e, no âmbito ocidental, da prensa móvel de Gutenberg, as tecnologias de impressão evoluíram muito e a partir do século XV, o papel passou a ser o meio físico mais comum de registro de informações.

Essa herança fez com que no início da era computacional se usasse o papel perfurado e, depois, o cartão perfurado em máquinas, ambos idealizados por Hermam Hollerith, fundador da International Business Machines (IBM). A continuidade do papel no presente como um meio indispensável de armazenamento pode ser encontrada em bancos de dados não computadorizados, como ocorre com arquivos de aço, fichas e pastas.

Processamento de dados

Entretanto, novos fatores que levaram ao desenvolvimento dos bancos de dados computadorizados foi uma praticidade, eficiência, rapidez e confiabilidade do registro de informações em meios eletrônicos, em conjunto com o barateamento e disponibilidade de sua oferta.

A origem dos programas de banco de dados ocorreram de maneira síncrona ao surgimento dos computadores, tendo em vista que, antes mesmo do desenvolvimento de programas específicos para este uso, os computadores já utilizavam recursos de gravação e leitura de dados em disco.

Apesar de cada aplicação ser responsável pelo gerenciamento de dados, alguns fatores dificultavam o seu uso, como:

  • Falta de controle de acesso dos usuários;
  • Impossibilidade de executar mais de um processo ao mesmo tempo;
  • Estrutura do arquivo armazenada no próprio código do aplicativo, criando forte dependência do arquivo em relação à aplicação;
  • Inconsistência e dificuldade de acesso e isolamento de dados;
  • Segurança dos dados;
  • Duplicidade de informações;
  • Incompatibilidade entre formatos de arquivos.

Em sistemas orientados a arquivos ocorre um fluxo de informações em duas vias em que há interações entre o usuário e a aplicação, e a aplicação com o banco de dados, e vice versa.

Esses sistemas são conhecidos como sistemas de processamento de arquivos, pois não possuem estruturas de dados definidas no código fonte, tornando sua manutenção muito difícil.

Além disso, o compartilhamento de dados de um mesmo arquivo entre vários programas também é um problema, visto que todo fragmento de código responsável pela definição da estrutura de dados precisa, necessariamente, ser copiada para vários programas.

Outro fator que dificultava a utilização de sistemas deste tipo era o método de acesso ao arquivo de dados, em que as rotinas de leitura e escrita se encontravam inseridos no próprio código fonte, ocasionando um desalinhamento do padrão, visto que cada aplicação trabalhava de forma diferente em relação à metodologia de acesso dos arquivos.

Em um sistema de banco de dados, os aplicativos não possuem nenhum conhecimento relacionado aos métodos de gravação e leitura dos dados nas tabelas.

Ao invés disso, eles se comunicam com o software de gerenciamento para recuperar ou armazenar registros, fazendo com que vários programas consigam acessar um mesmo banco de dados ao mesmo tempo, sem implicações nos aplicativos.

Dessa forma, os sistemas gerenciadores de banco de dados (SGBDs) oferecem uma produtividade maior no desenvolvimento de softwares e aplicativos, proporcionando um nível mais alto de qualidade às aplicações.

Uma das maiores vantagens em se utilizar um gerenciador de banco de dados é a confiabilidade das informações, devido à coerência em que se encontram os dados.

Por ser um ótimo segmento e muito lucrativo, houve um grande investimento por parte do mercado em sistemas de gerenciamento, e hoje existem diversos tipos de versões de banco de dados disponíveis em várias plataformas e sistemas operacionais.

Nos dias de hoje, é indispensável o uso do banco de dados, uma vez que é possível encontrar inúmeras atividades que possuem alguma interação com eles, desde redes sociais até aplicativos de gerenciamento de produção.[15]

Sistemas Gerenciadores de Banco de Dados (SGBDs) e seus modelos[editar | editar código-fonte]

Composição de cinco modelos de banco de dados

Existem vários modelos de base de dados: Modelo Plano (ou tabular), Modelo de Memória Transacional, Modelo em Rede, Modelo Hierárquico, Modelo Relacional, Orientado a objetos e Objeto-Relacional.

  • O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc. Este modelo plano é a base das planilhas eletrônicas;
  • O modelo em rede permite que várias tabelas sejam usadas simultaneamente por meio do uso de apontadores (ou referências). Algumas colunas contêm apontadores para outras tabelas ao invés de dados. Assim, as tabelas são ligadas por referências, o que pode ser visto como uma rede;
  • O modelo hierárquico é uma variação particular do modelo em rede, limitando as relações a uma estrutura semelhante à de uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por grafos;
  • Bases de dados relacionais consistem, principalmente, em três componentes:
    • Uma coleção de estruturas de dados, conhecidas como relações, ou informalmente tabelas;
    • Uma coleção dos operadores, a álgebra e cálculo relacionais;
    • Uma coleção de restrições da integridade, definindo o conjunto consistente de estados de base de dados e de alterações de estados. As restrições de integridade podem ser de quatro tipos: de domínio (também conhecidas como type), de atributo, "relvar" (variável relacional) e restrições de base de dados.

Bases de dados relacionais[editar | editar código-fonte]

Bem diferente dos modelos hierárquico e de rede, não existem quaisquer apontadores, de acordo com o Princípio da Informação: toda a informação deve ser representada como dados; qualquer tipo de atributo representa relações entre conjuntos de dados.

As bases de dados relacionais permitem aos utilizadores (incluindo programadores) escreverem consultas (queries) que não foram antecipadas por quem projetou a base de dados.

Como resultado, bases de dados relacionais podem ser utilizadas por várias aplicações em formas que os projetistas originais não previram, o que é especialmente importante em bases de dados que são utilizadas por longos períodos. Isto tem tornado as bases de dados relacionais muito populares no meio empresarial.

O modelo relacional é uma teoria matemática desenvolvida por Edgar Frank Codd para descrever como as bases de dados devem funcionar.

Embora esta teoria seja a base para o software de bases de dados relacionais, poucos sistemas de gestão de bases de dados seguem o modelo de forma restrita ou ao pé da letra - lembre-se das 12 leis do modelo relacional - e todos têm funcionalidades que violam a teoria, desta forma variando a complexidade e o poder.

A discussão se esses bancos de dados merecem ser chamados de relacional ficou esgotada com o tempo, com a evolução dos bancos existentes.

Os bancos de dados hoje implementam o modelo definido como objeto-relacional.

Os primeiros sistemas comerciais baseados no modelo relacional foram disponibilizados em 1980, e desde então ele vem sendo implementado em muitos sistemas, tais como Access, Oracle, MySQL, PostgreSQL, entre outros.[16]

Aplicações de bancos de dados[editar | editar código-fonte]

Sistemas Gerenciadores de Bancos de dados são usados em muitas aplicações, atravessando virtualmente a gama inteira de software de computador. Os Sistemas Gerenciadores de Bancos de dados são o método preferido de armazenamento/recuperação de dados/informações para aplicações multiusuários grandes onde a coordenação entre os usuários é necessária.[17] Até mesmo usuários individuais os acham conveniente, entretanto, muitos programas de correio eletrônico e organizadores pessoais estão baseados em tecnologia de banco de dados standard.

Transação[editar | editar código-fonte]

Uma transação é um conjunto de procedimentos, executados num banco de dados, que o usuário percebe como uma única ação.

A integridade de uma transação depende de quatro propriedades, conhecidas como ACID:[18]

  • Atomicidade
    • Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Se durante a transação qualquer ação que constitui unidade de trabalho falhar, a transação inteira deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada e persistida em banco (commit).
  • Consistência
    • Todas as regras e restrições definidas no banco de dados devem ser obedecidas. Relacionamentos por chaves estrangeiras, checagem de valores para campos restritos ou únicos devem ser obedecidos para que uma transação possa ser completada com sucesso.
  • Isolamento
    • Cada transação funciona completamente à parte de outras transações. Todas as operações são parte de uma transação única. O princípio é que nenhuma outra transação, operando no mesmo sistema, possa interferir no funcionamento da transação corrente (é um mecanismo de controle). Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento (ainda em respeito à propriedade da atomicidade).
  • Durabilidade
    • Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subsequente. Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados num repositório permanente, não sendo passíveis de falha por uma falha de hardware.

A transação possui os seguintes estados:

  • Ativa
    • É o estado inicial de toda transação e, enquanto está ativa ela executa uma ou mais operações read e write.
  • Em processo de efetivação
    • A transação irá entrar nesse processo quando executar sua última operação, a solicitação do commit.
    • É nesse processo onde o sistema precisa garantir que a transação ocorra com êxito, e em caso de falhas deve ser utilizada alguma técnica de recuperação.
  • Efetivada
    • Uma transação entra nesse estado após ela ter sido realizada com sucesso.
  • Em processo de aborto
    • Caso uma transação não consiga proceder em sua execução ela entra nesse estado.
    • Só é possível que passe para esse estado caso esteja ativa ou em processo de efetivação.
    • Em caso de uma transação que não foi concluída com sucesso, ela pode ser reiniciada automaticamente.
  • Concluída
    • Estado final da transação.
    • Suas informações mantidas em catálogo já podem ser excluídas.
    • Em caso de uma transação que não foi concluída com sucesso, ela pode ser reiniciada automaticamente.

Controle de concorrência[editar | editar código-fonte]

Controle de concorrência é um método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações abortadas (rollback).

Uma transação é uma unidade que preserva consistência. Requer-se, portanto, que qualquer escalonamento produzido ao processar um conjunto de transações concorrentemente seja computacionalmente equivalente a um escalonamento produzido executando essas transações serialmente em alguma ordem. Diz-se que um sistema que garante esta propriedade assegura a seriabilidade, ou também serialização.[19]

Bloqueio[editar | editar código-fonte]

Em vez de bloquear (blocking) um banco de dados inteiro, uma transação pode bloquear apenas os itens de dados que ela acessa. Sobre tal política, a transação precisa manter bloqueios por tempo suficiente para garantir a serialização, mas por um período curto o suficiente para não prejudicar o desempenho excessivamente.[20]

Segurança[editar | editar código-fonte]

Os bancos de dados são utilizados para armazenar diversos tipos de informações, desde dados sobre uma conta de e-mail até dados importantes da Receita Federal. A segurança do banco de dados herda as mesmas dificuldades que a segurança da informação enfrenta, que é garantir a integridade, a disponibilidade e a confidencialidade. Um sistema gerenciador de banco de dados deve fornecer mecanismos que auxiliem nesta tarefa.

Uma forma comum de ataque à segurança do banco de dados é injeção de SQL, em bancos de dados que façam uso desta linguagem, mas bancos de dados NoSQL também podem ser vítimas. Para evitar estes ataques, o desenvolvedor de aplicações deve garantir que nenhuma entrada possa alterar a estrutura da consulta enviada ao sistema.

Os bancos de dados SQL implementam mecanismos que restringem ou permitem acessos aos dados de acordo com papéis ou roles fornecidos pelo administrador. O comando GRANT concede privilégios específicos para um objeto (tabela, visão, banco de dados, função, linguagem procedural, esquema ou espaço de tabelas) para um ou mais usuários ou grupos de usuários.

Falhas[editar | editar código-fonte]

Em um banco de dados, podem ocorrer falhas: de transação, de sistema ou de mídia. Na falha de transação, (falha mais comum) a transação é finalizada irregularmente. Ela normalmente é causada por falta de dados necessários ou programação equivocada. Na falha de sistema (probabilidade de ocorrência mediana), a execução do sistema é interrompida por causa de problemas como falta de energia, falha no hardware ou mau funcionamento do sistema operacional. Em uma falha de mídia, o banco de dados não fica plenamente acessível, fazendo com que parte do disco perca dados. Normalmente ocorre devido a disfunções na leitura ou parte do disco danificado.[20]

Recuperação[editar | editar código-fonte]

Existem alguns mecanismos capazes de permitir a recuperação de um banco de dados de alguma inconsistência causada por falhas internas (erros de consistência, como recuperação de um estado anterior a uma transação que deu erro) e externas (queda de energia, catástrofe ambiental).[19] Entretanto, não é um método 100% seguro.

Os mecanismos mais comuns são o Log de dados, no qual é usado em conjunto dos outros métodos; utilização de Buffer no qual, apesar de normalmente ser feito pelo próprio sistema operacional, é controle por rotinas de baixo nível pelo Sistema de gerenciamento de banco de dados. Possui também as possibilidades de Write-ahead logging e informações das transações possibilitando o REDO (refazer) e o UNDO (desfazer), assim sempre possibilitando a volta do banco de dados a um estado anterior consistente, além de cópias de sombra dos logs e dos últimos dados alterados do banco de dados.

Ações básicas da recuperação de banco de dados:

  • Transaction UNDO
    • Ocorre caso uma transação não conclua suas operações, nesse caso, todas as alterações feitas por ela são desfeitas.
  • Global UNDO
    • Ocorre quando mais de uma transação não consiga concluir suas operações, nesse caso, todas as alterações feitas por tais transações são desfeitas.
  • Partial REDO
    • Em caso de falha, alguma transação pode ter sido concluída, porém sem que suas ações fossem refletidas na base de dados. Neste caso, as modificações realizadas por essa transição são refeitas.
  • Global REDO
    • Ocorre caso a base de dados seja corrompida e todas as transações commited no banco de dados são perdidas. Nesse caso, todas as alterações vindas dessas transações que foram perdidas são refeitas.

Pesquisa[editar | editar código-fonte]

A tecnologia de banco de dados tem sido um tópico de pesquisa ativo desde 1960, tanto na academia como nos grupos de pesquisa e desenvolvimento de empresas (por exemplo, IBM Research). A atividade de pesquisa inclui teoria e desenvolvimento de protótipos. Tópicos de pesquisa notáveis incluem modelos, o conceito de transação atômica e técnicas relacionadas controle de concorrência, linguagens de consulta e métodos otimização de consulta, RAID e muito mais.

A área de pesquisa de banco de dados tem vários periódicos acadêmicos dedicados (por exemplo, ACM Transactions on Database Systems - TODS, Data and Knowledge Engineering - DKE) e conferências anuais (por exemplo, ACM SIGMOD, ACM PODS, VLDB e IEEE ICDE).

Funções internas comuns[editar | editar código-fonte]

Ver também[editar | editar código-fonte]

Referências

  1. «BANCO DE DADOS» (PDF). Zoneamento Ecológico Econômico do Estado de Minas Gerais. 1 páginas. Consultado em 23 de outubro de 2011. Um Banco de Dados é uma coleção logicamente coerente de dados com um determinado significado inerente. Os bancos de dados geográficos surgiram devido a uma grande necessidade de integração entre os dados convencionais e os dados espaciais. [...] Dados geográficos são dados como mapas, imagens de satélite, pontos, linhas, áreas, além de dados alfanuméricos que lhes são associados. 
  2. «Bancos de Dados Geográficos» (PDF). Instituto Nacional de Pesquisas Espaciais. Maio de 2005. 3 páginas. Consultado em 23 de outubro de 2011. Há quase duas décadas, bancos de dados tornaram-se o componente central de sistemas de informação [...]. Esta evolução foi possível graças a uma sólida tecnologia desenvolvida para armazenamento e manipulação de dados convencionais, em especial os chamados sistemas de gerência de bancos de dados objeto-relacionais (SGBD-OR). O projeto e operação de sistemas de informação geográfica vem seguindo o mesmo rumo, adotando bancos de dados geográficos (BDGs) como ponto central da arquitetura. 
  3. «Bancos de Dados - Conceitos Básicos» (PDF). Universidade Federal do Mato Grosso do Sul. 1 páginas. Consultado em 23 de outubro de 2011. Banco de Dados:É uma coleção de dados logicamente coerente que possui um significado implícito cuja interpretação e dada por uma determinada aplicação; representa abstratamente uma parte do mundo real, conhecida como Mini-Mundo ..., que é de interesse de uma certa aplicação 
  4. a b «Um modelo de evolução de esquemas conceituais para bancos de dados orientados a objetos com o emprego de versões» (PDF). Universidade Federal do Rio Grande do Sul. Dezembro de 1998. pp. 13;16. Consultado em 23 de outubro de 2011. Sistemas de bancos de dados orientados a objetos têm sido desenvolvidos, principalmente, para modelos e aplicações altamente dinâmicas que manuseiam objetos estruturados: grandes e complexos, que apresentam, frequentemente, modificações tanto no seu valor quanto em sua estrutura. [...] Um banco de dados sobrevive, tipicamente, a décadas servindo programas de aplicação, entretanto, com o passar do tempo, alterações são requeridas a fim de refletir de forma completa e concisa a parte relevante do mundo real que está sendo modelada. [...] Bancos de dados orientados a objetos permitem ainda uma modelagem mais dinâmica e abrangente da realidade, sendo geralmente adotados para modelagem de estruturas complexas presentes em aplicações de bancos de dados não-convencionais. 
  5. «Banco de Dados» (PDF). Universidade de Brasília. 3 páginas. Consultado em 23 de outubro de 2011. O que é um banco de dados: coleção de informações que existe por um longo período de tempo e que é gerenciada por um SGBD. 
  6. LAUDON, K.C.; LAUDON, J.P. (2011). Sistemas de Informação Gerenciais. São Paulo: Pearson Prentice Hall. p. 114 
  7. https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm
  8. a b «Projeto de Banco de Dados» (PDF). Universidade Federal do Rio Grande do Sul. Juliano Ribeiro. 1998. pp. V. Consultado em 23 de outubro de 2011. Sistemas de gerência de banco de dados (SGBD) surgiram no início da década de 70 com o objetivo de facilitar a programação de aplicações de banco de dados (BD). [...] Nessa mesma época, houve um investimento considerável de pesquisa na área de banco de dados. Esse investimento resultou em um tipo de SGBD, o SGBD relacional. A partir da década de 80 [...] este tipo de SGBD passou a dominar o mercado, tendo se convertido em padrão internacional. O desenvolvimento de sistemas de informação ocorre hoje quase que exclusivamente sobre banco de dados, com uso de SGBD relacional. 
  9. a b c «INTRODUÇÃO A BANCO DE DADOS» (PDF). Universidade de São Paulo. Fevereiro de 2005. pp. 6;15. Consultado em 23 de outubro de 2011. O primeiro [...] (SGBD) comercial surgiu no final de 1960 com base nos primitivos sistemas de arquivos disponíveis na época, os quais não controlavam o acesso concorrente por vários usuários ou processos. Os SGBDs evoluíram desses sistemas de arquivos de armazenamento em disco, criando novas estruturas de dados com o objetivo de armazenar informações. Com o tempo, os SGBD’s passaram a utilizar diferentes formas de representação, ou modelos de dados, para descrever a estrutura das informações contidas em seus bancos de dados. Atualmente, os seguintes modelos de dados são normalmente utilizados pelos SGBD’s: modelo hierárquico, modelo em redes, modelo relacional (amplamente usado) e o modelo orientado a objetos. [...] Um [...] (SGBD) é uma coleção de programas que permitem aos usuários criarem e manipularem uma base de dados. Um SGBD é, assim, um sistema de software de propósito geral que facilita o processo de definir, construir e manipular bases de dados de diversas aplicações. 
  10. «Introdução a Banco de Dados» (PDF). Universidade Federal do Rio de Janeiro. 9 páginas. Consultado em 23 de outubro de 2011. Antes de SGBDs as aplicações utilizavam sistemas de arquivos do Sistema Operacional. Através de arquivos, as aplicações armazenavam seus dados através das interações com a aplicação. 
  11. «Visão geral de Segurança em Bancos de Dados» (PDF). Universidade Católica de Brasília. Ly-online. 1 páginas. Consultado em 23 de outubro de 2011. Com a grande utilização de sistemas baseados em tecnologia, os Bancos de Dados são hoje uma ferramenta vital paras as organizações. 
  12. «Mineração de Dados em Grandes Bancos de Dados Geográficos» (PDF). Instituto Nacional de Pesquisas Espaciais. Novembro de 2001. 3 páginas. Consultado em 23 de outubro de 2011. Sistemas gerenciadores de banco de dados estão presentes na maioria das organizações públicas e empresas de médio e grande porte, contendo os mais diferentes dados sobre produtos, fornecedores, clientes, empregados, etc. 
  13. «Bancos de Dados Distribuídos» (PDF). Universidade Federal de Santa Catarina. 4 páginas. Consultado em 23 de outubro de 2011. Bancos de Dados: [...] usados pela imensa maioria das empresas; exercem papel vital na operação da empresa. 
  14. https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm
  15. Alves, William P (2014). Banco de dados. [S.l.]: Editora Saraiva 
  16. «Bancos de Dados Relacionais». www.fatecsp.br. Consultado em 29 de junho de 2015 
  17. BATISTA, Emerson de Oliveira (2017). Sistemas de informação: o uso consciente da tecnologia para o gerenciamento. São Paulo: Saraiva 
  18. Morais, José Carlos Vieira (2018). «Recuperação de transações em bases de dados NoSQL». Consultado em 2 de setembro de 2020 
  19. a b Ramez Elmasri e Shamkant B. Navathe, Sistemas de Banco de Dados, 6.ed., São Paulo: Pearson Addison Wesley, 2011.
  20. a b Silberschatz, Abraham (2012). Sistemas de Banco de Dados tradução da 6° edição. [S.l.]: Campus 

Ligações externas[editar | editar código-fonte]

O Commons possui uma categoria com imagens e outros ficheiros sobre Banco de dados