Skip to main content

Dependência multivalorada em bancos de dados

MOTO Y2K JET BIKE 1999 (Pode 2025)

MOTO Y2K JET BIKE 1999 (Pode 2025)
Anonim

Em um banco de dados relacional, uma dependência ocorre quando as informações armazenadas na mesma tabela de banco de dados determinam exclusivamente outras informações armazenadas na mesma tabela. Uma dependência multivalorada ocorre quando a presença de uma ou mais linhas em uma tabela implica a presença de uma ou mais outras linhas na mesma tabela. Em outras palavras, dois atributos (ou colunas) em uma tabela são independentes uns dos outros, mas ambos dependem de um terceiro atributo.

Uma dependência multivalorada impede a norma de normalização da quarta forma normal (4NF). Os bancos de dados relacionais seguem cinco formulários normais que representam diretrizes para o design de registros. Eles evitam anomalias de atualização e inconsistências nos dados. A quarta forma normal lida com relacionamentos muitos-para-um em um banco de dados.

Dependência Funcional vs. Dependência Multivalorada

Para entender uma dependência multivalorada, é útil rever o que é uma dependência funcional.

Se um atributo X determina exclusivamente um atributo Y, então Y é funcionalmente dependente de X. Isso é escrito como X -> Y. Por exemplo, na tabela Alunos abaixo, o Student_Name determina o Major:

Estudantes
Nome do alunoPrincipal
RaviHistória da arte
BethQuímica

Esta dependência funcional pode ser escrita: Student_Name -> Major . Cada Student_Name determina exatamente um major e não mais.

Se você quiser que o banco de dados também acompanhe os esportes que esses alunos fazem, você pode achar que a maneira mais fácil de fazer isso é simplesmente adicionar outra coluna intitulada Esporte:

Estudantes
Nome do alunoPrincipalEsporte
RaviHistória da arteFutebol
RaviHistória da arteVoleibol
RaviHistória da artetênis
BethQuímicatênis
BethQuímicaFutebol

O problema aqui é que tanto Ravi quanto Beth participam de vários esportes. É necessário adicionar uma nova linha para cada esporte adicional.

Esta tabela introduziu uma dependência multivaluida porque o major e o esporte são independentes um do outro, mas ambos dependem do aluno.

Este é um exemplo simples e facilmente identificável, mas uma dependência de vários valores pode se tornar um problema em um banco de dados grande e complexo.

Uma dependência de valor múltiplo é gravada X -> -> Y. Nesse caso:

Nome do aluno ->-> PrincipalNome do aluno->-> Esporte

Isso é lido como "Student_Name multidetermines Major" e "Student_Name multidetermines Sport".

Uma dependência multivalorada sempre requer pelo menos três atributos porque consiste em pelo menos dois atributos que são dependentes de um terceiro.

Dependência e Normalização Multivalorada

Uma tabela com uma dependência multivalorada viola o padrão de normalização da Quarta Forma Normal (4NK) porque cria redundâncias desnecessárias e pode contribuir para dados inconsistentes. Para trazer isso para 4NF, é necessário dividir essa informação em duas tabelas.

A tabela abaixo agora tem uma dependência funcional de Student_Name -> Major e não há dependências de valores múltiplos:

Estudantes e majores
Nome do alunoPrincipal
RaviHistória da arte
RaviHistória da arte
RaviHistória da arte
BethQuímica
BethQuímica

Enquanto esta tabela também possui uma única dependência funcional de Student_Name -> Sport:

Estudantes e Esportes
Nome do alunoEsporte
RaviFutebol
RaviVoleibol
Ravitênis
Bethtênis
BethFutebol

É claro que a normalização é geralmente resolvida pela simplificação de tabelas complexas, de modo que elas contenham informações relacionadas a uma única ideia ou tema, em vez de tentar fazer com que uma única tabela contenha informações muito diferentes.