𝖂𝖎ƙ𝖎𝖊

Banco de dados: mudanças entre as edições

imported>Hamaranto
mSem resumo de edição
imported>Lucas F Reis
Sem resumo de edição
 
Linha 1: Linha 1:
Bancos de Dados são arquivos com uma estrutura regular que organizam [[informação | informações]].
{{mais notas|data=março de 2022}}
{{corrigir}}
[[Ficheiro:Postgres Query.jpg|thumb|Exemplo de ''output'' (saída) de uma interrogação [[SQL]] a uma base de dados.]]
{{PBPE|Bancos de dados|bases de dados}}<ref>{{citar livro|título=Sistemas de Informação Gerenciais|sobrenome=LAUDON|nome=K.C.|editora=Pearson Prentice Hall|ano=2011|local=São Paulo|página=114|isbn=|nome2=J.P.|sobrenome2=LAUDON}}</ref> são conjuntos de [[Arquivo_de_computador|arquivos]] relacionados entre si, com registros sobre pessoas, lugares ou informações em geral. 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 científico]].<ref name="ref 1"/><ref name="ref 2">{{citar web|url=http://mtc-m12.sid.inpe.br/col/sid.inpe.br/iris@1912/2005/07.01.19.10/doc/Pr%E9-Texto.pdf|data=Maio de 2005|acessodata=23 de outubro de 2011|publicado=[[Instituto Nacional de Pesquisas Espaciais]]|formato=PDF|título=Bancos de Dados Geográficos|páginas=3|citação=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.}}</ref><ref name="p5">{{citar web |url=http://www.dct.ufms.br/~edson/bd1/bd1.pdf |título=Bancos de Dados - Conceitos Básicos |acessodata=23 de outubro de 2011 |formato=PDF |publicado=[[Universidade Federal do Mato Grosso do Sul]] |páginas=1 |citação=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}}</ref> São de vital importância para [[Empresa|empresas]] e há mais de duas décadas, se tornaram a principal peça dos sistemas de informação e segurança. Normalmente, existem por vários anos sem alterações em sua estrutura sistemática.<ref name="ref 3"/><ref name="p6">{{citar web |url=http://www.cic.unb.br/~fernando/matdidatico/apostilas/resumo/bdadossp.pdf |título=Banco de Dados |acessodata=23 de outubro de 2011 |formato=PDF |publicado=[[Universidade de Brasília]] |páginas=3 |citação=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.}}</ref>


Essas estruturas podem ter a forma de uma tabela. Cada tabela é composta por linhas e colunas. As informações utilizadas para um mesmo fim são agrupadas em uma base de dados.
Os bancos de dados são operados pelos [[Sistema de gerenciamento de banco de dados|Sistemas Gerenciadores de Bancos de Dados]] ('''SGBD'''), que surgiram na [[década de 1970]].<ref name="ref 5"/><ref name="p3"/> Antes destes, as [[aplicações]] usavam sistemas de arquivos do [[sistema operacional]] para armazenar suas informações.<ref name="p3"/><ref name="p1">{{citar web|url=http://www.cos.ufrj.br/~marta/BdRel.pdf|título=Introdução a Banco de Dados|acessodata=23 de outubro de 2011|publicado=[[Universidade Federal do Rio de Janeiro]]|páginas=9|formato=PDF|citação=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.}}</ref> Na [[década de 1980]], a tecnologia de SGBD relacional passou a dominar o mercado; Atualmente é utilizada em praticamente todos os bancos de dados.<ref name="ref 5">{{citar web |url=http://www.julianoribeiro.com.br/troca/banco_de_dados/material_der.pdf |título=Projeto de Banco de Dados |acessodata=23 de outubro de 2011 |data=1998 |formato=PDF |obra=[[Universidade Federal do Rio Grande do Sul]] |publicado=Juliano Ribeiro |páginas=V |língua= |língua2= |língua3= |lang= |citação=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.}}</ref><ref name="p3">{{citar web |url=http://www.ime.usp.br/~jef/apostila.pdf |título=INTRODUÇÃO A BANCO DE DADOS |acessodata=23 de outubro de 2011 |data=Fevereiro de 2005 |formato=PDF |publicado=[[Universidade de São Paulo]] |páginas=6;15 |citação=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.}}</ref> Outro tipo notável é o SGBD Orientado a Objetos, implementado em bancos de dados com estruturas complexas ou aplicações que mudam constantemente.<ref name="ref 3">{{citar web |url=http://www.lume.ufrgs.br/handle/10183/26388 |título=Um modelo de evolução de esquemas conceituais para bancos de dados orientados a objetos com o emprego de versões |acessodata=23 de outubro de 2011 |data=Dezembro de 1998 |formato=PDF |publicado=[[Universidade Federal do Rio Grande do Sul]] |páginas=13;16 |citação=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.}}</ref>


Em sistemas computacionais, bases de dados são gerenciadas por um sistema de gestão de bancos de dados, ou SGBD. A apresentação dos dados pode ser semelhante à de uma planilha eletrônica, porém os sistemas de gestão de banco de dados possuem características especiais para o armazenamento, classificação e recuperação dos dados.
A principal aplicação de banco de dados é o controle de operações empresariais.<ref name="ref 6">{{citar web |url=http://www.lyfreitas.com/artigos_mba/artbancodedados.pdf |título=Visão geral de Segurança em Bancos de Dados |acessodata=23 de outubro de 2011 |formato=PDF |obra=[[Universidade Católica de Brasília]] |publicado=Ly-online |páginas=1 |citação=Com a grande utilização de sistemas baseados em tecnologia, os Bancos de Dados são hoje uma ferramenta vital paras as organizações.}}</ref><ref name="ref 4">{{citar web|url=http://www.dpi.inpe.br/geopro/modelagem/relatorio_data_mining.pdf|data=Novembro de 2001|acessodata=23 de outubro de 2011|publicado=[[Instituto Nacional de Pesquisas Espaciais]]|formato=PDF|título=Mineração de Dados em Grandes Bancos de Dados Geográficos|páginas=3|citação=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.}}</ref><ref name="p4">{{citar web |url=http://www.inf.ufsc.br/~frank/BDD/BDDIntro.pdf |título=Bancos de Dados Distribuídos |acessodata=23 de outubro de 2011 |formato=PDF |publicado=[[Universidade Federal de Santa Catarina]] |páginas=4 |citação=Bancos de Dados: [...] usados pela imensa maioria das empresas; exercem papel vital na operação da empresa.}}</ref> Outra aplicação também importante é o gerenciamento de informações de estudos, como fazem os [[Banco de dados geográficos|Bancos de Dados Geográficos]], que unem informações convencionais a espaciais.<ref name="ref 1">{{citar web|url=http://www.zee.mg.gov.br/zee_externo/pdf/componentes_geofisico_biotico/2banco_de_dados.pdf|título=BANCO DE DADOS|acessodata=23 de outubro de 2011|publicado=Zoneamento Ecológico Econômico do Estado de Minas Gerais|páginas=1|formato=PDF|citação=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.}}</ref>


Existe uma grande variedade de bancos de dados, desde exemplos simples como uma simples coleção de tabelas até um modelo teoricamente definido, o [[banco de dados relacional | relacional]].
== Modelos de base de dados ==
[[Imagem:Database_models.jpg|thumb|350px|Composição de cinco modelos de banco de dados.]]
Existem vários Modelos de Base de Dados: Modelo Plano (ou tabular), [[Modelo em rede|Modelo em Rede]], [[Modelo hierárquico|Modelo Hierárquico]], [[Modelo relacional|Modelo Relacional]], [[Banco de dados orientado a objetos|Orientado a objetos]] e [[Banco de dados objeto-relacional|Objeto-Relacional]].
* O '''modelo plano (ou tabular)''' consiste de [[Matriz (matemática)|matrizes]] simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc. Este modelo plano é a base das [[planilha eletrônica|planilhas eletrônicas]];
* O '''modelo em rede''' permite que várias tabelas sejam usadas simultaneamente por meio do uso de [[Apontador (programação)|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 (estrutura de dados)|árvore]] (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por [[teoria dos grafos|grafos]];
* [[Banco de dados relacional|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 o cálculo relacionais;
** Uma coleção de [[Restrições de integridade|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.


Os banco de dados são diferenciados por muitas características. A mais útil e usada é o modelo de programação.
=== Bases de dados relacionais ===


O modelo plano, ou tabular, é basicamente uma matriz bi-dimensional de elementos de [[dados]] na qual todos os membros de uma dada columa possuem valores similares, e todos os membros de uma linha estão relacionados entre si.
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 (''[[Query by Example|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.
Por exemplo, um banco de dados para segurança do sistema pode ter colunas de nome e de senha. Cada linha deve ter a senha específica associada a um usuário específico.
Freqüentemente, as colunas de uma tabela possuem um tipo de dados associado, definindo-as como dados de caractere, informações de data ou hora, números inteiros ou em ponto flutuante.


O [[modelo de rede]] amplia o modelo de tabela permitindo a adição de múltiplas tabelas. Um tipo de coluna de tabela pode ser definido como uma referência a uma ou mais entradas de uma tabela diferente. Assim, as tabelas são relacionadas por meio de referências, o que pode ser visualizado como uma estrutura de rede. Um subconjunto particular do modelo de rede, o [[modelo hierárquico]], limita os relacionamentos a uma estrutura de árvore, ao contrário da estrutura aplicada pelo modelo de rede completo.
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 a pé da letra - lembre-se das [[12 regras de Codd|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 [[Microsoft Access|Access]], [[Oracle (banco de dados)|Oracle]], [[MySQL]], [[PostgreSQL]], entre outros.<ref>{{Citar web|título = Bancos de Dados Relacionais|URL = http://www.fatecsp.br/dti/tcc/tcc0025|obra = www.fatecsp.br|acessadoem = 2015-06-29}}</ref>


Os [[banco de dados relacional|bancos de dados relacionais]] são constituídos não de tabelas, mas de três componentes: uma coleção de estruturas de dados, a saber [[relações]]; um conjunto de operadores, a saber a [[álgebra relacional | álgebra]] e o [[cálculo relacional | cálculo]] relacionais; e um conjunto de restrições de integridade que definem os conjuntos de estados e mudanças de estado consistentes do banco de dados.
== Aplicações de bancos de dados ==
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árias grandes onde a coordenação entre muitos usuários é necessária.<ref>{{citar livro|título=Sistemas de informação: o uso consciente da tecnologia para o gerenciamento|ultimo=BATISTA|primeiro=Emerson de Oliveira|editora=Saraiva|ano=2017|local=São Paulo|página=|páginas=}}</ref> 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''.


Diferentemente dos bancos de dados em rede, os relacionamentos entre as tabelas não são codificadas explicitamente na sua definição. Em vez disso, se faz implicitamente pela a presença de atributos de mesmo tipo.  Como resultado, bancos de dados relacionais podem ser reorganizados e utilizados de maneira flexível e de formas não previstas pelos projetistas originais.  Por causa dessa flexibilidade, muitos bancos de dados são baseados no modelo relacional, embora imperfeitamente, especificamente o [[SQL]].
== Transação ==
Uma transação é um conjunto de procedimentos, executados num banco de dados, que o usuário percebe como uma única ação.


Todos os tipos de bancos de dados podem ter seu desempenho aumentado pelo uso de índices.  O tipo mais comum de índice é uma lista ordenada dos valores de uma coluna de uma tabela, contendo ponteiros para as linhas associadas a cada valor. Um índice permite que o conjunto das linhas de uma tabela que satisfazem determinado critério sejam localizadas rapidamente. Há vários métodos de indexação utilizados comumente, como árvores B, hashes e listas encadeadas.
A integridade de uma transação depende de quatro propriedades, conhecidas como [[ACID]]:<ref>{{Citar periódico |titulo=Recuperação de transações em bases de dados NoSQL |url=http://repositorium.sdum.uminho.pt/ |data=2018 |acessodata=2020-09-02 |primeiro=José Carlos Vieira |ultimo=Morais}}</ref>


Em anos recentes, o modelo da [[orientação a objeto]] vem sendo aplicado também aos bancos de dados, criando um novo modelo de programação conhecido como [[banco de dados orientado a objeto|bancos de dados orientados a objeto]]. Os objetos são valores definidos segundo classes, ou tipos de dados, com seus próprios operadores (métodos). Com o passar do tempo, os sistemas gestores de bancos de dados orientados a objeto e SQL se aproximaram.  Muitos sistemas orientados a objeto são implementados sobre bancos de dados SQL.
* [[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).
* [[ACID#Consistência|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.
* [[ACID#Isolamento|Isolamento]]
** Cada transação funciona completamente à parte de outras transações. Todas as operações são parte de uma transação única. O principio é 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).
* [[ACID#Durabilidade|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:


Os bancos de dados são utilizados em muitas aplicações, abrangendo praticamente todo o campo dos [[software | programas de computador]]. Os bancos de dados são o método de armazenamento preferencial para aplicações multiusuário, nas quais é necessário haver coordenação entre vários usuários. Entretanto, são convenientes também para indivíduos, e muitos programas de correio eletrônico e organizadores pessoais baseiam-se em tecnologias padronizadas de bancos de dados.
* 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  [[Banco de dados#Recuperação de bancos de dados|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.


Um '''banco de dados''' é um conjunto de [[informações]] com uma estrutura regular. Um banco de dados é normalmente, mas não necessariamente, armazenado em algum formato de máquina lido pelo computador. Há uma grande variedade de bancos de dados, desde de simples tabelas armazenadas em um único arquivo até gigantescos bancos de dados com muitos milhões de registros, armazenados em salas cheias de discos rígidos.
== Controle de concorrência ==
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'').


Bancos de dados caracteristicamente modernos são desenvolvidos desde os anos da década de 1960. Um pioneiro nesse trabalho foi [[Charles Bachman]].
Uma transação é uma unidade que preserva consistência. Requer-se, portanto, que qualquer escalonamento produzido ao se 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]]<ref name="elmasri" />.


A maneira mais prática de classificar bancos de dados é de acordo com o modelo de programação associado ao banco de dados. Diversos modelos foram utilizados ao longo da história, por determinados períodos. Historicamente, o modelo de '''bancos de dados hierárquico''' foi implementado primeiro; então surgiu o '''modelo de bancos de dados em rede'''; daí o '''modelo de bancos de dados relacional''' surgiu e ganhou destaque, acompanhado daquilo que é chamado modelo plano (tabular) para fins mais diretos e simples. Os dois primeiros e o último nunca foram descritos teoricamente, e são classificados como modelos de dados unicamente em contraste com o modelo relacional (que tem uma teoria de suporte). Esses três modelos sem teoria própria surgiram basicamente a partir de estruturas e modelos de programação, não modelos de dados.
== Bloqueio ==
Em vez de bloquear (''locking'') 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.<ref name=":0">{{citar livro|título=Sistemas de Banco de Dados tradução da 6° edição|ultimo=Silberschatz|primeiro=Abraham|editora=Campus|ano=2012|local=|páginas=|acessodata=}}</ref>


== Modelos de banco de dados ==
== Segurança ==
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.


O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de [[dado]]s; todos os membros de uma determinada coluna devem ter valores similares, e todos os membros de uma linha são presumivelmente relacionados. Por exemplo, colunas com nome do usuário e senha podem ser usadas como parte de um sistema de dados de segurança. Cada coluna deverá ter uma senha específica relacionada com o usuário específico, registrado naquela mesma linha. Colunas de uma tabela geralmente têm um tipo de dado associado a elas, definindo se ali serão registrados dados alfanuméricos, datas ou horas, inteiros, números reais, etc. Este modelo plano é a base das [[planinha eletrônica|planilhas eletrônicas]].
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.


{{msg:emtraducao2}}
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.


The [[network database|network model]] allows multiple tables to be used together though the use of pointers (or references). Some columns contain pointers to different tables instead of data. Thus, the tables are related by references, which can be viewed as a network structure. A particular subset of the network model, the [[hierarchical database|hierarchical model]], limits the relationships to a tree structure, instead of the more general directed [[graph theory|graph]] structure implied by the full network model.
== Falhas ==
Em um [[bancos de dados]] pode haver falhas, elas podem ser 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 falha de mídia, o banco de dados não fica plenamente acessível, fazendo com que parte do disco perca dados. Normalmente ocorrido por causa de disfunções na leitura ou parte do disco danificado.<ref name=":0" />


[[Relational database|Relational databases]] consist not of tables, but of three components: a collection of data structures, namely relations, sometimes incorrectly identified with tables; a collection of operators, the relational algebra and calculus; and a collection of integrity constraints, defining the set of consistent database states and changes of state.  The integrity constraints can be of four types: domain (AKA type), attribute, relvar and and database constraints.
== Recuperação ==
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).<ref name="elmasri">Ramez Elmasri e Shamkant B. Navathe, Sistemas de Banco de Dados, 6.ed., São Paulo: Pearson Addison Wesley, 2011.</ref>. Entretanto, não é um método 100% seguro.


Unlike the hierarchical and network models, there are no pointers whatsoever, according to the Information Principle: all information must be represented as data values; attributes of any type represent relationships between relations.  Relational databases allow users (including programmers) to write queries that were not anticipated by the database designer.  As a result, relational databases can be used by multiple applications in ways the original designers did not foresee, which is especially important for databases that might be used for decades.  This has made relational databases very popular with businesses.
Os mecanismos mais comuns são o [[Log de dados]], no qual é usado em conjunto dos outros métodos; utilização de [[Buffer_(ciência_da_computação)|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 {{ill|en|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.


The [[relational model]] is a mathematical theory developed by [[Ted Codd]] to describe how relational databases should work.  Although this theory is the basis for relational database software, very few database management systems actually follow the model very closely and all have features violating the theory, thus increasing complexity and subtracting power.  Therefore they should not be called relational DBMSs, but SQL (or some other language) ones.
Ações básicas da recuperação de banco de dados:


== Implementations and indexing ==
* 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 fosse refletidas na base de dados. Nesse 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.


All of these kinds of database can take advantage of indexing to increase their speed.  The most common kind of index is a sorted list of the contents of some particular table column, with pointers to the row associated with the value. An index allows a set of table rows matching some criterion to be located quickly. Various methods of indexing are commonly used, including b-trees, hashes, and linked lists are all common indexing techniques.
== Pesquisa ==
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ótipo | protótipos]]. Tópicos de pesquisa notáveis incluem[[Modelo de dados | 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.


Relational and SQL DBMS have the advantage that indexes can be created or dropped without changing existing applications, because applications don't use the indexes directly.  Instead, the database software decides on behalf of the application which indexes to use.  The database chooses between many different strategies based on which one it estimates will run the fastest.
A área de pesquisa de banco de dados tem vários [[Revista científica|periódicos acadêmicos]] dedicados (por exemplo, '' ACM Transactions on Database Systems '' - TODS, '' Data and Knowledge Engineering '' - DKE) e conferências anuais (por exemplo, [[Association for Computing Machinery |ACM]] SIGMOD, ACM PODS, VLDB e [[IEEE]] ICDE).


== Mapping objects into databases ==
== Funções internas comuns ==
* [[Tabelas (banco de dados)|Tabelas]]
* [[Regras (banco de dados)|Regras]]
* [[Procedimento armazenado (banco de dados)|Procedimentos armazenados (mais conhecidos como ''stored procedures'')]]
* [[Gatilho (banco de dados)|Gatilho]]
* ''[[Default (computação)|Default]]''
* [[Visão (banco de dados)|Visão]]
* [[Índice (banco de dados)|Índice]]
* Generalizadores


In recent years, the [[object-oriented]] paradigm has been applied to databases as well, creating a new programming model known as [[object database|object databases]].  These databases attempt to overcome some of the difficulties of using objects with the SQL DBMSs.  An object-oriented program allows objects of the same type to have different implementations and behave differently, so long as they have the same interface ([[polymorphism_(computer_science)|polymorphism]]).  This doesn't fit well with a SQL database where user-defined types are difficult to define and use, and where the Two Great Blunders prevail: the identification of classes with tables (the correct identification is of classes with types, and of objects with values), and the usage of pointers.
== Ver também ==
 
* [[Big data|Big Data]]
A variety of ways have been tried for storing objects in a database, but there is little consensus on how this should be done.  Implementing object databases undo the benefits of relational model by introducing pointers and making ad-hoc queries more difficult.  This is because they are essentially adaptations of obsolete network and hiearchical databases to object-oriented programming.  As a result, object databases tend to be used for specialized applications and general-purpose object databases have not been very popular.  Instead, objects are often stored in SQL databases using complicated mapping software.  At the same time, SQL DBMS vendors have added features to allow objects to be stored more conveniently, drifting even further away from the relational model.
 
== Applications of databases ==
 
Databases are used in many applications, spanning virtually the entire range of [[computer software]]. Databases are the preferred method of storage for large multiuser applications, where coordination between many users is needed. Even individual users find them convenient, though, and many electronic mail programs and personal organizers are based on standard database technology.
 
=== Database application ===
 
A '''database application''' is a type of [[computer application]] dedicated to managing a database. Database applications span a huge variety of needs and purposes, from small user-oriented tools such as an address book, to huge enterprise-wide systems for tasks like [[accounting]].
 
The term "database application" usually refers to software providing a user interface to a database.  The software that actually manages the data is usually called a [[database management system]] (DBMS) or (if it is embedded) a database engine.
 
Examples of database applications include [[Microsoft Access]], [[dBASE]], [[FileMaker]] and (to some degree) [[HyperCard]].
 
In March, [[2004]], [[AMR Research]] (as cited in the CNET News.com article listed in the "References" section) had predicted that open source database applications would come into wide acceptance in [[2006]].
 
== Transactions and concurrency ==
 
In addition to their data model, most practical databases attempt to enforce a [[database transaction]] model that has desirable data integrity properties. Ideally, the database software should enforce the ACID rules:
 
* [[Atomicity]] - either all or no operations are completed. (Transactions that can't be finished must be completely undone.)
* [[Consistency]] - all transactions must leave the database in consistent state.
* [[Isolation ]]- transactions can't interfere with each other's work and incomplete work isn't visible to other transactions.
* [[Durability]] - successful transactions must persist through crashes.
 
In practice, many DBMS's allow some of these rules to be relaxed for better performance.
 
[[Concurrency control]] is a method used to ensure transactions are executed in a safe manner and follows the ACID rules. The DBMS must be able to ensure only serializable, recoverable schedules are allowed, and that no actions of committed transactions are lost while undoing aborted transactions.
 
==See also==
* [[CDDB]]
* [[CDDB]]
* [[Client-Server]]
* [[Cliente-servidor]]
* [[Database management system]]
* [[Oracle (banco de dados)]]
* [[Database normalization]]
* [[Sistema de gerenciamento de banco de dados]]
* [[Distributed database]]
* [[normalização de dados|Normalização]]
* [[Hierarchical database|Hierarchic Database]]
* [[Banco de dados distribuídos]]
* [[Internet Movie Database]]
* [[Arquitetura de dados]]
* [[Java Database Connectivity]]
* [[Sistema de informação geográfica|Banco de dados geográficos]]
* [[Key field]]
* [[Administração de dados]]
* [[Modelo hierárquico|Banco de dados hierárquico]]
* [[Object database|Banco de Dados Orientado a Objetos]]
* [[Prevayler]]
* [[MongoDB]]
* [[OLAP]]
* [[OLAP]]
* [[Relational model]]
* [[Modelo relacional]]
* [[SQL]] (Structured Query Language)
* [[SQL]] (''Structured Query Language'')
* [[Object database]]
* [[SQLite]]
* [[List of important publications in computer science#Databases| Important publications in databases]]
* [[Matriz CRUD]]
* [[Software engineering]] and [[List of software engineering topics]]
* [[Engenharia de software|Engenharia de ''software'']]
* [[Lista de banco de dados]]
 
{{Referências}}


== References ==
== Ligações externas ==
{{Commonscat|Databases}}
* [http://news.com/2100-7344_3-5171543.html?part=rss&tag=feed&subj=news CNET News.com article, An]


* [http://news.com.com/2100-7344_3-5171543.html?part=rss&tag=feed&subj=news CNET News.com article, An]
{{Banco de dados}}
{{Controle de autoridade}}
{{Portal3|Tecnologias de informação}}


[[de:Datenbank]]
{{DEFAULTSORT:Banco Dados}}
[[eo:Datumbazo]]
[[Categoria:Bancos de dados]]
[[fr:Base de données]]
[[nl:Database]]
[[ja:&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;]]
[[pl:Baza danych]]
[[ro:Baz&#259; de date]]
[[sv:Databas]]
[[uk:&#1041;&#1072;&#1079;&#1072; &#1076;&#1072;&#1085;&#1080;&#1093;]]
[[zh:&#25968;&#25454;&#24211;]]

Edição atual tal como às 03h04min de 29 de agosto de 2022

Exemplo de output (saída) de uma interrogação SQL a uma base de dados.

Bancos de dados (português brasileiro) ou bases de dados (português europeu)[1] são conjuntos de arquivos relacionados entre si, com registros sobre pessoas, lugares ou informações em geral. 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 científico.[2][3][4] São de vital importância para empresas e há mais de duas décadas, se tornaram a principal peça dos sistemas de informação e segurança. Normalmente, existem por vários anos sem alterações em sua estrutura sistemática.[5][6]

Os bancos de dados são operados pelos Sistemas Gerenciadores de Bancos de Dados (SGBD), que surgiram na década de 1970.[7][8] Antes destes, as aplicações usavam sistemas de arquivos do sistema operacional para armazenar suas informações.[8][9] Na década de 1980, a tecnologia de SGBD relacional passou a dominar o mercado; Atualmente é utilizada em praticamente todos os bancos de dados.[7][8] Outro tipo notável é o SGBD Orientado a Objetos, implementado em bancos de dados com estruturas complexas ou aplicações que mudam constantemente.[5]

A principal aplicação de banco de dados é o controle de operações empresariais.[10][11][12] Outra aplicação também importante é o gerenciamento de informações de estudos, como fazem os Bancos de Dados Geográficos, que unem informações convencionais a espaciais.[2]

Modelos de base de dados

Composição de cinco modelos de banco de dados.

Existem vários Modelos de Base de Dados: Modelo Plano (ou tabular), 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 o 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

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 a 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.[13]

Aplicações de bancos de dados

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árias grandes onde a coordenação entre muitos usuários é necessária.[14] 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

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:[15]

  • 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 principio é 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

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 se 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[16].

Bloqueio

Em vez de bloquear (locking) 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.[17]

Segurança

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

Em um bancos de dados pode haver falhas, elas podem ser 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 falha de mídia, o banco de dados não fica plenamente acessível, fazendo com que parte do disco perca dados. Normalmente ocorrido por causa de disfunções na leitura ou parte do disco danificado.[17]

Recuperação

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).[16]. 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 Predefinição:Ill 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 fosse refletidas na base de dados. Nesse 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

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

Ver também

Referências

  1. LAUDON, K.C.; LAUDON, J.P. (2011). Sistemas de Informação Gerenciais. São Paulo: Pearson Prentice Hall. p. 114 
  2. 2,0 2,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. 
  3. «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. 
  4. «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 
  5. 5,0 5,1 «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. 
  6. «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. 
  7. 7,0 7,1 «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. 
  8. 8,0 8,1 8,2 «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. 
  9. «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. 
  10. «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. 
  11. «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. 
  12. «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. 
  13. «Bancos de Dados Relacionais». www.fatecsp.br. Consultado em 29 de junho de 2015 
  14. BATISTA, Emerson de Oliveira (2017). Sistemas de informação: o uso consciente da tecnologia para o gerenciamento. São Paulo: Saraiva 
  15. Morais, José Carlos Vieira (2018). «Recuperação de transações em bases de dados NoSQL». Consultado em 2 de setembro de 2020 
  16. 16,0 16,1 Ramez Elmasri e Shamkant B. Navathe, Sistemas de Banco de Dados, 6.ed., São Paulo: Pearson Addison Wesley, 2011.
  17. 17,0 17,1 Silberschatz, Abraham (2012). Sistemas de Banco de Dados tradução da 6° edição. [S.l.]: Campus 

Ligações externas

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

Predefinição:Banco de dados

talvez você goste