Base de dados - Database

Da Wikipédia, a enciclopédia livre

Uma instrução SQL select e seu resultado.

A base de dados é uma coleção organizada de dados , geralmente armazenados e acessados eletronicamente a partir de um sistema de computador. Onde os bancos de dados são mais complexos que muitas vezes são desenvolvidos usando formais de design e modelagem técnicas.

O sistema de gerenciamento de banco de dados (DBMS) é o software que interage com os usuários finais , aplicações e banco de dados próprio para capturar e analisar os dados. O software DBMS também abrange as instalações nucleares fornecidas para administrar o banco de dados. A soma total do banco de dados, o DBMS e os aplicativos associados pode ser referido como um "sistema de banco de dados". Muitas vezes o termo "banco de dados" também é usado para se referir livremente para qualquer um dos DBMS, o sistema de banco de dados ou um aplicativo associado com o banco de dados.

Os cientistas da computação podem classificar os sistemas de gerenciamento de banco de dados de acordo com os modelos de banco de dados que eles suportam. Bancos de dados relacionais tornou-se dominante na década de 1980. Estes dados modelo como linhas e colunas em uma série de tabelas , ea grande maioria usa SQL para a escrita e dados de consulta. Na década de 2000, os bancos de dados não relacionais tornou-se popular, conhecido como NoSQL , porque eles usam diferentes linguagens de consulta .

Terminologia e visão geral

Formalmente, um "banco de dados" refere-se a um conjunto de dados relacionados e a forma como é organizado. O acesso a esses dados é normalmente fornecido por um "sistema de gerenciamento de banco de dados" (DBMS), constituído por um conjunto integrado de software de computador que permite aos usuários interagir com um ou mais bancos de dados e fornece acesso a todos os dados contidos no banco de dados (embora restrições pode existir que limitam o acesso aos dados em particular). O DBMS oferece várias funções que permitem a entrada, armazenamento e recuperação de grandes quantidades de informações e fornece maneiras de gerir a forma como essa informação é organizada.

Devido à estreita relação entre os dois, o termo "base de dados" é muitas vezes utilizado casualmente para referir tanto uma base de dados e as SGBD usadas para manipulá-la.

Fora do mundo de profissionais de tecnologia da informação , o termo banco de dados é muitas vezes usado para se referir a qualquer coleção de dados relacionados (como uma planilha ou um índice cartão) como requisitos de tamanho e de uso normalmente exigem o uso de um sistema de gerenciamento de banco de dados.

SGBD existentes fornecer várias funções que permitem a gestão da base de dados e os dados que podem ser classificados em quatro principais grupos funcionais:

  • Definição de dados - Criação, modificação e remoção de definições que definem a organização dos dados.
  • Atualização - Inserção, modificação e eliminação dos dados reais.
  • Recuperação - Fornecimento de informações numa forma directamente utilizável ou para processamento adicional por outras aplicações. Os dados recuperados podem ser disponibilizadas numa forma basicamente a mesma que é armazenada na base de dados ou em uma nova forma obtida, alterando ou combinando os dados existentes do banco de dados.
  • Administração - Registrando e monitorar usuários, reforçando a segurança dos dados, monitoramento de desempenho, mantendo a integridade dos dados, lidar com controle de concorrência, e recuperar informação que tenha sido corrompido por algum evento, como uma falha de sistema inesperada.

Ambos um banco de dados e seus DBMS estão em conformidade com os princípios de um determinado modelo de banco de dados . "Sistema de banco de dados" refere-se coletivamente para o modelo de banco de dados, sistema de gerenciamento de banco de dados e banco de dados.

Fisicamente, banco de dados servidores são computadores dedicados que detêm os bancos de dados reais e executar apenas o DBMS e software relacionado. Servidores de banco de dados são geralmente multiprocessador computadores, com memória e generosas RAID arrays de disco utilizados para armazenamento estável. RAID é usado para a recuperação de dados se qualquer um dos discos falhar. Aceleradores de banco de dados de hardware, ligadas a um ou mais servidores através de um canal de alta velocidade, são também utilizados em ambientes de processamento de transacção de grande volume. SGBDs são encontrados no centro da maioria das aplicações de banco de dados . SGBDs pode ser construído em torno de um costume multitarefa do kernel com built-in de rede de apoio, mas moderno SGBDs normalmente contam com um padrão de sistema operacional para fornecer estas funções.

Desde SGBDs compreendem um significativo mercado , computação e armazenamento de fornecedores, muitas vezes levar em conta os requisitos de DBMS em seus próprios planos de desenvolvimento.

Bases de dados e DBMSs podem ser categorizados de acordo com o modelo de banco de dados (s) que eles suportam (como relacional ou XML), o tipo (s) de computador que são executados (a partir de um cluster de servidor para um telemóvel), a linguagem de consulta ( s) usado para acessar o banco de dados (como SQL ou XQuery ), e sua engenharia interna, o que afeta o desempenho, escalabilidade , resiliência e segurança.

História

O tamanhos, capacidades e desempenho de bancos de dados e seus respectivos SGBDs têm crescido em ordens de magnitude. Estes aumentos de desempenho foram habilitados pelo progresso da tecnologia nas áreas de processadores , memória do computador , armazenamento de computador e redes de computadores . O desenvolvimento da tecnologia de banco de dados pode ser dividido em três eras com base no modelo de dados ou estrutura: navegação , SQL / relacional , e pós-relacional.

Os dois principais modelos de dados de navegação primeiros foram o modelo hierárquico eo CODASYL modelo ( modelo de rede )

O modelo relacional , proposto pela primeira vez em 1970 por Edgar F. Codd , partiram esta tradição, insistindo em que as aplicações devem procurar dados por conteúdo, em vez de links abaixo. O modelo relacional emprega conjuntos de mesas de estilo livro, cada um usado para um tipo diferente de entidade. Apenas em meados dos anos 1980 tinha hardware de computação se tornar poderoso o suficiente para permitir a ampla implantação de sistemas relacionais (SGBD além de aplicações). No início dos anos 1990, no entanto, os sistemas relacionais dominaram em todas as grande escala de processamento de dados aplicações, ea partir de 2018 eles permanecem dominante: IBM DB2 , o Oracle , MySQL e Microsoft SQL Server são os mais pesquisados DBMS . A linguagem de banco de dados dominante, SQL padronizado para o modelo relacional, tem influenciado línguas banco de dados para outros modelos de dados.

Banco de dados orientado a objetos foram desenvolvidos na década de 1980 para superar a inconveniência de diferença de impedância objeto-relacional , o que levou à cunhagem do termo "pós-relacional" e também o desenvolvimento de híbridos bancos de dados objeto-relacional .

A próxima geração de bases de dados pós-relacional no final dos anos 2000 ficou conhecido como NoSQL bancos de dados, introduzindo rápidos lojas de chave-valor e bancos de dados orientados a documentos . A competindo "próxima geração", conhecido como NewSQL bancos de dados tentativa de novas implementações que retiveram o modelo / SQL relacional enquanto aponta para coincidir com o alto desempenho do NoSQL comparação com SGBDs relacionais disponíveis comercialmente.

1960, DBMS navegação

Estrutura básica de navegação CODASYL modelo de banco de dados

