Смекни!
smekni.com

Автоматизированное рабочее место оператора валютно-обменных операций в режиме off-line (стр. 7 из 13)

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

Существует несколько так называемых нормальных форм (НФ) баз данных. Каждая из нормальных форм получается последовательно из предыдущей нормальной формы. На практике применяются в основном первые три из них.

Первая нормальная форма требует, чтобы каждое поле таблицы БД было не делимым, не содержало повторяющихся групп. Не делимость поля означает, что каждое поле не должно делится на несколько полей. А повторяющиеся группы указывают на то, чтобы поля не содержали одинаковые по смыслу значения.[8] Наш список полей удовлетворяет этому нормальному закону, кроме поля ФИО. Их можно разделить на три поля соответственного Фамилия, Имя и Отчество, но для задачи, которая поставлена перед нами, это не требуется, поэтому мы считаем эти поля не делимыми.

Вторая нормальная форма, требует: все поля таблицы зависели от первичного ключа, то есть первичный ключ однозначно определен и является не избыточным; те поля, которые зависят от части первичного ключа, должны быть выделены в отдельные таблицы.[9] Определим поля, входящие в первичный ключ: № мемориального ордера, № операции, № справки, № трудового договора, идентификатор валюты, код операции, код, № квитанции, № справки на экспертизу, ID комиссии. Установим, какие поля зависят только от части ключа и поместим их в отдельную таблицу.

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

Нормализованной БД называется база, в которой выполняется как минимум три условия. Данные поля таблиц удовлетворяют этому закону. В результате нормализации получаться следующие таблицы:

Таблица «operator» содержит данные о сотрудниках банка, то есть об операторе валютно-обменных операций. Ключевое поле: nomer_tr_dog, содержит информацию о номере трудового договора.

Таблица 2.3

Имя поля Тип и размер поля Описание поля
nomer_tr_dog INTEGER информация о номере трудового договора
FIO VARCHAR(255) фамилия, имя, отчество сотрудника банка.
Nomer_pas INTEGER номер паспорта

Таблица «reestr», содержит данные реестра валютно-обменных операций. Первичным ключом в данной таблице является nomer_oper. Это поле содержит информацию о номере операции.

Таблица 2.4

Имя поля Тип и размер поля Описание поля
nomer_oper INTEGER информация о номере операции
date DATE дата совершенной операции
Kod_vid_oper INTEGER код вида операции
ID_kyrs INTEGER Код курса
Kod_val_pr INTEGER код валюты принятой
Cymma_val_pr MONEY сумма валюты принятой
ID INTEGER код комиссии, взимаемая с клиента за совершение операции, обычно она входит в отклонение от курса
Doxod MONEY подоходный налог с совершенной операции
Kod_val_v INTEGER код валюты выданной
Cymma_val_v MONEY сумма валюты выданной
nomer_tr_dog INTEGER информация о номере трудового договора

Таблица «mem_or» содержит данные необходимые для обоснования бухгалтерской проводки. Ключевым полем является: nom_mem_or.

Таблица 2.5

Имя поля Тип и размер поля Описание поля
nom_mem_or INTEGER Номер мемориального ордера.
Vid_oper VARCHAR(100) Вид операции.
nomer_oper INTEGER информация о номере операции
Dt_sch INTEGER Дебет счета.
Kt_sch INTEGER Кредит счета.
Kod_val INTEGER Код валюты.
Cymma MONEY Сумма.
Country VARCHAR(50) Шифр страны.
Crok_val DATE Срок валютирования.
Ocnovanie VARCHAR(255) Содержание и основание записи.

Таблица «spr_oper», содержит данные выданных клиентам справок о проведении операции с наличной валютой и чеками. Ключевым полем таблицы является поле nom_spr.

Таблица 2.6

Имя поля Тип и размер поля Описание поля
nom_spr INTEGER Номер справки о проведении операции с наличной валютой и чеками.
Date DATE Дата проведения.
Time DATE Время проведения операции.
ID_kl INTEGER Идентификатор клиента.
Nomer_oper INTEGER Код вида операции.
Kyrs INTEGER Курс покупки продажи валюты (кросс-курс).
Kod_val_pr INTEGER Код валюты принятой.
Cymma_pr MONEY Сумма валюты принятой.
Name_val VARCHAR(100) Наименование валюты.
Kod_val_v INTEGER Код валюты выданной.
Cymma_val_v MONEY Сумма валюты выданной.
Name_val VARCHAR(100) Наименование валюты.
nomer_tr_dog INTEGER Информация о номере трудового договора.

