The parts of a database system

A relational database management system (RDBMS) is a system for storing and retrieving data, in which the data is organized into interrelated tables.

Relational database management systems contain the following pieces:

a database

a database server

an application programming interface (API)

a client application

Database
A database is collection of tables that are related by primary and foreign keys. The tables hold the information in the
database. The tables and keys together define the structure of the database. A database management system accesses this information.

A SQL Anywhere database is a file, usually with an extension of .db. An UltraLite database is also a file, usually with an extension of .udb. SQL Anywhere includes a sample database, and it is installed in the SQL Anywhere samples directory: %SQLANYSAMP16%\demo.db.

Database server
The database server manages the database. All access to the database occurs through the database server.

The database server allows access to databases from client applications, and processes commands in a secure and efficient
manner. A database can have only one server managing it at a time. However, a SQL Anywhere database server can manage many
databases at one time.

There are two versions of the SQL Anywhere database server: the personal server and the network server. Both servers offer the same query processing and other internal operations; the only difference is in the number and types
of connections each server accepts. For more information about the differences between personal and network database servers,
see Differences between the network and personal servers.

UltraLite runtime library
In UltraLite, the database management systems that are typically found in a database server are implemented as an in-process
runtime library. The runtime library and the application are part of the same process.

Programming interface
Applications communicate with the database server using a programming interface such as ODBC, JDBC, OLE DB, ADO.NET,
or embedded SQL.

For a complete list of supported programming interfaces in SQL Anywhere and UltraLite, see Programming interfaces.

Each programming interface provides a library of function calls for communicating with the database. For ODBC and JDBC, the
library is commonly called a driver. The library is typically provided as a shared library on Unix operating systems or a dynamic link library (DLL) on Windows
operating systems.

Client application
Client applications use one of the programming interfaces to communicate with the database server.

If you develop an application using a rapid application development (RAD) tool such as Sybase PowerBuilder, you may find that
the tool provides its own methods for communicating with database servers, and hides the details of the language interface.
Nevertheless, all applications use one of the supported interfaces.