A introdução do termo base de dados coincide com a disponibilidade de armazenamento de acesso directo (discos e tambores) desde meados da década de 1960. O termo representou um contraste com os sistemas baseados em fita do passado, permitindo uma utilização interactiva partilhada em vez de diariamente processamento em lote . O Dicionário de Inglês Oxford cita um relatório 1962 por Development Corporation Sistema da Califórnia como o primeiro a utilizar o termo "data-base" em um sentido técnico específico.

Como os computadores aumentaram em velocidade e capacidade, uma série de sistemas de banco de dados de uso geral emergiu; em meados da década de 1960 uma série de tais sistemas tinham entrado em uso comercial. Interesse em um padrão começou a crescer, e Charles Bachman , autor de um desses produtos, a loja de Dados Integrado (IDS), fundou o "DBTG" dentro CODASYL , o grupo responsável pela criação e padronização de COBOL . Em 1971, a DBTG entregue seu padrão, que geralmente se tornou conhecida como a "abordagem CODASYL", e logo uma série de produtos comerciais baseados nesta abordagem entraram no mercado.

A abordagem CODASYL contou com a navegação "manual" de um conjunto de dados ligados que foi formado em uma grande rede. Aplicações poderia encontrar registros por um dos três métodos:

  1. O uso de uma chave primária (conhecida como uma chave de CALC, tipicamente, implementado por hashing )
  2. Navegando relacionamentos (chamados conjuntos) de um registro para outro
  3. A verificação de todos os registos em ordem sequencial

Sistemas posteriores adicionado B-árvores para fornecer caminhos de acesso alternativo. Muitos bancos de dados CODASYL também acrescentou uma linguagem de consulta muito simples. No entanto, na contagem final, CODASYL era muito complexa e exigiu treinamento e esforço para produzir aplicações úteis significativa.

IBM também tinha sua própria DBMS em 1966, conhecido como Sistema de Gestão de Informação (IMS). IMS foi um desenvolvimento de software escrito para o programa Apollo no System / 360 . IMS foi geralmente semelhante em conceito para CODASYL, mas usou uma hierarquia rígida para o seu modelo de navegação de dados em vez de modelo de rede de CODASYL. Ambos os conceitos mais tarde ficou conhecido como bancos de dados de navegação devido à forma como os dados foram acessados, e de Bachman 1973 Turing Award apresentação foi o programador como Navigator . IMS é classificado como um banco de dados hierárquico . IDMS e Cincom Sistemas ' TOTAL banco de dados são classificadas como bancos de dados de rede. IMS permanece em uso a partir de 2014.

1970, DBMS relacional

Edgar Codd trabalhou na IBM em San Jose, Califórnia , em um de seus escritórios do ramo que estava envolvido principalmente no desenvolvimento de discos rígidos sistemas. Ele estava descontente com o modelo de navegação da abordagem CODASYL, nomeadamente a falta de um mecanismo de "pesquisa". Em 1970, ele escreveu uma série de papéis que delineou uma nova abordagem para a construção do banco de dados que, eventualmente, culminou com a inovadora um modelo relacional de dados para grandes compartilhados Bancos de Dados .

Neste artigo, ele descreveu um novo sistema para armazenar e trabalhar com grandes bases de dados. Em vez de registros a ser armazenado em algum tipo de lista ligada de registros de forma livre como na CODASYL, a idéia de Codd era usar uma " mesa " de registros de comprimento fixo, com cada tabela usada para um tipo diferente de entidade. Um sistema de lista ligada seria muito ineficiente quando armazenar bancos de dados "esparsas", onde alguns dos dados para qualquer um registro poderia ser deixado vazio. O modelo relacional resolvido este, dividindo os dados em uma série de tabelas normalizadas (ou relações ), com elementos opcionais sendo movido para fora da tabela principal para onde eles iriam ocupar apenas quarto se necessário. Os dados podem ser inserido livremente, suprimido e editado nestas tabelas, com os SGBD fazendo o que quer a manutenção necessária para apresentar uma exibição de tabela para a aplicação / utilizador.

No modelo relacional , os registros são "ligados" com as teclas virtuais não armazenados no banco de dados, mas definidos conforme necessário entre os dados contidos nos registros.

O modelo relacional também permitiu que o conteúdo do banco de dados para evoluir sem reescrita constante de links e ponteiros. A parte relacional vem de entidades referência a outras entidades no que é conhecido como um-para-muitos, como um modelo hierárquico tradicional, e muitos-para-muitos, como um modelo de navegação (rede). Assim, um modelo relacional pode expressar ambos os modelos hierárquicos e de navegação, bem como o seu modelo de tabela nativa, permitindo modelar puro ou combinado em termos destes três modelos, em que a aplicação requer.

Por exemplo, um uso comum de um sistema de banco de dados é para rastrear informações sobre usuários, o seu nome, informações de login, vários endereços e números de telefone. Na abordagem de navegação, todos esses dados seriam colocados em um único registro, e itens não utilizados simplesmente não podem ser colocados no banco de dados. Na abordagem relacional, os dados seriam normalizadas em uma tabela de usuário, uma tabela de endereços e uma mesa de número de telefone (por exemplo). Registros seriam criados nestas tabelas opcionais apenas se os números de endereço ou de telefone foram realmente prestados.

Ligando as informações de volta em conjunto é a chave para este sistema. No modelo relacional, alguns pouco de informação foi usada como uma " chave ", definindo exclusivamente um registro particular. Quando a informação estava sendo recolhida sobre um usuário, as informações armazenadas nas tabelas opcionais seria encontrada através de pesquisa para esta chave. Por exemplo, se o nome de login de um usuário é único, endereços e números de telefone para que o usuário seria registrada com o nome de login como sua chave. Este simples "re-linking" de dados relacionados de volta em uma única coleção é algo que linguagens de computador tradicionais não são projetados para.

Assim como a abordagem de navegação exigiria programas para circuito para coletar registros, a abordagem relacional exigiria loops para coletar informações sobre qualquer um recorde. Sugestões de Codd era uma linguagem orientada-set, que mais tarde iria desovar o onipresente SQL . Usando um ramo da matemática conhecido como cálculo tupla , ele demonstrou que tal sistema poderia suportar todas as operações de bancos de dados normais (inserção, atualização etc.), bem como fornecendo um sistema simples para encontrar e devolver conjuntos de dados em uma única operação.

O artigo de Codd foi apanhada por duas pessoas em Berkeley, Eugene Wong e Michael Stonebraker . Eles começaram um projeto conhecido como INGRES usando financiamento que já tinha sido atribuída para um projeto de banco de dados geográfica e programadores de estudante para produzir código. Começando em 1973, INGRES produziu os seus primeiros produtos de teste que eram geralmente pronto para uso generalizado em 1979. INGRES foi semelhante ao sistema R em uma série de maneiras, incluindo o uso de uma "linguagem" para acesso a dados , conhecido como QUEL . Com o tempo, INGRES mudou-se para o padrão SQL emergente.

Própria IBM fez uma implementação de teste do modelo relacional, PRTV , e uma produção, Business System 12 , ambas agora descontinuado. Honeywell escreveu MRDs para Multics , e agora há duas novas implementações: Alphora Dataphor e Rel . A maioria das outras implementações de DBMS normalmente chamado relacional são realmente SQL SGBDs.

