Nota
O diagrama de Modelo de Base de Dados só está disponível em algumas versões do Visio. Consulte Não consegue encontrar as funcionalidades de modelação de bases de dados? para mais informações.
Compreender as regras de integridade referencial
As regras de integridade referencial impedem os utilizadores da base de dados de interromper acidentalmente o mapeamento entre colunas relacionadas.
Suponhamos que tem uma base de dados denominada Livros com duas tabelas denominadas Títulos e Autores. Para efeitos deste exemplo, cada título tem apenas um autor, mas cada autor pode ter vários títulos, criando o que se chama uma relação um-para-muitos. A tabela no lado "um" da relação é denominada tabela principal. A tabela no lado "muitos" é denominada tabela subordinada.
Para reunir informações sobre cada livro e o respetivo autor, uma consulta utiliza chaves para corresponder cada livro da tabela Títulos ao autor na tabela Autores. A tabela principal (Autores) tem de ter uma chave primária que identifique exclusivamente cada linha. A tabela Títulos tem de ter uma coluna que contenha o AuthorID para cada título. Esta coluna é denominada chave externa. A chave primária identifica cada autor e a chave externa identifica que livros foram escritos pelo autor.
Se um utilizador alterar o AuthorID do autor na tabela principal, sem atualizar o AuthorID na tabela Títulos, os livros na tabela Títulos deixarão de ter um autor válido.
Em vez de ter de alterar o AuthorID em ambas as tabelas, pode definir regras de integridade referencial para efetuar a ação pretendida. Pode optar por fazer com que o modelo de base de dados tome medidas específicas quando uma chave é alterada ou eliminada na tabela principal.
Nota
Os termos principal e subordinado são utilizados para significar algo bastante diferente nas categorias, que são criadas com as formas Principal para categoria, Categoria e Categoria para subordinados. Para obter mais informações sobre categorias, veja Definir categorias num diagrama de Modelo de Base de Dados.
Definir ações para integridade referencial
Faça duplo clique na relação para a qual pretende definir uma ação referencial.
Na base de dados janela Propriedades, em Categorias, clique em Ação Referencial.
Clique na ação que pretende que a base de dados assuma sobre o valor correspondente na tabela subordinada. Pode escolher entre as seguintes ações:
- Nenhuma ação Quando um valor na chave primária de uma tabela principal é alterado ou eliminado, o valor correspondente na chave externa da tabela subordinada permanece inalterado.
- Cascata Quando um valor na chave primária de uma tabela principal é alterado ou eliminado, o valor correspondente na chave externa da tabela subordinada é alterado ou eliminado para corresponder à chave primária.
- Definir NULL Quando um valor na chave primária de uma tabela principal é alterado ou eliminado, o valor correspondente na chave externa da tabela subordinada é definido como NULL.
- Predefinir Quando um valor na chave primária de uma tabela principal é alterado ou eliminado, o valor correspondente na chave externa da tabela subordinada é definido como uma predefinição que escolher.
- Não impor Esta ação desativa as regras de integridade referencial para esta relação.
Nota
Se as opções Definir NULO e Predefinir estiverem desativadas, é provável que a relação esteja definida como Opcional no separador Diversos da Base de Dados janela Propriedades para a relação.
Definir um valor predefinido para uma coluna
Para utilizar a ação Predefinir , tem de fornecer um valor predefinido para a coluna.
- Faça duplo clique na tabela no diagrama para abrir a base de dados janela Propriedades.
- Em Categorias, clique em Colunas, clique na coluna para a qual pretende criar uma predefinição e, em seguida, clique em Editar.
- No separador Definição da caixa de diálogo Propriedades da Coluna , introduza um valor para a predefinição.
Mostrar integridade referencial com notação
Pode definir as Opções do Documento para ocultar ou mostrar a notação de integridade referencial junto às linhas de relação no modelo.
O que significam as letras na notação de integridade referencial?
A notação de integridade referencial mostra relações com duas letras separadas por dois pontos, na forma [ação tomada na tabela principal]:[resultado na tabela subordinada]. Por exemplo, d:C significa que, quando algo é eliminado na tabela principal, a alteração é propagada para a tabela subordinada.
As ações na tabela principal são indicadas por uma letra minúscula:
- u Os dados na tabela principal são atualizados.
- d Os dados na tabela principal são eliminados.
Os resultados na tabela subordinada são indicados por uma letra maiúscula:
- R Sem ação Não altere a tabela subordinada.
- Cascata C Replicar a alteração na tabela subordinada.
- Predefinir D Insira o valor predefinido que definiu anteriormente para essa coluna na tabela subordinada.
- N Definir Nulo Defina a tabela subordinada como NULL.
- (Em branco) Não imponha integridade referencial nesta relação.
Nota
Estas definições afetam o que acontece numa base de dados real e não num modelo. Num modelo que efetua a engenharia inversa a partir de uma base de dados existente, pode ver como a base de dados foi concebida no que diz respeito à integridade referencial. Num modelo que cria do zero, pode utilizar estas definições para documentar como pretende que a base de dados que está a modelar se comporte.
Mostrar integridade referencial no Visio 2010
- No separador Base de Dados, no grupo Gerir, clique em Opções de Visualização.
- No separador Relações , em Mostrar, selecione a caixa de verificação Ações referenciais .
Não consegue encontrar as funcionalidades de modelação de bases de dados?
Algumas versões do Visio não têm o modelo Diagrama de Modelo de Base de Dados.
O Visio Standard não inclui o modelo Diagrama de Modelo de Base de Dados.
As edições do Visio Professional e Premium suportam as funcionalidades de engenharia inversa para o modelo Diagrama de Modelo de Base de Dados (isto é, utilizar uma base de dados existente para criar um modelo no Visio), mas não suportam engenharia direta (isto é, utilizar um modelo de base de dados do Visio para gerar um código SQL).
Nota
No Visio for Enterprise Architects, encontrará o conjunto de funcionalidades de modelação de bases de dados completo, incluindo engenharia inversa e direta. O Visio for Enterprise Architects está incluído na Subscrição do MSDN Premium, que está disponível nas edições com base em funções do Visual Studio Professional e do Visual Studio Team System.
Se estiver a utilizar Visio (Plano 2) e quiser saber como criar uma base de dados existente num modelo de base de dados, veja o tópico Engenharia inversa de uma base de dados existente.