You are on page 1of 28

Bi 7: Ngn ng truy vn a chiu (MDX - Multi-Dimensional eXpressions)

Ni dung
Hiu khi nim ca MDX Cu trc c bn ca cu truy vn MDX S dng cu truy vn d liu trn khi d liu Mt s hm trong MDX

Gii thiu
SQL (Structure Query Langauge) l ngn ng s dng truy xut d liu t CSDL quan h. Ngn ng MDX (Multi Dimension eExpress) l dng m rng ca ngn ng truy vn SQL s dng truy vn d liu a chiu

Cu trc c bn ca ngn ng truy vn MDX


p dng MDX khai thc kho d liu OLAP vi khi a chiu nhm h tr cho vic tng hp thng tin v ra quyt nh. V cu trc: ging cu trc ca mt cu truy vn SQL trn CSDL thng thng, nhng m rng hn truy vn trn khi d liu a chiu.

SQL vs. MDX


Select, From, Where Kt qu hai chiu Chn cc ct Kt qu l mt quan h Chn t cc quan h Select, From, Where Kt qu a chiu Chn cc tp Kt qu l mt khi Chn t mt khi

Cu truy vn a chiu (MDX)


[WITH MEMBER SET ]

* <m t v chiu th 1> + * , <m t v chiu th 2>, + FROM * < khi d liu> + [WHERE *<m t v cc iu kin ct lp> ++
SELECT

Cu truy vn a chiu (MDX) (2)


Trong MDX:
With: dng nh ngha thm chiu mi t cc chiu tn ti Pht biu SELECT c dng m t mt tp d liu l mt tp con ca d liu a chiu. Mt cu truy vn MDX c cha mt mnh SELECT, mt mnh FROM v mt mnh tuz chn WHERE.

Quy c v c php MDX


Hm
Mt s s dng k{ hiu hm theo phong cch VB V d: hm Order() Mt s s dng nh dng i tng V d: BoMon.Members Members l hm

Th t trc
COLUMNS, ROWS, PAGES, CHAPTERS, SECTIONS Mi trc c nh s th t bt u t 0 V d: , *Dim_ThoiGian+.Members - on Axis(0)

Quy c v c php MDX (2)


Du phy xy dng mt tp hp bng cch lit k cc cc b
V d: ,*Nam+.*2001+, *Nam+.*2002+, -

Du hai chm xy dng mt tp hp bng cch ch nh mt phm vi


V d: , *Nam+.*2001+ : *Nam+.*2005+ -

.Members tr v tp tt c cc thnh vin


V d: *BoMon+.Members

Demo Vit cu lnh MDX Query

Khi d liu im tt nghip

Chn kt ni n Analysis Server

Mn hnh ng nhp vi Analysis Server


Chn vo y (Analysis Service MDX Query) thc hin vn tin a chiu

CSDL ca Analysis Server c to bng cng c SSAS

Mn hnh vn tin MDX

Vng vit vn tin MDX

Vng Metadat a ca kho d liu

Vng hin th kt qu

Ta xt v d 1 Cho bit s lng sinh vin tt nghip vo nm hc 2004

Khi d liu

Chiu Ct lt

Ta c kt qu:

Gii thch v d 1
Mnh SELECT xc nh cc chiu ca tp kt qu ca truy vn MDX, trong v d l 1 chiu COLUMNS v ROWS. Mnh FROM xc nh ngun d liu a chiu (khi) no c s dng trch lc d liu vo tp kt qu ca pht biu SELECT. Trong v d l t khi d liu [QL Diem DW]

Gii thch v d 1 (2)


Mnh WHERE nu c, dng xc nh chiu ct ca khi d liu, nhm gii hn tp kt qu theo cc chiu thnh vin. Trong v d, d liu c ct lt theo thnh vin [Nam Hoc].[2004] ca chiu [Dim Thoi Gian].

S khc bit gia ngn ng SQL v ngn ng MDX


C php ca cu truy vn MDX tng t nh c php SQL, tuy nhin c mt s
C php MDX phn bit cc tp hp bng vic dng du ngoc nhn ,- bao quanh cc b hay cc thnh vin khc bit sau:

S khc bit gia ngn ng SQL v ngn ng MDX (2)


Cu truy vn MDX c th cha ti 128 chiu nhng ch c 5 chiu u tin l c aliases (tn ph). Trong cu truy vn SQL, mnh FROM c th ch n nhiu bng d liu. Tuy nhin, mnh FROM trong cu truy vn MDX b gii hn bi mt khi duy nht.

S khc bit gia ngn ng SQL v ngn ng MDX (3)


Mnh WHERE c dng m t chiu ct d liu. Nu mt chiu khng c cp trong mnh WHERE, SQL Analysis Services vn xem n nh mt chiu ct, nhng c lc theo s thnh vin (Members) mc nh ca n. Mnh WHERE c th thay i tin trnh lc cho mt chiu no , gip tinh chnh d liu kt qu.

Ta xt v d 2:

Ta c kt qu:

Ta xt v d 3:

Ta c kt qu:

1: (BoMon.TCNH, XepLoai.XS, ThoiGian.[2004]) 2: (BoMon.TCNH, XepLoai.Kha, ThoiGian.[2003]) 3: (BoMon.KTH, XepLoai.Kha, ThoiGian.[2001]) Measures DiemTot Nghiep
HTTTQL KTH TCNH

2001 ThoiGian 2002 2003

2
1

Tt c cc u c mt ci tn v gi tr tng ng vi cc chiu

2004 2005 XepLoai

Mt s hm trong MDX Query

Cc hm thng dng trong MDX


CrossJoin() Tch ca cc thnh vin hay cc b trong hai tp hp khc nhau V d: CrossJoin hai chiu DonVi v XepLoai

Kt qu

Cc hm thng dng trong MDX (2)


Filter() thu gn mt tp hp bng cch ch ly nhng phn t tha mn cc tiu ch no
i s Tp hp Biu thc lun l{ Tr v tp con V d: Filter ( { [DimDonVi].[BoMon].Members }, [Measures].[DiemTotNghiep].[Kha] >= 20 )

Cc hm thng dng trong MDX (3)


Order() sp th t mt tp hp
i s Tp hp Tiu ch sp th t Ty chn c (ASC, DESC,) V d: Order ( { [DimDonVi].[BoMon].Members }, ([Measures].[DiemTotNghiep], [ThoiGian].[Nam].[2000]), DESC )

Bi tp m rng
Sinh vin tm hiu thm cc hm sau:
TopCount Order ParallelPeriod Sum Strtomember iif Lag

You might also like