Em 1970, a Universidade de Michigan começou o desenvolvimento do Sistema de Gestão de Informação MICRO com base no modelo Set-Theoretic Dados DL Childs'. MICRO foi usado para gerenciar grandes conjuntos de dados pelo Departamento do Trabalho dos EUA , a Agência de Proteção Ambiental dos Estados Unidos , e os pesquisadores da Universidade de Alberta , a Universidade de Michigan , e Wayne State University . Ele correu em computadores mainframe IBM usando o Sistema Terminal Michigan . O sistema permaneceu em produção até 1998.

Abordagem integrada

Nos anos 1970 e 1980, foram feitas tentativas para construir sistemas de banco de dados com hardware e software integrado. A filosofia subjacente era que essa integração seria proporcionar maior desempenho com menor custo. Exemplos foram IBM System / 38 , a oferta inicial da Teradata , eo Britton Lee, Inc. máquina de banco de dados.

Outra abordagem para suporte de hardware para gerenciamento de banco de dados foi ICL 's CAFS acelerador, um controlador de disco de hardware com capacidades de pesquisa programáveis. No longo prazo, esses esforços eram geralmente mal sucedida porque as máquinas de bancos de dados especializados não poderia manter o ritmo com o rápido desenvolvimento e progresso dos computadores de uso geral. Assim, a maioria dos sistemas de banco de dados hoje são sistemas de software rodando em hardware de propósito geral, usando o armazenamento de dados de computador de uso geral. No entanto, esta idéia ainda é perseguido para determinadas aplicações por algumas empresas como a Netezza e Oracle ( Exadata ).

Final dos anos 1970, DBMS SQL

IBM começou a trabalhar em um protótipo de sistema vagamente baseado em conceitos de Codd como sistema R no início de 1970. A primeira versão ficou pronta em 1974/5, e trabalho, então iniciada em sistemas de multi-mesa em que os dados poderiam ser divididos de modo que todos os dados para um registro (alguns dos quais é opcional) não tem que ser armazenado em um grande single "pedaço". Versões multi-usuário subsequentes foram testados pelos clientes em 1978 e 1979, altura em que uma padronizado linguagem de consulta - SQL - tinham sido adicionados. Idéias de Codd foram estabelecendo-se como tanto viável e superior a CODASYL, empurrando a IBM para desenvolver uma verdadeira versão de produção do sistema R, conhecido como SQL / DS , e, posteriormente, de banco de dados 2 (DB2).

Larry Ellison Oracle Database 's (ou mais simplesmente, Oracle) começou a partir de uma cadeia diferente, baseado em papéis da IBM no System R. Embora implementações do Oracle V1 foram concluídas em 1978, não foi até o Oracle Versão 2, quando Ellison bater IBM para o mercado em 1979.

Stonebraker passou a aplicar as lições de INGRES para desenvolver um novo banco de dados, Postgres, que agora é conhecido como o PostgreSQL. PostgreSQL é frequentemente usado para aplicações de missão crítica global (.org e .info registros de nomes de domínio usá-lo como seu principal armazenamento de dados , assim como muitas grandes empresas e instituições financeiras).

Na Suécia, papel de Codd também foi lido e Mimer SQL foi desenvolvido a partir de meados dos anos 1970 na Universidade de Uppsala . Em 1984, este projecto foi consolidada em uma empresa independente.

Outro modelo de dados, o modelo entidade relacionamento , surgiu em 1976 e ganhou popularidade para projeto de banco de dados , uma vez que enfatizou uma descrição mais familiar do que o modelo relacional mais cedo. Mais tarde, construções entidade-relacionamento foram adaptados como uma construção de modelagem de dados para o modelo relacional, ea diferença entre os dois tornaram-se irrelevantes.

1980, na área de trabalho

A década de 1980 inaugurou a era da computação de desktop . Os novos computadores habilitados seus usuários com planilhas como o Lotus 1-2-3 e software de banco de dados como dBASE . O produto dBASE era leve e fácil para qualquer usuário de computador para entender fora da caixa. C. Wayne Ratliff , o criador do dBASE, declarou: "dBASE era diferente de programas como o BASIC, C, Fortran e COBOL em que uma grande parte do trabalho sujo já havia sido feito A manipulação de dados é feito por dBASE vez de por. o usuário, para que o usuário possa se concentrar no que ele está fazendo, ao invés de ter que mexer com os detalhes sujos de abertura, leitura e fechamento de arquivos e gerenciamento de alocação de espaço." dBASE foi um dos melhores títulos de software de venda na década de 1980 e início de 1990.

1990, orientada para o objecto

A década de 1990, juntamente com um aumento na programação orientada a objetos , viu um crescimento na forma como os dados em vários bancos de dados foram manipulados. Programadores e designers começaram a tratar os dados em seus bancos de dados como objetos. Isso quer dizer que, se os dados de uma pessoa estavam em um banco de dados, atributos da pessoa, como seu endereço, número de telefone e idade, foram agora considerados como pertencentes a essa pessoa em vez de ser dados estranhos. Isso permite que para as relações entre os dados sejam relações com objetos e seus atributos e não para campos individuais. O termo " objecto-relacional diferença de impedância " descrito o inconveniente de tradução entre objectos programados e tabelas da base de dados. Banco de dados orientado a objetos e bancos de dados objeto-relacional tentar resolver este problema, fornecendo uma linguagem orientada a objetos (por vezes como extensões para SQL) que os programadores podem usar como alternativa para SQL puramente relacional. Do lado da programação, bibliotecas conhecidas como objeto-relacional mapeamentos (ORMs) tenta resolver o mesmo problema.

2000, NoSQL e NewSQL

Bancos de dados XML são um tipo de banco de dados orientado a documentos estruturados que permite a consulta com base em XML atributos do documento. Bases de dados XML são usados principalmente em aplicações em que os dados são convenientemente vistos como uma colecção de documentos, com uma estrutura que pode variar desde o muito flexível ao altamente rígido: os exemplos incluem artigos científicos, patentes, limalha de impostos, e registos pessoais.

Bancos de dados NoSQL são frequentemente muito rápido, não necessitam de esquemas de tabela fixa, evite participar de operações armazenando desnormalizados de dados, e são projetados para escalar horizontalmente .

Nos últimos anos, tem havido uma forte demanda por bancos de dados maciçamente distribuídos com alta tolerância a partição, mas de acordo com o teorema CAP é impossível para um sistema distribuído para fornecer simultaneamente consistência garantias, disponibilidade e tolerância a partição. Um sistema distribuído pode satisfazer qualquer duas destas garantias, ao mesmo tempo, mas não todos os três. Por essa razão, muitos bancos de dados NoSQL estão usando o que é chamado consistência eventual para fornecer ambos disponibilidade e tolerância a partição garantias com um nível reduzido de consistência dos dados.

NewSQL é uma classe de bancos de dados relacionais modernos que visa proporcionar o mesmo desempenho escalável de sistemas NoSQL para processamento de transações online (leitura e escrita) as cargas de trabalho enquanto ainda estiver usando SQL e manter as garantias ACID de um sistema de banco de dados tradicional.

Os casos de uso

Bases de dados são utilizados para apoiar as operações internas das organizações e para sustentar interações on-line com clientes e fornecedores (ver software empresarial ).

