The Firebase database (ref. ) provides developers with a fast and easy solution to integrate a real time database into their projects. This service is based on a noSQL database and allows to store data online and synchronize this data across multiple clients. In this section we will first elaborate the differences between the Firebase database and a more traditional self-hosted MySQL database and then highlight our use cases and the resulting database structure.
9.3.1. FireBase (NoSQL) vs. MySQL - Jonas (ready for proofreading)
Starting with the more traditional MySQL, this database system is open source and based on a relational database approach. In relational database management systems …show more content…
NoSQL databases usually provide a better concurrent access with higher read and write speeds at a lower latency, more efficient data storage and better scalability (ref http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6106531 ). This superiority arises because of the structural differences, which also effects the data safety. While many noSQL, and especially Firebase database, are real time database, meaning any transaction has to be completed within a given time frame, usually milliseconds. However, they can not guarantee that the data is always correct on the database. In comparison, MySQL is ACID (atomicity, consistency, isolation und durability) compliant, meaning a transaction is either fully executed or not at all, which ensures data consistency (ref https://dev.mysql.com/doc/refman/5.6/en/mysql-acid.html …show more content…
However, the data is not stored on our server, but on the ones run by Firebase, meaning we have no direct control over it.
9.3.2. Our choice, Firebase database - Jonas (ready for proofreading)
Changing database during a project can be tricky, especially switching between noSQL and SQL databases, as the data structure must be adopted to the new system. Therefore, we discussed our database choice extensively and wrote down our must requirements before implementing one. Table ** shows these requirements for our database ordered according to their importance.
Table **: Our must haves for a database