Глава 2 - Проектирование, масштабирование и наполнение базы данных   

Содержание:

2.1.Введение

2.2. Схема базы данных TPC-E и описание Таблиц

2.3. Правила реализации

2.4. Правила целостности

2.5. Требования прозрачности доступа к данным

2.6. Размер базы данных и размерность таблиц TPC-E



2.1 Введение

База данных TPC-E состоит из 33 отдельных таблиц. Схема базы данных организована как четыре группы таблиц.

Клиентские таблицы: Этот набор включает 9 таблиц, содержащих информацию о клиенте брокерской фирмы.

Брокерские таблицы: этот набор включает 9 таблиц, содержащих информацию о брокерской фирме брокерских данных.

Рыночные таблицы: этот набор включает 11 таблиц, содержащих информацию о компаниях, рынках, торгах и секторах производства.

Таблицы размерности: представляют собой набор из четырех таблиц размерности, содержащих общую информацию, как то адреса и почтовые коды.

Отношения между таблицами и требования, контролирующие их использование, описаны в остальных разделах Пункта 2.

2.1.1 Определения

2.1.1.1 Внешний ключ (FК) – это колонка или комбинация колонок, используемая для установления и применения связи между данными в двух таблицах. Связь создается между двумя таблицами путем добавления колонки или колонок, содержащих значения Основного ключа одной таблицы, к другой таблице. Эта колонка становится Внешним ключом во второй таблице.

2.1.1.2 Основной ключ – это колонка или комбинация колонок, уникально идентифицирующая ряд. Ни одна из колонок, являющихся частью Основного ключа, не может быть нулевой. Таблица должна содержать не более одного Основного ключа.

2.2 Схема базы данных TPC-E и описание Таблиц.

В этой Пункте описаны подробности схемы базы данных TPC-E, требования к типам данных, требуемая структура каждой отдельной таблицы, отношения сущностей между таблицами и ограничения по отдельным колонкам.

2.2.1 Описание типов данных

Native Data Type - это встроенный тип данных СУБД, чьим документированным назначением является хранение данных конкретных типов, указанных в спецификации. К примеру, DATETIME должен быть реализован при помощи встроенного типа данных СУБД, предназначенного для хранения информации о дате/времени.

CHAR(n) означает символьную строку, которая может содержать до n однобайтных символов. Строки могут быть заполнены пробелами до максимальной длины. CHAR(n) должен быть реализован с использованием Native Data Type.

NUM(m[,n]) означает численное значение без знака с количеством знаков не меньше m, из которых n знаков после запятой. Тип данных должен иметь возможность содержать все возможные значения, которые могут быть выражены как NUM(m[,n]). Исключение n, например как записано в NUM(m), означает то же, что NUM(m,0). NUM должен быть реализован с использованием Native Data Type.

2.2.1.1 SNUM(m[,n]) идентична NUM(m[,n]) за исключением того, что оно используется для отображения как положительных, так и отрицательных значений. SNUM должен быть реализован с использованием Native Data Type.

Примечание: тип данных SNUM может быть использован (по решению Организатора) всюду, где описан тип данных NUM.

ENUM(m[,n]) или SENUM(m[,n]) означает точное численное значение (со знаком или без, соответственно). ENUM и SENUM идентичны NUM и SNUM, соответственно, за исключением того, что они должны быть реализованы с использованием Native Data Type, который обеспечивает точное представление по меньшей мере n знаков после запятой.

Примечание: Числовые типы данных реализуют либо точное, либо приближенное представление численных величин. К примеру, INTEGER и DECIMAL являются точными числовыми типами данных, а REAL и FLOAT - это примерные числовые типы данных (опираясь на описания ANSI SQL).

BOOLEAN -- это тип данных, предназначенный для хранения по меньшей мере двух отдельных значений, обозначающих FALSE и TRUE.

Примечание: в этом документе, также как и в реализации EGen, установлена договоренность, что значение ноль (0) обозначает FALSE и значение (1) обозначает TRUE.

2.2.1.2 DATE

DATE представляет собой тип данных даты с детализацией в течение дня и должен поддерживать диапазон от 1 Января 1800 года до 31 Декабря 2199, включительно. DATE должен быть реализован с использованием Native Data Type.

Примечание: компонент времени не является необходимым, но также может быть реализован.

2.2.1.3 DATETIME представляет тип данных для обозначения даты, включающей составляющую времени. Компонент данных должен соответствовать всем требованиям для типа данных DATE. Компонент времени должен быть способен представлять диапазон значений времени от 00:00:00 до 23:59:59. Могут быть реализованы дробные значения секунд, но они не являются необходимыми. DATETIME должен быть реализован с использованием Native Data Type.

BLOB(n) это тип данных, предназначенный для хранения двоичных объектов переменной длины в n байт.

BLOB_REF это тип данных, который может ссылаться на объект BLOB(n), хранимый вне таблицы в SUT.

2.2.2 Определения Мета-типов

Для облегчения записи определены нижеследующие мета-типы. Эти мета-типы могут быть реализованы, используя нижележащие типы данных, на которых они основаны. Не существует требования на реализацию мета-типов, как типов, определенных пользователем в СУБД. Мета-тип может быть реализован с использованием типов, определенных пользователем в СУБД до тех пор, пока определенный пользователем тип включает, в случае необходимости, Native Data Type и наследует свойства этого Native Data Type.

IDENT_T определяется как NUM(11) и используется для хранения неторговых указателей.

TRADE_T определяется как NUM(15) и используется для хранения торговых указателей.

Торговые идентификаторы обладают следующими характеристиками:

  • Они должны быть уникальны.

  • Они могут быть редкими.

  • В период загрузки они создаются EGenLoader.

  • В период выполнения они создаются Кодом, предоставляемым Организатором.

  • Код EGenLoader не будет ассоциировать торговые указатели с датой/временем или идентификаторами клиента или счета. В отношении последовательности торговых идентификаторов не может быть сделано никаких предположений.

FIN_AGG_T определен как SENUM(15,2) и используется для хранения сложных финансовых данных, таких как графики статей дохода и оценки прибыльности.

2.2.2.1 S_PRICE_T определено как ENUM(8,2) и используется для хранения значения стоимости акций.

2.2.2.2 S_COUNT_T определено как NUM(12) и используется для хранения суммарного значения количества акций, используемого во многих таблицах.

2.2.2.3 S_QTY_T определено как SNUM(6) и используется для хранения количества

BALANCE_T определяется, как SENUM(12,2), и используется для хранения комплексных данных об учётных записях и транзакциях, таких как балансы счетов, суммарные комиссии и т.д.

VALUE_T определяется, как SENUM(10,2), и используется для хранения некомплексных данных, относящихся к транзакциям и безопасности, таким как цена, дивиденды и т.д.

2.2.3 Основные объекты Схемы

Следующая таблица перечисляет категории, префиксы и названия для всех таблиц, необходимых в тестировании TPC-E.

Категория

Название таблицы

Префикс таблицы

Определение

Клиентские

ACCOUNT_PERMISSION

AP_

Глава 0

CUSTOMER

C_

Глава 2.2.4.2

CUSTOMER_ACCOUNT

CA_

Глава 2.2.4.3

CUSTOMER_TAXRATE

CX_

Глава 2.2.4.4

HOLDING

H_

Глава 2.2.4.5

HOLDING_HISTORY

HH_

Глава 2.2.4.6

HOLDING_SUMMARY

HS_

Глава 2.2.4.7

WATCH_ITEM

WI_

Глава 2.2.4.8

WATCH_LIST

WL_

Глава 2.2.4.9

Брокерские

BROKER

B_

Глава 2.2.5.1

CASH_TRANSACTION

CT_

Глава 2.2.5.2

CHARGE

CH_

Глава 2.2.5.3

COMMISSION_RATE

CR_

Глава 2.2.5.4

SETTLEMENT

SE_

Глава 2.2.5.5

TRADE

T_

Глава 2.2.5.6

TRADE_HISTORY

TH_

Глава 2.2.5.7

TRADE_REQUEST

TR_

Глава 2.2.5.8