Bancos de dados são usados para armazenar informações administrativas e dados mais especializados, tais como dados de engenharia ou modelos econômicos. Exemplos incluem informatizado da biblioteca de sistemas, sistemas de reservas de voos , computadorizados sistemas de inventário partes , e muitos sistemas de gerenciamento de conteúdo que armazenam sites como coleções de páginas da web em um banco de dados.

Classificação

Uma maneira de classificar os bancos de dados envolve o tipo de seus conteúdos, por exemplo: bibliográfica , documento de texto, objetos de estatística, ou multimídia. Outra maneira é a sua área de aplicação, por exemplo: contabilidade, composições de música, filmes, bancário, manufatura, ou seguro. Uma terceira maneira é por algum aspecto técnico, tal como a estrutura de base de dados ou tipo de interface. Esta seção lista alguns dos adjetivos usados para caracterizar os diferentes tipos de bancos de dados.

  • Um banco de dados in-memory é um banco de dados que reside principalmente na memória principal , mas é normalmente apoiadas por armazenamento de dados de computador não-volátil. Bases de dados da memória principal são mais rápidos que os bancos de dados de disco, e assim são muitas vezes utilizados, onde o tempo de resposta é crítico, como em equipamentos de rede de telecomunicações.
  • Uma base de dados activa inclui uma arquitectura accionada por um evento que pode responder às condições tanto dentro como fora da base de dados. Possíveis usos incluem monitoramento de segurança, alertando, coleta de estatísticas e autorização. Muitos bancos de dados fornecem recursos de banco de dados ativos na forma de gatilhos de banco de dados .
  • Um banco de dados em nuvem se baseia em tecnologia de nuvem . Tanto o banco de dados ea maioria dos seus DBMS residem remotamente, "na nuvem", enquanto que suas aplicações são ambos desenvolvidos por programadores e posteriormente mantido e utilizado por usuários finais através de um navegador web e APIs Abertas .
  • Os armazéns de dados arquivar dados de bancos de dados operacionais e muitas vezes a partir de fontes externas, tais como empresas de pesquisa de mercado. O armazém torna-se a fonte central de dados para uso pelos gestores e outros utilizadores finais que não podem ter acesso aos dados operacionais. Por exemplo, os dados de vendas pode ser agregados aos totais semanais e convertido a partir de códigos de produtos internos para usar UPCs para que possam ser comparados com ACNielsen dados. Alguns componentes básicos e essenciais de armazenamento de dados incluem a extração, análise e mineração de dados, transformando, carregamento e gerenciamento de dados, de modo a torná-los disponíveis para uso posterior.
  • Um banco de dados dedutivo combina lógica de programação com um banco de dados relacional.
  • Um banco de dados distribuído é aquele em que os dados e os DBMS abranger vários computadores.
  • Um banco de dados orientado a documentos é projetado para armazenamento, recuperação e gerenciamento de informações, ou semi estruturado, orientado a documentos. Bancos de dados orientados a documentos são uma das principais categorias de bancos de dados NoSQL.
  • Um banco de dados integrado do sistema é um DBMS que é totalmente integrado com um software aplicativo que requer acesso aos dados armazenados de tal forma que o DBMS está escondido dos usuários finais do aplicativo e exige manutenção pouco ou nenhum curso.
  • bancos de dados de usuários finais consistem de dados desenvolvidos por usuários finais individuais. Exemplos destes são coleções de documentos, planilhas, apresentações, multimídia e outros arquivos. Vários produtos existem para apoiar esses bancos de dados. Alguns deles são muito mais simples do que os SGBDs de pleno direito, com a funcionalidade DBMS mais elementar.
  • Um sistema de base de dados associada compreende várias bases de dados diferentes, cada um com as suas próprias SGBD. Ele é tratado como uma única base de dados por um sistema de gestão de base de dados associada (FDBMS), que transparente integra vários SGBD autónomas, possivelmente, de diferentes tipos (caso em que seria também um sistema de base de dados heterogénea ), e fornece-os com uma vista conceptual integrada .
  • Às vezes o termo multi-banco de dados é usado como um sinônimo para banco de dados federado, embora possa se referir a um menos integrados (por exemplo, sem um FDBMS e um esquema integrado gerido) grupo de bancos de dados que cooperam em uma única aplicação. Neste caso, tipicamente middleware é utilizado para a distribuição, o qual inclui tipicamente um atómica protocolo de confirmação (ACP), por exemplo, a duas fases do protocolo , para permitir transações distribuídas (global) entre os bancos de dados de participantes.
  • Um banco de dados gráfico é um tipo de base de dados noSQL que utiliza estruturas de gráficos com os nós, arestas e propriedades para representar e armazenar informações. Bases de dados de gráficos gerais que podem armazenar qualquer gráfico são distintas das bases de dados de gráficos especializados, tais como triplestores e bases de dados de rede .
  • Uma matriz SGBD é um tipo de noSQL SGBD que permite a modelagem, o armazenamento e a recuperação de grandes (geralmente) de multi-dimensionais matrizes , tais como imagens de satélite e de saída de simulação do clima.
  • Em um hipertexto ou hipermídia banco de dados, qualquer palavra ou um pedaço de texto que representa um objeto, por exemplo, um outro pedaço de texto, um artigo, uma imagem ou um filme, pode ser hyperlinked a esse objeto. Bases de dados de hipertexto são particularmente úteis para organizar grandes quantidades de informação díspares. Por exemplo, eles são úteis para organizar enciclopédias online , onde os usuários podem convenientemente saltar em torno do texto. A World Wide Web é assim um grande banco de dados de hipertexto distribuído.
  • A base de conhecimento (abreviado KB , kb ou Δ) é um tipo especial de banco de dados para a gestão do conhecimento , fornecendo os meios para a computadorizado recolha, organização e recuperação de conhecimento . Também uma coleção de dados que representam problemas com suas soluções e experiências relacionadas.
  • Uma base de dados móvel pode ser realizada no ou sincronizada a partir de um dispositivo de computação portátil.
  • Bancos de dados operacionais armazenar dados detalhados sobre as operações de uma organização. Eles normalmente processo relativamente altos volumes de atualizações usando transações . Os exemplos incluem bases de dados de clientes que o contato registro, de crédito e informações demográficas sobre os clientes de uma empresa, bases de dados de pessoal que guarda informações como salário, benefícios, os dados de habilidades sobre os funcionários, planejamento de recursos empresariais sistemas que registram detalhes sobre os componentes do produto, estoque de peças e financeira bancos de dados que mantêm o controle de dinheiro da organização, contabilidade e transações financeiras.
  • Um banco de dados paralelo procura melhorar o desempenho através de paralelização para tarefas como carregar dados, índices de construção e consultas avaliando.
