ArticleslgStudy

computer science

Virtuoso Universal Server

Virtuoso Universal Server is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Virtuoso Universal Server rather than just read about it. In short: Virtuoso Universal Server is a middleware and database engine hybrid that combines the functionality of a traditional relational database management system (RDBMS), object–relational database (ORDBMS), virtual database, RDF, XML, free-text, web application server and file server functionality in a single system. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "un…

Virtuoso Universal Server — main illustration
Virtuoso Universal Server — illustration

Key takeaways

  • Virtuoso Universal Server belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Virtuoso Universal Server to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Virtuoso Universal Server from memory before moving on to harder problems.

Reference excerpt

Virtuoso Universal Server is a middleware and database engine hybrid that combines the functionality of a traditional relational database management system (RDBMS), object–relational database (ORDBMS), virtual database, RDF, XML, free-text, web application server and file server functionality in a single system. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "universal server"; it enables a single multithreaded server process that implements multiple protocols. The free and open source edition of Virtuoso Universal Server is also known as OpenLink Virtuoso. The software has been developed by OpenLink Software with Kingsley Uyi Idehen and Orri Erling as the chief software architects.

Database structure

Core database engine Virtuoso provides an extended object–relational model, which combines the flexibility of relational access with inheritance, run time data typing, late binding, and identity-based access. Virtuoso Universal Server database includes physical file and in memory storage and operating system processes that interact with the storage. There is one main process, which has listeners on a specified port for HTTP, SOAP, and other protocols.

Architecture Virtuoso is designed to take advantage of operating system threading support and multiple CPUs. It consists of a single process with an adjustable pool of threads shared between clients. Multiple threads may work on a single index tree with minimal interference with each other. One cache of database pages is shared among all threads and old dirty pages are written back to disk as a background process. The database has at all times a clean checkpoint state and a delta of committed or uncommitted changes to this checkpointed state. This makes it possible to do a clean backup of the checkpoint state while transactions proceed on the commit state. A transaction log file records all transactions since the last checkpoint. Transaction log files may be preserved and archived for an indefinite time, providing a full, recoverable history of the database. A single set of files is used for storing all tables. A separate set of files is used for all temporary data. The maximum size of a file set is 32 terabytes, for 4G × 8K pages.

Locking Virtuoso provides dynamic locking, starting with row level locks and escalating to page level locks when a cursor holds a large percentage of a page's rows or when it has a history of locking entire pages. Lock escalation only happens when no other transactions hold locks on the same page, hence it never deadlocks. Virtuoso SQL provides means for exclusive read and for setting transaction isolation.

Transactions All four levels of isolation are supported: Dirty read, read committed, repeatable read and serializable. The level of isolation may be specified operation by operation within a single transaction. Virtuoso can also act as a resource manager and/or transaction coordinator under Microsoft's Distributed Transaction Coordinator (MS DTC) or the XA standard.

Data integrity Virtuoso ORDBMS database supports entity integrity and referential integrity. Virtuoso ensures that relationships between records in related tables are valid by enforcing referential integrity. Integrity constraints include:

NOT NULL – Within the definition of a table, Virtuoso allows data to contain a NULL value. This NULL value is not really a value at all and is considered an absence of value. The constraint of NOT NULL forces a value to be given to a column. Unique key – Uniqueness for a column or set of columns means that the values in that column or set of columns must be different from all other columns or set of columns in that table. A unique key may contain NULL values since they are by definition a unique non-valued value. Primary key – Primary key are much like unique keys except that they are designed to uniquely identify a row in a table. They can consist of a single column or multiple columns. The primary key cannot contain a NULL value. CHECK Constraint – Virtuoso provides on a column an integrity constraint that requires certain conditions to be met before the data is inserted or modified. If the checks are not satisfied then the transaction cannot be completed.

Data dictionary Virtuoso stores all its information about all user objects in the database in the system catalog tables designated by db.dba*.

Components and files

Components Virtuoso is made up of client and server components. These components typically communicate with a local or remote Virtuoso server, which include:

Virtuoso Drivers for ODBC, JDBC, ADO.NET and OLE DB Conductor, a web-based database administration user interface ISQL (Interactive SQL) and ISQO Utilities Documentation and Tutorials Samples Installations come with two databases: a default and a demo database.

History The Virtuoso project was born in 1998 from a merger of the OpenLink data access middleware and Kubl RDBMS.

… excerpt ends here. Continue reading the full article.

Illustrations

Virtuoso Universal Server illustration

Worked examples

Example 1 — a first encounter with Virtuoso Universal Server

Start with the simplest possible case. Write down what Virtuoso Universal Server claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Virtuoso Universal Server before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Virtuoso Universal Server ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Virtuoso Universal Server

In research
Virtuoso Universal Server appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Virtuoso Universal Server in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Virtuoso Universal Server is common in secondary-school and first-year university syllabi. It links to neighbouring topics Atom (web standard), Big data products, Client-server database management systems, so understanding it makes those chapters shorter.
In everyday life
Look for Virtuoso Universal Server outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Virtuoso Universal Server” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Virtuoso Universal Server in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Virtuoso Universal Server means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Virtuoso Universal Server out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Virtuoso Universal Server in simple terms?

Virtuoso Universal Server is a middleware and database engine hybrid that combines the functionality of a traditional relational database management system (RDBMS), object–relational database (ORDBMS), virtual database, RDF, XML, free-text, web application server and file server functionality in a…

Why does Virtuoso Universal Server matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Virtuoso Universal Server?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Virtuoso Universal Server.

Tags

  • Atom (web standard)
  • Big data products
  • Client-server database management systems
  • Column-oriented DBMS software for Linux
  • Cross-platform free software
  • Cross-platform software
  • Database engines
  • Distributed computing architecture
  • Document-oriented databases
  • Enterprise application integration
  • FTP server software
  • Free database management systems

Keep exploring