TRADE_TYPE

TT_

Глава 2.2.5.9

Рыночные

COMPANY

CO_

Глава 2.2.6.1

COMPANY_COMPETITOR

CP_

Глава 0

DAILY_MARKET

DM_

Глава 2.2.6.3

EXCHANGE

EX_

Глава 2.2.6.4

FINANCIAL

FI_

Глава 2.2.6.5

INDUSTRY

IN_

Глава 2.2.6.6

LAST_TRADE

LT_

Глава 2.2.6.7

NEWS_ITEM

NI_

Глава 2.2.6.8

NEWS_XREF

NX_

Глава 2.2.6.9

SECTOR

SC_

Глава 2.2.6.10

SECURITY

S_

Глава 2.2.6.11

Размерности

ADDRESS

AD_

Глава 2.2.7.1

STATUS_TYPE

ST_

Глава 2.2.7.2

TAXRATE

TX_

Глава 2.2.7.3

ZIP_CODE

ZC_

Глава 2.2.7.4

2.2.3.1 Ссылки на Основной ключ, описанные в этом разделе, должны быть сохранены базой данных в период Выполнения теста. Основные ключи обозначены как PK или PK+ в поле Отношения в описании каждой таблицы. PK обозначает, что колонка является Основным Ключом таблицы, в то время как PK+ обозначает, что колонка является частью составного (содержащего несколько колонок) Основного ключа.

2.2.3.2 Ссылки на Внешний ключ, описанные в этом разделе, должны быть сохранены базой данных в период Выполнения теста. Внешние ключи обозначаются как FK() или FK+() в поле Отношения в описании каждой таблицы. FK() обозначает Внешний Ключ из одной колонки таблицы, в то время как FK+() обозначает, что колонка является частью составного (содержащего несколько колонок) Внешнего ключа. Префикс таблицы, заключенный в скобки, обозначает целевую таблицу для ссылки Внешним ключом.

2.2.3.3 Ограничения, описанные в этом разделе, должны соблюдаться базой данных в период Выполнения теста. Ограничения перечислены в колонке Ограничения в описании каждой таблицы.

Примечание: Если не установлено ограничение Not Null, колонка должна допускать значения Null.

2.2.3.4 Для каждой таблицы, необходимой TPC-E, колонки могут быть приведены в любом порядке, используя любое физическое представление, доступное из тестируемой системы, которое удовлетворяет требованиям к типам данных схемы.

2.2.4 Клиентские таблицы

Эти группы таблиц содержат информацию о данных, относящихся к клиентам.

2.2.4.1 ACCOUNT_PERMISSION

Эта таблица содержит информации о правах доступа, которыми обладает клиент или кто либо помимо клиента к указанному счету клиента. На клиентских счетах могут вестись торги, созданные на них более чем одним человеком.
Префикс таблицы: AP_

Название колонки

Тип данных

Ограничения

Отношения

Описание

AP_CA_ID

IDENT_T

Not Null

PK+

FK (CA_)

Идентификатор Счета клиента.

AP_ACL

CHAR(4)

Not Null

 

Список управления доступом, определяющий разрешения человека для доступа ко счету клиента.

AP_TAX_ID

CHAR(20)

Not Null

PK+

Налоговый идентификатор человека, имеющего доступ ко счету клиента.

AP_L_NAME

CHAR(25)

Not Null

 

Фамилия человека, имеющего доступ ко счету клиента.

AP_F_NAME

CHAR(20)

Not Null

 

Имя человека, имеющего доступ ко счету клиента..

2.2.4.2 CUSTOMER

Эта таблица содержит информацию о клиентах брокерской фирмы.

Префикс таблицы: C_

Название колонки

Тип данных

Ограничения

Отношения

Описание

C_ID

IDENT_T

Not Null

PK

Идентификатор клиента для внутреннего использования для связи клиентской информации.

C_TAX_ID

CHAR(20)

Not Null

 

Налоговый идентификатор клиента, применяющийся для внешнего взаимодействия с клиентом.  Является буквенноцифровым.

C_ST_ID

CHAR(4)

Not Null

FK (ST_)

Идентификатор статуса клиента. Обозначает, активен ли клиент.

C_L_NAME

CHAR(25)

Not Null

 

Фамилия Клиента.

C_F_NAME

CHAR(20)

Not Null

 

Имя Клиента.

C_M_NAME

CHAR(1)

 

 

Первая буква отчества клиента.

C_GNDR

CHAR(1)

 

 

Пол  клиента. Значение M’ соответствует мужчине, и  ‘F’ – женщине. 

­C_TIER

NUM(1)

Not Null

 in 1,2,3

 

Уровень клиента: по счетам Уровня 1 взымаются наибольшие платы, по счетам Уровня 2 взымаются средние платы, и по счетам Уровня 3 взымаются наименьшие платы.

C_DOB

DATE

Not Null

 

Дата рождения Клиента.

C_AD_ID

IDENT_T

Not Null

FK (AD_)

Идентификатор адреса Клиента.

C_CTRY_1

CHAR(3)

 

 

Код страны для телефонного номера №1 Клиента.

C_AREA_1

CHAR(3)

 

 

Код региона для телефонного номера №1 Клиента.

C_LOCAL_1

CHAR(10)

 

 

Местный телефонный номер №1 Клиента.

C_EXT_1

CHAR(5)

 

 

Дополнительный код в телефонном номере №1 Клиента.

C_CTRY_2

CHAR(3)

 

 

Код страны для телефонного номера №2 Клиента.

C_AREA_2

CHAR(3)

 

 

Код региона для телефонного номера №2 Клиента.

C_LOCAL_2

CHAR(10)

 

 

Местный телефонный номер №2 Клиента.

C_EXT_2

CHAR(5)

 

 

Дополнитльный код для телефонного номера №2 Клиента.

C_CTRY_3

CHAR(3)

 

 

Код страны для телефонного номера №3 Клиента.

C_AREA_3

CHAR(3)

 

 

Код  региона для телефонного номера №3 Клиента.

C_LOCAL_3

CHAR(10)

 

 

Местный телефонный номер №3 Клиента.

C_EXT_3

CHAR(5)

 

 

Дополнительный код для телефонного номера №3 Клиента.

C_EMAIL_1

CHAR(50)

 

 

Адрес электронной почты Клиента 1.

C_EMAIL_2

CHAR(50)

 

 

Адрес электронной почты Клиента 2.

2.2.4.3 CUSTOMER_ACCOUNT

Таблица CUSTOMER_ACCOUNT содержит информация о счетах каждого клиента.

Префикс таблицы: CA_

Название колонки

Тип данных

Ограничения

Отношения

Описание

CA_ID

IDENT_T

Not Null

PK

Идентификатор счета клиента

CA_B_ID

IDENT_T

Not Null

FK (B_)

Идентификатор брокера, который управляет счетом этого клиента.

CA_C_ID

IDENT_T

Not Null

FK (C_)

Идентификатор клиента, владеющего этим счетом.

CA_NAME

CHAR(50)

 

 

Название счета клиента. К примеру, («Trish Hogan 401(k)».

CA_TAX_ST

NUM(1)

Not Null

in 0,1,2

 

Налоговый статус счета: 0 означает, что счет не облагается налогами, 1 означает, что этот счет облагается налогами и налоги должны удерживаться, 2означает, что счет облагается налогами и налоги не должны удерживаться.

CA_BAL

BALANCE_T

Not Null

 

Баланс счета.

2.2.4.4 CUSTOMER_TAXRATE

Таблица содержит две ссылки по каждому клиенту в таблице TAXRATE. Одна ссылка относится к налогам города/области, другая для общенационального налога. Таблица TAXRATE содержит точные текущие налоговые ставки.

Префикс таблицы: CX_

Название колонки

Тип данных

Ограничения

Отношения

Описание

CX_TX_ID

CHAR(4)

Not Null

PK+

FK (TX_)

Идентификатор налоговой ставки.

CX_C_ID

IDENT_T

Not Null

PK+

FK (C_)

Идентификатор клиента, который должен оплатить эту налоговую ставку.

2.2.4.5 HOLDING

Таблица содержит информацию об активах ценных бумаг на счете.

Префикс таблицы: H_

Название колонки

Тип данных

Ограничения

Отношения

Описание

H_T_ID

TRADE_T

Not Null

PK

FK (T_)

Идентификатор торгов.

H_CA_ID

IDENT_T

Not Null

FK+ (HS_)

Идентификатор клиента.

H_S_SYMB

CHAR(15)

Not Null

FK+ (HS_)

Символ пакета ценных бумаг.

H_DTS

DATETIME

Not Null

 

Дата, когда эти ценные бумаги были куплены или проданы.

H_PRICE

S_PRICE_T

Not Null

> 0

 

Стоимость покупки единицы этих ценных бумаг.

H_QTY

S_QTY_T

Not Null

 

Величина пакета ценных бумаг.

2.2.4.6 HOLDING_HISTORY

Таблица содержит информацию о позициях активов, которые были внесены, изменены или удалены, и какие торги привели к каким изменениям.

Префикс таблицы: HH_

Название колонки

Тип данных

Ограничения

Отношения

Описание

HH_H_T_ID

TRADE_T

Not Null

PK+

FK (T_)

Указатель торгов, которые изначально создали ряд активов. Он является Внешним ключом для таблицы TRADE, а не HOLDING по причине того, что ряд HOLDING может быть удален.

HH_T_ID

TRADE_T

Not Null

PK+

FK (T_)

Идентификатор текущих торгов (последний введаший, изменивший или удаливший холдинг обозначается при помощи HH_H_T_ID).

HH_ BEFORE_QTY

S_QTY_T

Not Null

 

Величина пакета этих ценных бумаг перед торгами. При изначальном вводе HH_BEFORE_QTY равно 0.

HH_ AFTER_QTY

S_QTY_T

Not Null

 

Величина пакета этих ценных бумаг после торгов. Если ряд HOLDING  в результате торгов, то HH_AFTER_QTY равно 0. удаляется

2.2.4.7 HOLDING_SUMMARY

Таблица содержит комплексную информацию о пакетах ценных бумаг на счетах Клиента.

Префикс таблицы: HS_

Название колонки

Тип данных

Ограничения

Отношения

Описание

HS_CA_ID

IDENT_T

Not Null

PK+

FK (CA_)

Идентификатор счета Клиента.

HS_S_SYMB

CHAR(15)

Not Null

PK+

FK (S_)

Символ для пакета ценных бумаг.

HS_ QTY

S_QTY_T

Not Null

 

Общая величина этого пакета ценных бумаг.

Примечание: HOLDING_SUMMARY может быть реализована как обзор таблицы HOLDING, и в этом случает ссылки Внешнего ключа таблицы HOLDING на таблицу HOLDING_SUMMARY проводятся автоматически. Однако ссылки Внешнего ключа таблицы HOLDING_SUMMARY на CA_ и S_ должны быть адаптированы и приняты в HOLDING.

2.2.4.8 WATCH_ITEM

Таблица содержит список отслеживаемых ценных бумаг в списке наблюдения.

Префикс таблицы: WI_

Название колонки

Тип данных

Ограничения

Отношення

Описание

WI_WL_ID

IDENT_T

Not Null

PK+

FK (WL_)

Идентификатор списка наблюдения

WI_S_SYMB

CHAR(15)

Not Null

PK+

FK (S_)

Знак отслеживаемых ценных бумаг.

2.2.4.9 WATCH_LIST

Таблица содержит информацию о клиенте, создавшем этот список наблюдения.

Префикс таблицы: WL_

Название колонки

Тип данных

Ограничения

Отношения

Описание

WL_ID

IDENT_T

Not Null

PK

Идентификатор списка наблюдения

WL_C_ID

IDENT_T

Not Null

FK (C_)

Идентификатор клиента, создавшего этот список наблюдения.

2.2.5 Брокерские таблицы

Эта группа таблиц содержит данные, относящиеся к брокерской фирме и брокерам.

2.2.5.1 BROKER

Таблица содержит информацию о брокерах.

Префикс таблицы B_

Название колонки

Тип данных

Ограничения

Отношения

Описание

B_ID

IDENT_T

Not Null

PK

Идентификатор Брокера

B_ST_ID

CHAR(4)

Not Null

FK (ST_)

Идентификатор типа статуса брокера; указывает активен этот брокер или нет.

B_NAME

CHAR(49)

Not Null

 

Имя брокера.

B_NUM_TRADES

NUM(9)

Not Null

 

Количество торгов, проведенных этим брокером на данный момент.

B_COMM_TOTAL

BALANCE_T

Not Null

 

Количество комиссионных, полученных этим брокером на данный момент.

2.2.5.2 CASH_TRANSACTION

Таблица содержит информацию о денежных транзакциях.

Префикс таблицы: CT_

Название колонки

Тип данных

Ограничения

Отношения

Описание

CT_T_ID

TRADE_T

Not Null

PK

FK (T_)

Идентификатор торгов.

CT_DTS

DATETIME

Not Null

 

Отметка даты и времени проведения транзакции.

CT_AMT

VALUE_T

Not Null

 

Объем денежной транзакции.

CT_NAME

CHAR(100)

 

 

Название транзакции или описание: например «Покупка Keebler Cookies», «Средства от продажи акций DuPont».

2.2.5.3 CHARGE

Таблица содержит информацию об издержках за размещение торговой заявки. Размеры издержек зависят от уровня клиента и типа торгов.

Префикс таблицы: CH_

Название колонки

Тип данных

Ограничения

Отношения

Описание

CH_TT_ID

CHAR(3)

Not Null

PK+

FK (TT_)

Идентификатор типа торгов.

CH_C_TIER

NUM(1)

Not Null

in 1,2,3

PK+

Уровень клиента.

CH_CHRG

VALUE_T

Not Null
>= 0

 

Издержки за размещение торговой заявки,

2.2.5.4 COMMISSION_RATE

Ставка комиссии зависит от нескольких факторов: Уровня клиента, типа торгов, объема торгуемых ценных бумаг и биржи, выполняющий торги.

Префикс таблицы: CR_

Название колонки

Тип данных

Ограничения

Отношения

Описание

CR_C_TIER

NUM(1)

Not Null

 in 1,2,3

PK+

Уровень клиента. Возможные значения: 1, 2 или 3.

CR_TT_ID

CHAR(3)

Not Null

PK+

FK (TT_)

Идентификатор типа торгов.

CR_EX_ID

CHAR(6)

Not Null

PK+

FK (EX_)

Идентификатор биржи, на которой проводятся торги.

CR_FROM_QTY

S_QTY_T

Not Null

>= 0

PK+

Нижняя граница торгуемых объемов для соответствия комиссионной ставке

CR_TO_QTY

S_QTY_T

Not Null

> CR_FROM_QTY

 

Верхняя граница торгуемых объемов для соответствия комиссионной ставке.

CR_RATE

NUM(5,2)

Not Null

>= 0

 

Комиссионная ставка. Варьируется в диапазоне от 0.00 до 100.00. Пример: 10% соответствует 10.00.

2.2.5.5 SETTLEMENT

Таблица содержит информацию о том, как осуществляются выплаты по торгам: в частности, проводятся маржиналные торги или торги на имеющиеся в наличии средства, и когда выполняются условия торгов.

Префикс таблицы: SE_

Название колонки

Тип данных

Ограничения

Отношения

Описание

SE_T_ID

TRADE_T

Not Null

PK

FK (T_)

Идентификатор торгов.

SE_CASH_TYPE

CHAR(40)

Not Null

 

Тип уплаты: возможы значения»Маржинальная торговля», «Торговля на имеющиеся средства».

SE_CASH_DUE_DATE

DATE

Not Null

 

Дата, когда клиент или брокерская фирма должны получить наличные; дата торгов плюс два дня.

SE_AMT

VALUE_T

Not Null

 

Объем выплат в наличных.

2.2.5.6 TRADE

Таблица содержит информацию о торгах.

Префикс таблицы: T_

Название колонки

Тип данных

Ограничения

Отношения

Описание

T_ID

TRADE_T

Not Null

PK

Идентификатор торгов.

T_DTS

DATETIME

Not Null

 

Дата и время торгов.

T_ST_ID

CHAR(4)

Not Null

FK (ST_)

Идентификатор типа статуса торгов.

T_TT_ID

CHAR(3)

Not Null

FK (TT_)

Идентификатор типа торгов.

T_IS_CASH

BOOLEAN

Not Null

in 0, 1

 

Это торговля на наличные (1) или маржинальная (0) торговля?

T_S_SYMB

CHAR(15)

Not Null

FK (S_)

Символ торгуемыъ ценных бумаг.

T_QTY

S_QTY_T

Not Null

>0

 

Объем торгуемых ценных бумаг..

T_BID_PRICE

S_PRICE_T

Not Null

> 0

 

Стоимсоть запрошенной единицы.

T_CA_ID

IDENT_T

Not Null

FK (CA_)

Идентификатор счета Клиента.

T_EXEC_NAME

CHAR(49)

Not Null

 

Имя человека, выполняющего торги.

T_TRADE_PRICE

S_PRICE_T

 

 

Цена единицы, за которую были проведены торги ценными бумагами.

T_CHRG

VALUE_T

Not Null

>= 0

 

Плата за размещение этой торговой заявки.

T_COMM

VALUE_T

Not Null

>= 0

 

Комиссионные, полученные на этих торгах; может иметь нулевое значение.

T_TAX

VALUE_T

Not Null

>= 0

 

Объем налоговых сборов по этим торгам; может иметь нулевое значение. Будут ли налоги вычитаться из выплат зависит от налогового статуса клиента.

T_LIFO

BOOLEAN

Not Null

in 0, 1

 

Если эти торги закрывают существующую позицию, то если они выполняются от новейших к старейшим активам счета по этим ценным бумагам, то: (1=LIFO), если же по отношению от старейших к новейшим активам счета, то: (0=FIFO).

2.2.5.7 TRADE_HISTORY

Таблица содержит историю каждой торговой транзакции в различных состояниях.

Префикс таблицы: TH_

Название колонки

Тип данных

Ограничения

Отношения

Описание

TH_T_ID

TRADE_T

Not Null

PK+

FK (T_)

Идентификатор торгов.  Это значение будет использоваться для отправки T_IDTRADE и SE_T_ID в таблице SETTLEMENT, если эта торговая заявка приведет к торгам. в

TH_DTS

DATETIME

Not Null

 

Отметка времени о том, когда история торгов была обновлена.

TH_ST_ID

CHAR(4)

Not Null

PK+

FK (ST_)

Идентификатор типа статуса.

2.2.5.8 TRADE_REQUEST

Таблица содержит информацию об ожидающих заявках по уровню, которые ожидают определенной стоимости ценных бумаг перед тем, как торговые заявки будут отправлены на рынок.

Префикс таблицы: TR_

Название колонки

Тип данных

Ограничения

Отношения

Описание

TR_T_ID

TRADE_T

Not Null

PK

FK (T_)

Идентификатор торговой заявки. Это значение будет использоваться для обработки ожидающего запрос по пределу, когда он в дальнейшем сработает.

TR_TT_ID

CHAR(3)

Not Null

FK (TT_)

Идентификатор типа торговой заявки.

TR_S_SYMB

CHAR(15)

Not Null

FK (S_)

Символ ценных бумаг, которыми хочет торговать клиент.

TR_QTY

S_QTY_T

Not Null

 > 0

 

Объем ценных бумаг, на торги которым Клиент подал заявку.

TR_BID_PRICE

S_PRICE_T

Not Null

> 0

 

Цена которую хочет получить Клиент за единицу акций, которыми он хочет торговать. Нулевое значение означает, что клиент хочет торговать сейчас по рыночной цене.

TR_B_ID

IDENT_T

Not Null

FK (B_)

Обозначает брокера, обрабатывающего торги.

2.2.5.9 TRADE_TYPE

Таблица содержит список допустимых типов торгов.

Префикс таблицы: TT_

Название колонки

Тип данных

Ограничения

Отношения

Описание

TT_ID

CHAR(3)

Not Null

PK

Идентификатор типа торговr: Значения:TMB», «TMS», «TSL», «TLS», и»TLB». «

TT_NAME

CHAR(12)

Not Null

 

Названия типа торгов.  Примеры: «Покупка по уровню», «Продажа по уровню», «Покупка по рынку», «Продажа по рынку», «Стоп убытков».

TT_IS_SELL

BOOLEAN

Not Null

in 0, 1

 

1 если это транзакция типа «Продажа».  0 если это транзакция типа  «Покупка».

TT_IS_MRKT

BOOLEAN

Not Null

in 0, 1

 

1 если это рыночная транзакция, которая отправляется в эмулятор биржи незамедлительно.  0 если это транзакция по уровню.

Содержимое таблицы TRADE_TYPE показаны ниже для читаемости, поскольку значения TT_ID используются в других местах спецификации.

TT_ID

TT_NAME

TT_IS_SELL

TT_IS_MRKT

TLB

Limit-Buy

0

0

TLS

Limit-Sell

1

0

TMB

Market-Buy

0

1

TMS

Market-Sell

1

1

TSL

Stop-Loss

1

0

2.2.6 Рыночные таблицы

Эта группа таблиц содержит информацию о биржах, компаниях и ценных бумагах, создающих рынок.

2.2.6.1 COMPANY

Эта таблица содержит информацию обо всех компаниях со свободно торгуемыми ценными бумагами.

Префикс таблицы: CO_

Название колонки

Тип данных

Ограничения

Отношения

Описание

CO_ID

IDENT_T

Not Null

PK

Идентификатор компании.

CO_ST_ID

CHAR(4)

Not Null

FK (ST_)

Идентификатор статуса компании.  Указывает, является эта компания активной или нет.

CO_NAME

CHAR(60)

Not Null

 

Название компании.

CO_IN_ID

CHAR(2)

Not Null

FK (IN_)

Идентификатор индустрии, к которой принадлежит компания.

CO_SP_RATE

CHAR(4)

Not Null

 

Оценка кредитной истории от Standard & Poor.

CO_CEO

CHAR(46)

Not Null

 

Имя испольнительного директора компании.

CO_AD_ID

IDENT_T

Not Null

FK (AD_)

Идентификатор адреса.

CO_DESC

CHAR(150)

Not Null

 

Описание компании.

CO_OPEN_DATE

DATE

Not Null

 

Дата основания компании.

2.2.6.2 COMPANY_COMPETITOR

Эта таблица содержит информацию о конкурентах указанной компании и области индустрии, в которой конкурирует компания.

Префикс таблицы: CP_

Название колонки

Тип данных

Ограничения

Отношения

Описание

CP_CO_ID

IDENT_T

Not Null

PK+

FK (CO_)

Идентификатор компании.

CP_COMP_CO_ID

IDENT_T

Not Null

PK+

FK (CO_)

Идентификатор компании-конкурента в заданной индустрии.

CP_IN_ID

CHAR(2)

Not Null

PK+

FK (IN_)

Идентификатор индустрии, в которой компания CP_CO_ID считает, что компания CP_COMP_CO_IDконкурирует с ней. Эта индустрия может не быть основной для любой из компаний.

2.2.6.3 DAILY_MARKET

Таблица содержит дневную рыночную статистику по каждому виду ценных бумаг, используя данные закрытия рынка с последнего завершенного торгового дня. EGenLoader будет заполнять эти таблицы данными по всем ценным бумагам за период, начавшийся 3 Января 2000 и заканчивающийся 31 Декабря 2004.

Префикс таблицы: DM_

Название колонки

Тип данных

Ограничения

Отношения

Описание

DM_DATE

DATE

Not Null

PK+

Дата последнего завершенного торгового дня.

DM_S_SYMB

CHAR(15)

Not Null

PK+

FK (S_)

Символ этих ценных бумаг.

DM_CLOSE

S_PRICE_T

Not Null

 

Цена закрытия по этим ценным бумагам.

DM_HIGH

S_PRICE_T

Not Null

 

Дневная Пиковая цена за эти ценные бумаги.

DM_LOW

S_PRICE_T

Not Null

 

Дневная Минимальная цена за эти ценные бумаги. 

DM_VOL

S_COUNT_T

Not Null

 

Дневной объем этих ценных бумаг.

2.2.6.4 EXCHANGE

Эта таблица содержит информацию о финансовых биржах.

Префикс таблицы: EX_

Название колонки

Тип данных

Ограничения

Отношения

Описание

EX_ID

CHAR(6)

Not Null

PK

Идентификатор биржи. Значения: "NYSE", "NASDAQ", "AMEX", «PCX».

EX_NAME

CHAR(100)

Not Null

 

Название биржи.

EX_NUM_SYMB

NUM(6)

Not Null

 

Количество ценных бумаг, торгуемых на этой бирже.

EX_OPEN

NUM(4)

Not Null

 

Время начала работы биржи по Гринвичу (GMT).

EX_CLOSE

NUM(4)

Not Null

 

Время окончания работы биржи по Гринвичу (GMT).

EX_DESC

CHAR(150)

 

 

Описание биржи.

EX_AD_ID

IDENT_T

Not Null

FK (AD_)

Почтовый адрес биржи.

2.2.6.5 FINANCIAL

Эта таблица содержит информацию о квартальных финансовых отчетах компании. EGenLoader будет заполнять эту таблицу финансовой информацией по каждой компании по кварталам, начиная с 1 Января 2000 и заканчивая кварталом, который начинается 1 Октября 2004.

Префикс таблицы: FI_

Название колонки

Тип данных

Ограничения

Отношения

Описание

FI_CO_ID

IDENT_T

Not Null

PK+

FK (CO_)

Идентификатор компании.

FI_YEAR

NUM(4)

Not Null

PK+

Год окончания квартала.

FI_QTR

NUM(1)

Not Null

in 1,2,3,4

PK+

Номер квратала, к которому относится финансовая информация: 1, 2, 3, 4. допустимые значения

FI_QTR_START_DATE

DATE

Not Null

 

Дата начала квартала.

FI_REVENUE

FIN_AGG_T

Not Null

 

Отчетный доход за квартал.

FI_NET_EARN

FIN_AGG_T

Not Null

 

Отчетная чистая прибыль за квартал.

FI_BASIC_EPS

VALUE_T

Not Null

 

Базовая прибыль за акцию за отчетный квартал.

FI_DILUT_EPS

VALUE_T

Not Null

 

Распределенная прибыть за акцию за отчетный квартал.

FI_MARGIN

VALUE_T

Not Null

 

Прибыль, разделенная на доходы за отчетный квартал.

FI_INVENTORY

FIN_AGG_T

Not Null

 

Объем оборудования во владении на конец квартала.

FI_ASSETS

FIN_AGG_T

Not Null

 

Объем всех активов на конец квартала.

FI_LIABILITY

FIN_AGG_T

Not Null

 

Объем всех обязательств на конец квартала.

FI_OUT_BASIC

S_COUNT_T

Not Null

 

Средне число выпущенных обычных акций (базовых).

FI_OUT_DILUT

S_COUNT_T

Not Null

 

Среднее число выпущенных обычных акций (распределенных).

2.2.6.6 INDUSTRY

Эта таблица содержит информацию об индустриях. Используется для распределения компаний по категориям согласно тому, какая компания к какой индустрии принадлежит.

Префикс таблицы: IN_

Название колонки

Тип данных

Ограничения

Отношения

Описание

IN_ID

CHAR(2)

Not Null

PK

Идентификатор индустрии.

IN_NAME

CHAR(50)

Not Null

 

Название индустрии.  Примеры:"Авиаперелеты", "Авиаперевозки", "Программное обеспечение", "Банковское обслуживание физических лиц", "Банковское обслуживание юридических лиц", etc.

IN_SC_ID

CHAR(2)

Not Null

FK (SC_)

Идентификатор сектора, к которому принадлежит индустрия.

2.2.6.7 LAST_TRADE

Таблица содержит один ряд для каждого вида ценных бумаг с последней стоимостью и объемом торгов по каждому виду.

Префикс таблицы: LT_

Название колонки

Тип данных

Ограничения

Отношения

Описание

LT_S_SYMB

CHAR(15)

Not Null

PK

FK (S_)

Символ ценных бумаг.

LT_DTS

DATETIME

Not Null

 

Дата и отметка времени, когда этот ряд обновлялся в последний раз.

LT_PRICE

S_PRICE_T

Not Null

 

Последняя торговая цена за эти ценные бумаги.

LT_OPEN_PRICE

S_PRICE_T

Not Null

 

Цена, на которой открылись ценные бумаги сегодня.

LT_VOL

S_COUNT_T

Not Null

 

Объем торгов с этими ценными бумагами на рынке на данный момент за сегодняшний день. Начальное значение равно 0.

2.2.6.8 NEWS_ITEM

Эта таблица содержит информацию о новостных сюжетах, представляющих интерес.

Префикс таблицы: NI_

Название колонки

Тип данных

Ограничения

Отношения

Описание

NI_ID

IDENT_T

Not Null

PK

Идентификатор новостного сюжета.

NI_HEADLINE

CHAR(80)

Not Null

 

Заголовок новостного сюжета.

NI_SUMMARY

CHAR(255)

Not Null

 

Сводная информация по новостному сюжету.

NI_ITEM

BLOB(100000) or BLOB_REF

Not Null

 

Крупный объект, содержащий новостной сюжет или ссылку на описание

NI_DTS

DATETIME

Not Null

 

Дата и время, в которое был опубликован новостной сюжет.

NI_SOURCE

CHAR(30)

Not Null

 

Источник новостного сюжета.

NI_AUTHOR

CHAR(30)

 

 

Автор новостного сюжета. Может быть пустым, если новостной сюжет пришел по телеграфу.

2.2.6.9 NEWS_XREF

Таблица содержит перекрестные ссылки с новостного сюжета на компании, упомянутые в новостных сюжетах.

Префикс таблицы: NX_

Название колонки

Тип данных

Ограничения

Отношения

Описание

NX_NI_ID

IDENT_T

Not Null

PK+

FK (NI_)

Идентификатор новостного сюжета.

NX_CO_ID

IDENT_T

Not Null

PK+

FK (CO_)

Идентификатор компании (или одной из компаний) упомянутых в новостном сюжете.

2.2.6.10 SECTOR

Эта таблица содержит информацию о секторах рынка.

Префикс таблицы: SC_

Название колонки

Тип данных

Ограничения

Отношения

Описание

SC_ID

CHAR(2)

Not Null

PK

Идентификатор сектора.

SC_NAME

CHAR(30)

Not Null

 

Название сектора. Примеры:«Энергетика», «Сырье», «Промышленность», «Здравоохранение» и т.д.

2.2.6.11 SECURITY

Эта таблица содержит информацию по каждому виду ценных бумаг, торгуемых на любой из бирж.

Префикс таблицы: S_

Название колонки

Тип данных

Ограничения

Отношения

Описание

S_SYMB

CHAR(15)

Not Null

PK

Символ ценных бумаг, предназначенных для обозначения бумаг на тиккере.

S_ISSUE

CHAR(6)

Not Null

 

Тип выпуска ценных бумаг. Примеры:"COMMON", "PERF_A", "PERF_B" и т.д.

S_ST_ID

CHAR(4)

Not Null

FK (ST_)

Идентификатор статуса ценных бумаг. Указывает, активны эти ценные бумаги или нет.

S_NAME

CHAR(70)

Not Null

 

Название ценных бумаг.

S_EX_ID

CHAR(6)

Not Null

FK (EX_)

Идентификатор биржи, на которой торгуются эти ценные бумаги.

S_CO_ID

IDENT_T

Not Null

FK (CO_)

Идентификатор компании, выпустившей эти ценные бумаги.

S_NUM_OUT

S_COUNT_T

Not Null

 

Количество выпущенных акций этого вида.

S_START_DATE

DATE

Not Null

 

Дата, когда впервые начались торги ценными бумагами.

S_EXCH_DATE

DATE

Not Null

 

Дата, когда впервые начались торги этими ценными бумагами на этой бирже.

S_PE

VALUE_T

Not Null

 

Соотношение текущей прибыли к стоимости за одну акцию.

S_52WK_HIGH

S_PRICE_T

Not Null

 

Пиковое значение акций за 52 недели. 

S_52WK_HIGH_DATE

DATE

Not Null

 

Дата пикового значения стоимости акций за 52 недели. 

S_52WK_LOW

S_PRICE_T

Not Null

 

Наименьшее значение стоимости акций за 52 недели.

S_52WK_LOW_DATE

DATE

Not Null

 

Дата наименьшего значения стоимости акций за 52 недели.

S_DIVIDEND

VALUE_T

Not Null

 

Объем годовых дивидендов за акцию. Может быть нулевым, отрицательное значение недопустимо.

S_YIELD

NUM(5,2)

Not Null

 

Соотношению дивидендов к цене акции, значение в процентах. Пример: 10.00 это 10%

2.2.7 Таблицы размерности

Эта группа таблиц включает 4 таблицы измерений, содержащих общую информацию, такую как адреса или почтовые коды.

2.2.7.1 ADDRESS

Эта таблица содержит информацию об адресе.

Префикс таблицы: AD_

Название колонки

Тип данных

Ограничения

Отношения

Описание

AD_ID

IDENT_T

Not Null

PK

Идентификатор адреса.

AD_LINE1

CHAR(80)

 

 

Адресная строка 1.

AD_LINE2

CHAR(80)

 

 

Адресная строка 2.

AD_ZC_CODE

CHAR(12)

Not Null

FK (ZC_)

Zip или почтовый код.

AD_CTRY

CHAR(80)

 

 

Страна.

2.2.7.2 STATUS_TYPE

Эта таблица содержит все значения статуса для нескольких различных ипользований статусов. Многие таблицы обращаются к этой таблице для получения их значений статусов.

Префикс таблицы: ST_

Название колонки

Тип данных

Ограничения

Отношения

Описание

ST_ID

CHAR(4)

Not Null

PK

Идентификатор типа статуса.

ST_NAME

CHAR(10)

Not Null

 

Значение статуса. Пример: "Активен", "Выполнен", "Ожидает", «Отменен» и "Отправлен».

Содержимое таблицы STATUS_TYPE показано ниже для читаемости, поскольку значения ST_ID используются в других местах спецификации.

ST_ID

ST_NAME

ACTV

Active/Активен

CMPT

Completed/Выполнен

CNCL

Canceled/Отменен

PNDG

Pending/Ожидает

SBMT

Submitted/Отправлен

2.2.7.3 TAXRATE

Эта таблица содержит информацию о налоговых ставках.

Префикс таблицы: TX_

Название колонки

Тип данных

Ограничения

Отношения

Описание

TX_ID

CHAR(4)

Not Null

PK

Идентификатор налоговых ставок. Формат – две буквы и цифра, следующая за ними.: ‘US1’, ‘CA1’. Примеры

TX_NAME

CHAR(50)

Not Null

 

Название налоговой ставки.

TX_RATE

NUM(6,5)

Not Null

>= 0

 

Значение налоговой ставки между 0.00000 и 1.00000, включительно.

2.2.7.4 ZIP_CODE

Таблица содержит zip и почтовые коды, города и отделения, расположенные в них.

Префикс таблицы: ZC_

Название колонки

Тип данных

Ограничения

Отношения

Описание

ZC_CODE

CHAR(12)

Not Null

PK

Почтовый код.

ZC_TOWN

CHAR(80)

Not Null

 

Город.

ZC_DIV

CHAR(80)

Not Null

 

Штат или провинция, или графство, или область.

2.3 Правила реализации

2.3.1 Физическая кластеризация записей в пределах базы данных разрешена.

2.3.2 Все таблицы, необходимые TPC-E, должны иметь корректно масштабированное количество рядов, как определено требованиями к наполнению базы данных, приведенных в Пункте 2.6.

2.3.3 Разделение таблиц

2.3.3.1 Допустимо горизонтальное разделение таблиц. Группы рядов из таблицы могут быть назначены в разные файлы, диски или области. В случае использования в реализации, детали этого разделения должны быть внесены в Отчет.

2.3.3.2 Допустимо вертикальное разделение таблиц. Группы колонок одной таблицы могут быть назначены файлам, дискам или областям, отличным от тех, что хранят остальные колонки этой таблицы. В случае использования в реализации, детали такого разделения должны быть внесены в Отчет (см. Пункт 2.5 для информации по ограничениям).

2.3.3.3 Назначение данных в различные файлы, диски, области, не основанное на знании логической структуры данных (например, знание границ рядов и колонок), не считается разделением. Например, распределение по нескольким дискам файла, который хранит одну или более логических таблиц, не считается разделением до тех пор, пока это распределение оборудованием или программным обеспечением без ведома о логических структурах, хранимых в файле.

2.3.4 Репликация допустима для всех таблиц. Все копии реплицированных таблиц TPC-E должны соответствовать требованиям ACID, как определено в Пункте 7.2, 7.3 и 7.4. В случае использования в реализации, детали такой репликации должны быть включены в Отчет.

Примечание: Только одна копия реплицированной таблицы TPC-E должна соответствовать требованиям Устойчивости, указанным в Пункте 7.5.

2.3.5 Колонки могут быть добавлены и/или дублированы из одной таблицы TPC-E в другую до тех пор, пока эти изменения не улучшают производительность.

2.3.6 Каждая колонка TPC-E, как описано определением таблицы в Пункте 2.2, должна быть логически отдельно и независимо доступна СУБД. Например, ADDRESS.AD_LINE1 и ADDRESS.AD_LINE2 не могут быть реализованы как два части одной колонки ADDRESS.AD_LINE.

2.3.7 Каждая колонка TPC-E, как описано определением таблицы в Пункте 2.2, должна быть доступна СУБД как одна колонка. Например, колонка NEWS_ITEMS.NI_ITEM не может быть реализована как две отдельные колонки NEWS_ITEMS.NI_ITEM1 и NEWS_ITEMS.NI_ITEM2..

2.3.8 Основной ключ каждой таблицы не должен напрямую представлять адреса ряда на физическом диске или их смещения друг от друга. Приложениям не позволяется обращаться к рядам, используя относительную адресацию, поскольку это является всего лишь смещением от начала области хранения. Это не исключает схемы хеширования или иные способы организации файлов, которым требуется добавление, удаление и изменение записей в ходе обычного процесса обработки.

Примечание 1: целью данного Пункта является, чтобы Прикладная программа (см. Пункт 1.2), выполняющая транзакцию или отправляющая запрос транзакции, использовала не физические, а логические идентификаторы для всех обращений, и не содержала какого либо кода, написанного пользователем, который переводит или служит переводу логического ключа в местоположение внутри таблицы ассоциированного ряда или рядов. Например, для Приложения является нелигитимным построение «таблицы перевода» из логических в физические адреса и использование её для увеличениея производительности.

Примечание 2: Внутренние записи или указатели, например, Tuple ID или курсоры, могут быть использованы в следующих условиях. Для каждой исполняемой транзакции, начальный доступ к любому ряду должен быть осуществлен через колонку(и), указанные в Профиле транзакции, и никакие другие колонки. Начальный доступ включает ввод, удаление, изъятие и обновление любого ряда.

2.3.9 Несмотря на то, что операции ввода и удаления выполняются не во всех таблицах, система не должна быть настроена для получения преимущества из этого факта во время теста. Хотя операции ввода врожденно ограничены размером доступного пространство хранилища настроенной системы, не должно быть ограничения на ввод в любую из таблиц, не являющихся Растущими, минимального количества рядов, равного до 5% размера таблицы.

Примечание: Является требованием, что объем для хранения дополнительных 5% размерности таблицы (и соответствующего роста в связанных с этим Определенных пользователем Объектов, таких как индексы) должен быть настроен для Выполнения теста и оценен (как Фиксированное пространство из Пункта 6.6.6.2) соответственно. Для систем, где пространство настраивается и динамически выделяется позже, это пространство должно рассматриваться как выделенное и включено в Фиксированное пространство во время оценки.

2.3.10 Реализация объекта BLOB должна соответствовать следующим свойствам:

  • Изменения данных в объекте должно производиться под тем же транзакционным контролем, что и изменения объектов любого другого типа.

  • Восстановление после Катастрофического сбоя должно быть способно восстановить все объекты, включая BLOB, до того же момента времени.

  • Объект и любые связанные ссылки на него должны рассматриваться как единица с точки зрения атомарности.

Примечание: Реализация BLOB в таблице NEWS_ITEM может быть выполнена посредством либо конкретного включения BLOB в таблицу, или использование ссылки на BLOB объект, хранящийся где либо еще в Тестируемой системе.

2.3.11 Объекты, определенные пользователем.

Объект, определенный пользователем. User-Defined Object


2.3.11.1 На Объекты, определенные пользователем, не существует ограничений, в случае если:

  • выполнены все правила реализации Транзакций и Фреймов из Пункта 3.2

  • выполнены все свойства ACID из Пункта 7.

2.4 Правила целостности

2.4.1 В любом Подтвержденном состоянии значения Основных ключей в пределах каждой таблицы должны быть уникальны. Например, в случае горизонтально разделенной таблицы, Основные ключи рядов во всех разделах должны быть уникальны.

2.4.2 В любом Подтвержденном состоянии в базе данных не должно присутствовать ни одного неполноценно сформированного ряда. Неполноценно сформированный ряд возникает, когда значение любой колонки не может быть определено. Например, в случае вертикально разделенной таблицы, ряд должен присутствовать во всех разделах.

2.4.3 Для всех отношений Внешних ключей (FK) и Основных ключей (PK), определенных между талицами ТРС-Е, базой данных должна соблюдаться Целостность ссылок (RI).

Примечание: Целостность ссылок предназначена для сохранения связей данных между таблицами путем ограничения действий, выполняемых на Основном и Вторичном ключе в таблице.

Целостность ссылок предотвращает удаление рядов, содержащих Основные ключи, на которые ссылаются Внешние ключи в других таблицах базы данных без одновременного удаления рядов с соответствующими/ссылающимися Внешними ключами. Целостность ссылок также предотвращает добавление рядов, содержащих Внешние ключи, ссылающихся на Основные ключи, ряды которых уже не существуют в базе данных. Целостность ссылок не позволяет вносить изменения в Основные ключи в рядах, на которые ссылаются Внешние ключи в других таблицах базы данных без одновременного изменения соответствующего/ссылающегося Внешнего ключа для соответствия новому Основному ключу.

2.5 Требования прозрачности доступа к данным

Прозрачность доступа к данным это свойство системы, которое удаляет из Прикладной Программы любую информацию о нахождении и механизмах доступа к распределенным данным. Реализация, использующая вертикальное и/или горизонтальное разделение должно соответствовать требованиям прозрачности доступа к данным, описанным здесь.
Ни одна конечная серия тестов не может доказать того, что система поддерживает полную прозрачность доступа к данным. Требования, изложенные ниже, описывают минимальные соответствия, необходимые для установления того, что система предоставляет прозрачный доступ к данным.

Примечание: Целью данного пункта является установление требования, что доступ к физически и/или логически разделенным данным предоставляется непосредственно и прозрачно службами, реализованными коммерчески доступными уровнями, лежащими ниже Прикладной программы, такими как менеджер данных/файлов (СУБД), Операционная система, оборудование или любая их комбинация.

2.5.1 Каждая из таблиц, описанных в Пункте Ошибка! Источник ссылки не найден., (и любые дополнительные таблицы, используемые в реализации Транзакций) должна быть идентифицируема по её названию, которое не имеет отношения к разделению таблиц. Все операции по работе с данными в Прикладной программе (см. Пункт 1.2) должны использовать только эти названия.

2.5.2 Система должна предотвращать любые операции обработки данных, использующие названия, описанные в Пункте 2.5.1, которые приведут к нарушению правил целостности (см. Пункт 2.4). Например: система должна предотвратить подтверждение не-TPC-E приложением ввода ряда в вертикально разделенную таблицу если только не вводятся все разделы этого ряда.

2.5.3 Используя названия, соответствующие написанному в Пункте 2.5.1, любое случайное не-TPC-E приложение должно быть способно обрабатывать любой набор рядов или колонок:

  • Определяя любое случайное состояние, поддерживаемое СУБД.

  • Используя названия, описанные в Пункте 2.5.1 и используя одну и те же семантику и синтаксис управления данными для всех таблиц.

Например, семантика и синтаксис, используемые для обновления случайного набора рядов в любой таблице также должны быть используемы для обновления другого случайного набора рядов в любой другой таблице.

Примечание: целью этого является использование Прикладной программой TPC-E для управления данными в базе данных механизмов общего назначения.

2.6 Размер базы данных и размерность таблиц TPC-E

Загрузка транзакций, созданная для обслуживания счетов клиентов и взаимодействия с финансовыми рынками управляет производительностью контрольного теста TPC-E. Для увеличения производительности должно быть сконфигурировано больше клиентов и связанных с ними данных. Размерность таблицы CUSTOMER это основа размера и масштабности базы данных TPC-E. Размерность таблицы CUSTOMER устанавливается, основываясь на требованиях к оценке производительности транзакций, определенных в Пункте 6.6.7.

Сконфигурированные клиенты – количество клиентов (с соответствующими рядами в ассоциированных таблицах TPC-E), сконфигурированных во время создания базы данных.

Тест TPC-E включает три типа требований к размерам его таблиц:

  • Фиксированные таблицы: Эти таблицы всегда содержат неизменное количество рядов вне зависимости от размера базы данных и выполнения транзакций. К примеру, таблица TRADE_TYPE содержит пять рядов.

  • Масштабируемые таблицы: каждая из этих таблиц содержит значения, которые находятся в непрерывной связи со значениями таблицы CUSTOMER. Транзакции могут обновлять содержимое рядов этих таблиц, но размер таблиц остается неизменным.

  • Растущие таблицы: Каждая из этих таблиц изначально имеет определенное количество элементов, постоянно связанных с количеством элементов таблицы CUSTOMER. Однако количество элементов увеличиваются во время исполнения контрольного тестирования со скоростью, пропорциональной скорости исполнения транзакций.

Примечание: таблицы HOLDING и HOLDING_SUMMARY считаются Растущими таблицами. Во время выполнения контрольного теста ряды добавляются и удаляются из таблиц HOLDING и HOLDING_SUMMARY, но средний размер таблиц продолжает расти с незначительной скоростью во время Стабильного состояния. Таблица TRADE_REQUEST также считается Растущей таблицей, даже несмотря на то, что ее средний размер является фиксированным отношением к уровню производительности транзакций, а не к размеруности таблицы CUSTOMER.

2.6.1 Требования к размерам изначальной базы данных

2.6.1.1 Тестовая база данных должна быть изначально наполнена данными, сгенерированными EGenLoader. По умолчанию, предоставляемый TPC EGenLoader создает верное число рядов для каждой таблицы. Тестовая база данных должна быть построена с использованием изначального наполнения базы данных и Объектов, определенных пользователем, существующих непосредственно перед первым Выполнением теста.

Изначальное наполнение базы данных базируется на количестве клиентов. Организатор контрольного теста выбирает размерность таблицы CUSTOMER, отталкиваясь от желательной производительности транзакций. В Пункте 0 дается определение Номинальной производительности, которая может быть предоставлена для заданного числа рядов таблицы CUSTOMER. Минимальное число рядов для таблицы CUSTOMER равно 5000. Размер таблицы CUSTOMER может быть увеличен приращениями в 1000 клиентов. Группа из 1000 клиентов называется Единицей обработки.

2.6.1.2 Растущие таблицы заполняются изначальным набором рядов, достаточным для поддержания функций всех транзакций тестирования.

2.6.1.3 Масштабирующий коэффициент – это число рядов клиентов на одну транзакцию-в-секунду. Масштабирующий коэффициент для Номинальной производительности равен 500.

Начальные дни торгов (Initial Trade Days (ITD)) – это Рабочие дни, использующиеся для наполнения базы данных. Это наполнение производится торговыми данными, генерируемыми SUT, работающей на Номинальной производительности заданное количество Рабочих дней. Количество Начальных дней торгов равно 300.

2.6.1.4 Количество сконфигурированных Еиниц обработки должно быть равно количеству Единиц обработки, к которым был осуществлен непосредственный доступ во время Выполнения теста.

2.6.1.5 Нижеприведенные переменные используются для определения размерностей таблиц TPC-E:

Переменная

Таблица

Описание

customers

CUSTOMER

Количество рядов в таблице CUSTOMER.

accounts

CUSTOMER_ACCOUNT

Количество рядов в таблице CUSTOMER_ACCOUNT.  Равно пятикратному значению количества клиентов.

trades

TRADE

Количество рядов торгов в таблице TRADE. Количество торгов равно 17280 * (customers)  (300 дней изначального наполнения на SF = 500).

settled

SETTLEMENT

Количество установленных рядов торгов в таблице SETTLEMENT.  Установленное число равно числу торгов..

companies

COMPANY

Количество рядов в таблице COMPANY table. 500 компаний на Единицу обработки из 1000 клиентов.

securities

SECURITY

Количество рядов в таблице SECURITY . 685 ценныз бумаг на Единицу обработки в 1000 пользователей.

2.6.1.6 Для определения размерностей Растущих и Масштабируемых таблиц EGenLoader используются следующие правила. Пакет EGen использует генераторы случайный числе для установки числа рядов информации об отношениях, как то количество ценных бумаг на счет, и, как следствие, размерность некоторых таблиц TPC-E может быть оценена лишь приблизительно.

Таблица

Используемая переменная

Правило

ACCOUNT_PERMISSION

accounts

60%  имеют в качестве исполнителя  только клиента
38% имеют исполнителя-клиента и 1 дополнительного
2%  имеют исполнителя-клиента и 2 дополнительных
Среднее равно ~1.42 * accounts

ADDRESS

customers

companies + EXCHANGE(4) + customers

BROKER

customers

0.01 * customers (или 1 брокер на 100 customers)

CASH_TRANSACTION

settled

~0.92 * settled (84% покупок и  100% продаж проводятся в наличных средствах)

COMPANY

customers

500 * (customers/1000)

COMPANY_COMPETITOR

companies

3 * companies

CUSTOMER_ACCOUNT

cusетtomers

5 * customers

CUSTOMER_TAXRATE

customers

2 * customers

DAILY_MARKET

securities

securities * 1,305 (5  лет 5-дневных рабочих недель с двумя високосными годами)

FINANCIAL

companies

companies * 20 кварталов (5 лет)

HOLDING

settled

~0.051 * settled (принимает ITD = 300 и SF = 500)

HOLDING_HISTORY

settled

~1.340 * settled (принимает ITD = 300 и SF = 500)

HOLDING_SUMMARY

accounts

~9.956 * accounts (принимает  ITD = 300 и SF = 500)

LAST_TRADE

securities

1 * securities

NEWS_ITEM

companies

2 * companies

NEWS_XREF

companies

2 * companies

SECURITY

customers

685 * (customers/1000)

SETTLEMENT

settled

1 * settled

TRADE

customers

17280 * customers = ((ITD * 8 *  3600) / SF) * customers

TRADE_HISTORY

settled

~((2 ряда на каждые торги по рынку) * 0.6)
    +
  ((3 rяда на каждые торги по пределеу) * 0.4)
Среднее равно (2.4 * settled)

TRADE_REQUEST

 

0

WATCH_LIST

customers

У каждого клиента есть один лист наблюдения (1 * customers)

WATCH_ITEM

customers

Среднее=100 позиций на каждые (количество листов наблюдеия * customers)

2.6.1.7 Следующий список содержит размерности Фиксированных таблиц.

Фиксированные таблицы

Размерность

Примечания

CHARGE

15

5 типов торгов * 3 уровня клиентов

COMMISSION_RATE

240

4 ставки * 4 биржи * 5 типов торгов * 3 уровня клиентов

EXCHANGE

4

4 биржи

INDUSTRY

102

102 иднустрии

SECTOR

12

12 секторов

STATUS_TYPE

5

5 типов статусов

TAXRATE

320

320 налоговых ставок

TRADE_TYPE

5

5 торговых типов

ZIP_CODE

14,741

14,741 zip кодов

2.6.1.8 Следующий список содержит размерности масштабируемых таблиц.

Масштабируемые таблицы

Размерность

Формула размерности

CUSTOMER

5,000

Масштабируется в зависимости от скорости транзакций.

CUSTOMER_TAXRATE

10,000

customers * 2

CUSTOMER_ACCOUNT

25,000

accounts = (5 * customers)

ACCOUNT_PERMISSION

~35,500

accounts * (В среднем ~1.42 разрешения на счет) 

ADDRESS

7,504

companies + EXCHANGE (4) + customers

BROKER

50

customers * 0.01

COMPANY

2,500

500 * (customers/1000)

COMPANY_COMPETITOR

7,500

companies * 3

DAILY_MARKET

4,469,625

securities * 1,305

FINANCIAL

50,000

companies * 20

LAST_TRADE

3,425

securities * 1

NEWS_ITEM

5,000

companies * 2

NEWS_XREF

5,000

companies * 2

SECURITY

3,425

685 * (customers/1000)

WATCH_LIST

5,000

customers * 1

WATCH_ITEM

~ 500,000

customers *  (В среднем ~100 securities на лист наблюдения)

2.6.1.9 Следующий список отображает изначальную размерность Растущих таблиц.

Растущие таблицы

Размерность

Примечание

CASH_TRANSACTION

~79,488,000

~0.92 * settled (84% покупок и 100% продаж проведены в наличных)

HOLDING

~4,406,400

~0.051 * settled (приняты ITD = 300 и SF = 500)

HOLDING_HISTORY

~115,776,000

~1.340 * settled (приняты ITD = 300 и SF = 500)

HOLDING_SUMMARY

~248,900

~9.956 * accounts

SETTLEMENT

86,400,000

1 * settled

TRADE

86,400,000

((ITD * 8час/день * 3600сек/час * customers) /SF)

TRADE_HISTORY

~207,360,000

~(2.4 * trades)

TRADE_REQUEST

0

0

2.6.2 Требования к размеру базы данных во время Выполнения теста.

2.6.2.1 Следующий список отображает увеличение Растущих таблиц (кроме TRADE_REQUEST), выраженное в количестве рядов в секунду во время Выполнения теста. Скорость роста может упасть после работы в течение большого количества дней.

Название таблицы

Примечание

CASH_TRANSACTION

~0.92 * (customers/SF)

HOLDING

~0.044 * (customers/SF)

HOLDING_HISTORY

~1.343 * (customers/SF)

SETTLEMENT

1 * (customers/SF)

TRADE

1 * (customers/SF)

TRADE_HISTORY

~2.4 * (customers/SF)

Таблица TRADE_REQUEST пуста в момент начала Выполнения теста и поначалу растет во время работы, но вскоре достигает величины, зависящей от текущей производительности, а не длительности Выполнения теста. Приближенный размер таблицы TRADE_REQUEST во время Стабильного состояния Выполнения теста может быть оценен как ~60 рядов * Измеренную производительность (см. Пункт 0). Значительные изменения этой величины возможны как во время работы, так и в завершении Выполнения теста.

2.6.2.2 Тестовая база данных должна быть создана для обеспечения Отчетной производительности в течение Рабочего дня. Это означает, что в тестовой базе данных должно быть достаточно дополнительного свободного места для хранения данных, индексов и журналов за полный рабочий день. Это не включает в себя выполнения на базе данных любой операции, которая не возникает во время Интервала измерения.