You are on page 1of 36



3DUWLWLRQV9LHZVDQG2WKHU6FKHPD
2EMHFWV
$OWKRXJKWDEOHVDQGLQGH[HVDUHWKHPRVWLPSRUWDQWDQGFRPPRQO\XVHGVFKHPD
REMHFWVWKHGDWDEDVHVXSSRUWVPDQ\RWKHUW\SHVRIVFKHPDREMHFWVWKHPRVW
FRPPRQRIZKLFKDUHGLVFXVVHGLQWKLVFKDSWHU
7KLVFKDSWHUFRQWDLQVWKHIROORZLQJVHFWLRQV
ȑ 2YHUYLHZRI3DUWLWLRQV
ȑ 2YHUYLHZRI6KDUGHG7DEOHV
ȑ 2YHUYLHZRI9LHZV
ȑ 2YHUYLHZRI0DWHULDOL]HG9LHZV
ȑ 2YHUYLHZRI6HTXHQFHV
ȑ 2YHUYLHZRI'LPHQVLRQV
ȑ 2YHUYLHZRI6\QRQ\PV

2YHUYLHZRI3DUWLWLRQV
,QDQ2UDFOHGDWDEDVHSDUWLWLRQLQJHQDEOHV\RXWRGHFRPSRVHYHU\ODUJHWDEOHV
DQGLQGH[HVLQWRVPDOOHUDQGPRUHPDQDJHDEOHSLHFHVFDOOHGSDUWLWLRQV(DFK
SDUWLWLRQLVDQLQGHSHQGHQWREMHFWZLWKLWVRZQQDPHDQGRSWLRQDOO\LWVRZQVWRUDJH
FKDUDFWHULVWLFV
)RUDQDQDORJ\WKDWLOOXVWUDWHVSDUWLWLRQLQJVXSSRVHDQ+5PDQDJHUKDVRQHELJER[
WKDWFRQWDLQVHPSOR\HHIROGHUV(DFKIROGHUOLVWVWKHHPSOR\HHKLUHGDWH4XHULHVDUH
RIWHQPDGHIRUHPSOR\HHVKLUHGLQDSDUWLFXODUPRQWK2QHDSSURDFKWRVDWLVI\LQJVXFK
UHTXHVWVLVWRFUHDWHDQLQGH[RQHPSOR\HHKLUHGDWHWKDWVSHFLILHVWKHORFDWLRQVRI
WKHIROGHUVVFDWWHUHGWKURXJKRXWWKHER[,QFRQWUDVWDSDUWLWLRQLQJVWUDWHJ\XVHVPDQ\
VPDOOHUER[HVZLWKHDFKER[FRQWDLQLQJIROGHUVIRUHPSOR\HHVKLUHGLQDJLYHQPRQWK
8VLQJVPDOOHUER[HVKDVVHYHUDODGYDQWDJHV:KHQDVNHGWRUHWULHYHWKHIROGHUVIRU
HPSOR\HHVKLUHGLQ-XQHWKH+5PDQDJHUFDQUHWULHYHWKH-XQHER[)XUWKHUPRUH
LIDQ\VPDOOER[LVWHPSRUDULO\GDPDJHGWKHRWKHUVPDOOER[HVUHPDLQDYDLODEOH
0RYLQJRIILFHVDOVREHFRPHVHDVLHUEHFDXVHLQVWHDGRIPRYLQJDVLQJOHKHDY\ER[
WKHPDQDJHUFDQPRYHVHYHUDOVPDOOER[HV
)URPWKHSHUVSHFWLYHRIDQDSSOLFDWLRQRQO\RQHVFKHPDREMHFWH[LVWV64/
VWDWHPHQWVUHTXLUHQRPRGLILFDWLRQWRDFFHVVSDUWLWLRQHGWDEOHV3DUWLWLRQLQJLVXVHIXO
IRUPDQ\GLIIHUHQWW\SHVRIGDWDEDVHDSSOLFDWLRQVSDUWLFXODUO\WKRVHWKDWPDQDJHODUJH
YROXPHVRIGDWD%HQHILWVLQFOXGH
ȑ ,QFUHDVHGDYDLODELOLW\
7KHXQDYDLODELOLW\RIDSDUWLWLRQGRHVQRWHQWDLOWKHXQDYDLODELOLW\RIWKHREMHFW7KH
TXHU\RSWLPL]HUDXWRPDWLFDOO\UHPRYHVXQUHIHUHQFHGSDUWLWLRQVIURPWKHTXHU\SODQ
VRTXHULHVDUHQRWDIIHFWHGZKHQWKHSDUWLWLRQVDUHXQDYDLODEOH


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

ȑ (DVLHUDGPLQLVWUDWLRQRIVFKHPDREMHFWV
$SDUWLWLRQHGREMHFWKDVSLHFHVWKDWFDQEHPDQDJHGHLWKHUFROOHFWLYHO\RU
LQGLYLGXDOO\''/VWDWHPHQWVFDQPDQLSXODWHSDUWLWLRQVUDWKHUWKDQHQWLUHWDEOHV
RULQGH[HV7KXV\RXFDQEUHDNXSUHVRXUFHLQWHQVLYHWDVNVVXFKDVUHEXLOGLQJ
DQLQGH[RUWDEOH)RUH[DPSOH\RXFDQPRYHRQHWDEOHSDUWLWLRQDWDWLPH,ID
SUREOHPRFFXUVWKHQRQO\WKHSDUWLWLRQPRYHPXVWEHUHGRQHQRWWKHWDEOHPRYH
$OVRGURSSLQJDSDUWLWLRQDYRLGVH[HFXWLQJQXPHURXVDELETEVWDWHPHQWV
ȑ 5HGXFHGFRQWHQWLRQIRUVKDUHGUHVRXUFHVLQ2/73V\VWHPV
,QVRPH2/73V\VWHPVSDUWLWLRQVFDQGHFUHDVHFRQWHQWLRQIRUDVKDUHGUHVRXUFH
)RUH[DPSOH'0/LVGLVWULEXWHGRYHUPDQ\VHJPHQWVUDWKHUWKDQRQHVHJPHQW
ȑ (QKDQFHGTXHU\SHUIRUPDQFHLQGDWDZDUHKRXVHV
,QDGDWDZDUHKRXVHSDUWLWLRQLQJFDQVSHHGSURFHVVLQJRIDGKRFTXHULHV)RU
H[DPSOHDVDOHVWDEOHFRQWDLQLQJDPLOOLRQURZVFDQEHSDUWLWLRQHGE\TXDUWHU

6HH$OVR
2UDFOH'DWDEDVH9/'%DQG3DUWLWLRQLQJ*XLGHIRUDQLQWURGXFWLRQWR
SDUWLWLRQLQJ

3DUWLWLRQ&KDUDFWHULVWLFV
(DFKSDUWLWLRQRIDWDEOHRULQGH[PXVWKDYHWKHVDPHORJLFDODWWULEXWHVVXFKDV
FROXPQQDPHVGDWDW\SHVDQGFRQVWUDLQWV
)RUH[DPSOHDOOSDUWLWLRQVLQDWDEOHVKDUHWKHVDPHFROXPQDQGFRQVWUDLQWGHILQLWLRQV
+RZHYHUHDFKSDUWLWLRQFDQKDYHVHSDUDWHSK\VLFDODWWULEXWHVVXFKDVWKHWDEOHVSDFH
WRZKLFKLWEHORQJV

3DUWLWLRQ.H\
7KHSDUWLWLRQNH\LVDVHWRIRQHRUPRUHFROXPQVWKDWGHWHUPLQHVWKHSDUWLWLRQLQ
ZKLFKHDFKURZLQDSDUWLWLRQHGWDEOHVKRXOGJR(DFKURZLVXQDPELJXRXVO\DVVLJQHG
WRDVLQJOHSDUWLWLRQ
,QWKHsalesWDEOH\RXFRXOGVSHFLI\WKHtime_idFROXPQDVWKHNH\RIDUDQJH
SDUWLWLRQ7KHGDWDEDVHDVVLJQVURZVWRSDUWLWLRQVEDVHGRQZKHWKHUWKHGDWHLQWKLV
FROXPQIDOOVLQDVSHFLILHGUDQJH2UDFOH'DWDEDVHDXWRPDWLFDOO\GLUHFWVLQVHUWXSGDWH
DQGGHOHWHRSHUDWLRQVWRWKHDSSURSULDWHSDUWLWLRQE\XVLQJWKHSDUWLWLRQNH\

3DUWLWLRQLQJ6WUDWHJLHV
2UDFOH3DUWLWLRQLQJRIIHUVVHYHUDOSDUWLWLRQLQJVWUDWHJLHVWKDWFRQWUROKRZWKHGDWDEDVH
SODFHVGDWDLQWRSDUWLWLRQV7KHEDVLFVWUDWHJLHVDUHUDQJHOLVWDQGKDVKSDUWLWLRQLQJ
$VLQJOHOHYHOSDUWLWLRQLQJXVHVRQO\RQHPHWKRGRIGDWDGLVWULEXWLRQIRUH[DPSOH
RQO\OLVWSDUWLWLRQLQJRURQO\UDQJHSDUWLWLRQLQJ,QFRPSRVLWHSDUWLWLRQLQJDWDEOHLV
SDUWLWLRQHGE\RQHGDWDGLVWULEXWLRQPHWKRGDQGWKHQHDFKSDUWLWLRQLVIXUWKHUGLYLGHG
LQWRVXESDUWLWLRQVXVLQJDVHFRQGGDWDGLVWULEXWLRQPHWKRG)RUH[DPSOH\RXFRXOGXVH
DOLVWSDUWLWLRQIRUchannel_idDQGDUDQJHVXESDUWLWLRQIRUtime_id


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

([DPSOH6DPSOH5RZ6HWIRU3DUWLWLRQHG7DEOH
7KLVSDUWLWLRQLQJH[DPSOHDVVXPHVWKDW\RXZDQWWRSRSXODWHDSDUWLWLRQHGWDEOHsales
ZLWKWKHIROORZLQJURZV

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD


AMOUNT_SOLD
---------- ---------- --------- ---------- ---------- -------------
-----------
116 11393 05-JUN-99 2 999
1 12.18
40 100530 30-NOV-98 9 33
1 44.99
118 133 06-JUN-01 2 999
1 17.12
133 9450 01-DEC-00 2 999
1 31.28
36 4523 27-JAN-99 3 999
1 53.89
125 9417 04-FEB-98 3 999
1 16.86
30 170 23-FEB-01 2 999
1 8.8
24 11899 26-JUN-99 4 999
1 43.04
35 2606 17-FEB-00 3 999
1 54.94
45 9491 28-AUG-98 4 350
1 47.45

5DQJH3DUWLWLRQLQJ
,QUDQJHSDUWLWLRQLQJWKHGDWDEDVHPDSVURZVWRSDUWLWLRQVEDVHGRQUDQJHV
RIYDOXHVRIWKHSDUWLWLRQLQJNH\5DQJHSDUWLWLRQLQJLVWKHPRVWFRPPRQW\SHRI
SDUWLWLRQLQJDQGLVRIWHQXVHGZLWKGDWHV
6XSSRVHWKDW\RXFUHDWHtime_range_salesDVDSDUWLWLRQHGWDEOHXVLQJWKHIROORZLQJ
64/VWDWHPHQWZLWKWKHtime_idFROXPQDVWKHSDUWLWLRQNH\
CREATE TABLE time_range_sales
( prod_id NUMBER(6)
, cust_id NUMBER
, time_id DATE
, channel_id CHAR(1)
, promo_id NUMBER(6)
, quantity_sold NUMBER(3)
, amount_sold NUMBER(10,2)
)
PARTITION BY RANGE (time_id)
(PARTITION SALES_1998 VALUES LESS THAN (TO_DATE('01-JAN-1999','DD-MON-YYYY')),
PARTITION SALES_1999 VALUES LESS THAN (TO_DATE('01-JAN-2000','DD-MON-YYYY')),
PARTITION SALES_2000 VALUES LESS THAN (TO_DATE('01-JAN-2001','DD-MON-YYYY')),
PARTITION SALES_2001 VALUES LESS THAN (MAXVALUE)
);

$IWHUZDUG\RXORDGtime_range_salesZLWKWKHURZVIURP([DPSOH7KHFRGH
VKRZVWKHURZGLVWULEXWLRQVLQWKHIRXUSDUWLWLRQV7KHGDWDEDVHFKRRVHVWKHSDUWLWLRQ


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

IRUHDFKURZEDVHGRQWKHtime_idYDOXHDFFRUGLQJWRWKHUXOHVVSHFLILHGLQWKH
PARTITION BY RANGEFODXVH7KHUDQJHSDUWLWLRQNH\YDOXHGHWHUPLQHVWKHQRQ
LQFOXVLYHKLJKERXQGIRUDVSHFLILHGSDUWLWLRQ

,QWHUYDO3DUWLWLRQLQJ
,QWHUYDOSDUWLWLRQLQJLVDQH[WHQVLRQRIUDQJHSDUWLWLRQLQJ
,I\RXLQVHUWGDWDWKDWH[FHHGVH[LVWLQJUDQJHSDUWLWLRQVWKHQ2UDFOH'DWDEDVH
DXWRPDWLFDOO\FUHDWHVSDUWLWLRQVRIDVSHFLILHGLQWHUYDO)RUH[DPSOH\RXFRXOGFUHDWHD
VDOHVKLVWRU\WDEOHWKDWVWRUHVGDWDIRUHDFKPRQWKLQDVHSDUDWHSDUWLWLRQ
,QWHUYDOSDUWLWLRQVHQDEOH\RXWRDYRLGFUHDWLQJUDQJHSDUWLWLRQVH[SOLFLWO\<RXFDQXVH
LQWHUYDOSDUWLWLRQLQJIRUDOPRVWHYHU\WDEOHWKDWLVUDQJHSDUWLWLRQHGDQGXVHVIL[HG
LQWHUYDOVIRUQHZSDUWLWLRQV8QOHVV\RXFUHDWHUDQJHSDUWLWLRQVZLWKGLIIHUHQWLQWHUYDOV
RUXQOHVV\RXDOZD\VVHWVSHFLILFSDUWLWLRQDWWULEXWHVFRQVLGHUXVLQJLQWHUYDOSDUWLWLRQV
:KHQSDUWLWLRQLQJE\LQWHUYDO\RXPXVWVSHFLI\DWOHDVWRQHUDQJHSDUWLWLRQ7KHUDQJH
SDUWLWLRQLQJNH\YDOXHGHWHUPLQHVWKHKLJKYDOXHRIWKHUDQJHSDUWLWLRQVZKLFKLVFDOOHG
WKHWUDQVLWLRQSRLQW7KHGDWDEDVHDXWRPDWLFDOO\FUHDWHVLQWHUYDOSDUWLWLRQVIRUGDWD
ZLWKYDOXHVWKDWDUHEH\RQGWKHWUDQVLWLRQSRLQW7KHORZHUERXQGDU\RIHYHU\LQWHUYDO
SDUWLWLRQLVWKHLQFOXVLYHXSSHUERXQGDU\RIWKHSUHYLRXVUDQJHRULQWHUYDOSDUWLWLRQ
7KXVLQ([DPSOHYDOXH01-JAN-2011LVLQSDUWLWLRQp2

7KHGDWDEDVHFUHDWHVLQWHUYDOSDUWLWLRQVIRUGDWDEH\RQGWKHWUDQVLWLRQSRLQW$Q
LQWHUYDOSDUWLWLRQH[WHQGVUDQJHSDUWLWLRQLQJE\LQVWUXFWLQJWKHGDWDEDVHWRFUHDWH
SDUWLWLRQVRIWKHVSHFLILHGUDQJHRULQWHUYDO7KHGDWDEDVHDXWRPDWLFDOO\FUHDWHVWKH
SDUWLWLRQVZKHQGDWDLQVHUWHGLQWRWKHWDEOHH[FHHGVDOOH[LVWLQJUDQJHSDUWLWLRQV
,Q([DPSOHWKHp3SDUWLWLRQFRQWDLQVURZVZLWKSDUWLWLRQLQJNH\time_idYDOXHV
JUHDWHUWKDQRUHTXDOWR01-JAN-2013

([DPSOH,QWHUYDO3DUWLWLRQLQJ
$VVXPHWKDW\RXFUHDWHDVDOHVWDEOHZLWKIRXUSDUWLWLRQVRIYDU\LQJZLGWKV<RX
VSHFLI\WKDWDERYHWKHWUDQVLWLRQSRLQWRI-DQXDU\WKHGDWDEDVHVKRXOG
FUHDWHSDUWLWLRQVLQRQHPRQWKLQWHUYDOV7KHKLJKERXQGRISDUWLWLRQp3UHSUHVHQWV
WKHWUDQVLWLRQSRLQW3DUWLWLRQp3DQGDOOSDUWLWLRQVEHORZLWDUHLQWKHUDQJHVHFWLRQ
ZKHUHDVDOOSDUWLWLRQVDERYHLWIDOOLQWRWKHLQWHUYDOVHFWLRQ

CREATE TABLE interval_sales


( prod_id NUMBER(6)
, cust_id NUMBER
, time_id DATE
, channel_id CHAR(1)
, promo_id NUMBER(6)
, quantity_sold NUMBER(3)
, amount_sold NUMBER(10,2)
)
PARTITION BY RANGE (time_id)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
( PARTITION p0 VALUES LESS THAN (TO_DATE('1-1-2010', 'DD-MM-YYYY'))
, PARTITION p1 VALUES LESS THAN (TO_DATE('1-1-2011', 'DD-MM-YYYY'))
, PARTITION p2 VALUES LESS THAN (TO_DATE('1-7-2012', 'DD-MM-YYYY'))
, PARTITION p3 VALUES LESS THAN (TO_DATE('1-1-2013', 'DD-MM-
YYYY')) );


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

<RXLQVHUWDVDOHPDGHRQGDWH2FWREHU

SQL> INSERT INTO interval_sales VALUES (39,7602,'10-


OCT-14',9,null,1,11.79);

1 row created.

$TXHU\RIUSER_TAB_PARTITIONSVKRZVWKDWWKHGDWDEDVHFUHDWHGDQHZSDUWLWLRQIRU
WKH2FWREHUVDOHEHFDXVHWKHVDOHGDWHZDVODWHUWKDQWKHWUDQVLWLRQSRLQW

SQL> COL PNAME FORMAT a9


SQL> COL HIGH_VALUE FORMAT a40
SQL> SELECT PARTITION_NAME AS PNAME, HIGH_VALUE
2 FROM USER_TAB_PARTITIONS WHERE TABLE_NAME = 'INTERVAL_SALES';

PNAME HIGH_VALUE
--------- ----------------------------------------
P0 TO_DATE(' 2007-01-01 00:00:00', 'SYYYY-M
M-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
P1 TO_DATE(' 2008-01-01 00:00:00', 'SYYYY-M
M-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
P2 TO_DATE(' 2009-07-01 00:00:00', 'SYYYY-M
M-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
P3 TO_DATE(' 2010-01-01 00:00:00', 'SYYYY-M
M-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA
SYS_P1598 TO_DATE(' 2014-11-01 00:00:00', 'SYYYY-M
M-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA

6HH$OVR
2UDFOH'DWDEDVH9/'%DQG3DUWLWLRQLQJ*XLGHWROHDUQPRUHDERXWLQWHUYDO
SDUWLWLRQV

/LVW3DUWLWLRQLQJ
,QOLVWSDUWLWLRQLQJWKHGDWDEDVHXVHVDOLVWRIGLVFUHWHYDOXHVDVWKHSDUWLWLRQNH\IRU
HDFKSDUWLWLRQ7KHSDUWLWLRQLQJNH\FRQVLVWVRIRQHRUPRUHFROXPQV
<RXFDQXVHOLVWSDUWLWLRQLQJWRFRQWUROKRZLQGLYLGXDOURZVPDSWRVSHFLILFSDUWLWLRQV
%\XVLQJOLVWV\RXFDQJURXSDQGRUJDQL]HUHODWHGVHWVRIGDWDZKHQWKHNH\XVHGWR
LGHQWLI\WKHPLVQRWFRQYHQLHQWO\RUGHUHG
([DPSOH/LVW3DUWLWLRQLQJ
$VVXPHWKDW\RXFUHDWHlist_salesDVDOLVWSDUWLWLRQHGWDEOHXVLQJWKHIROORZLQJ
VWDWHPHQWZKHUHWKHchannel_idFROXPQLVWKHSDUWLWLRQNH\

CREATE TABLE list_sales


( prod_id NUMBER(6)
, cust_id NUMBER
, time_id DATE
, channel_id CHAR(1)


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

, promo_id NUMBER(6)
, quantity_sold NUMBER(3)
, amount_sold NUMBER(10,2)
)
PARTITION BY LIST (channel_id)
( PARTITION even_channels VALUES ('2','4'),
PARTITION odd_channels VALUES ('3','9')
);

$IWHUZDUG\RXORDGWKHWDEOHZLWKWKHURZVIURP([DPSOH7KHFRGHVKRZVWKH
URZGLVWULEXWLRQLQWKHWZRSDUWLWLRQV7KHGDWDEDVHFKRRVHVWKHSDUWLWLRQIRUHDFKURZ
EDVHGRQWKHchannel_idYDOXHDFFRUGLQJWRWKHUXOHVVSHFLILHGLQWKHPARTITION BY
LISTFODXVH5RZVZLWKDchannel_idYDOXHRIRUDUHVWRUHGLQWKHEVEN_CHANNELS
SDUWLWLRQVZKLOHURZVZLWKDchannel_idYDOXHRIRUDUHVWRUHGLQWKHODD_CHANNELS
SDUWLWLRQ

+DVK3DUWLWLRQLQJ
,QKDVKSDUWLWLRQLQJWKHGDWDEDVHPDSVURZVWRSDUWLWLRQVEDVHGRQDKDVKLQJ
DOJRULWKPWKDWWKHGDWDEDVHDSSOLHVWRWKHXVHUVSHFLILHGSDUWLWLRQLQJNH\
7KHGHVWLQDWLRQRIDURZLVGHWHUPLQHGE\WKHLQWHUQDOKDVKIXQFWLRQDSSOLHGWRWKHURZ
E\WKHGDWDEDVH:KHQWKHQXPEHURISDUWLWLRQVLVDSRZHURIWKHKDVKLQJDOJRULWKP
FUHDWHVDURXJKO\HYHQGLVWULEXWLRQRIURZVDFURVVDOOSDUWLWLRQV
+DVKSDUWLWLRQLQJLVXVHIXOIRUGLYLGLQJODUJHWDEOHVWRLQFUHDVHPDQDJHDELOLW\,QVWHDG
RIRQHODUJHWDEOHWRPDQDJH\RXKDYHVHYHUDOVPDOOHUSLHFHV7KHORVVRID
VLQJOHKDVKSDUWLWLRQGRHVQRWDIIHFWWKHUHPDLQLQJSDUWLWLRQVDQGFDQEHUHFRYHUHG
LQGHSHQGHQWO\+DVKSDUWLWLRQLQJLVDOVRXVHIXOLQ2/73V\VWHPVZLWKKLJKXSGDWH
FRQWHQWLRQ)RUH[DPSOHDVHJPHQWLVGLYLGHGLQWRVHYHUDOSLHFHVHDFKRIZKLFKLV
XSGDWHGLQVWHDGRIDVLQJOHVHJPHQWWKDWH[SHULHQFHVFRQWHQWLRQ
$VVXPHWKDW\RXFUHDWHWKHSDUWLWLRQHGhash_salesWDEOHXVLQJWKHIROORZLQJ
VWDWHPHQWZLWKWKHprod_idFROXPQDVWKHSDUWLWLRQNH\

CREATE TABLE hash_sales


( prod_id NUMBER(6)
, cust_id NUMBER
, time_id DATE
, channel_id CHAR(1)
, promo_id NUMBER(6)
, quantity_sold NUMBER(3)
, amount_sold NUMBER(10,2)
)
PARTITION BY HASH (prod_id)
PARTITIONS 2;

$IWHUZDUG\RXORDGWKHWDEOHZLWKWKHURZVIURP([DPSOH7KHFRGHVKRZV
DSRVVLEOHURZGLVWULEXWLRQLQWKHWZRSDUWLWLRQV7KHQDPHVRIWKHVHSDUWLWLRQVDUH
V\VWHPJHQHUDWHG
$V\RXLQVHUWURZVWKHGDWDEDVHDWWHPSWVWRUDQGRPO\DQGHYHQO\GLVWULEXWHWKHP
DFURVVSDUWLWLRQV<RXFDQQRWVSHFLI\WKHSDUWLWLRQLQWRZKLFKDURZLVSODFHG7KH
GDWDEDVHDSSOLHVWKHKDVKIXQFWLRQZKRVHRXWFRPHGHWHUPLQHVZKLFKSDUWLWLRQ
FRQWDLQVWKHURZ


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

6HH$OVR

ȑ 2UDFOH'DWDEDVH9/'%DQG3DUWLWLRQLQJ*XLGHWROHDUQKRZWRFUHDWH
SDUWLWLRQV
ȑ 2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHIRUCREATE TABLE ...
PARTITION BYH[DPSOHV

5HIHUHQFH3DUWLWLRQLQJ
,QUHIHUHQFHSDUWLWLRQLQJWKHSDUWLWLRQLQJVWUDWHJ\RIDFKLOGWDEOHLVVROHO\GHILQHG
WKURXJKWKHIRUHLJQNH\UHODWLRQVKLSZLWKDSDUHQWWDEOH)RUHYHU\SDUWLWLRQLQWKH
SDUHQWWDEOHH[DFWO\RQHFRUUHVSRQGLQJSDUWLWLRQH[LVWVLQWKHFKLOGWDEOH7KHSDUHQW
WDEOHVWRUHVWKHSDUHQWUHFRUGVLQDVSHFLILFSDUWLWLRQDQGWKHFKLOGWDEOHVWRUHVWKH
FKLOGUHFRUGVLQWKHFRUUHVSRQGLQJSDUWLWLRQ
)RUH[DPSOHDQordersWDEOHLVWKHSDUHQWRIWKHline_itemsWDEOHZLWKDSULPDU\
NH\DQGIRUHLJQNH\GHILQHGRQorder_id7KHWDEOHVDUHSDUWLWLRQHGE\UHIHUHQFH
)RUH[DPSOHLIWKHGDWDEDVHVWRUHVRUGHULQSDUWLWLRQQ3_2015RIordersWKHQ
WKHGDWDEDVHVWRUHVDOOOLQHLWHPVIRURUGHULQSDUWLWLRQQ3_2015RIline_items,I
SDUWLWLRQQ4_2015LVDGGHGWRordersWKHQWKHGDWDEDVHDXWRPDWLFDOO\DGGVQ4_2015WR
line_items

7KHDGYDQWDJHVRIUHIHUHQFHSDUWLWLRQLQJDUH
ȑ %\XVLQJWKHVDPHSDUWLWLRQLQJVWUDWHJ\IRUERWKWKHSDUHQWDQGFKLOGWDEOHV\RX
DYRLGGXSOLFDWLQJDOOSDUWLWLRQLQJNH\FROXPQV7KLVVWUDWHJ\UHGXFHVWKHPDQXDO
RYHUKHDGRIGHQRUPDOL]DWLRQDQGVDYHVVSDFH
ȑ 0DLQWHQDQFHRSHUDWLRQVRQDSDUHQWWDEOHRFFXURQWKHFKLOGWDEOHDXWRPDWLFDOO\
)RUH[DPSOHZKHQ\RXDGGDSDUWLWLRQWRWKHPDVWHUWDEOHWKHGDWDEDVH
DXWRPDWLFDOO\SURSDJDWHVWKLVDGGLWLRQWRLWVGHVFHQGHQWV
ȑ 7KHGDWDEDVHDXWRPDWLFDOO\XVHVSDUWLWLRQZLVHMRLQVRIWKHSDUWLWLRQVLQWKHSDUHQW
DQGFKLOGWDEOHLPSURYLQJSHUIRUPDQFH
<RXFDQXVHUHIHUHQFHSDUWLWLRQLQJZLWKDOOEDVLFSDUWLWLRQLQJVWUDWHJLHVLQFOXGLQJ
LQWHUYDOSDUWLWLRQLQJ<RXFDQDOVRFUHDWHUHIHUHQFHSDUWLWLRQHGWDEOHVDVFRPSRVLWH
SDUWLWLRQHGWDEOHV
([DPSOH&UHDWLQJ5HIHUHQFH3DUWLWLRQHG7DEOHV
7KLVH[DPSOHFUHDWHVDSDUHQWWDEOHRUGHUVZKLFKLVUDQJHSDUWLWLRQHGRQorder_date
7KHUHIHUHQFHSDUWLWLRQHGFKLOGWDEOHorder_itemsLVFUHDWHGZLWKIRXUSDUWLWLRQV
Q1_2015Q2_2015Q3_2015DQGQ4_2015ZKHUHHDFKSDUWLWLRQFRQWDLQVWKH
order_itemsURZVFRUUHVSRQGLQJWRRUGHUVLQWKHUHVSHFWLYHSDUHQWSDUWLWLRQ

CREATE TABLE orders


( order_id NUMBER(12),
order_date DATE,
order_mode VARCHAR2(8),
customer_id NUMBER(6),
order_status NUMBER(2),
order_total NUMBER(8,2),
sales_rep_id NUMBER(6),


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

promotion_id NUMBER(6),
CONSTRAINT orders_pk PRIMARY KEY(order_id)
)
PARTITION BY RANGE(order_date)
( PARTITION Q1_2015 VALUES LESS THAN (TO_DATE('01-APR-2015','DD-MON-
YYYY')),
PARTITION Q2_2015 VALUES LESS THAN (TO_DATE('01-JUL-2015','DD-MON-
YYYY')),
PARTITION Q3_2015 VALUES LESS THAN (TO_DATE('01-OCT-2015','DD-MON-
YYYY')),
PARTITION Q4_2015 VALUES LESS THAN (TO_DATE('01-JAN-2006','DD-MON-
YYYY'))
);

CREATE TABLE order_items


( order_id NUMBER(12) NOT NULL,
line_item_id NUMBER(3) NOT NULL,
product_id NUMBER(6) NOT NULL,
unit_price NUMBER(8,2),
quantity NUMBER(8),
CONSTRAINT order_items_fk
FOREIGN KEY(order_id) REFERENCES orders(order_id)
)
PARTITION BY REFERENCE(order_items_fk);

6HH$OVR
2UDFOH'DWDEDVH9/'%DQG3DUWLWLRQLQJ*XLGHIRUDQRYHUYLHZRIUHIHUHQFH
SDUWLWLRQLQJ

&RPSRVLWH3DUWLWLRQLQJ
,QFRPSRVLWHSDUWLWLRQLQJDWDEOHLVSDUWLWLRQHGE\RQHGDWDGLVWULEXWLRQPHWKRG
DQGWKHQHDFKSDUWLWLRQLVIXUWKHUVXEGLYLGHGLQWRVXESDUWLWLRQVXVLQJDVHFRQGGDWD
GLVWULEXWLRQPHWKRG7KXVFRPSRVLWHSDUWLWLRQLQJFRPELQHVWKHEDVLFGDWDGLVWULEXWLRQ
PHWKRGV$OOVXESDUWLWLRQVIRUDJLYHQSDUWLWLRQUHSUHVHQWDORJLFDOVXEVHWRIWKHGDWD
&RPSRVLWHSDUWLWLRQLQJSURYLGHVVHYHUDODGYDQWDJHV
ȑ 'HSHQGLQJRQWKH64/VWDWHPHQWSDUWLWLRQSUXQLQJRQRQHRUWZRGLPHQVLRQVPD\
LPSURYHSHUIRUPDQFH
ȑ 4XHULHVPD\EHDEOHWRXVHIXOORUSDUWLDOSDUWLWLRQZLVHMRLQVRQHLWKHUGLPHQVLRQ
ȑ <RXFDQSHUIRUPSDUDOOHOEDFNXSDQGUHFRYHU\RIDVLQJOHWDEOH
ȑ 7KHQXPEHURISDUWLWLRQVLVJUHDWHUWKDQLQVLQJOHOHYHOSDUWLWLRQLQJZKLFKPD\EH
EHQHILFLDOIRUSDUDOOHOH[HFXWLRQ
ȑ <RXFDQLPSOHPHQWDUROOLQJZLQGRZWRVXSSRUWKLVWRULFDOGDWDDQGVWLOOSDUWLWLRQ
RQDQRWKHUGLPHQVLRQLIPDQ\VWDWHPHQWVFDQEHQHILWIURPSDUWLWLRQSUXQLQJRU
SDUWLWLRQZLVHMRLQV


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

ȑ <RXFDQVWRUHGDWDGLIIHUHQWO\EDVHGRQLGHQWLILFDWLRQE\DSDUWLWLRQLQJNH\)RU
H[DPSOH\RXPD\GHFLGHWRVWRUHGDWDIRUDVSHFLILFSURGXFWW\SHLQDUHDGRQO\
FRPSUHVVHGIRUPDWDQGNHHSRWKHUSURGXFWW\SHGDWDXQFRPSUHVVHG
5DQJHOLVWDQGKDVKSDUWLWLRQLQJDUHHOLJLEOHDVVXESDUWLWLRQLQJVWUDWHJLHVIRU
FRPSRVLWHSDUWLWLRQHGWDEOHV7KHIROORZLQJILJXUHRIIHUVDJUDSKLFDOYLHZRIUDQJHKDVK
DQGUDQJHOLVWFRPSRVLWHSDUWLWLRQLQJ

)LJXUH&RPSRVLWH5DQJH/LVW3DUWLWLRQLQJ

7KHGDWDEDVHVWRUHVHYHU\VXESDUWLWLRQLQDFRPSRVLWHSDUWLWLRQHGWDEOHDVDVHSDUDWH
VHJPHQW7KXVVXESDUWLWLRQSURSHUWLHVPD\GLIIHUIURPWKHSURSHUWLHVRIWKHWDEOHRU
IURPWKHSDUWLWLRQWRZKLFKWKHVXESDUWLWLRQVEHORQJ

6HH$OVR
2UDFOH'DWDEDVH9/'%DQG3DUWLWLRQLQJ*XLGHWROHDUQPRUHDERXW
FRPSRVLWHSDUWLWLRQLQJ

3DUWLWLRQHG7DEOHV
$SDUWLWLRQHGWDEOHFRQVLVWVRIRQHRUPRUHSDUWLWLRQVZKLFKDUHPDQDJHGLQGLYLGXDOO\
DQGFDQRSHUDWHLQGHSHQGHQWO\RIWKHRWKHUSDUWLWLRQV
$WDEOHLVHLWKHUSDUWLWLRQHGRUQRQSDUWLWLRQHG(YHQLIDSDUWLWLRQHGWDEOHFRQVLVWVRI
RQO\RQHSDUWLWLRQWKLVWDEOHLVGLIIHUHQWIURPDQRQSDUWLWLRQHGWDEOHZKLFKFDQQRWKDYH
SDUWLWLRQVDGGHGWRLW


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

6HH$OVR
3DUWLWLRQ&KDUDFWHULVWLFVIRUH[DPSOHVRISDUWLWLRQHGWDEOHV
2YHUYLHZRI,QGH[2UJDQL]HG7DEOHVWROHDUQDERXWWKHSXUSRVH
DQGFKDUDFWHULVWLFVRI,QGH[2UJDQL]HG7DEOHVZKLFKFDQDOVREHQHILW
IURPSDUWLWLRQLQJWKDWSURYLGHVLPSURYHGPDQDJHDELOLW\DYDLODELOLW\DQG
SHUIRUPDQFH

6HJPHQWVIRU3DUWLWLRQHG7DEOHV
$SDUWLWLRQHGWDEOHLVPDGHXSRIRQHRUPRUHWDEOHSDUWLWLRQVHJPHQWV
,I\RXFUHDWHDSDUWLWLRQHGWDEOHQDPHGhash_productsWKHQQRWDEOHVHJPHQWLV
DOORFDWHGIRUWKLVWDEOH,QVWHDGWKHGDWDEDVHVWRUHVGDWDIRUHDFKWDEOHSDUWLWLRQLQ
LWVRZQSDUWLWLRQVHJPHQW(DFKWDEOHSDUWLWLRQVHJPHQWFRQWDLQVDSRUWLRQRIWKHWDEOH
GDWD
:KHQDQH[WHUQDOWDEOHLVSDUWLWLRQHGDOOSDUWLWLRQVUHVLGHRXWVLGHWKHGDWDEDVH,QD
K\EULGSDUWLWLRQHGWDEOHVRPHSDUWLWLRQVDUHVWRUHGLQVHJPHQWVZKHUHDVRWKHUVDUH
VWRUHGH[WHUQDOO\)RUH[DPSOHVRPHSDUWLWLRQVRIWKHsalesWDEOHPLJKWEHVWRUHGLQ
GDWDILOHVDQGRWKHUVLQVSUHDGVKHHWV

6HH$OVR

ȑ 2YHUYLHZRI([WHUQDO7DEOHV
ȑ 2YHUYLHZRI6HJPHQWV
WROHDUQDERXWWKHUHODWLRQVKLSEHWZHHQREMHFWVDQGVHJPHQWV

&RPSUHVVLRQIRU3DUWLWLRQHG7DEOHV
6RPHRUDOOSDUWLWLRQVRIDKHDSRUJDQL]HGWDEOHFDQEHVWRUHGLQDFRPSUHVVHGIRUPDW
&RPSUHVVLRQVDYHVVSDFHDQGFDQVSHHGTXHU\H[HFXWLRQ)RUWKLVUHDVRQ
FRPSUHVVLRQFDQEHXVHIXOLQHQYLURQPHQWVVXFKDVGDWDZDUHKRXVHVZKHUHWKH
DPRXQWRILQVHUWDQGXSGDWHRSHUDWLRQVLVVPDOODQGLQ2/73HQYLURQPHQWV
<RXFDQGHFODUHWKHDWWULEXWHVIRUWDEOHFRPSUHVVLRQIRUDWDEOHVSDFHWDEOHRUWDEOH
SDUWLWLRQ,IGHFODUHGDWWKHWDEOHVSDFHOHYHOWKHQWDEOHVFUHDWHGLQWKHWDEOHVSDFH
DUHFRPSUHVVHGE\GHIDXOW<RXFDQDOWHUWKHFRPSUHVVLRQDWWULEXWHIRUDWDEOHLQ
ZKLFKFDVHWKHFKDQJHRQO\DSSOLHVWRQHZGDWDJRLQJLQWRWKDWWDEOH&RQVHTXHQWO\
DVLQJOHWDEOHRUSDUWLWLRQPD\FRQWDLQFRPSUHVVHGDQGXQFRPSUHVVHGEORFNVZKLFK
JXDUDQWHHVWKDWGDWDVL]HZLOOQRWLQFUHDVHEHFDXVHRIFRPSUHVVLRQ,IFRPSUHVVLRQ
FRXOGLQFUHDVHWKHVL]HRIDEORFNWKHQWKHGDWDEDVHGRHVQRWDSSO\LWWRWKHEORFN


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

6HH$OVR

ȑ 7DEOH&RPSUHVVLRQWROHDUQDERXWW\SHVRIWDEOHFRPSUHVVLRQLQFOXGLQJ
EDVLFDGYDQFHGURZDQG+\EULG&ROXPQDU&RPSUHVVLRQ
ȑ 2UDFOH'DWDEDVH'DWD:DUHKRXVLQJ*XLGHWROHDUQDERXWWDEOH
FRPSUHVVLRQLQDGDWDZDUHKRXVH

3DUWLWLRQHG,QGH[HV
$SDUWLWLRQHGLQGH[LVDQLQGH[WKDWOLNHDSDUWLWLRQHGWDEOHKDVEHHQGLYLGHGLQWR
VPDOOHUDQGPRUHPDQDJHDEOHSLHFHV
*OREDOLQGH[HVDUHSDUWLWLRQHGLQGHSHQGHQWO\RIWKHWDEOHRQZKLFKWKH\DUHFUHDWHG
ZKHUHDVORFDOLQGH[HVDUHDXWRPDWLFDOO\OLQNHGWRWKHSDUWLWLRQLQJPHWKRGIRUD
WDEOH/LNHSDUWLWLRQHGWDEOHVSDUWLWLRQHGLQGH[HVLPSURYHPDQDJHDELOLW\DYDLODELOLW\
SHUIRUPDQFHDQGVFDODELOLW\
7KHIROORZLQJJUDSKLFVKRZVLQGH[SDUWLWLRQLQJRSWLRQV

)LJXUH,QGH[3DUWLWLRQLQJ2SWLRQV

Local Prefixed Index

Local Partitioned Index

Partitioned Index Local Nonprefixed Index

Global Partitioned Index

Nonpartitioned Index

6HH$OVR

ȑ ,QWURGXFWLRQWR,QGH[HVWROHDUQDERXWWKHGLIIHUHQFHEHWZHHQXQLTXH
DQGQRQXQLTXHLQGH[HVDQGWKHGLIIHUHQWLQGH[W\SHV
ȑ 2UDFOH'DWDEDVH9/'%DQG3DUWLWLRQLQJ*XLGHIRUPRUHLQIRUPDWLRQ
DERXWSDUWLWLRQHGLQGH[HVDQGKRZWRGHFLGHZKLFKW\SHWRXVH

/RFDO3DUWLWLRQHG,QGH[HV
,QDORFDOSDUWLWLRQHGLQGH[WKHLQGH[LVSDUWLWLRQHGRQWKHVDPHFROXPQVZLWKWKH
VDPHQXPEHURISDUWLWLRQVDQGWKHVDPHSDUWLWLRQERXQGVDVLWVWDEOH
(DFKLQGH[SDUWLWLRQLVDVVRFLDWHGZLWKH[DFWO\RQHSDUWLWLRQRIWKHXQGHUO\LQJWDEOH
VRWKDWDOONH\VLQDQLQGH[SDUWLWLRQUHIHURQO\WRURZVVWRUHGLQDVLQJOHWDEOH


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

SDUWLWLRQ,QWKLVZD\WKHGDWDEDVHDXWRPDWLFDOO\V\QFKURQL]HVLQGH[SDUWLWLRQVZLWK
WKHLUDVVRFLDWHGWDEOHSDUWLWLRQVPDNLQJHDFKWDEOHLQGH[SDLULQGHSHQGHQW
/RFDOSDUWLWLRQHGLQGH[HVDUHFRPPRQLQGDWDZDUHKRXVLQJHQYLURQPHQWV/RFDO
LQGH[HVRIIHUWKHIROORZLQJDGYDQWDJHV
ȑ $YDLODELOLW\LVLQFUHDVHGEHFDXVHDFWLRQVWKDWPDNHGDWDLQYDOLGRUXQDYDLODEOHLQD
SDUWLWLRQDIIHFWWKLVSDUWLWLRQRQO\
ȑ 3DUWLWLRQPDLQWHQDQFHLVVLPSOLILHG:KHQPRYLQJDWDEOHSDUWLWLRQRUZKHQGDWD
DJHVRXWRIDSDUWLWLRQRQO\WKHDVVRFLDWHGORFDOLQGH[SDUWLWLRQPXVWEHUHEXLOWRU
PDLQWDLQHG,QDJOREDOLQGH[DOOLQGH[SDUWLWLRQVPXVWEHUHEXLOWRUPDLQWDLQHG
ȑ ,ISRLQWLQWLPHUHFRYHU\RIDSDUWLWLRQRFFXUVWKHQWKHLQGH[HVFDQEHUHFRYHUHGWR
WKHUHFRYHU\WLPH VHH'DWD)LOH5HFRYHU\ 7KHHQWLUHLQGH[GRHVQRWQHHGWREH
UHEXLOW
7KHH[DPSOHLQ+DVK3DUWLWLRQLQJVKRZVWKHFUHDWLRQVWDWHPHQWIRUWKHSDUWLWLRQHG
hash_salesWDEOHXVLQJWKHprod_idFROXPQDVSDUWLWLRQNH\7KHIROORZLQJH[DPSOH
FUHDWHVDORFDOSDUWLWLRQHGLQGH[RQWKHtime_idFROXPQRIWKHhash_salesWDEOH

CREATE INDEX hash_sales_idx ON hash_sales(time_id) LOCAL;

,Q)LJXUHWKHhash_productsWDEOHKDVWZRSDUWLWLRQVVRhash_sales_idxKDV
WZRSDUWLWLRQV(DFKLQGH[SDUWLWLRQLVDVVRFLDWHGZLWKDGLIIHUHQWWDEOHSDUWLWLRQ,QGH[
SDUWLWLRQSYS_P38LQGH[HVURZVLQWDEOHSDUWLWLRQSYS_P33ZKHUHDVLQGH[SDUWLWLRQ
SYS_P39LQGH[HVURZVLQWDEOHSDUWLWLRQSYS_P34


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

)LJXUH/RFDO,QGH[3DUWLWLRQV

Index hash_sales_idx

Local Index Partition SYS_P38 Local Index Partition SYS_P39


Index Index

Table Partition SYS_P33

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

40 100530 30-NOV-98 9 33 1 44.99


118 133 06-JUN-01 2 999 1 17.12
36 4523 27-JAN-99 3 999 1 53.89
30 170 23-FEB-01 2 999 1 8.8
35 2606 17-FEB-00 3 999 1 54.94

Table Partition SYS_P34

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

116 11393 05-JUN-99 2 999 1 12.18


133 9450 01-DEC-00 2 999 1 31.28
125 9417 04-FEB-98 3 999 1 16.86
24 11899 26-JUN-99 4 999 1 43.04
45 9491 28-AUG-98 4 350 1 47.45

<RXFDQQRWH[SOLFLWO\DGGDSDUWLWLRQWRDORFDOLQGH[,QVWHDGQHZSDUWLWLRQVDUHDGGHG
WRORFDOLQGH[HVRQO\ZKHQ\RXDGGDSDUWLWLRQWRWKHXQGHUO\LQJWDEOH/LNHZLVH\RX
FDQQRWH[SOLFLWO\GURSDSDUWLWLRQIURPDORFDOLQGH[,QVWHDGORFDOLQGH[SDUWLWLRQVDUH
GURSSHGRQO\ZKHQ\RXGURSDSDUWLWLRQIURPWKHXQGHUO\LQJWDEOH
/LNHRWKHULQGH[HV\RXFDQFUHDWHDELWPDSLQGH[RQSDUWLWLRQHGWDEOHV7KHRQO\
UHVWULFWLRQLVWKDWELWPDSLQGH[HVPXVWEHORFDOWRWKHSDUWLWLRQHGWDEOHȅWKH\FDQQRWEH
JOREDOLQGH[HV*OREDOELWPDSLQGH[HVDUHVXSSRUWHGRQO\RQQRQSDUWLWLRQHGWDEOHV

/RFDO3UHIL[HGDQG1RQSUHIL[HG,QGH[HV
/RFDOSDUWLWLRQHGLQGH[HVDUHHLWKHUSUHIL[HGRUQRQSUHIL[HG
7KHLQGH[VXEW\SHVDUHGHILQHGDVIROORZV
ȑ /RFDOSUHIL[HGLQGH[HV
,QWKLVFDVHWKHSDUWLWLRQNH\VDUHRQWKHOHDGLQJHGJHRIWKHLQGH[GHILQLWLRQ,Q
WKHtime_range_salesH[DPSOHLQ5DQJH3DUWLWLRQLQJWKHWDEOHLVSDUWLWLRQHGE\


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

UDQJHRQtime_id$ORFDOSUHIL[HGLQGH[RQWKLVWDEOHZRXOGKDYHtime_idDVWKH
ILUVWFROXPQLQLWVOLVW
ȑ /RFDOQRQSUHIL[HGLQGH[HV
,QWKLVFDVHWKHSDUWLWLRQNH\VDUHQRWRQWKHOHDGLQJHGJHRIWKHLQGH[HGFROXPQ
OLVWDQGQHHGQRWEHLQWKHOLVWDWDOO,QWKHhash_sales_idxH[DPSOHLQ/RFDO
3DUWLWLRQHG,QGH[HVWKHLQGH[LVORFDOQRQSUHIL[HGEHFDXVHWKHSDUWLWLRQNH\
product_idLVQRWRQWKHOHDGLQJHGJH
%RWKW\SHVRILQGH[HVFDQWDNHDGYDQWDJHRISDUWLWLRQHOLPLQDWLRQ DOVRFDOOHGSDUWLWLRQ
SUXQLQJ ZKLFKRFFXUVZKHQWKHRSWLPL]HUVSHHGVGDWDDFFHVVE\H[FOXGLQJSDUWLWLRQV
IURPFRQVLGHUDWLRQ:KHWKHUDTXHU\FDQHOLPLQDWHSDUWLWLRQVGHSHQGVRQWKHTXHU\
SUHGLFDWH$TXHU\WKDWXVHVDORFDOSUHIL[HGLQGH[DOZD\VDOORZVIRULQGH[SDUWLWLRQ
HOLPLQDWLRQZKHUHDVDTXHU\WKDWXVHVDORFDOQRQSUHIL[HGLQGH[PLJKWQRW

6HH$OVR
2UDFOH'DWDEDVH9/'%DQG3DUWLWLRQLQJ*XLGHWROHDUQKRZWRXVHSUHIL[HG
DQGQRQSUHIL[HGLQGH[HV

/RFDO3DUWLWLRQHG,QGH[6WRUDJH
/LNHDWDEOHSDUWLWLRQDORFDOLQGH[SDUWLWLRQLVVWRUHGLQLWVRZQVHJPHQW(DFK
VHJPHQWFRQWDLQVDSRUWLRQRIWKHWRWDOLQGH[GDWD7KXVDORFDOLQGH[PDGHXSRI
IRXUSDUWLWLRQVLVQRWVWRUHGLQDVLQJOHLQGH[VHJPHQWEXWLQIRXUVHSDUDWHVHJPHQWV

6HH$OVR
2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHIRUCREATE INDEX ... LOCAL
H[DPSOHV

*OREDO3DUWLWLRQHG,QGH[HV
$JOREDOSDUWLWLRQHGLQGH[LVD%WUHHLQGH[WKDWLVSDUWLWLRQHGLQGHSHQGHQWO\RIWKH
XQGHUO\LQJWDEOHRQZKLFKLWLVFUHDWHG$VLQJOHLQGH[SDUWLWLRQFDQSRLQWWRDQ\RU
DOOWDEOHSDUWLWLRQVZKHUHDVLQDORFDOO\SDUWLWLRQHGLQGH[DRQHWRRQHSDULW\H[LVWV
EHWZHHQLQGH[SDUWLWLRQVDQGWDEOHSDUWLWLRQV
,QJHQHUDOJOREDOLQGH[HVDUHXVHIXOIRU2/73DSSOLFDWLRQVZKHUHUDSLGDFFHVVGDWD
LQWHJULW\DQGDYDLODELOLW\DUHLPSRUWDQW,QDQ2/73V\VWHPDWDEOHPD\EHSDUWLWLRQHG
E\RQHNH\IRUH[DPSOHWKHemployees.department_idFROXPQEXWDQDSSOLFDWLRQ
PD\QHHGWRDFFHVVWKHGDWDZLWKPDQ\GLIIHUHQWNH\VIRUH[DPSOHE\employee_idRU
job_id*OREDOLQGH[HVFDQEHXVHIXOLQWKLVVFHQDULR

$VDQLOOXVWUDWLRQVXSSRVHWKDW\RXFUHDWHDJOREDOSDUWLWLRQHGLQGH[RQWKH
time_range_salesWDEOHIURP5DQJH3DUWLWLRQLQJ,QWKLVWDEOHURZVIRUVDOHVIURP
DUHVWRUHGLQRQHSDUWLWLRQURZVIRUVDOHVIURPDUHLQDQRWKHUDQGVRRQ


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

7KHIROORZLQJH[DPSOHFUHDWHVDJOREDOLQGH[SDUWLWLRQHGE\UDQJHRQWKHchannel_id
FROXPQ

CREATE INDEX time_channel_sales_idx ON time_range_sales (channel_id)


GLOBAL PARTITION BY RANGE (channel_id)
(PARTITION p1 VALUES LESS THAN (3),
PARTITION p2 VALUES LESS THAN (4),
PARTITION p3 VALUES LESS THAN (MAXVALUE));

$VVKRZQLQ)LJXUHDJOREDOLQGH[SDUWLWLRQFDQFRQWDLQHQWULHVWKDWSRLQWWR
PXOWLSOHWDEOHSDUWLWLRQV,QGH[SDUWLWLRQp1SRLQWVWRWKHURZVZLWKDchannel_idRI
LQGH[SDUWLWLRQp2SRLQWVWRWKHURZVZLWKDchannel_idRIDQGLQGH[SDUWLWLRQp3
SRLQWVWRWKHURZVZLWKDchannel_idRIRU


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

)LJXUH*OREDO3DUWLWLRQHG,QGH[

Index
Global Index Global Index Index

Partition p3 Partition p2

Table Partition SALES_1998

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

40 100530 30-NOV-98 9 33 1 44.99


125 9417 04-FEB-98 3 999 1 16.86
45 9491 28-AUG-98 4 350 1 47.45

Table Partition SALES_1999

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

116 11393 05-JUN-99 2 999 1 12.18


36 4523 27-JAN-99 3 999 1 53.89
24 11899 26-JUN-99 4 999 1 43.04

Table Partition SALES_2000

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

133 9450 01-DEC-00 2 999 1 31.28


35 2606 17-FEB-00 3 999 1 54.94

Table Partition SALES_2001

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

118 133 06-JUN-01 2 999 1 17.12


30 170 23-FEB-01 2 999 1 8.8

Index
Global Index
Partition p1


&KDSWHU
2YHUYLHZRI3DUWLWLRQV

6HH$OVR

ȑ 2UDFOH'DWDEDVH9/'%DQG3DUWLWLRQLQJ*XLGHWROHDUQKRZWRPDQDJH
JOREDOSDUWLWLRQHGLQGH[HV
ȑ 2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHWROHDUQDERXWWKHGLOBAL
PARTITIONFODXVHRICREATE INDEX

3DUWLDO,QGH[HVIRU3DUWLWLRQHG7DEOHV
$SDUWLDOLQGH[LVDQLQGH[WKDWLVFRUUHODWHGZLWKWKHLQGH[LQJSURSHUWLHVRIDQ
DVVRFLDWHGSDUWLWLRQHGWDEOH
7KHFRUUHODWLRQHQDEOHV\RXWRVSHFLI\ZKLFKWDEOHSDUWLWLRQVDUHLQGH[HG3DUWLDO
LQGH[HVSURYLGHWKHIROORZLQJDGYDQWDJHV
ȑ 7DEOHSDUWLWLRQVWKDWDUHQRWLQGH[HGDYRLGFRQVXPLQJXQQHFHVVDU\LQGH[VWRUDJH
VSDFH
ȑ 3HUIRUPDQFHRIORDGVDQGTXHULHVFDQLPSURYH
%HIRUH2UDFOH'DWDEDVHFDQH[FKDQJHSDUWLWLRQRSHUDWLRQUHTXLUHGDSK\VLFDO
XSGDWHRIDQDVVRFLDWHGJOREDOLQGH[WRUHWDLQLWDVXVDEOH6WDUWLQJZLWK2UDFOH
'DWDEDVHFLIWKHSDUWLWLRQVLQYROYHGLQDSDUWLWLRQPDLQWHQDQFHRSHUDWLRQDUH
QRWSDUWRIDSDUWLDOJOREDOLQGH[WKHQWKHLQGH[UHPDLQVXVDEOHZLWKRXWUHTXLULQJ
DQ\JOREDOLQGH[PDLQWHQDQFH
ȑ ,I\RXLQGH[RQO\VRPHWDEOHSDUWLWLRQVDWLQGH[FUHDWLRQDQGLI\RXODWHULQGH[
RWKHUSDUWLWLRQVWKHQ\RXFDQUHGXFHWKHVRUWVSDFHUHTXLUHGE\LQGH[FUHDWLRQ
<RXFDQWXUQLQGH[LQJRQRURIIIRUWKHLQGLYLGXDOSDUWLWLRQVRIDWDEOH$SDUWLDOORFDO
LQGH[GRHVQRWKDYHXVDEOHLQGH[SDUWLWLRQVIRUDOOWDEOHSDUWLWLRQVWKDWKDYHLQGH[LQJ
WXUQHGRII$JOREDOLQGH[ZKHWKHUSDUWLWLRQHGRUQRWH[FOXGHVWKHGDWDIURPDOO
SDUWLWLRQVWKDWKDYHLQGH[LQJWXUQHGRII7KHGDWDEDVHGRHVQRWVXSSRUWSDUWLDOLQGH[HV
IRULQGH[HVWKDWHQIRUFHXQLTXHFRQVWUDLQWV
)LJXUHVKRZVWKHVDPHJOREDOLQGH[DVLQ)LJXUHH[FHSWWKDWWKHJOREDOLQGH[
LVSDUWLDO7DEOHSDUWLWLRQVSALES_1998DQGSALES_2000KDYHWKHLQGH[LQJSURSHUW\VHW
WROFFVRWKHSDUWLDOJOREDOLQGH[GRHVQRWLQGH[WKHP


&KDSWHU
2YHUYLHZRI6KDUGHG7DEOHV

)LJXUH3DUWLDO*OREDO3DUWLWLRQHG,QGH[

Index
Global Index Global Index Index

Partition p3 Partition p2

Table Partition SALES_1998

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

40 100530 30-NOV-98 9 33 1 44.99


125 9417 04-FEB-98 3 999 1 16.86
45 9491 28-AUG-98 4 350 1 47.45

Table Partition SALES_1999

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

116 11393 05-JUN-99 2 999 1 12.18


36 4523 27-JAN-99 3 999 1 53.89
24 11899 26-JUN-99 4 999 1 43.04

Table Partition SALES_2000

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

133 9450 01-DEC-00 2 999 1 31.28


35 2606 17-FEB-00 3 999 1 54.94

Table Partition SALES_2001

PROD_ID CUST_ID TIME_ID CHANNEL_ID PROMO_ID QUANTITY_SOLD AMOUNT_SOLD

118 133 06-JUN-01 2 999 1 17.12


30 170 23-FEB-01 2 999 1 8.8

Index
Global Index
Partition p1

2YHUYLHZRI6KDUGHG7DEOHV
,QDQ2UDFOHGDWDEDVHVKDUGLQJHQDEOHV\RXWREUHDNXSDODUJHWDEOHLQWRPRUH
PDQDJHDEOHSLHFHVFDOOHGVKDUGVWKDWFDQEHVWRUHGLQPXOWLSOHGDWDEDVHV
(DFKGDWDEDVHLVKRVWHGRQDGHGLFDWHGVHUYHUZLWKLWVRZQORFDOUHVRXUFHV&38
PHPRU\IODVKRUGLVN(DFKGDWDEDVHLQVXFKFRQILJXUDWLRQLVFDOOHGDVKDUG$OO


&KDSWHU
2YHUYLHZRI6KDUGHG7DEOHV

RIWKHVKDUGVWRJHWKHUPDNHXSDVLQJOHORJLFDOGDWDEDVHZKLFKLVUHIHUUHGWRDVD
VKDUGHGGDWDEDVH
+RUL]RQWDOSDUWLWLRQLQJLQYROYHVVSOLWWLQJDGDWDEDVHWDEOHDFURVVVKDUGVVRWKDWHDFK
VKDUGFRQWDLQVWKHWDEOHZLWKWKHVDPHFROXPQVEXWDGLIIHUHQWVXEVHWRIURZV$WDEOH
VSOLWXSLQWKLVPDQQHULVDOVRNQRZQDVDVKDUGHGWDEOH
7KHIROORZLQJILJXUHVKRZVDWDEOHKRUL]RQWDOO\SDUWLWLRQHGDFURVVWKUHHVKDUGV

)LJXUH+RUL]RQWDO3DUWLWLRQLQJRID7DEOH$FURVV6KDUGV

Unsharded Table in Sharded Table in Three Databases


One Database
Server

Server A Server B Server C

6KDUGLQJLVEDVHGRQVKDUHGQRWKLQJKDUGZDUHLQIUDVWUXFWXUHDQGLWHOLPLQDWHVVLQJOH
SRLQWVRIIDLOXUHEHFDXVHVKDUGVGRQRWVKDUHSK\VLFDOUHVRXUFHVVXFKDV&38
PHPRU\RUVWRUDJHGHYLFHV6KDUGVDUHDOVRORRVHO\FRXSOHGLQWHUPVRIVRIWZDUH
WKH\GRQRWUXQFOXVWHUZDUH
6KDUGVDUHW\SLFDOO\KRVWHGRQGHGLFDWHGVHUYHUV7KHVHVHUYHUVFDQEHFRPPRGLW\
KDUGZDUHRUHQJLQHHUHGV\VWHPV7KHVKDUGVFDQUXQRQVLQJOHLQVWDQFHRU2UDFOH
5$&GDWDEDVHV7KH\FDQEHSODFHGRQSUHPLVHVLQDFORXGRULQDK\EULGRQ
SUHPLVHVDQGFORXGFRQILJXUDWLRQ
)URPWKHSHUVSHFWLYHRIDGDWDEDVHDGPLQLVWUDWRUDQ6'%FRQVLVWVRIPXOWLSOH
GDWDEDVHVWKDWFDQEHPDQDJHGHLWKHUFROOHFWLYHO\RULQGLYLGXDOO\+RZHYHUIURPWKH
SHUVSHFWLYHRIWKHDSSOLFDWLRQDQ6'%ORRNVOLNHDVLQJOHGDWDEDVHWKHQXPEHURI
VKDUGVDQGGLVWULEXWLRQRIGDWDDFURVVWKRVHVKDUGVDUHFRPSOHWHO\WUDQVSDUHQWWR
GDWDEDVHDSSOLFDWLRQV
6KDUGLQJLVLQWHQGHGIRUFXVWRP2/73DSSOLFDWLRQVWKDWDUHVXLWDEOHIRUDVKDUGHG
GDWDEDVHDUFKLWHFWXUH$SSOLFDWLRQVWKDWXVHVKDUGLQJPXVWKDYHDZHOOGHILQHGGDWD
PRGHODQGGDWDGLVWULEXWLRQVWUDWHJ\ FRQVLVWHQWKDVKUDQJHOLVWRUFRPSRVLWH WKDW
SULPDULO\DFFHVVHVGDWDXVLQJDVKDUGLQJNH\([DPSOHVRIDVKDUGLQJNH\LQFOXGH
customer_idaccount_noRUcountry_id

6HH$OVR
8VLQJ2UDFOH6KDUGLQJ

6KDUGHG7DEOHV
$VKDUGHGWDEOHLVDWDEOHWKDWLVSDUWLWLRQHGLQWRVPDOOHUDQGPRUHPDQDJHDEOHSLHFHV
DPRQJPXOWLSOHGDWDEDVHVFDOOHGVKDUGV


&KDSWHU
2YHUYLHZRI6KDUGHG7DEOHV

2UDFOH6KDUGLQJLVLPSOHPHQWHGEDVHGRQWKH2UDFOH'DWDEDVHSDUWLWLRQLQJIHDWXUH
2UDFOH6KDUGLQJLVHVVHQWLDOO\GLVWULEXWHGSDUWLWLRQLQJEHFDXVHLWH[WHQGVSDUWLWLRQLQJE\
VXSSRUWLQJWKHGLVWULEXWLRQRIWDEOHSDUWLWLRQVDFURVVVKDUGV
3DUWLWLRQVDUHGLVWULEXWHGDFURVVVKDUGVDWWKHWDEOHVSDFHOHYHOEDVHGRQDVKDUGLQJ
NH\([DPSOHVRINH\VLQFOXGHFXVWRPHU,'DFFRXQWQXPEHUDQGFRXQWU\,'
7KHIROORZLQJGDWDW\SHVDUHVXSSRUWHGIRUWKHVKDUGLQJNH\
ȑ NUMBER
ȑ INTEGER
ȑ SMALLINT
ȑ RAW
ȑ (N)VARCHAR
ȑ (N)VARCHAR2
ȑ (N)CHAR
ȑ DATE
ȑ TIMESTAMP
(DFKSDUWLWLRQRIDVKDUGHGWDEOHUHVLGHVLQDVHSDUDWHWDEOHVSDFHDQGHDFK
WDEOHVSDFHLVDVVRFLDWHGZLWKDVSHFLILFVKDUG'HSHQGLQJRQWKHVKDUGLQJPHWKRG
WKHDVVRFLDWLRQFDQEHHVWDEOLVKHGDXWRPDWLFDOO\RUGHILQHGE\WKHDGPLQLVWUDWRU
(YHQWKRXJKWKHSDUWLWLRQVRIDVKDUGHGWDEOHUHVLGHLQPXOWLSOHVKDUGVWRWKH
DSSOLFDWLRQWKHWDEOHORRNVDQGEHKDYHVH[DFWO\WKHVDPHDVDSDUWLWLRQHGWDEOHLQ
DVLQJOHGDWDEDVH64/VWDWHPHQWVLVVXHGE\DQDSSOLFDWLRQQHYHUKDYHWRUHIHUWR
VKDUGVRUGHSHQGRQWKHQXPEHURIVKDUGVDQGWKHLUFRQILJXUDWLRQ
([DPSOH6KDUGHG7DEOH
7KHIDPLOLDU64/V\QWD[IRUWDEOHSDUWLWLRQLQJVSHFLILHVKRZURZVVKRXOGEHSDUWLWLRQHG
DFURVVVKDUGV)RUH[DPSOHWKHIROORZLQJ64/VWDWHPHQWFUHDWHVDVKDUGHGWDEOH
KRUL]RQWDOO\SDUWLWLRQLQJWKHWDEOHDFURVVVKDUGVEDVHGRQVKDUGLQJNH\cust_id

CREATE SHARDED TABLE customers


( cust_id NUMBER NOT NULL
, name VARCHAR2(50)
, address VARCHAR2(250)
, region VARCHAR2(20)
, class VARCHAR2(3)
, signup DATE
CONSTRAINT cust_pk PRIMARY KEY(cust_id)
)
PARTITION BY CONSISTENT HASH (cust_id)
PARTITIONS AUTO
TABLESPACE SET ts1
;

7KHSUHFHGLQJWDEOHLVSDUWLWLRQHGE\FRQVLVWHQWKDVKDVSHFLDOW\SHRIKDVK
SDUWLWLRQLQJFRPPRQO\XVHGLQVFDODEOHGLVWULEXWHGV\VWHPV7KLVWHFKQLTXH
DXWRPDWLFDOO\VSUHDGVWDEOHVSDFHVDFURVVVKDUGVWRSURYLGHDQHYHQGLVWULEXWLRQRI
GDWDDQGZRUNORDG1RWHWKDWJOREDOLQGH[HVRQVKDUGHGWDEOHVDUHQRWVXSSRUWHGEXW
ORFDOLQGH[HVDUHVXSSRUWHG


&KDSWHU
2YHUYLHZRI9LHZV

7DEOHVSDFH6HWV
2UDFOH6KDUGLQJFUHDWHVDQGPDQDJHVWDEOHVSDFHVDVDXQLWFDOOHGDWDEOHVSDFH
VHW7KHPARTITIONS AUTOFODXVHVSHFLILHVWKDWWKHQXPEHURISDUWLWLRQVVKRXOGEH
DXWRPDWLFDOO\GHWHUPLQHG7KLVW\SHRIKDVKLQJSURYLGHVPRUHIOH[LELOLW\DQGHIILFLHQF\
LQPLJUDWLQJGDWDEHWZHHQVKDUGVZKLFKLVLPSRUWDQWIRUHODVWLFVFDODELOLW\
$WDEOHVSDFHLVDORJLFDOXQLWRIGDWDGLVWULEXWLRQLQDQ6'%7KHGLVWULEXWLRQRI
SDUWLWLRQVDFURVVVKDUGVLVDFKLHYHGE\DXWRPDWLFDOO\FUHDWLQJSDUWLWLRQVLQWDEOHVSDFHV
WKDWUHVLGHRQGLIIHUHQWVKDUGV7RPLQLPL]HWKHQXPEHURIPXOWLVKDUGMRLQVWKH
FRUUHVSRQGLQJSDUWLWLRQVRIUHODWHGWDEOHVDUHDOZD\VVWRUHGLQWKHVDPHVKDUG(DFK
SDUWLWLRQRIDVKDUGHGWDEOHLVVWRUHGLQDVHSDUDWHWDEOHVSDFH

1RWH
2QO\2UDFOH0DQDJHG)LOHVDUHVXSSRUWHGE\WDEOHVSDFHVHWV
,QGLYLGXDOWDEOHVSDFHVFDQQRWEHGURSSHGRUDOWHUHGLQGHSHQGHQWO\RIWKH
HQWLUHWDEOHVSDFHVHW
TABLESPACE SETFDQQRWEHXVHGZLWKWKHXVHUGHILQHGVKDUGLQJPHWKRG

5HODWHG7RSLFV
ȑ 6KDUGLQJ$UFKLWHFWXUH
2UDFOH6KDUGLQJLVDGDWDEDVHVFDOLQJWHFKQLTXHEDVHGRQKRUL]RQWDOSDUWLWLRQLQJ
RIGDWDDFURVVPXOWLSOH2UDFOHGDWDEDVHV$SSOLFDWLRQVSHUFHLYHWKHSRRORI
GDWDEDVHVDVDVLQJOHORJLFDOGDWDEDVH
ȑ 8VLQJ2UDFOH6KDUGLQJ

2YHUYLHZRI9LHZV
$YLHZLVDORJLFDOUHSUHVHQWDWLRQRIRQHRUPRUHWDEOHV,QHVVHQFHDYLHZLVDVWRUHG
TXHU\
$YLHZGHULYHVLWVGDWDIURPWKHWDEOHVRQZKLFKLWLVEDVHGFDOOHGEDVHWDEOHV%DVH
WDEOHVFDQEHWDEOHVRURWKHUYLHZV$OORSHUDWLRQVSHUIRUPHGRQDYLHZDFWXDOO\DIIHFW
WKHEDVHWDEOHV<RXFDQXVHYLHZVLQPRVWSODFHVZKHUHWDEOHVDUHXVHG

1RWH
0DWHULDOL]HGYLHZVXVHDGLIIHUHQWGDWDVWUXFWXUHIURPVWDQGDUGYLHZV

9LHZVHQDEOH\RXWRWDLORUWKHSUHVHQWDWLRQRIGDWDWRGLIIHUHQWW\SHVRIXVHUV9LHZV
DUHRIWHQXVHGWR
ȑ 3URYLGHDQDGGLWLRQDOOHYHORIWDEOHVHFXULW\E\UHVWULFWLQJDFFHVVWRD
SUHGHWHUPLQHGVHWRIURZVRUFROXPQVRIDWDEOH


&KDSWHU
2YHUYLHZRI9LHZV

)RUH[DPSOH)LJXUHVKRZVKRZWKHstaffYLHZGRHVQRWVKRZWKHsalaryRU
commission_pctFROXPQVRIWKHEDVHWDEOHemployees
ȑ +LGHGDWDFRPSOH[LW\
)RUH[DPSOHDVLQJOHYLHZFDQEHGHILQHGZLWKDMRLQZKLFKLVDFROOHFWLRQRI
UHODWHGFROXPQVRUURZVLQPXOWLSOHWDEOHV+RZHYHUWKHYLHZKLGHVWKHIDFWWKDW
WKLVLQIRUPDWLRQDFWXDOO\RULJLQDWHVIURPVHYHUDOWDEOHV$TXHU\PLJKWDOVRSHUIRUP
H[WHQVLYHFDOFXODWLRQVZLWKWDEOHLQIRUPDWLRQ7KXVXVHUVFDQTXHU\DYLHZZLWKRXW
NQRZLQJKRZWRSHUIRUPDMRLQRUFDOFXODWLRQV
ȑ 3UHVHQWWKHGDWDLQDGLIIHUHQWSHUVSHFWLYHIURPWKDWRIWKHEDVHWDEOH
)RUH[DPSOHWKHFROXPQVRIDYLHZFDQEHUHQDPHGZLWKRXWDIIHFWLQJWKHWDEOHV
RQZKLFKWKHYLHZLVEDVHG
ȑ ,VRODWHDSSOLFDWLRQVIURPFKDQJHVLQGHILQLWLRQVRIEDVHWDEOHV
)RUH[DPSOHLIWKHGHILQLQJTXHU\RIDYLHZUHIHUHQFHVWKUHHFROXPQVRIDIRXU
FROXPQWDEOHDQGDILIWKFROXPQLVDGGHGWRWKHWDEOHWKHQWKHGHILQLWLRQRIWKH
YLHZLVQRWDIIHFWHGDQGDOODSSOLFDWLRQVXVLQJWKHYLHZDUHQRWDIIHFWHG
)RUDQH[DPSOHRIWKHXVHRIYLHZVFRQVLGHUWKHhr.employeesWDEOHZKLFKKDV
VHYHUDOFROXPQVDQGQXPHURXVURZV7RDOORZXVHUVWRVHHRQO\ILYHRIWKHVHFROXPQV
RURQO\VSHFLILFURZV\RXFRXOGFUHDWHDYLHZDVIROORZV

CREATE VIEW staff AS


SELECT employee_id, last_name, job_id, manager_id, department_id
FROM employees;

$VZLWKDOOVXETXHULHVWKHTXHU\WKDWGHILQHVDYLHZFDQQRWFRQWDLQWKHFOR UPDATE
FODXVH7KHIROORZLQJJUDSKLFLOOXVWUDWHVWKHYLHZQDPHGstaff1RWLFHWKDWWKHYLHZ
VKRZVRQO\ILYHRIWKHFROXPQVLQWKHEDVHWDEOH

)LJXUH9LHZ

Base
employees
Table
employee_id last_name job_id manager_id hire_date salary department_id
203 marvis hr_rep 101 07–Jun–94 6500 40
204 baer pr_rep 101 07–Jun–94 10000 70
205 higgins ac_rep 101 07–Jun–94 12000 110
206 gietz ac_account 205 07–Jun–94 8300 110

View staff
employee_id last_name job_id manager_id department_id
203 marvis hr_rep 101 40
204 baer pr_rep 101 70
205 higgins ac_rep 101 110
206 gietz ac_account 205 110


&KDSWHU
2YHUYLHZRI9LHZV

6HH$OVR

ȑ 2YHUYLHZRI0DWHULDOL]HG9LHZV
ȑ 2UDFOH'DWDEDVH$GPLQLVWUDWRUȉV*XLGHWROHDUQKRZWRPDQDJHYLHZV
ȑ 2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHIRUCREATE VIEWV\QWD[DQG
VHPDQWLFV

&KDUDFWHULVWLFVRI9LHZV
8QOLNHDWDEOHDYLHZLVQRWDOORFDWHGVWRUDJHVSDFHQRUGRHVDYLHZFRQWDLQGDWD
5DWKHUDYLHZLVGHILQHGE\DTXHU\WKDWH[WUDFWVRUGHULYHVGDWDIURPWKHEDVHWDEOHV
UHIHUHQFHGE\WKHYLHZ%HFDXVHDYLHZLVEDVHGRQRWKHUREMHFWVLWUHTXLUHVQR
VWRUDJHRWKHUWKDQVWRUDJHIRUWKHTXHU\WKDWGHILQHVWKHYLHZLQWKHGDWDGLFWLRQDU\
$YLHZKDVGHSHQGHQFLHVRQLWVUHIHUHQFHGREMHFWVZKLFKDUHDXWRPDWLFDOO\KDQGOHG
E\WKHGDWDEDVH)RUH[DPSOHLI\RXGURSDQGUHFUHDWHDEDVHWDEOHRIDYLHZ
WKHQWKHGDWDEDVHGHWHUPLQHVZKHWKHUWKHQHZEDVHWDEOHLVDFFHSWDEOHWRWKHYLHZ
GHILQLWLRQ

'DWD0DQLSXODWLRQLQ9LHZV
%HFDXVHYLHZVDUHGHULYHGIURPWDEOHVWKH\KDYHPDQ\VLPLODULWLHV8VHUVFDQ
TXHU\YLHZVDQGZLWKVRPHUHVWULFWLRQVWKH\FDQSHUIRUP'0/RQYLHZV2SHUDWLRQV
SHUIRUPHGRQDYLHZDIIHFWGDWDLQVRPHEDVHWDEOHRIWKHYLHZDQGDUHVXEMHFWWRWKH
LQWHJULW\FRQVWUDLQWVDQGWULJJHUVRIWKHEDVHWDEOHV
7KHIROORZLQJH[DPSOHFUHDWHVDYLHZRIWKHhr.employeesWDEOH
CREATE VIEW staff_dept_10 AS
SELECT employee_id, last_name, job_id,
manager_id, department_id
FROM employees
WHERE department_id = 10
WITH CHECK OPTION CONSTRAINT staff_dept_10_cnst;

7KHGHILQLQJTXHU\UHIHUHQFHVRQO\URZVIRUGHSDUWPHQW7KHCHECK OPTIONFUHDWHV
WKHYLHZZLWKDFRQVWUDLQWVRWKDWINSERTDQGUPDATEVWDWHPHQWVLVVXHGDJDLQVWWKH
YLHZFDQQRWUHVXOWLQURZVWKDWWKHYLHZFDQQRWVHOHFW7KXVURZVIRUHPSOR\HHVLQ
GHSDUWPHQWFDQEHLQVHUWHGEXWQRWURZVIRUGHSDUWPHQW

6HH$OVR
2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHWROHDUQDERXWVXETXHU\
UHVWULFWLRQVLQCREATE VIEWVWDWHPHQWV

+RZ'DWD,V$FFHVVHGLQ9LHZV
2UDFOH'DWDEDVHVWRUHVDYLHZGHILQLWLRQLQWKHGDWDGLFWLRQDU\DVWKHWH[WRIWKHTXHU\
WKDWGHILQHVWKHYLHZ


&KDSWHU
2YHUYLHZRI9LHZV

:KHQ\RXUHIHUHQFHDYLHZLQD64/VWDWHPHQW2UDFOH'DWDEDVHSHUIRUPVWKH
IROORZLQJWDVNV
 0HUJHVDTXHU\ ZKHQHYHUSRVVLEOH DJDLQVWDYLHZZLWKWKHTXHULHVWKDWGHILQH
WKHYLHZDQGDQ\XQGHUO\LQJYLHZV
2UDFOH'DWDEDVHRSWLPL]HVWKHPHUJHGTXHU\DVLI\RXLVVXHGWKHTXHU\ZLWKRXW
UHIHUHQFLQJWKHYLHZV7KHUHIRUH2UDFOH'DWDEDVHFDQXVHLQGH[HVRQDQ\
UHIHUHQFHGEDVHWDEOHFROXPQVZKHWKHUWKHFROXPQVDUHUHIHUHQFHGLQWKHYLHZ
GHILQLWLRQRULQWKHXVHUTXHU\DJDLQVWWKHYLHZ
6RPHWLPHV2UDFOH'DWDEDVHFDQQRWPHUJHWKHYLHZGHILQLWLRQZLWKWKHXVHUTXHU\
,QVXFKFDVHV2UDFOH'DWDEDVHPD\QRWXVHDOOLQGH[HVRQUHIHUHQFHGFROXPQV
 3DUVHVWKHPHUJHGVWDWHPHQWLQDVKDUHG64/DUHD
2UDFOH'DWDEDVHSDUVHVDVWDWHPHQWWKDWUHIHUHQFHVDYLHZLQDQHZVKDUHG64/
DUHDRQO\LIQRH[LVWLQJVKDUHG64/DUHDFRQWDLQVDVLPLODUVWDWHPHQW7KXVYLHZV
SURYLGHWKHEHQHILWRIUHGXFHGPHPRU\XVHDVVRFLDWHGZLWKVKDUHG64/
 ([HFXWHVWKH64/VWDWHPHQW
7KHIROORZLQJH[DPSOHLOOXVWUDWHVGDWDDFFHVVZKHQDYLHZLVTXHULHG$VVXPHWKDW
\RXFUHDWHemployees_viewEDVHGRQWKHemployeesDQGdepartmentsWDEOHV

CREATE VIEW employees_view AS


SELECT employee_id, last_name, salary, location_id
FROM employees JOIN departments USING (department_id)
WHERE department_id = 10;

$XVHUH[HFXWHVWKHIROORZLQJTXHU\RIemployees_view

SELECT last_name
FROM employees_view
WHERE employee_id = 200;

2UDFOH'DWDEDVHPHUJHVWKHYLHZDQGWKHXVHUTXHU\WRFRQVWUXFWWKHIROORZLQJTXHU\
ZKLFKLWWKHQH[HFXWHVWRUHWULHYHWKHGDWD

SELECT last_name
FROM employees, departments
WHERE employees.department_id = departments.department_id
AND departments.department_id = 10
AND employees.employee_id = 200;

6HH$OVR

ȑ 6KDUHG64/$UHDV
ȑ 2YHUYLHZRIWKH2SWLPL]HU
ȑ 2UDFOH'DWDEDVH64/7XQLQJ*XLGHWROHDUQDERXWTXHU\RSWLPL]DWLRQ


&KDSWHU
2YHUYLHZRI9LHZV

8SGDWDEOH-RLQ9LHZV
$MRLQYLHZKDVPXOWLSOHWDEOHVRUYLHZVLQLWVFROMFODXVH

,QWKHIROORZLQJH[DPSOHWKHstaff_dept_10_30YLHZMRLQVWKHemployeesDQG
departmentsWDEOHVLQFOXGLQJRQO\HPSOR\HHVLQGHSDUWPHQWVRU

CREATE VIEW staff_dept_10_30 AS


SELECT employee_id, last_name, job_id, e.department_id
FROM employees e, departments d
WHERE e.department_id IN (10, 30)
AND e.department_id = d.department_id;

$QXSGDWDEOHMRLQYLHZDOVRFDOOHGDPRGLILDEOHMRLQYLHZLQYROYHVWZRRUPRUHEDVH
WDEOHVRUYLHZVDQGSHUPLWV'0/RSHUDWLRQV$QXSGDWDEOHYLHZFRQWDLQVPXOWLSOH
WDEOHVLQWKHWRSOHYHOFROMFODXVHRIWKHSELECTVWDWHPHQWDQGLVQRWUHVWULFWHGE\WKH
WITH READ ONLYFODXVH

7REHLQKHUHQWO\XSGDWDEOHDYLHZPXVWPHHWVHYHUDOFULWHULD)RUH[DPSOHDJHQHUDO
UXOHLVWKDWDQINSERTUPDATERUDELETERSHUDWLRQRQDMRLQYLHZFDQPRGLI\RQO\
RQHEDVHWDEOHDWDWLPH7KHIROORZLQJTXHU\RIWKHUSER_UPDATABLE_COLUMNSGDWD
GLFWLRQDU\YLHZVKRZVWKDWWKHstaff_dept_10_30YLHZLVXSGDWDEOH

SQL> SELECT TABLE_NAME, COLUMN_NAME, UPDATABLE


2 FROM USER_UPDATABLE_COLUMNS
3 WHERE TABLE_NAME = 'STAFF_DEPT_10_30';

TABLE_NAME COLUMN_NAME UPD


------------------------------ ------------------------------ ---
STAFF_DEPT_10_30 EMPLOYEE_ID YES
STAFF_DEPT_10_30 LAST_NAME YES
STAFF_DEPT_10_30 JOB_ID YES
STAFF_DEPT_10_30 DEPARTMENT_ID YES

$OOXSGDWDEOHFROXPQVRIDMRLQYLHZPXVWPDSWRFROXPQVRIDNH\SUHVHUYHGWDEOH
ZKLFKLVDWDEOHLQZKLFKHDFKURZRIWKHXQGHUO\LQJWDEOHDSSHDUVDWPRVWRQHWLPH
LQWKHTXHU\RXWSXW,QWKHstaff_dept_10_30YLHZdepartment_idLVWKHSULPDU\NH\
RIWKHdepartmentsWDEOHVRHDFKURZIURPWKHemployeesWDEOHDSSHDUVDWPRVWRQFH
LQWKHUHVXOWVHWPDNLQJWKHemployeesWDEOHNH\SUHVHUYHG7KHdepartmentsWDEOHLV
QRWNH\SUHVHUYHGEHFDXVHHDFKRILWVURZVPD\DSSHDUPDQ\WLPHVLQWKHUHVXOWVHW

6HH$OVR
2UDFOH'DWDEDVH$GPLQLVWUDWRUȉV*XLGHWROHDUQKRZWRXSGDWHMRLQYLHZV


&KDSWHU
2YHUYLHZRI0DWHULDOL]HG9LHZV

2EMHFW9LHZV
-XVWDVDYLHZLVDYLUWXDOWDEOHDQREMHFWYLHZLVDYLUWXDOREMHFWWDEOH(DFKURZ
LQWKHYLHZLVDQREMHFWZKLFKLVDQLQVWDQFHRIDQREMHFWW\SH$QREMHFWW\SHLVD
XVHUGHILQHGGDWDW\SH
<RXFDQUHWULHYHXSGDWHLQVHUWDQGGHOHWHUHODWLRQDOGDWDDVLILWZHUHVWRUHGDVDQ
REMHFWW\SH<RXFDQDOVRGHILQHYLHZVZLWKFROXPQVWKDWDUHREMHFWGDWDW\SHVVXFK
DVREMHFWVREFVDQGFROOHFWLRQV QHVWHGWDEOHVDQGVARRAYV 

/LNHUHODWLRQDOYLHZVREMHFWYLHZVFDQSUHVHQWRQO\WKHGDWDWKDWGDWDEDVH
DGPLQLVWUDWRUVZDQWXVHUVWRVHH)RUH[DPSOHDQREMHFWYLHZFRXOGSUHVHQWGDWD
DERXW,7SURJUDPPHUVEXWRPLWVHQVLWLYHGDWDDERXWVDODULHV7KHIROORZLQJH[DPSOH
FUHDWHVDQemployee_typeREMHFWDQGWKHQWKHYLHZit_prog_viewEDVHGRQWKLV
REMHFW
CREATE TYPE employee_type AS OBJECT
(
employee_id NUMBER (6),
last_name VARCHAR2 (25),
job_id VARCHAR2 (10)
);
/

CREATE VIEW it_prog_view OF employee_type


WITH OBJECT IDENTIFIER (employee_id) AS
SELECT e.employee_id, e.last_name, e.job_id
FROM employees e
WHERE job_id = 'IT_PROG';

2EMHFWYLHZVDUHXVHIXOLQSURWRW\SLQJRUWUDQVLWLRQLQJWRREMHFWRULHQWHGDSSOLFDWLRQV
EHFDXVHWKHGDWDLQWKHYLHZFDQEHWDNHQIURPUHODWLRQDOWDEOHVDQGDFFHVVHGDV
LIWKHWDEOHZHUHGHILQHGDVDQREMHFWWDEOH<RXFDQUXQREMHFWRULHQWHGDSSOLFDWLRQV
ZLWKRXWFRQYHUWLQJH[LVWLQJWDEOHVWRDGLIIHUHQWSK\VLFDOVWUXFWXUH

6HH$OVR

ȑ 2UDFOH'DWDEDVH2EMHFW5HODWLRQDO'HYHORSHU
V*XLGHWROHDUQDERXW
REMHFWW\SHVDQGREMHFWYLHZV
ȑ 2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHWROHDUQDERXWWKHCREATE
TYPEVWDWHPHQW

2YHUYLHZRI0DWHULDOL]HG9LHZV
$PDWHULDOL]HGYLHZLVDTXHU\UHVXOWWKDWKDVEHHQVWRUHGRUPDWHULDOL]HGLQ
DGYDQFHDVDVFKHPDREMHFW7KHFROMFODXVHRIWKHTXHU\FDQQDPHWDEOHVYLHZVRU
PDWHULDOL]HGYLHZV
$PDWHULDOL]HGYLHZRIWHQVHUYHVDVDPDVWHUWDEOHLQUHSOLFDWLRQDQGDIDFWWDEOHLQ
GDWDZDUHKRXVLQJ0DWHULDOL]HGYLHZVVXPPDUL]HFRPSXWHUHSOLFDWHDQGGLVWULEXWH
GDWD7KH\DUHVXLWDEOHLQYDULRXVFRPSXWLQJHQYLURQPHQWVVXFKDVWKHIROORZLQJ


&KDSWHU
2YHUYLHZRI0DWHULDOL]HG9LHZV

ȑ ,QGDWDZDUHKRXVHVPDWHULDOL]HGYLHZVFDQFRPSXWHDQGVWRUHGDWDJHQHUDWHG
IURPDJJUHJDWHIXQFWLRQVVXFKDVVXPVDQGDYHUDJHV
$VXPPDU\LVDQDJJUHJDWHYLHZWKDWUHGXFHVTXHU\WLPHE\SUHFDOFXODWLQJMRLQV
DQGDJJUHJDWLRQRSHUDWLRQVDQGVWRULQJWKHUHVXOWVLQDWDEOH0DWHULDOL]HGYLHZV
DUHHTXLYDOHQWWRVXPPDULHV<RXFDQDOVRXVHPDWHULDOL]HGYLHZVWRFRPSXWH
MRLQVZLWKRUZLWKRXWDJJUHJDWLRQV
ȑ ,QPDWHULDOL]HGYLHZUHSOLFDWLRQZKLFKLVDFKLHYHGXVLQJ;6WUHDPDQG2UDFOH
*ROGHQ*DWHWKHYLHZFRQWDLQVDFRPSOHWHRUSDUWLDOFRS\RIDWDEOHIURPD
VLQJOHSRLQWLQWLPH0DWHULDOL]HGYLHZVUHSOLFDWHGDWDDWGLVWULEXWHGVLWHVDQG
V\QFKURQL]HXSGDWHVSHUIRUPHGDWVHYHUDOVLWHV7KLVIRUPRIUHSOLFDWLRQLVVXLWDEOH
IRUHQYLURQPHQWVVXFKDVILHOGVDOHVZKHQGDWDEDVHVDUHQRWDOZD\VFRQQHFWHGWR
WKHQHWZRUN
ȑ ,QPRELOHFRPSXWLQJHQYLURQPHQWVPDWHULDOL]HGYLHZVFDQGRZQORDGDGDWD
VXEVHWIURPFHQWUDOVHUYHUVWRPRELOHFOLHQWVZLWKSHULRGLFUHIUHVKHVIURPWKH
FHQWUDOVHUYHUVDQGSURSDJDWLRQRIXSGDWHVE\FOLHQWVWRWKHFHQWUDOVHUYHUV
,QDUHSOLFDWLRQHQYLURQPHQWDPDWHULDOL]HGYLHZVKDUHVGDWDZLWKDWDEOHLQDGLIIHUHQW
GDWDEDVHFDOOHGDPDVWHUGDWDEDVH7KHWDEOHDVVRFLDWHGZLWKWKHPDWHULDOL]HGYLHZ
DWWKHPDVWHUVLWHLVWKHPDVWHUWDEOH)LJXUHLOOXVWUDWHVDPDWHULDOL]HGYLHZLQRQH
GDWDEDVHEDVHGRQDPDVWHUWDEOHLQDQRWKHUGDWDEDVH8SGDWHVWRWKHPDVWHUWDEOH
UHSOLFDWHWRWKHPDWHULDOL]HGYLHZGDWDEDVH

)LJXUH0DWHULDOL]HG9LHZ

Client Applications
Remote Update

Local
Query

Materialized View Master Table

Network

Materialized Replicate Table Data Master


View Database
Database Refresh


&KDSWHU
2YHUYLHZRI0DWHULDOL]HG9LHZV

6HH$OVR

ȑ ,QIRUPDWLRQ6KDULQJWROHDUQDERXWUHSOLFDWLRQZLWK;6WUHDPDQG2UDFOH
*ROGHQ*DWH
ȑ 'DWD:DUHKRXVH$UFKLWHFWXUH %DVLF WROHDUQPRUHDERXWVXPPDULHV
ȑ 2UDFOH'DWDEDVH;6WUHDP*XLGHIRUDQLQWURGXFWLRQWR;6WUHDP
ȑ http://www.oracle.com/technetwork/middleware/goldengate/
documentation/index.htmlWROHDUQPRUHDERXW2UDFOH*ROGHQ*DWH
ȑ 2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHWROHDUQDERXWWKHCREATE
MATERIALIZED VIEWVWDWHPHQW

&KDUDFWHULVWLFVRI0DWHULDOL]HG9LHZV
0DWHULDOL]HGYLHZVVKDUHVRPHFKDUDFWHULVWLFVRILQGH[HVDQGQRQPDWHULDOL]HGYLHZV
0DWHULDOL]HGYLHZVDUHVLPLODUWRLQGH[HVLQWKHIROORZLQJZD\V
ȑ 7KH\FRQWDLQDFWXDOGDWDDQGFRQVXPHVWRUDJHVSDFH
ȑ 7KH\FDQEHUHIUHVKHGZKHQWKHGDWDLQWKHLUPDVWHUWDEOHVFKDQJHV
ȑ 7KH\FDQLPSURYHSHUIRUPDQFHRI64/H[HFXWLRQZKHQXVHGIRUTXHU\UHZULWH
RSHUDWLRQV
ȑ 7KHLUH[LVWHQFHLVWUDQVSDUHQWWR64/DSSOLFDWLRQVDQGXVHUV
$PDWHULDOL]HGYLHZLVVLPLODUWRDQRQPDWHULDOL]HGYLHZEHFDXVHLWUHSUHVHQWVGDWDLQ
RWKHUWDEOHVDQGYLHZV8QOLNHLQGH[HVXVHUVFDQTXHU\PDWHULDOL]HGYLHZVGLUHFWO\
XVLQJSELECTVWDWHPHQWV'HSHQGLQJRQWKHW\SHVRIUHIUHVKWKDWDUHUHTXLUHGWKH
YLHZVFDQDOVREHXSGDWHGZLWK'0/VWDWHPHQWV
7KHIROORZLQJH[DPSOHFUHDWHVDQGSRSXODWHVDPDWHULDOL]HGDJJUHJDWHYLHZEDVHGRQ
WKUHHPDVWHUWDEOHVLQWKHshVDPSOHVFKHPD

CREATE MATERIALIZED VIEW sales_mv AS


SELECT t.calendar_year, p.prod_id, SUM(s.amount_sold) AS sum_sales
FROM times t, products p, sales s
WHERE t.time_id = s.time_id
AND p.prod_id = s.prod_id
GROUP BY t.calendar_year, p.prod_id;

7KHIROORZLQJH[DPSOHGURSVWDEOHsalesZKLFKLVDPDVWHUWDEOHIRUsales_mv
DQGWKHQTXHULHVsales_mv7KHTXHU\VHOHFWVGDWDEHFDXVHWKHURZVDUHVWRUHG
PDWHULDOL]HG VHSDUDWHO\IURPWKHGDWDLQWKHPDVWHUWDEOHV

SQL> DROP TABLE sales;

Table dropped.

SQL> SELECT * FROM sales_mv WHERE ROWNUM < 4;

CALENDAR_YEAR PROD_ID SUM_SALES


&KDSWHU
2YHUYLHZRI0DWHULDOL]HG9LHZV

------------- ---------- ----------


1998 13 936197.53
1998 26 567533.83
1998 27 107968.24

$PDWHULDOL]HGYLHZFDQEHSDUWLWLRQHG<RXFDQGHILQHDPDWHULDOL]HGYLHZRQD
SDUWLWLRQHGWDEOHDQGRQHRUPRUHLQGH[HVRQWKHPDWHULDOL]HGYLHZ

6HH$OVR
2UDFOH'DWDEDVH'DWD:DUHKRXVLQJ*XLGHWROHDUQKRZWRXVHPDWHULDOL]HG
YLHZVLQDGDWDZDUHKRXVH

5HIUHVK0HWKRGVIRU0DWHULDOL]HG9LHZV
7KHGDWDEDVHPDLQWDLQVGDWDLQPDWHULDOL]HGYLHZVE\UHIUHVKLQJWKHPDIWHUFKDQJHV
WRWKHEDVHWDEOHV7KHUHIUHVKPHWKRGFDQEHLQFUHPHQWDORUDFRPSOHWHUHIUHVK

&RPSOHWH5HIUHVK
$FRPSOHWHUHIUHVKH[HFXWHVWKHTXHU\WKDWGHILQHVWKHPDWHULDOL]HGYLHZ$FRPSOHWH
UHIUHVKRFFXUVZKHQ\RXLQLWLDOO\FUHDWHWKHPDWHULDOL]HGYLHZXQOHVVWKHPDWHULDOL]HG
YLHZUHIHUHQFHVDSUHEXLOWWDEOHRU\RXGHILQHWKHWDEOHDVBUILD DEFERRED

$FRPSOHWHUHIUHVKFDQEHVORZHVSHFLDOO\LIWKHGDWDEDVHPXVWUHDGDQGSURFHVV
KXJHDPRXQWVRIGDWD<RXFDQSHUIRUPDFRPSOHWHUHIUHVKDWDQ\WLPHDIWHUFUHDWLRQ
RIWKHPDWHULDOL]HGYLHZ

,QFUHPHQWDO5HIUHVK
$QLQFUHPHQWDOUHIUHVKDOVRFDOOHGDIDVWUHIUHVKSURFHVVHVRQO\WKHFKDQJHVWRWKH
H[LVWLQJGDWD7KLVPHWKRGHOLPLQDWHVWKHQHHGWRUHEXLOGPDWHULDOL]HGYLHZVIURPWKH
EHJLQQLQJ3URFHVVLQJRQO\WKHFKDQJHVFDQUHVXOWLQDYHU\IDVWUHIUHVKWLPH

<RXFDQUHIUHVKPDWHULDOL]HGYLHZVHLWKHURQGHPDQGRUDWUHJXODUWLPHLQWHUYDOV
$OWHUQDWLYHO\\RXFDQFRQILJXUHPDWHULDOL]HGYLHZVLQWKHVDPHGDWDEDVHDVWKHLUEDVH
WDEOHVWRUHIUHVKZKHQHYHUDWUDQVDFWLRQFRPPLWVFKDQJHVWRWKHEDVHWDEOHV
)DVWUHIUHVKFRPHVLQHLWKHURIWKHIROORZLQJIRUPV
ȑ /RJ%DVHGUHIUHVK
,QWKLVW\SHRIUHIUHVKDPDWHULDOL]HGYLHZORJRUDGLUHFWORDGHUORJNHHSVDUHFRUG
RIFKDQJHVWRWKHEDVHWDEOHV$PDWHULDOL]HGYLHZORJLVDVFKHPDREMHFWWKDW
UHFRUGVFKDQJHVWRDEDVHWDEOHVRWKDWDPDWHULDOL]HGYLHZGHILQHGRQWKHEDVH
WDEOHFDQEHUHIUHVKHGLQFUHPHQWDOO\(DFKPDWHULDOL]HGYLHZORJLVDVVRFLDWHGZLWK
DVLQJOHEDVHWDEOH
ȑ 3DUWLWLRQFKDQJHWUDFNLQJ 3&7 UHIUHVK
3&7UHIUHVKLVYDOLGRQO\ZKHQWKHEDVHWDEOHVDUHSDUWLWLRQHG3&7UHIUHVK
UHPRYHVDOOGDWDLQWKHDIIHFWHGPDWHULDOL]HGYLHZSDUWLWLRQVRUDIIHFWHGSRUWLRQV
RIGDWDDQGWKHQUHFRPSXWHVWKHP7KHGDWDEDVHXVHVWKHPRGLILHGEDVHWDEOH


&KDSWHU
2YHUYLHZRI0DWHULDOL]HG9LHZV

SDUWLWLRQVWRLGHQWLI\WKHDIIHFWHGSDUWLWLRQVRUSRUWLRQVRIGDWDLQWKHYLHZ:KHQ
SDUWLWLRQPDLQWHQDQFHRSHUDWLRQVKDYHRFFXUUHGRQWKHEDVHWDEOHV3&7UHIUHVKLV
WKHRQO\XVDEOHLQFUHPHQWDOUHIUHVKPHWKRG

,Q3ODFHDQG2XWRI3ODFH5HIUHVK
)RUWKHFRPSOHWHDQGLQFUHPHQWDOPHWKRGVWKHGDWDEDVHFDQUHIUHVKWKHPDWHULDOL]HG
YLHZLQSODFHZKLFKUHIUHVKHVVWDWHPHQWVGLUHFWO\RQWKHYLHZRURXWRISODFH
$QRXWRISODFHUHIUHVKFUHDWHVRQHRUPRUHRXWVLGHWDEOHVH[HFXWHVWKHUHIUHVK
VWDWHPHQWVRQWKHPDQGWKHQVZLWFKHVWKHPDWHULDOL]HGYLHZRUDIIHFWHGSDUWLWLRQVZLWK
WKHRXWVLGHWDEOHV7KLVWHFKQLTXHDFKLHYHVKLJKDYDLODELOLW\GXULQJUHIUHVKHVSHFLDOO\
ZKHQUHIUHVKVWDWHPHQWVWDNHDORQJWLPHWRILQLVK
2UDFOH'DWDEDVHFLQWURGXFHVV\QFKURQRXVUHIUHVKZKLFKLVDW\SHRIRXWRISODFH
UHIUHVK$V\QFKURQRXVUHIUHVKGRHVQRWPRGLI\WKHFRQWHQWVRIWKHEDVHWDEOHVEXW
LQVWHDGXVHVWKH$3,VLQWKHV\QFKURQRXVUHIUHVKSDFNDJHZKLFKHQVXUHVFRQVLVWHQF\
E\DSSO\LQJWKHVHFKDQJHVWRWKHEDVHWDEOHVDQGPDWHULDOL]HGYLHZVDWWKHVDPH
WLPH7KLVDSSURDFKHQDEOHVDVHWRIWDEOHVDQGWKHPDWHULDOL]HGYLHZVGHILQHGRQ
WKHPWREHDOZD\VV\QFKURQL]HG,QDGDWDZDUHKRXVHV\QFKURQRXVUHIUHVKPHWKRGLV
ZHOOVXLWHGIRUWKHIROORZLQJUHDVRQV
ȑ 7KHORDGLQJRILQFUHPHQWDOGDWDLVWLJKWO\FRQWUROOHGDQGRFFXUVDWSHULRGLF
LQWHUYDOV
ȑ 7DEOHVDQGWKHLUPDWHULDOL]HGYLHZVDUHRIWHQSDUWLWLRQHGLQWKHVDPHZD\RUWKHLU
SDUWLWLRQVDUHUHODWHGE\DIXQFWLRQDOGHSHQGHQF\

6HH$OVR
2UDFOH'DWDEDVH'DWD:DUHKRXVLQJ*XLGHWROHDUQKRZWRUHIUHVK
PDWHULDOL]HGYLHZV

4XHU\5HZULWH
4XHU\UHZULWHWUDQVIRUPVDXVHUUHTXHVWZULWWHQLQWHUPVRIPDVWHUWDEOHVLQWRD
VHPDQWLFDOO\HTXLYDOHQWUHTXHVWWKDWLQFOXGHVPDWHULDOL]HGYLHZV
:KHQEDVHWDEOHVFRQWDLQODUJHDPRXQWVRIGDWDFRPSXWLQJDQDJJUHJDWHRUMRLQ
LVH[SHQVLYHDQGWLPHFRQVXPLQJ%HFDXVHPDWHULDOL]HGYLHZVFRQWDLQSUHFRPSXWHG
DJJUHJDWHVDQGMRLQVTXHU\UHZULWHFDQTXLFNO\DQVZHUTXHULHVXVLQJPDWHULDOL]HG
YLHZV
7KHTXHU\WUDQVIRUPHUWUDQVSDUHQWO\UHZULWHVWKHUHTXHVWWRXVHWKHPDWHULDOL]HGYLHZ
UHTXLULQJQRXVHULQWHUYHQWLRQDQGQRUHIHUHQFHWRWKHPDWHULDOL]HGYLHZLQWKH64/
VWDWHPHQW%HFDXVHTXHU\UHZULWHLVWUDQVSDUHQWPDWHULDOL]HGYLHZVFDQEHDGGHGRU
GURSSHGZLWKRXWLQYDOLGDWLQJWKH64/LQWKHDSSOLFDWLRQFRGH
,QJHQHUDOUHZULWLQJTXHULHVWRXVHPDWHULDOL]HGYLHZVUDWKHUWKDQGHWDLOWDEOHV
LPSURYHVUHVSRQVHWLPH7KHIROORZLQJILJXUHVKRZVWKHGDWDEDVHJHQHUDWLQJDQ
H[HFXWLRQSODQIRUWKHRULJLQDODQGUHZULWWHQTXHU\DQGFKRRVLQJWKHORZHVWFRVWSODQ


&KDSWHU
2YHUYLHZRI6HTXHQFHV

)LJXUH4XHU\5HZULWH

Oracle Database

Query is Generate Plan


rewritten
Strategy Strategy

Query Results
Strategy

User enters Compare plan cost


query and pick the best

Generate Plan
Strategy

6HH$OVR

ȑ 2YHUYLHZRIWKH2SWLPL]HUWROHDUQPRUHDERXWTXHU\WUDQVIRUPDWLRQ
ȑ 2UDFOH'DWDEDVH'DWD:DUHKRXVLQJ*XLGHWROHDUQKRZWRXVHTXHU\
UHZULWH

2YHUYLHZRI6HTXHQFHV
$VHTXHQFHLVDVFKHPDREMHFWIURPZKLFKPXOWLSOHXVHUVFDQJHQHUDWHXQLTXH
LQWHJHUV$VHTXHQFHJHQHUDWRUSURYLGHVDKLJKO\VFDODEOHDQGZHOOSHUIRUPLQJPHWKRG
WRJHQHUDWHVXUURJDWHNH\VIRUDQXPEHUGDWDW\SH

6HTXHQFH&KDUDFWHULVWLFV
$VHTXHQFHGHILQLWLRQLQGLFDWHVJHQHUDOLQIRUPDWLRQDERXWWKHVHTXHQFHLQFOXGLQJLWV
QDPHDQGZKHWKHUWKHVHTXHQFHDVFHQGVRUGHVFHQGV
$VHTXHQFHGHILQLWLRQDOVRLQGLFDWHV
ȑ 7KHLQWHUYDOEHWZHHQQXPEHUV
ȑ :KHWKHUWKHGDWDEDVHVKRXOGFDFKHVHWVRIJHQHUDWHGVHTXHQFHQXPEHUVLQ
PHPRU\
ȑ :KHWKHUWKHVHTXHQFHVKRXOGF\FOHZKHQDOLPLWLVUHDFKHG


&KDSWHU
2YHUYLHZRI6HTXHQFHV

7KHIROORZLQJH[DPSOHFUHDWHVWKHVHTXHQFHcustomers_seqLQWKHVDPSOHVFKHPDoe
$QDSSOLFDWLRQFRXOGXVHWKLVVHTXHQFHWRSURYLGHFXVWRPHU,'QXPEHUVZKHQURZV
DUHDGGHGWRWKHcustomersWDEOH

CREATE SEQUENCE customers_seq


START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;

7KHILUVWUHIHUHQFHWRcustomers_seq.nextvalUHWXUQV10007KHVHFRQGUHWXUQV1001
(DFKVXEVHTXHQWUHIHUHQFHUHWXUQVDYDOXHJUHDWHUWKDQWKHSUHYLRXVUHIHUHQFH

6HH$OVR

ȑ 2UDFOH'DWDEDVH'D\'HYHORSHU
V*XLGHIRUDWXWRULDOWKDWVKRZV\RX
KRZWRFUHDWHDVHTXHQFH
ȑ 2UDFOH'DWDEDVH$GPLQLVWUDWRUȉV*XLGHWROHDUQKRZWRUHIHUHQFHD
VHTXHQFHLQD64/VWDWHPHQW
ȑ 2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHIRUCREATE SEQUENCEV\QWD[
DQGVHPDQWLFV

&RQFXUUHQW$FFHVVWR6HTXHQFHV
7KHVDPHVHTXHQFHJHQHUDWRUFDQJHQHUDWHQXPEHUVIRUPXOWLSOHWDEOHV
7KHJHQHUDWRUFDQFUHDWHSULPDU\NH\VDXWRPDWLFDOO\DQGFRRUGLQDWHNH\VDFURVV
PXOWLSOHURZVRUWDEOHV)RUH[DPSOHDVHTXHQFHFDQJHQHUDWHSULPDU\NH\VIRUDQ
ordersWDEOHDQGDcustomersWDEOH

7KHVHTXHQFHJHQHUDWRULVXVHIXOLQPXOWLXVHUHQYLURQPHQWVIRUJHQHUDWLQJXQLTXH
QXPEHUVZLWKRXWWKHRYHUKHDGRIGLVN,2RUWUDQVDFWLRQORFNLQJ)RUH[DPSOHWZR
XVHUVVLPXOWDQHRXVO\LQVHUWQHZURZVLQWRWKHordersWDEOH%\XVLQJDVHTXHQFHWR
JHQHUDWHXQLTXHQXPEHUVIRUWKHorder_idFROXPQQHLWKHUXVHUKDVWRZDLWIRUWKH
RWKHUWRHQWHUWKHQH[WDYDLODEOHRUGHUQXPEHU7KHVHTXHQFHDXWRPDWLFDOO\JHQHUDWHV
WKHFRUUHFWYDOXHVIRUHDFKXVHU
(DFKXVHUWKDWUHIHUHQFHVDVHTXHQFHKDVDFFHVVWRKLVRUKHUFXUUHQWVHTXHQFH
QXPEHUZKLFKLVWKHODVWVHTXHQFHJHQHUDWHGLQWKHVHVVLRQ$XVHUFDQLVVXH
DVWDWHPHQWWRJHQHUDWHDQHZVHTXHQFHQXPEHURUXVHWKHFXUUHQWQXPEHUODVW
JHQHUDWHGE\WKHVHVVLRQ$IWHUDVWDWHPHQWLQDVHVVLRQJHQHUDWHVDVHTXHQFH
QXPEHULWLVDYDLODEOHRQO\WRWKLVVHVVLRQ,QGLYLGXDOVHTXHQFHQXPEHUVFDQEH
VNLSSHGLIWKH\ZHUHJHQHUDWHGDQGXVHGLQDWUDQVDFWLRQWKDWZDVXOWLPDWHO\UROOHG
EDFN


&KDSWHU
2YHUYLHZRI'LPHQVLRQV

:$51,1*
,I\RXUDSSOLFDWLRQUHTXLUHVDJDSIUHHVHWRIQXPEHUVWKHQ\RXFDQQRWXVH
2UDFOHVHTXHQFHV<RXPXVWVHULDOL]HDFWLYLWLHVLQWKHGDWDEDVHXVLQJ\RXU
RZQGHYHORSHGFRGH

6HH$OVR
'DWD&RQFXUUHQF\DQG&RQVLVWHQF\WROHDUQKRZVHVVLRQVDFFHVVGDWDDW
WKHVDPHWLPH

2YHUYLHZRI'LPHQVLRQV
$W\SLFDOGDWDZDUHKRXVHKDVWZRLPSRUWDQWFRPSRQHQWVGLPHQVLRQVDQGIDFWV
$GLPHQVLRQLVDQ\FDWHJRU\XVHGLQVSHFLI\LQJEXVLQHVVTXHVWLRQVIRUH[DPSOH
WLPHJHRJUDSK\SURGXFWGHSDUWPHQWDQGGLVWULEXWLRQFKDQQHO$IDFWLVDQHYHQWRU
HQWLW\DVVRFLDWHGZLWKDSDUWLFXODUVHWRIGLPHQVLRQYDOXHVIRUH[DPSOHXQLWVVROGRU
SURILWV
([DPSOHVRIPXOWLGLPHQVLRQDOUHTXHVWVLQFOXGHWKHIROORZLQJ
ȑ 6KRZWRWDOVDOHVDFURVVDOOSURGXFWVDWLQFUHDVLQJDJJUHJDWLRQOHYHOVIRUD
JHRJUDSK\GLPHQVLRQIURPVWDWHWRFRXQWU\WRUHJLRQIRUDQG
ȑ &UHDWHDFURVVWDEXODUDQDO\VLVRIRXURSHUDWLRQVVKRZLQJH[SHQVHVE\WHUULWRU\LQ
6RXWK$PHULFDIRUDQG,QFOXGHDOOSRVVLEOHVXEWRWDOV
ȑ /LVWWKHWRSVDOHVUHSUHVHQWDWLYHVLQ$VLDDFFRUGLQJWRVDOHVUHYHQXHIRU
DXWRPRWLYHSURGXFWVDQGUDQNWKHLUFRPPLVVLRQV
0DQ\PXOWLGLPHQVLRQDOTXHVWLRQVUHTXLUHDJJUHJDWHGGDWDDQGFRPSDULVRQVRIGDWD
VHWVRIWHQDFURVVWLPHJHRJUDSK\RUEXGJHWV
&UHDWLQJDGLPHQVLRQSHUPLWVWKHEURDGHUXVHRIWKHTXHU\UHZULWHIHDWXUH%\
WUDQVSDUHQWO\UHZULWLQJTXHULHVWRXVHPDWHULDOL]HGYLHZVWKHGDWDEDVHFDQLPSURYH
TXHU\SHUIRUPDQFH

6HH$OVR
2YHUYLHZRI'DWD:DUHKRXVLQJDQG%XVLQHVV,QWHOOLJHQFHWROHDUQDERXW
WKHGLIIHUHQFHVEHWZHHQGDWDZDUHKRXVHVDQG2/73GDWDEDVHV

+LHUDUFKLFDO6WUXFWXUHRID'LPHQVLRQ
$GLPHQVLRQWDEOHLVDORJLFDOVWUXFWXUHWKDWGHILQHVKLHUDUFKLFDO SDUHQWFKLOG
UHODWLRQVKLSVEHWZHHQSDLUVRIFROXPQVRUFROXPQVHWV


&KDSWHU
2YHUYLHZRI'LPHQVLRQV

)RUH[DPSOHDGLPHQVLRQFDQLQGLFDWHWKDWZLWKLQDURZWKHcityFROXPQLPSOLHVWKH
YDOXHRIWKHstateFROXPQDQGWKHstateFROXPQLPSOLHVWKHYDOXHRIWKHcountry
FROXPQ
:LWKLQDFXVWRPHUGLPHQVLRQFXVWRPHUVFRXOGUROOXSWRFLW\VWDWHFRXQWU\VXEUHJLRQ
DQGUHJLRQ'DWDDQDO\VLVW\SLFDOO\VWDUWVDWKLJKHUOHYHOVLQWKHGLPHQVLRQDOKLHUDUFK\
DQGJUDGXDOO\GULOOVGRZQLIWKHVLWXDWLRQZDUUDQWVVXFKDQDO\VLV
(DFKYDOXHDWWKHFKLOGOHYHOLVDVVRFLDWHGZLWKRQHDQGRQO\RQHYDOXHDWWKH
SDUHQWOHYHO$KLHUDUFKLFDOUHODWLRQVKLSLVDIXQFWLRQDOGHSHQGHQF\IURPRQHOHYHORID
KLHUDUFK\WRWKHQH[WOHYHOLQWKHKLHUDUFK\
$GLPHQVLRQKDVQRGDWDVWRUDJHDVVLJQHGWRLW'LPHQVLRQDOLQIRUPDWLRQLVVWRUHGLQ
GLPHQVLRQWDEOHVZKHUHDVIDFWLQIRUPDWLRQLVVWRUHGLQDIDFWWDEOH

6HH$OVR

ȑ 2UDFOH'DWDEDVH'DWD:DUHKRXVLQJ*XLGHWROHDUQDERXWGLPHQVLRQV
ȑ 2UDFOH2/$38VHUȉV*XLGHWROHDUQKRZWRFUHDWHGLPHQVLRQV

&UHDWLRQRI'LPHQVLRQV
<RXFUHDWHGLPHQVLRQVZLWKWKHCREATE DIMENSION64/VWDWHPHQW

7KLVVWDWHPHQWVSHFLILHV
ȑ 0XOWLSOHLEVELFODXVHVHDFKRIZKLFKLGHQWLILHVDFROXPQRUFROXPQVHWLQWKH
GLPHQVLRQ
ȑ 2QHRUPRUHHIERARCHYFODXVHVWKDWVSHFLI\WKHSDUHQWFKLOGUHODWLRQVKLSV
EHWZHHQDGMDFHQWOHYHOV
ȑ 2SWLRQDOATTRIBUTEFODXVHVHDFKRIZKLFKLGHQWLILHVDQDGGLWLRQDOFROXPQRU
FROXPQVHWDVVRFLDWHGZLWKDQLQGLYLGXDOOHYHO
7KHIROORZLQJVWDWHPHQWZDVXVHGWRFUHDWHWKHcustomers_dimGLPHQVLRQLQWKH
VDPSOHVFKHPDsh

CREATE DIMENSION customers_dim


LEVEL customer IS (customers.cust_id)
LEVEL city IS (customers.cust_city)
LEVEL state IS (customers.cust_state_province)
LEVEL country IS (countries.country_id)
LEVEL subregion IS (countries.country_subregion)
LEVEL region IS (countries.country_region)
HIERARCHY geog_rollup (
customer CHILD OF
city CHILD OF
state CHILD OF
country CHILD OF
subregion CHILD OF
region
JOIN KEY (customers.country_id) REFERENCES country )
ATTRIBUTE customer DETERMINES


&KDSWHU
2YHUYLHZRI6\QRQ\PV

(cust_first_name, cust_last_name, cust_gender,


cust_marital_status, cust_year_of_birth,
cust_income_level, cust_credit_limit)
ATTRIBUTE country DETERMINES (countries.country_name);

7KHFROXPQVLQDGLPHQVLRQFDQFRPHHLWKHUIURPWKHVDPHWDEOH GHQRUPDOL]HG
RUIURPPXOWLSOHWDEOHV IXOO\RUSDUWLDOO\QRUPDOL]HG )RUH[DPSOHDQRUPDOL]HG
WLPHGLPHQVLRQFDQLQFOXGHDGDWHWDEOHDPRQWKWDEOHDQGD\HDUWDEOHZLWKMRLQ
FRQGLWLRQVWKDWFRQQHFWHDFKGDWHURZWRDPRQWKURZDQGHDFKPRQWKURZWRD\HDU
URZ,QDIXOO\GHQRUPDOL]HGWLPHGLPHQVLRQWKHGDWHPRQWKDQG\HDUFROXPQVDUH
LQWKHVDPHWDEOH:KHWKHUQRUPDOL]HGRUGHQRUPDOL]HGWKHKLHUDUFKLFDOUHODWLRQVKLSV
DPRQJWKHFROXPQVPXVWEHVSHFLILHGLQWKHCREATE DIMENSIONVWDWHPHQW

6HH$OVR
2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHIRUCREATE DIMENSIONV\QWD[
DQGVHPDQWLFV

2YHUYLHZRI6\QRQ\PV
$V\QRQ\PLVDQDOLDVIRUDVFKHPDREMHFW)RUH[DPSOH\RXFDQFUHDWHDV\QRQ\P
IRUDWDEOHRUYLHZVHTXHQFH3/64/SURJUDPXQLWXVHUGHILQHGREMHFWW\SHRU
DQRWKHUV\QRQ\P%HFDXVHDV\QRQ\PLVVLPSO\DQDOLDVLWUHTXLUHVQRVWRUDJHRWKHU
WKDQLWVGHILQLWLRQLQWKHGDWDGLFWLRQDU\
6\QRQ\PVFDQVLPSOLI\64/VWDWHPHQWVIRUGDWDEDVHXVHUV6\QRQ\PVDUHDOVRXVHIXO
IRUKLGLQJWKHLGHQWLW\DQGORFDWLRQRIDQXQGHUO\LQJVFKHPDREMHFW,IWKHXQGHUO\LQJ
REMHFWPXVWEHUHQDPHGRUPRYHGWKHQRQO\WKHV\QRQ\PPXVWEHUHGHILQHG
$SSOLFDWLRQVEDVHGRQWKHV\QRQ\PFRQWLQXHWRZRUNZLWKRXWPRGLILFDWLRQ
<RXFDQFUHDWHERWKSULYDWHDQGSXEOLFV\QRQ\PV$SULYDWHV\QRQ\PLVLQWKHVFKHPD
RIDVSHFLILFXVHUZKRKDVFRQWURORYHULWVDYDLODELOLW\WRRWKHUV$SXEOLFV\QRQ\PLV
RZQHGE\WKHXVHUJURXSQDPHGPUBLICDQGLVDFFHVVLEOHE\HYHU\GDWDEDVHXVHU

([DPSOH3XEOLF6\QRQ\P
6XSSRVHWKDWDGDWDEDVHDGPLQLVWUDWRUFUHDWHVDSXEOLFV\QRQ\PQDPHGpeopleIRU
WKHhr.employeesWDEOH7KHXVHUWKHQFRQQHFWVWRWKHoeVFKHPDDQGFRXQWVWKH
QXPEHURIURZVLQWKHWDEOHUHIHUHQFHGE\WKHV\QRQ\P
SQL> CREATE PUBLIC SYNONYM people FOR hr.employees;

Synonym created.

SQL> CONNECT oe
Enter password: password
Connected.

SQL> SELECT COUNT(*) FROM people;

COUNT(*)
----------
107


&KDSWHU
2YHUYLHZRI6\QRQ\PV

8VHSXEOLFV\QRQ\PVVSDULQJO\EHFDXVHWKH\PDNHGDWDEDVHFRQVROLGDWLRQPRUH
GLIILFXOW$VVKRZQLQWKHIROORZLQJH[DPSOHLIDQRWKHUDGPLQLVWUDWRUDWWHPSWVWRFUHDWH
WKHSXEOLFV\QRQ\PpeopleWKHQWKHFUHDWLRQIDLOVEHFDXVHRQO\RQHSXEOLFV\QRQ\P
peopleFDQH[LVWLQWKHGDWDEDVH2YHUXVHRISXEOLFV\QRQ\PVFDXVHVQDPHVSDFH
FRQIOLFWVEHWZHHQDSSOLFDWLRQV
SQL> CREATE PUBLIC SYNONYM people FOR oe.customers;
CREATE PUBLIC SYNONYM people FOR oe.customers
*
ERROR at line 1:
ORA-00955: name is already used by an existing object

SQL> SELECT OWNER, SYNONYM_NAME, TABLE_OWNER, TABLE_NAME


2 FROM DBA_SYNONYMS
3 WHERE SYNONYM_NAME = 'PEOPLE';

OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME


---------- ------------ ----------- ----------
PUBLIC PEOPLE HR EMPLOYEES

6\QRQ\PVWKHPVHOYHVDUHQRWVHFXUDEOH:KHQ\RXJUDQWREMHFWSULYLOHJHVRQD
V\QRQ\P\RXDUHUHDOO\JUDQWLQJSULYLOHJHVRQWKHXQGHUO\LQJREMHFW7KHV\QRQ\P
LVDFWLQJRQO\DVDQDOLDVIRUWKHREMHFWLQWKHGRANTVWDWHPHQW

6HH$OVR

ȑ 2UDFOH'DWDEDVH$GPLQLVWUDWRU
V*XLGHWROHDUQKRZWRPDQDJH
V\QRQ\PV
ȑ 2UDFOH'DWDEDVH64//DQJXDJH5HIHUHQFHIRUCREATE SYNONYMV\QWD[
DQGVHPDQWLFV



You might also like