Preferred database

Which database do you prefer to work with if you have the choice?


  • Total voters
    51
Ummmm... in your post, #1 can be described as a database instance (https://en.wikipedia.org/wiki/Instance_(computer_science)) on a server. Actual tables, and related programs to make use of contents. #2 can be described as a dataset. (https://en.wikipedia.org/wiki/Data_set) These are actual terms with a formal definition.
Re #1: You can of course say 'database instance', but then you risk that someone might think you mean 'DBMS instance' which is different as it also includes the software needed to manage the database. Besides, my definition is supported by SQL - is that formal enough for you?
SQL:
CREATE DATABASE foo;
You can then create objects inside foo (tables, views, stored programs, ...) and insert data into the tables. All that is one database. In fact, you often have multiple such databases running on a single DBMS instance. And I believe it's a similar story for noSQL database systems.
Re #2: Agreed, 'data set' is probably a better term for this. Sadly, that doesn't prevent people from using/misusing "database" to describe the same thing, though!
 
Re #1: You can of course say 'database instance', but then you risk that someone might think you mean 'DBMS instance' which is different as it also includes the software needed to manage the database. Besides, my definition is supported by SQL - is that formal enough for you?
SQL:
CREATE DATABASE foo;
You can then create objects inside foo (tables, views, stored programs, ...) and insert data into the tables. All that is one database. In fact, you often have multiple such databases running on a single DBMS instance. And I believe it's a similar story for noSQL database systems.
With the SQL statement in your post, you create a 'database instance' that is then available to be managed by the DBMS. SQL treats keyword 'DATABASE' as shorthand for 'database instance'. Kind of like telling Kate to create a text file that can then be edited by Kate, nano, or ed.

There's no such thing as 'DBMS instance'. DBMS is the whole package, like databases/mysql57-server that you install to get the ball rolling. I guess you can make a copy of the package for installation, and call that 'DBMS instance', or get a licensed copy of Oracle 11g DBMS on a DVD.

Traditional SQL systems put everything into one package, and may offer an API for other programming languages. NoSQL removes the requirement that everything needs to be part of the same package, allowing you to mix and match components to suit the puzzle at hand. Thanks to that, standards compliance got broken. Useful, out-of-the-box ideas needed a new name, and a new set of standards just to gain traction and credibility. Nothing bad about it, but a formal distinction needed to be made and acknowledged. IPv4 vs IPv6 follows the same pattern - new standards keep coming out as ideas gain traction.

Sometimes, you can understand from context that ppl mean 'dataset' when they say 'database'. 'Database' is kind of an umbrella term that is easier for the public to understand in a casual conversation. But when you're ready to get your hands dirty actually working with a database, it helps to have a decent handle on pretty in-depth knowledge - including making a distinction between different terms. :)
 
Back
Top