[sqlite] How do non-SQLite DBMS communicate?

2015-04-24 Thread Drago, William @ CSG - NARDA-MITEQ
James, Howard, and Simon,

Thank you for your replies. They were very helpful and gave me the information 
I needed.

--
Bill Drago
Senior Engineer
L3 Narda-MITEQ
435 Moreland Road
Hauppauge, NY 11788
631-272-5947 / William.Drago at L-3COM.com


> -Original Message-
> From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-
> users-bounces at mailinglists.sqlite.org] On Behalf Of James K. Lowden
> Sent: Thursday, April 23, 2015 1:57 AM
> To: sqlite-users at mailinglists.sqlite.org
> Subject: Re: [sqlite] How do non-SQLite DBMS communicate?
>
> On Wed, 22 Apr 2015 22:28:57 +
> "Drago, William @ CSG - NARDA-MITEQ"  wrote:
>
> > When using SQLite the application program accesses the SQLite DBMS
> via
> > its .dll file.
>
> The DLL is a function-call library.  A function is a named bit of code.
> To "call a function" is to jump to that named bit of code.  The SQLite
> functions are part of your application.  That means they execute in
> your process's virtual address space.
>
> > When using something like Oracle Express (a local DBMS) the
> > application program is communicating with Oracle Express via some
> sort
> > of network protocol even though there's no network involved.
> > What is that called?
>
> See "loopback" in wikipedia.  Oracle is a separate process from yours;
> you application communicates with it via TCP/IP.  If the Oracle process
> resides on a machine other than the one your process is running on, it
> connects to that machine with TCP/IP (probably using a hostname and a
> port number).  If the Oracle process is running on the same machine as
> yours, your process connects to it, still using TCP/IP, but via the
> loopback network, usually by the name "localhost".
>
> From the point of view of Oracle and your process, there *is* a
> "network involved" either way.  In the case of the loopback address,
> the network is emulated by the operating system.  Many parts are
> missing (wires, for one, at least ones you can see) but the ends look
> the same to both players.
>
> --jkl
> ___
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
CONFIDENTIALITY, EXPORT CONTROL AND DISCLAIMER NOTE:This e-mail and any 
attachments are solely for the use of the addressee and may contain information 
that is privileged or confidential. Any disclosure, use or distribution of the 
information contained herein is prohibited. In the event this e-mail contains 
technical data within the definition of the International Traffic in Arms 
Regulations or Export Administration Regulations, it is subject to the export 
control laws of the U.S.Government. The recipient should check this e-mail and 
any attachments for the presence of viruses as L-3 does not accept any 
liability associated with the transmission of this e-mail. If you have received 
this communication in error, please notify the sender by reply e-mail and 
immediately delete this message and any attachments.


[sqlite] How do non-SQLite DBMS communicate?

2015-04-23 Thread James K. Lowden
On Wed, 22 Apr 2015 22:28:57 +
"Drago, William @ CSG - NARDA-MITEQ"  wrote:

> When using SQLite the application program accesses the SQLite DBMS
> via its .dll file. 

The DLL is a function-call library.  A function is a named bit of
code.  To "call a function" is to jump to that named bit of code.  The
SQLite functions are part of your application.  That means they execute
in your process's virtual address space.  

> When using something like Oracle Express (a local DBMS) the
> application program is communicating with Oracle Express via some
> sort of network protocol even though there's no network involved.
> What is that called?

See "loopback" in wikipedia.  Oracle is a separate process from yours;
you application communicates with it via TCP/IP.  If the Oracle process
resides on a machine other than the one your process is running on, it
connects to that machine with TCP/IP (probably using a hostname and a
port number).  If the Oracle process is running on the same machine as
yours, your process connects to it, still using TCP/IP, but via the
loopback network, usually by the name "localhost".  

>From the point of view of Oracle and your process, there *is* a "network
involved" either way.  In the case of the loopback address, the network
is emulated by the operating system.  Many parts are missing (wires,
for one, at least ones you can see) but the ends look the same to both
players.  

--jkl


[sqlite] How do non-SQLite DBMS communicate?

2015-04-23 Thread Howard Chu
Drago, William @ CSG - NARDA-MITEQ wrote:
> All,
>
> I'm not sure how to ask this question.
>
> When using SQLite the application program accesses the SQLite DBMS
> via
its .dll file. When using something like Oracle Express (a local DBMS)
the application program is communicating with Oracle Express via some
sort of network protocol even though there's no network involved. What
is that called?
>
> My reason for asking is, I'm writing a short white paper describing
> my
use of SQLite (to encourage other engineers where I work to use it too)
and I'm trying to explain the differences between SQLite and other local
database systems. So, SQLite databases are accessed via .dll where as
other local databases run a server that is accessed via ???

The generic term is interprocess communication, IPC. You should be able 
to search on those keywords to find out anything else you want to know.

SQLite is in the class known as "embedded databases" because its code is 
embedded in the application code, instead of running in a separate 
process. There are many other DBs of this class but most of them are 
lower level (key value stores) instead of offering the SQL data model. 
Berkeley DB is another well-known example of this type, as is LMDB.

Many embedded DBs not only run within a single process, but also can 
only support read-write access to a database's files from a single 
process (i.e., no support for multi-process concurrency). Berkeley DB 
and LMDB are somewhat rare since they support transactional 
multi-process concurrency.
>
> Can anyone help me fill in those question marks?
> Thanks,
>
> --
> Bill Drago
> Senior Engineer
> L3 Narda-MITEQ
> 435 Moreland Road
> Hauppauge, NY 11788
> 631-272-5947 / William.Drago at L-3COM.com

-- 
   -- Howard Chu
   CTO, Symas Corp.   http://www.symas.com
   Director, Highland Sun http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/


[sqlite] How do non-SQLite DBMS communicate?

2015-04-23 Thread Simon Slavin

On 22 Apr 2015, at 11:28pm, Drago, William @ CSG - NARDA-MITEQ  wrote:

> So, SQLite databases are accessed via .dll where as other local databases run 
> a server that is accessed via ???

Most database systems have client/server architecture.  There is somewhere a 
server.  The only program which actually opens the database files is the 
server.  Sometimes it runs on the same computer as the client and they 
communicate via a socket.  Other times it runs on another computer and they 
communicate across a network.

SQLite has no server.  You could call it a server-less multi-user DBMS.  Each 
program opens the database file itself.

If you are going to write about the differences between these two you should 
definitely see this page:



Ignore the .dll files, by the way.  DLL files are included for those 
programmers using compilers or development environments which can't compile C 
as well as their own code.  The 'proper' way to have your C program, or 
anything else compatible, use SQLite is to include one '.h' and one '.c' file 
into your project.  One would normally use the 'Amalgamation' download from



Simon.


[sqlite] How do non-SQLite DBMS communicate?

2015-04-22 Thread Drago, William @ CSG - NARDA-MITEQ
All,

I'm not sure how to ask this question.

When using SQLite the application program accesses the SQLite DBMS via its .dll 
file. When using something like Oracle Express (a local DBMS) the application 
program is communicating with Oracle Express via some sort of network protocol 
even though there's no network involved. What is that called?

My reason for asking is, I'm writing a short white paper describing my use of 
SQLite (to encourage other engineers where I work to use it too) and I'm trying 
to explain the differences between SQLite and other local database systems. So, 
SQLite databases are accessed via .dll where as other local databases run a 
server that is accessed via ???

Can anyone help me fill in those question marks?
Thanks,

--
Bill Drago
Senior Engineer
L3 Narda-MITEQ
435 Moreland Road
Hauppauge, NY 11788
631-272-5947 / William.Drago at L-3COM.com


CONFIDENTIALITY, EXPORT CONTROL AND DISCLAIMER NOTE:This e-mail and any 
attachments are solely for the use of the addressee and may contain information 
that is privileged or confidential. Any disclosure, use or distribution of the 
information contained herein is prohibited. In the event this e-mail contains 
technical data within the definition of the International Traffic in Arms 
Regulations or Export Administration Regulations, it is subject to the export 
control laws of the U.S.Government. The recipient should check this e-mail and 
any attachments for the presence of viruses as L-3 does not accept any 
liability associated with the transmission of this e-mail. If you have received 
this communication in error, please notify the sender by reply e-mail and 
immediately delete this message and any attachments.