
Una dependencia transitiva es una relación de dependencia indirecta entre componentes de software . Este tipo de dependencia se establece mediante una relación transitiva desde un componente del que el software depende directamente.
Programas informáticos
En un programa informático, una dependencia directa es una funcionalidad de una biblioteca , una API o cualquier componente de software al que el propio programa hace referencia directamente. Una dependencia transitiva es cualquier dependencia inducida por un componente diferente, al que el programa hace referencia directa o indirectamente. Por ejemplo, una llamada a una log()función puede inducir una dependencia transitiva a una biblioteca que gestiona la entrada/salida de un mensaje en un archivo de registro .
Las dependencias y las dependencias transitivas pueden resolverse en momentos diferentes, según cómo se ensamble o ejecute el programa informático : por ejemplo, un compilador puede tener una fase de enlace donde se resuelven las dependencias. En ocasiones, el sistema de compilación incluso permite gestionar las dependencias transitivas.
De forma similar, cuando un ordenador utiliza servicios , un programa informático puede depender de un servicio que debe iniciarse antes para ejecutarse. Una dependencia transitiva en este caso es cualquier otro servicio del que dependa el servicio del que dependemos directamente; por ejemplo, un navegador web depende de un servicio de resolución de nombres de dominio ( DNS ) para convertir una URL web en una dirección IP ; el DNS dependerá de un servicio de red para acceder a un servidor de nombres remoto. El sistema de arranque de Linux, systemd, se basa en un conjunto de configuraciones que declaran las dependencias de los módulos que deben iniciarse: en el momento del arranque, systemd analiza todas las dependencias transitivas para decidir el orden de ejecución de cada módulo.
Sistemas de gestión de bases de datos
Supongamos que existen entidades A, B y C tales que se cumplen las siguientes afirmaciones:
- Existe una relación de dependencia directa entre A y B.
- No existe una relación B → A.
- Existe una relación de dependencia directa entre B y C.
Entonces, la dependencia funcional A → C es una dependencia transitiva (que sigue el axioma de transitividad ).
En la normalización de bases de datos relacionales , una de las características importantes de la tercera forma normal es que excluye ciertos tipos de dependencias transitivas. EF Codd , el inventor del modelo relacional , introdujo los conceptos de dependencia transitiva y tercera forma normal en 1971. [ 1 ]
Ejemplo
En la siguiente relación se produce una dependencia transitiva:
Surge la dependencia funcional {Libro} → {Nacionalidad del autor}; es decir, si conocemos el libro, podemos conocer la nacionalidad del autor. Además:
- {Libro} → {Autor}
- {Autor} no → {Libro}
- {Autor} → {Nacionalidad del autor}
Por lo tanto, {Libro} → {Nacionalidad del autor} es una dependencia transitiva.
Notas
- ↑ Codd, EF «Mayor normalización del modelo relacional de bases de datos». (Presentado en el Simposio de Ciencias de la Computación Courant, Serie 6, «Sistemas de bases de datos», Ciudad de Nueva York, 24 y 25 de mayo de 1971). Informe de investigación de IBM RJ909 (31 de agosto de 1971). Republicado en Randall J. Rustin (ed.), Sistemas de bases de datos: Simposio de Ciencias de la Computación Courant, Serie 6. Prentice-Hall, 1972. Véanse las páginas 45-51, que tratan sobre la tercera forma normal y la dependencia transitiva.
- Restricciones de la base de datos
- teoría de bases de datos