I have a question. If I wanted to connect to a database of an X system to get information for my journey. Is it necessary to create a webservices or is it only configuration through automation studio or contact builder?
I will always recommend you to synchronise this data to Marketing Cloud on an ongoing basis - using either SFTP/Automation Studio (using File Import Activity) or through SOAP/REST API.
The first option is best suited for high volume batch transfers, while API is better for pushing fewer rows of data in real time.
Since you need this specifically for journey builder, you could opt for a custom activity. However this requires substantial custom development. Also - it introduces a dependency on both the infrastructure hosting this custom activity, as well as the data source being polled.
Why data should reside inside Marketing Cloud, is therefore both a question of performance, as well as robustness. Relying on fetching data from an external source WHEN you need it, poses a real risk of that data source either not being available or introducing significant latency.
For details on integration capabilities and data modelling in Marketing Cloud, I would suggest you to take a look at this Trail: https://trailhead.salesforce.com/en/content/learn/trails/develop-for-marketing-cloud