They absolutely are databases. What definition of database are you referring to? Google's dictionary defines it as
"a structured set of data held in a computer, especially one that is accessible in various ways."
That's a spreadsheet.
This advantage shows when using Excel positionally rather than as a simple data table system. For example, =B7*C6 is virtually impossible to express in SQL, and constructing positional lookups using concepts such as “the previous row” or “the next column” are virtually impossible - yet, easy in Excel:
INDIRECT(ADDRESS(1+ROW(H229),COLUMN(H229),3)
Excel’s ability to write non-tabular data and calculations alongside tabular data, without needing to split it onto another tab/pane/page, is another critical benefit that databases cannot match. While they have stored procedures and linked functions, they have no concept of “positional” with which to model the theory of canvas that underlies Excel.
Finally, due to being a canvas model with calculation functionality, Excel meets the basic needs of a page layout and data graphing engine, with the ability to configure and position reporting in various UX ways that are considered out of scope for nearly all databases. HyperCard, FrameMaker, MS Access all clearly understand this issue and work to solve it in various respects.
So while the written definition of spreadsheet may seem to be encompassed by the word “database”, that is true only if the word “database” encompasses canvases that store both tabular data and other content, and not just key-value data (such as a MongoDB or anything SQL).
If you want to break into the Excel market, you won’t do it with a database alone. You’ll need canvas UX to even begin to be relevant, a point many startups discover the hard way.
As I wrote initially, if you losen the definition that much, then a txt and literally everything is a database.
There are many different definitions but my personal completely subjective perspective is that the bare minimum is that whatever structure you claim the data has must be enforced and be translatable to a semantic connection. For most sql databases you have a schema enforcing the structure and at a minimum there is a connection between different pieces of data in the same row.
In a spreadsheet having different sets of numbers/text/code on the same row or column might mean something but doesn’t have to. So whatever “structure” there is, is not enforced.
This is in the same sense that a txt document that contains 4 book chapters have in them 3 email addresses is a “structured list of emails” sure you could find them and there is a structure to it, but calling it a database is a stretch in my book.
Are you arguing that flat file databases aren't databases? Because they really are.
There are plenty of computer programs that use text files as databases, reading and writing lines. /etc/passwd is one very common example, the passwd file is just a text database that you can read with any text editor.
I mean a HN comment is also a database, a text is a database, a picture of rocks arranger i the shape of names is a database.
In the world of stupid internet arguments, sure we can agree you are right txtfiles are database, .wav files are database, everything is a database. Talk this way about it at a job interview and you’ll get cut by your second sentence
>> Yes, but by that definition every group of bits on a computer is a database. The word sort of loses any value.
Not exactly. We need to define the atomicity we would like to deal with. That is:
- if a bit is what the atomic unit of data is, then a byte is a database
- if a byte is what the atomic unit of data is, then a collection of bytes in properly defined structure is a database. For example, a JPEG file or little-endian or big-endian datatypes.
>> I mean a HN comment is also a database, a text is a database, a picture of rocks arranger i the shape of names is a database.
If a word is the atomic unit, then a comment can be a database. If the comment itself is an atomic unit, then the thread can be a database.