Системы управления базами данных

Автор работы: Пользователь скрыл имя, 16 Декабря 2013 в 15:21, реферат

Описание работы

Системы управления базами данных (СУБД) играют исключительную роль в организации современных промышленных, инструментальных и исследовательских информационных систем. Тематика СУБД поистине безгранична.

Файлы: 1 файл

Системы управления БД.doc

— 254.50 Кб (Скачать файл)

В рамках поставленной задачи основными объектами являются:

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

Описание интерфейса классов

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

Класс приложения maxx:

содержит обработчик события Open. При этом создается объект типа “Транзакция” sqlca, с помощью которого будет производится доступ к БД средствами ODBC. В обработчике инициализируются глобальные переменные и создается главное окно – w_main.

Классы окон данных.

1) flats_of_month_h_num:

содержит информацию о всех квартирах дома за указанный месяц. При получении информации серверу БД передаются 2 параметра – номер дома и месяц, которые присутствуют в выражении SELECT. В описываемом окне данных поля, зависящие от месяца, являются вычислимыми, т.к. они не присутствуют физически в БД, т.к. в противном случае последняя не удовлетворяла бы второй нормальной форме.

2) house_of_month_h_num:

содержит информацию о доме, не зависящую от месяца.

3) pribors_1:

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

4) report_house:

окно отчета о расходе  энергии для заданных домов в  указанном диапазоне месяцев. Информация в окне группируется по полям house_c_num и house_v_month. Аргументами для получения данных являются диапазоны домов и месяцев.

5) pribors_1:

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

6) temp_edit:

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

Классы функций.

1) formhouselist:

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

2) getdaycount:

возвращает количество дней в указанном месяце.

Класс меню menu_1:

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

Класс проекта maxx:

  • содержит описание способа построения исполняемого файла, являющегося реализацией класса приложения maxx. Библиотека, содержащая описания классов программы, может включаться в формируемый EXE-файл, либо генерироваться, как библиотека динамической компоновки. При этом возможны следующие варианты, в зависимости от ее содержимого:
  • в ней содержится машинный код (расширение DLL);
  • в ней содержатся макроопределения используемых объектов (расширение PBD).
  • В объекте “проект” также перечисляются файлы с описанием используемых ресурсов.

Классы пользовательских объектов.

1) u_closebutton:

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

2) u_editmask_g0:

маскируемое окно ввода, которое воспринимает только большие  нуля целые значения. При нарушении  этого правила, что проверяется  в при обработке события LoseFocus, выдается сообщение об ошибке и фокус  ввода отстается у окна ввода.

3) u_waitwindow:

представляет собой  пользовательский визуальный объект, состоящий из индикатора прогресса, рамки, текстовой строки подсказки  и строки состояния процесса. Объект служит для отображения информации о протекании какого-либо потенциально продолжительного процесса.

Классы окон.

1) w_db_struct:

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

2) w_flatpribors:

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

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

Окно использует объект DataWindow temp_1. При модификации информации в нем производится пересчет количества энергии в кВ/ч, потребляемого квартирой за сутки.

3) w_flats:

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

Модификация информация о доме производится в DataWindow house_of_month_h_num (постоянная информация о доме) и  пользовательском элементе управления u_editmask_g0 (информация, зависящая от месяца – тариф).

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

Из этого окна также  осуществляется вызов окна w_flatpribors для редактирования списка приборов квартиры.

4) w_main:

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

5) w_params:

окно модификации параметров, принимаемых по умолчанию (в данной версии программы это – тариф  оплаты одного кВ/ч).

6) w_pribors_edit:

окно редактирования списка приборов, которые могут быть заданы в качестве потребителей электроэнергии. При удалении прибора либо изменении мощности уже существующего происходит модификация информация в БД: при выходе из окна выполняется сравнение текущих данных о мощности с хранимыми в БД. Если для какой-либо записи обнаружено несоответствие, то происходит изменение данных о количестве потребляемой энергии квартирой и перерасчет суммы для дома путем вызова хранимой процедуры GetHouseSum.

