Is database partitioning only created to get a better performance? and why should one partition a table, and a database?
I am not sure if I would be able to put this in a comment, hence making it an answer:

Partitioning may not serve the mere goal of performance, because querying the partitioned tables and data comes more into picture when we talk performance. Therefore one needs to have a better understanding of writing efficient queries on partitioned tables. 

Partitioning is good for very large databases, for maintaining that big amount of data within the database efficiently so that you can handle its growth properly. What I get from partitioning is saving some space on the data drives, which might be filling with unwanted data preserved, depending upon RTO or RPO. Good for saving some space for sure.

I don't think database partitioning and tables are the same. I have never implemented database partitioning, but yes you can use it for large tables. Also check on data and/or page compression when using partitioning.

With big databases, like 30 TB, you may consider other performance checks and good practices apart from partitioning as well, like infra build, etc.

This might help: https://www.brentozar.com/guide-to-evaluating-table-partitioning/