Os principais arquitecturas DBMS paralelas que são induzidas pela subjacente hardware arquitectura são:
  • Arquitetura de memória compartilhada , onde múltiplos processadores compartilham o espaço de memória principal, bem como outras de armazenamento de dados.
  • Arquitetura de disco compartilhado , onde cada unidade de processamento (normalmente constituído de múltiplos processadores) tem a sua própria memória principal, mas todas as unidades compartilham o outro armazenamento.
  • Arquitetura nada compartilhada , onde cada unidade de processamento tem a sua própria memória principal e outro armazenamento.
  • Bases de dados probabilísticos empregam lógica fuzzy fazer inferências a partir de dados imprecisos.
  • Em tempo real bases de dados processar transações rápido o suficiente para o resultado para voltar e ser agido sobre imediatamente.
  • Um banco de dados espacial pode armazenar os dados com características multidimensionais. As consultas sobre tais dados incluem consultas baseados em localização, como "Onde está o hotel mais próximo na minha área?".
  • Um banco de dados temporais tem um modelo de dados temporal e uma versão temporal do SQL embutido aspectos de tempo, por exemplo. Mais especificamente, os aspectos temporais costumam incluir em tempo válido e de transações em tempo.
  • Um banco de dados orientado a terminologia se baseia em um banco de dados orientado a objetos , muitas vezes personalizado para um campo específico.
  • Uma dados não estruturados de banco de dados é destinado a armazenar de forma gerenciável e protegido diversos objetos que não se encaixam naturalmente e convenientemente em bases de dados comuns. Pode incluir mensagens de email, documentos, jornais, objetos multimídia, etc. O nome pode ser enganador uma vez que alguns objetos podem ser altamente estruturado. No entanto, toda a coleção objeto possível não se encaixa em um quadro estruturado pré-definido. A maioria estabelecida SGBDs agora suportam dados não estruturados de várias maneiras, e novas SGBDs dedicados estão surgindo.

interação com o banco

Sistema de gerenciamento de banco de dados

Connolly e Begg definir Database Management System (DBMS) como um "sistema de software que permite aos usuários definir, criar, manter e controlar o acesso ao banco de dados".

O acrónimo SGBD é por vezes indicado estendido para o subjacente modelo da base de dados , com RDBMS para relacional , OODBMS ou ORDBMS para o modelo objecto (orientada) e ORDBMS por objeto-relacional. Outras extensões podem indicar alguma outra característica, como DDBMS para um sistema de gerenciamento de banco de dados distribuídos.

A funcionalidade fornecida por um SGBD pode variar enormemente. A funcionalidade do núcleo é o armazenamento, a recuperação e actualização de dados. Codd propôs as seguintes funções e serviços de pleno direito DBMS uso geral deve fornecer:

  • de armazenamento de dados, de recuperação e de actualização
  • catálogo acessível usuário ou dicionário de dados que descreve os metadados
  • Suporte para transações e simultaneidade
  • Facilidades para recuperar o banco de dados deve ser danificado
  • Suporte para a autorização de acesso e atualização de dados
  • suporte de acesso a partir de locais remotos
  • Impor restrições para garantir que os dados no banco de dados permanece por certas regras

É também geralmente ser prevista a SGBD irá fornecer um conjunto de utilidades para esses fins, como pode ser necessário administrar o banco de dados de forma eficaz, incluindo a importação, de monitorização, de desfragmentação e utilitários de análise. A parte principal do SGBD interação entre o banco de dados ea interface da aplicação, por vezes referido como o motor de banco de dados .

Muitas vezes SGBDs terá parâmetros de configuração que pode ser estática e dinamicamente ajustados, por exemplo, a quantidade máxima de memória principal em um servidor de banco de dados pode usar. A tendência é para minimizar a quantidade de configuração manual, e em casos tais como bancos de dados incorporados a necessidade de orientar zero administração é primordial.

Os grandes principais SGBDs corporativos tendem a aumentar de tamanho e funcionalidade e pode ter milhares de anos envolvidos humanos de esforço de desenvolvimento através de sua vida.

DBMS multi-usuário primeiros normalmente só é permitido para a aplicação de residir no mesmo computador com acesso através de terminais ou software de emulação de terminal. A arquitetura cliente-servidor era um desenvolvimento onde o aplicativo reside em um desktop cliente eo banco de dados no servidor, permitindo o processamento a ser distribuído. Este evoluiu para uma arquitetura multicamada incorporando servidores de aplicação e os servidores da web com a interface de utilizador final através de um navegador da web com a base de dados apenas directamente ligada à camada adjacente.

Um general-purpose DBMS irá fornecer públicas interfaces de programação de aplicativo (API) e, opcionalmente, um processador para linguagens de banco de dados , como SQL para permitir que aplicações a serem gravados para interagir com o banco de dados. Um SGBD de propósito específico pode usar uma API privado e ser especificamente personalizado e ligado a uma única aplicação. Por exemplo, um e-mail sistema de executar muitas das funções de um general-purpose DBMS, tais como a inserção de mensagens, eliminação de mensagens, manipulação de anexo, pesquisa blocklist, associando mensagem um endereço de e-mail e assim por diante no entanto estas funções são limitados ao que é necessário para lidar com e-mail .

Aplicação

Interacção externo com o banco de dados irá ser por meio de um programa de aplicação que interage com o DBMS. Isto pode variar de uma ferramenta de banco de dados que permite aos usuários executar consultas SQL textualmente ou graficamente, a um Web site que passa a usar um banco de dados para armazenar e procurar informações.

Application Program Interface

Um programador irá codificar interações ao banco de dados (por vezes referido como uma fonte de dados ) através de uma interface de programação de aplicativo (API) ou através de uma linguagem de banco de dados . A API ou linguagem escolhida especial terá de ser suportado pelo DBMS, possível indiretamente por meio de um pré-processador ou a API de ponte. Objetivo algum de API para ser banco de dados independente, ODBC sendo um exemplo mais conhecido. Outros API comum de incluir JDBC e ADO.NET .

linguagens de banco de dados

Linguagens de banco de dados são línguas para fins especiais, que permitem que uma ou mais das seguintes tarefas, às vezes distinguido como sublinguagens :

linguagens de banco de dados são específicos para um modelo de dados particular. Exemplos notáveis ​​incluem:

  • SQL combina as funções de definição de dados, manipulação de dados e consulta em um único idioma. Foi um dos primeiros idiomas comerciais para o modelo relacional, embora ele se afasta em alguns aspectos, da do modelo relacional, tal como descrito por Codd (por exemplo, as linhas e colunas de um quadro pode ser ordenada). SQL se tornou um padrão do American National Standards Institute (ANSI) em 1986, e da Organização Internacional de Normalização (ISO) em 1987. As normas têm sido regularmente reforçada desde então e é suportada (com diferentes graus de conformidade) por todos comercial convencional SGBDs relacionais.
  • QVG é um padrão de linguagem objeto modelo (a partir do Object Management Group Dados ). Ele influenciou o design de algumas das linguagens de consulta mais recentes, como JDOQL e EJB QL .
  • XQuery é uma linguagem de consulta XML padrão implementado por sistemas de banco de dados XML, como MarkLogic e eXist , por bancos de dados relacionais com capacidade de XML como Oracle e DB2, e também processadores XML em memória, como Saxon .
  • SQL / XML combina XQuery com SQL.

Uma linguagem de banco de dados pode também incorporar características como:

  • gestão DBMS específico do motor de configuração e armazenamento
  • Cálculos para modificar resultados de consulta, como a contagem, soma, média, triagem, agrupamento, e referências cruzadas
  • aplicação da restrição (por exemplo, em um banco de dados automotivo, permitindo apenas um tipo de motor por carro)
  • versão da interface de programação de aplicação da linguagem de consulta, por conveniência programador

