Oracle Power Objects
ORACLE7 Server
ORACLE7 Server – система управления реляционными базами данных,
доступная на большом количестве программно-аппаратных платформ. ORACLE7
Server обеспечивает качественные и эффективные решения по главным функциям
базы данных, включая:
> Управление большими базами данных и пространствами
> Неограниченное (со стороны JRACLE7 Server) количество
параллельных пользователей базы данных
> Высокая производительность обработки транзакций
> Высокая доступность
> Поддержка промышленных стандартов
> Управляемая защита
> Централизованно поддерживаемая целостность
> Поддержка среды клиент/сервер (распределенная обработка)
> Поддержка систем распределенных баз данных
> Мобильность
> Совместимость
> Стыкуемость
Oracle Power Objects обеспечивает полную поддержку функций и
возможностей ORACLE7 Server. Однако, Oracle Power Objects не располагает
инструментальными средствами для создания или управления базой данных
ORACLE7 Server.
Как и большинству реляционных баз данных, обращение к ORACLE7 Server
осуществляется посредством языка SQL. Ко многим функция ORACLE7 Server
можно обратиться через Record Manager в Oracle Power Objects, а также с
помощью свойств, методов и окон, ассоциированных с доступом к базе данных.
Другие возможности ORACLE7 Server можно реализовать, выполняя через команду
EXEC SQL пользовательские операторы SQL или PL/SQL.
Базы данных SQL Server
База данных SQL Server – многопользовательская система управления
реляционными базами данных, поставляемая фирмами Microsoft и Sybase. Как и
ORACLE 7 Server, базы данных SQL Server эксплуатируются на широком
диапазоне программно-аппаратных платформ и обеспечивают поддержку главных
функций баз данных.
Типичная инсталляция SQL Server включает набор системных и
пользовательских баз данных. Системные базы данных включают базы данных
«master», «model» и «tempdb». Пользовательские базы данных создаются и
поддерживаются, по мере необходимости, системным администратором SQL
Server.
Oracle Power Objects в данный момент поддерживает любую базу данных
SQL Server, которая может быть доступна через драйвер DBLIB. Некоторые
функции баз данных Sybase System 10, включая поддержку курсов, через
драйвер DBLIB не доступны.
Для таблиц, которые будут использоваться с Oracle Power Objects,
необходмо всегда определять ограничения Primary Key.Oracle Power Objects
использует значения первичного ключа для идентификации отдельных строк в
операциях базы данных – например, при обновлении или удалении строк. Если
приложение использует таблицы, которые не включают Primary Key, оно может
вести себя непредсказуемо.
Драйвер DBLIB не включает поддержку нескольких параллельных курсоров.
Следовательно, в каждый момент времени может быть обработан только один
результирующий набор запроса – все результирующие строки запроса должны
быть возвращены прежде, чем может быть выполнен второй запрос.
Устанавливая свойство RowFetchMode связанного контейнера, можно
управлять порядком отбора результирующих строк. Когда свойство RowFetchMode
установлено в «Fetch All Immediately», приложение будет вести себя
идентично с базами данных всех типов. Однако, когда свойство RowFetchMode
установлено в «Fetch as Needed» или «Fetch Count First», с базами данных
SQL Server приложение может работать более медленно. Это происходит более
медленно. Это происходит потому, что все не выбранные (не просмотренные
пользователем) строки запроса должны быть довыбраны из базы данных, прежде
чем можно будет вводить другие запросы.
Драйвер DBLIB непосредственно не предусматривает поддержку связанных
переменных. Чтобы эмулировать поддержку связанной переменной, Oracle Power
Objects автоматически заменяет упоминания связанной переменной в операторах
EXEC SQL литеральными значениями данных.
Базы данных SQL Server не поддерживают объекты-последовательности.
Следовательно, для генерирования уникальных значений таблиц (например,
значений для столбца Primary Key) необходимо использовать альтернативную
методику.
Объекты базы данных
Объекты базы данных хранят и организуют информацию в реляционных базах
данных. В Oracle Power Objects объекты базы данных представлены
пиктограммами в окне сеанса базы данных.
Объекты базы данных, в отличие от объектов приложения, не создаются и
не поддерживаются непосредственно Oracle Power Objects. Все процедуры,
касающиеся объектов базы данных, выполняются процессором базы данных –
компонентом базы данных, в которой хранятся объекты. Так как процессоры
реляционных баз данных имеют различные возможности, доступные объектные
типы и функции для разных баз данных различны.
Объекты базы данных формируют «сервер базы данных» приложения Oracle
Power Objects. При разработке приложения объекты базы данных связываются с
объектами приложения (такими, как формы и отчеты).Объекты приложения
обеспечивают «окно» в объекты базы данных, предоставляя сохраненную
информацию в полезном формате. Процесс соединения объектов базы данных с
объектами приложения называется связыванием.
Объекты базы данных визуально содержатся внутри объекта-сеанса. В
каждом окне сеанса представлены объекты, принадлежащие единственному
пользователю базы данных.
В некоторых базах данных объекты каждого пользователя хранятся в
отдельной логической структуре. Логическая структура – именованная
коллекция объектов внутри базы данных. С каждым пользователем базы данных
ассоциирована логическая структура того же имени. Например, пользователь
NINA имеет логическую структуру NINA. Для баз данных, которые поддерживают
логические структуры, каждый объект-сеанс базы данных обеспечивает доступ к
единственной логической структуре пользователя.
Окно сеанса базы данных не обязательно показывает все объекты,
доступные пользователю – в нем представлены только объекты, для которых
пользователь является владельцем (объекты, созданные этим пользователем). В
окне сеанса базы данных не показаны public синонимы или объекты,
принадлежащие другим пользователям для доступа к которым текущий
пользователь имеет привилегии.
Ниже приводятся типы объектов базы данных, присущие большинству баз
данных, с которыми может взаимодействовать Oracle Power Objects:
1. Таблицы. Объекты базы данных, которые фактически хранят данные.
Отдельная таблица чаще всего хранит информацию по конкретной теме
(например, служащие компании или адреса заказчиков). Информация в
таблице организована в строки и столбцы.
2. Представления. Настроенные обзоры данных из одной или больше таблиц.
Представление – виртуальная таблица, которая позволяет связывать и
объединять данные из несколько таблиц и представлений (называемых
исходными таблицами). Представления, подобно таблицам, организованы в
строки и столбцы; однако, представления непосредственно не содержат
никаких данные – они создаются логически как результат определения в
операторе SQL. Представления позволяют обрабатывать несколько таблиц и
ли представлений как один объект базы данных.
3. Индексы. Обеспечивают быстрый доступ к отдельным строкам в таблице.
Индексы хранят «указатели» на каждую строку в таблице в формате,
оптимизированном для быстрой сортировки и поиска данные. Будучи
создан, индекс автоматически поддерживается и используется базой
данных всякий раз при обращении к индексированным столбцам.
4. Последовательности. Объекты, генерирующие ряд целых чисел, которые
могут применяться для назначения уникальных идентификаторов строкам
таблицы. Значения последовательности можно использовать, чтобы
гарантировать, что столбец не содержит дублированных значений
(например, столбец первичного ключа). Некоторые базы данных, такие
какSQL Server, не поддерживают последовательности; для этих баз данных
необходимы альтернативные методы формирования уникальных значений.
5. Синонимы. Псевдонимы объектов базы данных (таблиц, представлений и
последовательностей). Синонимы могут обеспечивать public доступ к
часто используемым объектам и могут скрывать расположение и владельца
объекта.
Для работы с этими базовыми объектами базы данных Oracle Power Objects
обеспечивает графические интерфейсы.
Внешние базы данных (такие, как ORACLE7 Server ) могут содержать ряд
дополнительных объектов базы данных (такой как кластеры, пакеты, снимки и
роли) которые часто используются для обеспечения дополнительных уровней
защиты или повышения эффективности системы базы данных, Чтобы обратиться к
этим объектам из Oracle Power Objects, необходимо выполнить команды SQL,
используя команду Oracle Basic EXEC SQL или функцию SQLLOOKUP.
Объекты базы данных не имеют таких свойств и методов, какие имеются у
объектов приложения, так как они не создаются посредством объектных
механизмов Oracle Power Objects.У объектов базы данных имеются
ассоциированные листы свойств, в которые, однако. Нельзя добавлять
пользовательские свойства или методы. Большинство объектов базы данных
имеет лишь свойство Name, которое предусмотрено для обращений разработчика.
Свойство Name может быть изменено через лист свойств во время разработки, и
при этом объект будет переименован в базе данных, но это свойство нельзя
изменять посредством Oracle Basic в период выполнения.
Над объектами базы данных модно выполнять два общих типа операций:
операции определения данных и операции манипулирования данными.
Операции определения данных манипулируют структурой объекта базы
данных. Они включают создание, удаление и изменение структуры объектов базы
данных. Обычно эти операции выполняются проектировщиком во время
разработки.
Операции манипулирования данными управляют данными, сохраненными в
объекте или доступными через объект. Они включают запросы, вставку,
обновление и удаление строк данных. Операции манипулирования данными
применяются, главным образом, к таблицам и представлениям, хотя, иногда они
используются с другими объектами базы данных, такими как
последовательности. Эти операции могут выполняться как разработчиком, так и
пользователем в период выполнения.
При создании, удалении или изменении объекта базы данных из Oracle
Power Objects, специфицированные изменения автоматически преобразуются в
операторы SQL, которые затем передаются для выполнения процессору базы
данных. Непосредственно Oracle Power Objects не выполняет никаких
модификаций объектов и их данных.
Каждый тип операции имеет ассоциированный набор команд SQL: операции
определения данных используют команды Языка Определения Данных (DDL), в то
время как операции манипулирования данными используют команды Языка
Манипулирования Данными (DML).
Типы операций, которые пользователь может выполнять с объектом базы
данных, определяются привилегиями, которые он имеет по данному объекту. По
умолчанию, владелец объекта(пользователь, который создал
объект) имеет все привилегии по объекту. Для других пользователей, желающих
обратиться к объекту, владелец должен предоставить соответствующие
привилегия.
Доступные типы объектных привилегий для разных баз данных различны,
что отражается в соответствующем синтаксисе SQL для представления или
отмены привилегий. Базы данных Blaze не имеют объектных привилегий – все
пользователи базы данных Blaze имеют привилегии для всех объектов в базе
данных.
Предоставление или отмена привилегий выполняется через операторы SQL.
Информация относительно предоставления и отмены привилегий приводится в
документации по конкретной базе данных.
Имена объектов базы данных должны отвечать правилам именования
объектов для базы данных, в которой они сохранены. Эти правила различны для
разных баз данных.
Среда разработки
Среда разработки OPO внешне напоминает ставшую уже стандартной среду Visual
Basic. Верхний уровень иерархии объектов OPO - это объект ы File,
изображенных в виде иконок на основном окне среды разработки и которых
может быть три типа :
Приложения (Application).
[pic]
Объекты Базы Данных (Database session).
[pic]
Библиотеки (Library).
[pic]
Каждая такая иконка может быть раскрыта в окно, содержащее объекты нижнего
уровня иерархии. Копирование объектов между однотипными группами
осуществляется простым переносом иконок .
При создании и редактировании объектов появляется инструментальная линейка
и окно редактирования свойств и методов.
[pic]
В процессе разработке можно запускать на выполнение как все приложение, так
и отдельные экраны (формы) и отчеты. Большую помощь при отладке может
оказать отладчик, функционально аналогичный отладчику в Visual Basic.
Важно отметить возможность работать с объектами Базы Данных (таблицами,
представлениями, индексами и т.д.) непосредственно из среды разработки OPO.
Вместе с тем, представление объектов в виде иконок и раскрывающихся окон
удобно только при весьма небольшом их количестве. Когда число используемых
объектов превышает несколько десятков , становиться очень сложно
ориентироваться среди них и разбираться среди множества раскрытых и
мешающих друг другу окон. Реализованный в Forms 4.5 Навигатор Объектов [3]
заметно более нагляден и удобен. Большое число иконок в окне, а число
объектов (таблиц, представлений , индексов и последовательностей) в даже
небольшой БД превышает несколько сотен, в Windows 3.1/3.11 вызывает
истощение системных ресурсов и приводит к ее краху.
Структура приложения
Приложение можно разделить на четыре структурные части :
[pic]
Application и RecordSet представляют обращенную к пользователю часть
приложения (Front End), Session и Database являются частью выполняющегося
на сервере приложения (Back End). В зависимости от задач, требований к
сетевому трафику и характеристик аппаратуры необходимо распределять логику
работу приложения между этими частями. Обработку транзакций и поддержку
целостности данных можно осуществлять во всех структурных частях
приложения.
Основной частью (и видимой пользователю) частью приложения является форма
или экран (Form). При создания экранов можно применять все стандартные
элементы Windows приложений - поля и метки, различного рода кнопки, списки
и т.д. Экраны могут содержать вложенные экраны.
Удобным является механизм запроса по форме (Query By Form). Для
отображаемого в данный момент экрана можно вызвать экран для ввода запроса,
представляющий собой копию первого экрана, в поля которого можно ввести
условия и критерии выборки. В результате на первом экране будет информация
в соответствии с заданными условиями. При этом экран запроса тоже остается
видимым.
Обработка транзакций
Любая транзакция должна пройти через несколько уровней, каждый из
которых играет свою роль в управлении обработкой транзакций.
1. Контейнеры. Контейнер – элемент интерфейса, через который пользователь
инициирует запросы и изменения набора записей. После добавления,
удаления или изменения записи пользователь перед закрытием контейнера
должен фиксировать или аннулировать транзакцию (обычно, нажимая
кнопку, предназначенную для этой цели – чаще всего, это кнопки ОК и
Отмена (Cancel)). Кроме того, здесь определяют устанавливаемые на
уровне клиента бизнес-правила, ограничивающие транзакции, которые
может инициировать пользователь. Если система должна сообщить
пользователю относительно результатов предпринятой транзакции,
информация появляется здесь же, в интерфейсе пользователя.
2. Наборы записей. Прежде, чем пользователь сможет провести изменения в
наборе записей, приложение выполняет проверку ссылочной и объектной
целостности данных. Кроме того, приложение регулирует объем
информационной нагрузки сети, при необходимости выборочно выполняя
запрос строк базы данных, чтобы заполнить набор записей.
3. Сеансы. После прохождения уровней приложения и набора записей
транзакция должна затем пройти через сеанс. Чтобы фиксировать или
аннулировать транзакции, ассоциированные с данным сеансом, для объекта-
сеанса могут вызываться несколько методов.
4. Базы данных. В конечном счете, инициированная пользователем транзакция
достигает непосредственно базы данных, где процессор базы данных
проверяет, завершена ли транзакция. Процессор базы данных может
установить на сервере бизнес-правила, контролируя, не нарушает ли
переданная транзакция правила защиты, и выполнять другие важные
функции управления транзакциями. Если транзакция – запрос, процессор
базы данных после этого передает требуемую информацию клиенту.
Следовательно, при управлении транзакциями внутри приложения
клиент/сервер Oracle Power Objects предоставляет возможности установления
бизнес-правил, регулирования информационной нагрузки сети и поддержания
целостности данных. Например, отдельное бизнес-правило может
устанавливаться как ограничение базы данных или как часть приложения-
клиента.
Подход к разработке, реализуемый в Oracle Power Objects
Хороший стиль проектирования требует принятия важных решений в самом
начале, с тем, чтобы исключить необходимость повторения значительных
объемов работы.
В зависимости от вида разрабатываемого приложения и используемого
инструментария, разработка начинается с сервера базы данных или с внешнего
интерфейса. Средства разработки Oracle Power Objects позволяют сначала
разработать интерфейс пользователя, построив формы, отчеты и другие
компоненты приложения-клиента. После того, как интерфейс пользователя
завершен, при необходимости, можно сформировать под него объекты базы
данных и затем соединить компоненты интерфейса с их связанными таблицами и
представлениями, Обычно, если проектировщик работает с приложением, в
котором для соединения компонентов внешнего интерфейса с сервером базы
данных требуется значительный объем программирования, он откладывает
написание этих процедур, пока не будет удовлетворен интерфейсом
пользователя и пока не будут определены все объекты базы данных. В
противном случае, при переопределении объектов базы данных или компонентов
интерфейса ему придется тратить много времени на редактирования и переделки
кода программы.
С другой стороны, высококачественные инструментальные средства
клиент/сервер часто требуют, чтобы их проектирование было начато с
построения объектов базы данных, а затем уже был сформирован внешний
интерфейс. Учитывая как сложность и важность правильной организации
объектов базы данных, так и трудность управления отношениями среди них, при
разработке этих видов приложений сервер базы данных должен иметь приоритет.
В реальной жизни, разработчики часто переключаются между сервером базы
данных и внешним интерфейсом, вместо исключительного проектирования первым
того или другого, (Однако, обычно, все равно один раздел приложения базы
данных сначала получает акцент, даже если впоследствии ему не уделяется
исключительное внимание). Если проектировщик имеет ясную совокупную картину
требуемых объектов и их отношений, Oracle Power Objects помогает
существенно упростить этот вид инкрементной разработки.
Если начать с клиента
Обычно, с разработки внешнего интерфейса начинают, когда…
> Необходимо применить в приложении интерфейса клиента какие- либо
производственные стандарты, например, для финансовых расчетов.
> Необходимо сосредоточить усилия на обеспечении правильного
выполнения приложением последовательности действий некоторого
процесса.
> Используются уже имеющиеся объекты базы данных, для которых
необходимо просто сформировать интерфейс. Однако, при этом, все
же, необходимо проверить, не требуются ли в связи с этим в базе
данных некоторые небольшие модификации. Например, может быть
принято решение о том, что инициирование отдельного бизнес-
правила можно перенести с сервера на клиент, устраняя тем самым
потребность в хранимой процедуре сервера, разработанной для этой
задачи.
> Приложение не предназначено для интенсивного доступа к базе
данных, так что можно уделить больше времени интерфейсу
пользователя.
В этих случаях Oracle Power Objects позволяет по отдельности
проектировать и тестировать различные формы и отчеты, которые
составляют интерфейс пользователя. Следовательно, разработка
приложения, которая начинается с внешнего интерфейса, может
выполняться пошагово или фронтом: разработчик может или проектировать
компоненты приложения последовательно или работать с несколькими
компонентами одновременно. На этом этапе, модификации объектов не
составляют проблем и выполняются относительно просто, так как доступ
к базе данных еще не полностью реализован. После создания форм,
отчетов, классов и других объектов приложения решаются вопросы
навигации между ними и добавляется программный код, в котором
устанавливаются бизнес-правила и выполняются задачи обработки данных
(вычисления).
Объекты интерфейса и их связанные таблицы или представления
можно также разрабатывать параллельно, так как таблицы и представления
структурно часто дублируют формы и отчеты, в которых выводятся их
записи.
Если вначале разрабатывается внешний интерфейс, следует ответить на
следующие вопросы:
> Какими будут главные формы, которые пользователь увидит на
экране? Они будут, вероятно первыми объектами, которые должны
быть спроектированы, наряду с их связанными таблицами или
представлениями.
> Какая модель последовательности действий будет заложена в
приложение? Иными словами, следует тщательно продумать, как легко
пользователь сможет вводить данные, осуществлять навигацию между
формами и выполнять другие операции внутри приложения. Кроме
того, необходимо оценить, как приложение организует работу
пользователя и задает ли оно разумный темп при решении задач.
> Какие объекты должны быть определены вне приложения Oracle Power
Objects и затем импортированы? Например, если планируется
добавлять растровые образы или другие OLE-объекты, возможно,
вначале придется разработать некоторые из этих ресурсов
приложения.
> Где лучше и как лучше установить ограничения? Например, если
требуется гарантировать, чтобы транзакция, введенная в приложении
регистрации заказов, не содержала значений, превышающих некоторый
объем, возможно, будет лучше установить это ограничение на
клиенте через код Oracle Basic, а не на сервере через триггер.
Для этого потребуется добавить необходимый код Oracle Basic,
который будет прерывать транзакцию до ее фиксации, если она
превышает установленный объем заказа.
> Как лучше представить документ? В данном случае, «документ» -
отдельный объект, такой как заказ на приобретение, который
заполгяеься в приложении. Можно поместить каждое поле, которое
будет содержать данные, относящиеся к заказу, на одной форме.
Однако, для удобочитаемости, возможно, лучше будет разбить «мега-
форму» на несколько меньших форм.
> Какие компоненты интерфейса будут повторяться в приложении? Если
имеются объекты, неоднократно появляющиеся в приложении,
вероятно, их следует проектировать как пользовательские классы,
сохраненные или в приложении или библиотеке, Экземпляры
пользовательских классов мажно добавлять к формам и отчетам,
вместо того, чтобы много раз генерировать одни и те же объекты.
Например, если проектируется пользовательский набор средств
управления для просмотра базы данных, следует создать их как
класс, чтобы экземпляры одного класса легко могли наследовать
изменения в исходном классе.
Главный недостаток первоначальной разработки внешнего интерфейса
заключается в том, что проектирование базы данных – обычно, одна из
наиболее важных задач при разработке программного обеспечения, но в данном
случае к интерфейсу пользователя приковано основное внимание разработчика.
То, что хорошо смотрится в экранной форме, может быть трудно выразимо с
помощью таблицы или представления или даже нескольких связанных таблиц.
Основные функции Oracle Power Objects, которые позволяют начать
разработку с внешнего интерфейса, включают:
> Инструментальные средства GUI (графический пользовательский
интерфейс) для быстрого создания новых объектов внешнего
интерфейса.
> Объекты приложений многократного использования, созданные как
пользовательские классы или объекты библиотек.
> Возможность всесторонне тестировать отдельные компоненты
интерфейса пользователя, такие как главная форма приложения, до
перехода к созданию других объектов приложения.
> Отладчик периода выполнения, который может запрашивать свойства,
тестировать код методов и выполнять другие важные проверки.
Если начинать с сервера базы данных
При этом подходе, прежде, чем приступить к формированию интерфейса,
проектировщик начинает с разработки модели данных (разработка всех таблиц и
представлений). Необходимость начать с объектов базы данных может быть
обусловлена несколькими причинами:
> Приложение будет использовать большое количество таблиц и
представлений сложной структуры. Проектировщики, которые работают
с реляционными базами данных, знают, как важно иметь ясное
представление относительно объектов базы данных и их отношений.
Этим в дальнейшем предотвращаются проблемы, вызванные сколько-
нибудь значительными корректировками этих объектов. Если в одной
из таблиц отношения один-к-многим изменяется тип данного для
ключевого значения, это может разрушить отношение между главной и
подчиненными таблицами.
> На сервере будет устанавливаться много ограничений. В таких
случаях, до разработки интерфейса пользователя имеет смысл
определить объекты базы данных, а также триггеры и хранимые
процедуры, которые из защищают. Затем уже можно переходить к
проектированию клиента, где эти ограничения будут использоваться.
Примером использования ограничений может быть генерирование на
сервере кодов ошибок и передача их в читабельном виде
пользователю.
> Интерфейс пользователя – лишь окно в базу данных. В случаях,
когда поля формы – простое отображение таблиц и представлений
сервера, проектированию интерфейса можно уделить меньше времени.
> Защита сервера – приоритетная задача.
> Для повышения производительности требуется вначале произвести на
компонентах сервера специальные процедуры (например,
индексирование или нормализацию таблиц).
> Одни и те же таблицы и представления используются несколькими
различными внешними интерфейсами.
> Приложение использует сложные отношения один-к-многим или
вычисляемые значения. В таких случаях требуется тщательно
спроектировать таблицы и представления, чтобы отношения один-к-
многим могли быть легко представлены внутри приложения. Кроме
того, правильно построенная модель данных сэкономит время при
работе приложения за счет уменьшения сложности уравнений,
оперирующих данными.
Если проектирование начинается с сервера, имеется возможность
сформировать эффективную модель данных, отражающую информацию из реальной
жизни. Объектом реальной жизни может быть любой объект (например, данные
служащего, транзакция бухгалтерской книги, позиция инвентарной ведомости и
т.д.), который требуется описать в одной или больше таблиц.
Начиная проектирование с сервера базы данных, необходимо ответить на
следующие вопросы:
> Какие требуются объекты базы данных? Иными словами, что будет
представлять собой модель данных?
> Как следует оптимизировать структуру данных с точки зрения
повышения производительности их обработки?
> Какие таблицы или представления будут основными? Почти в каждой
модели данных некоторые таблицы более важны, нежели другие.
Следовательно, необходимо рассмотреть весьма вероятное событие,
когда в сети клиент/сервер к этой таблице попытается обратиться
много пользователей. Кроме того, необходимо предусмотреть меры
защиты важных данных от разрушительных изменений (например,
модификаций ключевых значений в отношении один-к-многим), а также
от несанкционированного доступа. Для реализации этих мер имеется
широкий диапазон средств – от определения пользовательских
логических структур, ограничивающих доступ к объектам базы
данных, до написания триггеров, которые при некоторых условиях
предотвращают проведение изменений в базе данных.
> Какие бизнес-правила целесообразно установить на сервере? Здесь
необходимо балансировать между нежелательностью перегрузки
сервера работой по обслуживанию каждого бизнес-правила и
необходимостью установки на сервере важных ограничений, которые
должны гарантировать целостность и согласованность данных
приложений всех клиентов.
Как проектировать пользовательские классы и библиотеки
Прежде, чем приступать к разработке приложения, необходимо рассмотреть
возможность неоднократного использования в ходе разработки некоторых
объектов или наборов объектов. Вот некоторые примеры таких объектов:
> Эмблема компании, которая присутствует на многих формах и
отчетах.
> Набор средств управления, используемых для навигации по записям.
> Набор элементов управления, используемых для фильтрования и
сортировки записей.
> Группа переключателей, используемых для обеспечения стандартного
набора опций в нескольких формах
> Ряд текстовых полей, выводящих в нескольких формах информацию
заказчика, продавца или компании.
Создавая эти объекты как пользовательские классы, сохраненные в
приложении или в библиотеке, разработчик получает следующие преимущества:
> После того, как объекты созданы, добавление их к форме может
выполняться простой операцией drag-and-drop.
> В Oracle Power Objects экземпляры пользовательского класса или
объекты библиотеки наследуют свойства и методы определения
исходного класса. Точно также экземпляры наследуют изменения,
проводимые в этих определениях. Следовательно, изменение часто
используемых объектов приложения выполняется намного быстрее,
если они создаются как экземпляры. При этом, чтобы провести
изменение по всем экземплярам, требуется изменить лишь
определение пользовательского класса или объекта библиотеки.
Решение по созданию объекта приложения многократного использования как
пользовательского класса принимается по результатам ответа на вопрос: этот
объект будет использоваться один раз только в данном приложении, или,
возможно, он потребуется в нескольких приложениях или несколько раз в одном
приложении?
> Если предполагается использовать объект в нескольких приложениях,
целесообразно создать его как объект библиотеки (или как объект-
библиотеку). Когда потребуется изменить объект, он выделяется в
собственную библиотеку, подобную библиотеке динамической
компоновке (DLL) в среде Windows.
> Если планируется использовать объект только в одном приложении,
можно создать его как пользовательский класс, При хранении
пользовательского класса в приложении уменьшается количество
поддерживаемых объектов-файлов.
> Oracle Power Objects позволяет создавать как объекты библиотеки
пользовательские классы и растровые рисунки. Пользовательские
классы – наиболее применяемый тип объектов библиотеки, так как
они обеспечивают все функциональные возможности как контейнеров,
так и элементов управления.
Заключение
Суммируя вышеизложенное:
> База данных содержит объекты, предназначенные для хранения и
организации информации.
> Сеанс обеспечивает доступ к базе данных, а также к коллекции
объектов базы данных, определенных логической структурой (схемой)
пользователя базы данных.
> Приложения внешнего интерфейса выполняют запросы базы данных,
заполняя информацией наборы записей.
Наборы записей обычно связываются с объектами-контейнерами, которые
непосредственно предоставляют пользователю доступ к данным, хранимым в базе
данных.
Несмотря на то, что Oracle Power Objects обеспечивает обширный набор
средств для разработки любых видов приложений, этот инструмент ориентирован
и предназначен, в первую очередь, для формирования приложений базы данных в
среде клиент/сервер. Используя один и тот же внешний интерфейс в системе
клиента, можно выбрать любую систему управления базами данных по критериям
защиты, эффективности, масштабируемости и другим важным функциям. Кроме
того, Oracle Power Objects позволяет устанавливать и поддерживать
специфические требования к данным средствами как приложения-клиента, так и
сервера базы данных.
OPO - новый продукт на рынке средств разработки приложений
клиент/сервер. У него нет за спиной богатой истории развития и как чисто
инструментального языка (Visual Basic, Delphi) и как инструмента создания
приложений для системы клиент/сервер (Forms). Первую версию скорее можно
воспринимать как заявку на место на рынке, как демонстрацию новых идей.
Если будет улучшен пользовательский интерфейс Среды разработки, введена
полная поддержка OLE и особенно OLE Automation, будут созданы драйверы для
других источников данных, при разработке можно будет использовать
репозитарий приложения, то OPO действительно может стать весьма интересным
продуктом.
Список литературы
Г.Анзер: «Oracle Power Objects», Мосва, АБФ, 1997
www.oraclub.trecom.tomsk.su/articles/mir-ora/program/23.htm
Страницы: 1, 2
|