Таблица «klient», данная таблица содержит данные о клиенте. Ключевым полем является поле ID_kl, является идентификатором клиента.

Таблица 2.7

Имя поля Тип и размер поля Описание поля
ID_kl INTEGER Идентификатор клиента.
FIO VARCHAR(100) Фамилия, имя, отчество клиента.
Country_Gr VARCHAR(100) Страна Гражданство
ID_doc INTEGER Идентификатор типа документа.
Ceria_doc INTEGER Серия документа.
Nomer_doc INTEGER Номер документа.
Kem_v VARCHAR(255) Кем выдан документ.
Date_v INTEGER Дата выдачи.
Adres VARCHAR(255) Адрес клиента.

Таблица «oper», содержит информацию о видах и кодах видов операций, является справочником. Ключевое поле: Kod_vid_oper.

Таблица 2.8

Имя поля Тип и размер поля Описание поля
Kod_vid_oper INTEGER Код вида операции.
Name_oper VARCHAR(100) Наименование операции.

Таблица «Doc», содержит информацию о видах документов удостоверяющих личность, то есть является справочником. Ключевым полем является: ID_doc.

Таблица 2.9

Имя поля Тип и размер поля Описание поля
ID_doc INTEGER Идентификатор типа документа.
Doc VARCHAR(100) Документ удостоверяющий личность (тип документа).

Таблица «kl_val» - общероссийский классификатор валюты. Ключевое поле: Kod_val.

Таблица 2.10

Имя поля Тип и размер поля Описание поля
Kod_val INTEGER Код валюты.
Kod_val_b VARCHAR(10) Код валюты буквенный.
Name_val VARCHAR(100) Наименование валюты.
Country_v VARCHAR(100) Краткое наименование стран и территорий.

Таблица «kyrs», содердит информацию о курсах покупки, продажи валюты (кросс-курсы). Ключевым полем таблицы является: Kod_val.


Таблица 2.11

Имя поля Тип и размер поля Описание поля
ID_kyrs INTEGER Код курса
Kod_val INTEGER Код валюты.
Kod_val_b VARCHAR(10) Код валюты буквенный.
Status_Kyrs INTEGER Данный статус показывает курс покупки или курс продажи,определяется по коду операции.
Kyrs_prod INTEGER Курс продажи валюты.
Za_ed INTEGER За единицу.
Time DATE Время установки.
Date DATE Дата установки.
Status_naz INTEGER Статус принадлежности курса. Если равен 0 – то курс ЦБ, 1 – то банку, которому принадлежит обменный пункт.

Таблица «spr_exsp», содержит данные выданных клиентам справок о приеме на экспертизу. Ключевое поле: nomer_spr.

Таблица 2.12

Имя поля Тип и размер поля Описание поля
nomer_spr_ex INTEGER Номер справки о приеме на экспертизу.
Date DATE Дата выдачи справки о приеме на экспертизу.
ID_kl INTEGER Идентификатор клиента.
Name_val VARCHAR(100) Наименование валюты.
Country_v VARCHAR(100) Краткое наименование стран и территорий эмитентов.
nominal INTEGER Номинал денежного знака.
Year_v DATE Год образца (выпуска).
Ser_nomer INTEGER Серийный номер.
Dop_rec VARCHAR(255) Дополнительные реквизиты.
nomer_tr_dog INTEGER Информация о номере трудового договора.

Таблица «kvit», содержит данные выданных клиентам квитанций о приеме на инкассо. Ключевое поле: nomer_kv.


Таблица 2.13

Имя поля Тип и размер поля Описание поля
nomer_kv INTEGER Номер квитанции.
Date DATE Дата выдачи справки о приеме на экспертизу.
ID_kl INTEGER Идентификатор клиента.
Dop_rec VARCHAR(255) Дополнительные реквизиты.
nomer_tr_dog INTEGER Информация о номере трудового договора.

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