Armazenamento

De armazenamento de dados é o recipiente da materialização física de um banco de dados. Ele compreende o interno (física) nível na arquitectura base de dados. Ele também contém todas as informações necessárias (por exemplo, metadados , "dados sobre os dados", e internas estruturas de dados ) para reconstruir o nível conceptual e nível externo do nível interno quando necessário. Colocando dados em armazenamento permanente é geralmente da responsabilidade do mecanismo de banco aka "mecanismo de armazenamento". Embora tipicamente acedido por um SGBD através do sistema operativo subjacente (e muitas vezes usando os sistemas operativos dos sistemas de ficheiros como intermediários para a disposição de armazenamento), as propriedades de armazenagem e configuração são extremamente importante para o funcionamento eficiente da SGBD, e, portanto, estão intimamente mantido pela administradores de banco de dados. Um DBMS, enquanto em operação, tem sempre o seu banco de dados que residem em vários tipos de armazenamento (por exemplo, memória e armazenamento externo). Os dados do banco de dados e a informação necessária adicional, possivelmente em quantidades muito grandes, são codificadas em bits. Dados normalmente residem no armazenamento em estruturas que parecem completamente diferente da forma como os dados olhar nos níveis conceitual e externo, mas de maneiras que tentam otimizar (o melhor possível) a reconstrução desses níveis, quando necessário por usuários e programas, bem como para o cálculo de tipos adicionais de informação necessária a partir dos dados (por exemplo, ao consultar a base de dados).

Alguns especificando apoio SGBDs que codificação de caracteres foi usado para armazenar dados, portanto, várias codificações podem ser usados no mesmo banco de dados.

Vários baixo nível estruturas de armazenamento de base de dados são usadas pelo mecanismo de armazenamento para serializar o modelo de dados para que possa ser escrito para o meio de escolha. Técnicas como a indexação pode ser usado para melhorar o desempenho. O armazenamento convencional é orientada a linha, mas também existem -coluna orientada e bases de dados de correlação .

visualizações materializadas

Muitas vezes, a redundância de armazenamento é empregado para aumentar o desempenho. Um exemplo comum é armazenar materializado vistas , que consistem em frequentemente necessários vistas externas ou resultados de consulta. Armazenar tais pontos de vista salva a computação caro deles cada vez que eles são necessários. As desvantagens de visualizações materializadas são a sobrecarga contraída quando atualizá-los para mantê-los sincronizados com seus dados atualizados originais de banco de dados, e o custo da redundância de armazenamento.

Replicação

Ocasionalmente, uma base de dados emprega redundância de armazenamento por banco de dados de objectos de replicação (com uma ou mais cópias) para aumentar a disponibilidade de dados (tanto para melhorar o desempenho do utilizador final múltiplos acessos simultâneos para um mesmo objecto da base de dados, e para proporcionar resiliência em caso de falha parcial de uma base de dados distribuída). Mais de uma necessidade objecto replicado para ser sincronizada entre os objectos cópias. Em muitos casos, todo o banco de dados é replicado.

Segurança

De segurança de banco de dados lida com todos os vários aspectos da proteção do conteúdo do banco de dados, os seus proprietários, e seus usuários. Ele varia de proteção do banco de dados intencional não autorizado utiliza a base de dados não intencional acessos por entidades não autorizadas (por exemplo, uma pessoa ou um programa de computador).

controle de acesso de banco de dados lida com o controle que (uma pessoa ou um determinado programa de computador) tem permissão para acessar as informações no banco de dados. A informação pode compreender objectos específicos de banco de dados (por exemplo, tipos de registo, registos específicos, estruturas de dados), certos cálculos mais de certos objectos (por exemplo, tipos de consulta, ou consultas específicas), ou usando os caminhos de acesso específicas para o primeiro (por exemplo, usando os índices específicos ou outras estruturas de dados para acessar informações). controles de acesso de banco de dados são definidas por pessoal autorizado especiais (pelo proprietário do banco de dados) que usa dedicados interfaces de DBMS de segurança protegidas.

Isto pode ser gerido directamente numa base individual, ou pela atribuição de indivíduos e privilégios a grupos, ou (nos modelos mais elaborados) através da atribuição de indivíduos e grupos a funções que são direitos então concedidos. A segurança dos dados impede que usuários não autorizados visualizem ou atualizar o banco de dados. Usando senhas, os usuários têm acesso a toda a base de dados ou subconjuntos de que chamou de "subesquemas". Por exemplo, um banco de dados empregado pode conter todos os dados sobre um empregado individual, mas um grupo de usuários pode ser autorizado a visualizar apenas dados de folha de pagamento, enquanto outros têm permissão para acessar apenas a história de trabalho e dados médicos. Se o DBMS fornece uma maneira de entrar de forma interativa e atualizar o banco de dados, bem como interrogar-lo, esta capacidade permite gerenciar bancos de dados pessoais.

Segurança de dados em geral trata de proteger pedaços específicos de dados, tanto fisicamente (ou seja, a partir de corrupção, ou destruição, ou remoção; por exemplo, ver segurança física ), ou a interpretação dos mesmos, ou partes deles a informação significativa (por exemplo, pela olhando para as cordas de bits que eles compõem, concluindo números de cartão de crédito válido específicos; por exemplo, ver a criptografia de dados ).

Mudança e registro de acesso registros que acessaram quais atributos, o que foi alterado, e quando ele foi alterado. Serviços de registro permitir um forense de auditoria de banco de dados mais tarde, mantendo um registro de ocorrências de acesso e mudanças. Às vezes o código de nível de aplicativo é usado para registrar mudanças em vez de deixar isso para o banco de dados. O monitoramento pode ser configurado para tentar detectar violações de segurança.

Transações e Concorrência

Transações de banco de dados pode ser usada para introduzir algum nível de tolerância a falhas e integridade dos dados após recuperação de um acidente . Uma base de dados de transação é uma unidade de trabalho, tipicamente encapsulando um certo número de operações sobre um banco de dados (por exemplo, a leitura de um objecto de banco de dados, a escrita, a aquisição de fechadura , etc.), uma abstracção apoiada na base de dados e também outros sistemas. Cada transação tem limites bem definidos em termos dos quais as execuções de programa / código são incluídos no essa transação (determinado pelo programador da transação através de comandos especiais de transação).

O acrônimo ACID descreve algumas propriedades ideais de uma transação de banco de dados: atomicidade , consistência , isolamento e durabilidade .

Migração

Um banco de dados construído com um DBMS não é portável para outro DBMS (ou seja, o outro DBMS não pode executá-lo). No entanto, em algumas situações, é desejável para se mover, migrar um banco de dados de um DBMS para outro. As razões são principalmente econômica (diferente SGBDs podem ter diferentes custos totais de propriedade ou TCOs), funcional e operacional (diferente SGBDs podem ter diferentes capacidades). A migração envolve a transformação da base de dados de um tipo de DBMS para outro. A transformação deve manter (se possível) o aplicativo relacionado banco de dados (ou seja, todos os programas aplicativos relacionados) intacta. Assim, os níveis de arquitectura conceptual e externos do banco de dados deve ser mantida na transformação. Pode ser desejado que também alguns aspectos do nível interno arquitectura são mantidas. Um banco de dados migração complexa ou grande pode ser um projecto complicado e dispendioso (um em tempo) por si só, que devem ser tidos em conta a decisão de migrar. Isto apesar do fato de que podem existir ferramentas para ajudar a migração entre SGBDs específicos. Normalmente, um fornecedor DBMS fornece ferramentas para ajudar importadores bancos de dados de outros SGBDs populares.

