[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: sqlite database



On Mon, Jul 02, 2018 at 02:02:31PM -0500, David Wright wrote:
> But the OP¹ voraciously consults HOWTOs, and said:
> 
> "Many presume a WEB-SERVER is involved."
> 
> I don't know what others glean from this, but to me it sounds as if
> the mention of "web" taints the software somehow, perhaps subconciously.

If it's the person I think it is, he lacks a fundamental understanding
of the most basic concepts, and could probably benefit from a simplified
explanation.  Unfortunately, instead of asking for explanations, he
assumes something which is incorrect, and then launches into a misplaced
tirade against his imaginary strawman.  Repeatedly.  On every single topic.

I don't know whether he can see this or not, but here are some basic
computer concepts which seem to be unclear, based on snippets of text
in this thread:

data     -- information stored in a computer-readable form

database -- an organized collection of data, or the software which is
            designed to manage said collection

server   -- a process which responds to requests for data, or a computer
            which is running such a process

client   -- a process which sends requests to a server, and receives its
            responses

So, these are pretty broad terms, yes?  Let's get a bit more specific.

"Database" covers a really wide range of things.  Basically, any way that
you can conceive to organize information storage and retrieval could be
called a "database".  Some people consider a directory full of files to
be a "database", because you can store information in it, and retrieve
information from it, and each piece of information has a "key" that lets
you get that one piece of information and no other (that "key" is the
file name).

Another kind of database is a single file with "records" stored inside
it, and a way to retrieve or write specific records without having to
copy the entire file.  A text file is NOT a database of this kind.  In
order to qualify, the file has to have some internal structures that
allow fast retrieval and storage.

SQLite3 IS a database of this kind.  The database is stored in a single
file, and programs using the SQLite3 libraries can store and retrieve
information from it.

(Other examples of this kind of database include the various Berkeley
database libraries that have been used for things like NIS, as well
as Daniel Bernstein's "cdb", and GNU's "gdbm".)

But the kind of database that MOST people will first think of is the
client/server kind, of which two common examples in the free software
world are MySQL and PostgreSQL.

With this kind of database, physical storage is typically in multiple
files in multiple directories somewhere on disk, and this is managed
by a server process.  If you want to store or retrieve information from
the database, you send a request to the server, and it sends back a
response.  The process making the request is a client, and may be written
in any of several different languages, using the language-specific
libraries or interfaces designed to talk to that database server.

The server may be on the same machine as the client, or it may be on
a different machine.  Network-based communication between client and
server may be optional, and may need to be configured on the server
side by the adminstrator.  There may be some authentication of the
client required before the server will be willing to accept requests,
or not.

Now, integration between a database server and a web server is a wholly
different step.  In that configuration, the web server runs an application
which contains the database client code, so the web application can store
and retrieve information from the database, format it into pages, and
present those pages to the web client (browser).  But that's not a core
part of the database at all.  It's simply another application, albeit
a very common one.


Reply to: