Perspektywy (views) w systemach baz danych:
aktualny stan technologii
*
Robert Wrembel
3ROLWHFKQLND3R]QDVND,QVW\WXW,QIRUPDW\NL
XO3LRWURZR$3R]QD
e–mail: Robert.Wrembel@cs.put.poznan.pl
Abstrakt
%DUG]R ZD*Q\P PHFKDQL]PHP Z V\VWHPDFK ED] GDQ\FK ]DUyZQR UHODF\MQ\FK UHODF\MQR±
obiektowych, jak i obiektowych jest perspektywa. Intuicyjnie, perspektywa jest swego rodzaju „oknem”,
SU]H] NWyUH X*\WNRZQLN ED]\ GDQ\FK ZLG]L XGRVW
SQLDQH SU]H] QL GDQH : WUDG\F\MQ\FK V\VWHPDFK
UHODF\MQ\FKED]GDQ\FKSHUVSHNW\Z\VZ\NRU]\VW\ZDQHPLQGRRJUDQLF]HQLDLDXWRU\]DFMLGRVW SXGR
GDQ\FK ]DSHZQLHQLD ORJLF]QHM QLH]DOH*QRFL GDQ\FK SU]H] RGVHSDURZDQLH DSOLNDFML RG VFKHPDWX
konceptualnego bazy danych, (3) uproszczenia schematu bazy danych, (4) prezentowania tych samych
GDQ\FK Z Uy*Q\ VSRVyE ,QQ Z\NRU]\VW\ZDQ V]HURNR G]LHG]LQ ]DVWRVRZD SHUVSHNW\Z V PDJD]\Q\
=DGDQLHPSHUVSHNW\ZMHVWWXWDMLQWHJUDFMDGDQ\FKSRFKRG]F\FK]Uy*Q\FKJHRJUDILF]QLHUR]SURV]RQ\FK
(UyGHáRUD]PDWHULDOL]RZDQLHZ\QLNyZF]DVRFKáRQQ\FK]DS\WDW\SX2/$3'RWHJRFHOXVVWRVRZDQH
tzw. perspektywy materializowane.
: DUW\NXOH ]RVWDá\ SU]HGVWDZLRQH SHUVSHNW\Z\ Z V\VWHPDFK UHODF\MQ\FK L UHODF\MQR±RELHNWRZ\FK
zilustrowane systemem Oracle, oraz koncepcje perspektyw obiektowych i semistrukturalnych. Omówione
]RVWDá\ UyZQLH* ]DJDGQLHQLD ]ZL]DQH ] Z\NRU]\VWDQLHP PDWHULDOL]RZDQ\FK SHUVSHNW\Z Z PDJD]\QDFK
danych.
1. Wprowadzenie
:V\VWHPDFKUHODF\MQ\FKLUHODF\MQR±RELHNWRZ\FKSHUVSHNW\ZDMHVWVWUXNWXUORJLF]QRSDUWR
]DS\WDQLH GR ED]\ GDQ\FK XPR*OLZLDMF GRVW S GR SRG]ELRUX DWU\EXWyZ L UHNRUGyZ MHGQHM OXE
ZLHOX WDEHO 2]QDF]D WR *H SHUVSHNW\ZD QLH SRVLDGD ZáDVQ\FK GDQ\FK OHF] XGRVW SQLD W\ONR WH
GDQH NWyUH V Z\QLNLHP ]DS\WDQLD M GHILQLXMFHJR ,QDF]HM MHVW Z SU]\SDGNX W]Z perspektywy
zmaterializowanej
DQJPDWHULDOL]HGYLHZ3HUVSHNW\ZDWDNDSRVLDGDZáDVQHWUZDáHGDQH±E GFH
Z\QLNLHP]PDWHULDOL]RZDQLDGDQ\FKZ\]QDF]RQ\FKSU]H]]DS\WDQLHGHILQLXMFHW SHUVSHNW\Z
5R]ZLMDMFH VL JDá ]LH SU]HP\VáX KDQGOX PHG\F\Q\ QDXNL Z\PDJDM VNáDGRZDQLD L
SU]HWZDU]DQLD RJURPQ\FK LORFL GDQ\FK 'DQH V ]Z\NOH SU]HFKRZ\ZDQH Z V\VWHPDFK
LQIRUPDW\F]Q\FK SRVLDGDMF\FK Uy*QH VWUXNWXU\ L Z\NRU]\VWXMF\FK Uy*QH PRGHOH GDQ\FK QS
hierarchiczne, relacyjne, obiektowe), w dokumentach tekstowych, czy arkuszach kalkulacyjnych.
3RQLHZD* SU]HGVL ELRUVWZD LQVW\WXFMH RUJDQL]DFMH SURGXFHQFL GDQ\FK V F] VWR JHRJUDILF]QLH
UR]SURV]RQHZL FVDPHGDQHPDMUyZQLH*FKDUDNWHUUR]SURV]RQ\+HWHURJHQLF]QRüLUR]SURV]HQLH
LQIRUPDFML XWUXGQLD GR QLFK GRVW
S L LFK DQDOL]
= WHJR SRZRGX LVWQLHMH SRWU]HED LQWHJUDFML W\FK
informacji.
: SUDNW\FH VWRVXMH VL GZLH WHFKQRORJLH LQWHJUDFML GDQ\FK W]Z system sfederowanych baz
danyc
K DQJ IHGHUDWHG GDWDEDVH V\VWHP L WHFKQRORJL magazynu danych (ang. data warehouse)
>@ : REX SU]\SDGNDFK SHUVSHNW\Z\ V Z\NRU]\VW\ZDQH MDNR PHFKDQL]P ]LQWHJURZDQHJR
GRVW SXGRGDQ\FK
: V\VWHPDFK PDJD]\QyZ GDQ\FK GDQH V HNVSORURZDQH ]D SRPRF ]áR*RQ\FK ]DS\WD
]DZLHUDMF\FKRGNLONXGRNLONXG]LHVL FLXRSHUDFMLáF]HQLDILOWURZDQLDJUXSRZDQLDLDJUHJRZDQLD
GDQ\FK 6 WR W]Z ]DS\WDQLD W\SX 2/$3 DQJ 2Q /LQH $QDO\WLFDO 3URFHVVLQJ =H Z]JO GX QD
]áR*RQRü ]DS\WD 2/$3 RUD] UR]PLDU\ DGUHVRZDQ\FK SU]H] QLH GDQ\FK F]DV Z\NRQDQLD W\FK
*
Praca wspierana z
JUDQWX.RPLWHWX%DGD1DXNRZ\FKQU7&
84
Robert Wrembel
]DS\WD PR*H WUZDü G]LHVLWNL PLQXW D QDZHW JRG]LQ\ .OXF]RZ\P SUREOHPHP VWDMH VL ZL F
HIHNW\ZQRüV\VWHPXED]\GDQ\FK-HGQ\P]UR]ZL]D]ZL NV]DMF\FKHIHNW\ZQRüV\VWHPXMHVW
PDWHULDOL]RZDQLHF]
FLRZ\FKSRUHGQLFKZ\QLNyZQDMF]
FLHMZ\NRQ\ZDQ\FK]DS\WD]DSRPRF
perspektyw zmaterializowanych.
6WUXNWXUDQLQLHMV]HJRDUW\NXáXMHVWQDVW SXMFDZSXQNWDFKGUXJLPWU]HFLPLF]ZDUW\P]RVWDQ
omówione odpowiednio koncepcje perspektywy relacyjnej, obiektowej i relacyjno–obiektowej.
3XQNWSLW\MHVWSRZL
FRQ\]DJDGQLHQLRPLQWHJUDFMLGDQ\FK]DSRPRFSHUVSHNW\Z3XQNWV]yVW\
omawia perspektywy zmaterializowane w Oracle8i. Punkt siódmy prezentuje koncepcje
SHUVSHNW\Z\VHPLVWUXNWXUDOQHMDSXQNWyVP\SRGVXPRZXMHDUW\NXá
2. Perspektywa relacyjna
3RGVWDZRZHZáDVQRFLSHUVSHNW\Z\
3HUVSHNW\ZDVWRVRZDQDZV\VWHPDFKUHODF\MQ\FKSRVLDGDQDVW
SXMFHZáDVQRFLSRU>@
1.
3HUVSHNW\ZD ED]XMH QD WDEHODFK QD LQQ\FK SHUVSHNW\ZDFK OXE MHGQRF]HQLH QD WDEHODFK L
perspektywach, nazywanych odpowiednio tabelami i perspektywami bazowymi (ang. base
tables, base views).
2.
=X*\WNRZHJRSXQNWXZLG]HQLDSHUVSHNW\ZDPDVWUXNWXU WDNVDPMDNWDEHODDZL FMHVW
]ELRUHPUHNRUGyZRRNUHORQ\FKDWU\EXWDFK1DSR]LRPLHIL]\F]Q\PSHUVSHNW\ZDUy*QLVL
RGWDEHOLW\P*HQLHSRVLDGDZáDVQ\FKGDQ\FK:NRQVHNZHQFMLQDDWU\EXWDFKSHUVSHNW\Z\
QLHPR*QDGHILQLRZDüLQGHNVyZ
3.
: VáRZQLNX ED]\ GDQ\FK SHUVSHNW\ZD MHVW SU]HFKRZ\ZDQD Z SRVWDFL ]DS\WDQLD M
GHILQLXMFHJR =DS\WDQLH VNLHURZDQH GR SHUVSHNW\Z\ MHVW áF]RQH ] ]DS\WDQLHP M
GHILQLXMF\PDQDVW SQLHWDNSU]HWZRU]RQH]DS\WDQLHMHVWNLHURZDQHGRWDEHOED]RZ\FK
2.2. Cele stosowania perspektywy
:WUDG\F\MQ\FKV\VWHPDFKUHODF\MQ\FKED]GDQ\FKSRGVWDZRZHFHOHVWRVRZDQLDSHUVSHNW\ZV
QDVW SXMFH
1.
$XWRU\]DFMDGRVW
SXGRGDQ\FK
3RQLHZD*SHUVSHNW\Z\XGRVW
SQLDMW\ONRSRG]ELyUUHNRUGyZLLFKDWU\EXWyZ]DZDUW\FKZ
WDEHODFK ED]RZ\FK XNU\ZDM Z WHQ VSRVyE GDQH SU]HG QLHXSRZD*QLRQ\P X*\WNRZQLNLHP
8*\WNRZQLF\RWU]\PXMSUDZDGRVW
SXGRSHUVSHNW\ZQDWRPLDVWQLHRWU]\PXMSUDZGRVW
SX
do tabel bazowych.
3U]\NáDGHP VWRVRZDQLD SHUVSHNW\Z GR XNU\FLD SHZQ\FK LQIRUPDFML MHVW VáRZQLN ED]\
GDQ\FK:UDPDFKWHJRVáRZQLNDZ\Uy*QLDVL
SHUVSHNW\Z\SU]H]QDF]RQHGODX*\WNRZQLNyZ
bazy danych (np. w systemie Oracle: user_db_links, user_triggers) oraz perspektywy
SU]H]QDF]RQH GOD DGPLQLVWUDWRUyZ ED]\ GDQ\FK XGRVW SQLDMFH ZL FHM LQIRUPDFML QL*
SHUVSHNW\Z\GODX*\WNRZQLNyZQSZV\VWHPLHOracle: dba_db_links, dba_triggers).
2.
8áDWZLHQLHGRVW
SXGRGDQ\FK
: SU]\SDGNX F]
VW\FK RGZRáD GR W\FK VDP\FK WDEHO SU]\ SRPRF\ W\FK VDP\FK OXE
QLH]QDF]QLH]PRG\ILNRZDQ\FKVNRPSOLNRZDQ\FK]DS\WD]DOHFDVL X*\FLHW\FK]DS\WDGR
]GHILQLRZDQLD RGSRZLHGQLHM SHUVSHNW\Z\ 2GZRáDQLD GR WHM SHUVSHNW\Z\ XPR*OLZLDM
SREUDQLHW\FKVDP\FKGDQ\FKFRSRSU]HGQLROHF]]DSRPRF]QDF]QLHSURVWV]\FK]DS\WD
3U]\NáDGHPVWRVRZDQLDSHUVSHNW\ZZFHOXXáDWZLHQLDGRVW
SXGRGDQ\FKMHVWVáRZQLNED]\
danych, np. w systemie Oracle: perspektywy dba_tablespaces, dba_data_files,
dba_rollback_segs.
3.
0R*OLZRüSUH]HQWRZDQLDW\FKVDP\FKGDQ\FKZUy*Q\VSRVyE
Perspektywy (views) w systemach baz danych: aktualny stan technologii
85
:GHILQLFMLSHUVSHNW\Z\PRJZ\VWSLüQSZ\UD*HQLDDU\WPHW\F]QHRSHUXMFHQDDWU\EXWDFK
WDEHOED]RZ\FKLOLWHUDáDFK8PR*OLZLDWRZVW SQHSU]HWZRU]HQLHGDQ\FK]WDEHOED]RZ\FKL
LFKSUH]HQWDFM ZSRVWDFLIRUPDFLHSUHIHURZDQHMSU]H]X*\WNRZQLND
4.
/RJLF]QDQLH]DOH*QRüGDQ\FK
$SOLNDFMHNRU]\VWDMFH]ED]\GDQ\FK]DSRPRFSHUVSHNW\ZQLHZ\PDJDMPRG\ILNDFMLZ
przypadku zmodyfikowania tabel bazowych. W przypadku zmiany schematu tabel bazowych
QDOH*\ ]PRG\ILNRZDü Z\áF]QLH GHILQLFM RGSRZLHGQLFK SHUVSHNW\Z WDN DE\ LFK VFKHPDW
SR]RVWDáWDNLMDNSRSU]HGQLR:yZF]DVDSOLNDFMHQLHE GZ\PDJDá\*DGQHMPRG\ILNDFML
5.
0R*OLZRüZSURZDG]HQLDGRGDWNRZHJRSR]LRPXRJUDQLF]HLQWHJUDOQRFLRZ\FK
2JUDQLF]HQLD WH V ]DZDUWH Z GHILQLFML SHUVSHNW\Z\ L UR]V]HU]DM OLVW
RJUDQLF]H
LQWHJUDOQRFLRZ\FK ]ZL]DQ\FK ] WDEHODPL ED]RZ\PL QS NODX]XOD with check option w
systemie Oracle).
3HUVSHNW\Z\]PDWHULDOL]RZDQHSR]ZDODMGRGDWNRZRPLQQD
1.
,QWHJUDFM GDQ\FKSRFKRG]F\FK]UR]SURV]RQ\FKKRPR±LKHWHURJHQLF]Q\FK(UyGHáGDQ\FK
RUD] XQLH]DOH*QLHQLH X*\WNRZQLNyZ RG NRQLHF]QRFL GRVW SX GR UR]SURV]RQ\FK GDQ\FK
(UyGáRZ\FK
2.
0DWHULDOL]RZDQLHF] FLRZ\FKZ\QLNyZQDMF] FLHMZ\NRQ\ZDQ\FK]DS\WD2/$3SU]H]FR
PR*OLZHMHVWVNUyFHQLHF]DVXRGSRZLHG]LQDWDNLH]DS\WDQLD
2.3. Rodzaje perspektyw
=H Z]JO GX QD SRVWDü ]DS\WDQLD GHILQLXMFHJR SHUVSHNW\Z SHUVSHNW\Z\ PR*QD SRG]LHOLü QD
proste i
]áR*RQH3HUVSHNW\ZDMHVWSURVWMH*HOL]DS\WDQLHMGHILQLXMFH
•
RGZRáXMHVL Z\áF]QLHGRMHGQHMWDEHOLED]RZHM
•
QLH Z\NRU]\VWXMH IXQNFML M ]\ND 64/ Z FHOX SU]HWZDU]DQLD ZDUWRFL DWU\EXWyZ
XGRVW SQLDQ\FKSU]H]SHUVSHNW\Z
•
QLHZ\NRU]\VWXMHZDUWRFLZ\OLF]DQ\FKQSpensja*podatek;
•
QLHZ\NRU]\VWXMHIXQNFMLJUXSRZ\FKQSVXPDUHGQLD
•
nie wykorzystuje klauzul connect by oraz start with (system Oracle);
•
nie wykorzystuje operatora distinct
LRSHUDWRUyZ]ELRURZ\FKQSVXPDF] üZVSyOQD
a1
a2
a3
a4
a5
a4
a5
a1
a2
a3
a4
a5
tabela bazowa T1
perspektywa V1
perspektywa V2
5\V3HUVSHNW\Z\ED]XMFHQDSRMHG\QF]HMWDEHOL
1DU\VXQNXSU]HGVWDZLRQRGZLHSHUVSHNW\Z\W\SXSURVWHJRED]XMFHQDWDEHOLT
1
. Pierwsza z
nich, oznaczona jako V
1
XGRVW SQLD ZV]\VWNLH DWU\EXW\ Z\EUDQ\FK UHNRUGyZ QDWRPLDVW
perspektywa V
2
XGRVW SQLDZ\EUDQHDWU\EXW\ZV]\VWNLFKUHNRUGyZWDEHOLED]RZHM
86
Robert Wrembel
'UXJLP URG]DMHP SHUVSHNW\Z\ MHVW SHUVSHNW\ZD ]áR*RQD 'OD WHJR URG]DMX SHUVSHNW\Z\
]DS\WDQLH M GHILQLXMFH QLH VSHáQLD SU]\QDMPQLHM MHGQHJR ZDUXQNX SU]HGVWDZLRQHJR GOD
perspektywy prostej.
3U]\NáDGSHUVSHNW\Z\RSDUWHMRGZLHWDEHOHED]RZHSU]HGVWDZLRQRQDU\VXQNX3HUVSHNW\ZD
WDNDPR*HXGRVW
SQLDüSRG]ELyUSRáF]RQ\FKUHNRUGyZZ\EUDQHDWU\EXW\ZV]\VWNLFKSRáF]RQ\FK
rekordów lub podzbioru tych rekordów.
a1
a2
a3
b2
b3
tabela bazowa T1
perspektywa V3
a1
a2
a3
a4
a5
b1
b2
b3
tabela bazowa T2
5\V3HUVSHNW\ZDED]XMFDQDGZyFKWDEHODFK
5RG]DMSHUVSHNW\Z\GHF\GXMHRPR*OLZRFLDFKXDNWXDOQLDQLDGDQ\FKSU]H]QLXGRVW SQLDQ\FK
(zob. punkt 1.5).
3U]HWZDU]DQLH]DS\WDNLHURZDQ\FKGRSHUVSHNW\Z\
'R SHUVSHNW\Z\ PR*QD VL RGZRá\ZDü Z ]DS\WDQLDFK Z WDNL VDP VSRVyE MDN GR WDEHO :
SU]\SDGNX VNLHURZDQLD ]DS\WDQLD GR SHUVSHNW\Z\ V\VWHP ]DU]G]DQLD ED] GDQ\FK áF]\ WR
]DS\WDQLH]]DS\WDQLHPGHILQLXMF\PSHUVSHNW\Z PLQ
•
w klauzuli select
SRMDZLD VL ZVSyOQD F] ü ]ELRUX DWU\EXWyZ Z\VSHF\ILNRZDQ\FK Z
]DS\WDQLXX*\WNRZQLNDL]DS\WDQLXGHILQLXMF\PSHUVSHNW\Z
•
w klauzuli where
SRMDZLDM VL ZDUXQNL Z\ERUX SRFKRG]FH ]DUyZQR ] ]DS\WDQLD
X*\WNRZQLNDMDNLGHILQLFMLSHUVSHNW\Z\áF]RQHRSHUDWRUHPand).
1DVW SQLHWDNSU]HWUDQVIRUPRZDQH]DS\WDQLHMHVWNLHURZDQHGRWDEHOED]RZ\FKSHUVSHNW\Z\
Innym rodzajem perspektywy, jest tzw. perspektywa in–line, która jest tworzona dynamicznie w
F]DVLH Z\NRQDQLD ]DS\WDQLD 3HUVSHNW\ZD WDND WR ]DS\WDQLH Z\VW SXMFH Z NODX]XOL from innego
]DS\WDQLD -DNR SU]\NáDG Z\NRU]\VWDQLD WHJR URG]DMX SHUVSHNW\Z\ UR]ZD*P\ ]DS\WDQLH
Z\]QDF]DMFHSL
üSLHUZV]\FKVNOHSyZNWyUHVSU]HGDá\WRZDU\]DQDMZL
NV]NZRW
-HVWWRW]Z
zapytanie typu top–N.
'DQHVGZLHWDEHOHsklepy i VSU]HGD*RVFKHPDWDFKSU]HGVWDZLRQ\FKSRQL*HM
SQL> desc sklepy
Name Null? Type
----------- -------- ----
SKLEP_ID NOT NULL NUMBER(3)
NAZWA NOT NULL VARCHAR2(20)
MIASTO NOT NULL VARCHAR2(15)
SQL> desc sprzedaz
Name Null? Type
----------- -------- ----
PRODUKT_ID NUMBER(4)
L_SZTUK NUMBER(3)
CENA_JEDN NUMBER(7,2)
DATA DATE
SKLEP_ID NUMBER(3)
3U]\NáDGRZH]DS\WDQLHZV\VWHPLHOracle8i]SHUVSHNW\ZW\SXin–line]RVWDáRSU]HGVWDZLRQH
SRQL*HM
select
*
from
(select nazwa, sum(l_sztuk*cena_jedn)
from sprzedaz sp, sklepy sk
Perspektywy (views) w systemach baz danych: aktualny stan technologii
87
where sp.sklep_id=sk.sklep_id
group by nazwa
order by sum(l_sztuk*cena_jedn) desc)
where
rownum < 6;
0R*OLZRFLPRG\ILNRZDQLDGDQ\FKSRSU]H]SHUVSHNW\Z
: ]DS\WDQLDFK SHUVSHNW\ZD PR*H E\ü VWRVRZDQD Z VSRVyE LGHQW\F]Q\ MDN WDEHOD 1DWRPLDVW
PR*OLZRFL EH]SRUHGQLHJR PRG\ILNRZDQLD GDQ\FK XGRVW
SQLDQ\FK SU]H] SHUVSHNW\Z
V
ograniczone.
-H*HOLSHUVSHNW\ZDMHVWSURVWDLGRGDWNRZRXGRVW SQLDZV]\VWNLHDWU\EXW\NWyU\FKZDUWRüMHVW
RERZL]NRZD not null WR ]D SRPRF WDNLHM SHUVSHNW\Z\ PR*QD ZVWDZLDü GDQH GR MHM WDEHOL
ED]RZHMPRG\ILNRZDüGDQHZLGRF]QHSU]H]W SHUVSHNW\Z LMHXVXZDü
W systemie Oracle
LQIRUPDFMH QD WHPDW DWU\EXWyZ SHUVSHNW\Z NWyUH PR*QD XDNWXDOQLDü V
GRVW SQH]DSRPRFSHUVSHNW\Z\VáRZQLNDGDQ\FKUSER_UPDATABLE_COLUMNS.
-H*HOL SHUVSHNW\ZD SURVWD ]DZLHUD DWU\EXW\ Z\OLF]DQH SU]H] IXQNFMH 64/ OXE Z\UD*HQLD
DU\WPHW\F]QH WR ]D MHM SRPRF PR*QD VWDZLDü L PRG\ILNRZDü GDQH SRG ZDUXQNLHP *H ZDUWRFL
Z\OLF]DQHSR]RVWDMSXVWHSU]\ZVWDZLDQLXLQLHVPRG\ILNRZDQH1DWRPLDVWXVXZDQLHUHNRUGyZ
MHVW]DZV]HPR*OLZH
-H*HOL QDWRPLDVW SHUVSHNW\ZD MHVW RSDUWD R SRáF]HQLH WR PR*QD SU]H] QL XDNWXDOQLDü GDQH
SRFKRG]FH Z\áF]QLH ] WDEHOL ]DZLHUDMFHM NOXF] REF\ foreign key). Usuwanie rekordów jest
UyZQLH* PR*OLZH MHGQDN ZDUXQNL Z\ERUX UHNRUGyZ PXV] ]RVWDü Z\VSHF\ILNRZDQH ]
Z\NRU]\VWDQLHP DWU\EXWyZ WDEHOL ]DZLHUDMFHM NOXF] REFH LOXE DWU\EXWyZ SRáF]HQLRZ\FK
Wstawianie rekordów jest zabronione.
-H*HOL SHUVSHNW\ZD ED]XMH QD áF]HQLX WDEHO Z VFKHPDW JZLD]G\ SRU U\VXQHN D ZyZF]DV
RSHUDFMH PRG\ILNRZDQLD L XVXZDQLD PRJ GRW\F]\ü Z\áF]QLH WDEHOL T
3
1DWRPLDVW MH*HOL
SHUVSHNW\ZD ED]XMH QD WDEHODFK áF]RQ\FK Z KLHUDUFKL SRU U\VXQHN E WR RSHUDFMH
PRG\ILNRZDQLDLXVXZDQLDGDQ\FKPRJGRW\F]\üZ\áF]QLHWDEHOLT
6
.
T1
T4
T3
T5
T2
T6
a)
b)
5\VàF]HQLHWDEHOZVFKHPDWJZLD]G\LKLHUDUFKL
-H*HOL SHUVSHNW\ZD MHVW RSDUWD R SRáF]HQLH ]HZQ WU]QH DQJ RXWHU MRLQ ZyZF]DV MHG\Q
PR*OLZRSHUDFMMHVWZ\V]XNLZDQLHGDQ\FK]DMHMSRPRF
3RZ\*V]H RJUDQLF]HQLD PR*QD ]DVWSLü ZáDVQ\P VSRVREHP PRG\ILNRZDQLD ]DZDUWRFL WDEHO
ED]RZ\FKSHUVSHNW\Z\'RWHJRFHOXVáX*\Z\]ZDODF]instead-of definiowany dla perspektywy.
-DNR SU]\NáDG Z\NRU]\VWDQLD WHJR Z\]ZDODF]D UR]ZD*P\ WU]\ QDVW SXMFH WDEHOH
klienci_poznan,
klienci_krakow,
klienci_pozostali
ND*GD R LGHQW\F]Q\P VFKHPDFLH
SU]HGVWDZLRQ\PSRQL*HM
SQL> desc klienci_poznan
Nazwa NULL? Typ
---------------- -------- ------------
KLIENT_ID NUMBER(2)
NAZWISKO VARCHAR2(10)
MIASTO VARCHAR2(10)
7DEHOHWHSRVáX*\á\GR]GHILQLRZDQLDSHUVSHNW\Z\ZQDVW SXMF\VSRVyE
88
Robert Wrembel
create view
v_klienci
as
select * from klienci_poznan
union
select
* from klienci_krakow
union
select
* from klienci_pozostali;
:FHOX]DSHZQLHQLDPR*OLZRFLZVWDZLDQLDUHNRUGyZSU]H]W SHUVSHNW\Z QDOH*\]GHILQLRZDü
dla niej wyzwalacz instead-of
3U]\NáDGRZ\NRGWDNLHJRZ\]ZDODF]D]RVWDáSU]HGVWDZLRQ\SRQL*HM
create or replace trigger
v_kl_modyfikacja
instead of insert on
v_klienci
begin
if :new
PLDVWR 3R]QD
then insert into klienci_poznan
values (:new.klient_id, :new.nazwisko, :new.miasto);
elsif :new.miasto='Kraków'
then insert into klienci_krakow
values (:new.klient_id, :new.nazwisko, :new.miasto);
else
insert into klienci_pozostali
values (:new.klient_id, :new.nazwisko, :new.miasto);
end if;
end
;
Klauzula instead of
XPR*OLZLD ZVND]DQLH ]GDU]HQLD NWyUH VSRZRGXMH XUXFKRPLHQLH
Z\]ZDODF]D:NODX]XOLWHMZ\NRU]\VWXMHVL VáRZDNOXF]RZHinsert, update, deleteXPR*OLZLDMFH
]GHILQLRZDQLH Z\]ZDODF]D UHDJXMFHJR RGSRZLHGQLR QD ZVWDZLHQLH XDNWXDOQLHQLH XVXQL FLH
UHNRUGyZGRVW SQ\FK]DSRPRFSHUVSHNW\Z\
3. Perspektywa obiektowa
5R]ZLMDMFH VL G]LHG]LQ\ ]DVWRVRZD V\VWHPyZ LQIRUPDW\F]Q\FK WDNLH MDN NRPSXWHURZH
wspomaganie projektowania (CAD), komputerowe wspomaganie wytwarzania (CAM), systemy
ZVSRPDJDQLD LQ*\QLHULL RSURJUDPRZDQLD &$6( F]\ JHRJUDILF]QH V\VWHP\ LQIRUPDF\MQH *,6
Z\PDJDM PRGHOL GDQ\FK XPR*OLZLDMF\FK PRGHORZDQLH RELHNWyZ R ]áR*RQ\FK VWUXNWXUDFK L
VNRPSOLNRZDQ\FK SRZL]DQLDFK ] LQQ\PL RELHNWDPL RUD] PRGHORZDQLH ZáDVQRFL G\QDPLF]Q\FK
RELHNWyZ5HODF\MQ\PRGHOGDQ\FKMHVW]E\WXERJLGODWHJRW\SX]DVWRVRZD=WHJRZ]JO GXFRUD]
F] FLHM Z\NRU]\VWXMH VL RELHNWRZH ED]\ GDQ\FK NWyUH áF] Z VRELH FHFK\ WHFKQRORJLL RELHN
WRZ\FK]FHFKDPLV\VWHPyZ]DU]G]DQLDED]DPLGDQ\FK
3.1. Koncepcje modelu obiektowego
0RGHO RELHNWRZ\ MHVW RSDUW\ R QDVW SXMFH NRQFHSFMH RELHNW KHUPHW\F]QRü NODV
dziedziczenie i polimorfizm.
Obiekt.
-HGQ ] SRGVWDZRZ\FK NRQFHSFML SRGHMFLD RELHNWRZHJR MHVW obiekt (ang. object),
UHSUH]HQWXMF\ZV\VWHPLHNRPSXWHURZ\PHQFM PRGHORZDQHJRZLDWDU]HF]\ZLVWHJR:áDVQRFL
VWDW\F]QH HQFML V PRGHORZDQH ]D SRPRF DWU\EXWyZ RELHNWX D MHM ZáDVQRFL G\QDPLF]QH ± ]D
SRPRFRSHUDFMLZ\NRQ\ZDQ\FKQDRELHNFLH2SHUDFMHWHV]ZDQHmetodami (ang. methods). Zbiór
wszystkich metod obiektu stanowi jego interfejs.
=PLDQDVWDQXRELHNWXWMZDUWRFLMHJRDWU\EXWyZPR*H]RVWDü]UHDOL]RZDQDW\ONR]DSRPRF
RGSRZLHGQLHM PHWRG\ :áDVQRü RELHNWX SROHJDMFD QD W\P *H MHJR VWUXNWXUD L LPSOHPHQWDFMD
PHWRGQLHMHVWGRVW SQDGODSURJUDPyZQD]\ZDVL KHUPHW\F]QRFLDQJHQFDSVXODWLRQ']L NL
KHUPHW\F]QRFL ]PLDQD LPSOHPHQWDFML VWUXNWXU\ RELHNWyZ L PHWRG QLH ZSá\ZD QD SRSUDZQRü
Perspektywy (views) w systemach baz danych: aktualny stan technologii
89
SUDF\ LQQ\FK SURJUDPyZ RGZRáXMF\FK VL
GR W\FK RELHNWyZ MHOL W\ONR LFK LQWHUIHMV SR]RVWDMH
niezmieniony.
.D*G\ RELHNW SRVLDGD XQLNDOQ\ LGHQW\ILNDWRU NWyU\ MHVW QDGDZDQ\ SU]H] V\VWHP Z PRPHQFLH
tworzenia obiektu.
Klasa.
:V]\VWNLHRELHNW\SRVLDGDMFHWDNVDPVWUXNWXU LPHWRG\VJUXSRZDQHZNODV (ang.
FODVV.ODVDMHGQRF]HQLHGHILQLXMHVWUXNWXU ]DSRPRFDWU\EXWyZL]DFKRZDQLHVL ]DSRPRF
PHWRGZV]\VWNLFKVZRLFKLQVWDQFML']LHG]LQDPLDWU\EXWyZNODV\PRJE\üZDUWRFLHOHPHQWDUQH
WDNLH MDN OLF]E\ áDFXFK\ ]QDNyZ OXE ZDUWRFL ]áR*RQH WDNLH MDN OLVW\ L ]ELRU\ ']LHG]LQDPL
DWU\EXWyZ PRJ E\ü UyZQLH* LQQH NODV\ ± Z W\P SU]\SDGNX NODV\ V SRáF]RQH W]Z ]ZL]NLHP
kompozycji
DQJ FRPSRVLWLRQ UHODWLRQVKLSV =ZL]NL WDNLH XPR*OLZLDM PRGHORZDQLH VWUXNWXU
]áR*RQ\FK
Dziedziczenie.
0RGHORELHNWRZ\XPR*OLZLDZ\ZRG]HQLHQRZ\FKNODV]NODVMX*LVWQLHMF\FK
0HFKDQL]P WHQ QD]\ZD VL dziedziczeniem DQJ LQKHULWDQFH .ODVD Z\ZLHG]LRQD QD]\ZD VL
SRGNODV DQJ VXEFODVV D NODVD ] NWyUHM Z\ZLHG]LRQR LQQ ± QDGNODV EG( VXSHUNODV (ang.
VXSHUFODVV $WU\EXW\ L PHWRG\ QDGNODV\ V G]LHG]LF]RQH SU]H] ZV]\VWNLH SRGNODV\ ] QLHM
Z\ZLHG]LRQH 3RGNODVD PR*H UyZQLH* ]DZLHUDü GRGDWNRZH DWU\EXW\ L OXE GRGDWNRZH PHWRG\
DWU\EXW\RG]LHG]LF]RQHLOXEPHWRG\RG]LHG]LF]RQHNWyUH]RVWDá\SU]HGHILQLRZDQHORNDOQLH1D
VNXWHN G]LHG]LF]HQLD Z ZLHOX NODVDFK LVWQLHM WDNLH VDPH PHWRG\ DOH RSHUXMFH QD Uy*Q\FK
RELHNWDFK:Z\QLNXSU]HGHILQLRZDQLDZSRGNODVLHPHWRGRG]LHG]LF]RQ\FKPRJLVWQLHüPHWRG\R
WDNLFK VDP\FK QD]ZDFK OHF] Uy*QLFH VL
VHPDQW\N L LPSOHPHQWDFM 7D ZáDVQRü QD]\ZD VL
polimorfizmem (ang. polymorphism).
3.2. Koncepcje perspektywy obiektowej
.RPHUF\MQH V\VWHP\ ]DU]G]DQLD RELHNWRZ\PL ED]DPL GDQ\FK QS O2 (Ardent Software) i
V\VWHP\ VNáDGRZDQLD GDQ\FK RELHNWRZ\FK QS GemStone (Servio Corporation), ObjectStore
(Object Design), Objectivity/DB (Objectivity), Poet (Poet Software), VERSANT (Versant Object
7HFKQRORJ\ QLH ZVSLHUDM PHFKDQL]PX SHUVSHNW\Z 1DWRPLDVW LVWQLHMH NLOND V\VWHPyZ
SURWRW\SRZ\FK Z NWyU\FK ]DLPSOHPHQWRZDQR WHQ PHFKDQL]P 3RQLHZD* QLH LVWQLHMH MHGQDN
VWDQGDUG GHILQLXMF\ SHUVSHNW\Z RELHNWRZ WUXGQR PyZLü R MHGQR]QDF]QHM GHILQLFML WDNLHM
SHUVSHNW\Z\ : V\VWHPDFK SURWRW\SRZ\FK L RSUDFRZDQLDFK QDXNRZ\FK PR*QD Z\Uy*QLü F]WHU\
SRGVWDZRZH SRGHMFLD GR GHILQLFML SHUVSHNW\Z\ RELHNWRZHM ]DS\WDQLH IXQNFMD NODVD ZLUWXDOQD
VFKHPDW 6]HUV]H RPyZLHQLH NRQFHSFML SHUVSHNW\Z RELHNWRZ\FK &]\WHOQLN PR*H ]QDOH(ü Z >
@ =H Z]JO GX QD RJUDQLF]RQ OLF]E VWURQ QLQLHMV]HJR DUW\NXáX NRQFHSFMH SHUVSHNW\Z
RELHNWRZ\FK]RVWDQSU]HGVWDZLRQHZVNUyFLH
: SRGHMFLX SLHUZV]\P > @ SHUVSHNW\Z GHILQLXMH VL MDNR ]DS\WDQLH SRGREQLH MDN
SHUVSHNW\Z UHODF\MQ RSHUXMFH QD NODVDFK 7DNLH UR]ZL]DQLH PD MHGQDN W ZDG *H ]áR*RQD
VWUXNWXUDNODVED]RZ\FK]ZL]NLNRPSR]\FMLG]LHG]LF]HQLD]RVWDMHVSáDV]F]RQDZ]DS\WDQLX:
]ZL]NX ] SRZ\*V]\P NRQFHSFMD WD QLH MHVW RGSRZLHGQLD Z ]DVWRVRZDQLDFK SURMHNWRZ\FK JG]LH
ZD*QHMHVW]DFKRZDQLH]áR*RQHMVWUXNWXU\GDQ\FK
:SRGHMFLXGUXJLP>@SHUVSHNW\Z GHILQLXMHVL MDNRIXQNFM VNáDGRZDQNWyUHMZ\QLNLHP
G]LDáDQLDMHVWNROHNFMDRELHNWyZZ\]QDF]RQ\FKSU]H]W IXQNFM )XQNFMDPR*H]DZLHUDüZDUXQNL
Z\ERUXRGSRZLHGQLFKRELHNWyZ1LHMHVWMHGQDNPR*OLZDUHVWUXNWXUDOL]DFMDGDQ\FK(UyGáRZ\FK
W koncepcji trzeciej (por. [20]) perspektywa jest definiowana jako klasa, tzw. klasa wirtualna, a
w koncepcji czwartej (por. [20, 21]) – jako schemat
]áR*RQ\]ZLHOXNODVZLUWXDOQ\FKSRáF]RQ\FK
]ZL]NDPLG]LHG]LF]HQLDLNRPSR]\FML:REXW\FKNRQFHSFMDFKGHILQLFMDSHUVSHNW\Z\VNáDGDVL ]
GZyFKHOHPHQWyZGHILQLFMLVWUXNWXU\NODV\ZLUWXDOQHML]DS\WDQLDOXEPHWRG\Z\]QDF]DMFHM
RELHNW\GRVW SQH]DSRPRFWHMNODV\WMSHUVSHNW\Z\.ODVDZLUWXDOQDMHVWGHILQLRZDQDZRSDUFLX
RW]ZNODV\ED]RZH=DS\WDQLHMHVWIRUPXáRZDQHZRELHNWRZ\PM ]\NX]DS\WD24/VNáDGQLL
IXQNFMRQDOQRFL SU]\SRPLQDMF\P M ]\N 64/ OHF] SRVLDGDMF\P ZL NV] IXQNFMRQDOQRü
=DS\WDQLH WDNLH PR*H Z\NRU]\VW\ZDü PLQ NODV\F]QH RSHUDWRU\ SURMHNFML VHOHNFML SRáF]HQLD
90
Robert Wrembel
RSHUDWRU\ ]ELRURZH JUXSRZDQLH RSHUDFMH QD DWU\EXWDFK RUD] Z\ZRáDQLD PHWRG NODV ED]RZ\FK
2ELHNW\GRVW SQH]DSRPRFSHUVSHNW\Z\PRJE\üUyZQLH*Z\]QDF]DQHZVSRVyESURFHGXUDOQ\±
]DSRPRFRELHNWRZHJRM ]\ND*/ZVSLHUDQHJRSU]H]ED] GDQ\FK
W przypadku perspektywy obiektowej definiowanej jako pojedyncza klasa powstaje problem
umieszczenia takiej klasy w hierarchii dziedziczenia klas bazowych. Na skutek utworzenie klasy
ZLUWXDOQHMKLHUDUFKLDG]LHG]LF]HQLDF] VWRZ\PDJDSU]HEXGRZ\SRWR DE\ QRZ NODV ZLUWXDOQ
XPLHFLüZHZáDFLZ\PPLHMVFXWHMKLHUDUFKLL-HVWWRZDGWHJRUR]ZL]DQLD
RAMModul
czas_dostepu : Integer
pojemnoscMB : Integer
RAMSlot
Procesor
typ : char*
CPURadiator
PlytaGlowna
typ_plyty : char*
ram_slot : RAMSlot
ram_slot : RAMSlot
cpu : CPU
cpu : CPU
rad : CPURadiator
rad : CPURadiator
NapedCD
Dysk
pojemnoscGB : Integer
Komputer
producent
plyta : PlytaGlow na
plyta : PlytaGlow na
cdrom : NapedCD
cdrom : NapedCD
dysk : Dysk
dysk : Dysk
5\V3U]\NáDGRZ\VFKHPDWED]RZ\
: FHOX ]LOXVWURZDQLD NRQFHSFML SHUVSHNW\Z\ GHILQLRZDQHM MDNR VFKHPDW UR]ZD*P\ VFKHPDW
ED]RZ\]áR*RQ\]RPLXQDVW
SXMF\FKNODVED]RZ\FKKomputer, 1DS
G&', Dysk, 3á\WD*áyZQD,
CPURadiator, Procesor, RamSlot i
5$00RGXá .ODV\ WH V SRáF]RQH ]ZL]NDPL NRPSR]\FML
6FKHPDWWHQZQRWDFML80/>@]RVWDáSU]HGVWDZLRQ\QDU\VXQNX
V_Komputer
producent
dysk
napedCD
V_RAM
nr_slotu : Integer
nr_banku : Integer
czas_dostepu : Integer
pojemnoscMB : Integer
V_PlytaGlowna
cpu_radiator_moc
porcesor_ty p
ply ta : V_PlytaGlowna
ply ta : V_PlytaGlowna
ram : V_RAM
ram : V_RAM
5\V3U]\NáDGRZDSHUVSHNW\ZDRELHNWRZD]GHILQLRZDQDMDNRVFKHPDW
1D SRGVWDZLH NODV WHJR VFKHPDWX XWZRU]RQR VFKHPDW SHUVSHNW\Z\ ]áR*RQ\ ] WU]HFK
QDVW
SXMF\FK NODV V_Komputer, 9B3á\WD*áyZQD i V_RAM, przedstawiony na rysunku 5. Klasa
wirtualna V_Komputer
]RVWDáDZ\ZLHG]LRQD]NODVED]RZ\FKKomputer, 1DS G&' i Dysk przez ich
SRáF]HQLH L SURMHNFM Z\EUDQ\FK DWU\EXWyZ =ELyU Z\VWSLH NODV\ V_Komputer PR*H ]RVWDü
RJUDQLF]RQ\ GR Z\EUDQ\FK RELHNWyZ VSHáQLDMF\FK RGSRZLHGQLH ZDUXQNL .ODVD 9B3á\WD*áyZQD
]RVWDáDZ\ZLHG]LRQD]NODVED]RZ\FK3á\WD*áyZQD, CPURadiator i ProcesorSU]H]LFKSRáF]HQLHL
SURMHNFM
Z\EUDQ\FKDWU\EXWyZ:SRGREQ\VSRVyEZ\ZLHG]LRQRNODV
ZLUWXDOQV_RAM z klas
bazowych
5$00RGXá i RAMSlot 'R WDN ]GHILQLRZDQ\FK NODV VFKHPDWX SHUVSHNW\Z\ PR*QD
Z\GDZDü]DS\WDQLDZM ]\NX24/WDNMDNGRNODVED]RZ\FK
4. Perspektywa relacyjno–obiektowa w Oracle8
Perspektywa relacyjno–obiektowa jest nowym rodzajem perspektywy, wprowadzonym w
relacyjno–obiektowej bazie danych Oracle8.
Perspektywy (views) w systemach baz danych: aktualny stan technologii
91
4.1. Rozszerzenia obiektowe w SZBD Oracle8
6\VWHP =DU]G]DQLD %D] 'DQ\FK Oracle8 ]RVWDá UR]V]HU]RQ\ R QDVW SXMFH PHFKDQL]P\
obiektowe (por. [9, 19]):
•
PR*OLZRüGHILQLRZDQLDZáDVQ\FKW\SyZGDQ\FKR]áR*RQHMVWUXNWXU]H
•
PR*OLZRüGHILQLRZDQLDRSHUDFMLPHWRGQDW\SDFK
•
PR*OLZRü Z\NRU]\VWDQLD SUHGHILQLRZDQ\FK W\SyZ GDQ\FK UHSUH]HQWXMF\FK NROHNFMH
RELHNWyZRUD]SUHGHILQLRZDQ\FKPHWRGRSHUXMF\FKQDW\FKNROHNFMDFK
•
WR*VDPRü RELHNWyZ ]UHDOL]RZDQ ]D SRPRF XQLNDOQ\FK LGHQW\ILNDWRUyZ RELHNWyZ DQJ
object identifiers) nadawanych przez system;
•
SU]HFL*DQLHQD]ZPHWRG
W Oracle8
UR]OX(QLRQRMHGQDNZáDVQRüKHUPHW\F]QRFLRELHNWyZ2]QDF]DWR*HGRDWU\EXWyZ
RELHNWXPR*QDVL
RGZRá\ZDü]DUyZQR]DSRPRFPHWRGMDNUyZQLH*EH]SRUHGQLR±DGUHVXMF
wybrany atrybut. Oracle8
QLHZVSLHUDPHFKDQL]PXG]LHG]LF]HQLDLSy(QHJRZL]DQLD
7UZDáRü Z\VWSLH GDQHJR W\SX WM RELHNWyZ UHDOL]XMH VL SRSU]H] ]DSLVDQLH LFK Z WDEHOL
]ZL]DQHM]W\PW\SHP
4.2. Definicja perspektywy relacyjno–obiektowej
3HUVSHNW\Z\ UHODF\MQR±RELHNWRZH XPR*OLZLDM RGZ]RURZDQLH UHODF\MQHJR PRGHOX GDQ\FK Z
PRGHORELHNWRZ\LRGZURWQLHRGZ]RURZDQLHPRGHOXRELHNWRZHJRZUHODF\MQ\7DQRZDZáDVQRü
XPR*OLZLD SUDF VWDU\FK DSOLNDFML UHODF\MQ\FK QD VWUXNWXUDFK GDQ\FK PRGHOX RELHNWRZHJR
3HUVSHNW\Z\ RELHNWRZH XPR*OLZLDM UyZQLH* EXGRZDQLH RELHNWRZ\FK DSOLNDFML SUDFXMF\FK QD
relacyjnych bazach danych.
W celu zilustrowania sposobu definiowania nieskomplikowanej perspektywy relacyjno–
obiektowej w Oracle8
UR]ZD*P\SRQL*V]\SU]\NáDG=Dáy*P\*HZED]LHLVWQLHMGDQHUHODF\MQH
przechowywane w dwóch tabelach komputery i dyski
RVFKHPDWDFKSU]HGVWDZLRQ\FKSRQL*HM
SQL> desc komputery
Nazwa NULL? Typ
-------------- -------- ------------
KOMP_ID NOT NULL NUMBER(2)
TYP_PLYTY NOT NULL VARCHAR2(10)
RAM NOT NULL NUMBER(3)
PROCESOR VARCHAR2(15)
SQL> desc dyski
Nazwa NULL? Typ
--------------- -------- ------------
DYSK_ID NOT NULL NUMBER(4)
KOMP_ID NUMBER(2)
POJEMNOSCGB NOT NULL NUMBER(5,1)
PRODUCENT NOT NULL VARCHAR2(20)
'DQHWHPDME\üSUH]HQWRZDQHZIRUPDFLHRELHNWRZ\P:W\PFHOX]RVWDQ]GHILQLRZDQHGZD
W\S\RELHNWRZHLSHUVSHNW\ZDGRNRQXMFDRGSRZLHGQLHMWUDQVIRUPDFML7\S\RELHNWRZHTypDysk i
TypKomputer
E GUHSUH]HQWRZDá\VWUXNWXU\RELHNWRZHGODGDQ\FKSRFKRG]F\FKRGSRZLHGQLR]
tabel dyski i komputery
'HILQLFMHW\FKW\SyZSRGDQRSRQL*HM
create or replace type
TypDysk as object
(dysk_id number(4),
pojemnoscGB number(5,1),
producent varchar2(20));
create
or replace type TypNestedDysk as table of TypDysk;
create or replace type
TypKomputer as object
(komp_id number(4),
typ_plyty varchar2(10),
ram number(3),
procesor varchar2(15),
dysk TypNestedDysk);
92
Robert Wrembel
Typ o nazwie TypNestedDysk
SRVáX*\GR]DLPSOHPHQWRZDQLDNROHNFMLG\VNyZ]DPRQWRZDQ\FK
ZGDQ\PNRPSXWHU]H-HVWWRNROHNFMDW\SX]DJQLH*G*RQDWDEHODDQJQHVWHGWDEOHSRU>@
3RZ\*V]HW\S\SRVáX*MDNRNRQVWUXNWRU\RELHNWyZXGRVW SQLDQ\FKSU]H]UHODF\MQR±RELHNWRZ
SHUVSHNW\Z -HMGHILQLFMD]RVWDáDSU]HGVWDZLRQDSRQL*HM
create or replace view
ov_komputery
of
TypKomputer
with object identifier
(komp_id)
as
select
komp_id, typ_plyty, ram, procesor,
cast (multiset (select TypDysk(dysk_id, pojemnoscGB, producent)
from dyski
where komp_id=k.komp_id) as TypNestedDysk)
from
komputery k;
Klauzula of
SRZ\*V]HJRSROHFHQLD, VáX*\GRZVND]DQLDW\SXRELHNWRZHJRZQDV]\PSU]\SDGNX
TypKomputer
GHILQLXMFHJRW\SGDQ\FKGRVW SQ\SU]H]SHUVSHNW\Z ov_komputery. W momencie
RGZRáDQLDVL Z]DS\WDQLXGRWHMSHUVSHNW\Z\WZRU]RQHVMHMZ\VWSLHQLDWMGRVW SQHSU]H]QL
RELHNW\ 2ELHNW\ WH QLH V WUZDáH L QLH SRVLDGDM LGHQW\ILNDWRUyZ :áDVQRü WR*VDPRFL Z\PDJD
MHGQDN DE\ ZV]\VWNLH RELHNW\ E\á\ MHGQR]QDF]QLH LGHQW\ILNRZDQH : FHOX ZVND]DQLD ]ELRUX
DWU\EXWyZ MHGQR]QDF]QLH LGHQW\ILNXMF\FK RELHNW MHVW Z\NRU]\VW\ZDQD NODX]XOD with object
identifier
:SRZ\*V]\PSU]\NáDG]LHDWU\EXWHPNOXF]RZ\PMHVWkomp_id.
'OD ND*GHJR UHNRUGX SU]HWZDU]DQHJR SU]H] ]DS\WDQLH GHILQLXMFH SHUVSHNW\Z V Z\]QDF]DQH
ZDUWRFLDWU\EXWyZkomp_id, typ_plyty, ram, procesor i dysk. Atrybut dysk ]RVWDá]GHILQLRZDQ\MDNR
NROHNFMD G\VNyZ : FHOX Z\]QDF]HQLD ZDUWRFL DWU\EXWX dysk, jest uruchamiane podzapytanie
VNRUHORZDQHNWyUH]DSRPRFNRQVWUXNWRUDTypDysk tworzy obiekty typu TypDysk2ELHNW\WHV
QDVW SQLHWUDQVIRUPRZDQH]DSRPRFRSHUDWRUDmultiset GR]ELRUXZLHORHOHPHQWRZHJRDQDVW SQLH
]DSRPRFRSHUDWRUDcast ... as, do kolekcji typu TypNesteDysk.
3U]\NáDGRZH]DS\WDQLHGRSHUVSHNW\Zov_komputeryLMHJRZ\QLNSU]HGVWDZLRQRSRQL*HM
SQL> select typ_plyty plyta, procesor, dysk from ov_komputery;
PLYTA
PROCESOR
Dysk(DYSK_ID, POJEMNOSCGB, PRODUCENT)
------ ----------
---------------------------------------------
ATX
PentiumII
TypNestedDysk( TypDysk(1, 7,1, 'Seagate'),
TypDysk(2, 10,2, 'Western Digital'))
ATX2
PentiumIII
TypNestedDysk( TypDysk(3, 20,5, 'Fujitsu'),
TypDysk(4, 12, 'Maxtor'),
TypDysk(5, 10, 'Maxtor'))
,QWHJUDFMDGDQ\FK]DSRPRFSHUVSHNW\Z
5R]ZLMDMFH VL JDá ]LH SU]HP\VáX KDQGOX PHG\F\Q\ QDXNL Z\PDJDM VNáDGRZDQLD
L SU]HWZDU]DQLD GX*\FK LORFL GDQ\FK 'DQH WH V ]Z\NOH SU]HFKRZ\ZDQH Z V\VWHPDFK
LQIRUPDW\F]Q\FK SRVLDGDMF\FK Uy*QH VWUXNWXU\ L Z\NRU]\VWXMF\FK Uy*QH PRGHOH GDQ\FK QS
hierarchiczne, relacyjne, obiektowe), w dokumentach tekstowych, czy arkuszach kalkulacyjnych.
3RQLHZD* SU]HGVL ELRUVWZD LQVW\WXFMH RUJDQL]DFMH SURGXFHQFL GDQ\FK V F] VWR JHRJUDILF]QLH
UR]SURV]RQHZL FVDPHGDQHPDMUyZQLH*FKDUDNWHUUR]SURV]RQ\+HWHURJHQLF]QRüLUR]SURV]HQLH
LQIRUPDFMLXWUXGQLDGRQLFKGRVW SLLFKDQDOL] =WHJRSRZRGXQLH]E GQHVWDMHVL ZSURZDG]HQLH
PHFKDQL]PyZ XPR*OLZLDMF\FK LQWHJUDFM UR]SURV]RQ\FK L KHWHURJHQLF]Q\FK GDQ\FK -DN
ZVSRPQLDQRLQWHJUDFM
GDQ\FKPR*QD]UHDOL]RZDüZV\VWHPLHVIHGHURZDQ\FKED]GDQ\FKOXEZ
magazynie danych (ang. data warehouse) [10].
: SRGHMFLX SLHUZV]\P X*\WNRZQLN RSHUXMH QD JOREDOQ\P ]LQWHJURZDQ\P VFKHPDFLH ED]\
GDQ\FK =DS\WDQLH X*\WNRZQLND MHVW GHNRPSRQRZDQH QD ]DS\WDQLD NLHURZDQH GR ORNDOQ\FK ED]
Perspektywy (views) w systemach baz danych: aktualny stan technologii
93
GDQ\FK'HNRPSR]\FMDWDMHVWUHDOL]RZDQDSU]H]PRGXáSURJUDPRZ\W]Zmediator. 'RND*GHM]
ORNDOQ\FKED]GDQ\FKMHVWNLHURZDQH]DS\WDQLHZM ]\NXÄUR]XPLDQ\P´SU]H]W ED] 1DVW SQLH
Z\QLNL ND*GHJR ] ]DS\WD V WUDQVIRUPRZDQH GR PRGHOX Z NWyU\P ]DLPSOHPHQWRZDQR VFKHPDW
JOREDOQ\ ILOWURZDQH L áF]RQH Z MHGHQ ]ELyU GDQ\FK Z\QLNRZ\FK $UFKLWHNWXU
WDNLHJR V\VWHPX
przedstawiono na rysunku 6.
NRQZHUWHU
NRQZHUWHU
UyGáR GDQ\FK
NRQZHUWHU
VFKHPDW ]LQWHJURZDQ\
UyGáR GDQ\FK
UyGáR GDQ\FK
VFKHPDW (UyGáRZ\
VFKHPDW (UyGáRZ\
VFKHPDW (UyGáRZ\
VFKHPDW ORNDOQ\
VFKHPDW ORNDOQ\
VFKHPDW
HNVSRUWRZDQ\
VFKHPDW ORNDOQ\
ORNDOQ\
PRGHO GDQ\FK
ZVSyOQ\
PRGHO GDQ\FK
VFKHPDW
X*\WNRZQLND
VFKHPDW
JOREDOQ\
Rys. 6. Architektura systemu z sfederowanych baz danych
1DU\VXQNXW\PLQWHJURZDQHVWU]\(UyGáRZHED]\GDQ\FKR]QDF]RQHMDNR(UyGáRGDQ\FK, 2 i
3
]NWyU\FKND*GDSRVLDGDVZyMZáDVQ\PRGHOGDQ\FKLVFKHPDWR]QDF]RQHMDNRschemat lokalny
1, 2 i 3).
=DGDQLHP PRGXáX konwertera jest transformowanie danych z modelu (formatu)
Z\NRU]\VW\ZDQHJR Z (UyGOH GR MHGQROLWHJR PRGHOX LQWHJUDF\MQHJR QS UHODF\MQHJR UHODF\MQR±
obiektowego, obiektowego, semistrukturalnego. Schematy przetransformowane do wspólnego
modelu oznaczono jako
VFKHPDW (UyGáRZ\ , 2 i 3 'OD ND*GHJR PRGHOX GDQ\FK (UyGáRZ\FK
NRQLHF]QHMHVW]DVWRVRZDQLHVSHF\ILF]QHJRPRGXáXkonwertera1LHFDá\VFKHPDW(UyGáRZ\PXVL
E\ü XGRVW SQLDQ\ Z V\VWHPLH VIHGHURZDQ\P :\EyU F] FL VFKHPDWX (UyGáRZHJR SRGOHJDMFHJR
LQWHJUDFML UHDOL]XMH VL
]D SRPRF SHUVSHNW\Z QD U\VXQNX UHSUH]HQWRZDQ\FK SU]H] schemat
eksportowany
'RSLHURVFKHPDW\HNVSRUWRZDQHSRGOHJDMLQWHJUDFMLLZFKRG]ZVNáDGschematu
zintegrowanego.
1DVFKHPDFLH]LQWHJURZDQ\PRSHUXMX*\WNRZQLF\UHDOL]XMF]DMHJRSRUHGQLFWZHPGRVW SGR
KHWHURJHQLF]Q\FKLUR]SURV]RQ\FK(UyGHáGDQ\FK1DVFKHPDFLH]LQWHJURZDQ\PPRJUyZQLH*E\ü
]GHILQLRZDQH SHUVSHNW\Z\ VWDQRZLFH W]Z VFKHPDW X*\WNRZQLND RJUDQLF]DMFH GRVW
S W\ONR GR
wybranych informacji.
: SRGHMFLX GUXJLP WM PDJD]\QX GDQ\FK UR]SURV]RQH L KHWHURJHQLF]QH GDQH V
WUDQVIRUPRZDQHGRPRGHOXPDJD]\QXILOWURZDQHLáF]RQHDQDVW SQLH]DSLVDQHZMHGQ\PPLHMVFX
± PDJD]\QLH GDQ\FK =DS\WDQLD X*\WNRZQLNyZ V NLHURZDQH GR PDJD]\QX $UFKLWHNWXUD
integracyjna systemu magazynu danych jest podobna do tej z rysunku 6.
6. Perspektywa zmaterializowana
Kolejnym rodzajem perspektywy jest tzw. perspektywa zmaterializowana (ang. materialized
YLHZ -HGQ\P ] ]DGD SHUVSHNW\Z\ ]PDWHULDOL]RZDQHM MHVW VNUyFHQLH F]DVX Z\NRQ\ZDQLD
VNRPSOLNRZDQ\FK F]DVRFKáRQQ\FK ]DS\WD ]DZLHUDMF\FK SRáF]HQLD L JUXSRZDQLD
0DWHULDOL]RZDQLH GDQ\FK PD Z W\P SU]\SDGNX VHQV MH*HOL Z V\VWHPLH F] VWR SRMDZLDM VL
94
Robert Wrembel
]DS\WDQLDLGHQW\F]QHOXESRGREQHGRWHJRNWyUHZ\VW SXMHZGHILQLFMLSHUVSHNW\Z\'RGDWNRZR
GDQHZWDEHODFKED]RZ\FKWDNLHMSHUVSHNW\Z\QLHSRZLQQ\XOHJDüF] VWHPXPRG\ILNRZDQLX-H*HOL
Z V\VWHPLH SRMDZL VL
]DS\WDQLH NWyUH PR*H ]RVWDü Z\NRQDQH ] Z\NRU]\VWDQLHP
zmaterializowanych perspektyw, zamiast korzystania z tabel bazowych, wówczas optymalizator
]DS\WD VNRQVWUXXMH RGSRZLHGQLH ]DS\WDQLH GR W\FK SHUVSHNW\Z -HVW WR W]Z zamiana zapytania
DQJTXHU\UHZULWLQJ3URFHVWHQMHVWQLHZLGRF]Q\GODX*\WNRZQLND
3HUVSHNW\ZD ]PDWHULDOL]RZDQD IL]\F]QLH SU]HFKRZXMH UHNRUG\ E GFH Z\QLNLHP ]DS\WDQLD M
GHILQLXMFHJR3HUVSHNW\ZD]PDWHULDOL]RZDQDPR*HE\üLQGHNVRZDQDLSDUW\FMRQRZDQDSRGREQLH
MDNWDEHOD0R*QDUyZQLH*GODQLHM]GHILQLRZDüSDUDPHWU\VNáDGRZDQLDLSU]HVWU]HWDEHO
W przypadku zmaterializowanej perspektywy, podobnie jak w przypadku migawki, powstaje
SUREOHPXDNWXDOQLDQLDMHM]DZDUWRFLZSU]\SDGNXPRG\ILNRZDQLD]DZDUWRFLWDEHOED]RZ\FKWHM
perspektywy. System Oracle
XPR*OLZLDRGZLH*DQLHSHUVSHNW\Z\ZMHGQ\P]GZyFKWU\EyZSRU
>@SHáQ\Pcomplete) lub przyrostowym (fast7U\ESHáQ\SROHJDQDSRQRZQ\PZ\NRQDQLX
]DS\WDQLD GHILQLXMFHJR SHUVSHNW\Z L Z\SHáQLHQLX MHM DNWXDOQ\PL GDQ\PL 7U\E SU]\URVWRZ\
SROHJDQDSU]HVáDQLXGRSHUVSHNW\Z\W\ONRW\FKUHNRUGyZNWyUHVL ]PLHQLá\RGF]DVXRVWDWQLHJRMHM
RGZLH*HQLD : W\P SU]\SDGNX QLH]E GQ\ MHVW G]LHQQLN Z NWyU\P WUDQVDNFMD E G]LH ]DSLV\ZDáD
]PLDQ\GRNRQDQHQDGDQ\FKZWDEHODFKED]RZ\FKSHUVSHNW\Z\:WU\ELHSU]\URVWRZ\PPRJE\ü
RGZLH*DQHW\ONRSHUVSHNW\Z\SURVWHSRUSXQNW
2GZLH*DQLH SHUVSHNW\Z\ PR*H ]RVWDü ]UHDOL]RZDQH Z WU\ELH V\QFKURQLF]Q\P OXE
DV\QFKURQLF]Q\P 7U\E V\QFKURQLF]Q\ SROHJD QD RGZLH*HQLX SHUVSHNW\Z\ QDW\FKPLDVW SR
]DNRF]HQLXWUDQVDNFMLPRG\ILNXMFHMGDQHZMHMWDEHODFKED]RZ\FK7U\EDV\QFKURQLF]Q\SROHJD
QDRNUHVRZ\PRGZLH*DQLXSHUVSHNW\Z\]RNUHORQ\PLQWHUZDáHPOXEPDQXDOQLHWMQD*GDQLH
X*\WNRZQLND
'R PDQXDOQHJR RGZLH*DQLD ]PDWHULDOL]RZDQHM SHUVSHNW\Z\ QDOH*\ Z\NRU]\VWDü SDNLHW
systemowy DBMS_MVIEW
Z U]HF]\ZLVWRFL V\QRQLP GR SDNLHWX DBMS_SNAPSHOT Z VNáDG
NWyUHJRZFKRG]SURFHGXU\XPR*OLZLDMFHRGZLH*DQLHSHUVSHNW\Z\
3RQL*HMSU]HGVWDZLRQRSU]\NáDGRZHSROHFHQLHWZRU]FH]PDWHULDOL]RZDQSHUVSHNW\Z ZED]LH
danych Oracle8i.
create materialized view
suma_sprzedazy
build immediate
refresh complete
enable query rewrite
as
select
nazwa, sum(l_sztuk*cena_jedn) suma
from sprzedaz sp, sklepy sk
where sp.sklep_id=sk.sklep_id
group by nazwa;
Klauzula build immediate powoduje zmaterializowanie perspektywy natychmiast po jej
XWZRU]HQLX 3HUVSHNW\ZD MHVW RGZLH*DQD Z VSRVyE SHáQ\ NODX]XOD refresh complete). Klauzula
enable query rewrite
XPR*OLZLD Z\NRU]\VWDQLH SHUVSHNW\Z\ GR ]DPLDQ\ ]DS\WDQLD 3HUVSHNW\ZD
XWZRU]RQD]NODX]XOdisable query rewrite QLHE
G]LHZ\NRU]\VW\ZDQDGR]DPLDQ\]DS\WDQLDGR
momentu jej uaktywnienia poleceniem:
alter
materialized view nazwa_perspektywy
enable
query rewrite;
O tym, czy zmaterializowana perspektywa zostanie wykorzystana do zamiany zapytania
GHF\GXM GRGDWNRZR WU]\ SDUDPHWU\ NRQILJXUDF\MQH LQVWDQFML OPTIMIZER_MODE,
QUERY_REWRITE_ENABLED i QUERY_REWRITE_INTEGRITY. Zamiana zapytania jest
PR*OLZDW\ONRZyZF]DVJG\
1.
System wykorzystuje optymalizator kosztowy, tj. (1) parametr konfiguracyjny instancji
OPTIMIZER_MODE
SU]\MPXMHZDUWRüchoose i (2) dla tabel bazowych zebrano statystyki.
Perspektywy (views) w systemach baz danych: aktualny stan technologii
95
2.
Parametr konfiguracyjny QUERY_REWRITE_ENABLED
SU]\MPLHZDUWRütrue.
3RZ\*V]H SDUDPHWU\ PR*QD UyZQLH* PRG\ILNRZDü GOD SRMHG\QF]HM VHVML X*\WNRZQLND
8*\WNRZQLNZ\GDMF\]DS\WDQLHPXVLSRVLDGDüXSUDZQLHQLHV\VWHPRZHQuery Rewrite lub Global
Query Rewrite.
Po utworzeniu perspektywy suma_sprzedazy
Z Z\*HM RSLVDQ\ VSRVyE ]RVWDQLH RQD
Z\NRU]\VWDQDGRZ\]QDF]HQLDZ\QLNyZSRQL*V]HJR]DS\WDQLD
select
nazwa, sum(l_sztuk*cena_jedn) suma
from
sprzedaz sp, sklepy sk
where
sp.sklep_id=sk.sklep_id
having sum
(l_sztuk*cena_jedn) > 30000
group
by nazwa;
3ODQZ\NRQDQLDWHJR]DS\WDQLDMHVWQDVW SXMF\
Execution Plan
---------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (FULL) OF 'SUMA_SPRZEDAZY'
: SU]\SDGNX SRQL*V]HJR ]DS\WDQLD QLH ]RVWDQLH MHGQDN Z\NRU]\VWDQD SHUVSHNW\ZD
VXPDBVSU]HGD*\, a jego wynik zostanie wyznaczony przy pomocy tabel bazowych.
select
nazwa, sum(l_sztuk*cena_jedn) suma
from
sprzedaz sp, sklepy sk
where
sp.sklep_id=sk.sklep_id
and
VNPLDVWR 3R]QD
group
by nazwa;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (GROUP BY)
2 1 NESTED LOOPS
3 2 TABLE ACCESS (FULL) OF 'SKLEPY'
4 2 TABLE ACCESS (FULL) OF 'SPRZEDAZ'
7. Perspektywa semistrukturalna
,QWHUQHWLWHFKQRORJLD:HE]UHZROXFMRQL]RZDá\VSRVyESUH]HQWRZDQLDGDQ\FKLVSRVyEGRVW SX
GR QLFK 'RW\FKF]DV GDQH E\á\ SXEOLNRZDQH QDMF] FLHM Z IRUPDFLH +70/ 2EHFQLH FRUD]
F]
FLHMZ\NRU]\VWXMHVL
GRWHJRFHOXM
]\N;0/]RE>@GREU]HQDGDMF\VL
GRRSLVXW]Z
danych semistrukturalnych
DQJVHPLVWUXFWXUHGGDWDZ\VW SXMF\FKZ,QWHUQHFLH
'DQH VHPLVWUXNWXUDOQH FKDUDNWHU\]XM VL W\P *H QLH PDM FLOH RNUHORQHM VWUXNWXU\ :
SU]\SDGNX WDEHOL UHODF\MQHM ZV]\VWNLH MHM UHNRUG\ SRVLDGDM DWU\EXW\ RNUHORQH VFKHPDWHP WHM
WDEHOL 3U]\NáDGRZR ZV]\VF\ NOLHQFL V RSLVDQL QXPHUHP 1,3 LPLHQLHP QD]ZLVNLHP DGUHVHP
QXPHUHPIDNVXLWHOHIRQX,QDF]HMMHVWZSU]\SDGNXGDQ\FKVHPLVWUXNWXUDOQ\FK&] üGDQ\FKPR*H
SRVLDGDüSHZQHDWU\EXW\DLQQ\FKQLHSRVLDGDü3U]\NáDGRZRF] üNOLHQWyZPR*HE\üRSLVDQD
W\ONRQXPHUHP1,3QD]ZLVNLHPLWHOHIRQHPDLQQDF] üNOLHQWyZ±W\ONRQD]ZLVNLHPLDGUHVHP
:SU]\SDGNXXGRVW SQLDQLDGDQ\FKZIRUPDFLH;0/EDUG]RZD*Q\PPHFKDQL]PHPVWDMVL
perspektywy. Ich zadaniem jest w tym przypadku:
•
LQWHJUDFMDGRVW SQ\FKZ,QWHUQHFLHLQIRUPDFMLRUy*QHMVWUXNWXU]H
•
XPR*OLZLHQLHQDGDQLDFLOHRNUHORQHMVWUXNWXU\GDQ\PVHPLVWUXNWXUDOQ\P
96
Robert Wrembel
: SU]\SDGNX SHUVSHNW\Z ;0/ NOXF]RZ NZHVWL MHVW M ]\N ]DS\WD NWyU\ XPR*OLZLáE\
wyszukanie odpowiednich danych semistrukturalnych i prezentowanie ich w formacie perspektywy
;0/ 0LPR *H SURZDG]RQH V LQWHQV\ZQH SUDFH EDGDZF]H > @ M ]\N WDNL NWyU\ E\áE\
VWDQGDUGHPMHV]F]HQLHSRZVWDá
-DNR SU]\NáDG SRWU]HE\ SHUVSHNW\Z ;0/ UR]ZD*P\ GZLH ED]\ GDQ\FK ] ]DZDUWRFL
XGRVW SQLDQ Z ,QWHUQHFLH 3LHUZV]D ] QLFK MHVW SU]HZRGQLNLHP WXU\VW\F]Q\P SR 3R]QDQLX L
XGRVW
SQLDLQIRUPDFMHQDWHPDWXOLFL]QDMGXMF\FKVL
QDQLFKRELHNWyZGR]ZLHG]DQLD'UXJDED]D
jest przewodnikiem gastronomicznym po Poznaniu i zawiera informacje na temat ulic i
]QDMGXMF\FKVL QDQLFKUHVWDXUDFML.D*GDUHVWDXUDFMDSRVLDGDPHQX7XU\VWDRGZLHG]DMF\3R]QD
FKFLDáE\ ]DSODQRZDü Z\FLHF]N Z WDNL VSRVyE DE\ QD MHM WUDVLH ]QDMGRZDá\ VL UyZQLH* GREUH
UHVWDXUDFMHW]QFKFLDáE\RQX]\VNDü]LQWHJURZDQHLQIRUPDFMHSRFKRG]FH]REXED]GDQ\FKQSZ
QDVW SXMFHMSRVWDFLQDZLDVNODPURZ\R]QDF]D]ELyUZ\VWSLH
{dzielnica, {ulica, {obiekt do zwiedzania}, {restauracja, {menu} } } }
,QQ\PLVáRZ\WXU\VWDFKFLDáE\Z\GDü]DS\WDQLHÄSRND*ZV]\VWNLHXOLFH6WDUHJR0LDVWDZUD]]
RELHNWDPLGR]ZLHG]DQLDLUHVWDXUDFMDPLDGODND*GHMUHVWDXUDFMLSRND*MHMPHQX”.
7.1. Koncepcje
-H*HOLFKRG]LRSHUVSHNW\Z\VHPLVWUXNWXUDOQHWRLVWQLHMWU]\SURWRW\SRZHV\VWHP\Active View
[1, 3] i Ozone [3, 12] oraz MIRO Web [6]. Architektura systemu Active View
]RVWDáDSU]HGVWDZLRQD
na rysunku 7.
6HUZHUHP GDQ\FK ;0/ PR*H E\ü ED]D GDQ\FK OXE GRZROQH LQQH UHSR]\WRULXP SRVLDGDMFH
PR*OLZRü SUH]HQWRZDQLD GDQ\FK Z IRUPDFLH ;0/ : RSLV\ZDQHM SURWRW\SRZHM LPSOHPHQWDFML
serwerem danych jest obiektowa baza danych O2
SU]HFKRZXMFD GDQH ;0/ Z RELHNWRZ\FK
VWUXNWXUDFKGDQ\FK6HUZHUHPSHUVSHNW\Z;0/MHVWDSOLNDFMDQDSLVDQDZM ]\NX-DYD$SOLNDFMDWD
MHVW RGSRZLHG]LDOQD ]D UHVWUXNWXUDOL]DFM GDQ\FK ]JRGQLH ] GHILQLFM SHUVSHNW\Z\ DXWRU\]DFM
GRVW SXLLQWHJUDFM ]LQQ\PL(UyGáDPLGDQ\FK'DQHSU]HNV]WDáFRQHSU]H]W DSOLNDFM VGRVW SQH
]DSRPRFSU]HJOGDUNL:::OXELQQHMDSOLNDFMLNOLHQWDQSSURJUDPXZ-DYD
UyGáR GDQ\FK ;0/
VHUZHU GDQ\FK ;0/
VHUZHU SHUVSHNW\Z ;0/
SU]HJOGDUND :::
DSOLNDFMD ]HZQ WU]QD
Rys. 7. Architektura systemu Active View
3RGREQH UR]ZL]DQLH GR RPyZLRQHJR
Z\*HM ]DVWRVRZDQR Z V\VWHPLH MIRO
Web. Polega ono na przetransformowaniu
danych semistrukturalnych do struktur
relacyjno–obiektowych i przechowywanie
tak przetworzonych danych w bazie
relacyjno–obiektowej (Oracle8).
Konwersja danych jest realizowana przez
RGSRZLHGQL
PRGXá
SURJUDPRZ\
1DVW SQLH NRU]\VWDMF ] PHFKDQL]PyZ
ED]\
GDQ\FK
PR*QD
]GHILQLRZDü
perspektywy relacyjno–obiektowe na tych
GDQ\FK OXE Z\NRU]\VWDü RSURJUDPRZDQLH
Z-DYDV\PXOXMFHSHUVSHNW\Z\
W systemie Ozone
GDQH VHPLVWUXNWXUDOQH V PRGHORZDQH MDNR JUDI D LPSOHPHQWRZDQH MDNR
kolekcje par
HW\NLHWD ZDUWRü! JG]LH ZDUWRFL PR*H E\ü FLJ ]QDNyZ OLF]ED GDWD LWS OXE
ZVND]DQLH GR LQQHJR Z ]áD JUDIX 3HUVSHNW\ZD MHVW UHSUH]HQWRZDQD SU]H] RELHNW W]Z proxy,
XPR*OLZLDMF\WUDQVIRUPDFM GDQ\FKVHPLVWUXNWXUDOQ\FKGRVWUXNWXUDOQ\FKLRGZURWQLH
7.2. Otwarte problemy badawcze
-DN ZVSRPQLDQR MHGQ\P ] ]DGD SHUVSHNW\Z\ VHPLVWUXNWXUDOQHM MHVW ]DSHZQLHQLH GRVW SX GR
ZLHOX(UyGHáGDQ\FKZVLHFL,QWHUQHW:FHOXVNUyFHQLDGRVW SXGRGDQ\FKLXQLH]DOH*QLHQLDVL RG
Perspektywy (views) w systemach baz danych: aktualny stan technologii
97
F]DVRZHM QLHGRVW SQRFL Z ]áyZ VLHFL EDUG]R SR*GDQ\P MHVW PR*OLZRü ]PDWHULDOL]RZDQLD
GDQ\FKXGRVW SQLDQ\FKSU]H]WDNSHUVSHNW\Z
Jednak w przypadku perspektyw XML problem uaktualniania zmaterializowanych perspektyw
MHVW ]QDF]QLH WUXGQLHMV]\ QL* Z SU]\SDGNX NODV\F]Q\FK ED] GDQ\FK :\QLND WR ] QDVW
SXMF\FK
czynników:
1.
'UyGáD GDQ\FK NWyUH Z\NRU]\VWDQR GR ]PDWHULDOL]RZDQLD SHUVSHNW\Z\ PRJ E\ü F]DVRZR
QLHGRVW SQHFRXQLHPR*OLZLDRGZLH*HQLHSHUVSHNW\Z\
2.
7UXGQRRV]DFRZDüNRV]WZ\NRQDQLD]DS\WDRGZLH*DMF\FKWDNSHUVSHNW\Z SRQLHZD*MHM
GHILQLFMD ;0/ ]Z\NOH RGZRáXMH VL GR ZLHOX UR]SURV]RQ\FK L KHWHURJHQLF]Q\FK (UyGHá
GDQ\FKQLHNRQLHF]QLHED]GDQ\FK.RV]WWDNLPXVLUyZQLH*XZ]JO GQLDüF]DV\GRVW SXGR
ND*GHJR]Z ]áyZLSU]HSXVWRZRüVLHFL:\VW SXMZL FSUREOHP\RSW\PDOL]DFML]DS\WD
3.
2GZLH*DQLH SU]\URVWRZH Z ZLHOX SU]\SDGNDFK QLH E G]LH PR*OLZH ]H Z]JO GX QD EUDN
G]LHQQLND RSHUDFML QD GDQ\FK (UyGáRZ\FK 3RFLJD WR ]D VRE NRQLHF]QRü RGZLH*DQLD
SHáQHJRFRPR*HE\üRSHUDFMF]DVRFKáRQQ
8. Podsumowanie
3HUVSHNW\ZDMHVWPHFKDQL]PHPQLH]E GQ\PZV\VWHPDFK ED] GDQ\FK &HOH MHM VWRVRZDQLD V
ZLHORUDNLH PLQ RJUDQLF]HQLH L DXWRU\]DFMD GRVW SX GR GDQ\FK ]DSHZQLHQLH ORJLF]QHM
QLH]DOH*QRFL GDQ\FK XSURV]F]HQLH VFKHPDWX ED]\ GDQ\FK LQWHJUDFMD L WUDQVIRUPDFMD GDQ\FK
PDWHULDOL]RZDQLH F] VWR Z\NRU]\VW\ZDQ\FK F]DVRFKáRQQ\FK ]DS\WD 0HFKDQL]P WHQ MHVW
ZVSLHUDQ\ SU]H] ZV]\VWNLH UHODF\MQH L UHODF\MQR±RELHNWRZH V\VWHP\ ]DU]G]DQLD ED]DPL GDQ\FK
DOHQLH]RVWDá]DLPSOHPHQWRZDQ\Z*DGQ\P]NRPHUF\MQ\FKV\VWHPyZRELHNWRZ\FKED]GDQ\FK
5R]ZyMV\VWHPyZLQWHUQHWRZ\FKZ\PXV]DZSURZDG]HQLHPHFKDQL]PXSHUVSHNW\ZUyZQLH*GR
WHFKQRORJLL:HE2ELHFXMF\PMHVWZW\PSU]\SDGNXM ]\N;0/3HUVSHNW\Z\GHILQLRZDQHZW\P
M ]\NXXPR*OLZLLQWHJUDFM GDQ\FKZVLHFL,QWHUQHW2EHFQLHZLHOHRURGNyZQDXNRZ\FKPLQ
,15,$8QLZHUV\WHW\6WDQIRUGL:DVKLQJWRQSURZDG]LSUDFHEDGDZF]HQDGLQWHJUDFM:HE¶X]D
SRPRFM ]\ND;0/
Bibliografia
1. Abiteboul S., Amann B., Cluet S., Milo T., Vianu V.: Active views for electronic
FRPPHUFH0DWHULDá\
konferencyjne: Conférences sur les Bases de Donées, 1998
2. Abiteboul S., Buneman P., Suciu D.: Data on the Web: from relations to semistructured data and XML.
Morgan Kaufmann Publishers, 2000, ISBN 1-55860-622-X
3. Abiteboul S.: On Views and XML. SIGMOD
5HFRUG9RO1RJUXG]LH
4. Ault M.: Oracle8i Administration and Management. Wiley Computer Publishing, 2000, ISBN 0-471-
35453-8
5. Booch G., Rumbaugh J., Jacobson I.: The Unified Modeling Language User Guide. Addison–Wesley,
1999, ISBN 0-201-57168-4
6. Bouganim L., Chan–Sine–Ying T., Tuyet–Tram Dang–Ngoc, Darroux J.L., Gardarin G., Sha F.: MIRO
Web: Integrating Multiple Data Sources through Semistructured Data
7\SHV0DWHULDá\NRQIHUHQF\MQH
Very Large DataBases, 1999
7. Cattell R., G., G., Barry D., Berler M., Eastman J., Jordan D., Russel C., Shadow O., Stanienda T.,
Velez F.: Object Database Standard: ODMG 3.0, Morgan Kaufmann Publishers, 2000
8. Ceri S., Fraternali P., Paraboschi S.: XML: Current Developments and Future Challenges for the
Database
&RPPXQLW\ 0DWHULDá\ NRQIHUHQF\MQH
Advances in Database Technology – EDBT’2000,
LNCS 1777
9. Dokumentacja RDBMS Oracle8i, rel. 8.1.6
98
Robert Wrembel
10. Elmargamid A., Rusinkiewicz M., Sheth A.: Management of Heterogeneous and Autonomous
Database Systems. Morgan Kaufmann Publishers, Inc. 1999, ISBN 1-55860-216-X
11. Gupta A., Mumick I.S.: Materialised Views: Techniques, Implementations, and Applications. MIT Press,
1999, ISBN 0-262-57122-6
12. Lahiri T., Abiteboul S., Widom J.: Ozone: Integrating structured and semistructured data.
www.db.stanford.edu/tlahiri/ozone.pdf
13.
0DWHULDá\V]NROHQLRZH2UDFOH3ROVND2UDFOHL1HZ
Features for Administrators
14. S. I. Yoo, H. J. Chang, An Object–Oriented Query Model Supporting Views, in Object Technologies for
Advanced Software, First JSSST Int. Symposium, Japan, 1993, vol. 742 of LNCS, 1993
15. Subieta K.,
3áRG]LH - 2EMHFW 9LHZV DQG 4XHU\ 0RGLILFDWLRQ 0DWHULDá\ NRQIHUHQF\MQH
th
IEEE
International Baltic Workshop on Databases & Information Systems, Lithuania, 2000
16.
7UDF]\N7:SURZDG]HQLHGRM ]\ND;0/,QIRUPDW\ND
17. Wieczerzycki W., Wrembel R.: Perspektywy w obiektowych bazach danych. Informatyka 10/95
18. Wieczerzycki W., Wrembel R.: Perspektywy w relacyjnych bazach danych. Informatyka 8/95
19. Wrembel R. Jezierski J.,
=DNU]HZLF] 0 6\VWHP =DU]G]DQLD %D] 'DQ\FK 2UDFOH L 2UDFOH
Wydawnictwo NAKOM, 1999, ISBN 83-86969-34-2
20. Wrembel R.: Object-Oriented Views: Virtues and
/LPLWDWLRQV 0DWHULDá\ NRQIHUHQF\MQH
th
International Symposium on Computer and Information Sciences – ISCIS’98, 1998