Construção, manutenção e afinação

Após a criação de um banco de dados para uma aplicação, a próxima etapa é a construção do banco de dados. Tipicamente, um adequadas SGBD de uso geral podem ser seleccionados para ser utilizados para este fim. Um SGBD fornece as necessárias interfaces de utilizador para ser usado por administradores de dados para definir estruturas de dados da aplicação necessária dentro respectivo modelo de dados da SGBD. Outras interfaces de usuário são usados para selecionar parâmetros DBMS necessários (como os relacionados a segurança, parâmetros de alocação de armazenamento, etc.).

Quando a base de dados está pronto (todas as suas estruturas de dados e outros componentes necessários são definidos), ele é tipicamente preenchida com dados da aplicação inicial (inicialização do banco de dados, o qual é tipicamente um projecto distinto; em muitos casos, utilizando interfaces de DBMS especializados que suportam inserção granel) antes tornando-se operacional. Em alguns casos, a base de dados se torna operacional quando vazia de dados de aplicação, e os dados são acumulados durante o seu funcionamento.

Após o banco de dados é criado, inicializado e preenchido ele precisa ser mantido. Vários parâmetros da base de dados pode necessitar mudar e a base de dados pode necessitar de ser ajustado ( sintonização ) para um melhor desempenho; estruturas de dados do aplicativo podem ser alterados ou adicionados, novos programas de aplicação relacionados podem ser escritos para adicionar a funcionalidade da aplicação, etc.

Backup e restauração

Às vezes é desejado para trazer um banco de dados de volta para um estado anterior (por muitas razões, por exemplo, casos em que o banco de dados é encontrado danificado devido a um erro de software, ou se ele foi atualizado com dados errados). Para conseguir isso, uma operação de backup é feita ocasionalmente ou de forma contínua, onde cada estado banco de dados desejado (ou seja, os valores de seus dados e sua incorporação em estruturas de dados do banco de dados) é mantido dentro de arquivos de backup dedicado (existem muitas técnicas para fazer isso de forma eficaz). Quando este estado é necessário, ou seja, quando é decidido por um administrador de banco de dados para trazer o banco de dados de volta a este estado (por exemplo, especificando neste estado por um ponto desejado no tempo em que o banco de dados foi neste estado), esses arquivos são usados para restaurar esse estado.

análise estática

Técnicas de análise estática para verificação de software pode ser aplicado também no cenário de linguagens de consulta. Em particular, o * interpretação abstrata quadro foi estendido para o campo de linguagens de consulta para bancos de dados relacionais, como forma de apoiar técnicas de aproximação de som. A semântica de linguagens de consulta pode ser ajustado de acordo com abstrações adequadas de domínio concreto dos dados. A abstração do sistema de banco de dados relacional tem muitas aplicações interessantes, em particular, para fins de segurança, tais como controle de acesso de grão fino, marcas d'água, etc.

características várias

Outras características DBMS podem incluir:

  • Registros de banco de dados - Isso ajuda a manter um histórico das funções executadas.
  • componente gráfico para a produção de gráficos e tabelas, especialmente em um sistema de armazenamento de dados.
  • Otimizador de consulta - Executa a otimização de consultas em cada consulta para escolher um eficiente plano de consulta (a ordem parcial (árvore) de operações) para ser executado para calcular o resultado da consulta. Pode ser específica para um mecanismo de armazenamento particular.
  • Ferramentas ou ganchos para o projeto de banco de dados, programação de aplicações, manutenção programa de aplicação, análise de desempenho do banco de dados e monitoramento, monitoramento de configuração de banco de dados, configuração de hardware DBMS (a DBMS e banco de dados relacionado podem abrangem computadores, redes e unidades de armazenamento) e mapeamento de banco de dados relacionados (especialmente para um SGBD distribuído), a alocação de armazenamento e a monitorização disposição da base de dados, a migração de armazenamento, etc.

Cada vez mais, há chamadas para um único sistema que incorpora todas estas funcionalidades principais na mesma construção, teste e estrutura de implantação para o gerenciamento de banco de dados e controle de origem. Contracção de outros desenvolvimentos na indústria de software, alguns mercados tais ofertas como " DevOps para banco de dados".

Design e modelagem

Processo de banco de dados v2.png projeto

A primeira tarefa de um designer de banco de dados é produzir um modelo conceitual de dados que reflete a estrutura da informação a serem realizadas no banco de dados. Uma abordagem comum para isso é desenvolver um modelo de entidade-relacionamento, muitas vezes com a ajuda de ferramentas de desenho. Outra abordagem popular é a Unified Modeling Language . Um modelo de dados bem sucedida irá refletir com precisão o estado possível do mundo exterior que está sendo modelado: por exemplo, se as pessoas podem ter mais de um número de telefone, que irá permitir que esta informação seja capturado. Projetando um bom modelo conceitual de dados requer uma boa compreensão do domínio da aplicação; que normalmente envolve fazer perguntas profundas sobre as coisas de interesse para uma organização, como "um cliente pode também ser um fornecedor?", ou "se um produto é vendido com duas formas diferentes de embalagem, são aqueles do mesmo produto ou produtos diferentes? ", ou 'Se um avião voa de Nova York para Dubai via Frankfurt, é que um vôo ou dois (ou talvez até três)?'. As respostas a estas perguntas estabelecer definições da terminologia utilizada para entidades (clientes, produtos, voos, segmentos de voo) e suas relações e atributos.

Produzindo o modelo conceitual de dados, por vezes, envolve a entrada de processos de negócios , ou a análise de fluxo de trabalho na organização. Isso pode ajudar a estabelecer qual a informação necessária no banco de dados, eo que pode ser deixado de fora. Por exemplo, ele pode ajudar ao decidir se o banco de dados precisa para armazenar dados históricos, bem como dados atuais.

Tendo produzido um modelo conceitual de dados que os usuários estão satisfeitos com, a próxima etapa é traduzir isso em um esquema que implementa as estruturas de dados relevantes dentro do banco de dados. Este processo é muitas vezes chamado de design de banco de dados lógico, ea saída é um modelo lógico de dados expressos na forma de um esquema. Considerando que o modelo conceitual de dados é (pelo menos em teoria) independente da escolha da tecnologia de banco de dados, o modelo lógico de dados será expressa em termos de um modelo de banco de dados específico apoiado pelos DBMS escolhidos. (Os termos modelo de dados e modelo de banco de dados são muitas vezes usados como sinônimos, mas neste artigo nós usamos modelo de dados para o projeto de um banco de dados específico e modelo de banco de dados para a notação de modelagem usada para expressar que o design.)

O modelo de banco de dados mais popular para bancos de dados de uso geral é o modelo relacional, ou mais precisamente, o modelo relacional como representado pela linguagem SQL. O processo de criação de um projeto de banco de dados lógico usando este modelo utiliza uma abordagem metódica conhecida como normalização . O objetivo da normalização é para garantir que cada "fato" elementar só é gravada em um único lugar, para que inserções, atualizações e exclusões automaticamente manter a consistência.

