Программирование >>  Построение запросов sql 

1 ... 91 92 93 [ 94 ] 95 96 97 ... 101


Приложение А Описание учебной базы данных

Учебная БД представляет собой очень упрощенный пример информационной модели расчетной компоненты расчетно-платежного комплекса Абонент+ , которая используется для информационного обеспечения деятельности газораспределительных организаций и региональных компаний по реализации газа по оказанию населению услуг газоснабжения [3].

Учебная БД состоит из восьми таблиц: пяти таблиц-справочников и трех информационных таблиц.

В учебной БД используются следующие справочники.

1. Справочник улиц, на которых проживают абоненты (таблица Street).

2. Справочник абонентов (таблица Abonent).

3. Справочник услуг газоснабжения, оказываемых абонентам газовой сети (таблица Services).

4. Справочник возможных неисправностей газового оборудования абонентов (таблица Disrepair).

5. Справочник исполнителей заявок, поданных абонентами на ремонт газового оборудования. Исполнителями являются работники ремонтной службы газораспределительной организации, оказываемой абонентам услуги газоснабжения (таблица Executor).

В качестве информационных таблиц учебной БД выделены следующие таблицы.

1. Таблица NachislSumma для хранения информации о размере ежемесячного начисления абонентам за расходуемый газ или оказание других услуг газоснабжения (которые расшифровываются в справочнике услуг газоснабжения).

Начисление за ремонт газового оборудования производится по факту оказания услуг.

2. Таблица PaySumma для хранения величин оплаченных сумм за оказанные услуги газоснабжения. Для каждого факта оплаты по какой-либо услуге газоснабжения указывается оплачиваемый месяц и год. Таким образом, при сопоставлении информации по конкретному абоненту, хранящейся в таблице NachislSumma, можно узнать размер долга или переплаты у данного абонента на указанный месяц.

3. Таблица Request для хранения информации о заявках абонентов на ремонт газового оборудования. Каждая ремонтная заявка характеризуется номером лицевого счета заявившего абонента (расшифровка в справочнике Abonent), определенной неисправностью газового оборудования (расшифровка в справочнике Disrepair), исполнителем ремонтной работы (справочник Executor), датой регистрации заявки, датой выполнения ремонта и признаком погашения (1/0).

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



Назначение полей таблицы Street (справочник улиц):

- StreetCD - уникальный код улицы (первичный ключ таблицы Street);

- StreetNM - название улицы, расшифровывающее код улицы. Назначение полей таблицы Abonent (справочник абонентов):

- AccountCD - номер лицевого счета абонента, уникальным образом идентифицирующий каждого из абонентов (первичный ключ таблицы Abonent);

- StreetCD - код улицы, на которой проживает абонент (внешний ключ, ссылающийся на первичный ключ таблицы Street);

- HouseNo - номер дома, в котором проживает абонент;

- FlatNo - номер квартиры;

- Fio - фамилия, имя и отчество абонента в формате Фамилия И.О. ;

- Phone - номер телефона.

Назначение полей таблицы Services (справочник услуг газоснабжения):

- GazServiceCD - код услуги газоснабжения (первичный ключ таблицы Services);

- GazServiceNM - наименование услуги газоснабжения.

Назначение полей таблицы Disrepair (справочник наименований неисправностей газового оборудования):

- FailureCD - код неисправности газового оборудования (первичный ключ таблицы Disrepair);

- FailureNM - наименование неисправности газового оборудования. Назначение полей таблицы Executor (справочник исполнителей ремонтных

заявок):

- ExecutorCD - уникальный код, идентифицирующий исполнителей ремонтных заявок (первичный ключ таблицы Executor);

- Fio - фамилия, имя и отчество исполнителя в формате Фамилия И.О. . Назначение полей таблицы NachislSumma (хранение сумм ежемесячного

начисления):

- NachislFactCD - уникальный идентификатор факта начисления (первичный ключ таблицы NachislSumma);

- AccountCD - номер лицевого счета абонента, которому было сделано начисление (внешний ключ, ссылающийся на первичный ключ таблицы Abonent);

- GazServiceCD - код услуги газоснабжения, за которую выполнено начисление (внешний ключ, ссылающийся на первичный ключ таблицы Sevices справочника услуг газоснабжения);

- NachislSum - значение начисленной суммы;

- NachislMonth - номер месяца, за который произведено начисление с идентификатором факта начисления, хранящимся в поле NachislFactCD;

- NachislYear - год, за месяц которого выполнено начисление. Назначение полей таблицы PaySumma (хранение оплаченных сумм):



- PayFactCD - уникальный идентификатор факта оплаты абонентом по услуге газоснабжения (первичный ключ таблицы PaySumma);

- AccountCD - номер лицевого счета абонента, оплатившего оказанную ему услугу газоснабжения (внешний ключ, ссылающийся на первичный ключ таблицы Abonent);

- GazServiceCD - код оплаченной услуги газоснабжения (внешний ключ, ссылающийся на первичный ключ справочника услуг газоснабжения Services);

- PaySum - значение оплаченной суммы;

- PayDate - дата оплаты;

- PayMonth - номер оплачиваемого месяца;

- PayYear - оплачиваемый год.

Назначение полей таблицы Request (хранение ремонтных заявок):

- RequestCD - уникальный код ремонтной заявки (первичный ключ таблицы Request);

- AccountCD - номер лицевого счета абонента, подавшего данную ремонтную заявку (внешний ключ, ссылающийся на первичный ключ таблицы Abonent);

- FailureCD - код неисправности газового оборудования, заявленной абонентом в данной ремонтной заявке (внешний ключ, ссылающийся на первичный ключ таблицы Disrepair);

- ExecutorCD - код исполнителя, ответственного за выполнение данной ремонтной заявки (внешний ключ, ссылающийся на первичный ключ таблицы Executor);

- IncomingDate - дата поступления заявки;

- ExecutionDate - дата выполнения заявки;

- Executed - поле логического типа, признак того, погашена заявка или нет. Для поддержания правил ссылочной целостности, реализующих запрет

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

1. TDABONENT.

Триггер запускается после удаления строки в таблице Abonent. Если в таблицах NachislSumma или PaySumma имеются записи с внешним ключом AccountCD, ссылающимся на удаляемую строку таблицы Abonent, то триггер вызывает исключение DelRestrict и операция удаления прерывается.

2. TDSERVICES.

Триггер запускается после удаления строки в таблице Services. Если в таблицах PaySumma или NachislSumma имеются записи с внешним ключом GazServiceCD, ссылающимся на удаляемую строку в таблице Services, то триггер вызывает пользовательское исключение DelRestrict и прерывает выполнение операции. Текст определения описанных триггеров приведен в скрипте по созданию учебной БД (приложение Б).



1 ... 91 92 93 [ 94 ] 95 96 97 ... 101

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика