TPC-E测试程序的设计与实现
2 体系结构
TPC-E模拟了真实世界中一个证券公司和那些贸易、会计查询和市场研究方面的客户之间的交易。这个公司会和金融市场产生联动,并基于客户的利益执行指令及更新那些账户信息。在TPC-E标准中,客户的数量可以代表不同规模的商业事务,把十种商业事务混合在一起执行。
2.1 数据库设计
TPC-E基准中主要定义了表1中的列举的33个表,具体测试的时候,根据不同的数据库管理系统和数据规模,可能需要建立一些辅助表和索引:
| 表名 | 中文表名 | 前缀 | |
| 客户类 | ACCOUNT_PERMISSION | 客户账目许可表 | AP_ |
| CUSTOMER | 客户信息表 | C_ | |
| CUSTOMER_ACCOUNT | 客户账目表 | CA_ | |
| CUSTOMER_TAXRATE | 客户税率表 | CX_ | |
| HOLDING | 客户股票持有表 | H_ | |
| HOLDING_HISTORY | 客户股票持有历史表 | HH_ | |
| HOLDING_SUMMARY | 客户股票持有总表 | HS_ | |
| WATCH_ITEM | 客户观察证券列表 | WI_ | |
| WATCH_LIST | 客户观察证券表 | WL_ | |
| 经纪人类 | BROKER | 经纪人表 | B_ |
| CASH_TRANSACTION | 现金交易表 | CT_ | |
| CHARGE | 交易费用表 | CH_ | |
| COMMISSION_RATE | 佣金率表 | CR_ | |
| SETTLEMENT | 结算表 | SE_ | |
| TRADE | 交易表 | T_ | |
| TRADE_HISTORY | 交易历史表 | TH_ | |
| TRADE_REQUEST | 交易请求表 | TR_ | |
| TRADE_TYPE | 交易类型表 | TT_ | |
| 交易所类 | COMPANY | 公司表 | CO_ |
| COMPANY_COMPETITOR | 公司竞争者表 | CP_ | |
| DAILY_MARKET | 日常市场统计表 | DM_ | |
| EXCHANGE | 交易所表 | EX_ | |
| FINANCIAL | 财政表 | FI_ | |
| INDUSTRY | 行业表 | IN_ | |
| LAST_TRADE | 最后交易表 | LT_ | |
| NEWS_ITEM | 新闻项表 | NI_ | |
| NEWS_XREF | 公司新闻参照表 | NX_ | |
| SECTOR | 公司领域表 | SC_ | |
| SECURITY | 证券表 | S_ | |
| 因素类 | ADDRESS | 地址表 | AD_ |
| STATUS_TYPE | 交易状态表 | ST_ | |
| TAXRATE | 税率表 | TX_ | |
| ZIP_CODE | 邮政编码表 | ZC_ |
表1 TPC-E基准中的表
TPC-E标准中定义的事务有12种,每个事务对应数据库管理系统中的一个或多个带输入和输出参数的存储过程,单个存储过程叫做一个事务帧。事务的种类有如下几种:
(1) Broker-Volume:经纪人交易统计事务,包含1个事务帧;
(2) Customer-Position:客户价值统计事务,包含3个事务帧;
(3) Market-Watch:市场观察事务,包含1个事务帧;
(4) Security-Detail:证券信息事务,包含1个事务帧;
(5) Trade-Lookup:交易查询事务,包含4个事务帧;
(6) Trade-Order:交易执行事务,包含6个事务帧;
(7) Trade-Status:交易状态事务,包含1个事务帧;
(8)Trade-Update:交易修正事务,包含3个事务帧;
(9) Market-Feed:市场跟踪事务,包含1个事务帧,该事务由TradeOrder事务引起;
(10)Trade-Result:交易结果更新事务,包含6个事务帧,该事务由TradeOrder事务引起;
(11)Data-Maintenance:数据维护事务,包含1个事务帧,每60秒执行一次;
(12)Trade-Cleanup:交易清理事务,包含1个事务帧,测试开始时执行一次,不强制使用。
前8种事务由证券公司执行,第9-10号事务由交易所执行,最后两种事务属于数据库维护事务,与客户操作无关。