7) w_report_house:

  • окно просмотра отчета о суммарных материальных затратах, которые несут жильцы всех квартир дома за месяц. Отчет можно просматривать в нескольких формах:
  • информация об одном доме и одном месяце;
  • информация о всех домах и одном месяце;
  • информация о всех домах и всех месяцах;
  • информация об одном доме и всех месяцах.

Описание программы

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

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

Описание главного меню:

1) “Программа”

а) “Структура БД” –  просмотр информации о структуре БД (содержимого ее таблиц и связей между ними);

б) “Выход” – завершение работы с программой;

2) “Данные”

а) “Дома” – работа с  информацией о домах. При этом появляется диалоговое окно, содержащее элементы управления для задания критериев отбора данных, и, непосредственно, сами данные.

Критерии отбора –  это номер дома и месяц. Эти  параметры задаются путем выбора значений из списков в верхней  части экрана. При изменении текущих  дома или месяца происходит автоматическое сохранение предыдущих данных в БД, после чего обновляется содержимое некоторых элементов управления.

При изменении номеров  домов и квартир в случае, если такой номер уже имеется в  БД, пользователь извещается об этом, и  ему предлагается изменить значение поля.

При изменении данных, влияющих на расход электроэнергии за месяц, происходит перерасчет вычислимых полей в окне данных с информацией по квартирам дома.

Операции над  домами:

  • модификация. При изменении номера дома происходит немедленное автоматическое сохранение данных и обновление списка домов;
  • удаление. При этом у пользователя запрашивается подтверждение на выполнение этой операции;
  • добавление. При этом месяный тариф устанавливается равным значению по умолчанию (меню “Вид”->“Параметры”). Активным становится окно данных для ввода постоянной информации о доме. При выходе из него, т.е. когда оно теряет фокус ввода, производится запрос на сохранение введенных данных, т.е. добавление записей в соответствующие таблицы.

Операции над  квартирами:

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

Рядом с каждой записью  с информацией по квартире находится  кнопка “Приборы”, нажатие которой  вызывает диалог редактирования приборов данной квартиры:

  • в верхней его части отображаются номера квартиры и дома, а также месяц, для которого приводятся данные. В данном окне изменять можно только текущий месяц;
  • при изменении месяца или выходе из диалога выводится запрос для подтверждения сохранения данных (если они были изменены);
  • при модификации данных по приборам автоматически обновляется поле “кВ/ч в день”, отображающее суточное потребление энергии квартирой;
  • кнопка “Копировать” осуществляет копирование информации о приборах в квартире для текущего месяца во все остальные месяцы года;
  • кнопка “Undo” отменяет все изменения, сделанные в списке приборов текущего месяца. “Приборы” – работа со списком приборов, которые могут иметься в квартирах. Каждый прибор идентифицируется своим именем и потребляемой мощностью.

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

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

3) “Отчет”

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

Отображаемые данные:

информация о доме (его номер, число квартир и  жильцов);

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

4) “Вид”

а) “Toolbar” – управление видимостью панели инструментов;

б) “Параметры” –  изменение месячного тарифа, устанавливаемого по умолчанию при добавлении нового дома.

Программа и методика испытаний

Отладка программы

Простая истина состоит  в том, что человек несовершенен, поэтому все мы допускаем ошибки, что является совершенно нормальным явлением как в повседневной жизни, так и в программировании. Редко кому удается с первого раза написать программу без ошибок. Их появление в программе заставляет программиста многократно проверять все с самого начала. Совокупность действий по обнаружению и устранению ошибок в программировании называется отладкой.

Процесс отладки в  общем случае можно разделить  на четыре этапа:

Обнаружение ошибки

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

Поиск ее местонахождения

Этот этап иногда является самым трудным. Он заключается в том, чтобы найти место в программе, где находится ошибка. Просто невозможно держать в голове всю программу сразу ( если эта программа не очень маленькая ). Лучший подход – это "разделяй и властвуй", т.е.разбивать программу на части и отлаживать их отдельно друг от друга.

Информация о работе Системы управления базами данных