C-tree
Encyclopedia
c-treeACE is a cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 database engine
Database engine
A database engine is the underlying software component that a database management system uses to create, read, update and delete data from a database....

 developed by FairCom Corporation. Software developer
Software developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...

s typically embed the c-treeACE engine within the applications that they create and then deploy the application and engine together as an integrated solution.

At its core, c-treeACE is a record-oriented file handling system offering high speed indexing mechanisms over those files. Developers can use these direct access methods to design the data and index structures that closely parallel the needs of their application. This paradigm is sometimes referred to as an application-specific database or an embedded database
Embedded Database
An embedded database system is a database management system which is tightly integrated with an application software that requires access to stored data, such that the database system is “hidden” from the application’s end-user and requires little or no ongoing maintenance...

 because of the tightly coupled nature of the application and database.

The nature of c-treeACE allows it to be used in a range of products including: embedded systems that require limited disk and memory footprint and silent operation; shrink-wrap products developed by ISVs
Independent software vendor
Independent software vendor is a business term for companies specializing in making or selling software, designed for mass marketing or for niche markets...

 that require cross-platform support, minimal maintenance, and mass deployment; and enterprise systems that depend on performance and more precision control of database operations than a traditional enterprise database offers.

Two versions of the product are available. c-treeACE Express is freely available for development from FairCom's web site and supports only the client/server architecture. The client-side libraries are precompiled, making it easy to use for evaluation. c-treeACE Professional is licensed separately and supports all architectures and includes full source code for the client libraries and much of the source code for the server.

Features

c-treeACE offers support for the following features:
  • ACID
    ACID
    In computer science, ACID is a set of properties that guarantee database transactions are processed reliably. In the context of databases, a single logical operation on the data is called a transaction...

    -compliant transactions
  • Disk-based and memory files controlled at the file level
  • Configurable data and index cache
    Cache
    In computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...

     sizes
  • Automatic disaster recovery
  • Encryption
    Encryption
    In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key. The result of the process is encrypted information...

  • Partitioned files
  • Realtime/Hot backups
  • Replication API
    Replication (computer science)
    Replication is the process of sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. It could be data replication if the same data is stored on multiple storage devices, or...

  • Stored procedure
    Stored procedure
    A stored procedure is a subroutine available to applications that access a relational database system. A stored procedure is actually stored in the database data dictionary.Typical uses for stored procedures include data validation or access control mechanisms...

    s, triggers
    Database trigger
    A database trigger is procedural code that is automatically executed in response to certain events on a particular table or view in a database. The trigger is mostly used for keeping the integrity of the information on the database...

    , and user defined functions
  • Concurrent SQL and record-oriented ISAM access
  • Graphical administrative tools and utilities

APIs

c-treeACE has a layered system architecture with different application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

s (APIs) available to the developer at each layer. The lower layers have proprietary APIs that allow more direct control of data and index manipulation at the expense of added complexity whereas higher layers offer more industry standard APIs but may offer less precise control. Software developers can chose to use one API for the application or use multiple APIs concurrently.

Underpinning c-treeACE is an Indexed Sequential Access Method (ISAM
ISAM
ISAM stands for Indexed Sequential Access Method, a method for indexing data for fast retrieval. ISAM was originally developed by IBM for mainframe computers...

) engine. Developers can use a native C API to access the engine directly. Because the ISAM API can be used to create applications with non-relational data structures, c-treeACE can be included as part of the NoSQL
Nosql
In computing, NoSQL is a broad class of database management systems that differ from the classic model of the relational database management system in some significant ways. These data stores may not require fixed table schemas, usually avoid join operations, and typically scale horizontally...

 class of databases. Here, because the software can also be used to create databases that are in fact SQL/relational (particularly with the SQL layer discussed below), NoSQL would refer to a database offering "Not Only SQL" rather than one that excludes SQL.

The next layer up is what FairCom terms the 'c-treeDB' layer. Interfaces at this layer include C and C++ APIs, VCL
Visual Component Library
VCL is a visual component-based object-oriented framework for developing Microsoft Windows applications. It was developed by Borland for use in, and tightly integrated with, its Delphi and C++Builder RAD tools...

 components for use with Delphi and C++Builder, and .NET components. In this layer, the data begins to take on a more

Finally there is an optional SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....

 layer that allows SQL-92
SQL-92
SQL-92 was the third revision of the SQL database query language. Unlike SQL-89, it was a major revision of the standard. For all but a few minor incompatibilities, the SQL-89 standard is forwards-compatible with SQL-92....

 compliant access to the database engine. At this layer, there are multiple API choices including an ADO.NET data provider
ADO.NET data provider
An ADO.NET data provider is a software component enabling an ADO.NET consumer to interact with a data source. ADO.NET data providers are analogous to ODBC drivers, JDBC drivers, and OLE DB providers....

, Type 4 JDBC driver
JDBC driver
A JDBC driver is a software component enabling a Java application to interact with a database. JDBC drivers are analogous to ODBC drivers, ADO.NET data providers, and OLE DB providers....

, ODBC driver, PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

 interface, DbExpress
