We can get a partial result by only considering our vector layers, and running some vector analysis tools on them. There are different methods for different type of analysis; however, we can group the most frequently used methods into the following four groups:
- Overlay analysis: Analyzing features according to their spatial relationships to other features. Common use cases are spatial queries and spatial joins.
- Proximity analysis: Analyzing the relationship of features based on some distances. The heart of this type in a traditional desktop GIS software is the buffer tool, while the rest of the work is basically overlay analysis.
- Neighborhood analysis: Analyzing (more often, statistically) neighbouring features of some input features. When we need to find the closest features to some input features, it is called a k-NN (k nearest neighbor) query.
- Network analysis: Analyzing a topological network, or some features on it. The most typical use case is to find the shortest path between two points on a road network.
Different GIS softwares are good at different analysis types. Although QGIS is a universal GIS, it offers a good coverage only in the most basic analysis types--overlay analysis and proximity analysis. PostGIS is exceptionally good in neighborhood analysis. As GRASS GIS forces the topological model on vector layers, it has the best capabilities in network analysis.
If you would like to learn about network analysis, you can look up examples using pgRouting with PostGIS, or using network tools in GRASS GIS.