
En transitiv avhengighet er et indirekte avhengighetsforhold mellom programvarekomponenter. Denne typen avhengighet holdes i kraft av en transitiv relasjon fra en komponent som programvaren er direkte avhengig av.
I et dataprogram er en direkte avhengighet funksjonalitet fra et bibliotek eller API, eller en hvilken som helst programvarekomponent som refereres direkte av selve programmet. En transitiv avhengighet er enhver avhengighet indusert av en annen komponent, som igjen direkte eller indirekte refereres til av programmet. For eksempel kan et kall til en log()-funksjon indusere en transitiv avhengighet til et bibliotek som administrerer I/O-en for å skrive en melding til en loggfil .
Avhengigheter og transitive avhengigheter kan slås opp på forskjellige tidspunkt, avhengig av hvordan dataprogrammet er satt sammen og/eller utført: For eksempel kan en kompilator ha en lenkefase hvor avhengighetene løses. Noen ganger tillater byggesystemet til og med administrasjon av transitive avhengigheter.[trenger referanse]
På samme måte når en datamaskin bruker tjenester kan et dataprogram være avhengig av en tjeneste som bør startes før programmet kjøres. En transitiv avhengighet i et slikt tilfelle er enhver annen tjeneste som tjenesten man er direkte avhengig av igjen er avhengig av, for eksempel at en nettleser er avhengig av en tjeneste for å konvertere en nettadresses domenenavn (DNS) til en IP-adresse. DNS vil da avhenge av en nettverkstjeneste for å få tilgang til en ekstern navneserver. Linux-oppstartssystemet systemd er basert på en mengde konfigurasjoner som erklærer avhengighetene til modulene som skal startes: Ved oppstartstidspunktet analyserer systemd alle transitive avhengigheter for å bestemme utførelsesrekkefølgen for hver modul som skal starte.
Anta at entitetene A, B og C eksisterer slik at følgende utsagn gjelder:
Da er den funksjonelle avhengigheten A → C en transitiv avhengighet (som følger av Armstrong's transitivitetsaksiom).
I databasenormalisering er en av de viktige egenskapene til tredje normalform at den utelukker visse typer transitive avhengigheter. Edger F. Codd, oppfinneren av relasjonsmodellen, introduserte begrepene transitiv avhengighet og tredje normalform i 1971.
En transitiv avhengighet oppstår i følgende relasjon:
| Bok | Sjanger | Forfatter | Forfatterens nasjonalitet |
|---|---|---|---|
| En verdensomseiling under havet | Science fiction | Jules Verne | Fransk |
| En reise til jordens indre | Science fiction | Jules Verne | Fransk |
| Leaves of Grass | Poesi | Walt Whitman | Amerikansk |
| Anna Karenina | Litterær skjønnlitteratur | Leo Tolstoj | Russisk |
| En bekjennelse | Selvbiografisk historie | Leo Tolstoj | Russisk |
Den funksjonelle avhengigheten {Bok} → {Forfatterens nasjonalitet} dukker opp; det vil si at hvis vi kjenner boken kan vi vite forfatterens nasjonalitet. Dessuten:
Derfor er {Bok} → {Forfatterens nasjonalitet} en transitiv avhengighet.