2.4 Проектирование структуры базы данных
Базы данных (БД) – хранилище структурированных данных и методы доступа к ним, при этом данные должны быть непротиворечивы, целостны и минимально избыточны. Это особым образом организованный набор значений данных, а схема БД определяет, как именно организованы данные в БД. Можно сказать, что БД создаются для хранения и доступа к данным, содержащим сведения о некоторой предметной области, т.е. всякая БД представляет собой систему данных о предметной области.
На этом этапе анализируется имеющаяся информация с целью определить набор таблиц и их полей. Проектирование базы данных заключается в определении состава полей ее таблицы и связей между таблицами. От того, насколько тщательно проведен анализ и насколько грамотно спроектирована БД, в существенной мере зависит эффективность будущей программы и ее полезность для пользователя. Для того, чтобы создать БД, ее нужно нормализовать.
Предметная область, которая исследуется это валютно-обменные операции. В результате выявлены следующие сущности: оператор валютно-обменных операций и денежные единицы, которые непосредственно покупаем либо продаем (обмениваем).
В процессе разработки структуры базы данных может возникнуть избыточность информации – это повторение (дублирование) данных, содержащихся в базе данных. В таблице с избыточными данными содержится много повторяющихся данных в различных записях. Для избавления от избыточности можно разбить одну большую таблицу на несколько маленьких. Такой процесс разбиения таблицы называется нормализацией базы данных. Т.е. нормализация – это процесс устранения избыточности данных.
Существует несколько так называемых нормальных форм (НФ) баз данных. Каждая из нормальных форм получается последовательно из предыдущей нормальной формы. На практике применяются в основном первые три из них.
Первая нормальная форма требует, чтобы каждое поле таблицы БД было не делимым, не содержало повторяющихся групп. Не делимость поля означает, что каждое поле не должно делится на несколько полей. А повторяющиеся группы указывают на то, чтобы поля не содержали одинаковые по смыслу значения.[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 | Информация о номере трудового договора. |
Таблицы связаны между собой типом связи один-ко-многим через ключевые поля. Общий вид базы данных представлен на схеме:
Рис. 2.15 Схема базы данных.
... западных странах является именно необходимость замены уже имеющегося оборудования для обслуживания карт старых типов. 2. Анализ системы расчетов пластиковыми карточками Сбербанка РФ 2.1 Общая характеристика Ставропольского банка Сбербанка РФСтавропольский банк Сбербанка РФ (далее - банк) – крупнейшее банковское учреждение на Северном Кавказе и один из крупнейших в системе Сберегательного банка ...
... цены на аренду мест под терминалы, то компаниям придется сокращать число терминалов, расположенных в наименее рентабельных точках», - пояснил г-н Деев[14]. 4 Перспективы кассовых операций коммерческих банков 4.1 Динамика кассы российских банков В таблицах 4.1 и 4.2 представлена структура пассивов кредитных организаций в динамике в разрезе основных видов привлеченных средств: остатков на ...
... , практически, не используются. Проблема информатизации Минторга может быть решена путем создания Автоматизированной Информационной системы Министерства Торговли РФ (АИС МТ РФ) в соответствии с настоящим Техническим предложением. ГЛАВА 2. МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ КОМПЛЕКСА ЗАДАЧ "СИСТЕМА ДОКУМЕНТООБОРОТА УЧЕРЕЖДЕНИЯ”. функции поиска и архивации 2.1. Постановка задачи и её спецификация ...
... Рисунок 10 - Количество банковских пластиковых карточек в обращении по состоянию на 1 июля 2009 года За первое полугодие 2009 года на территории Республики Беларусь осуществлено 192 184 053 операции с использованием банковских пластиковых карточек в белорусских рублях на сумму 19 271 591.33 млн. рублей. Удельный вес безналичных операций в общем количестве операций с использованием банковских ...
0 комментариев