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 XGRVWSQLDQH SU]H] QL GDQH : WUDG\F\MQ\FK V\VWHPDFK
UHODF\MQ\FKED]GDQ\FKSHUVSHNW\Z\VZ\NRU]\VW\ZDQHPLQGRRJUDQLF]HQLDLDXWRU\]DFMLGRVWSXGR
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 GRVWS 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] XGRVWSQLD 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±EGFH
Z\QLNLHP]PDWHULDOL]RZDQLDGDQ\FKZ\]QDF]RQ\FKSU]H]]DS\WDQLHGHILQLXMFHWSHUVSHNW\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]HGVLELRUVWZD LQVW\WXFMH RUJDQL]DFMH SURGXFHQFL GDQ\FK V F]VWR JHRJUDILF]QLH
UR]SURV]RQHZLFVDPHGDQHPDMUyZQLH*FKDUDNWHUUR]SURV]RQ\+HWHURJHQLF]QRüLUR]SURV]HQLH
LQIRUPDFML XWUXGQLD GR QLFK GRVWS 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
GRVWSXGRGDQ\FK
: V\VWHPDFK PDJD]\QyZ GDQ\FK GDQH V HNVSORURZDQH ]D SRPRF ]áR*RQ\FK ]DS\WD
]DZLHUDMF\FKRGNLONXGRNLONXG]LHVLFLXRSHUDFMLáF]HQLDILOWURZDQLDJUXSRZDQLDLDJUHJRZDQLD
GDQ\FK 6 WR W]Z ]DS\WDQLD W\SX 2/$3 DQJ 2Q /LQH $QDO\WLFDO 3URFHVVLQJ =H Z]JOGX 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 ZLF
HIHNW\ZQRüV\VWHPXED]\GDQ\FK-HGQ\P]UR]ZL]D]ZLNV]DMF\FKHIHNW\ZQRüV\VWHPXMHVW
PDWHULDOL]RZDQLHF]FLRZ\FKSRUHGQLFKZ\QLNyZQDMF]FLHMZ\NRQ\ZDQ\FK]DS\WD]DSRPRF
perspektyw zmaterializowanych.
6WUXNWXUDQLQLHMV]HJRDUW\NXáXMHVWQDVWSXMFDZSXQNWDFKGUXJLPWU]HFLPLF]ZDUW\P]RVWDQ
omówione odpowiednio koncepcje perspektywy relacyjnej, obiektowej i relacyjno–obiektowej.
3XQNWSLW\MHVWSRZLFRQ\]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\FKSRVLDGDQDVWSXMFHZá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\ZDPDVWUXNWXUWDNVDPMDNWDEHODDZLFMHVW
]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\PDQDVWSQLHWDNSU]HWZRU]RQH]DS\WDQLHMHVWNLHURZDQHGRWDEHOED]RZ\FK
2.2. Cele stosowania perspektywy
:WUDG\F\MQ\FKV\VWHPDFKUHODF\MQ\FKED]GDQ\FKSRGVWDZRZHFHOHVWRVRZDQLDSHUVSHNW\ZV
QDVWSXMFH
1.
$XWRU\]DFMDGRVWSXGRGDQ\FK
3RQLHZD*SHUVSHNW\Z\XGRVWSQLDMW\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]\PXMSUDZDGRVWSXGRSHUVSHNW\ZQDWRPLDVWQLHRWU]\PXMSUDZGRVWSX
do tabel bazowych.
3U]\NáDGHP VWRVRZDQLD SHUVSHNW\Z GR XNU\FLD SHZQ\FK LQIRUPDFML MHVW VáRZQLN ED]\
GDQ\FK:UDPDFKWHJRVáRZQLNDZ\Uy*QLDVLSHUVSHNW\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 XGRVWSQLDMFH ZLFHM LQIRUPDFML QL*
SHUVSHNW\Z\GODX*\WNRZQLNyZQSZV\VWHPLHOracle: dba_db_links, dba_triggers).
2.
8áDWZLHQLHGRVWSXGRGDQ\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]DOHFDVLX*\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áDWZLHQLDGRVWSXGRGDQ\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*OLZLDWRZVWSQHSU]HWZRU]HQLHGDQ\FK]WDEHOED]RZ\FKL
LFKSUH]HQWDFMZSRVWDFLIRUPDFLHSUHIHURZDQHMSU]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]DVDSOLNDFMHQLHEGZ\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.
,QWHJUDFMGDQ\FKSRFKRG]F\FK]UR]SURV]RQ\FKKRPR±LKHWHURJHQLF]Q\FK(UyGHáGDQ\FK
RUD] XQLH]DOH*QLHQLH X*\WNRZQLNyZ RG NRQLHF]QRFL GRVWSX 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]JOGX QD SRVWDü ]DS\WDQLD GHILQLXMFHJR SHUVSHNW\Z SHUVSHNW\Z\ PR*QD SRG]LHOLü QD
proste i
]áR*RQH3HUVSHNW\ZDMHVWSURVWMH*HOL]DS\WDQLHMGHILQLXMFH
•
RGZRáXMHVLZ\áF]QLHGRMHGQHMWDEHOLED]RZHM
•
QLH Z\NRU]\VWXMH IXQNFML M]\ND 64/ Z FHOX SU]HWZDU]DQLD ZDUWRFL DWU\EXWyZ
XGRVWSQLDQ\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
XGRVWSQLD ZV]\VWNLH DWU\EXW\ Z\EUDQ\FK UHNRUGyZ QDWRPLDVW
perspektywa V
2
XGRVWSQLDZ\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*HXGRVWSQLDü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]QLXGRVWSQLDQ\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\ZPLQ
•
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).
1DVWSQLHWDNSU]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\VWSXMFH 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\]DQDMZLNV]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 XGRVWSQLDQ\FK SU]H] SHUVSHNW\Z V
ograniczone.
-H*HOLSHUVSHNW\ZDMHVWSURVWDLGRGDWNRZRXGRVWSQLDZV]\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]WSHUVSHNW\ZLMHXVXZDü
W systemie Oracle
LQIRUPDFMH QD WHPDW DWU\EXWyZ SHUVSHNW\Z NWyUH PR*QD XDNWXDOQLDü V
GRVWSQH]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 ]HZQWU]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]\ QDVWSXMFH 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\ZQDVWSXMF\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]WSHUVSHNW\ZQDOH*\]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]\VWXMHVLVáRZDNOXF]RZHinsert, update, deleteXPR*OLZLDMFH
]GHILQLRZDQLH Z\]ZDODF]D UHDJXMFHJR RGSRZLHGQLR QD ZVWDZLHQLH XDNWXDOQLHQLH XVXQLFLH
UHNRUGyZGRVWSQ\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]JOGXFRUD]
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 QDVWSXMFH NRQFHSFMH RELHNW KHUPHW\F]QRü NODV
dziedziczenie i polimorfizm.
Obiekt.
-HGQ ] SRGVWDZRZ\FK NRQFHSFML SRGHMFLD RELHNWRZHJR MHVW obiekt (ang. object),
UHSUH]HQWXMF\ZV\VWHPLHNRPSXWHURZ\PHQFMPRGHORZDQHJRZLDWDU]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
PHWRGQLHMHVWGRVWSQDGODSURJUDPyZQD]\ZDVLKHUPHW\F]QRFLDQJHQFDSVXODWLRQ']LNL
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\SRVLDGDMFHWDNVDPVWUXNWXULPHWRG\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]JOGX 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\ZGHILQLXMHVLMDNRIXQNFMVNáDGRZDQNWyUHMZ\QLNLHP
G]LDáDQLDMHVWNROHNFMDRELHNWyZZ\]QDF]RQ\FKSU]H]WIXQNFM)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\GRVWSQH]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 ZLNV] 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\GRVWSQH]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\]RPLXQDVWSXMF\FKNODVED]RZ\FKKomputer, 1DSG&', 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
QDVWSXMF\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, 1DSG&' 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
SURMHNFMZ\EUDQ\FKDWU\EXWyZ:SRGREQ\VSRVyEZ\ZLHG]LRQRNODVZLUWXDOQV_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 QDVWSXMFH 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*QDVLRGZRá\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
EGUHSUH]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\RELHNWyZXGRVWSQLDQ\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\FKGRVWSQ\SU]H]SHUVSHNW\Zov_komputery. W momencie
RGZRáDQLDVLZ]DS\WDQLXGRWHMSHUVSHNW\Z\WZRU]RQHVMHMZ\VWSLHQLDWMGRVWSQHSU]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
QDVWSQLHWUDQVIRUPRZDQH]DSRPRFRSHUDWRUDmultiset GR]ELRUXZLHORHOHPHQWRZHJRDQDVWSQLH
]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]HGVLELRUVWZD LQVW\WXFMH RUJDQL]DFMH SURGXFHQFL GDQ\FK V F]VWR JHRJUDILF]QLH
UR]SURV]RQHZLFVDPHGDQHPDMUyZQLH*FKDUDNWHUUR]SURV]RQ\+HWHURJHQLF]QRüLUR]SURV]HQLH
LQIRUPDFMLXWUXGQLDGRQLFKGRVWSLLFKDQDOL]=WHJRSRZRGXQLH]EGQHVWDMHVLZSURZDG]HQLH
PHFKDQL]PyZ XPR*OLZLDMF\FK LQWHJUDFM UR]SURV]RQ\FK L KHWHURJHQLF]Q\FK GDQ\FK -DN
ZVSRPQLDQRLQWHJUDFMGDQ\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]WED]1DVWSQLH
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\ü XGRVWSQLDQ\ 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]DMHJRSRUHGQLFWZHPGRVWSGR
KHWHURJHQLF]Q\FKLUR]SURV]RQ\FK(UyGHáGDQ\FK1DVFKHPDFLH]LQWHJURZDQ\PPRJUyZQLH*E\ü
]GHILQLRZDQH SHUVSHNW\Z\ VWDQRZLFH W]Z VFKHPDW X*\WNRZQLND RJUDQLF]DMFH GRVWS W\ONR GR
wybranych informacji.
: SRGHMFLX GUXJLP WM PDJD]\QX GDQ\FK UR]SURV]RQH L KHWHURJHQLF]QH GDQH V
WUDQVIRUPRZDQHGRPRGHOXPDJD]\QXILOWURZDQHLáF]RQHDQDVWSQLH]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\VWSXMHZGHILQLFMLSHUVSHNW\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\ EGFH 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]EGQ\ MHVW G]LHQQLN Z NWyU\P WUDQVDNFMD EG]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\ZZED]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 QLHEG]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\WDQLDMHVWQDVWSXMF\
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\FKLVSRVyEGRVWSX
GR QLFK 'RW\FKF]DV GDQH E\á\ SXEOLNRZDQH QDMF]FLHM Z IRUPDFLH +70/ 2EHFQLH FRUD]
F]FLHMZ\NRU]\VWXMHVLGRWHJRFHOXM]\N;0/]RE>@GREU]HQDGDMF\VLGRRSLVXW]Z
danych semistrukturalnych
DQJVHPLVWUXFWXUHGGDWDZ\VWSXMF\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]\SDGNXXGRVWSQLDQLDGDQ\FKZIRUPDFLH;0/EDUG]RZD*Q\PPHFKDQL]PHPVWDMVL
perspektywy. Ich zadaniem jest w tym przypadku:
•
LQWHJUDFMDGRVWSQ\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
XGRVWSQLDQ Z ,QWHUQHFLH 3LHUZV]D ] QLFK MHVW SU]HZRGQLNLHP WXU\VW\F]Q\P SR 3R]QDQLX L
XGRVWSQLDLQIRUPDFMHQDWHPDWXOLFL]QDMGXMF\FKVLQDQLFKRELHNWyZGR]ZLHG]DQLD'UXJDED]D
jest przewodnikiem gastronomicznym po Poznaniu i zawiera informacje na temat ulic i
]QDMGXMF\FKVLQDQLFKUHVWDXUDFML.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
QDVWSXMFHMSRVWDFLQDZLDVNODPURZ\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
GRVWSXLLQWHJUDFM]LQQ\PL(UyGáDPLGDQ\FK'DQHSU]HNV]WDáFRQHSU]H]WDSOLNDFMVGRVWSQH
]DSRPRFSU]HJOGDUNL:::OXELQQHMDSOLNDFMLNOLHQWDQSSURJUDPXZ-DYD
UyGáR GDQ\FK ;0/
VHUZHU GDQ\FK ;0/
VHUZHU SHUVSHNW\Z ;0/
SU]HJOGDUND :::
DSOLNDFMD ]HZQWU]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\
1DVWSQLH 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\WUDQVIRUPDFMGDQ\FKVHPLVWUXNWXUDOQ\FKGRVWUXNWXUDOQ\FKLRGZURWQLH
7.2. Otwarte problemy badawcze
-DN ZVSRPQLDQR MHGQ\P ] ]DGD SHUVSHNW\Z\ VHPLVWUXNWXUDOQHM MHVW ]DSHZQLHQLH GRVWSX GR
ZLHOX(UyGHáGDQ\FKZVLHFL,QWHUQHW:FHOXVNUyFHQLDGRVWSXGRGDQ\FKLXQLH]DOH*QLHQLDVLRG
Perspektywy (views) w systemach baz danych: aktualny stan technologii
97
F]DVRZHM QLHGRVWSQRFL Z]áyZ VLHFL EDUG]R SR*GDQ\P MHVW PR*OLZRü ]PDWHULDOL]RZDQLD
GDQ\FKXGRVWSQLDQ\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 ] QDVWSXMF\FK
czynników:
1.
'UyGáD GDQ\FK NWyUH Z\NRU]\VWDQR GR ]PDWHULDOL]RZDQLD SHUVSHNW\Z\ PRJ E\ü F]DVRZR
QLHGRVWSQHFRXQLHPR*OLZLDRGZLH*HQLHSHUVSHNW\Z\
2.
7UXGQRRV]DFRZDüNRV]WZ\NRQDQLD]DS\WDRGZLH*DMF\FKWDNSHUVSHNW\ZSRQLHZD*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]JOGQLDüF]DV\GRVWSXGR
ND*GHJR]Z]áyZLSU]HSXVWRZRüVLHFL:\VWSXMZLFSUREOHP\RSW\PDOL]DFML]DS\WD
3.
2GZLH*DQLH SU]\URVWRZH Z ZLHOX SU]\SDGNDFK QLH EG]LH PR*OLZH ]H Z]JOGX 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]EGQ\PZV\VWHPDFK ED] GDQ\FK &HOH MHM VWRVRZDQLD V
ZLHORUDNLH PLQ RJUDQLF]HQLH L DXWRU\]DFMD GRVWSX 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*OLZLLQWHJUDFMGDQ\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