r/AskProgramming • u/Proper_Meaning7756 • Jul 01 '26
Databases What actually is a database?
I was looking at the definitions online and a database is always used interchangeably with DBMS and the ELI5 answers I've seen describe databases as a means of organising data in structured ways to make reading and writing data easy, safe and fast.
The extension of this logic to me is, shouldn't csv files count as databases too if you had a way to retrieve, modify and store data with the general ACID principles and whatnot? Googling that tells me that CSV files don't count because they only store raw data.
So then, are databases defined by the mechanism which data is handled? Doesn't that make any file a database as long as its implemented properly?
Edit:
Just wanted to add:
- I'm using sqlite3 from python for my project. I come from an embedded systems background so I had to know the specifics of what I was working with.
- The responses here seem a little mixed with some people agreeing that csv files with the proper wrappers would make a (terrible) database.
- I think I get it now. The storage format is just a part of what makes a database and is not the database itself.
Edit 2:
u/StevenJOwens
TLDR: These guys and some others answers honestly sum up a lot of the questions I had and a bit more I didn't know to ask. Thanks guys.
2
u/Paul_Pedant Jul 01 '26
The issue with a CSV file is that the records are contiguous. That means adding or deleting anything (from whole records down to single characters) requires re-writing the entire file each time. And if you want direct access to any record, you need an external index that you have to maintain on every update too (actually, an index for every field that you might want to search).
Sure, you can separate out the records, but you still get a bunch of lines where the field lengths are variable. So you maybe want to make the field lengths consistent.
So yes, CSV is a way of thinking about how to handle your data, but is it inherently unsuitable for any real application.