As dependencias de base de datos son un tema que moitas veces confunde tanto aos estudantes coma aos profesionais da base de datos. Afortunadamente, non son tan complicados e poden ilustrarse mellor mediante o uso de varios exemplos. Neste artigo, examinamos os tipos de dependencia de base de datos comúns.
Dependencias da base de datos / Dependencias funcionais
A dependencia ocorre nunha base de datos cando a información almacenada na mesma táboa de base de datos determina de forma exclusiva outra información almacenada na mesma táboa. Tamén pode describir isto como unha relación onde coñecer o valor dun atributo (ou un conxunto de atributos) é suficiente para indicarlle o valor doutro atributo (ou conxunto de atributos) na mesma táboa.
Dicir que hai unha dependencia entre os atributos dunha táboa é o mesmo que dicir que existe unha dependencia funcional entre eses atributos. Se hai unha dependencia nunha base de datos de tal forma que o atributo B depende do atributo A, escribirías isto como "A -> B".
Por exemplo, nunha lista de táboas características do emprego, incluído o Número de Seguridade Social (SSN) e o nome, pódese dicir que o nome depende do SSN (ou SSN -> name) porque o nome dun empregado pode ser determinado de forma exclusiva a partir do seu SSN. Non obstante, a declaración inversa (nome -> SSN) non é verdadeira porque máis dun empregado pode ter o mesmo nome pero diferentes SSN.
Dependencias funcionais triviais
Unha dependencia funcional trivial ocorre cando se describe unha dependencia funcional dun atributo nunha colección de atributos que inclúe o atributo orixinal. Por exemplo, "{A, B} -> B" é unha dependencia funcional trivial, como é "{nome, SSN} -> SSN". Este tipo de dependencia funcional chámase trivial porque pode derivarse do sentido común. É obvio que se xa coñeces o valor de B, entón o valor de B pode determinarse exclusivamente por ese coñecemento.
Dependencias funcionais completas
Unha dependencia funcional completa ocorre cando xa cumpre os requisitos para unha dependencia funcional eo conxunto de atributos no lado esquerdo da declaración de dependencia funcional non se pode reducir máis. Por exemplo, "{SSN, age} -> name" é unha dependencia funcional, pero non é unha dependencia funcional completa porque pode eliminar a idade do lado esquerdo da declaración sen afectar a relación de dependencia.
Dependencias transitivas
As dependencias transitivas ocorren cando hai unha relación indirecta que causa unha dependencia funcional. Por exemplo, "A -> C" é unha dependencia transitiva cando é certo só porque tanto "A -> B" como "B -> C" son certos.
Dependencias multivaloradas
As dependencias multivalor se producen cando a presenza dunha ou máis filas nunha táboa implica a presenza dunha ou máis outras filas nesa mesma táboa. Por exemplo, imaxina unha empresa de automóbiles que fabrica moitos modelos de automóbiles, pero sempre fai as dúas cores vermellas e azuis de cada modelo. Se tes unha táboa que contén o nome do modelo, a cor e o ano de cada automóbil fabricado pola empresa, existe unha dependencia multivalor nesa táboa. Se hai unha liña para un determinado nome de modelo e un ano en azul, tamén debe haber unha fila similar correspondente á versión vermella do mesmo coche.
Importancia das dependencias
As dependencias da base de datos son importantes para entender porque fornecen os bloques básicos empregados na normalización da base de datos . Por exemplo:
- Para que unha táboa sexa a segunda forma normal (2NF) , non debe haber ningún caso dun atributo non primo na táboa que depende funcionalmente dun subconxunto dunha clave candidata .
- Para que unha táboa estea en terceira forma normal (3NF) , cada atributo non primo debe ter unha dependencia funcional non transitiva en cada clave candidata.
- Para que unha táboa estea en Boyce-Codd Normal Form (BCNF) , cada dependencia funcional (que non sexa dependencias triviais) debe estar nun superkey .
- Para que unha táboa estea na cuarta forma normal (4NF) , non debe ter dependencias multivalor.