
- •1.1 Кіріспе. Деректер және ақпарат. Аж түрлері.
- •1.2 Деректер қоры негізінде ақпараттық жүйені құрудың техникалық-ұйымдастыру проблемалары.
- •2.1 Негізгі концепциялары. Деректер тәуелсіздігі. Деректердің негізгі компоненттері.
- •2.2 Деректер қорының архитектурасының деңгейлері.
- •2.3 Деректер қорын басқару жүйелері (дқбж). Инфологиялық және даталогиялық жақындау мәні.
- •3.1 Пәндік саладағы концептуальды модель. Логикалық модельдер.
- •3.2 Деректер қорын жобалау кезеңдері.
- •4.1 «Мән-байланыс» моделі. Логикалық және физикалық модельдер.
- •4.2 Локальды көріністі модельдеу, модель элементтерінің агрегациясы және жалпыламасы.
- •5.1 Dbtg деректер моделі. Негізгі түсініктер және анықтамалар. Деректерді ңқұрылым диаграммасы
- •6.1 Деректердің иерархиялық моделі. Негізгі анықтамалар мен түсініктер. Иерархиялық модельдің концептуальды модельмен қатынас байланысы.
- •Деректердің иерархиялық құрылымы
- •Деректерді манипулияциялау.
- •Тұтастықты шектеу
- •Тұтастықты шектеу
- •Жетістігі және кемшілігі
- •6.2 Ims архитектурасы. Ims деректер моделі. Иерархиялық рет түсінігі. Dl/1 тілінің операциясы.
- •7.1 Реляциялық деректер қоры: деректер типі, домен, қатынас схемасы, деректер қоры схемасы, кортеждер және қатынастар, қатынас қасиеті, кілттер.
- •7.2 "Мән-байланыс" (er- әдісі) әдісімен жобалау.
- •8.1 Функционалдық тәуелділік концепциясы. Реляциялық есептеулер.
- •8.2 Қалыптастыру: бірінші, екінші және үшінші қалыпты формалар. Бойс-Кодтың қалыпты формасы.
- •9.1 Берілген деректер қорымен моделінің реляциялық базисі: реляциялық алгебра, реляциялық операциялардың интерпретациясы, теориялық-көбейткіштік операциялардың семантикасының ерекшеліктері.
- •10.1 Sql стандарттау кезеңдері.
- •10.2 Sql тілінің жалпы құрылымы, қолданбалы программалар интерфейсі. Бекітілген sql, динамикалық sql.
- •10.3 Select таңдауының операторы.
- •11 Дәріс. Деректер қорының тұтастығы және қауіпсіздігі. Қатынаумен басқару.
- •12 Дәріс. Постреляциялық дерек тер қоры. Қатынаумен өшіру.
- •12.1 Постреляциялық деректер қоры.
- •12.2 Обьектілі - бағдарланған деректер қорының құрылу принциптері.
- •14 Дәріс. Деректер қоры қосымшаларын өңдеу. Delphi-дің аспаптық құралдары.
- •14.1 Деректер қоры қосымшаларын өңдеу. Delphi-дің аспаптық құралдары.
- •Форма. Форма түсінігі.
- •Форманың аты және басы
- •Дәріс 16. Деректер қорына қатынау технологиялары.
- •16.1 Деректер қорына қатынау технологияларына шолу.
- •16.2 Odbc технологиясы (Open Database Connectivity).
- •Дәріс 17. Ole db - Object Linking and Embedding Database технологиясы.
- •17.1 Ole db негіздері.
- •ToleContainer объектісі.
- •18.1 Ado технологиясының негіздері.
- •20.1 Ado.Net технологиясы.
- •Дәріс 21. Olap технологиясы.
- •21.1 Olap технологиясы.
- •Көп өлшемді кубтар.
- •22.1 Corba (Common Object Request Broker Architecture) технологиясы.
- •Клиенттік және серверлік қосымшаларға қосылатын orb.
- •Сервер түрінде орындалған orb.
- •Жүйе бөлігі ретіндегі orb.
- •Параметрлер.
- •Интерфейстер.
- •Шақыруларды динамикалық түрде орындаудың интерфейсі.
- •Глоссарий
- •Білімді бағалау жайлы ақпарат
- •Қорытынды баға
- •Курс саясаты мен талаптары
- •Білімді бағалау туралы ақпарат әдістемелік нұсқауларда көрсетіледі
- •Тіркеу деректері
Көп өлшемді кубтар.
Бұл бөлімде біз OLAP концепциясын және көп өлшемді кубтарды нақты қарастырамыз. Мысал ретінде реляциялық деректер қорын қолданамыз. Біз оны OLAP принциптерін иллюстрациялау үшін қолданамыз, Microsoft SQL Server жеткізу комплектісіне кіретін Northwind деректер қорын немесе қарапайым деректер қоры болатын, компанияның сауда операциялары жөнінде мәліметті сақтайтын және өнімді көтерме жеткізумен айналысатын Microsoft Access пайдаланамыз. Мұндай деректерге жеткізуші, клиент, жеткізумен айналысатын компания, жеткізілетін тауар тізімі және оның категориясы, сұраныс жасалған тауар жөніндегі деректер, компания қызметкерлерінің тізімі жөніндегі мәліметтер жатады. Northwind деректер қорының нақты сипаттамасын Microsoft SQL Server немесе Microsoft Access анықтама жүйесінен табуға болады - бұл жерде біз орын аз болғандықтан оны келтірмейміз.
OLAP концепциясын қарастыру үшін Invoices ұсынысын және Northwind деректер қорынан Products мен Categories кестелерін пайдаланамыз. Сұраныс құрып, оның нәтижесінде сұраныс жасалған тауарлар және жазылған шоттар жөнінде мағлұмат аламыз:
SELECT dbo.Invoices.Country,
dbo.Invoices.City,
dbo.Invoices.CustomerName,
dbo.Invoices.Salesperson,
dbo.Invoices.OrderDate,
dbo.Categories.CategoryName,
dbo.Invoices.ProductName,
dbo.Invoices.ShipperName,
dbo.Invoices.ExtendedPrice
FROM dbo.Products INNER JOIN
dbo.Categories ON dbo.Products.CategoryID = dbo.Categories.CategoryID INNER JOIN
dbo.Invoices ON dbo.Products.ProductID = dbo.Invoices.ProductID
Ұқсас тапсырыс Access 2000 келесі түрде:
SELECT Invoices.Country, Invoices.City,
Invoices.Customers.CompanyName AS
CustomerName, Invoices.Salesperson,
Invoices.OrderDate, Categories.CategoryName,
Invoices.ProductName,
Invoices.Shippers.CompanyName AS
ShipperName, Invoices.ExtendedPrice
FROM Categories INNER JOIN (Invoices INNER
JOIN Products ON Invoices.ProductID =
Products.ProductID) ON Categories.CategoryID =
Products.CategoryID;
Бұл тапсырыс жазылған шот жөніндегі мәліметі бар Invoices ұсынысына, сол сияқты Сategories және Products кестелеріне үндейді. Кестелерде сұраныс жасалған өнім категориясы және сол өнім туралы мәлімет болады. Осы тапсырыс нәтижесінде біз категориясы мен тауар аталуы бар тапсырыс жасатылған деректер, тапсырыс жасалған күні бар, шотты жазған қызметкер аты бар, тапсырыс беруші компанияның толық адресі, сол сияқты жеткізуге жауапты компанияның аталуы бар жиынды аламыз.
Ыңғайлы болу үшін бұл тапсырысты ұсыныс түрінде Invoices1 деп атаймыз. Бұл ұсынысқа жасалған үндеу нәтижесі 22-суретте келтірілген.
22-сурет. Invoices1 ұсынысына үндеу нәтижесі.
Біз осы ұсыныс негізінде қандай агрегатты деректерді аламыз? Көбінесе бұл жауаптар мынадай типтегі сұрақтарға:
Франциядағы клиенттермен жасалған тапсырыс бағасының қосындысы қандай?
Speedy Express компаниясымен жеткізілген және Франциядағы клиенттермен жасалған тапсырыс бағасының қосындысы қандай?
Speedy Express компаниясымен жеткізілген және 1997 жылы Франциядағы клиенттермен жасалған тапсырыс бағасының қосындысы қандай?
Бұл сұрақтарды SQL тіліндегі сұранысқа ауыстырамыз (ағылшын тіліндегі ұқсас сұрақтарды Microsoft English Query көмегімен SQL-сұранысқа аударамыз, бірақ осындай құралдарды қарастыру берілген мақаланың шегінен шығады).
Сұрақ |
SQL-сұраныс |
Франциядағы клиенттермен жасалған тапсырыс бағасының қосындысы қандай? |
SELECT SUM (ExtendedPrice) FROM invoices1 WHERE Country=’France’ |
Speedy Express компаниясымен жеткізілген және Франциядағы клиенттермен жасалған тапсырыс бағасының қосындысы қандай? |
SELECT SUM (ExtendedPrice) FROM invoices1 WHERE Country=’France’ AND ShipperName=’Speedy Express’ |
Speedy Express компаниясымен жеткізілген және 1996 жылы Франциядағы клиенттермен жасалған тапсырыс бағасының қосындысы қандай?
|
SELECT SUM (ExtendedPrice) FROM Ord_pmt WHERE CompanyName=’Speedy Express’ AND OrderDate BETWEEN ‘December 31, 1995’ AND ‘April 1, 1996’ AND ShipperName=’Speedy Express’ |
Жоғарыда келтірілген кез келген сұраныс нәтижесі сан болады. Егер бірінші сұраныста Если в ‘France’ параметрін ‘Austria’ параметріне немесе басқа мемлекет атына ауыстырып, осы сұранысты қайтадан орындап, басқа сан алуға болады. Осы процедураны барлық мемлекеттермен орындап, біз келесі деректер жиынын аламыз (төменде фрагментті көрсетілген):
-
Country
SUM (ExtendedPrice)
Argentina
7327.3
Austria
110788.4
Brazil
97407.74
Canada
46190.1
Denmark
28392.32
Finland
15296.35
…
…
Алынған агрегатты мәндер жиыны (бұл жағдайда-қосынды) деректердің бір өлшемді жиыны сияқты интерпретациялануы мүмкін. Осы деректер жиынын сұраныс нәтижесінде келесі түрдегі GROUP BY сөйлемімен алуға болады:
SELECT Country, SUM (ExtendedPrice) FROM invoices1
GROUP BY Country
Жоғарыда келтірілген WHERE сөйлемде екі шартты бар сұранысты қараймыз. Егер Country және ShipperName параметрлерінің барлық мүмкін мәндерін қойып, осы сұранысты орындасақ, біз келесі түрдегі деректердің екі өлшемді жиынын аламыз (төменде фрагмент көрсетілген):
-
ShipperName
Country
Federal Shipping
Speedy Express
United Package
Argentina
1 210.30
1 816.20
5 092.60
Austria
40 870.77
41 004.13
46 128.93
Belgium
11 393.30
4 717.56
17 713.99
Brazil
16 514.56
35 398.14
55 013.08
Canada
19 598.78
5 440.42
25 157.08
Denmark
18 295.30
6 573.97
7 791.74
Finland
4 889.84
5 966.21
7 954.00
France
28 737.23
21 140.18
31 480.90
Germany
53 474.88
94 847.12
81 962.58
…
…
…
…
Егер WHERE сөйлемінде мән жиынын нәтижелейтін (OLAP-куб деп аталынатын) төрт өлшемді пен бес өлшемді және т.б. болып келетін, төрт немесе одан да көп параметрлер болады.
Көпөлшемді OLAP-кубты қарастырып, деректерді талдаудың көп өлшемін қолданып кейбір кілттік терминдер мен түсініктерге өтеміз.
Соншалықты қарастырылған мысалда жалпы жағдайда әр елде бірнеше қала, ал қалада - бірнеше клиент болуы мүмкін, сол сияқты өлшемдегі мән иерархиясы жөнінде айтуға болады. Төмендегі суретте иерархияның бірінші деңгейінде мемлекет, екіншісінде - қала, ал үшіншісінде -клиенттер орналасуы мүмкін (23-сурет).
23-сурет. Клиенттрдің географиялық орналасуына байланысты өлшемдегі иерархия.
Иерархиялар балансталған (balanced) болуын ескерейік, мысалы 30 суретте берілген иерархия сияқты, сонымен қатар «күні-уақыты» және балансталмаған (unbalanced) деректер типіне негізделген иерархиялар сияқты. Балансталмаған иерархияның қарапайым мысалы - «басқарушы-бағынушы» типті иерархия (оны құрастыруға болады, мысалы, жоғарыда қарастырылған бастапқы деректер жиынының Salespeson өрісінің мәндерін қолдана отырып), ол 24-суретте берілген.
24-сурет. Балансталмаған иерархия.
Кейде мұндай иерархия үшін Parent-child hierarchy термині қолданылады.
Балансталғандар мен балансталмағандардың арасында (олар ragged - «тегіс емес» терминімен белгіленеді) аралық қалыпты алатын иерархиялар да бар. Әдетте олардың құрамына жоғарғы деңгейде орналасқан логикалық "родители" мүшелері кіреді (мысалы, географиялық иерархияда Country, City және State деңгейлері бар, бірақ бұл кезде деректер жиынында Country және City деңгейлері арасында аймақтары мен штаттары жоқ елдер бар (25-сурет).
25-сурет. «Тегіс емес» иерархия.
Балансталмаған және «тегіс емес» иерархия лар барлық OLAP-құрылғыларымен қолданылмайды. Мысалы, Microsoft Analysis Services 2000 иерархияның екі типі де бар, ал Microsoft OLAP Services 7.0 – тек балансталған түрлі OLAP-құрылғыларда иерархия деңгейінің саны да, бір деңгейдің рұқсат етілген максимал мүшелер саны да кеңістіктердің өздерінің максимал мүмкін саны да әр түрлі болуы мүмкін.
Бұл оқиға өңдеушісінде біз тізімнен таңдалған мәнге сәйкес QueryType параметрі бар Connection объектісінің OpenSchema объектісіне қатынас жасаймыз және алынған деректер жиынын MSHFlexGrid1 объектісінде көрсетеміз (26-сурет).
26-сурет.
ADO Connection
объектісінің OpenSchema әдісі көмегімен
метадеректер туралы мағлұмат алу.
Сонымен, біз ADO OpenSchema әдісі арқылы көпөлшемді деректер қорының метадеректеріне қатынау мүмкіндігін алдық. Біздің келесі мақсатымыз сәйкес деректерге MDX- сұраныстарды орындау болады. Метадеректердің қандай болатынын біле отырып, біз оны жасай аламыз.
MDX- сұраныстарды орындау
MDX- сұраныстарды орындау үшін біздің қосымшаға бір батырма мен MDX- сұранысының мәтінін енгізу үшін TextBox компонентін қоса отырып модификациялаймыз:
Private Sub Command2_Click()
Dim RS As New ADODB.Recordset
Dim Cnn As New ADODB.Connection
On Error GoTo Err1
Cnn.ConnectionString = "Provider=MSOLAP.2;" & _
"Persist Security Info=True;User ID=sa;Data Source=MAINDESK;" &
"Initial Catalog=NorthWind_OLAP"
Cnn.Open
Set Rs = Cnn.Execute(Text1.Text)
Set MSHFlexGrid1.Recordset = Rs
Set Cnn = Nothing
Set Rs = Nothing
Exit Sub
Err1:
MsgBox ("Неверный запрос")
End Sub
27-сурет.
ADO Connection
объектісінің Execute әдісінің көмегімен
MDX-сұранысты орындау.
ADO MD объектті моделінде MDX-сұраныстың нәтижесі CellSet объектісімен берілген. Бұл оъект Cells объектілеріне қатынас жүргізуге мүмкіндік береді, олардың сұраныс нәтижесінде алынатын деректер жиынындағы нақты ұяшықтарды береді. Бұдан басқа CellSet объектісінің құрамына Axis объектілерінен тұратын Axes коллекциясы енеді (бұл коллекция мүшелерінің саны нәтижелік деректер жиынындағы кеңістіктер санына тең). Cell объектісі сияқты Axis объектісі ось бойындағы позицияларға сәйкес келетін Position объектілерінен тұратын Positions коллекциясына ие. Мүшелері осьтегі деректердің нақты мәндерін беретін Position объектісі Members коллекциясына ие.
Құрылған қосымшаға MDX-сұранысты орындау мүмкіндігін қосамыз. Ол үшін қосымша формасына тағы бір батырманы орналастырайық, екі TextBox компонентін және осы батырма үшін оқиға өңдеушісі Click құрамыз (2 листингті қараңыз).
Private Sub Command2_Click()
Dim Cst As New ADOMD.Cellset
Dim Cnn As New ADODB.Connection
Cnn.ConnectionString = "Provider=MSOLAP.2;Persist Security Info=True;”_
+”User ID=sa;Data Source=MAINDESK;Initial Catalog=NorthWind_OLAP"
Cnn.Open
Text2.Text = vbTab & vbTab
Set cst.ActiveConnection = cnn
cst.Source = Text1.Text
On Error GoTo Err
cst.Open
For i = 0 To cst.Axes(0).Positions.Count - 1
Text2.Text = Text2.Text & cst.Axes(0).Positions(i).Members(0).Caption_
& vbTab
Next i
Text2.Text = Text2.Text & vbCrLf & vbCrLf
For j = 0 To cst.Axes(1).Positions.Count - 1
Text2.Text = Text2.Text & cst.Axes(1).Positions(j).Members(0).Caption_
& vbTab
For k = 0 To cst.Axes(0).Positions.Count - 1
Text2.Text = Text2.Text & vbTab & cst(k, j).FormattedValue
Next k
Text2.Text = Text2.Text & vbCrLf
Next j
Exit Sub
Err:
MsgBox ("Invalid Query")
End Sub
Кодтың берілген көрінісінде біз CellSet объектісін құрамыз және оның Open әдісін қолданамыз. Егер MDX-сұранысы тиянақты болса, онда CellSet объектісінің ұяшықтарын таңдау циклы орындалады және Text2 компонентіне олардың мазмұнын шығару жүргізіледі. Құрылған қосымша жұмысының нәтижесі 28-суретте берілген.
28-сурет.
ADO MD көмегімен
метадеректерді оқуға арналған қосымша.
Назар аударыңыз: кодтың беріген көрінісі Cellset объектісінде екіөлшемді деректер жиыны бар болуы рұқсат етілгенде жазылады. Жалпы жағдайда бұл деректер жиынының кеңістіктер саны берілген мәннен жоғары болуы мүмкін және бұл жағдайды OLAP-клиенттерді құрған кезде ескерген жөн.
Негізгі әдебиет [2], бет773-782
Қосымша әдебиет [4], бет 215-219
Бақылау сұрақтары
1. OLAP технологиясын айтыңыз.
2. Балансталмаған иерархия дегеніміз не?
3. Тегіс емес иерархия дегеніміз не?
4. ADO - OLAP клиенттерінде қалай қолданылады?
5. Жоғарыда аталған технологияны төмендегі технологиялармен салыстырыңыз, жақсы қасиеттерін атап көрсетіңіз.
Дәріс 22. CORBA (Common Object Request Broker Architecture) технологиясы.