Polyhedra is a family of
relational database management system
A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
s offered by
ENEA AB, a
Swedish
Swedish or ' may refer to:
Anything from or related to Sweden, a country in Northern Europe. Or, specifically:
* Swedish language, a North Germanic language spoken primarily in Sweden and Finland
** Swedish alphabet, the official alphabet used by ...
company. The original version of Polyhedra (now referred to as Polyhedra IMDB) was an
in-memory database management system which could be used in
high availability configurations; in 2006 Polyhedra Flash DBMS was introduced to allow
database
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
s to be stored in
flash memory
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. Both us ...
. All versions employ the
client–server model
The client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over ...
to ensure the data are protected from misbehaving application software, and they use the same
SQL,
ODBC
In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
and
type-4 JDBC interfaces. Polyhedra is targeted primarily for
embedded use by
Original Equipment Manufacturer
An original equipment manufacturer (OEM) is generally perceived as a company that produces non-aftermarket parts and equipment that may be marketed by another manufacturer. It is a common industry term recognized and used by many professional or ...
s (OEMs), and big-name customers include
Ericsson
(lit. "Telephone Stock Company of LM Ericsson"), commonly known as Ericsson, is a Swedish multinational networking and telecommunications company headquartered in Stockholm. The company sells infrastructure, software, and services in informat ...
,
ABB,
Emerson,
Lockheed Martin
The Lockheed Martin Corporation is an American aerospace, arms, defense, information security, and technology corporation with worldwide interests. It was formed by the merger of Lockheed Corporation with Martin Marietta in March 1995. It ...
,
United Utilities and
Siemens AG.
Company
Polyhedra development was started in 1991 by Perihelion Technology Ltd, a subsidiary of
Perihelion Software Ltd (PSL); initially, the project had a working title the "Perihelion Application Toolkit", but was soon renamed Polyhedra (using a left-over trademark from another PSL project). There was a management buyout of PTL in 1994, and the company name changed to Polyhedra plc to match the name of the product. Polyhedra plc was in turn acquired by Enea AB in 2001. All development and support is still done in the
English
English usually refers to:
* English language
* English people
English may also refer to:
Peoples, culture, and language
* ''English'', an adjective for something of, from, or related to England
** English national ide ...
town of
Shepton Mallet
Shepton Mallet is a market town and civil parish in the Mendip District of Somerset, England, some south-west of Bath, south of Bristol and east of Wells. It had an estimated population of 10,810 in 2019. Mendip District Council is based t ...
, where PSL was based.
Features
Tim King, the founder of
Perihelion Software Ltd, developed a relational DBMS for historical data as part of his PhD work; Dave Stoneham, who set up PTL, had previously developed a
SCADA
Supervisory control and data acquisition (SCADA) is a control system architecture comprising computers, networked data communications and graphical user interfaces for high-level supervision of machines and processes. It also covers sensors and ...
system. Building on these experiences, Polyhedra was originally developed "to bring the benefits of relational technology to the embedded market". To this end, it had to be small footprint, very fast... and it had to avoid the need for
polling, which is a performance killer. Consequently, it was designed from the start to:
* keep the working copy of the data in-memory (though there is now a variant that keeps the data in a
flash
Flash, flashes, or FLASH may refer to:
Arts, entertainment, and media
Fictional aliases
* Flash (DC Comics character), several DC Comics superheroes with super speed:
** Flash (Barry Allen)
** Flash (Jay Garrick)
** Wally West, the first Kid ...
-based file);
* use a client–server architecture to protect the data from corruption by rogue application code;
* have an 'active query' mechanism to update client applications when relevant database changes occur;
* have a very simple processing model where a
transaction
Transaction or transactional may refer to:
Commerce
* Financial transaction, an agreement, communication, or movement carried out between a buyer and a seller to exchange an asset for payment
*Debits and credits in a Double-entry bookkeeping sys ...
is either a schema change, a query, or a request for a set of inserts, updates and/or deletes - such alterations can either be expressed via SQL statements or by updating through the active queries with (in conjunction with active queries) an
optimistic concurrency mechanism to handle clashing updates;
* have a table
inheritance
Inheritance is the practice of receiving private property, Title (property), titles, debts, entitlements, Privilege (law), privileges, rights, and Law of obligations, obligations upon the death of an individual. The rules of inheritance differ ...
mechanism which, when combined with
Database triggers (via the CL language, see below), allows the database designer to program the database in an object-oriented fashion. Table inheritance also avoids or reduces the need for supplementary tables whose primary key is a foreign key to another table, and thus can simplify many queries and updates.
* have a
Historian
A historian is a person who studies and writes about the past and is regarded as an authority on it. Historians are concerned with the continuous, methodical narrative and research of past events as relating to the human race; as well as the stu ...
module to allow large volumes of times-series data to be captured, stored, archived and queried in an efficient fashion.
Polyhedra IMDB achieves data persistence through the use of
snapshots
Snapshot, snapshots or snap shot may refer to:
* Snapshot (photography), a photograph taken without preparation
Computing
* Snapshot (computer storage), the state of a system at a particular point in time
* Snapshot (file format) or SNP, a file ...
and
journal logging; Polyhedra Flash DBMS uses
shadow paging, with 2 levels of recursion. In addition, Polyhedra can be used in
hot-standby configurations for improved
availability. The transactional model used by all Polyhedra products ensures atomicity, consistency and isolation (as defined by the
ACID
In computer science, ACID ( atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequ ...
properties); durability is enforced in Polyhedra Flash DBMS, while in Polyhedra IMDB clients can choose the durability model when they issue their transactions.
"The Polyhedra DBMS system is fundamentally different compared to other relational systems, because of its active behaviour. This is achieved through two mechanisms, active queries and by the control language (CL). An active query looks quite like a normal query where some data is retrieved and/or written, but instead the query stays in the database until explicitly aborted. When a change in the data occurs that would alter the result of the query, the application is notified. The CL, which is a fully object-oriented script language that supports encapsulation, information hiding and inheritance, can determine the behaviour of data in the database. This means that methods, private or public, can be associated with data performing operations on them without involving the application."
Polyhedra is not a general-purpose DBMS, as the restricted transactional model does not meet all needs, and its fault-tolerance model is based on the hot-standby approach (to minimise hardware costs) rather than
clustering (which is better for load-sharing). However, its limitations are benefits in embedded use, where the emphasis in a deployed application is on performance and cost rather than handling continually varying usage patterns.
Most of the Polyhedra products are made available for purchase under a