The figure shows the architecture of a standalone SQL Anywhere installation, running a single database engine and working with a single database. All more complicated arrangements are elaborations of this basic setup, so you should understand how the basic setup works, even if you are operating a multiuser client/server installation.
The components of the basic standalone SQL Anywhere setup are:
Database users do not directly manipulate database files. Instead, their client application communicates with the database engine, using a programming interface supported by SQL Anywhere, and the database engine handles all manipulation of the actual database.
For information on a client application and a database server for different operating systems
running on the same computer, see the section "Running mixed operating systems on a single computer".
A client application communicating with the SQL Anywhere database engine must do so using a programming interface supported by SQL Anywhere. The client application calls functions from one of the SQL Anywhere programming interfaces.
The client application together with the programming interface layer form the client side of the setup.
If you are building a client application from an ODBC-enabled application development system, such as Powersoft PowerBuilder, or others, you do not need the information in the section "Programming Interfaces". These application development systems already implement an ODBC interface internally. Application development systems form an extra layer that sits between the application developer and the SQL Anywhere interface, and you should consult your application development system's documentation to understand how to communicate with a database engine.
PowerBuilder and InfoMaker use the ODBC interface.
If you are using one of the programming interfaces directly to develop client applications, you should understand the SQL Anywhere programming interface you are using. The programming interfaces are described fully in the section "Programming Interfaces".
The database engine and the database together form the server side of the setup. A client application manipulates a database by sending requests to the database engine.
Communications between a client application and a database engine take the form of Structured Query Language (SQL) statements. For example, a SELECT statement, or query, is used to extract information from a database. An UPDATE statement may be used to modify the contents of one of the database tables.
The client application sends the SQL statements and the database engine processes them and sends the results back to the client application.
Running an application against a SQL Anywhere network server generally requires an extra component to handle network communications from the client computer (see "Running SQL Anywhere on a network"). However, for applications on the same computer the database server can be run in exactly the same manner as the standalone database engine described here using a direct connection to the network server.
If a SQL Anywhere Client is running and the network server is running on the same machine, the Client will not be used by client applications connecting on the same machine; the connection will be direct.
For a discussion of running a client application and a database server for different operating systems on a single computer, see "Running mixed operating systems on a single computer".
SQL Anywhere is a relational database system. The database itself is stored on one or more disk drives, and consists of the following objects:
Database objects | Description |
---|---|
Tables | Hold the information in the database |
Keys | Relate the information in one table to that in another |
Indexes | Allow quick access to information in the database |
Views | Are computed tables |
Stored procedures | Hold queries and commands that may be executed by any client application (stored procedures are not available in the SQL Anywhere Desktop Runtime system) |
Triggers | Assist in maintaining the integrity of the information in the database (triggers are not available in the SQL Anywhere Desktop Runtime system) |
System tables | Hold the information about the structure of the database |
A single SQL Anywhere database engine can manage access to several databases simultaneously. You can start and stop databases from database administration tools or client applications, and you may connect to any of the currently running databases on a database engine.
As far as the database user is concerned, interaction with a database engine is always through a connection. Each time users connect to a database, supplying valid user ID and password, they are connected to a specific database on a specific database engine. Once a connection is established, it provides a channel through which all communications go. The connection insulates the user from the other components of a running database system such as network sessions and interprocess communication mechanisms.
SQL Anywhere supports multifile databases. When a SQL Anywhere database is first initialized, it is composed of one file---the root file. As tables and other database objects are added to the database, however, they may be stored in different files, which may be on different disk drives from the root file.
Users of the database (other than the database administrator) need not be aware of the physical location of database files. The database engine handles all access to the files and shields this complexity from the user.