> Formally, a "database" refers to a set of related data accessed through the use of a "database management system" (DBMS), which is an integrated set of computer software that allows users to interact with one or more databases and provides access to all of the data contained in the database (although restrictions may exist that limit access to particular data). The DBMS provides various functions that allow entry, storage and retrieval of large quantities of information and provides ways to manage how that information is organized.
What makes SlateDB not qualify for this definition? It seems to qualify for me.
> Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spans formal techniques and practical considerations, including data modeling, efficient data representation and storage, query languages, security and privacy of sensitive data, and distributed computing issues, including supporting concurrent access and fault tolerance.
SlateDB delegates all of this to the object storage behind it. (I don't mean it in a disparaging way at all, just a fact)
That’s like saying Postgres delegates all this to the file system behind it. Neither a file system or S3 provide writer fencing, indexed range queries, batched/paged IO, or fine-grained data model.
Do you feel that e.g. Redis fails to satisfy the same definition in basically the same ways? If it does fulfill the criteria, what do you see as the distinction?
Calling Redis a database is a generous generalization. For example, Redis does not necessarily provide the same kind of durability as a database does, nor the capabilities one would expect from an RDBMS. In many cases, depending on configuration, it might be more appropriate to instead refer to Redis as a cache, an in-memory database, or a NoSQL database.