DbExpress
dbExpress is Embarcadero's data driver architecture that replaced the older Borland Database Engine. First released with Borland Delphi 6 and C++Builder 6, it has gone through several iterations itself, the latest being shipped with Embarcadero Delphi XE2...

 driver for Delphi and C++ Builder. Stored procedure
Stored procedure
A stored procedure is a subroutine available to applications that access a relational database system. A stored procedure is actually stored in the database data dictionary.Typical uses for stored procedures include data validation or access control mechanisms...

s -- written in Java
Java
Java is an island of Indonesia. With a population of 135 million , it is the world's most populous island, and one of the most densely populated regions in the world. It is home to 60% of Indonesia's population. The Indonesian capital city, Jakarta, is in west Java...

 for cross-platform portability -- are included at the SQL layer.

Architecture Choices

c-treeACE includes several different architectures or operational models for developers to choose from.

Client/Server

The client/server model available with c-treeACE uses a typical client/server database architecture. The client-side libraries are compiled into the application and then communicate with the server component (identified as the c-treeACE Server in FairCom parlance). The c-treeACE Express package that FairCom makes freely available for development via its web site supports only this model. FairCom offers licenses to the server component for both ISAM servers (supporting the ISAM and c-treeDB APIs) and SQL servers (supporting all APIs, including SQL).

Embedded Server

This model is the same as the client/server model above, but the entire server engine can be dynamically linked directly with the application. When practical, this approach can be beneficial by avoiding interprocess communication between the client and server. The communication instead takes place across the stack
Stack (data structure)
In computer science, a stack is a last in, first out abstract data type and linear data structure. A stack can have any abstract data type as an element, but is characterized by only three fundamental operations: push, pop and stack top. The push operation adds a new item to the top of the stack,...

.

Standalone

In the standalone models, there is no separate server process to which applications communicate. Instead, a standalone library is built using c-treeACE and linked to the application. Data management operations are performed via one of the record-oriented APIs which then use the native runtime library routines.

Both single user and multiuser libraries can be built with c-treeACE. The multiuser support is a shared-file mode implementation where the operating system provides the locking rather than the server process. Resource contention can become an issue with the standalone multiuser model as concurrency requirements and network operations increase.

The features available with these models are significantly limited as compared to the client/server model. Neither the single user nor multiuser standalone models support SQL APIs, stored procedures, triggers, user defined functions, replication, realtime backup, automatic recovery, encryption, memory files, or partitioned files. Although there is support for transaction processing and data/index caching with the single user libraries, there is no support with the multiuser libraries.

Hybrid

A hybrid model exists that FairCom calls LOCLIB which allows a client to perform both local data storage via a standalone library as well as client/server access.

Platforms

c-treeACE natively supports the following operating systems:
  • Windows
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

  • Linux
    Linux
    Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

  • Solaris
  • AIX
  • HP-UX
    HP-UX
    HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...

  • Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

  • QNX
    QNX
    QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. The product was originally developed by Canadian company, QNX Software Systems, which was later acquired by Canadian BlackBerry-producer Research In Motion.-Description:As a microkernel-based...

  • FreeBSD
    FreeBSD
    FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

  • NetBSD
    NetBSD
    NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

  • Netware
    Novell NetWare
    NetWare is a network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, with network protocols based on the archetypal Xerox Network Systems stack....

  • SCO OpenServer
    SCO OpenServer
    SCO OpenServer, previously SCO UNIX and SCO Open Desktop , is, misleadingly, a closed source version of the Unix computer operating system developed by Santa Cruz Operation and now maintained by the SCO Group....


History

The product was originally developed by Dr. William Fairman and released as the 'c-tree File Handler' in 1984. The name originated from the fact that c-tree was an implementation of a B+ tree
B+ tree
In computer science, a B+ tree or B plus tree is a type of tree which represents sorted data in a way that allows for efficient insertion, retrieval and removal of records, each of which is identified by a key. It is a dynamic, multilevel index, with maximum and minimum bounds on the number of...

 written for the then burgeoning microcomputer
Microcomputer
A microcomputer is a computer with a microprocessor as its central processing unit. They are physically small compared to mainframe and minicomputers...

 market in the C programming language
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

.

The original client/server architecture was introduced in 1987. At that time, the client/server version supported only the ISAM API. The c-tree DB and SQL APIs were introduced later, in 2003.

The product underwent a name change in 1990 with the release of 'c-tree Plus' version 6 and then again in 2008 with the release of 'c-treeACE' (Advanced Core Engine) version 9. Along with the name change in 2008 came the release of 'c-treeACE Express'.

Applications

  • Dentrix
    Dentrix
    Dentrix Dental Systems, a division of Henry Schein, sells and supports DENTRIX and Easy Dental . Dentrix was the first practice management software for Windows in 1989. Dentrix Dental Systems was founded in 1985 by Larry Gibson and was incorporated in 1989...

  • MYOB Accounting Software
    MYOB (software)
    MYOB, Mind Your Own Business, is the name of an Australian multinational corporation. The company provides accounting, payroll and retail software and web hosting to small and medium businesses, and is particularly well known in Australia and New Zealand....

  • Extensis Portfolio

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK