Реферат: Основные сведения о СУБД
Практически все современные средства разработки используют языки, которые если и не являются чисто объектно-ориентированными, то, по крайней мере, имеют средства для работы с объектами (C++, Pascal, Lisp, Fortran, Basic). Это говорит о том, что сегодня объектно-ориентированное программирование практически вытеснило собой процедурный подход к разработке программ, хотя для решения некоторых специфических задач, как правило, системных, последний все еще применяется.
Основные понятия, использующиеся при описании объектов и связей между ними:
Объект – сущность, являющаяся частью модели реального мира, состоящая из структуры данных и связанных с ней методов ее обработки. Объекты, как правило, образуют иерархию по принципу наследования.
Базовый объект – объект, являющийся “родителем” данного. Это означает, что последний наследует от него его данные и способы их обработки, при необходимости добавляя новые или изменяя существующие.
Дочерний объект – объект, наследующий от базового его свойства и методы.
Свойство – характеристика объекта, определяющая его индивидуальность. Отличия между объектами состоят либо в наличии/отсутствии каких-либо свойств.
Метод – совокупность действий, воздействующих на объект в целом и его свойства в частности.
Сообщение – принятый между объектами способ уведомления о возникновении в них каких-либо событий – ситуаций, следствием которых является измение состояния объекта
Свойства объектно-ориентированного подхода:
- расширяемость – если какой-нибудь объект не устраивает программиста, то он может расширить его, дополнив новыми свойствами или методами, а также изменитьсуществующие методы. При этом не надо модифицировать исходный текст библиотек, в которых хранятся объекты, а потребуется лишь обьявить потомка от существующего объекта, модифицировав его в соответствии с требованиями задачи;
- модульность – объекты представляют собой не изолированные сущности, а иерархическую структуру, отражающую степень их подобия. Кроме того объекты различных типов (например, объекты “окно” и “приложение” имеют средства для взаимодействия между собой. Свойство модульности также позволяет добиться того, что при объединении корректно работающих подпрограмм в единое целое можно быть уверенным в том, что и оно будет работать без ошибок;
- унификация – способы взаимодействия любых объектов стандартизированы и основаны на принципах невмешательства во внутреннюю структуру объекта. Т.е. взаимодействие возможно через уведомление посредством сообщения или вызова объектных методов;
- защищенность – сокрытие информации от объектов, не находящихся в “родственных” отношениях с данным. Однако это не означает невозможность влияния объектов друг на друга, т.к. для этого существуют внутренние методы объекта, в которых разрешен доступ к его внутренней структуре;
- инкапсуляция – связывание в единое целое данных объекта (его свойств) и методов их изменения, воздействующих на состояние объекта. Это свойство позволяет устранить в коде программы внутренние зависимости, которые приведут к тому, что его будет трудно понять постороннему человеку и, тем более, модифицировать;
- полиморфизм – свойство, проявляющееся в том, что объекты на разных уровнях иерархии по-разному реагируют на посылаемые им сообщения и вызовы функций. Т.е. концепция объектно-ориентированного программирования включает в себя автоматическое определение объекта-приемника сообщения или вызова функции. Это означает то, что посылая сообщение или вызывая функцию с одним и тем же именем, программист может быть уверен, что адресат будет точно определен.
В рамках поставленной задачи основными объектами являются:
- прибор – он характеризуется своим именем и мощностью, которая вносит свой вклад в расход электроэнергии квартиры;
- квартира – характеризуется своим собственным номером, а также номером дома, в котором она находится. Другие свойства квартиры – число жильцов и скидка (в процентах), определяющая на сколько уменьшается плата за электроэнергию для данной квартиры, а также список приборов, формирующих расход энергии;
- дом – характеризуется своим номером, типом плиты (электрическая или газовая), которая применяется во всех квартирах дома, нормой расхода энергии на одного человека, а также тарифом за 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:
окно для модификации данных по квартире для заданного месяца. Эти данные представляют собой список приборов с указанием их числа по состоянию на указанный месяц, а также среднего времени работы в сутки. Выбор прибора осуществляется по его идентификатору.
Окно позволяет редактировать данные для указанной квартиры в одном доме. Список в верхней части окна позволяет выбрать месяц, применительно к которому будут рассматриваться приборы.