A fase final do projeto de banco de dados é fazer com que as decisões que afetam o desempenho, a escalabilidade, recuperação, segurança, e similares, que dependem do DBMS particular. Isso é muitas vezes chamado de design de banco de dados físico , ea saída é o modelo de dados físico . Um objectivo essencial durante esta fase é a independência de dados , o que significa que as decisões tomadas para fins de otimização de desempenho deve ser invisível para e aplicações utilizadores finais. Existem dois tipos de independência de dados: independência de dados física e independência de dados lógica. Projeto físico é impulsionado principalmente pelos requisitos de desempenho e requer um bom conhecimento dos padrões de carga de trabalho e de acesso esperados, e uma profunda compreensão dos recursos oferecidos pelo SGBD escolhido.

Outro aspecto do projeto de banco de dados físico é a segurança. Ela envolve tanto a definição de controle de acesso aos objetos de banco de dados, bem como de definição dos níveis de segurança e métodos para os dados em si.

modelos

Colagem de cinco tipos de modelos de banco de dados

Um modelo da base de dados é um tipo de modelo de dados que determina a estrutura lógica de uma base de dados e determina fundamentalmente de que modo os dados podem ser armazenados, organizados e manipulado. O exemplo mais popular de um modelo de banco de dados é o modelo relacional (ou à aproximação SQL de relacional), que usa um formato baseado em tabela.

modelos de dados lógicos comuns para bancos de dados incluem:

Um banco de dados objeto-relacional combina as duas estruturas relacionadas.

Modelos de dados físicos incluem:

Outros modelos incluem:

modelos especializados são otimizados para determinados tipos de dados:

Externo, conceitual, e vistas internas

vista tradicional dos dados

Um sistema de gerenciamento de banco de dados fornece três exibições dos dados do banco de dados:

  • A nível externo define como cada grupo de usuários finais vê a organização dos dados no banco de dados. Um único banco de dados pode ter qualquer número de pontos de vista a nível externo.
  • O nível conceitual unifica os diversos pontos de vista externos em uma visão global compatível. Ele fornece a síntese de todos os pontos de vista externos. Ele está fora do alcance das diferentes usuários finais de banco de dados, e é um pouco de interesse para desenvolvedores de aplicativos de banco de dados e administradores de banco de dados.
  • O nível interno (ou nível físico ) representa a organização interna de dados dentro de um SGBD. Ela está preocupada com o custo, desempenho, escalabilidade e outras questões operacionais. Trata-se de layout de armazenamento de dados, utilizando as estruturas de armazenamento, tais como índices para melhorar o desempenho. Ocasionalmente, ele armazena os dados de pontos de vista individuais ( visualizações materializadas ), calculados a partir de dados genéricos, se existe justificação desempenho para tal redundância. Ele equilibra todos os requisitos de desempenho dos vistas externas, possivelmente conflitantes, em uma tentativa de otimizar o desempenho geral em todas as actividades.

Enquanto existe normalmente apenas uma vista conceptual (ou lógico) e físico (ou interna) dos dados, não pode haver qualquer número de diferentes pontos de vista externos. Isso permite que os usuários vejam informações de banco de dados de uma forma mais relacionados com o negócio ao invés de partir, um ponto de vista técnico de processamento. Por exemplo, um departamento financeiro de uma empresa precisa os detalhes de pagamento de todos os funcionários como parte de despesas da empresa, mas não precisa de detalhes sobre os funcionários que são do interesse do recursos humanos departamento. Assim, diferentes departamentos precisam de diferentes pontos de vista de banco de dados da empresa.

A arquitetura de banco de dados de três níveis relaciona-se com o conceito de independência de dados que foi uma das principais forças motrizes iniciais do modelo relacional. A ideia é que as alterações feitas em um determinado nível não afetam a visão em um nível superior. Por exemplo, mudanças no nível interno não afetam os programas aplicativos escritos usando interfaces de nível conceitual, o que reduz o impacto de fazer mudanças físicas para melhorar o desempenho.

A vista conceptual fornece um nível de indirecta entre interno e externo. Por um lado, fornece uma visão comum de banco de dados, independente de diferentes estruturas de visão externa, e, por outro lado, abstrai os detalhes de como os dados são armazenados ou gerenciados (nível interno). Em princípio, todos os níveis, e mesmo cada ponto de vista externo, pode ser apresentado por um modelo de dados diferente. Na prática geralmente um determinado SGBD utiliza o mesmo modelo de dados, tanto para o exterior e os níveis conceptuais (por exemplo, modelo, relacional). A nível interno, o que está escondido dentro do DBMS e depende de sua implementação, requer um nível diferente de detalhe e utiliza os seus próprios tipos de tipos de estrutura de dados.

Separar os externos , conceituais e internos níveis foi uma das principais características dos relacionais implementações modelo de banco de dados que dominam as bases de dados do século 21.

Pesquisa

Tecnologia de banco de dados tem sido um tema de pesquisa ativo desde a década de 1960, tanto na academia e 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 incluíram modelos , o conceito transação atômica, e relacionados com controle de concorrência técnicas, linguagens de consulta e otimização de consultas métodos, RAID e muito mais.

A área de pesquisa de banco de dados tem várias dedicados revistas acadêmicas (por exemplo, transações de ACM no Banco de Dados Sistemas -TODS, Dados e Engenharia do Conhecimento -DKE) e anuais conferências (por exemplo, ACM SIGMOD , ACM PODS , VLDB , IEEE ICDE).

Veja também

Notas

Referências

Fontes

  • Beynon-Davies, Paul (2003). Sistemas de banco de dados (3 ª ed.). Palgrave Macmillan. ISBN  978-1403916013 .
  • Chapple, Mike (2005). "Fundamentos de SQL" . Bancos de dados . About.com. Arquivado a partir do original em 22 de fevereiro de 2009 . Retirado 28 de de Janeiro de 2009 .
  • Chong, Raul F .; Wang, Xiaomei; Dang, Michael; Neve, Dwaine R. (2007). "Introdução ao DB2" . Compreender DB2: aprender visualmente com exemplos (2nd ed.). ISBN  978-0131580183 . Retirado 17 de de Março de 2013 .
  • Connolly, Thomas M .; Begg, Carolyn E. (2014). Sistemas de Banco de Dados - Uma Abordagem Prática para o Design Implementação e Gestão (6th ed.). Pearson. ISBN  978-1292061184 .
  • Nelson, Anne Fulcher; Nelson, William Harris Morehead (2001). Construção de Comércio Eletrônico: Com Construções Web de banco de dados . Prentice Hall. ISBN  978-0201741308 .
  • Tsitchizris, Dionysios C .; Lochovsky, Fred H. (1982). Modelos de Dados . Prentice-Hall. ISBN  978-0131964280 .
  • Ullman, Jeffrey; Widom, Jennifer (1997). Um primeiro curso em Sistemas de Banco de Dados . Prentice-Hall. ISBN  0138613370 .
  • Wagner, Michael (2010), SQL / XML: 2006 - Evaluierung der Standardkonformität ausgewählter Datenbanksysteme , Diplomica Verlag, ISBN  978-3836696098

Outras leituras

links externos