Banco de Dados - SQL Server

O Modelo Relacional de Dados – Parte III

Nesta terceira parte vamos aprender sobre um dos conceitos mais importantes do modelo relacional de dados: Integridade Referencial.

por Júlio Cesar Fabris Battisti



O Modelo Relacional de Dados - Parte III Por: Júlio Cesar Fabris Battisti Introdução

Objetivo: Na primeira parte deste artigo falei sobre Entidades (tabelas), Atributos (campos) e sobre o conceito de Chave Primária. na segunda parte falei sobre Relacionamentos e tipos de relacionamentos. Nesta terceira parte vamos aprender sobre um dos conceitos mais importantes do modelo relacional de dados: Integridade Referencial. Também mostrarei um exemplo prático de como configurar Relacionamentos e Integridade Referencial no Microsoft Access.

Nota: Os exemplos apresentados utilizarão telas do Microsoft Access e o arquivo de exemplos Northwind.mdb, o qual é instalado juntamente com o Microsoft Access. Este arquivo está disponível, por padrão, no seguinte caminho: C:\Arquivos de programas\Microsoft Office\Office\Samples Porém os princípios básicos do modelo relacional aplicam-se a qualquer banco de dados baseado no modelo relacional de dados. Estes bancos de dados são algumas vezes denominados: SGBDR - Sistemas Gerenciadores de Banco de Dados Relacionais.

Integridade Referencial

A Integridade Referencial é utilizada para garantir a Integridade dos dados entre as tabelas relacionadas. Por exemplo, considere um relacionamento do tipo Um-para- Vários entre a tabela Clientes e a tabela Pedidos (um cliente pode fazer vários pedidos). Com a Integridade Referencial, o banco de dados não permite que seja cadastrado um pedido para um cliente que ainda não foi cadastrado. Em outras palavras, ao cadastrar um pedido, o banco de dados verifica se o código do cliente que foi digitado já existe na tabela Clientes. Se não existir, o cadastro do pedido não será aceito. Com o uso da Integridade Referencial é possível ter as seguintes garantias (ainda usando o exemplo entre as tabelas Clientes e Pedidos):

    è Quando o Código de um cliente for alterado na Tabela Clientes, podemos configurar para o banco de dados atualizar, automaticamente, todos os Códigos do Cliente na Tabela Pedidos, de tal maneira que não fiquem Registros Órfãos, isto é , registros de Pedidos com um Código de Cliente para o qual não existe mais um correspondente na Tabela Clientes. Essa ação é conhecida como "Propagar atualização dos campos relacionados".

    è Quando um Cliente for excluído da Tabela Clientes, podemos configurar para que o banco de dados exclua, automaticamente, na tabela Pedidos, todos os Pedidos para o Cliente que está sendo Excluído. Essa opção é conhecida como "Propagar exclusão dos registros relacionados".

Essas opções, conforme mostrarei logo em seguida, podem ser configuradas quando da Definição dos Relacionamentos (no exemplo prático mais adiante utilizarei o Microsoft Access, mas estes conceitos são válidos para qualquer banco de dados). Estas opções não são obrigatórias, isto é, podemos optar por não Atualizar ou não Excluir em cascata. A Opção de "Propagar atualização dos campos relacionados" é utilizada na maioria das situações, já a opção de "Propagar exclusão dos registros relacionados" deve ser estudada caso a caso. Por exemplo, se nos quiséssemos manter um histórico com os Pedidos de cada Cliente, não utilizaríamos a opção "Propagar exclusão dos registros relacionados"; caso não nos interessasse manter um histórico dos pedidos, poderíamos utilizar esta opção.

Exemplo prático: Como Criar e Configurar Relacionamentos no Microsoft Access:

Para Definir Relacionamentos no Microsoft Access siga os passos indicados a seguir:

  • Abra o banco de dados onde estão as tabelas nas quais serão definidos os relacionamentos.
  • Selecione o comando Ferramentas -> Relacionamentos.
  • Surgirá a Janela indicada na próxima Figura. Nesta Janela você adicionará as Tabelas que farão parte de algum dos relacionamentos. Para Adicionar uma Tabela, basta marcá-la e dar um clique no botão "Adicionar". Você pode adicionar todas as tabelas de uma única vez. Para isto dê um clique na primeira, libere o mouse, pressione a tecla SHIFT e fique segurando SHIFT pressionado e dê um clique na última tabela. Com isso todas serão selecionadas, agora ao dar um clique no botão Adicionar, todas as tabelas selecionadas serão adicionadas. Caso não queira adicionar todas mas somente algumas e de uma maneira intercalada, ao invés de usar a tecla SHIFT, utilize a tecla CTRL. Com a tecla CTRL uma tabela é selecionada a medida que você vai clicando com o mouse sobre o nome da tabela.


Dê um clique para marcar a Tabela e depois dê um clique no botão Adicionar.
  • Após ter adicionado as tabelas, para criar um relacionamento, basta arrastar um campo de uma tabela sobre o campo da outra tabela na qual será estabelecido o relacionamento. Por exemplo, para estabelecer o relacionamento Um-para-Vários entre as tabelas Clientes e Pedidos, arraste o campo "CódigoDoCliente" da tabela Clientes, sobre o campo "CódigoDoCliente" da Tabela Pedidos. Ao largar um campo sobre o Outro, o Microsoft Access abre uma janela conforme indicado na figura a seguir (Definindo as características do Relacionamento):


Definindo as Características do Relacionamento.
  • Observe que, por padrão, o campo "Impor Integridade Referencial" não está marcado. Ao marcá-lo serão habilitadas as Opções de "Propagar atualização dos campos relacionados" e "Propagar exclusão dos registros relacionados". Observe, também, que o Microsoft Access já definiu este relacionamento como sendo do tipo Um-para-Vários. Isso acontece porque o Microsoft Access identifica o campo CódigoDoCliente na tabela Clientes como sendo do tipo chave primária e na tabela Pedidos como não sendo chave primária, o que automaticamente transforma o Relacionamento como sendo do tipo Um para Vários. Se em ambas as tabelas o campo CódigoDoCliente fosse definido como Chave Primária, o relacionamento, automaticamente, seria do tipo Um-para-Um.

  • Após marcar as Opções desejadas, basta dar um clique no botão "Criar" e pronto, o Microsoft Access cria o Relacionamento, o qual é indicado através de uma linha entre as duas tabelas (Clientes e Pedidos), com o número 1 no lado da Chave Primária e o Sinal de infinito no lado Vários. Caso você precise alterar as características de um determinado relacionamento, basta dar um duplo clique sobre a linha do relacionamento, que o Microsoft Access abrirá a janela indicada na figura anterior, para que você possa fazer as alterações desejadas. Na Figura a seguir indico o relacionamento já criado entre as tabelas Pedidos e Clientes:

Relacionamento entre Pedidos e Clientes.
  • Observe também que os campos Chave Primária aparecem em Negrito no Diagrama dos Relacionamentos.

  • Este diagrama que exibe as Tabelas e os Relacionamentos entre as tabelas é conhecido como "Diagrama Entidades x Relacionamentos (DER)".

  • Antes de fechar o Diagrama Entidades x Relacionamentos, dê um clique no botão com o desenhdo do disquete para salvar as alterações que foram feitas. A qualquer momento você pode acessar o Diagrama Entidades x Relacionamentos para fazer alterações ou para revisar os relacionamentos, para isto basta ir no menu Ferramentas e clicar em Relacionamentos.

Conclusão:

Nesta terceiro artigo da série, você aprendeu sobre o conceitos de Integridade Referencial, sem dúvidas um dos conceitos mais importantes do Modelo Relacional, juntamente com os conceitos de Relacionamentos, abordados na Parte II. Na Parte IV falarei sobre os princípios básicos de normalização de tabelas. Até lá.

Entre em contato. Deixe-me conhecer a sua opinião e também suas sugestões. Entre em contato através do e-mail webmaster@juliobattisti.com.br ou diretamente através de um dos seguintes sites: www.juliobattisti.com.br e www.certificacoes.com.br.

Júlio Cesar Fabris Battisti

Júlio Cesar Fabris Battisti