O que é um banco de dados relacional? [fechadas]

9

Sou principalmente um administrador do sistema e não trabalho diretamente com bancos de dados além de instalá-los, configurar contas, conceder privilégios e assim por diante. Eu percebi que, se o chefe se aproximou de mim e perguntou: "O que é um banco de dados relacional?" Eu provavelmente não poderia dar uma resposta satisfatória ... Eu talvez murmurasse algo sobre os dados sendo armazenados e organizados por categorias que você pode consultar com uma linguagem de programação especial (ou seja, SQL).

Então alguém poderia dar uma boa "Resposta ao chefe" para o que é um banco de dados relacional? E talvez como é diferente de apenas armazenar dados em um servidor de arquivos? Pontos de bônus para analogias inteligentes, mas acessíveis, e explicando tabelas, colunas, registros e campos. Eu definiria uma "Resposta do Chefe" como uma rápida (talvez duas) explicação de parágrafo para pessoas não-técnicas ... principalmente seu Chefe, nas raras ocasiões em que eles realmente perguntam o que você faz o dia todo.

    
por kce 13.03.2011 / 00:57

8 respostas

16

Um banco de dados relacional não armazena apenas dados : armazena relacionamentos entre dados e facilita (bem, mais facilmente) o uso desses relacionamentos. Nos primórdios da terminologia do banco de dados relacional, as tabelas eram chamadas de "relações" porque armazenavam bits de dados relacionados (campos, agora colunas), juntamente com as relações entre essa relação e outras relações.

A normalização é o ato de complicar as relações: "Torne tudo o mais simples possível, mas não mais simples." (Alan Perlis) Às vezes "... mas não mais simples" significa que não armazenamos as coisas totalmente normalizadas, porque "mais simples" acaba sendo mais complexo. (Você pode derivar o estado do código postal, mas por que se preocupar?)

    
por 13.03.2011 / 01:13
10

Um banco de dados relacional é um método de estruturar dados para que um único fato seja armazenado em um único local. Então, se John e Jane Doe trabalham na mesma empresa, você só armazenaria detalhes exclusivos da empresa em um só lugar (tabela). Você armazenaria dados exclusivos de John e Jane em outro lugar e armazenaria o relacionamento de John e Jane com a empresa em um terceiro lugar. No mundo ideal, isso deve significar que eu só preciso modificar um único campo / linha se o número de fax da empresa for alterado.

Por favor, entenda que nem todos os bancos de dados hospedados em um RDBMS são normalizados corretamente. Compromissos são feitos por desempenho e por outros motivos.

Veja o artigo sobre normalização de banco de dados. link

    
por 13.03.2011 / 01:04
4

Existem dois conceitos principais para distinguir sistemas de bancos de dados de relacionamentos. A primeira é que as relações entre itens são armazenadas. Esse é o modelo de tabela de dados, explicado através da analogia da planilha. Os RDBMSs se tornam mais complexos que as planilhas, porque é mais fácil e comum ter muitas referências entre tabelas ou planilhas (dependendo do lado da analogia que você está usando).

A segunda é que os RDBMSs implementam a ideia de uma transação, as propriedades ACID de

  • atomicidade,
  • consistência,
  • isolamento e
  • durabilidade

O modelo relacional permite que muitos relacionamentos complexos sejam incluídos, consultados, classificados, agrupados por e assim por diante. O modelo transacional garante que as transações acontecem completamente ou não, mantendo o modelo de relacionamento consistente e preciso. Bem, pelo menos, possibilitando que a programação correta continue assim.

    
por 13.03.2011 / 02:04
3

Um banco de dados relacional é como uma pasta de trabalho do Excel com muitas planilhas e um ambiente de software circundante para fazer otimizações de desempenho, como indexação e armazenamento em cache, garantir acesso seguro a muitos usuários ao mesmo tempo e permitir que você visualize dados com eficiência pode ser espalhado por muitas das diferentes planilhas.

    
por 13.03.2011 / 01:26
1

Um dado de dados relacionais é uma ferramenta para armazenar e recuperar dados armazenados em um modelo relacional.

Um modelo relacional de dados é construído de acordo com um pequeno número (dependendo de qual livro você leu, 4 ou 5 regras) que garante que os dados possam ser acessados de forma consistente, permitindo que a correção do projeto seja comprovada. e que permite que o sistema de gerenciamento de banco de dados (DBMS) faça a maior parte do trabalho na recuperação rápida dos dados. Ele também fornece ferramentas para documentar formalmente a estrutura dos dados - implementar um banco de dados intrinsecamente implementa a maior parte da documentação.

A maioria das pessoas não entende porque a correção é importante - significa que os erros são menos prováveis de serem introduzidos no desenvolvimento de uma solução - e que (e.hg) dois programadores diferentes trabalhando em áreas similares têm menos probabilidade de duplicar esforço.

Como uma entidade separada do front end do aplicativo e com uma visão consistente da estrutura dos dados, o uso de um sistema de gerenciamento de banco de dados permite que diferentes ferramentas sejam usadas no front end para diferentes propósitos - assim você pode fazer muito mais uso de componentes prontos para uso ao criar uma solução.

Existem outros modelos além do relacional para armazenar dados - mas nenhum outro (na minha experiência) se aproxima, tanto em sua simplicidade, flexibilidade e disponibilidade de ferramentas para desenvolvimento e gerenciamento de seus dados.

    
por 13.03.2011 / 01:42
1

Resposta 100% não técnica:

Um banco de dados relacional é um local para armazenar dados de maneira a minimizar a redundância e permitir que você os pesquise com facilidade.

Suponha um banco de dados para uma loja de animais. A loja tem itens, tem clientes e tem vendas. Se fôssemos colocar isso no Excel, você poderia ter isso para colunas:

Customer Name | Customer phone number | Customer address | Item bought | Price | Date

Primeiro cliente, Sra. Smith, compra comida de gato:

Customer Name | Customer phone number | Customer address | Item bought | Price | Date
Mrs Smith     | 123-555-1234          | 10 Main St       | Cat food    | $15   | 2011-03-11

E a Sra. Smith também gostaria de um brinquedo para gatos:

Customer Name | Customer phone number | Customer address | Item bought | Price | Date
Mrs Smith     | 123-555-1234          | 10 Main St       | Cat food    | $15   | 2011-03-11
Mrs Smith     | 123-555-1234          | 10 Main St       | Cat toy     | $1    | 2011-03-11

E ela basicamente volta a cada 2 semanas e compra as mesmas coisas. Com esse método, você duplica muitas informações e isso pode levar a erros. Você também não pode armazenar um inventário neste, tem que ser uma outra planilha do Excel, e essa terá que ser atualizada em cada venda.

Com um banco de dados, poderíamos ter três entidades separadas: Clientes (com suas informações), Itens (com uma descrição e um preço) e Venda (um link entre clientes e itens, com uma data e uma quantidade). / p>     

por 13.03.2011 / 16:19
1

Algumas boas respostas técnicas aqui. Mas meu chefe não entenderia nenhum deles!

Eu começaria com uma explicação extremamente simples: 'Se você salva seus dados em um arquivo, ele aparece como uma longa lista. Um banco de dados relacional salva os dados mais como um mapa ou gráfico, de modo que partes diferentes do mapa se ligam umas às outras ... '

E um exemplo - '.... por exemplo, seu nome é vinculado ao seu endereço, que por sua vez pode ser vinculado à sua cidade.'

Seguido pelos benefícios comerciais pelos quais ele se preocupa - "A vantagem disso é que torna muito mais barato escrever código para obter dados complicados, por ex. "encontre todas as pessoas que moram em Seattle cujo sobrenome é Smith". Além disso, os bancos de dados relacionais são muito confiáveis e rápidos ”.

E termine com uma declaração de credibilidade - 'Os bancos de dados relacionais existem há muitos anos, são tecnologias muito maduras. Nosso produto específico é [nome do produto aqui] '.

    
por 13.03.2011 / 20:17
0

Meu chefe é o DBA, mas em termos leigos:

Pense em duas tabelas no Excel e na função LOOKUP para fazer referência a itens de uma tabela a outra. Agora escalar isso em pelo menos um fator de 10.

Isso é sobre o nível de computador de algumas pessoas e do trabalho.

    
por 13.03.2011 / 19:10