Assets (table: asset) are things that are quoted in the market and traded. An example of an asset would be the equity APPL, or the currency USD.
Rates (table: rate) are a class of prices or rates that are quoted against an asset. For example, a 2 month GBP/USD spot rate is a rate that is quoted on the exchange of GBP assets for USD assets (which itself could be thought of as a single FX asset) for settlement in 2 business days.
A Rate Value (table: rate_value) is a particular instance of a rate - often an observation of the price of an asset at a particular time. For example; the GBP/USD rate on 2009-11-11 at 15:15 GMT was 1.6654. You might want to store perturbed rate values for use in scenario analysis.
Rate Groups (table: rate_group) are a universe of rate values for different rates that you want to group together, typically so you can use them for pricing. For example; you may have a rate group labelled "2009-11-11 CLOSING", that contains the rate values you want to use as the official close-of-business rates.
A Rate Series (table: rate_series) is a collection of rate values for the same rate.
Term Structures (table: termstruct) are yield curves, forward curves, or volatility surfaces that you build in order to facilitate pricing. You define a term structure in the DOPE by listing the rates that you would use for building that term structure. For example - A USD yield curve may be constructed from USD bill rates out to 6 months, then Bill Futures out to a year, and then swap rates going past that.
I've checked in a check_foreign_keys.py script that goes through the Turbine XML scripts and checks that the foreign keys have been defined correctly. This comes out of some feedback by Mark de Brauw who discovered errors in the SQL Schema by loading everything into MySQL Workbench - thanks Mark!
DOPE stands for "Database Objects for Pricing Everything", and the aim of this project is to define an open database schema that can be used as the basis of building a financial/econometric system. We also aim to provide a complete set of support data that can be used to populate your financial database.
Whenever you build a financial system - whether it be a trading system, a risk management engine or pricing framework - you deal with a lot of basic data. Things like countries, currencies and currency pairs (for FX systems). You might need a list of financial exchanges for each country. For each financial exchange, you might need a list of financial instruments traded on that exchange. Other bits and pieces are important - such as holiday calendars, and the default quote convention for currency pairs. The purpose of The DOPE is to define an open database schema to represent all these bits of data. We also want to populate the database with everything you need to get started in building your financial system. For example, the country table is populated with the 3 letter ISO country code, the country name, the geographic sub-region, and the currency ISO code for that country.
All the schemas and source code within the DOPE project are distributed under an Apache License, which is a very liberal open source license that allows you to modify the source code and also use it within proprietary systems.