Научная статья на тему 'Анализ особенностей объектной и многомерной модели данных в СУБД Caché'

Анализ особенностей объектной и многомерной модели данных в СУБД Caché Текст научной статьи по специальности «Экономика и бизнес»

CC BY
202
22
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по экономике и бизнесу, автор научной работы — Фисун Н.Т., Горбань Г.В.

В статье рассмотрены объектная, многомерная и реляционная модели данных, их сравнение и объединение в постреляционной СУБД CACHÉ. Приведены примеры базы данных з использованием объектной модели данных. Предложен подход к созданию на основе многомерной модели OLAP -технологий и описано реализацию синтаксического алгоритма построения OLAP -куба.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Analysis of specific features of the objective and multidimensional data models in DBMS Cache

Objective, relational and multidimensional data model features are considered in this article. Also their comparison and combination in the post-relation database Cache are given. The examples of databases usage of the objective data model are presented. The approach to the creation of OLAP-technology based on the multidimensional data model is proposed and syntactical algorithm of realization of the building OLAP-cube is described.

Текст научной работы на тему «Анализ особенностей объектной и многомерной модели данных в СУБД Caché»

УДК 004.652

М.Т. Фкун, Г.В. Горбань

АНАЛ1З ОСОБЛИВОСТЕЙ ОБ'eКТНОÏ ТА БАГАТОМIРНОÏ МОДЕЛЕЙ ДАНИХ В СКБД CACHÉ

Загальна постановка проблеми та ïï зв'язок з науково-практичними задачами. У теперiшнiй час найпоширешшим щдходом до органiзацiï баз даних е реляцiйний. Реляцiйнi бази даних отримали великий ycnix, оск1льки даш в них зберiгаються у табличному формата i е доступними для кожного, хто знае структуровану мову запитав (SQL). Але плине час, i в даний момент з'являються шформацшш системи (1С), яш все часташе ставлять такi вимоги до обробки даних, яш вже випереджають можливостi реляцiйноï технологiï. Вони потребують використання рiзноманiтних даних, наприклад, зображень, звуку або вщео. Але SQL забезпечуе тiльки можливiсть хх збер^ання, а не обробки.

1ншою проблемою використання реляцшних баз даних е так звана «технолопчна невщповщшсть» мiж ними та сучасними технологiями розробки 1С . З одного боку, простота табличних структур тдтримуе SQL, але з iншого - декомпозиция реальних структур даних у рядки та стовпщ е досить непростою задачею. У результата отримуеться велика шльшсть таблиць, ввдношення м1ж якими досить важко запам'ятати та використати [1].

Альтернативою реляцшного подходу до оргашзацп баз даних е об'ектний. Вш дозволяе найбiльш природним способом записати об'екти в базу даних та забезпечити 1х зберiгання та машпулювання ними. Було опyблiковано три машфести об'ектно-орiентованих систем керування базами даних (СКБД) [2]. Основною вдеею першого манiфестy, який був опублжований у 1989 р., було те, що майбyтнi системи баз даних повинш бути системами об'ектно-орiентованого проектування, зберiгаючи традицiйнi можливостi систем баз даних. Такий пiдхiд був розвинений концорщумом ODMG (Object Database Management Group), який послщовно опyблiкyвав три версп специфiкацiï об'ектноï моделi даних. За основу була прийята базова об'ектна модель OMG COM (Core Object Model). За десять рошв свого юнування ODMG опубл^вала три версп страндарту, остання з яких мае назву ODMG 3.0. У цьому стандарта була описана об'ектна мова запитав (Object Query Language - OQL).

Наступний, другий машфест, що називався Манiфестом систем баз даних наступного поколiння, був опублшований у 1990 р. Його автори вважали, що в майбутньому системи баз даних повинш збертати вс властивостi SQL-орiентованих систем, але мати вдосконалену систему типiв даних. Даний машфест дав поштовх для розвитку об'ектно-реляцiйних систем, типовими представниками яких е СКБД Oracle, PostgreSQL, IBM DB 2.

Останнiй, третiй машфест був офщшно опyблiкований у 1995 р. Його авторами були Кристофер Дейт та Хью Дарвен, яш зазначали, що треба повернутись до реляцiйноï моделi, переосмисливши ïï таким чином, щоб допустити зберiгання у нш даних, типи яких визначае користувач [2].

На даний час об'ектний шдхвд в системах баз даних все ж ще не набув тако].' попyлярностi, як реляцшний. Головною завадою до цього е те, що SQL стала невщдшьною частиною таких важливих фyнкцiй шформацшних технологiй, як генерацiя звiтiв i аналiз даних, i, звичайно, е компонентом систем обробки транзакцш (OLTP). Тому багато розробникiв сучасних СКБД намагаються об'еднати як реляцiйний i об'ектний пвдходи до моделей даних, так i забезпечити технологшчну сумюшсть з системами (засобами) розробки прикладного програмного забезпечення (ПЗ). Однiею iз таких сучасних розробок на даний час, на думку авторiв, е розроблена у шнщ 1997 р. американською фiрмою InterSystems нова СКБД Caché, яка позицюнуеться як постреляцшна. Ïï yнiкальнiсть полягае у тому, що ïï основою е едина архитектура даних, яка поеднуе у собi як об'ектну так i реляцшну модель даних, якi спираються на оригiнальнy багатомiрнy модель даних i е максимально синхрошзованими. Це означае, що базу даних, яка описана як об'ектна, можна представити як реляцшну, i навпаки, реляцшну базу даних можна представити як об'ектну. Таким чином, СКБД Caché тдтримуе три моделi даних: об'ектну, реляцшну та багатомiрнy. Об'ектна модель даних дозволяе природним чином використовувати методолопю об'ектно-орiентованого програмування (ООП) при створенш прикладного ПЗ до бази даних, а багатомiрна модель робить природним використання OLAP-технологш (OLAP - Online Analytical Processing). Вщомо, що багатомiрне предсталення даних (OLAP-куби) е i в багатьох реляцшних серверних СКБД (Oracle, MS SQL Server), в них е також розвинута функци для задач Datamining. Що стосуеться СКБД Caché, то задачi OLAP та Datamining в нш ще не реалiзованi, тому тема дано!! статгi представляеться актуальною.

Огляд публжацш та анал1з невир1шених проблем. На жаль, на даний час у пострадянському просторi е доволi мало пyблiкацiй, присвячених СКБД Caché. Основною публшащею, що була видана росшською мовою, е робота шмецьких спецiалiстiв [3], яка була видана у 2001 р. Слад зазначити, що вона була перевидана i доповнена у 2008 р. [4]. Дана робота е достатньо повним керiвництвом по СКБД

Caché, в нш детально описуються моделi даних Caché, мова програмування Caché Object Script, зв'язок Caché з ActiveX та Java та розробка веб-сторшок Caché.

1ншою публжашею про СКБД Caché е [5]. Дана робота також досить детально описуе структуру Caché, але в нiй робиться бiльш глибокий акцент на об'ектну модель даних.

Таким чином, е двi основш фундаментальнi працi щодо СКБД Caché, видаш росiйською мовою. Але для спрощення вивчення дано'' СКБД деяш провiднi росiйськi технiчнi унiверситети видали методичш посiбники з Caché [6], [7], [8]. Слад зазначити, що в робот [6] пояснюються вади роботи з Caché, грунтуючись на прикладi реально'' системи, що була створена на основi дано'' СКБД. Такою системою е база даних бiблiотеки. Робота [7] представляе собою стислий огляд дано'' СКБД, вона також мшить приклади програмного коду на мовi Caché Object Script. Робота [8] представляе собою методичш вказiвки до лабораторних робгг в СКБД Caché.

Що стосуеться включения до складу СКБД Caché тдсистем (служб, компоненпв) Datamining або 'х реалiзацiï у якосп доповнення до СКБД Caché, то таких джерел авторами не знайдено.

Результата дослiджень. Було проаналiзоваио об'ектна, реляцiйна та багатомiрна модель даних Caché та створений OLAP-куб у данш СКБД. За основу була взята база даних деяко'' торговельно'' компанп, що була описана в робот [9], авторами яко'' е автори дано'' статтi. Даталопчна модель бази даних мае такий виг ляд:

Рис. 1. Даталогiчна модель бази даних торговельно'' компанiï

В результата база даних була спроектована в СКБД Caché 5.2 за допомогою об'ектного пiдходу до проектування баз даних. Для початку слад описати об'ектну модель Caché.

Об'ектна модель Caché. Взагалi об'ектна модель даних характеризуеться наступними властивостями:

1.Базовими поняттями е об'екти й лггерали. В даному контекстi пвд литералами розумшться класи типiв даних. Кожний об'ект мае унiкальний iдентифiкатор, лиерал - нi.

2.Стан об'екта характеризуеться його властивостями, поведшка об'екта характеризуеться його методами (операшями). Усi об'екти одного типу мають однакову поведшку (набiр операцiй) i однаковий дiапазон змiни властивостей.

3.Властивостями можуть бути атрибути об'екта або зв'язки мгж об'ектом i одним або декшькома iншими об'ектами.

4.Поведiнка об'екта визначаеться набором операцш, як1 можуть бути виконаш над об'ектом, або самим об'ектом. Операцп можуть мати список вхвдних i вихвдних параметрiв строго певного типу. Кожна операщя може також повертати тишзований результат.

База даних збертае об'екти, дозволяючи спшьно використовувати гх рiзним користувачам i додаткам. База даних заснована на схемi даних, що обумовлена мовою визначення даних, i мютить екземпляри титв, що визначенi схемою [7].

Об'ектна модель Caché розроблена у вщповвдшсп до стандарту ODMG. Вона включае в себе:

1. Класи титв даних - спещальш класи, що визначають припустимi значення констант i

контролюють 1х (данi класи не можуть утворювати екземпляри);

2. Класи об'екпв - класи, що визначають структуру даних та поведшку об'екпв одного типу.

Далi класи об'екпв пвдроздшяються на такi класи:

• Незареестроваш класи - класи, що не мають н1яко1 визначено1 поведшки;

• Зареестрованi класи - класи, що мають повний набiр методiв управлiння поведiнкою об'ектiв у пам'ятг 1х екземпляри iснують лише тимчасово у пам'яп процесу, тому по шшому гх можна назвати тимчасовими класами;

• Збережеш класи - класи, яш можна тривалий час збертати у 6a3i даних. Ц можливостi вони наслвдують ввд системного класу Caché %Persistent;

• Вбудоваш класи - класи, як1 також зберйаються у бaзi даних, але на вiдмiну ввд збережених, вони можуть бути збереженi в бaзi даних тiльки тодi, коли вони вбудоваш в iншi об'екти. Свою поведшку так1 класи нaслiдують ввд системного класу Caché %SerialObject.

Об'ектом е екземпляр деякого класу об'ектш. У СКБД Caché об'екти проявляються у двох рiзних формах: у пам'яп процесу, що створив об'ект, та у виглядi збережено1 версп об'екта у бaзi даних. При цьому в зaлежностi вiд цих форм розрiзняють два види посилань на об'ект:

• Тимчасове об'ектне посилання (Object Reference - OREF) у пам'ятц

• Довгостроковий об'ектний щентифжатор в бaзi даних (Object Identificator - OID). Як правило,

вш використовуеться для пошуку об'екта в бaзi даних та для його завантаження в пам'ять.

OID складаеться з двох частин: iменi класу об'ектiв та ID, що е ушкальним в границях класу. Таким чином, OID е об'ектним аналогом первинного ключа для реляцшно1 моделi даних. Але з шшого боку, OID не е первинним ключем, осшльки на вiдмiну вщ первинного ключа в реляцiйнiй бaзi даних, вiн нiколи не змiнюеться. Слiд зазначити, що при збер^анш нового об'екта в бaзi даних, Caché автоматично надае йому OID.

Як тшьки об'ект потрапляе у пам'ять, йому надаеться OREF. Вона може бути використана для того, щоб отримати доступ до властивостей та методiв об'екта. 1ншими словами OREF е вкaзiвником на об'ект, що мае силу лише до того часу, поки об'ект знаходиться в пам'яп процесу.

Об'ект одного класу може мати посилання на об'ект шшого класу. В пам'ят вони реaлiзуються через OREF, а в бaзi даних - через OID. Посилання на шший об'ект класу е властивютю класу. Слд також зазначити, що в Caché юнують спешальш посилання на об'екти шших клаав - ввдношення (Relationship). Вони забезпечують цiлiснiсть бази даних. 1снують так1 типи вiдношень: «один до багатьох» - з одше1 сторони е один об'ект, а з шшо1 - багато; «багато до багатьох» - з обох сторш iснуе бiльше одного об'екту; та специфiчнi для об'ектно1 моделi даних вiдношення: «об'ект-батько» та «об'ект-нащадок». Так1 вiдношення мiж об'ектами мають мiсце при гх нaслiдувaннi. Слад зазначити, що наслвдування об'ектiв в контексп вищеописано1 бази даних не використовуеться, а використовуеться тшьки ввдношення «один-до-багатьох».

Рис. 2. Дiaгрaмa кгаав бaзи дaних торгiвельноï компaнiï

У резyльтaтi, спирaючись нa вищеописaнy модель дaних, aвтори дaноï стaттi предстaвили всi тaблицi вищеописaноï бaзи дaних як клaси. Слiд зaзнaчити, що до бaзи дaних 6уло додaно вбyдовaний клaс Address, що предстaвляe собою aдрес мaгaзинy, який мae тaкi влaстивостi: Street (вулиця), Number (номер будинку), Ind (додaтковий iндекс до номеру будинку), PostIndex (поштовий iндекс).

Також до класу FactSales (об'ектний аналог таблиц факпв продажу) було створено метод: Print (вивщ властивостей класу на екран).

Таким чином, база даних торгiвельноï компани у ïï об'ектному представленнi стала мати такий вигляд (вказанi iмена властивостей класiв, як1 описанi в Caché):

На данш дiаграмi двостороншми (рис.2.) стрiлками показанi ввдношення (Relationship) мгж об'ектами, а одностороннiми - прост посилання (Reference) на об'екти. Вщмшшстю простого посилання вiд ввдношення е те, що посилання дiе зi сторони тiльки одного об'екта, наприклад, е посилання з класу FactSales до класу Month. I це щлком природно, тому що для кожного фактичного продажу вказуеться мюяць. Але у клаа Month не мае нiякоï шформацп про те, яш продаж! мали мюце у той чи шший мюяць.

Зовам по шшому вiдбyваеться справа з ввдношеннями: вони завжди мають мiсце м!ж двома об'ектами. У даному прикладi використовуються ввдношення «один-до-багатььох». Наприклад, класи Shop та Region використовують такий тип ввдношення. Кожний магазин знаходиться у певному репош, у той же час в одному репош знаходиться дек1лька магазишв. На дiаграмi класiв дане ввдношення представляеться з одного боку властивютю Region класу Shop, що представляе собою OREF на певний об'ект класу Region. А з шшого боку це ввдношення представляеться властивютю Shop класу Region. Треба звернути особливу увагу на те, що ця властивiсть представляе собою не один OREF на клас Shop, а колекцш OREF на цей клас. I це е ще одним «ноу-хау» об'ектноï моделi даних Cache - властивосп клаав можуть представляти собою не тшьки певне значения деякого типу даних (Integer, Float, Double, Char та ш.) або певну OREF на певний об'ект деякого класу, але й колекцш значень певного типу даних або OREF на об'екти клаав. £ 2 типи клаав: колек^-список та колекца-масив. В контексп розглянутого прикладу використовуеться колекщя-список. Детальне пояснення колекцш зус^чаеться в робот [4].

Робота з класами в СКБД Caché. Взагалi система Caché представляе собою ш6!р рiзноманiтних утили, основними з яких е Caché Studio, Термшал та Портал Управлшня Системою.

Cache Studio призначена для створення та редагування класiв та програм. Вигляд середовища Caché Studio представлений на рис. 3.

Studio

Wi Файл Редактировать Просмотр Прое ■ i. j. a a j .j lj .4 12 .

* t v Г .

li'. Собрать Отладка 11 струыекть Утилйгы Окна Спра&ка

Фактич! продаж!

Class Sales.FactSales Extends %Persistent " {

Property FactMonth As Month [ Required ];

Property FactShop As Shop [ Required ];

Property FactProduct As Product [ Required ]; /// Суыа

Property Sum As %Float;

: □ Query Find(month As %String, shop As %String, product As %String) As %SQLQuery i

SELECT FactMonth->CodeMonth,FactShop->NameShop,FactProduct->NameProduct,"Sum" FROM Sales.FactSales

WHERE {(FactMonth->CodeMonth=:month) & (FactShop->NameShop=:shop) & (FactProduct->NameProduct=:product)) }

