Реферат: Oracle Power Objects
СодержаниеВведение.
Мощные современныесистемы управлениябазами данных, такие как ORACLE7, SQL Server идругие, применяются, как правило, для поддержанияи обработкибольших и оченьбольших базданных, к информациикоторых одновременнообращаетсямножествопользователей.В этих условиях, обеспечениекаждого из этихпользователейили группыпользователейнеким средством(приложением)для доступак данным локальнойили удаленнойбазы данныхстановитсявесьма сложнойзадачей, требующейсущественных трудозатрат.Решить этузадачу можнолибо путемпривлечениязначительныхсил программистови разработчиков, либо применениемновых, высокопроизводительныхтехнологийразработки.Объектно-ориентированное, визуальноепроектирование– пример успешнойреализациивторого, интенсивногоподхода.
Oracle PowerObjects – высококачественный(что характернодля всех продуктовOracle Corporation), оригинальныйи надежныйинструментдля разработкипрограммногообеспечениядоступа к базамданных. Он объединяетвозможностиприложенийклиент/серверс преимуществамиобъектно-ориентированноймодели разработки.
Для построенияприложенияразработчикдолжен иметьв своем распоряжениинекоторыеконструктивныеэлементы –объекты. В OraclePower Objectsкаждый компонентприложения, от непосредственнобазы данных(или сервернойчасти системы)до интерфейсаклиента (иливнешнего интерфейса)– это объект, который можноидентифицироватьи управлятьим, используяунифицированныетехнологии.Всем объектам, с которымиработаетпроектировщик, независимоот типа объекта, присущи стандартныесвойства(характеристики, управляющиеповедениемобъекта) и, вбольшинствеслучаев, методы(программноеописание действийобъекта) –стандартныеили пользовательские.
Такойобъектно-ориентированныйподход к разработкеупрощает задачусоздания приложенияи более близкои точно, чемдругие моделиразработки, отражаетпредставлениепроектировщикаотносительнокомпонентовприложенияи их взаимосвязи.Обычно, приработе с определениемобъекта (формы, отчета, таблицы), разработчикзадумываетсяо том, как управлятьаспектами этогообъекта. Приэтом все существенныехарактеристикиобъекта определяютсязначениямиего свойств.
ОбъектыприложенияPower Objects могут бытьвполне «осязаемыми»для пользователя, как например, окна диалога, командныекнопки, текстовыеполя и т.д. Объектымогут такжепредставлятьсобой некоторыекатегории, которые неявляются частьюпользовательскогоинтерфейса.Это, например, связи базыданных и сеансыпользователя. При построенииприложенияразработчикпрограммируетдействия объектовили задаетреакцию этихобъектов нанекоторыесобытия илисостояния средыили приложения.
При построенииприложениябазы данныхочень важноиметь возможностьпреодолетьограничения, накладываемыена использованиебазы данныхконкретнойплатформой.Перед передачейприложенияк клиентампроизводственнуюсреду полезнопервоначальноотладить ипротестироватьпрототип приложенияна локальнойбазе данных.Закончив отладкуприложения, можно затемэкспортироватьопределениявсех таблиц, представлений, последовательностейи индексов наудаленныйсервер, минимизируятем самым времяего простоя.
Oracle PowerObjects позволяетработать сраспространеннымисетевыми базамиданных, такимикак SQL Serverи ORACLE7. Крометого, на уровнеклиента Oracle PowerObjects обеспечиваетсвязь с PersonalOracle7, а такжеBlaze – персональнойбазой данных, поставляемымс Oracle Power Objects. Blazeполностьюсовместимапо структуреи данным с ORACLE7.
В дополнениек этой гибкостипри выбореплатформы базыданных, Oracle Power Objects ещёболее упрощаетразработкуприложений, автоматизируямногие аспектыдоступа к базеданных посредствомчрезвычайноразвитых функцийdrag-and-drop.Например, положивмышью описаниетаблицы наформу, можноавтоматическиассоциироватьформу с этойтаблицей, дажеесли это объектудаленной базыданных. Этавозможностьпозволяетразработчику, вместо написаниясложного программногокода соединениявнешнего интерфейсас сервером базыданных, сосредотачиватьсянепосредственнона проектированииприложения.
Для пользовательскогопрограммированияв Oracle PowerObjects используетсяOracle Basic, процедурныйязык с поддержкойSQL, совместимыйс Visual Basicfor Application.Если разработчикранее программировалприложенияв Microsoft VisualBasic или MicrosoftAccess – он можетбыстро и легкоперейти к написаниюкода на OracleBasic в PowerObjects.
OraclePower Objects.Аспекты и компонентыприложения.
Процедурыразработкиприложенийразных типовставят разработчикаперед рядомсложных проблеми выборов.Принимаемыепри этом решенияво многомопределяютсятем, как приложениедолжно обращатьсяк данным – локально, к базе данныхна том же РС, где расположенисполняемыйфайл приложения, или дистанционно, в системе сетевойбазы данных, подобной ORACLE7или SQL Server.РасполагаяинструментариемOracle PowerObjects помогаетупростить иоблегчитьразработкуприложениядля средыклиент/серверза счет примененияследующихтехнологий:
Объектно-ориентированная модель разработки позволяет использовать стандартную методологию при работе со всеми объектами – от таблиц и представлений на сервере базы данных до форм, текстовых полей и растровых объектов внешнего интерфейса.
Развитые механизмы drag-and-drop помогают быстро связать формы и отчеты (объекты внешнего интерфейса) с таблицами и представлениями (объектами данных).
Автоматизированная обработка транзакций устраняет необходимость написания для управления транзакциями больших объемов программного кода, а в ряде случаев позволяет вообще обойтись без программирования.
Объектно-ориентированнаяразработка.В общейобъектно-ориентированноймодели каждыйкомпонент приложенияпредоставляетсяразработчикукак объект.Объект имеетдва различныхнабора характеристик:
Свойства определяют представление, поведение и другие черты объекта. Цвет фона формы, строка соединения, используемая для открытия сеанса базы данных, и исходная таблица базы данных для отчета – все это свойства тех или иных объектов.
В периодвыполненияприложениеможет оцениватьзначение, назначенноесвойству, и, когда требуется, назначать емуновое значение.Например, принажатии команднойкнопки в окнедиалога, приложениепроверяет, установленоли свойствоEnabled этой кнопкик значениюTrue.Если этотак, нажатиеэтой кнопкиобусловитнекоторыйрезультат, иначе, нажатьэту кнопку неудастся. В периодвыполнения, приложениеможет деактивироватькоманднуюкнопку, назначаясвойству Enabledкоманднойкнопки значениеFalse.
Методы – процедуры, которые выполняют некоторую обработку, связанную с объектом. Например, если нажатием командной кнопки требуется открыть форму, необходимо к телу метода Click() командной кнопки добавить соответствующий программный код. Код метода записывается на языке программирования Oracle Basic и добавляется к методу через окно редактирования в листе свойств.
Большинствостандартныйметодов (тоесть, методов, которые являютсячастью умолчательногоопределенияобъекта) имеютсвязанную сними умолчательнуюобработку.Например, методформы OpenWindow()загружает формув память и выводитее на экран.Если стандартныйметод имеетумолчательнуюобработку, кнему можнодобавить некоторыйкод, которыйили заменяетумолчательнуюобработку, илирасширяет ее.Как частьумолчательнойобработки, одинметод можетвызывать другой.Это означает, что, если умолчательнаяобработка дляодного методапрерывается, следующий методв цепочке небудет вызван.
Разработчикможет такжесоздавать своисобственныепользовательскиеметоды, которыезатем добавляютсяобъекту.
МетодыМетод определяетповедениеобъекта приобращении кнему или принаступлениинекоторогособытия. Например, при вызовеформы ее методOpen Window()загружает формув память и выводитее на экран винтерфейсеприложения.В методах размещаетсяпрограммныйкод Oracle Basic, посредствомкоторогонастраиваетсяработа приложения.Фактически, весь код Oracle Basicинкапсулируетсяв методах. Вэтой главеописывается, как вызыватьобъектныеметоды и какдобавлять кним код OracleDasic.
Методы – этопрограммныепроцедуры –функции илиподпрограммы.Они могут (ноне обязательнодолжны) приниматьодин или большепараметров.
Oracle Power Objects включаетнабор предопределенныхстандартныхметодов, большинствоиз которыхвключаютумолчательнуюобработку, выполняемуюпри вызовеметода. К объектамможно добавлятьтакже пользовательскиеметоды; пользовательскиеметоды не имеютумолчательнойобработки.
Стандартныеи пользовательскиеметоды можнонастраивать, добавляя кодOracle Basic. Длястандартныхметодов можноили полностьюпереопределятьумолчательнуюобработку, иливставлятьпользовательскийкод до или послевызова умолчательнойобработки.
Метод можетбыть инициированодним из двухспособов:
Через событие. Событие – действие, которое имеет место в интерфейсе приложени. События происходят, когда пользователь выполняет в приложении некоторые манипуляции (например, щелчок на элементе управления или закрытие приложения) или в ответ на системное функционирование.
Вызовом метода. Метод можно вызвать явно через код Oracle Basic.
Если метод– функция, онможет возвращатьзначение, котороеможно использоватьгде-либо в выраженииили в оператореприсваивания.Метод-функцияиспользуется, подобно встроеннойфункции OracleBasic.
Например, метод GetRecordset()– функция.GetRecordset() возвращаетзначение типаданного Object, которое можноприсваиватьпеременной.Переменнуюможно затемиспользоватьвезде, где требуетсяобращение кобъекту наборазаписей.
Если метод– подпрограмма, его имя используетсяне подобнофункции, в оператореприсваиванияили выражении, а в виде команды, то есть, единственныйвызов в строке.Подпрограммыне возвращаютзначения; однако, подпрограммаможет изменятьпереданныйей параметр.
В ходе выполнения, подпрограммеили функциипередаютсяпараметры. Этипараметрыспецифицируютсяв круглых скобкахрядом с именемметода. Параметрыфункции могутбыть переданыпо ссылке (умолчание)или по значению.
При передачепараметра поссылке, фактически, передаетсяуказатель наобласть памяти, занятой переменной, которая используетсядля специфицированияпараметра, Поссылке могутбыть переданытолько переменные; другие типывыраженийавтоматическипередаютсяпо значению.Любые изменения, проведенныев параметрепри выполнениифункции, воздействуютна переменнуюв вызывающемметоде.
С другойстороны, припередаче параметрапо значению, передаетсятолько «абстрактное»текущее значение, присвоенноепараметру, безссылки непосредственнона сам параметр.В этом случаеизменения, проведенныев параметре, не имеют никакогоэффекта внеподпрограммыили функции.Все выражения, не содержащиепеременных, автоматическипередаютсяпо значению.Переменныетакже могутбыть переданыявно по значению, если в объявлениифункции используетсяключевое словоBYVL.
Чтобы создатьпользовательскуюфункцию илиподпрограмму, необходимообъявить ееи ассоциироватьее с объектомв приложении.Чаще всегофункцию илиподпрограммудобавляют кформе, классуили отчету, откуда онавызывается, но фактически, метод можнодобавлять клюбому объектуприложения.
Чтобы настроитьповедениеметода, к немудобавляетсяпрограммныйкод. Код методаможет бытьдобавлен клюбому стандартномуили пользовательскомуметоду OraclePower Objects.
В любом методеOracle PowerObjects неявнообъявляет наборпеременных.Переменнаяобъявляетсядля каждогопараметра вобъявленииметода и имееттип данного, обозначенныйв объявлении.Эти переменныеможно использоватьв коде, подобнолюбым другимзначениям.Необходимоотметить, чтоприсваиваниезначений этимпеременнымимеет смысл, только еслипараметр былпередан поссылке; параметр, переданныйпо значению, также можетбыть установлен, но по выполненииметода значениепараметраисчезает.
Для методов-функцийвозвращаемоезначение функцииназначают, присвоив значениеимени функции.Это имя, фактически, не являетсяпеременной; Это – простосоглашениедля представлениявозвращаемогозначения.
При вводев метод программногокода Oracle Basicавтоматическипереопределяетсялюбая умолчательнаяобработка, обычно выполняемаяэтим методом.
Эту установленнуюпо умолчаниюобработкуможно, однако, выполнять, добавляя к кодуметода синтаксисInheried.имя_метода.
Умолчательнаяобработкавыполняетсяв точке кодаметода, где онавызвана. Следовательно, ей может предшествоватьили выполнятьсяпосле ее пользовательскийкод Oracle Basic.Если вызываемыйстандартныйметод требуетпараметров, то их необходимопередать ввызове процедурыInherited. Имя_метода.
Умолчательнаяобработка дляметода частовключает вызовв предопределенномпорядке рядадругих методов, В таких случаях, прежде, чемпоток управлениявозвращаетсяв вызывающуюпроцедуру, сразу послеоператораInherited. Имя_методавыполняютсяэти методыумолчательнойобработки.
Любой код, который добавляетсяк методу, можетнуждаться вкорректировке.Процедуры невсегда сразуреализуют идеюразработчикатак, как он этопредполагаетпри написаниипрограммногокода.
Отладка –процесс анализа, корректировкии тестированиякода, выполняемыйс целью добитьсятребуемогопорядка выполненияприложенияи получениятребуемыхрезультатов.Когда выполнениесталкиваетсяс проблемами, отладчик Oracle PowerObjects показывает, где возникаетэта проблема, и позволяетисследоватьзначения ипошагово пройтичерез код, чтобылокализоватьее.
Внешний интерфейс: Наборы записейи связанныеконтейнерыВ клиентскихсистемах сбазой данныхмогут взаимодействоватьдва различныхвида объектов: наборы записейи связанныеконтейнеры.
Набор записей(объект recordset)– набор строк, запрошенныхиз таблицы илипредставления, который хранитсяв памяти системыклиента. Обычно, для сниженияинформационнойнагрузки сетии экономиипамяти клиента, приложениехранит толькоподмножествавсего наборазаписей. Когдатребуетсявывести наэкран следующиезаписи иликогда приложениедолжно выполнитьнекоторуюагрегатнуюоперацию, включающуювсе записитаблицы илипредставления, оно делаетзапрос большегоколичествастрок.
Когда пользовательили приложениепроводит изменениязаписей, изменениярегистрируютсясначала в наборезаписей, но нев базе данных.В некоторыймомент, приложениепередает измененияв базу данных.В ходе этойпроцедурыприложениеможет устанавливатьблокировкиданных, предотвращаяредактированиятой же самойзаписи другимипользователями; оно может такжеотслеживатьизменения, проведенныев записи с моментапервоначальногозапроса.
Наборы записейне обязательнодолжны включатьвсе столбцыиз связанныхтаблиц илипредставлений.В большинствеслучает, когданабор записейсвязываетсяс контейнером, он включаеттолько те столбца, которые требуютсядля вывода наэкран данных в текстовыхполях, спискахи других элементахуправленияконтейнера.
Большинствонаборов записейсвязываетсяс некоторымконтейнером, хотя в OraclePower Objectsможно создаватьтакже несвязанныенаборы записей.
Связанныйконтейнер –объект интерфейса, который выводитна экран данные, полученныеиз таблицы илипредставленияв результатезапроса SQL.После выполнениязапроса значения из столбцовнабора записейотображаютсяв связанных элементахуправленияконтейнера.В Oracle Power Objects. Связаннымконтейнеромможет бытьформа, отчет, внедреннаяформа, пользовательскийкласс или окнорепитера. Невсе связываемыеконтейнерыдолжны бытьсвязаны с источникомзаписей: например, многие окнадиалога – этоформы, которыене имеют связанныхтаблиц илипредставлений.Однако, всесвязанныеконтейнерыимеют ассоциированныенаборы записей, которые заполняютсяданными запросовбазы данныхпри загрузкеконтейнерав память.
Внутри связанногоконтейнерарасполагаютсясвязанныеэлементы управления, которые соединенысо столбцамисвязанногонабора записей.Например, вформе, предназначеннойдля работы сзаписями заказчиков, несколькотекстовых полейвыводят наэкран имя заказчика, адрес, номертелефона идругую важнуюинформацию, Информацияв каждом текстовомполе происходитиз различныхстолбцов наборазаписей.
Контейнер– лишь одно измногих типовобъектов приложения.Определенияобъектов приложенийсохраняютсяв файлах. РОАи, в конечномсчете, компилируютсяв исполняемоеприложение.Другие объектыприложения– элементыуправления(например, командныекнопки), статическиеобъекты (например, линии). OLE-объекты, импортируемыерастровыерисунки ипользовательскиеклассы.
Разработкав объектно-ориентированнойсреде.В дополнениек изменениюхарактеристикотдельныхобъектов, необходимотакже определитьотношения междуобъектами.Например, присвязыванииформы с таблицейопределяетсяотношение междуобъектом приложенияи объектом базыданных.
Если данные, отбираемыеиз таблицы ипредставленныев форме, переупорядочиваются, отношение междуэтими двумяобъектамипереопределяется.Для команднойкнопки, которая, будучи нажата, открываетформу, действуетнесколько инаязависимость: отношение междукоманднойкнопкой и формойопределяеткод метода, который добавляетсяк методу Click()команднойкнопки.
Каждый объектимеет большойинтервал стандартныхсвойств и методов.Таким образом, характеристика, которую требуетсяполучить, илидействие, котороетребуетсявыполнить, часто уже содержитсяв свойстве илиметоде. Принеобходимости, однако, можнотакже добавлятьновые, пользовательскиесвойства иметоды. Новоесвойство можетбыть добавленок объекту, когдаразработчикрешает, что дляобъекта требуетсянекотораядополнительнаяхарактеристика(например, дополнительныйуровень защитыпри открытииформы). Новыйметод добавляется, когда требуетсяопределитьновую задачуобработки, неохваченнуюстандартнымиметодами (например, выполнениеспецифическихбухгалтерскихвычислений).
В сущности, объектно-ориентированнаяразработкалишь быстрофиксируетоформившеесяпредставлениеразработчикаотносительноприложения.Зная наборсредств тогоили иногоинструментальногопродукта, передвыполнениемфактическойразработкипрограммистрисует в своемвоображении, какие объектыему требуются, какие характеристикиони должныиметь и какдействие, котороевыполняетсянад одним объектом(например, команднойкнопкой) повлияетна другой (например, форму). Для работыс почти каждымобъектом вOracle PowerObjects используетсяобщая методология.Независимоот того, являетсяобъект сеансомбазы данныхили переключателем, для управленияобъектом разработчикопределяетили изменяетодно из свойствили вызываетодин из методовэтого объекта.
Прочие аспекты.Помимо изложенного, объектно-ориентированноепроектированиеимеет три другиеважные черты:
Модульность. В объектно-ориентированной среде разработки, объекты должны заключать в себе полное определение их характеристик. Никакие определения относительно методов и свойств объекта не должны располагаться где-либо вне данного объекта. Эта черта делает возможным копирование объекта в другие объекты – формы, отчеты, пользовательские классы, сеансы или приложения без потерь каких-либо показателей поведения, представления или других важных характеристик.
Иерархическая структура включения. В объектно-ориентированном приложении некоторые классы объектов могут содержать другие объекты. Например, форма может включать элементы управления, статические объекты и даже другие контейнеры (такие как окна репитеров). Объектно-ориентированные инструментальные средства разработки, позволяют определять, какие объекты будут содержать другие объекты, и выстраивать объектную иерархию сверху (приложение) до низу (например, командная кнопка внутри формы).
Возможность многократного использования. При проектировании объектов необходимо, насколько это возможно, предусматривать возможность их многократного использования. В Oracle Power Objects, пользовательские классы и растровые объекты – наиболее характерные виды объектов приложения многократного использования. Легко копировать между приложениями можно и другие объекты, например, формы и отчеты. В случае пользовательских классов, вначале определяется общий тип элемента управления, который затем тиражируется для любого приложения. Экземпляры класса могут быть точными копиями, но, в случае необходимости, они могут включать любые модификации. Возможности тиражирования пользовательского класса, практически, ничем не ограничены.
Сервер: Сеансыи базы данных.В Oracle PowerObjects объект-сеанссоздается насерверной частисистемы приложениябазы данных.Сеансы обеспечиваютдоступ к объектамбазы данных(таблицы, представления, последовательностии индексы), таки к данным, хранимымв самих таблицахи представлениях.В приложенииможно использоватьнесколькосеансов; фактически, единственнаяформа, отчетили пользовательскийкласс могутобращатьсяк несколькимсеансам.
Посредствомсвойств и методовобъекта-сеансаможно управлятьрежимом соединенияс базой данных(открытое илизакрытое).Устанавливаяпараметрылогическойструктуры базыданных, определеннойдля сеанса, разработчикуправляетдиапазономобъектом базыданных, доступныхчерез сеанс.Многие процессорыбаз данныхиспользуютлогическиеструктуры(схемы пользователей)для ограничениядоступа к объектамбазы данныхотдельнымпользователям.Например, логическаяструктураадминистраторабазы данныхбудет иметьдоступ ко всемобъектам базыданных, но рядовыепользователидолжны иметьвозможностьредактироватьданные толькотех таблиц ипредставлений, которые нужныим для работы.
В Oracle PowerObjects сеанспредставляетсобой отдельноеокно, в которомсимволическипоказаны всеобъекты базыданных, доступныечерез этотсеанс. Дваждыщелкнув напиктограммесеанса, можноактивироватьи деактивироватьсоединениес базой данныхКогда соединениеактивно, окноDatabase Designerвыводит всеобъекты базыданных, доступныев этом сеансе.Кроме того, приоткрытом соединении, во время разработкиможно добавлятьновые объектыбазы данныхи редактироватьсуществующие.
Базы данныхБаза данных– система, котораяхранит и организуетинформацию.Oracle PowerObjecs позволяетформироватьприложения, которые обращаютсяк информации, сохраненнойв реляционнойбазе данных, и коллекцииобъектов базыданных, включаятаблицы, представления, индексы, последовательностии синонимы.Процессор базыданных координируетпользовательскийдоступ к информациибазы данных.
В Oracle PowerObjects пользовательвзаимодействуетс базой данныхчерез сеансбазы данных– объект, которыйсодержит информацию, необходимуюдля установлениясоединения с базой данных.В этой главеописываютсяобъекты-сеансыбазы данныхи общие методыработы с ними.
Далее описываютсятипы баз данных, поддерживаемыеOracle PowerObjects внутренние(базы данныхBlaze) и внешние базыданных
Внутренниебазы данныхсоздаются иподдерживаютсяOracle PowerObjects. Базыданных Blazeкомпактны иэффективны, не требуют длявыполнениябольшого количествасистемныхресурсов. Объектыбазы данныхBlaze хранятсяна жесткомдиске в единственномфайле.
Внешние базыданных создаютсяи поддерживаютсяпроцессоромбазы данныхвне Oracle Power Objects, например,ORACLE7 Server.
Рассматриваемаяверсия OraclePower Objectsподдерживаетследующиевнешние базыданных
ORACLE7 Server.ORACLE7 Server –мощная, высокопроизводительнаясистема управленияреляционнымибазами данныхOracle Corp., которая эксплуатируетсяна широкомразнообразиипрограммно-аппаратныхплатформ.
Базы данныхSQL Server.Надежные исовершенныебазы данныхSQL ServerпоставляютсякомпаниямиMicrosoft и Sybase.Oracle Power Objects обеспечиваетдоступ к базамданных SQLServer черездрайвер DBLIB.
Сеанс базыданных – объект, представляющийсоединениемежду пользовательскимприложениеми базой данных.Сеанс базыданных, обеспечиваетсвязь междувнешним интерфейсоми сервернойчастью системыбазы данных.
Каждый объект-сеансбазы данныхсохраняетсяв собственномдисковом файле (в Windows этотфайл имеетрасширениеPOS). Объекты-сеансыбазы данныхпредставлены пиктограммойв окне Main рабочего столаOracle Power Objects
Объект-сеансможет быть водном из двухсостояний: неактивныйили активный.
Неактивныйсеанс – несоединенныйв данный моментс базой данных.Через неактивный сеанс нельзявывести наэкран объектыбазы данных.
Активныйсеанс – соединенныйв данный моментс базой данных; он «содержит»все объектыбазы данных, которые могутбыть доступнычерез соединение.Активное состояниесеанса отображаетсяпиктограммойвключенногосоединителя.
Пользовательобращаетсяк объекту-сеансутак, как еслибы он содержалобъекты базыданных. Однако, объект-сеансфактическине содержитникаких объектов.Вместо этого, он содержитинформацию, необходимуюдля установлениясоединениябазы данных– например, онможет содержатьимя пользователя, пароль и сетевойадрес учетнойзаписи в базеданных сервера.Когда приложениезапрашиваетинформациюиз сеанса базыданных, онавтоматическипередаетсоответствующийзапрос базеданных и обрабатываетрезультат.
Каждый объект-сеансбазы данныхобеспечиваетдоступ к единственнойлогическойструктуре(схеме) или учетнойзаписи пользователяв базе данных.Сеанс обеспечиваетполный доступк объектам ифункциям учетнойзаписи, хотянекоторыевозможностибазы данныхдоступны толькочерез код SQL(например, вORACLE7 Serverнеобходимописать пользовательскийкод SQL, чтобысоздавать илиобращатьсяк объекту-снимку).Во время разработкисеанс базыданных содержитпиктограммы, представляющиеобъекты базыданных, принадлежащиеучетной записи.В окне сеансаприсутствуюттолько наиболееобщие типыобъектов базыданных (таблицы, представления, индексы ипоследовательности).Сеанс не показываетобъекты базыданных в другихлогическихструктурахили учетныхзаписях, к которымпользовательимеет доступ.
Объекты-сеансыбазы данныхне зависят отобъектов приложения, Эта независимостьобеспечиваетгибкость вконфигурированиисоединенияприложенияс базами данных.Например, несколькоприложениймогут использоватьодин и тот жесеанс базыданных илиединственноеприложениеможет использоватьодновременномного различныхсеансов. Одинсеанс базыданных можнотакже использоватьдля соединенияв разное времяс различнымибазами данных.Например, черезсеанс можнов процессеразработкии отладки приложениясоединятьсяс базой данныхBlaze, а затемпри развертываниизаконченногоприложенияв производственнойсреде черезтот же сеансподключитьсяк ORACLE7 Server.
При созданииобъекта-сеансабазы данныхсоздаетсяотдельный файлна жесткомдиске, содержащийинформациюотносительнотого, как должнобыть выполненосоединениес базой данных.
Базы данныхBlazeБаза данныхBlaze – компактнаяи эффективнаяреляционнаябаза данных, которая создаетсяи поддерживаетсяOracle Power Objects. Oracle Power Objects предоставляетвсе инструментальныесредства, требуемыедля созданияи работы с базамиданных Blaze.
Базы данныхBlaze поддерживаютмногие из функций и возможностейбольших реляционныхбаз данных, нотребуют приработе значительноменьшего количествасистемныхресурсов. Онимогут содержатьосновные объектыбазы данных: таблицы, представления, индексы, последовательностии синонимы. Каки для большинствареляционныхбаз данных, обращение кним осуществляетсячерез SQL –язык программированияи реляционныхобращений. ЯзыкSQL, поддерживаемыйBlaze – подмножествоязыка Oracle7SQL с несколькимидополнительнымичертами.
Каждая базаданных Blazeсохраняетсякак единственныйдисковый файлоперационнойсистемы (которыйв Windows имеетрасширениеBLZ). Этот файлсодержит всеобъекты пользователяи данные, а такжеинформацию, необходимуюдля соединений и разъединенийбазы данныхв приложениях-клиентах.База данныхBlaze можетиметь одновременнотолько однооткрытое соединение.
В отличиеот некоторыхдругих реляционныхбаз данных,Blaze не имеет никакихсерверныхвыделенныхструктур памятиили процессов.Вся информацияотносительнобазы данных, включая информациюпо блокировкамданных и управлениютранзакциями, хранится вфайле базыданных. Всенеобходимыеоперации периодавыполнения(т акие как анализоператоровSQL и чтениеили записьданных) выполняютсяпроцессоромбазы данныхBlaze, которыйвстроен в OraclePower Objects Designer и Oracle PowerObjects Rum-time.Когда два различныхприложения-клиентасоединяютсяс одной базойданных Blaze, каждый клиентиспользуетсобственнуюкопию процессорабазы данных.
Базы данныхBlaze идеальныдля ситуацийумеренногодоступа к данным, включая следующиеприменения:
Локальные просмотровые таблицы. Если приложение обращается к внешним таблицам или представлениям, информация которых остается относительно статичной (например, список стран или категорий товаров), производительность системы базы данных можно повысить, сохраняя копии этих таблиц локально в базе данных Blaze. Часто обновляемые таблицы также могут быть сохранены локально, однако при этом необходимо организовать синхронизацию содержимого отдельных баз данных.
Макетирование. При разработке приложения, которое предназначено для работы с большой корпоративной базой данных, для целей тестирования можно копировать определения объектов этой базы данных в базу данных Blaze. Это может ослабить нагрузку на расделяемые ресуры, повысить производительность разработки приложения и позволит работать, не соединяясь с сетью.
Небольшие приложения. Для относительно небольших объемов (до 4 GB) данных, база данных Blaze формирует компактное, легко управляемое хранилище данных, которое поддерживает доступ одного пользователя.
Разъединенный клиентский доступ. Базу данных Blaze можно использовать для хранения информации, разгруженной из большой системы базы данных; эту информацию пользователь может автономно исследовать и изменять в некритичном режиме.
Базы данных только для чтения. База данных Blaze может поддерживать структуры информации на устройствах только для чтения, таких как CD-ROM.
Ниже приводятсяситуации доступак данным, которыетребуют дополнительныхвозможностейвнешней базыданных:
Большие требования к объему хранения данных. Базы данных Blaze ограничены максимальным доступным размером файла базовой операционной системы. Для Windows максимальный размер файла – 4GB.
Параллельный доступ. Мощные внешние базы данных позволяют эффективно управлять большим количеством параллельных сеансов.
Высоко-критичные приложения. Внешние базы данных обеспечивают расширенные возможности резервного копирования и восстановления данных – функции, которые являются жизненно важными для приложений повышенной критичности.
Строгие требования защиты. Хотя базы данных Blaze поддерживают защиту с использованием пароля и шифрования данных, они не могут обеспечить такой же уровень защиты, как защищенная база данных, размещенная в защищенной операционной системе. Внешние базы данных также могут поддерживать такие дополнительные возможности защиты и управления, как ревизия, роли и защищенные логические структуры.
Доступ из других платформ и инструментальных средств. В данный момент к базе данных Blaze можно обратиться только Oracle Power Objects. Если требуется использовать другие инструментальные средства доступа к базе данных или необходим доступ к базе данных из операционной системы, не поддерживаемой Oracle Power Objects, необходимо использовать внешнюю базу данных.
ORACLE7ServerORACLE7 Server– система управленияреляционнымибазами данных, доступная набольшом количествепрограммно-аппаратныхплатформ. ORACLE7Server обеспечиваеткачественныеи эффективныерешения поглавным функциямбазы данных, включая:
Управление большими базами данных и пространствами
Неограниченное (со стороны JRACLE7 Server) количество параллельных пользователей базы данных
Высокая производительность обработки транзакций
Высокая доступность
Поддержка промышленных стандартов
Управляемая защита
Централизованно поддерживаемая целостность
Поддержка среды клиент/сервер (распределенная обработка)
Поддержка систем распределенных баз данных
Мобильность
Совместимость
Стыкуемость
Oracle PowerObjects обеспечиваетполную поддержкуфункций ивозможностейORACLE7 Server.Однако, OraclePower Objects нерасполагаетинструментальнымисредствамидля созданияили управлениябазой данныхORACLE7 Server.
Как и большинствуреляционныхбаз данных, обращение кORACLE7 Serverосуществляетсяпосредствомязыка SQL. Комногим функцияORACLE7 Serverможно обратитьсячерез RecordManager в Oracle Power Objects, атакже с помощьюсвойств, методови окон, ассоциированныхс доступом кбазе данных.Другие возможностиORACLE7 Serverможно реализовать, выполняя черезкоманду EXECSQL пользовательскиеоператоры SQL или PL/SQL.
Базы данныхSQL ServerБаза данныхSQL Server –многопользовательскаясистема управленияреляционнымибазами данных, поставляемаяфирмами Microsoftи Sybase. Как иORACLE 7 Server, базы данныхSQL Serverэксплуатируютсяна широкомдиапазонепрограммно-аппаратныхплатформ иобеспечиваютподдержкуглавных функцийбаз данных.
ТипичнаяинсталляцияSQL Serverвключает наборсистемных ипользовательскихбаз данных.Системные базыданных включаютбазы данных«master», «model»и «tempdb».Пользовательскиебазы данныхсоздаются иподдерживаются, по мере необходимости, системнымадминистратором SQL Server.
Oracle PowerObjects в данныймомент поддерживаетлюбую базуданных SQLServer, котораяможет бытьдоступна черездрайвер DBLIB.Некоторыефункции базданных SybaseSystem 10, включаяподдержкукурсов, черездрайвер DBLIBне доступны.
Для таблиц, которые будутиспользоватьсяс Oracle Power Objects, необходмовсегда определятьограниченияPrimary Key.OraclePower Objects используетзначения первичногоключа дляидентификацииотдельных строкв операцияхбазы данных– например, приобновленииили удалениистрок. Еслиприложениеиспользуеттаблицы, которыене включаютPrimary Key, ономожет вестисебя непредсказуемо.
Драйвер DBLIBне включаетподдержкунесколькихпараллельныхкурсоров.Следовательно, в каждый моментвремени можетбыть обработантолько одинрезультирующийнабор запроса– все результирующиестроки запросадолжны бытьвозвращеныпрежде, чемможет бытьвыполнен второйзапрос.
Устанавливаясвойство RowFetchModeсвязанногоконтейнера, можно управлятьпорядком отборарезультирующихстрок. Когдасвойство RowFetchModeустановленов «Fetch AllImmediately», приложениебудет вестисебя идентичнос базами данныхвсех типов.Однако, когдасвойство RowFetchModeустановленов «Fetch asNeeded» или «FetchCount First», с базами данныхSQL Serverприложениеможет работатьболее медленно.Это происходитболее медленно.Это происходитпотому, что всене выбранные(не просмотренныепользователем)строки запросадолжны бытьдовыбраны избазы данных, прежде чемможно будетвводить другиезапросы.
Драйвер DBLIBнепосредственноне предусматриваетподдержкусвязанныхпеременных.Чтобы эмулироватьподдержкусвязаннойпеременной,Oracle Power Objects автоматическизаменяет упоминаниясвязаннойпеременнойв операторахEXEC SQLлитеральнымизначениямиданных.
Базы данныхSQL Server неподдерживаютобъекты-последовательности.Следовательно, для генерированияуникальныхзначений таблиц(например, значенийдля столбцаPrimary Key)необходимоиспользоватьальтернативнуюметодику.
Объекты базыданныхОбъекты базыданных храняти организуютинформациюв реляционныхбазах данных.В Oracle PowerObjects объектыбазы данныхпредставленыпиктограммамив окне сеансабазы данных.
Объекты базыданных, в отличиеот объектовприложения, не создаютсяи не поддерживаютсянепосредственноOracle Power Objects. Все процедуры, касающиесяобъектов базыданных, выполняютсяпроцессоромбазы данных– компонентомбазы данных, в которой хранятсяобъекты. Таккак процессорыреляционныхбаз данныхимеют различныевозможности, доступныеобъектные типыи функции дляразных базданных различны.
Объекты базыданных формируют«сервер базыданных» приложенияOracle Power Objects. При разработкеприложенияобъекты базыданных связываютсяс объектамиприложения(такими, какформы и отчеты).Объектыприложенияобеспечивают«окно» в объектыбазы данных, предоставляясохраненнуюинформациюв полезномформате. Процесссоединенияобъектов базыданных с объектамиприложенияназываетсясвязыванием.
Объекты базыданных визуальносодержатсявнутри объекта-сеанса.В каждом окнесеанса представленыобъекты, принадлежащиеединственномупользователюбазы данных.
В некоторыхбазах данныхобъекты каждогопользователяхранятся вотдельнойлогическойструктуре.Логическаяструктура –именованнаяколлекцияобъектов внутрибазы данных.С каждым пользователембазы данныхассоциированалогическаяструктура тогоже имени. Например, пользовательNINA имеетлогическуюструктуру NINA.Для баз данных, которые поддерживаютлогическиеструктуры, каждый объект-сеансбазы данныхобеспечиваетдоступ к единственнойлогическойструктурепользователя.
Окно сеансабазы данныхне обязательнопоказываетвсе объекты, доступныепользователю– в нем представленытолько объекты, для которыхпользовательявляется владельцем(объекты, созданныеэтим пользователем).В окне сеансабазы данныхне показаныpublic синонимыили объекты, принадлежащиедругим пользователямдля доступак которым текущийпользовательимеет привилегии.
Ниже приводятсятипы объектовбазы данных, присущие большинствубаз данных, скоторыми можетвзаимодействоватьOracle Power Objects:
Таблицы. Объекты базы данных, которые фактически хранят данные. Отдельная таблица чаще всего хранит информацию по конкретной теме (например, служащие компании или адреса заказчиков). Информация в таблице организована в строки и столбцы.
Представления. Настроенные обзоры данных из одной или больше таблиц. Представление – виртуальная таблица, которая позволяет связывать и объединять данные из несколько таблиц и представлений (называемых исходными таблицами). Представления, подобно таблицам, организованы в строки и столбцы; однако, представления непосредственно не содержат никаких данные – они создаются логически как результат определения в операторе SQL. Представления позволяют обрабатывать несколько таблиц и ли представлений как один объект базы данных.
Индексы. Обеспечивают быстрый доступ к отдельным строкам в таблице. Индексы хранят «указатели» на каждую строку в таблице в формате, оптимизированном для быстрой сортировки и поиска данные. Будучи создан, индекс автоматически поддерживается и используется базой данных всякий раз при обращении к индексированным столбцам.
Последовательности. Объекты, генерирующие ряд целых чисел, которые могут применяться для назначения уникальных идентификаторов строкам таблицы. Значения последовательности можно использовать, чтобы гарантировать, что столбец не содержит дублированных значений (например, столбец первичного ключа). Некоторые базы данных, такие какSQL Server, не поддерживают последовательности; для этих баз данных необходимы альтернативные методы формирования уникальных значений.
Синонимы. Псевдонимы объектов базы данных (таблиц, представлений и последовательностей). Синонимы могут обеспечивать public доступ к часто используемым объектам и могут скрывать расположение и владельца объекта.
Для работыс этими базовымиобъектами базыданных Oracle Power Objects обеспечиваетграфическиеинтерфейсы.
Внешние базыданных (такие, как ORACLE7 Server) могут содержатьряд дополнительныхобъектов базыданных (такойкак кластеры, пакеты, снимкии роли) которыечасто используютсядля обеспечениядополнительныхуровней защитыили повышенияэффективностисистемы базыданных, Чтобыобратитьсяк этим объектамиз Oracle Power Objects, необходимовыполнитькоманды SQL, используякоманду OracleBasic EXEC SQLили функциюSQLLOOKUP.
Объекты базыданных не имеюттаких свойстви методов, какиеимеются у объектовприложения, так как они несоздаютсяпосредствомобъектныхмеханизмовOracle Power Objects.У объектовбазы данныхимеются ассоциированныелисты свойств, в которые, однако.Нельзя добавлятьпользовательскиесвойства илиметоды. Большинствообъектов базыданных имеетлишь свойствоName, котороепредусмотренодля обращенийразработчика.Свойство Nameможет бытьизменено черезлист свойствво время разработки, и при этом объектбудет переименованв базе данных, но это свойствонельзя изменятьпосредствомOracle Basic впериод выполнения.
Над объектамибазы данныхмодно выполнятьдва общих типаопераций: операцииопределенияданных и операцииманипулированияданными.
Операцииопределенияданных манипулируютструктуройобъекта базыданных. Онивключают создание, удаление иизменениеструктурыобъектов базыданных. Обычноэти операциивыполняютсяпроектировщикомво время разработки.
Операцииманипулированияданными управляютданными, сохраненнымив объекте илидоступнымичерез объект.Они включаютзапросы, вставку, обновлениеи удалениестрок данных.Операцииманипулированияданными применяются, главным образом, к таблицам ипредставлениям, хотя, иногдаони используютсяс другими объектамибазы данных, такими какпоследовательности.Эти операциимогут выполнятьсякак разработчиком, так и пользователемв период выполнения.
При создании, удалении илиизмененииобъекта базыданных из OraclePower Objects, специфицированныеизмененияавтоматическипреобразуютсяв операторыSQL, которыезатем передаютсядля выполненияпроцессорубазы данных.НепосредственноOracle Power Objects не выполняетникаких модификацийобъектов и ихданных.
Каждый типоперации имеетассоциированныйнабор командSQL: операцииопределенияданных используюткоманды ЯзыкаОпределенияДанных (DDL), в то время какоперацииманипулированияданными используюткоманды ЯзыкаМанипулированияДанными (DML).
Типы операций, которые пользовательможет выполнятьс объектом базыданных, определяютсяпривилегиями, которые онимеет по данномуобъекту. Поумолчанию, владелецобъекта(пользователь, который создалобъект) имеетвсе привилегиипо объекту. Длядругих пользователей, желающих обратитьсяк объекту, владелецдолжен предоставитьсоответствующиепривилегия.
Доступныетипы объектныхпривилегийдля разных базданных различны, что отражаетсяв соответствующемсинтаксисеSQL для представленияили отменыпривилегий.Базы данныхBlaze не имеютобъектныхпривилегий– все пользователибазы данныхBlaze имеютпривилегиидля всех объектовв базе данных.
Предоставлениеили отменапривилегийвыполняетсячерез операторыSQL. Информацияотносительнопредоставленияи отмены привилегийприводитсяв документациипо конкретнойбазе данных.
Имена объектовбазы данныхдолжны отвечатьправилам именованияобъектов длябазы данных, в которой онисохранены. Этиправила различныдля разных базданных.
Среда разработкиСредаразработкиOPO внешне напоминаетставшую ужестандартнойсреду Visual Basic. Верхнийуровень иерархииобъектов OPO — этообъект ы File, изображенныхв виде иконокна основномокне средыразработкии которых можетбыть три типа:
Приложения(Application).
/>
ОбъектыБазыДанных(Database session).
/>
Библиотеки(Library).
/>
Каждаятакая иконкаможет бытьраскрыта вокно, содержащееобъекты нижнегоуровня иерархии.Копированиеобъектов междуоднотипнымигруппамиосуществляетсяпростым переносомиконок.
Присоздании иредактированииобъектов появляетсяинструментальнаялинейка и окноредактированиясвойств и методов.
/>
Впроцессе разработкеможно запускатьна выполнениекак все приложение, так и отдельныеэкраны (формы)и отчеты. Большуюпомощь приотладке можетоказать отладчик, функциональноаналогичныйотладчику вVisual Basic.
Важно отметитьвозможностьработать собъектами БазыДанных (таблицами, представлениями, индексами ит.д.) непосредственноиз среды разработкиOPO.
Вместе с тем, представлениеобъектов в видеиконок и раскрывающихсяокон удобнотолько привесьма небольшомих количестве.Когда числоиспользуемыхобъектов превышаетнесколькодесятков, становитьсяочень сложноориентироватьсясреди них иразбиратьсясреди множествараскрытых имешающих другдругу окон.Реализованныйв Forms 4.5 НавигаторОбъектов [3] заметноболее наглядени удобен. Большоечисло иконокв окне, а числообъектов (таблиц, представлений, индексов ипоследовательностей)в даже небольшойБД превышаетнесколькосотен, в Windows 3.1/3.11вызывает истощениесистемныхресурсов иприводит к еекраху.
Приложениеможно разделитьна четыре структурныечасти:
/>
Applicationи RecordSet представляютобращеннуюк пользователючасть приложения(Front End), Session и Database являютсячастью выполняющегосяна сервереприложения(Back End). В зависимостиот задач, требованийк сетевомутрафику ихарактеристикаппаратурынеобходимораспределятьлогику работуприложениямежду этимичастями. Обработкутранзакцийи поддержкуцелостностиданных можноосуществлятьво всех структурныхчастях приложения.
Основной частью(и видимойпользователю)частью приложенияявляется формаили экран(Form). При созданияэкранов можноприменять всестандартныеэлементы Windowsприложений- поля и метки, различногорода кнопки, списки и т.д.Экраны могутсодержатьвложенныеэкраны.
Удобнымявляется механизмзапроса поформе (Query By Form). Дляотображаемогов данный моментэкрана можновызвать экрандля ввода запроса, представляющийсобой копиюпервого экрана, в поля которогоможно ввестиусловия и критериивыборки. В результатена первом экранебудет информацияв соответствиис заданнымиусловиями. Приэтом экранзапроса тожеостается видимым.
Любая транзакциядолжна пройтичерез несколькоуровней, каждыйиз которыхиграет своюроль в управленииобработкойтранзакций.
Контейнеры. Контейнер – элемент интерфейса, через который пользователь инициирует запросы и изменения набора записей. После добавления, удаления или изменения записи пользователь перед закрытием контейнера должен фиксировать или аннулировать транзакцию (обычно, нажимая кнопку, предназначенную для этой цели – чаще всего, это кнопки ОК и Отмена (Cancel)). Кроме того, здесь определяют устанавливаемые на уровне клиента бизнес-правила, ограничивающие транзакции, которые может инициировать пользователь. Если система должна сообщить пользователю относительно результатов предпринятой транзакции, информация появляется здесь же, в интерфейсе пользователя.
Наборы записей. Прежде, чем пользователь сможет провести изменения в наборе записей, приложение выполняет проверку ссылочной и объектной целостности данных. Кроме того, приложение регулирует объем информационной нагрузки сети, при необходимости выборочно выполняя запрос строк базы данных, чтобы заполнить набор записей.
Сеансы. После прохождения уровней приложения и набора записей транзакция должна затем пройти через сеанс. Чтобы фиксировать или аннулировать транзакции, ассоциированные с данным сеансом, для объекта-сеанса могут вызываться несколько методов.
Базы данных. В конечном счете, инициированная пользователем транзакция достигает непосредственно базы данных, где процессор базы данных проверяет, завершена ли транзакция. Процессор базы данных может установить на сервере бизнес-правила, контролируя, не нарушает ли переданная транзакция правила защиты, и выполнять другие важные функции управления транзакциями. Если транзакция – запрос, процессор базы данных после этого передает требуемую информацию клиенту.
Следовательно, при управлениитранзакциямивнутри приложенияклиент/серверOracle PowerObjects предоставляетвозможностиустановлениябизнес-правил, регулированияинформационнойнагрузки сетии поддержанияцелостностиданных. Например, отдельноебизнес-правиломожет устанавливатьсякак ограничениебазы данныхили как частьприложения-клиента.
Подход к разработке, реализуемыйв Oracle PowerObjectsХороший стильпроектирования требует принятияважных решенийв самом начале, с тем, чтобыисключитьнеобходимостьповторениязначительныхобъемов работы.
В зависимостиот вида разрабатываемогоприложенияи используемогоинструментария, разработканачинаетсяс сервера базыданных или свнешнего интерфейса.Средства разработкиOracle PowerObjects позволяютсначала разработатьинтерфейспользователя, построив формы, отчеты и другиекомпонентыприложения-клиента.После того, какинтерфейспользователязавершен, принеобходимости, можно сформироватьпод него объектыбазы данныхи затем соединитькомпонентыинтерфейсас их связаннымитаблицами ипредставлениями, Обычно, еслипроектировщикработает сприложением, в котором длясоединениякомпонентоввнешнего интерфейсас сервером базыданных требуетсязначительныйобъем программирования, он откладываетнаписание этихпроцедур, покане будет удовлетворенинтерфейсомпользователяи пока не будутопределенывсе объектыбазы данных.В противномслучае, припереопределенииобъектов базыданных иликомпонентовинтерфейсаему придетсятратить многовремени наредактированияи переделкикода программы.
С другойстороны, высококачественныеинструментальныесредстваклиент/серверчасто требуют, чтобы их проектированиебыло начатос построенияобъектов базыданных, а затемуже был сформированвнешний интерфейс.Учитывая каксложность иважность правильнойорганизацииобъектов базыданных, так итрудностьуправленияотношениямисреди них, приразработкеэтих видовприложенийсервер базыданных должениметь приоритет.
В реальнойжизни, разработчикичасто переключаютсямежду серверомбазы данныхи внешниминтерфейсом, вместо исключительногопроектированияпервым тогоили другого,(Однако, обычно, все равно одинраздел приложениябазы данныхсначала получаетакцент, дажеесли впоследствииему не уделяетсяисключительноевнимание). Еслипроектировщикимеет яснуюсовокупнуюкартину требуемыхобъектов и ихотношений,Oracle PowerObjects помогаетсущественноупростить этотвид инкрементнойразработки.
Если начатьс клиентаОбычно, сразработкивнешнего интерфейсаначинают, когда…
Необходимо применить в приложении интерфейса клиента какие- либо производственные стандарты, например, для финансовых расчетов.
Необходимо сосредоточить усилия на обеспечении правильного выполнения приложением последовательности действий некоторого процесса.
Используются уже имеющиеся объекты базы данных, для которых необходимо просто сформировать интерфейс. Однако, при этом, все же, необходимо проверить, не требуются ли в связи с этим в базе данных некоторые небольшие модификации. Например, может быть принято решение о том, что инициирование отдельного бизнес-правила можно перенести с сервера на клиент, устраняя тем самым потребность в хранимой процедуре сервера, разработанной для этой задачи.
Приложение не предназначено для интенсивного доступа к базе данных, так что можно уделить больше времени интерфейсу пользователя.
В этих случаяхOracle PowerObjects позволяетпо отдельностипроектироватьи тестироватьразличные формыи отчеты, которыесоставляютинтерфейспользователя.Следовательно, разработкаприложения, которая начинаетсяс внешнегоинтерфейса, может выполнятьсяпошагово илифронтом: разработчикможет илипроектироватькомпонентыприложенияпоследовательноили работатьс несколькимикомпонентамиодновременно.На этом этапе, модификацииобъектов несоставляют проблем ивыполняютсяотносительнопросто, так какдоступ к базеданных еще неполностьюреализован.После создания форм, отчетов, классов и другихобъектов приложениярешаются вопросынавигации междуними и добавляетсяпрограммныйкод, в которомустанавливаютсябизнес-правилаи выполняютсязадачи обработкиданных (вычисления).
Объектыинтерфейсаи их связанныетаблицы илипредставленияможно такжеразрабатыватьпараллельно, так как таблицыи представленияструктурночасто дублируютформы и отчеты, в которых выводятсяих записи.
Если вначалеразрабатываетсявнешний интерфейс, следует ответитьна следующиевопросы:Какими будут главные формы, которые пользователь увидит на экране? Они будут, вероятно первыми объектами, которые должны быть спроектированы, наряду с их связанными таблицами или представлениями.
Какая модель последовательности действий будет заложена в приложение? Иными словами, следует тщательно продумать, как легко пользователь сможет вводить данные, осуществлять навигацию между формами и выполнять другие операции внутри приложения. Кроме того, необходимо оценить, как приложение организует работу пользователя и задает ли оно разумный темп при решении задач.
Какие объекты должны быть определены вне приложения Oracle Power Objects и затем импортированы? Например, если планируется добавлять растровые образы или другие OLE-объекты, возможно, вначале придется разработать некоторые из этих ресурсов приложения.
Где лучше и как лучше установить ограничения? Например, если требуется гарантировать, чтобы транзакция, введенная в приложении регистрации заказов, не содержала значений, превышающих некоторый объем, возможно, будет лучше установить это ограничение на клиенте через код Oracle Basic, а не на сервере через триггер. Для этого потребуется добавить необходимый код Oracle Basic, который будет прерывать транзакцию до ее фиксации, если она превышает установленный объем заказа.
Как лучше представить документ? В данном случае, «документ» — отдельный объект, такой как заказ на приобретение, который заполгяеься в приложении. Можно поместить каждое поле, которое будет содержать данные, относящиеся к заказу, на одной форме. Однако, для удобочитаемости, возможно, лучше будет разбить «мега-форму» на несколько меньших форм.
Какие компоненты интерфейса будут повторяться в приложении? Если имеются объекты, неоднократно появляющиеся в приложении, вероятно, их следует проектировать как пользовательские классы, сохраненные или в приложении или библиотеке, Экземпляры пользовательских классов мажно добавлять к формам и отчетам, вместо того, чтобы много раз генерировать одни и те же объекты. Например, если проектируется пользовательский набор средств управления для просмотра базы данных, следует создать их как класс, чтобы экземпляры одного класса легко могли наследовать изменения в исходном классе.
Главныйнедостатокпервоначальнойразработкивнешнего интерфейсазаключаетсяв том, что проектированиебазы данных– обычно, однаиз наиболееважных задачпри разработкепрограммногообеспечения, но в данномслучае к интерфейсупользователяприкованоосновное вниманиеразработчика.То, что хорошосмотрится вэкранной форме, может бытьтрудно выразимос помощью таблицыили представленияили даже несколькихсвязанныхтаблиц.
Основныефункции OraclePower Objects, которые позволяютначать разработкус внешнегоинтерфейса, включают:
Инструментальные средства GUI (графический пользовательский интерфейс) для быстрого создания новых объектов внешнего интерфейса.
Объекты приложений многократного использования, созданные как пользовательские классы или объекты библиотек.
Возможность всесторонне тестировать отдельные компоненты интерфейса пользователя, такие как главная форма приложения, до перехода к созданию других объектов приложения.
Отладчик периода выполнения, который может запрашивать свойства, тестировать код методов и выполнять другие важные проверки.
Если начинатьс сервера базыданныхПри этомподходе, прежде, чем приступитьк формированиюинтерфейса, проектировщикначинает сразработкимодели данных(разработкавсех таблици представлений).Необходимостьначать с объектовбазы данныхможет бытьобусловленанесколькимипричинами:
Приложение будет использовать большое количество таблиц и представлений сложной структуры. Проектировщики, которые работают с реляционными базами данных, знают, как важно иметь ясное представление относительно объектов базы данных и их отношений. Этим в дальнейшем предотвращаются проблемы, вызванные сколько-нибудь значительными корректировками этих объектов. Если в одной из таблиц отношения один-к-многим изменяется тип данного для ключевого значения, это может разрушить отношение между главной и подчиненными таблицами.
На сервере будет устанавливаться много ограничений. В таких случаях, до разработки интерфейса пользователя имеет смысл определить объекты базы данных, а также триггеры и хранимые процедуры, которые из защищают. Затем уже можно переходить к проектированию клиента, где эти ограничения будут использоваться. Примером использования ограничений может быть генерирование на сервере кодов ошибок и передача их в читабельном виде пользователю.
Интерфейс пользователя – лишь окно в базу данных. В случаях, когда поля формы – простое отображение таблиц и представлений сервера, проектированию интерфейса можно уделить меньше времени.
Защита сервера – приоритетная задача.
Для повышения производительности требуется вначале произвести на компонентах сервера специальные процедуры (например, индексирование или нормализацию таблиц).
Одни и те же таблицы и представления используются несколькими различными внешними интерфейсами.
Приложение использует сложные отношения один-к-многим или вычисляемые значения. В таких случаях требуется тщательно спроектировать таблицы и представления, чтобы отношения один-к-многим могли быть легко представлены внутри приложения. Кроме того, правильно построенная модель данных сэкономит время при работе приложения за счет уменьшения сложности уравнений, оперирующих данными.
Если проектированиеначинаетсяс сервера, имеетсявозможностьсформироватьэффективнуюмодель данных, отражающуюинформациюиз реальнойжизни. Объектомреальной жизниможет бытьлюбой объект(например, данныеслужащего, транзакциябухгалтерскойкниги, позицияинвентарнойведомости ит.д.), которыйтребуетсяописать в однойили большетаблиц.
Начиная проектированиес сервера базыданных, необходимоответить наследующиевопросы:Какие требуются объекты базы данных? Иными словами, что будет представлять собой модель данных?
Как следует оптимизировать структуру данных с точки зрения повышения производительности их обработки?
Какие таблицы или представления будут основными? Почти в каждой модели данных некоторые таблицы более важны, нежели другие. Следовательно, необходимо рассмотреть весьма вероятное событие, когда в сети клиент/сервер к этой таблице попытается обратиться много пользователей. Кроме того, необходимо предусмотреть меры защиты важных данных от разрушительных изменений (например, модификаций ключевых значений в отношении один-к-многим), а также от несанкционированного доступа. Для реализации этих мер имеется широкий диапазон средств – от определения пользовательских логических структур, ограничивающих доступ к объектам базы данных, до написания триггеров, которые при некоторых условиях предотвращают проведение изменений в базе данных.
Какие бизнес-правила целесообразно установить на сервере? Здесь необходимо балансировать между нежелательностью перегрузки сервера работой по обслуживанию каждого бизнес-правила и необходимостью установки на сервере важных ограничений, которые должны гарантировать целостность и согласованность данных приложений всех клиентов.
Как проектироватьпользовательскиеклассы и библиотекиПрежде, чемприступатьк разработкеприложения, необходиморассмотретьвозможностьнеоднократногоиспользованияв ходе разработкинекоторыхобъектов илинаборов объектов.Вот некоторыепримеры такихобъектов:
Эмблема компании, которая присутствует на многих формах и отчетах.
Набор средств управления, используемых для навигации по записям.
Набор элементов управления, используемых для фильтрования и сортировки записей.
Группа переключателей, используемых для обеспечения стандартного набора опций в нескольких формах
Ряд текстовых полей, выводящих в нескольких формах информацию заказчика, продавца или компании.
Создаваяэти объектыкак пользовательскиеклассы, сохраненныев приложенииили в библиотеке, разработчикполучает следующиепреимущества:
После того, как объекты созданы, добавление их к форме может выполняться простой операцией drag-and-drop.
В Oracle Power Objects экземпляры пользовательского класса или объекты библиотеки наследуют свойства и методы определения исходного класса. Точно также экземпляры наследуют изменения, проводимые в этих определениях. Следовательно, изменение часто используемых объектов приложения выполняется намного быстрее, если они создаются как экземпляры. При этом, чтобы провести изменение по всем экземплярам, требуется изменить лишь определение пользовательского класса или объекта библиотеки.
Решение посозданию объектаприложениямногократногоиспользованиякак пользовательскогокласса принимаетсяпо результатамответа на вопрос: этот объектбудет использоватьсяодин раз тольков данном приложении, или, возможно, он потребуетсяв несколькихприложенияхили несколькораз в одномприложении?
Если предполагается использовать объект в нескольких приложениях, целесообразно создать его как объект библиотеки (или как объект-библиотеку). Когда потребуется изменить объект, он выделяется в собственную библиотеку, подобную библиотеке динамической компоновке (DLL) в среде Windows.
Если планируется использовать объект только в одном приложении, можно создать его как пользовательский класс, При хранении пользовательского класса в приложении уменьшается количество поддерживаемых объектов-файлов.
Oracle Power Objects позволяет создавать как объекты библиотеки пользовательские классы и растровые рисунки. Пользовательские классы – наиболее применяемый тип объектов библиотеки, так как они обеспечивают все функциональные возможности как контейнеров, так и элементов управления.
Заключение
Суммируявышеизложенное:
База данных содержит объекты, предназначенные для хранения и организации информации.
Сеанс обеспечивает доступ к базе данных, а также к коллекции объектов базы данных, определенных логической структурой (схемой) пользователя базы данных.
Приложения внешнего интерфейса выполняют запросы базы данных, заполняя информацией наборы записей.
Наборы записейобычно связываютсяс объектами-контейнерами, которые непосредственнопредоставляютпользователюдоступ к данным, хранимым в базеданных.
Несмотряна то, что Oracle PowerObjects обеспечиваетобширный наборсредств дляразработкилюбых видовприложений, этот инструменториентировани предназначен, в первую очередь, для формированияприложенийбазы данныхв среде клиент/сервер.Используя одини тот же внешнийинтерфейс всистеме клиента, можно выбратьлюбую системууправлениябазами данныхпо критериямзащиты, эффективности, масштабируемостии другим важнымфункциям. Крометого, Oracle PowerObjects позволяетустанавливатьи поддерживатьспецифическиетребованияк данным средствамикак приложения-клиента, так и серверабазы данных.
OPO- новый продуктна рынке средствразработкиприложенийклиент/сервер.У него нет заспиной богатойистории развитияи как чистоинструментальногоязыка (Visual Basic, Delphi) икак инструментасоздания приложенийдля системыклиент/сервер(Forms). Первую версиюскорее можновосприниматькак заявку наместо на рынке, как демонстрациюновых идей.Если будетулучшен пользовательскийинтерфейс Средыразработки, введена полнаяподдержка OLE иособенно OLEAutomation, будут созданыдрайверы длядругих источниковданных, приразработкеможно будетиспользоватьрепозитарийприложения, то OPO действительноможет статьвесьма интереснымпродуктом.
Список литературы
Г.Анзер: «Oracle Power Objects», Мосва, АБФ, 1997
www.oraclub.trecom.tomsk.su/articles/mir-ora/program/23.htm