MS Access - Dados Relacionados

Neste capítulo, entenderemos os fundamentos do relacionamento de dados. Antes de falar e criar relacionamentos entre diferentes dados, vamos revisar por que precisamos deles. Tudo volta à normalização.

Normalização

A normalização do banco de dados, ou simplesmente normalização, é o processo de organizar colunas (atributos) e tabelas (relações) de um banco de dados relacional para minimizar a redundância de dados. É o processo de divisão de dados em várias tabelas para melhorar o desempenho geral, integridade e longevidade.

  • Normalização é o processo de organização de dados em um banco de dados.

  • Isso inclui a criação de tabelas e o estabelecimento de relacionamentos entre essas tabelas de acordo com regras projetadas para proteger os dados e tornar o banco de dados mais flexível, eliminando redundância e dependência inconsistente.

Vejamos agora a seguinte tabela que contém dados, mas o problema é que esses dados são bastante redundantes, o que aumenta as chances de erro de digitação e formulação inconsistente durante a entrada de dados.

CustID Nome Endereço Bolacha Quantidade Preço Total
1 Ethel Smith 12 Main St, Arlington, VA 22201 S Pepita de chocolate 5 $ 2,00 $ 10,00
2 Tom Wilber 1234 Oak Dr., Pekin, IL 61555 Choc Chip 3 $ 2,00 $ 6,00
3 Ethil Smithy 12 Main St., Arlington, VA 22201 Pepita de chocolate 5 $ 2,00 $ 10,00

Para resolver esse problema, precisamos reestruturar nossos dados e dividi-los em várias tabelas para eliminar algumas dessas redundâncias, conforme mostrado nas três tabelas a seguir.

Aqui temos uma mesa para Clientes, a para Encomendas e a para Cookies.

O problema aqui é que apenas dividir os dados em várias tabelas não ajudará a saber como os dados de uma tabela se relacionam com os dados de outra. Para conectar dados em várias tabelas, temos que adicionar chaves estrangeiras aoOrders mesa.

Definindo Relacionamentos

Um relacionamento funciona combinando dados em colunas-chave, geralmente colunas com o mesmo nome em ambas as tabelas. Na maioria dos casos, o relacionamento corresponde à chave primária de uma tabela, que fornece um identificador exclusivo para cada linha, com uma entrada na chave estrangeira na outra tabela. Existem três tipos de relacionamento entre as tabelas. O tipo de relacionamento criado depende de como as colunas relacionadas são definidas.

Vejamos agora os três tipos de relacionamento -

Relacionamentos de um para muitos

Um relacionamento um-para-muitos é o tipo mais comum de relacionamento. Nesse tipo de relacionamento, uma linha na tabela A pode ter muitas linhas correspondentes na tabela B, mas uma linha na tabela B pode ter apenas uma linha correspondente na tabela A.

Por exemplo, as tabelas Clientes e Pedidos têm um relacionamento de um para muitos: cada cliente pode fazer muitos pedidos, mas cada pedido vem de apenas um cliente.

Relacionamentos muitos para muitos

Em um relacionamento muitos para muitos, uma linha na tabela A pode ter muitas linhas correspondentes na tabela B e vice-versa.

Você cria tal relacionamento definindo uma terceira tabela, chamada de junction table, cuja chave primária consiste nas chaves estrangeiras da tabela A e da tabela B.

Por exemplo, a tabela Clientes e a tabela Cookies têm um relacionamento muitos-para-muitos que é definido por um relacionamento um-para-muitos de cada uma dessas tabelas para a tabela Pedidos.

Relações Um-para-Um

Em um relacionamento um para um, uma linha na tabela A não pode ter mais de uma linha correspondente na tabela B e vice-versa. Um relacionamento um para um será criado se ambas as colunas relacionadas forem chaves primárias ou tiverem restrições exclusivas.

Esse tipo de relacionamento não é comum porque a maioria das informações relacionadas dessa forma estariam todas em uma tabela. Você pode usar um relacionamento um-para-um para -

  • Divida uma tabela em várias colunas.
  • Isole parte de uma mesa por motivos de segurança.
  • Armazene dados de curta duração e que possam ser facilmente excluídos simplesmente excluindo a tabela.
  • Armazene informações que se aplicam apenas a um subconjunto da tabela principal.