jEMethod Print () As %Status {

write write write write

,"М1сядь: ",..FactMonth.CodeMonth ,"Магазин:. ",..FactShop.NameShop ,"Товар: ",..FactProduct.NameProduct t "Сума: "/..Sum,!

в~ё 3 SalesDB (CACHEWEBiUSER)

□■■■fa Классы

В-Ш Sales

• 5 ' artSalp"; =

Month

" 5 Produit

• ■ Productsüfoup

Q.yitci

" • top»

Shop

1 •»!■ Year -

>1 '■■Проект д Окна Д Область/''

IF

I Значение

Abstract

□a ss Туре

ClientDataType

ClientName

CompileAftei

DdlAllowed

DependsOri

Description

Final

Hidden

Import

S aies. FâctS al'

persistent HANDLE

Компиляция Компиляция программы Sales.FactSales.1 успешно завершена за 0.437 сек.

H 4 ► H \ Резуп тат Д Искать в файлах / [j < M

Готово CAP NUM OVR ЧИТАТЬ

Рис. 3. Редагування класу в CacheStudio на прикладi класу FactSales

На рис. 3 показано, як описаний клас FactSales в середовищi Caché Studio мовою Caché Object Script. На даному прикладi визначеш властивосл класу за допомогою слова Property. Також е запит (детальшше запити будуть розглядатися в описанш реляцiйноï моделi даних Caché трохи нижче) та метод. Даний метод виводить на екран мюяць, магазин, товар та суму, що стосуються певного продажу.

Сл^ звернути увагу, що для виводу на екран коду мюяця, назви магазину та назви товару використовуеться такий синтакис, як «..FactMonth.CodeMonth», «..FactShop.CodeMonth», та «..FactProduct.NameProduct». Двi крапки попереду в цих записах означають, що даш властивостi

вщносяться до екземпляру класу, до якого був викликаний цей метод. Точки шсля FactMonth, FactShop та FactProduct означають посилання на певний об'ект ввдповщно мiсяця, магазину та товару, осшльки в клас FactSales iснують тiльки OREF на ш об'екти. Таким чином, зв'язок мгж об'ектами у Caché представляеться за допомогою точкового синтаксису.

Безиосередньо робота з базою даних ввдбуваеться у Термшал1 Caché.________

■ Cache TRM : 5216 [САС H ЕW Е В) Файл Редактировать Справка

Узел: Hoir.epc, Экземпляр: CACHEME3

USER>set fs=##class (Sales . FactSales) . %OpenId(248>

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

USER>do f s. Print ()

М±сяць: 2007-03 Магази:-!: . Сяйво Товар: ЕезалкогольMi :-ianoI Сума: 13141.44

USER>write f s. FactMontл. CodeMonth 2007-03

USERï-write fs.FactShop.CodeShop 52

USERï-wrlte f s. FactFroduct. CodeFroduct F2

USER>

I -

Рис. 4. Термшал Cache

Термiнал Caché дозволяе роботу з об'ектами бази даних у режимi командного рядка. Так на рис. 4 показаний приклад роботи з об'ектами. Був ввдкритий екземпляр класу FactSales (перед шею назвою назва Sales означае пакет) з ID №248. Попм був викликаний метод екземпляру класу Print(), який b™íb на екран мюяць, назву магазину, назву товару та суму продажу. I на сам шнець було показано, як можна виводити на екран певш властивоста об'екта.

Використовуючи Термшал, можна додавати, модифшувати та видаляти об'екти з бази даних. Командами Термшалу е вирази мови програмування Caché Object Script.

Реляцшна модель Caché. У рамках едино1 архiтектури даних iерархiя клаав Caché моделюеться неоднаково: в об'ектш моделi - у виглядi об'ектав, а в реляцiйнiй - ввдповщно у виглядi реляцiйних таблиць. Проте, як би дивно це не було, мова йде про едине визначення даних i про щентичш, однократш данi, що зберiгаються.

Крiм того, вiдповiднi об'ектнi поняття сшввщносяться з ввдповвдними реляцiйними поняттями [4,5]. Це показане в табл. 1.

Тaблиця 1

Об^итш поняття i ïx реляцiйнa проекцiя

Об'ектне поняття Реляцтне поняття

Шкет клaсiв Схема (табличний npocTip)

Клaс Таблиця

Екземпляр Рядок

^ентифтатор об'eктa (OID) ID-стовпець у виглядi первинного ключа

Влaстивiсть-констaнтa Стовпець

Посилaння нa збережений об'eкт Зовшшнш ключ

Вбyдовaний об^кт Iндивiдуальнi сговпщ

Колекцiя-список Стовпець з полем-списком

Колекцiя-мaсив Щдгаблиця

Потiк дaниx Binary Large Object (BLOB)

1ндекс 1ндекс

Зaпит Збережена процедура або представлення

Метод клaсy Збережена процедура

Але деяш об'ектш поняття все ж не мають аналопв у реляцшному cbítí. Це параметри клаав, тимчасов1 властивостц властивосп, що обчислюються, та методи екземпляр1в. I навпаки, реляцшне поняття тригеру не мае свого аналогу в об'ектнш модел1 даних.

В Caché для доступу до реляцшно1 бази даних використовуеться стандартна мова запипв до бази даних - SQL. Але у Caché вона е дещо модифжованою (були додаш деяш додатков1 досить ефективш оператори) i мае назву Caché SQL.

Для реляцшного представлення бази даних в Caché використовуеться утилгга пвд назвою Портал Управлшня Системою. Звюно, вона використовуеться в багатьох аспектах роботи Caché (адшшстрування, 1мпорт та експорт клас1в, створення резервно1 копи бази даних та ш.). Портал Управлшня Системою е web-орiентованим i слад зазначити, що з'явився вш досить недавно, тшьки у версп Caché 5.1. У попередшх вераях до Caché входили таю утилгш як SQL-менеджер, проводник, панель управлшня, редактор конфцурацп, як1 вс згодом були замшеш на Портал Управл1ння Системою, який включив в себе функци кожно1 з цих утилгт. В даному випадку Портал Управл1ння Системою розглядаегься в kohtckctí реляцшного представлення та виконання запипв мовою Caché SQL.

Выполнить SQL Выражение | Таблицы | Представления | Хранимые процедуры | Кеширопанные Запросы |

SQL таблицы из схемы Sales в области USER:

I Фильтр: Размер страницы : ~ Найдено элементов: в

^Имя Владелец Последняя компиляция Внешний 1 Только для чтения Имя класса

FactSales _SYSTE:M 2011-04-03 15:43:33 0 0 Sales.FactSales CmenTable Удалить

Month _SYSTE:M 2011-03-30 17:12:06 0 0 Sales.Month CmenTable Удалить

Product _SYSTE:M 2011-03-30 14:03:36 0 0 Sales.Product QpenTable Удалить

ProductsGroup _SYSTEM 2011-03-30 14:03:36 0 0 Sales. ProductsGroup QpenTable Удалить

Ouorter _SYSTE:M 2011-03-30 17:12:06 0 0 Sales.Quorter QpenTable Удалить

Reqion _SYSTE:M 2011-03-30 14:41:02 0 0 Sales.Region QpenTable Удалить

Shoe _SYSTE:M 2011-04-02 14:26:41 0 0 Sales.Shop QpenTable Удалить

Year _SYSTE:M 2011-03-30 17:02:09 0 0 Sales.Year QpenTable Удалить

Количество строк, загружаемых: при открытии таблицы: 100

Рис. 5. Веб-сторшка 3Í списком таблиць у Порталi Управлiння Системою Sales.FactSales в области USER

# ID FactMorith FactProduct FactShop Sum

1 1 1 19256.16

2 2 2 17894.5

3 3 3 18872.18

4 4 4 18318.8

5 Б Б 58255.05

6 6 6 17846.4

7 7 1 2 20246.4

S 8 2 2 15273.5

9 3 2 12344.8

10 10 4 2 24697.5

11 11 5 2 43087.2

12 12 6 2 19378.32

13 13 1 3 24059.52

14 14 2 3 14109.97

1Б 15 3 3 17476.48

16 16 4 3 19592.32

17 17 5 3 43552.,51

18 18 6 3 24209.9

19 19 1 4 30570.76

20 20 2 4 11351.26

21 21 3 4 16219.35

22 22 4 4 21392.64

23 23 5 4 44299.2

Рис. б Фpaгмент тaблиц

FactSales у Поpтaлi Упpaвлiння Системою

Слщ зазначити, що в даному приклащ поля таблиц FactMonth, FactProduct та FactShop представляють собою не що iнше, як ID ввдповвдних об'екгш, як1 у реляцшному представленнi також представленi як таблищ.

Також на Порталi Управлшня Системою виконуються SQL-запити.

Введите SQL запрос, который Вы хотите запустить в области USER используя нижеслед

| Исполнить запрос | | Показать план запроса | | История запросов"] [ Построитель запросов | Показать: Log

SELECT FactMonth - i-CodeMonth , F act Shop-> I4ame Shop, FactProduct ->NaineProduct j "Sum" FROM Sales . FactSales WHERE ((FactMonth->CodeMonth=1200S-021) & (FactShop->CodeShop=1S2') & (FactProduct-> Code Prod uct ='P31))

Последнее обноелеь

Результаты исполнения SQL запроса показаны ниже:

SQLCODE: 100 Количество строк: 1 Быстродействие: 0.127 Секунд 2760 глобальных ссылок

# CodeMonth NameShop NameProduct Sum

и 2008-02 Сяйво | Хл1бо-булочн1 вироби| 13916.71

Завершено

Рис. 7. Приклад виконання запиту

Розглянувши синтаксис даного запиту, у ньому можна помггати символи "->" та "&", яш до цього в SQL не викорстовувались. Данi символи е новими для SQL у Caché: «->» е посиланням на об'ект, а «&» - логiчною операцiею кон'юнкци. Треба також вказати, що звична для SQL операцiя «AND» також присутня в CachéSQL.

Порiвняння об'ектно'1 та реляцiйноï моделi даних. Таким чином, були розглянуп об'ектна та реляцшна модель даних у Caché. Кожна з них мае переваги та недолши. I тому поки не iснуе чiткоï вiдповiдi, яка модель е кращою за шшу.

Оскiльки в об'ектнiй моделi вс об'екти зберiгаються в базi даних тшьки зi своïми OID i за ïхньоï допомоги вони тдтримують зв'язки один з одним, це значно прискорюе обробку даних. Коли деякий об'ект завантажуеться в пам'ять, OID зв'язаних з ними об'екпв автоматично завантажуються по мiрi звертання до них через посилання на перший об'ект. Тому необхщшсть виконання операцп JOIN, як в реляцшнш моделi, вiдпадае. Саме з використанням OID та 1'х динамiчним тдзавантаженням i пвдвищуеться продуктивнiсть об'ектно1 СКБД. Так1 СКБД краще за все використовувати для таких додатшв, у яких потребуеться часта або цикл1чна навiгацiя за об'ектами, якi зв'язаш мiж собою.

Однак, для додатшв, як виконують так1 операцiï як завантаження бази даних; створення, оновлення i видалення таблиць та запиав у таблицях; витягнення одного або дешлькох записiв таблицi, як1 задовольняють певним умовам; прийняття транзакцiй; об'ектш СКБД не мають переваги у порiвняннi з реляцiйною. Детально це питання розглянуто у роботах [5],[10].

Багатомiрна модель даних Caché та створення OLAP-кубу в Caché. Великим достошством СКБД Caché е ïï багатомiрна модель даних, яка представляеться у такий спосiб:

А(и j, к, I, m) = Ai]klm ,

де A - рядок змшно1' довжини, корiнь дерева; A(i) - рядок змшно1' довжини, перший рiвень дерева; A(i,j) - рядок змшно1' довжини, другий рiвень дерева; A(i,j,k) - рядок змiнноï довжини, третш рiвень дерева; A(i,j,k,l) - рядок змшно1' довжини, четвертий рiвень дерева; A(i,j,k,l,m) - рядок змiнноï довжини, п'ятий рiвень дерева [6].

На вщмшу вiд класично1' iерархiчноï моделi даних структура дерева не декларуеться. Дерево розростаеться динамiчно, маючи справу з единим типом даних - рядком змшно1' довжини. Саме таким способом Caché i збертае даш, у тому чи^ i об'екти клаав. Так1 структури даних отримали назву «Глобали», щоб пiдкреслити, що вони вщносяться до всiеï бази даних, а не до одного якого-небудь додатка. Ва iмена глобалiв починаються з символу «л».

Дуже важливим е те, що немае шяких вимог до структурованосп, однородности, регулярносп збережено'' в глобал1 шформаци. У якоси вим1р1в глобалу можуть бути не пльки цш числа, а й дшсш числа, й рядки. Це позбавляе необхвдносп перетворювати даш перед записом в глобал - ïx можна записувати такими, якими вони е. Також немае необхщносп у попередньому визначенш розм1рноси масиву. Це стае можливим завдяки концепцiï розрвджених масив1в, коли займають м1сце в пам'яп лише юнуюч1 записи. Все це безумовно е передмовою створення ефективноï OLAP-технологи в СКБД Caché.

У робот1 [9] авторами дослвджувались синтаксичш алгоритми створення ОЬАР-куб1в, як1 були апробоваш для об'ектно-реляцiйноï' СКБД PostgreSQL. У данш робот автори скористалися одним з алгоритмш, що мае назву багатопозицшного агрегування багатовим1рного масиву. На рис. 8 показаний результат створення OLAP-кубу в Caché за даним алгоритмом. Для перегляду використовуеться web-ор1ентований Портал Управлшня Системою._

Маска поиска глобалов: *sa|es Cube

История поиска:

1

2

3

4

5

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6 7 S

9

10 11 12

13

14

15

16 17 IS

19

20 21 22

23

24

25

26 27 2S 29

"Sales.Cube »■

Максимально строк:

100

"Sales, "Sales, "Sales, "Sales. "Sales, "Sales, "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales. "Sales.

Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube Cube

2007-Э1 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01 2007-01

ALL","ALL")

ALL","Алкогольна Hanoi") ALL","Безалкогольн1 наго!") ALL","Кондитерськ1 вироби") ALL","M'HCHi продукти") ALL","Молочн1 продукти") ALL","Хл1бо-булочн1 вироби") Сяйво","ALL")

Сяйво","Алкогольн1 Hanoi") Сяйво","Безалкогольн1 Hanoi") Сяйво","Кондитерськ! вироби") Сяйво","М"ясн1 продукти") Сяйво","Молочн1 продукти") Сяйво","Хл1бо-булочн1 вироби") Зоря","ALL")

Зоря","Алкогольн1 Hanoi") Зоря","Безалкогольна Hanoi") Зоря","Кондитерськ1 вироби") Зоря","М"ясн1 продукти") Зоря","МОЛОЧН1 продукти") Зоря","Хл1бо-булочн1 вироби") Каштан","ALL") Каштан","Алкогольн1 Hanoi") Каштан","Безалкогольн1 напо!") Каштан","Кондитерськ1 вироби") Каштан","Н"ясн1 продукти") Каштан","Нолочн! продукти") Каштан","Хл1бо-булочн1 вироби") Поом1Нь". "ALL" ■>

Ql оказать Отмена

ПРаар ешить редактирование

716165.14 116679.64 69577.23 1Э1364.06

246579.08 99796.26 82168.87 135027.72

20246.4

15273.5 24697.5 43087.2 19378.32 12344.S 144202.21 30570.76 11351.26 21392.64 44299.2 20449 16219.35

150443.09 19256.16 17894.5 18318.8 58255.05 17846.4 18872.18 143411.42

