Are both Swarm and BigchainDB complementary to ethereum or do they function independently? What are their applications?
Both Swarm and BigchanDB are complementary to the Ethereum platform.
You can use both of them in your Ethereum contracts to either host and distribute content (Swarm) or use a database system (BigchainDB). These are things you don't have in Ethereum.