44413 (663224), страница 3

Файл №663224 44413 (Основные сведения о СУБД) 3 страница44413 (663224) страница 32016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Вместе с тем, несмотря на существование ряда коммерческих реализаций ООСУБД, доступных в настоящее время на рынке, уровень технологии таких систем существенно уступает уровню развитых реляционных систем. Это касается и модельных характеристик систем (например, языков запросов) и реализационных аспектов (например, оптимизации запросов).

Часто возникает впечатление, что хотя ограничения существующих систем пытаются объяснять некими принципиальными соображениями (например, что развитые возможности конструирования классов, подкрепленные средствами наследования классов позволяют ограничиться запросами только на одном классе объектов), на самом деле эти ограничения являются следствием недостаточно развитой технологии. Кажется, что в условиях отсутствия признанного лидера в области ООСУБД (каким была, например, компания IBM со своим проектом System R в области РСУБД), единственным путем к выработке такой технологии является продолжающаяся (иногда дублирующая) работа исследователей.

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

Описание задачи

Практически все современные средства разработки используют языки, которые если и не являются чисто объектно-ориентированными, то, по крайней мере, имеют средства для работы с объектами (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:

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

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

Окно использует объект 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” отменяет все изменения, сделанные в списке приборов текущего месяца. “Приборы” – работа со списком приборов, которые могут иметься в квартирах. Каждый прибор идентифицируется своим именем и потребляемой мощностью.

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

Характеристики

Тип файла
Документ
Размер
5,06 Mb
Тип материала
Учебное заведение
Неизвестно

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6518
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее