Duas relações com a mesma chave primária?


Por vezes surgem propostas de modelos de dados em que co-existem duas, por vezes mais, relações com a mesma chave primária (CP). Ora, isso teoricamente é um erro dado que duas relações com uma CP idêntica são uma única relação.

Regra:

Os objectos que tenham uma relação de 1:1 entre si devem manter-se juntos: um aluno tem um número de aluno (não tem dois); um automóvel tem uma matrícula (não tem duas), e por ai fora.

Exemplo:

 

Figura 1: Excerto de modelo de dados

No caso da Figura 1 ninguém poderá afirmar que o desenho esteja correcto. Porquê subdividir algumas características dos alunos por relacções diferentes quando na verdade os atributos têm uma relação de 1:1 com cada aluno.
  • Por acaso um aluno têm dois nomes? Não, não tem.
  • Será que um aluno têm dois números de bilhete de identidade? Também parece que não...
Então isso significa que entre a relação Aluno e os atributos nome e número de bilhete de identidade há uma associação de 1:1, i.e., um aluno tem um só nome e um único número de bilhete de identidade. Pelo que esses atributos têm que pertencer à mesma relação, têm que estar todos no mesmo conjunto.

A intersecção do conjunto (a relação) Aluno com o conjunto Aluno Identificação não é o conjunto vazio pelo que não são disjuntos, pelo contrário são uma e a mesma coisa. A intersecção dos dois conjuntos é a soma de todos os atributos sem que isso implique qualquer perca de integridade dos factos. Aliás, a integridade e o valor da informação aumentam quando os atributos 1:1 ficam todos no mesmo conjunto.

Conclusão: duas relações com uma CP idêntica são uma única relação.




Related Posts:

  • SYSDATE numa restrição CHECK em Oracle Como o valor de SYSDATE (data do sistema) é quase sempre diferente em cada momento de avaliação de uma cláusula CHECK então o Oracle não nos deixa fazer uma restrição desse tipo. Imagine-se, por exemplo, que se quer inse… Read More
  • DBA | Transacção Uma transacção agrupa um conjunto de operações que transformam a base de dados de uma estado consistente n para outro estado consistente n+1. Pode considerar-se que há uma história – ou cronograma ou processo – que modela/t… Read More
  • Data Warehousing - Conceitos e Modelos Data Warehousing - Conceitos e Modelos: é um novo livro sobre as técnicas fundamentais de desenho de data warehouses na perspectiva do modelo de dados Dimensional. É o primeiro livro desta área em Português de Portugal, é d… Read More
  • DBA | Isolamento de transacçõesAs normas ANSI SQL determinam os seguintes três tipos de isolamento transaccional nos sistemas de gestão de bases de dados: Dirty Read. A transacção T1 modifica um facto. Outra transacção T2 lê esse mesmo facto antes que T… Read More
  • Trigger para validação de data | OracleConsiderem-se as seguintes tabelas: Curso Disciplina Disciplina no Curso Pretende-se impedir que sejam introduzidas na tabela “Disciplina no Curso” datas de cessação inferiores à data actual. Como em Oracle não … Read More