###### Abstract  
Databases are a fundamental element of contemporary software applications. The most widely used and recognized type in practice is the relational database, valued for its ability to store and organize data in tabular structures, its emphasis on data consistency and integrity, and its use of a standardized query language, SQL. However, with the rapid increase in both the volume and complexity of data, relational databases have recently encountered challenges in effectively modeling this expanding information. To address performance challenges, new database systems have emerged, offering alternative approaches to data modeling--these are known as NoSQL databases. In this paper, we present an indoor navigation application designed to operate on both a relational database, Microsoft SQL Server, and a graph-based NoSQL database, Neo4j. We describe the algorithms implemented for testing and the performance metrics analyzed to draw our conclusions. The results revealed Neo4j's strength in managing data with complex relationships but also exposed its limitations in handling concurrent access, where SQL Server demonstrated significantly greater stability.  
graph database; Neo4j; relational database; SQL Server; performance; complex queries; concurrent access +
Footnote †: journal: _Applied Sciences_  
of multiple users. One way to leverage the strengths of graph NoSQL databases while mitigating its weaknesses in concurrent access is to use a combination of SQL and NoSQL in the application's architecture. This approach allows for both stability and flexibility.  
This paper aims to contribute to the ongoing debate by providing a comprehensive performance comparison between relational databases and graph NoSQL databases, focusing on their ability to handle complex algorithms and manage concurrent access, using a building navigation application as a case study. The application provides pedestrians with real-time directions about their navigation routes [4].  
While numerous comparisons have already been made between these two technologies, it is essential to delve deeper by providing fresh perspectives and conducting hands-on experiments that database architects and developers can benefit from. These experiments should thoroughly evaluate key performance metrics such as response time, CPU consumption, and memory utilization. By analyzing these factors, database designers can make more informed decisions tailored to the specific demands of their applications, ensuring optimal efficiency and performance under real-world conditions. This comprehensive approach goes beyond theoretical comparisons, offering practical insights crucial for fine-tuning database systems. The paper proceeds by outlining the related work in Section 2, followed by an in-depth explanation of the methodology in Section 3, covering key aspects such as the databases used, the application environment, the algorithms employed, and the performance metrics chosen for evaluation. In our study, we used an application simulating an indoor navigation system as the testing subject for comparing the two databases. This system incorporates a graph structure and uses the Dijkstra algorithm to compute the shortest paths. Section 4 presents multiple testing scenarios designed to simulate simultaneous user requests within the navigation system. These scenarios were carefully structured to assess how each database performs under varying levels of request complexity. Tests were categorized from the simplest to the most computationally demanding tasks, allowing us to observe the databases' behavior in diverse conditions. In Section 5, we present the performance outcomes, detailing how each system handled the defined tasks. Lastly, in Section 6, we conclude with our observations and final thoughts based on the analysis of the results.