Welcome to Keen Software House Forums! Log in or Sign up to interact with the KSH community.
  1. You are currently browsing our forum as a guest. Create your own forum account to access all forum functionality.

How To Choose Database Technology

Discussion in 'Off-topic' started by Bion, Mar 24, 2019.

  1. Bion Trainee Engineer

    Messages:
    1
    Hello,

    This is my very first post here, good day. I post it here because I'm afraid I may post it into the wrong category.

    I would to like to ask for advice:

    1. How do we choose what database technology to use? What are the parameters do we usually need to consider?
    2. When it comes to unstructure data, what do you think would be the best database that we could use nowadays with a very reasonable price?
    3. When we build a software, how do we determine what would be the minimum hardware requirements? Are there any tools we can use to help on this?

    Thank you.
     
  2. bleakhead Trainee Engineer

    Messages:
    56
    Hello @Bion ,
    to answer the first question, I need to answer the second first.
    There is no golden database technology. To make it easy and clearly I just want to compare relational databases and document-oriented databases.
    A relational database is MySql/ MariaDB and a document-oriented DB is MongoDB.

    Both are really good at their specialism. Whilst MongoDB can better act with tons of data, MySql can better build relationships. (You can build relationships in MongoDB via frameworks like MongooseJS too)

    According to the Trend
    https://trends.google.com/trends/explore?date=2016-01-01 2018-11-30&q=mariaDB,MongoDB,MySQL

    you will see, that Mysql is broadly more used, than MongoDB. This is important if you want to search for help, tips or some knowledge about the DB.

    Both databases are free to use.
    MongoDB does not need schemes, while Mysql has its scheme in the table. EG: a User in MongoDB
    User1: {
    name: Roland
    age: 30
    },
    User2: {
    name: Rosie,
    email: rosie@host.local
    }
    User scheme in MySQL must follow the same structure (for that example above, the table needs name, age. email)


    Soo to shorten the things. You are not restricted to use only one DB technology. Use Mysql for Login requests and something like this and MongoDB to fetch a big amount of datasets. Use the advantages of both databases to handle the disadvantages of both.

    For the third question, I can not give a really professional answer. The requirements refer to the end-user capabilities of their devices and claims. I know this is your question in other words, but let me give an example. Grandma Rosie does not need a High-end database structure and a Highend PC to manage a library of her recipes. So the software does not need to be that deep. Otherwise, a pro gamer wants great and deep techniques and has a high-end PC, so you have more possibilities. All in one, you must ask yourself, who should be your customer, how many time you have and what should it cost. All these questions will restrict your software and with it the system requirements.

    A minimum of system requirements you can calculate if you collect the system requirements of the technology you want to use.
    Here is an example, if you want to create a unity game
    https://unity3d.com/unity/system-requirements


    I hope it was not too late and will answer your questions a bit.