Click here to Skip to main content
15,887,135 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I am new to programming and I am curious to know where data is stored in offline windows software such as inventory software or any software that stores data?

do these softwares use database or what? How it works?

What I have tried:

I have tried nothing. Just want to know.
Posted
Updated 5-Jun-19 22:56pm

The problem is that there is no "single answer" - there are multiple answers, and often a single application won;t necessarily store information in even one place!

There are a huge variety of "places to store data", and an even bigger range of ways that data could be stored: Databases are one, and they are seriously useful if your data is tabular and / or has cross correlations where data is "shared" across multiple stores. For example, an invoicing system would use a DB because it wants to store the customer detail in one place only, each invoice detail (date, number, due by, paid status, customer) in another, and each item on the invoice (product, quantity, value, delivery status) in another. That's all easy to do with a DB, but difficult with say a spreadsheet, or a flat text file.
But DB's are the only solution: a config file is great for storing user preferences in a single user system - colours he likes, lines per page, font ... and while that could be in a DB, that would add a huge amount of software and data overhead to a simple task.

Basically, you can't tell from the outside: any given app could use a DB, or a spreadsheet, or a text file, or a binary file, or a config file, or ... the list goes on.
 
Share this answer
 
Comments
Promit Sahani 6-Jun-19 3:12am    
If I use mysql as database for my application then does my client need to install mysql on his computer to use the application?

Suppose, I have created an application which stores students data such as Name, roll number, marks, etc in mysql database. Now I want to give this application to my client as a .exe file. Does he need to install mysql on his machine? Or what?
OriginalGriff 6-Jun-19 4:43am    
That depends. MySql is a server based database, like Sql Server (also called "MSSql") - and they require access to the appropriate server software installed on a computer, normally on the same LAN / WiFi segment to work.
And installation, management, and configuration of any server based database is complicated, has a large footprint, and requires a lot of care if it is to work properly.

Installing a server based solution for a single user database system is a bad idea:

0) You can only distribute SQL Server Express for copyright reasons - not SQL Server full version.
1) They may already have SQL Server installed on the network. If so, then they will presumably want to use that version.
2) If they do have SQL server installed and you start proliferating SQL server Express instances, you are going to annoy the heck out of the database administrator...
3) A single site installation of SQl Server is a lot more likely to be backed up than a number of scattered version under user control.
4) Sql server is quite complex for a "normal" user to install and administer - it is not a good idea!
5) It will destroy the primary advantage of using Sql Server over SqlCE or SQLite - multiuser access. If everyone installs their own copy of SQL server, then you will have multiple copies of your database, each used by a single person. This will cause some confusion, and (depending on how you wrote the original database) may take some considerable effort to combine into a single instance when the problem is realized.

If you need multiple users accessing the same data, then you need a server based system (and the client should be responsible for installing it).
If you need only one user accessing the data, then use a single user DB, like SQLite or even Access.
Promit Sahani 6-Jun-19 5:02am    
So, what will be your solution for these two stores? Because we have to store lots of data like transactions, billings, purchase entry etc.

Garment Store 1: It will be single user garments billing application. What would you recommend for it?

Garment Store 2: It will be multi user garments billing application and will be run on different computer. What would you recommend for it?
OriginalGriff 6-Jun-19 5:15am    
Up to you! This is your app, not mine - but I wouldn't try to make one app fit both circumstances myself. Consider having multiple Data Layer modules so you can release a "full" and "lite" version of your app as needed.
Quote:
do these softwares use database or what? How it works?
Many use databases (and there are many different databases). The other ones store the data in custom files (e.g. configuration files, serialized data...).
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900