Рис. 8. Результат створення OLAP-кубу в Cache

Так з рис. 8 видно, що iндексами багатовимiрного масиву виступають не цш числа, до яких Bci звикли, а рядки. Перший iндекс е кодом мюяця в базi даних, другий - назвою магазину, в якому мав мюце продаж, а третш - назвою товару, який був проданий. Значения "ALL" для будь-якого шдексу означае агреговане значення за цим вимiром. Значення ASales.Cube("ALL","ALL","ALL") представляе собою сумарне значення всього кубу.

Також дуже зручною у Порталi Управлшня Системою Caché е операщя знаходження певного значення кубу. Для ïï використанна пот^бно значи лише мюяць, назву магазину та назву товару. Тако1 операцп зображений на рис. 9.

Маска поиска глобалов: *Sales.Cube["2007-12", "Тюльпан","Xni&o-6yno4Hi вироби") Показать | Отмена

История поиска: "Sales.Cube("2007-12","Тюльпан","ХшЁо-булочш вироби"} ■»■ ^Э Максимально irr рек: 100

1: ASales.Cube("2007- 12","Тюльпан","Хл1бо-булочн1 вироби") = 15823.26

Всего: 1 [Конец гл об a raj

Рис. 9. Приклад знаходження певного значення кубу

В даному випадку агрегованим значениям е сума. Однак юнуе багато iнших агрегованих функцiй як середне значення, максимум, мшмум i т. д . Pi3rn агрегатнi функцй' з кубом поки ще не були реалiзованi, однак авторами ведеться робота за цим напрямком. Також плануеться на основi OLAP-кубу спробувати реалiзувати технолопю DataMining у СКБД Caché.

Висновки та перспективи подальших дослiджень. Було проаналiзоваио об'ектну, реляцiйну та багатомiрну модель даних, апробовано кожну з них на приклащ бази даних торговельно1 компани в СКБД Caché та створено OLAP-куб у нш.

Caché е СКБД, яка, завдяки единш архiтектурi даних дозволяе поеднувати три моделi даних: об'ектну, реляцшну та багатомiрну. В об'ектнiй моделi даиi представляють собою екземпляри клаав, у реляцiйнiй - таблицi, у багатомiрнiй - багатомiрнi масиви. У СКБД Caché об'ектна та реляцшна модель даних спираютьяс на багатомiрну, оск1льки ядро цiеï системи е багатомiрним. Даиi зберiгаються у Caché в багатомiрних структурах даних, що в свою чергу е важливою передумовою для створення ефективноï OLAP-технологи.

Результатом дослщженя стало створення OLAP-кубу. У подальшому авторами плануеться розробка технологи DataMining на основi OLAP-технологш.

Л1ТЕРАТУРА:

1. Технологический справочник СУБД Cache. Режим доступу: http://www.intersystems.ru/cache/technology/techguide/index.html.

2. Кузнецов С.Д., Базы данных: языки и модели. Учебник - М.: ООО «Бином-Пресс», 2008. - 720 с.: ил.

3. Кирстен В., Ирингер М., Рёриг Б., Шульте П. СУБД Cache: объектно-ориентированная разработка приложений. Учебный курс. - СПб.: Питер, 2001. - 384 с.: ил.

4. Кирстен В., Ирингер М., Кюн М., Рериг Б. Постреляционная СУБД Cache 5. Объектно-ориентированная разработка приложений. - 3-е изд., перераб. и дополн. - М.: ООО "Бином-Пресс", 2008. - 416 с.: с ил.

5. Труб И.И. СУБД Cache: работа с объектами. - М.: Издательство ДИАЛОГ-МИФИ, 2006. - 480 с.

6. Кречетов Н.Е, Петухова Е.А., Скворцов В.И., Умников А.В., Щукин Б.А. Постреляционная технология Cache для реализации объектных приложений. - М.: Московский государственный инженерно-физический институт, 2001. - 152 с.: с ил.

7. Иванчева Н.А., Иванчева Т. А. Постреляционная СУБД Cache. - Новосибирск: Новосибирский государственный университет, 2004. - 120 с.: с ил.

8. Разработка приложений баз данных данных в архитектуре клиент-сервер для СУБД Cache. Сост., Шиловский О. А., Давыдов Д. А. - Волгоград: ВолгГТУ, 2005. - 38 с.

9. Фюун М.Т., Горбань Г.В. Дослщження та реалiзацiя синтаксичних алгорштшв створення OLAP-к^в //Вестник Херсонского национального технического университета. 2010. №2(38). С. 110-117.

10. Ким Вон. Технология объектно-ориентированных баз даннях //Открытые системы. 1994. №3. С. 3042.

МИКОЛА Тихонович Фюун - доктор техшчних наук, професор, заидувач кафедри штелектуальних шформацшних систем, Чорноморський державний ушверситет iменi Петра Могили.

Науковi штереси: штелектуальш шформацшш системи та CASE-засоби 1х створення, системи автоматизованого проектування, бази даних та бази знань.

ГЛ1Б Валентинович Горбань - астрант кафедри штелектуальних шформацшних систем, Чорноморський державний ушверситет iменi Петра Могили.

Науковi штереси: бази даних та бази знань, OLAP-технологiï, об'ектно-орiентована методологiя створення програмного забезпечення, системне програмування, програмнi продукта та технологи Microsoft.

i Надоели баннеры? Вы всегда можете отключить рекламу.