BFC's Database Library
speeds the development of commercial database applications,
small or large, by presenting a uniform, DBMS-independent interface that operates through both Microsoft's ODBC (Open Database Connectivity) and high-efficiency native direct connections.
It shields developers from much of the complexity of scaling up applications to efficiently and reliably handle large, multi-user databases - whether on a local corporate network or across the Internet. This single database interface can be used without change for both interactive and batch (distributed computing) applications.
If an application is not data-intensive, Base One's low-level
transaction processing support still can be very useful. For example, it
simplifies recovery of distributed applications and permits easy creation of
sync points for fast restart. Also it can be used to guarantee the state of
temporary data for communication between distributed tasks.
The Database Library frees programmers from concerns about the details of ODBC, low-level database APIs,
and the limitations of ADO or ADO.Net, while improving performance.
Furthermore, the simple interface makes it easy to build applications that are portable between widely varying database types
(Microsoft SQL Server and
Access, Oracle, IBM DB2, Sybase, SQL Anywhere, and MySQL). Thus it provides a useful, location-independent middleware layer between the application and the database.
Because of this design, an application can start out as a local client/server program, and later be run from anywhere in the world, efficiently
accessing a database via the Internet, without costly reimplementation.
To communicate across the Internet or a corporate intranet,
Base One's Internet Server (BIS), sitting next to the remote
database, automatically handles messages containing blocks of database and transaction processing requests and results,
with no need for additional programming.
The security features of the Database Library extend an organization's existing database
and network authentication and authorization mechanisms. This makes Base One's
database-centric architecture especially well suited to
building secure enterprise applications. Administrators can assign
security privileges and set security rules, and the Security
and Administration Components make it practical to
integrate application-specific behavior, such as filtering data
depending on who is looking at it. Base One makes it easy to build systems that
give managers a high degree of control over the privileges of each particular user:
what items can be selected, which buttons can be pushed, and whether a
screen or web page can be seen. This is in addition to the normal
database administrator authority to decide what record types
(tables) a user can modify or query.
The Database Library has its own Data
Dictionary, which provides a complete description of record
layouts and indexes of the database, for validation and ensuring efficient data access.
This facility also supports automated
database creation, including building of tables, indexes,
and referential constraints, and granting access rights to
individual users and groups.
handling facilities are built into the Database Library to trap and display
exceptions, perform required clean ups after errors, and make sure things are always left in an acceptable state.
These basic mechanisms not only help programmers during
development, but also are efficient and complete enough to be used in
production, for notification of hardware and operational errors. By using the same
failure and recovery paths in development
and in production, programmers
exercise the production error handling logic as a natural consequence of their development
work, resulting in more dependable applications.
Anyone familiar with standard ANSI 92 SQL will find
learning and using Base One's Database Library straightforward, and
even non-programmers can easily perform database operations
through the Base One Command
Other highlights of BFC's Database Library include:
Browses that never cause delay,
no matter how large the database. Users can page (scroll) forwards
and backwards and jump to the beginning or end of large record
collections rapidly. The Database Library's
component automatically forces index searches and prevents
inefficient sorts. Programmers specify queries in the simplest
way, and these are automatically adjusted to improve performance,
sometimes dramatically. Scroll Cache automatically adds (into the
SQL) performance hints from the Database Index Dictionary to
encourage usage of the appropriate index and quick freeing of
Processor capable of running complex text-based
scripts that include SQL
and DOS commands, plus special commands designed for loading and
unloading large databases, using the same basic
database syntax as the programming environments.
processing integrity, so that multi-step business transactions
either appear together or not at all. The Database Library makes
it easy to identify complete business transactions and properly block them
Protection from one user
destroying another user's work, because they are both trying to
change the same record. The Database Library uses
optimistic concurrency control to isolate a user's actions on a
database. This assures that one user cannot lock everyone else out by walking away
from the computer before clicking OK (to continue) on a dialog
The ability to add large
batches of new records and changes without having to shut down
Freedom to process urgent
transactions as needed, without being held up by long-running batch
jobs. The Database Library avoids holding
on to locks, anticipating database access
and modification by many concurrent users.
Objects allowing records to include (logically) multiple
compressed BLOBS (Binary Large Objects), such as images, text,
sounds, documents, spreadsheets, or anything else the business
requires (programmer-defined data types).
The ability to add new
information, get it back, and change it without spending
inordinate amounts of programming time rewriting basic
The ability to save information
about a database query including the current record / current page
being viewed, so that the same query can be reconstructed at any
point from the saved information. This facility of saving a state
for subsequent re-use is particularly
applicable to "stateless", server-side web programming.
The Database Library's error handling mechanism lets
programmers quickly find and correct errors, including failures
that happen in production (after testing is done). When a
programmer makes a mistake, such as misspelling the name of a
record field in a database query, an immediate notification is
issued clearly stating what the error is and where it occurred.