Virtuoso Object-Relational Database

At the core of Virtuoso is a powerful object relational database with SQL-92 and 200n features and a flexible stored procedure language.

SQL 2K style objects user defined data types (UDTs), user defined fuctions (UDFs) and hosted Java or .NET classes are first class citizens of the SQL world and can be stored as column values or processed as stand-alone data in stored procedures.

Java or .NET logic is imported into the server by declaring a set of SQL classes (UDTs) to have an external implementation. More conveniently, a .jar or .Net assembly can be imported as a unit. This causes the whole class-hierarchy of the imported unit to be mapped into a corresponding hierarchy of SQL UDTs. All data members become members of the SQL UDTs and all methods become methods of the UDT.

Virtuoso's database engine offers dynamic locking, scaling from rows to pages, good multiprocessor scalability, XML, binary and text large objects, a native XML data type, full text indexing, on-line incremental backups and all features you have come to expect in a full feature RDBMS.

Virtuoso offers standard role based security plus a policy model for row-level security. The latter can be used for intelligently restricting SQL statements to specific data without needing to manage hard-coded views.

Virtuoso offers its database services to ODBC, OLE/DB, JDBC and ADO .NET provider clients and can be a resource manager and/or transaction coordinator under Microsoft's Distributed Transaction Coordinator (MS DTC) or XA.

Dynamic Web Pages (VSPX, PHP, NET, JSP, Perl, Python) and Web Services hosted within Virtuoso have in-process access to Virtuoso's SQL data (native or external via ODBC/JDBC), eliminating web server to DBMS communication latency.

Whitepapers

Visit our online Database Tutorials & Feature Summary