ESTRUCTURAS DE ALMACENAMIENTO Y MÉTODOS DE ACCESO

Anuncio
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
(6758&785$6'($/0$&(1$0,(172<0e72'26'($&&(62
/RV GDWRV TXH FRQVWLWX\HQ OD %' HVWiQ DOPDFHQDGRV ItVLFDPHQWH HQ XQ PHGLR GH
DOPDFHQDPLHQWRHQHO RUGHQDGRUPiV FRQFUHWDPHQWH HQ DOPDFHQDPLHQWRVHFXQGDULR GH GLVFR
PDJQpWLFRTXHHVHOVRSRUWHPiVGLIXQGLGRSDUDDOPDFHQDUILFKHURVGHEDVHVGHGDWRVHQOtQHD
SRUYDULDVUD]RQHV
· ODV %' VXHOHQ FRQVLVWLU HQ JUDQGHV FDQWLGDGHV GH LQIRUPDFLyQ SHUPDQHQWH FX\R
WDPDxRQRFDEHHQPHPRULDSULQFLSDO
· (Q HO DOPDFHQDPLHQWR VHFXQGDULR HV PiV GLItFLO TXH RFXUUD XQ IDOOR TXH VXSRQJD OD
SpUGLGDGHGDWRV
· 6XFRVWHHVLQIHULRU
(VWXGLDUHPRVIRUPDVGHRUJDQL]DUILFKHURVGHGDWRVHQGLVFRSDUDFRQVHJXLUXQDFFHVRDOD%'
FRQ UHQGLPLHQWR DFHSWDEOH HV GHFLU GLIHUHQWHV WpFQLFDV SDUD DOPDFHQDU HQ GLVFR JUDQGHV
FDQWLGDGHVGHGDWRVHVWUXFWXUDGRV
/RV DGPLQLVWUDGRUHV '%$ \ ORV GLVHxDGRUHV GH EDVHV GH GDWRV GHEHQ FRQRFHU ODV YHQWDMDV H
LQFRQYHQLHQWHVGHFDGDWpFQLFDTXHRIUHFHXQ6*%'SDUDGLVHxDUHLPSOHPHQWDUOD%'\SDUD
RSHUDU FRQ ORV GDWRV HO 6*%' VXHOH RIUHFHU YDULDV RSFLRQHV SDUD RUJDQL]DU ORV GDWRV \ HQ HO
'LVHxR)tVLFRGHOD%'HVQHFHVDULRHOHJLUODWpFQLFDGHRUJDQL]DFLyQDGHFXDGDSDUDOD%'TXHVH
GLVHxD $GHPiV ORV LPSOHPHQWDGRUHV GH ORV 6*%' GHEHQ FRQRFHU ODV SRVLEOHV WpFQLFDV GH
RUJDQL]DFLyQ SDUD LPSOHPHQWDUODV GH PDQHUD HILFLHQWH \ SRQHUODV D GLVSRVLFLyQ GHO '%$ \ ORV
GLVHxDGRUHV
8QDDSOLFDFLyQHQXQPRPHQWRGDGRQHFHVLWDDFFHGHUDSDUWHGHOD%''HEHUiORFDOL]DUODHQ
GLVFR FRSLDUOD HQ PHPRULD SULQFLSDO SURFHVDUOD \ HQ HO FDVR GH TXH OD KD\D PRGLILFDGR
UHHVFULELUODHQGLVFR
&RQFHSWRVJHQHUDOHV
/RVGDWRVHQGLVFRVHRUJDQL]DQHQ),&+(526GH5(*,67526
8QUHJLVWURHVXQDFROHFFLyQGHYDORUHVRHOHPHQWRVGHLQIRUPDFLyQUHODFLRQDGRVHQWUHVtTXH
WLHQHQTXHYHUFRQXQPLVPRFRQFHSWRGHODUHDOLGDG/RVUHJLVWURVGHVFULEHQµHQWLGDGHV¶\VXV
µDWULEXWRV¶&DGDDWULEXWRFRUUHVSRQGHDXQFDPSRGHOUHJLVWURTXHWRPDYDORUHVGHFLHUWRWLSR
GHGDWRV
(MHPSOR
120%5('(/7,32'(5(*,6752
120%5('(/&$032
7,32'('$726'(/&$032YDORUHVTXHSXHGHDFHSWDU
W\SH(03/($'2 UHFRUG
120%5(
SDFNHGDUUD\>@RIFKDUDFWHU
SDFNHGDUUD\>@RIFKDUDFWHU
LQWHJHU
LQWHJHU
SDFNHGDUUD\>@RIFKDUDFWHU
166
6$/$5,2
&Ï',*2B38(672
HQG
'(3$57$0(172
/RV UHJLVWURV VH DOPDFHQDQ GH IRUPD WDO TXH VHD SRVLEOH UHFXSHUDUORV OHHUORV GH IRUPD
HILFLHQWHVLHPSUHTXHVHQHFHVLWHQ
+HPRVGHUHFRUGDUTXHXQGLVFRPDJQpWLFRHVWiGLYLGLGRHQSLVWDV\pVWDVHQVHFWRUHV
/DGLYLVLyQGHXQDSLVWDHQ EORTXHVGHLJXDOWDPDxRSiJLQDVODUHDOL]DHO6LVWHPD2SHUDWLYR
FXDQGRGDIRUPDWRDOGLVFR
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
&RQVLGHUDUHPRV OD WUDQVIHUHQFLD GH GDWRV HQWUH OD PHPRULD SULQFLSDO \ HO GLVFR HQ
XQLGDGHVGHEORTXHV
&XDQGRVHQHFHVLWDODLQIRUPDFLyQ FRQWHQLGD HQ FLHUWR EORTXHVHOH SDVDDOGLVSRVLWLYRGH(6
GHO GLVFR OD GLUHFFLyQ KDUGZDUH HQ GLVFR GHO EORTXH \ WDPELpQ OD GLUHFFLyQ GH XQ EXIIHU GH
PHPRULD 8QD RSHUDFLyQ GH lectura FRSLDUtD HO EORTXH GHO GLVFR DO EXIIHU 8QD RSHUDFLyQ GH
escrituraFRSLDUtDHOEORTXHGHOEXIIHUDOGLVFR
(OWLHPSRWRWDOGHORFDOL]DFLyQ\WUDQVIHUHQFLDGHXQEORTXHGHVGHHOGLVFRDPHPRULDSULQFLSDO
W7 VXHOH VHU OD VXPD GHO WLHPSR GH E~VTXHGD PiV HO UHWDUGR URWDFLRQDO PiV HO WLHPSR GH
WUDQVIHUHQFLD GH EORTXH (VWH WLHPSR W7 HV PXFKR PD\RU TXH HO WLHPSR TXH OD &38 WDUGD HQ
SURFHVDUODLQIRUPDFLyQFRQWHQLGDHQGLFKREORTXHHO³FXHOORGHERWHOOD´HVWiHQODORFDOL]DFLyQ
GH ORV GDWRV HQ GLVFR /D VROXFLyQ HV FRQVHJXLU HVWUXFWXUDU ORV ILFKHURV GH IRUPD TXH VH
PLQLPLFHHOQ~PHURGHWUDQVIHUHQFLDVGHEORTXHVQHFHVDULDVSDUDORFDOL]DU\WUDQVIHULUORV
GDWRVVROLFLWDGRVGHVGHHOGLVFRDPHPRULDSULQFLSDO
8Q ILFKHUR HV XQD VHFXHQFLD GH UHJLVWURV /R PiV FRP~Q HV TXH WRGRV ORV UHJLVWURV VHDQ GHO
PLVPRWLSRSRUHMHPSORHQXQILFKHUR$6,*1$785$6WRGRVORVUHJLVWURVVHUiQGHOPLVPRWLSRFRQ
FDPSRVSDUDHOFyGLJR\HOQRPEUHGHODDVLJQDWXUDVXQ~PHURGHFUpGLWRVHWF6LQRHVDVt
HOILFKHURVHGHQRPLQDPL[WR
8Q ILFKHUR PL[WR HV DTXHO TXH FRQWLHQH UHJLVWURV GH GLIHUHQWHV WLSRV TXH HVWiQ tQWLPDPHQWH
UHODFLRQDGRV HQWUH Vt VH DOPDFHQDQ MXQWRV HQ ORV EORTXHV GH GLVFR IRUPDQ SDUWH GHO PLVPR
ILFKHUR ItVLFRDXQTXH FRUUHVSRQGHUtDQDGLIHUHQWHVUHODFLRQHVR WDEODV (VWR UHVXOWD YHQWDMRVR
SDUD DXPHQWDU OD HILFLHQFLD GH FRQVXOWDV X RSHUDFLRQHV HQ ODV TXH LQWHUYLHQHQ DPEDV WDEODV
-2,13RUHMHPSORHQXQPLVPRILFKHURMXQWRDOUHJLVWURGHFDGD(678',$17(SRGUtDQFRORFDUVH
ORVUHJLVWURV%2/(7Ë1B127$6GHGLFKRHVWXGLDQWH
6LWRGRVORVUHJLVWURVGHOILFKHURWLHQHQH[DFWDPHQWHHOPLVPRWDPDxRHQE\WHVVHGLFHTXHHO
ILFKHURVHFRPSRQHGHUHJLVWURVGHORQJLWXGILMD9pDVHODILJXUDDOILQDOGHOWHPD
6L QR HV DVt \ ORV UHJLVWURV GHO ILFKHUR SXHGHQ WHQHU WDPDxRV GLVWLQWRV VH GLFH TXH HO ILFKHUR
HVWDFRPSXHVWRSRUUHJLVWURVGHORQJLWXGYDULDEOH
9DULDVVRQODVFDXVDVSRUODVTXHORVUHJLVWURVGHXQILFKHURSXHGHQVHUGHORQJLWXGYDULDEOH
9 6LHOILFKHURFRQWLHQHUHJLVWURVGHOPLVPRWLSR\
· $OJ~QFDPSRWLHQHORQJLWXGYDULDEOHSRUHMHPSORHOnombre de las asignaturasR
· $OJ~QFDPSRSXHGHWHQHUP~OWLSOHVYDORUHVDWULEXWRPXOWLYDOXDGRSDUDORVteléfonosGH
ORVHVWXGLDQWHVR
· $OJ~QFDPSRHVRSFLRQDODOJXQRVUHJLVWURVQRFRQWLHQHQGLFKRVFDPSRV
9 6LHPSUHTXHHOILFKHURFRQWLHQHUHJLVWURVGHGLVWLQWRWLSRILFKHURPL[WR
/RVUHJLVWURVGHXQILFKHURVHDVLJQDQDEORTXHVGH GLVFRSXHVHO EORTXH HVOD XQLGDGGH
WUDQVIHUHQFLDGHGDWRVHQWUHODPHPRULDSULQFLSDO\ODVHFXQGDULDHOGLVFR(VWiFODURTXHVLHO
WDPDxRGHEORTXHHVPD\RUTXHHOGHUHJLVWURHQFDGDEORTXHGHGLVFRVHDOPDFHQDUiPiVGH
XQUHJLVWURGHGDWRV
1
El buffer es un área reservada contigua, en memoria principal, que (normalmente) tiene el tamaño de un bloque.
Puede denominarse también “área intermedia”.
2
En este caso, es necesario utilizar, dentro de los registros, una marca de “fin de campo”. Véase figura 1(b).
3
Será necesario, además de la marca de “fin de campo”, una marca de separación entre los distintos valores.
4
En este caso, se almacena en cada campo un par <nombre-campo=valor-campo>, además de la marca “fin de
campo” y otra de “fin de registro”. Véase figura 1(c).
5
Cada registro irá precedido de un código indicativo de su tipo de registro.
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
&RQVLGHUDPRVXQEORTXHGHWDPDxRBE\WHV
•
(QXQILFKHURFRQUHJLVWURVGHORQJLWXGILMDGHRE\WHVVLB≥R,HOQ~PHURGHUHJLVWURVSRU
EORTXHHOIDFWRUGHEORTXHVfblVHUi
fbl =  B/R 
1RUPDOPHQWH OD ORQJLWXG GHO UHJLVWUR QR VHUi XQ GLYLVRU H[DFWR GHO WDPDxR GH EORTXH HV
GHFLUQRVXHOHVXFHGHUTXHHQXQEORTXHTXHSDXQQ~PHURHQWHURGHUHJLVWURVDVtTXHHQ
FDGDEORTXHVHWHQGUiXQHVSDFLRGHVRFXSDGR
B - ( fbl * R )
3DUDDSURYHFKDUHVWHHVSDFLRQRXWLOL]DGRSRGUtDDOPDFHQDUVHDKtXQDSDUWHGHXQUHJLVWUR\
HOUHVWRGHOUHJLVWURHQRWUREORTXHTXHVHUtDHOEORTXHFRQVHFXWLYRRVLQRHVDVtHOSULPHU
EORTXHFRQWHQGUtDXQSXQWHURKDFLDHOEORTXHTXHFRQWLHQHHOUHVWRGHOUHJLVWUR
(VWH WLSR GH RUJDQL]DFLyQ VH OODPDH[WHQGLGD SXHV ORV UHJLVWURV ³SXHGHQ H[WHQGHUVH PiV
DOOi GHO ILQDO GH XQ EORTXH´ nota: siempre que el tamaño del registro sea superior al del
bloque será necesario utilizar una organización extendida
6LQRVHSHUPLWHTXHXQPLVPRUHJLVWURHVWpDOPDFHQDGRSDUWHHQXQEORTXH\SDUWHHQRWUR
EORTXHODRUJDQL]DFLyQGHOILFKHURVHUiQRH[WHQGLGD9pDVHODILJXUD
• (Q HO FDVR GH XQ ILFKHUR FRQ UHJLVWURV GH ORQJLWXG YDULDEOH SXHVWR TXH FDGD EORTXH SXHGH
FRQWHQHU XQ Q~PHUR GLVWLQWR GH UHJLVWURV VH GHILQH HO IDFWRU GH EORTXHV fbl FRPR HO
número medio de registros por bloque.
'HHVWDIRUPDHVSRVLEOHHVWLPDUFXiQWRVEORTXHVVHUiQQHFHVDULRVSDUDDOPDFHQDUXQWRWDO
GHrUHJLVWURV
b =  r/fbl 
&RQHVWHWLSRGHILFKHURVWDPELpQSXHGHQXWLOL]DUVHDPERVWLSRVGHRUJDQL]DFLyQH[WHQGLGDR
QRH[WHQGLGD6HUiQHFHVDULDXQDRUJDQL]DFLyQH[WHQGLGDVLHOWDPDxRPHGLRGHORVUHJLVWURV
HVJUDQGHSXHVDVtVHUHGXFLUiHOHVSDFLRSHUGLGRSRUEORTXH
'HVFULSWRUGHILFKHURFDEHFHUD
&RQWLHQH LQIRUPDFLyQ QHFHVDULD SDUD SHUPLWLU D ORV SURJUDPDV DFFHGHU D ORV UHJLVWURV GHO
ILFKHUR,QFOX\HSRUHMHPSORLQIRUPDFLyQSDUDGHWHUPLQDUODGLUHFFLyQGHORVEORTXHVHQGLVFR
DVtFRPRGHGHVFULSFLyQGHOIRUPDWRGHORVUHJLVWURV
· )LFKHURGHRUJDQL]DFLyQQRH[WHQGLGD\UHJLVWURVGHORQJLWXGILMD
ORQJLWXG\RUGHQGHORVFDPSRV
· )LFKHURGHORQJLWXGYDULDEOH
FyGLJRVGHWLSRGHFDPSRSDUDUHJLVWURVFRQFDPSRVRSFLRQDOHV
FDUDFWHUHVVHSDUDGRUHVHQWUHFDPSRV
FyGLJRVGHWLSRVGHUHJLVWURSDUDILFKHURVPL[WRV
2SHUDFLRQHVFRQILFKHURV
6XHOHQGLYLGLUVHHQRSHUDFLRQHVGHREWHQFLyQ\GHDFWXDOL]DFLyQGHGDWRV
• 2SHUDFLRQHVGHREWHQFLyQGHGDWRVQRDOWHUDQODLQIRUPDFLyQSXHVVyORORFDOL]DQFLHUWRV
UHJLVWURVSDUDH[DPLQDU\SURFHVDUORVYDORUHVGHVXVFDPSRV
• 2SHUDFLRQHV GH DFWXDOL]DFLyQ PRGLILFDQ HO ILFKHUR SXHV LQVHUWDQ HOLPLQDQ UHJLVWURV R
FDPELDQORVYDORUHVGHORVFDPSRVGHDOJXQRVUHJLVWURV\DH[LVWHQWHV
(Q DPERV FDVRV QRUPDOPHQWH VHUi QHFHVDULD XQD RSHUDFLyQ SUHYLD GH selección GH ORV
UHJLVWURV TXH VH GHVHD REWHQHU R DFWXDOL]DU FRQ EDVH HQ XQD condición de selección R GH
6
En algunos libros aparece como “factor de bloqueo”, pero es más correcto llamarlo “factor de bloques”.
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
búsquedaeVWDHVXQDH[SUHVLyQERROHDQDTXHLQGLFDDTXHOORTXHGHEHQVDWLVIDFHUORVYDORUHV
GHORVUHJLVWURVSDUDVHUVHOHFFLRQDGRV6LYDULRVUHJLVWURVVDWLVIDFHQODFRQGLFLyQVyORVHORFDOL]D
HOSULPHURGHHOORVVHJ~QHORUGHQItVLFRGHQWURGHOILFKHUR
(ORegistro ActualHVHOUHJLVWURORFDOL]DGRPiVUHFLHQWHPHQWH
/DVRSHUDFLRQHV³UHDOHV´SDUDORFDOL]DUOHHU\DFWXDOL]DUORVUHJLVWURVGHXQILFKHURGHSHQGHQGHO
VLVWHPDODVLJXLHQWHVVRQDOJXQDVUHSUHVHQWDWLYDV
•
•
•
•
•
•
•
BuscarR LocalizarEXVFDHOSULPHUUHJLVWURTXHVDWLVIDFHXQDFRQGLFLyQGHE~VTXHGD
7UDQVILHUHHOEORTXHTXHORFRQWLHQHDXQEXIIHUGHODPHPRULDSULQFLSDOVLQRHVWi\DDKt
(OUHJLVWURVHORFDOL]DHQHOEXIIHU\SDVDDVHUHOUHJLVWURDFWXDO
Leer X Obtener FRSLD HO UHJLVWUR DFWXDO GHO EXIIHU D XQD YDULDEOH GH SURJUDPD R D XQ
iUHDGHWUDEDMRGHOSURJUDPDGHXVXDULR
BuscarSiguiente EXVFDHQHOILFKHURHOVLJXLHQWHUHJLVWURTXHVDWLVIDFHODFRQGLFLyQGH
E~VTXHGD 7UDQVILHUH HO EORTXH TXH OR FRQWLHQH D XQ EXIIHU GH OD PHPRULD SULQFLSDO VL QR
HVWi\DDKt(OUHJLVWURVHORFDOL]DHQHOEXIIHU\SDVDDVHUHOUHJLVWURDFWXDO
Eliminar ERUUD GHO EXIIHU HO UHJLVWUR DFWXDO \ DQWHV R GHVSXpV DFWXDOL]D HO ILFKHUR HQ
GLVFRSDUDTXHUHIOHMHODHOLPLQDFLyQ
Modificar FDPELD DOJXQRV YDORUHV GH FDPSRV GHO UHJLVWUR DFWXDO \ DQWHV R GHVSXpV
DFWXDOL]DHOILFKHURGHGLVFRSDUDTXHUHIOHMHODPRGLILFDFLyQ
InsertarDxDGHXQQXHYRUHJLVWURHQHOILFKHURSDUDHOORORFDOL]DHOEORTXHGRQGHVHGHEH
LQVHUWDUWUDQVILHUHGLFKREORTXHDOEXIIHUVLQRHVWi\DDKtLQWURGXFHHOQXHYRUHJLVWURHQ
HOEXIIHU\DQWHVRGHVSXpVHVFULEHHOFRQWHQLGRGHOEXIIHUHQHOGLVFRSDUDTXHHOILFKHUR
UHIOHMHODLQVHUFLyQ
2WUDV RSHUDFLRQHVVHUtDQ SRUHMHPSOROD lectura ordenadaGHWRGRV ORV UHJLVWURV OD
GH buscarTodos SDUD REWHQHU WRGRV ORV UHJLVWURV TXH FXPSOHQ FLHUWD FRQGLFLyQ R OD
reorganizaciónGHORVUHJLVWURVGHOILFKHURVHYHUi\SRUVXSXHVWRODVGH abrirTXH
LQFOX\HOHHUHOGHVFULSWRUGHOILFKHUR\SUHSDUDUHOEXIIHU\cerrarHOILFKHUR
25*$1,=$&,Ï1'(),&+(526
/D RUJDQL]DFLyQ GH ILFKHURV HV OD HVWUXFWXUDFLyQ GH ORV GDWRV GH XQ ILFKHUR HQ UHJLVWURV
EORTXHV\HVWUXFWXUDVGHDFFHVRORFXDOLQFOX\HFyPRVHFRORFDQORVUHJLVWURV\ORVEORTXHV
HQHOGLVFR\FyPRVHLQWHUFRQHFWDQHQWUHVtSXHVWRTXHORVGDWRVGHEHQDOPDFHQDUVHGHIRUPD
WDOTXHVHDSRVLEOHORFDOL]DUORVHILFLHQWHPHQWHFXDQGRVHQHFHVLWHQ
(QFDPELRXQPpWRGRGHDFFHVRFRQVLVWHHQXQJUXSRGHSURJUDPDVTXHSHUPLWHUHDOL]DUODV
RSHUDFLRQHVDQWHVFLWDGDVOHHULQVHUWDUHWFVREUHORVGDWRVGHXQILFKHUR
(QJHQHUDO HV SRVLEOH DSOLFDU YDULRV PpWRGRV GH DFFHVR GLVWLQWRV DFFHGHU XWLOL]DQGR GLIHUHQWHV
WpFQLFDV GH DFFHVR D XQD PLVPD RUJDQL]DFLyQ GH ILFKHUR DXQTXH DOJXQRV GH ORV PpWRGRV GH
DFFHVR VyOR SRGUiQ DSOLFDUVH D ILFKHURV RUJDQL]DGRV GH GHWHUPLQDGD PDQHUD SRU HMHPSOR QR
SXHGHDSOLFDUVHXQmétodo de acceso indexadoDXQILFKHURVLQtQGLFH
/R DGHFXDGR HV FRQVHJXLU XQD FRPELQDFLyQ ³RUJDQL]DFLyQ´ ´PpWRGR GH DFFHVR´ WDO TXH VH
PD[LPLFHODHILFLHQFLDGHODVRSHUDFLRQHVTXHVHUHDOLFHQVREUHHOILFKHURPiVIUHFXHQWHPHQWH
7
Se utilizan dos verbos diferentes para indicar si el registro sólo se va a obtener (buscar) o también se
va a actualizar (localizar)
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
7LSRVGH2UJDQL]DFLyQGH)LFKHURV
2UJDQL]DFLyQ3ULPDULD
)LFKHURVQRRUGHQDGRVRUJDQL]DFLyQHQPRQWtFXORRPRQWyQ
)LFKHURVRUGHQDGRVRUJDQL]DFLyQVHFXHQFLDO
)LFKHURVGLVSHUVRVRUJDQL]DFLyQGLUHFWD
2UJDQL]DFLyQ6HFXQGDULDILFKHURVLQGH[DGRVRLQGL]DGRVRUJDQL]DFLyQLQGH[DGDRLQGL]DGD
ËQGLFHVRUGHQDGRVGHXQQLYHO
ËQGLFHVPXOWLQLYHO
25*$1,=$&,Ï135,0$5,$
),&+(526'(5(*,675261225'(1$'26
/RVUHJLVWURVVHFRORFDQHQRUGHQGHLQVHUFLyQ\DOILQDOGHOILFKHUR
/DRSHUDFLyQGHinserciónGHXQQXHYRUHJLVWURUHVXOWDPX\HILFLHQWHHOGHVFULSWRUGHILFKHUR
DOPDFHQD OD GLUHFFLyQ GHO ~OWLPR EORTXH FRQ GDWRV VH FRSLD HQ XQ EXIIHU GLFKR EORTXH VH OH
DxDGHHOQXHYRUHJLVWUR\VHFRSLDHOEORTXHGHOEXIIHUDOGLVFRUHHVFULWXUD
/D búsqueda GH XQ UHJLVWUR TXH VDWLVIDJD FLHUWD FRQGLFLyQ QHFHVLWD XQD E~VTXHGD OLQHDO
EORTXH D EORTXH OR FXDO UHVXOWD FRVWRVR SXHVWR TXH H[DPLQD \ SRU WDQWR WUDQVILHUH PXFKRV
EORTXHVVLHOILFKHURFRQVWDGHbEORTXHVH[DPLQDUiXQDPHGLDGHb/2EORTXHVSDUDHQFRQWUDU
HOSULPHUUHJLVWURTXHFXPSOHODFRQGLFLyQ\VLQLQJ~QUHJLVWURODFXPSOHRODVDWLVIDFHQYDULRV
ORVH[DPLQDUiWRGRVb
/D eliminación GH XQ UHJLVWUR H[LVWHQWH VXSRQH a) HQFRQWUDU HO UHJLVWUR TXH VH GHVHD ERUUDU
E~VTXHGDOLQHDOHQHOILFKHURb)FRSLDUHOEORTXHTXHORFRQWLHQHHQXQEXIIHUGHPHPRULDc)
HOLPLQDUHOUHJLVWURGHOEXIIHU\d)FRSLDUHOEORTXHGHOEXIIHUHQHOGLVFRUHHVFULWXUD
2WUDRSFLyQVHUtDOD eliminación por marca HQ OXJDU GHO ³ERUUDGR ItVLFR´ GHO UHJLVWUR GHQWUR
GHOEORTXHa)HQFRQWUDUHOUHJLVWURTXHVHGHVHDERUUDUE~VTXHGDOLQHDOb)FRSLDUHOEORTXH
TXHORFRQWLHQHHQXQEXIIHUGHPHPRULDc)PDUFDUORFRPRQRYiOLGRRHOLPLQDGR\d)FRSLDU
HOEORTXHGHOEXIIHUHQHOGLVFR2EYLDPHQWHHVQHFHVDULRTXHFDGDUHJLVWURLQFOX\DXQFDPSR
DGLFLRQDO HO PDUFDGRU GH HOLPLQDFLyQ TXH LQGLTXH VL HV YiOLGR FRQWLHQH GDWRV ³UHDOHV´ R QR
$GHPiV HO DOJRULWPR GH E~VTXHGD GHEHUi H[DPLQDU VyOR ORV UHJLVWURV YiOLGRV GHQWUR GH FDGD
EORTXH
(QDPEDVWpFQLFDVGHERUUDGRVHGHVSHUGLFLDHOHVSDFLRTXHRFXSDEDQORVUHJLVWURVHOLPLQDGRV
3DUDUHFXSHUDUHOHVSDFLRGHVRFXSDGRSXHGHUHDOL]DUVHSHULyGLFDPHQWHXQDreorganizaciónGHO
ILFKHUR HV GHFLU DFFHGHU GH IRUPD OLQHDO DO ILFKHUR HPSDFDQGR ORV UHJLVWURV SDUD HOLPLQDU
KXHFRVRUHJLVWURVQRYiOLGRVORVEORTXHVTXHGDQOOHQRVGHUHJLVWURV
(Q OXJDU GH UHRUJDQL]DU FDGD FLHUWR WLHPSR HO ILFKHUR SRGUtDQ DSURYHFKDUVH ORV KXHFRV R ORV
UHJLVWURV PDUFDGRV FRPR QR YiOLGRV SDUD DOPDFHQDU QXHYRV UHJLVWURV HVWR FRPSOLFDUtD HO
DOJRULWPR GH LQVHUFLyQ TXH KDVWD DKRUD HUD PX\ VLPSOH SXHVWR TXH VHUtD QHFHVDULR VHJXLU OD
SLVWDGHODVSRVLFLRQHVTXHYDQTXHGDQGRYDFtDV
/D modificación R DFWXDOL]DFLyQ GH XQ YDORU GHQWUR GH XQ UHJLVWUR VXSRQH a) ORFDOL]DU HO
UHJLVWUR E~VTXHGD OLQHDO b) FRSLDU HO EORTXH TXH OR FRQWLHQH HQ XQ EXIIHU GH PHPRULD c)
PRGLILFDUHOYDORUGHOUHJLVWURHQHOEXIIHU\d)UHHVFULELUHQHOGLVFRHOEORTXHGHOEXIIHU
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
(VWHWLSRGHILFKHURVGHUHJLVWURVQRRUGHQDGRVSXHGHXWLOL]DUXQDRUJDQL]DFLyQH[WHQGLGDRQR
H[WHQGLGDDVtFRPRUHJLVWURVGHORQJLWXGILMDRYDULDEOH
6LORVUHJLVWURVVRQGHORQJLWXGYDULDEOHSXHGHVXFHGHUTXHXQDYH]PRGLILFDGRHOUHJLVWURQR
TXHSDHQHOHVSDFLRTXHDQWHVRFXSDEDHQHOEORTXH(QHVWHFDVRVHGHEHHOLPLQDUHOUHJLVWUR
DQWLJXRHLQVHUWDUXQRQXHYRPRGLILFDGR
/D lectura ordenada VHJ~Q HO YDORU GH FLHUWR FDPSR GH ORV UHJLVWURV GHO ILFKHUR VXSRQH OD
FUHDFLyQGHXQDFRSLDRUGHQDGDGHOILFKHUR&RPRHVWRUHVXOWDPX\FRVWRVRVREUHWRGRVLHO
ILFKHUR RFXSD PXFKR HVSDFLR SDUD FUHDU OD FRSLD VH VXHOH XWLOL]DU XQD WpFQLFD HVSHFLDO GH
RUGHQDFLyQ H[WHUQD SRU HMHPSOR DOJXQD YDULDFLyQ GH OD RUGHQDFLyQ SRU IXVLyQ GH EORTXHV R
mergesort
),&+(526'(5(*,6752625'(1$'266(&8(1&,$/(6
(VWRV ILFKHURV FRQVWDQ GH UHJLVWURV DOPDFHQDGRV GH IRUPD RUGHQDGD ItVLFDPHQWH VHJ~Q HO
YDORU GH FLHUWR FDPSR GHQRPLQDGR campo de ordenación 8Q HMHPSOR VHUtD XQ ILFKHUR
/,%526FX\RVUHJLVWURVHVWXYLHUDQDOPDFHQDGRVHQRUGHQDOIDEpWLFRGHVXVWtWXORV
6L GLFKR FDPSR HV XQD FODYH FDQGLGDWD GHO ILFKHUR HV GHFLU VX YDORU LGHQWLILFD XQtYRFDPHQWH
FDGDXQRGHORVUHJLVWURVVHOHOODPDclave de ordenación6HUtDHOFDVRGHWHQHUHOILFKHURGH
ORVOLEURVFRQORVUHJLVWURVRUGHQDGRVVHJ~QVXFyGLJR,6%1
(VWHWLSRGHRUJDQL]DFLyQWLHQHYHQWDMDVFRQUHVSHFWRDODRUJDQL]DFLyQQRRUGHQDGD
/Dlectura ordenada UHVXOWD PX\ HILFLHQWH VL HO RUGHQ HV HO GH ORV YDORUHV GHO FDPSR GH
RUGHQDFLyQlistado de títulos de libros en orden alfabéticoSXHVWRTXHHVXQDOHFWXUD
VHFXHQFLDOGHOILFKHURTXHQRQHFHVLWDGHRUGHQDFLRQHVDGLFLRQDOHV
(QFRQWUDU HO siguiente registro en orden VHJ~Q HO FDPSR GH RUGHQDFLyQ dado un
título de un libro, encontrar el siguiente en orden alfabético QR VXHOH QHFHVLWDU
DFFHVR D RWUR EORTXH SXHVWR TXH HVWi HQ HO PLVPR EORTXH TXH HO UHJLVWUR DFWXDO H[FHSWR
FXDQGRHOUHJLVWURDFWXDOHVHO~OWLPRGHOEORTXHFODUR
6L OD FRQGLFLyQ GH búsqueda HVWi EDVDGD HQ HO YDORU GHO FDPSR GH RUGHQDFLyQ HO DFFHVR
UHVXOWDPXFKRPiVUiSLGRSXHVWRTXHSXHGHXWLOL]DUVHHODOJRULWPRGHbúsqueda binaria
1yWHVHTXHVLHVQHFHVDULRleerHOILFKHURVLJXLHQGRXQRUGHQGHORVYDORUHVGHXQFDPSRQR
GH RUGHQDFLyQ listado de libros ordenados por su fecha de publicación R VL OD
FRQGLFLyQGHODbúsquedaHVWiEDVDGDHQHOYDORUGHXQFDPSRQRGHRUGHQDFLyQlistado de
libros publicados en Madrid, antes del 16-Nov-1999) XVDU HVWH WLSR GH RUJDQL]DFLyQ QR
VXSRQHQLQJXQDYHQWDMDFRQUHVSHFWRDODGHORVILFKHURVQRRUGHQDGRVSXHVODE~VTXHGDVHUtD
OLQHDO\ODOHFWXUDRUGHQDGDVXSRQGUtDXQDFRSLDRUGHQDGDGHOILFKHUR
/DLQVHUFLyQ\HOLPLQDFLyQGHUHJLVWURVVRQRSHUDFLRQHVFRVWRVDVSXHVWRTXHGHEHQFRQVHUYDUHO
RUGHQGHORVUHJLVWURV
/DinserciónVXSRQHa)HQFRQWUDUODSRVLFLyQFRUUHFWDGHQWURGHXQEORTXHVHJ~QHOYDORUGH
VX FDPSR GH RUGHQDFLyQ HQ HO TXH GHEH VHU DOPDFHQDGR VH SRGUtD HQFRQWUDU PHGLDQWH
E~VTXHGDELQDULD\b)DEULUHVSDFLRHQHOILFKHURORFXDOLPSOLFDHOGHVSOD]DPLHQWROHFWXUD\
HVFULWXUDGHORVUHJLVWURVRSHUDFLyQTXHSXHGHOOHYDUPXFKRWLHPSRVLHOILFKHURHVJUDQGH
8
Si consideramos que el fichero contiene r registros en total, el número promedio de desplazamientos es
de r/2 registros en cada operación de inserción.
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
/DeliminaciónGHUHJLVWURVWLHQHHOPLVPRSUREOHPDDXQTXHHVPHQRVJUDYHVLVHXWLOL]DHO
ERUUDGRSRUPDUFD\VHUHRUJDQL]DHOILFKHURSHULyGLFDPHQWH
3DUD KDFHU PiV HILFLHQWH OD inserción SRGUtD GHMDUVH espacio libre HQ FDGD EORTXH SDUD
QXHYRVUHJLVWURV3HURXQDYH]DJRWDGRHVWHHVSDFLRVXUJHGHQXHYRHOSUREOHPDLQLFLDO
2WUD RSFLyQ VHUtD XWLOL]DU XQ fichero no ordenado auxiliar 6HUtD XQ fichero WHPSRUDO de
desborde $O ILFKHUR RUGHQDGR VH OH OODPD DKRUD fichero maestro R principal /RV QXHYRV
UHJLVWURV VRQ DOPDFHQDGRV DO ILQDO GHO ILFKHUR GH GHVERUGH PRQWtFXOR \ SHULyGLFDPHQWH VH
UHDOL]DXQDIXVLyQUHRUJDQL]DFLyQGHORVILFKHURVSULQFLSDO\DX[LOLDU'HHVWDIRUPDODLQVHUFLyQ
HV PX\ HILFLHQWH SHUR OD E~VTXHGD UHVXOWD PiV FRPSOLFDGD SXHV HO UHJLVWUR GHEH EXVFDUVH
SULPHURHQHOILFKHURSULQFLSDOPHGLDQWHXQDE~VTXHGDELQDULD\VLQRHVHQFRQWUDGRDKtGHEH
EXVFDUVHHQHOILFKHURGHGHVERUGHPHGLDQWHE~VTXHGDOLQHDO
(Q OD modificación GHO YDORU GH XQ FDPSR GH XQ UHJLVWUR GHWHUPLQDGR SRGHPRV GLVWLQJXLU
YDULRVFDVRV
- 6LODFRQGLFLyQGHE~VTXHGDGHOUHJLVWURVHEDVDHQHOFDPSRFODYHGHRUGHQDFLyQVHXWLOL]D
ODbúsqueda binariaSDUDORFDOL]DUOR6LQRVHGHEHUHDOL]DUXQDbúsqueda lineal
- $GHPiV VL HO FDPSR TXH VH GHVHD PRGLILFDU QR HV HO GH RUGHQDFLyQ HO UHJLVWUR HV
DFWXDOL]DGR\UHHVFULWRVLQSUREOHPDVLORVUHJLVWURVVRQGHORQJLWXGILMD
- 0LHQWUDVTXHVLHOFDPSRTXHGHEHVHUPRGLILFDGRHVHOGHRUGHQDFLyQHOQXHYRYDORUSXHGH
SURYRFDU HO FDPELR GH OXJDU SDUD PDQWHQHU HO RUGHQ GHO UHJLVWUR HQ HO ILFKHUR OR FXDO
VXSRQGUtD OD HOLPLQDFLyQ GHO UHJLVWUR DQWLJXR \ OD LQVHUFLyQ GHO PRGLILFDGR HQ HO OXJDU
DGHFXDGR
/Dlectura ordenadaVHJ~QHOFDPSRGHRUGHQDFLyQHVPX\HILFLHQWHFRQVLVWHHQXQDVHQFLOOD
OHFWXUDVHFXHQFLDOGHORVUHJLVWURVVLHPSUHTXHQRVHWHQJDHQFXHQWDHOILFKHURGHGHVERUGH
SHURVLpVWHVHFRQVLGHUDHVQHFHVDULRa)UHRUJDQL]DUORVILFKHURVHVGHFLURUGHQDUORVUHJLVWURV
GHOILFKHURDX[LOLDU\IXVLRQDUORVFRQORVGHOILFKHURSULQFLSDOGHVHFKDQGRORVUHJLVWURVPDUFDGRV
FRPRHOLPLQDGRVSDUDGHVSXpVb)OHHUGHIRUPDVHFXHQFLDOHOILFKHURREWHQLHQGRORVUHJLVWURV
HQRUGHQ
%),&+(5266(&8(1&,$/(6(1&$'(1$'26
/RVUHJLVWURVHVWiQGLVSXHVWRVVHFXHQFLDOPHQWHGHIRUPDOyJLFD\QRItVLFDFRPRKDVWDDKRUD
KHPRV YLVWR XWLOL]DQGR SXQWHURV SDUD HVWDEOHFHU HO RUGHQ GH ORV UHJLVWURV VHJ~Q HO YDORU GHO
FDPSRGHRUGHQDFLyQ
$Vt FDGD UHJLVWUR FRQWLHQH XQ FDPSR FRQ OD GLUHFFLyQ GHO VLJXLHQWH UHJLVWUR HQ RUGHQ 'LFKR
UHJLVWURVLJXLHQWHSXHGHHVWDUDOPDFHQDGRHQ³FXDOTXLHUOXJDU´GHQWURGHOILFKHUR
'H HVWH PRGR VH WLHQH HO ILFKHUR RUGHQDGR VLQ QHFHVLGDG GH TXH ORV UHJLVWURV OR HVWpQ
ItVLFDPHQWH
/Dinserciónmodificación\eliminaciónVRQDKRUDRSHUDFLRQHVPXFKRPiVIOH[LEOHV3RU
HMHPSORDOLQVHUWDUXQQXHYRUHJLVWURHVDOPDFHQDGRDOILQDOGHOILFKHURVHORFDOL]DHOOXJDUTXH
OHFRUUHVSRQGHVHJ~QHORUGHQ\VHUHDMXVWDQORVSXQWHURVFRQYHQLHQWHPHQWH
6XHOHVHUQHFHVDULRPDQWHQHUXQSDUGHUHJLVWURVHVSHFLDOHVTXHDOPDFHQDQODVGLUHFFLRQHVGHO
SULPHU\~OWLPRUHJLVWURVVHJ~QHORUGHQ
(VWH WLSR GH RUJDQL]DFLyQ SXHGH LPSOHPHQWDUVH FRQ GLYHUVDV HVWUXFWXUDV GH GDWRV FRPR ODV
OLVWDVOLQHDOHVODVOLVWDVP~OWLSOHVORVDQLOORVROLVWDVFLUFXODUHVORViUEROHVELQDULRVHWF
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
/LVWDVOLQHDOHV
·
...
$FDGDUHJLVWUROHSUHFHGH\DQWHFHGHRWURHQRUGHQGHFODYH&DGDUHJLVWURDSXQWDDOVLJXLHQWH
15
70
57
100
z
900
1RHVSRVLEOHDFFHGHUGHIRUPDGLUHFWDDXQUHJLVWURGHWHUPLQDGRSXHVWRTXHHVQHFHVDULROHHU
FDGD UHJLVWUR SDUD VDEHU GyQGH HVWi HO VLJXLHQWH $Vt OD búsqueda GH FXDOTXLHU UHJLVWUR HV
VLHPSUHOLQHDODSDUWLUGHOUHJLVWURLQLFLDO
/D inserción VH OOHYD D FDER FRORFDQGR HO QXHYR UHJLVWUR HQ XQD ]RQD OLEUH GHO ILFKHUR \
UHDMXVWDQGRORVDSXQWDGRUHV
/D modificación GH XQ UHJLVWUR VXSRQH a) OD E~VTXHGD OLQHDO GHO UHJLVWUR VLJXLHQGR ORV
SXQWHURVb)DFWXDOL]DFLyQGHOUHJLVWUR\c)UHHVFULWXUDGHOUHJLVWURHQGLVFR
(VWDUHHVFULWXUDVHUHDOL]DUiHQODPLVPD]RQDGHOILFKHURVLORVUHJLVWURVVRQGHORQJLWXGILMD
6LODORQJLWXGGHORVUHJLVWURVHVYDULDEOH\QRFDEHHQHOHVSDFLRTXH\DRFXSDEDHVQHFHVDULR
HOLPLQDUHOUHJLVWURDQWLJXRDOPDFHQDUHOUHJLVWURHQRWUD]RQDGHOGLVFR\UHDMXVWDUORVSXQWHURV
DGHFXDGDPHQWH
6LODPRGLILFDFLyQKDLPSOLFDGRODYDULDFLyQGHODSRVLFLyQGHOUHJLVWURGHQWURGHOILFKHURFDPELR
GHO YDORU GHO FDPSR GH RUGHQDPLHQWR HV SUHFLVR UHDMXVWDU ORV SXQWHURV SDUD PDQWHQHU HO
RUGHQ(VWRQRVHUiQHFHVDULRVLODPRGLILFDFLyQQRDIHFWDDORUGHQGHORVUHJLVWURV
/D eliminación WDQ VROR VXSRQH HO UHDMXVWH GH ORV DSXQWDGRUHV /RV UHJLVWURV ERUUDGRV VRQ
]RQDVGHHVSDFLRTXHVHGHVSHUGLFLDQ
(V SRVLEOH DSURYHFKDU WDOHV HVSDFLRV GHVRFXSDGRV SHUR VL pVWRVQR VH UHFXSHUDQ ORV ILFKHURV
PX\YROiWLOHVTXHGDQFRQPXFKRVKXHFRVHVSDFLRGHVSHUGLFLDGRVLDGHPiVORVILFKHURVWLHQHQ
XQD DOWD WDVD GH LQVHUFLRQHV DO ILQDO GHO ILFKHUR VX WDPDxR FUHFH PXFKR GH IRUPD TXH OD
lectura ordenada UHVXOWD XQ SURFHVR PX\ OHQWR DO WHQHU TXH UHDOL]DU PXFKRV PRYLPLHQWRV
DFFHVRVDEORTXHVGLVWLQWRVDGHPiVVHUiQQHFHVDULDVIUHFXHQWHVUHRUJDQL]DFLRQHVGHOILFKHUR
9
Ficherossobre los que se realiza muchas inserciones, eliminaciones y/o modificaciones
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
/LVWDVP~OWLSOHV
/RV UHJLVWURV HVWiQ HQFDGHQDGRV SRU PiV GH XQD OLVWD (VWH WLSR GH HVWUXFWXUDV SHUPLWH SRU
HMHPSOR
5HFRUULGRKDFLDDWUiV
$FFHVRDUHJLVWURVDQWHULRUHVVLQQHFHVLGDGGHUHFRUUHUGHQXHYRHOILFKHURGHVGHHOSULQFLSLR
GHODOLVWD
d1
•
d2
d3
dn
...
•
/DVRSHUDFLRQHVGHERUUDGRLQVHUFLyQ\PRGLILFDFLyQVRQDQiORJDVDODVGHODVOLVWDVVLPSOHV
SHURUHTXLHUHQHOUHDMXVWHGHXQQ~PHURPD\RUGHDSXQWDGRUHV
5HGXFFLyQGHOWLHPSRGHDFFHVR
3RU HMHPSOR VL GLVSRQHPRV GH XQ ILFKHUR TXH FRQWLHQH LQIRUPDFLyQ KLVWyULFD GHVGH KDVWDHOGtDGHKR\SDUDUHDOL]DUODH[WUDFFLyQGHGDWRVUHIHUHQWHVDSRGUtDPRVXWLOL]DU
XQD VHULH GH UHJLVWURV HVSHFLDOHV TXH DSXQWDUDQ DO FRQWXYLHUDQ OD GLUHFFLyQ GHO SULPHU
UHJLVWURGHFDGDGpFDGDSDUDDFFHGHUUiSLGDPHQWHDOD]RQDDGHFXDGD\EXVFDUDSDUWLUGH
DKt
)LFKHURVFODVLILFDGRVSRUPiVGHXQDFODYH
3DUDHOORVHXWLOL]DQODVOODPDGDVlistas cruzadas
/RV UHJLVWURV VH DOPDFHQDQ RUGHQDGRV ItVLFDPHQWH VHJ~Q XQR GH ORV FDPSRV \ HO UHVWR GH
RUGHQDFLRQHVVHLPSOHPHQWDPHGLDQWHDSXQWDGRUHV
&DGDUHJLVWURWLHQHWDQWRVFDPSRVSXQWHURFRPROLVWDVGLIHUHQWHVKD\D
(QHVWHFDVRSRUHMHPSORODRSHUDFLyQGHinserciónLPSOLFDUtDa)LQVHUFLyQItVLFDGHOQXHYR
UHJLVWUR VHJ~Q HO YDORU GHO FDPSR GH RUGHQDFLyQ ItVLFD b) UHFRUULGR VHFXHQFLDO GH XQD OLVWD
KDVWD HQFRQWUDU XQ YDORU GHO FDPSR FRUUHVSRQGLHQWH D GLFKD OLVWD VXSHULRU DO GHO QXHYR
UHJLVWUR\UHRUJDQL]DFLyQGHSXQWHURV\c)UHSHWLUHOSDVRbSDUDFDGDXQDGHOUHVWRGHOLVWDV
7DPELpQSXHGHQLPSOHPHQWDUVHWRGDVODVRUGHQDFLRQHVGHIRUPDOyJLFDPHGLDQWHOLVWDVHQ
HVWHFDVRORVUHJLVWURVHVWDUiQDOPDFHQDGRVGHVRUGHQDGDPHQWH
(VWHWLSRGHHVWUXFWXUDUHGXFHHOWLHPSRGHDFFHVRDORVUHJLVWURVGHOILFKHURVHJ~QHOYDORU
GHFDGDXQRGHORVFDPSRVVREUHHOTXHKD\DFRQVWUXLGDXQDOLVWD
([LVWHQPiVHVWUXFWXUDVFRPRODVGHDQLOORROLVWDVFLUFXODUHVVLQUHJLVWURVGHLQLFLRQLGHILQ
SHURFRQXQindicador de fin\ORViUEROHVELQDULRV
8QiUEROELQDULR
• (VXQDHVWUXFWXUDQROLQHDO
• /RVUHJLVWURVHVWiQDOPDFHQDGRVVLQVHJXLUXQRUGHQItVLFRQLOyJLFR
• 6RQODEDVHSDUDLPSOHPHQWDUFXDOTXLHURWURWLSRGHiUERO
• /RV árboles binarios de búsqueda SRVLELOLWDQ OD LPSOHPHQWDFLyQ GH ILFKHURV
SHUPLWLHQGRXQSURFHVDPLHQWRGHVXFRQWHQLGRPX\HILFLHQWH
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
),&+(526'($&&(62',5(&727e&1,&$6'(',63(56,Ï1+$6+,1*
(VWH WLSR GH RUJDQL]DFLyQ GH ILFKHURV SHUPLWH XQ DFFHVR PX\ UiSLGR D GHWHUPLQDGRV UHJLVWURV
VHJ~QFLHUWDVFRQGLFLRQHVGHE~VTXHGD/DFRQGLFLyQGHE~VTXHGDGHEHVHUXQDLJXDOGDGVREUH
XQVRORFDPSRHOcampo de dispersión6LpVWHHVXQFDPSRFODYHVXHOHVHUORVHOHOODPD
clave de dispersión
(VWHWLSRGHRUJDQL]DFLyQVHEDVDHQHOHVWDEOHFLPLHQWRGHXQDIXQFLyQhGHGLVSHUVLyQTXHVH
DSOLFDDOYDORUkGHOFDPSRGHGLVSHUVLyQGHORVUHJLVWURVGHXQILFKHUR\SURGXFHODGLUHFFLyQ
GHO EORTXH GH GLVFR HQ HO TXH HVWi DOPDFHQDGR HO UHJLVWUR TXH FRQWLHQH GLFKR YDORU /D
ORFDOL]DFLyQGHOUHJLVWURGHQWURGHOEORTXHSXHGHUHDOL]DUVHHQHOEXIIHUGHPHPRULDSULQFLSDO
$OJXQRVHMHPSORVGHIXQFLRQHVh
D Módulo. h(k) = K mod M
E Plegado (folding) 6L k= k1k2k3k4 HQWRQFHV h(k) = k1k2 ⊕ k3k4 GRQGH OD
RSHUDFLyQ⊕SXHGHVHUODVXPDDULWPpWLFDRODRSHUDFLyQOyJLFD;25
F Truncamiento6Lk= k1k2k3k4HQWRQFHVSRUHMHPSORh(k) = k1k3
8QD GH ODV GHVYHQWDMDV GH OD GLVSHUVLyQ HV TXH QR JDUDQWL]D TXH YDORUHV GLVWLQWRV GH k
SURGX]FDQGLUHFFLRQHVGLIHUHQWHV<HVWRHVGHELGRDTXHHOespacio del campo de dispersión
HOQ~PHURGHSRVLEOHVYDORUHVGHkHVPXFKRPD\RUTXHHOespacio de direccionesQ~PHUR
GHGLUHFFLRQHVGLVSRQLEOHVSDUDORVUHJLVWURV
7LSRVGHGLVSHUVLyQ
InternaHQILFKHURVLQWHUQRVILFKHURVWHPSRUDOHVSHTXHxRVHQPHPRULDSULQFLSDO
ExternaHQILFKHURVGHGLVFRHVODTXHPiVQRVLQWHUHVD
(QODGLVSHUVLyQLQWHUQDHOHVSDFLRGHGLUHFFLRQHVGHVWLQRHVXQFRQMXQWRGHMUHJLVWURVHV
GHFLU HOILFKHURVHLPSOHPHQWD HQPHPRULD SULQFLSDOPHGLDQWH XQarray GH M SRVLFLRQHV /D
IXQFLyQ GH GLVSHUVLyQ SRU WDQWR WUDQVIRUPDUi HO YDORU GHO FDPSR GH GLVSHUVLyQ HQ XQ HQWHUR
HQWUH0\M-1FRUUHVSRQGLHQWHDORVtQGLFHVGHOarray9pDVHILJXUDD
8QDFROLVLyQWLHQHOXJDUFXDQGRDODSOLFDUhDOYDORUGHOFDPSRGHGLVSHUVLyQGHXQUHJLVWURTXH
VHGHVHDLQVHUWDUHQHOILFKHURVHREWLHQHXQDGLUHFFLyQSRVLFLyQHQODTXH\DHVWiDOPDFHQDGR
RWURUHJLVWUR(VQHFHVDULRLQWURGXFLUHOQXHYRUHJLVWURTXHVHGHQRPLQDsinónimoGHOTXH\D
RFXSDVXSRVLFLyQHQHOILFKHURHQRWUROXJDUPHGLDQWHXQDWpFQLFDGHUHVROXFLyQGHFROLVLRQHV
7pFQLFDVGH5HVROXFLyQGH&ROLVLRQHV
'LUHFFLRQDPLHQWRDELHUWR6HH[DPLQDQVHFXHQFLDOPHQWHODVVLJXLHQWHVSRVLFLRQHVKDVWD
HQFRQWUDUXQDYDFtDGRQGHVHDOPDFHQDHOQXHYRUHJLVWUR(VXQSURFHGLPLHQWRPX\OHQWR
(QFDGHQDPLHQWR 6H PDQWLHQH XQ área de desbordamiento VH H[WLHQGH HO array FRQ
YDULDV SRVLFLRQHV GRQGH DOPDFHQDU FDGD VLQyQLPR &DGD SRVLFLyQ FRQWLHQH XQ FDPSR PiV
SXQWHUR 6H FRORFD HO UHJLVWUR QXHYR HQ XQD SRVLFLyQ GH GHVERUGH GHVRFXSDGD \ HV
DSXQWDGD GHVGH OD GLUHFFLyQ TXH OH FRUUHVSRQGtD SRU VX GLUHFFLyQ GH GLVSHUVLyQ R ELHQ
GHVGH XQ VLQyQLPR DQWHULRU \D HQ OD ]RQD GH GHVERUGDPLHQWR $Vt VH WHQGUi XQD OLVWD GH
VLQyQLPRVUHJLVWURVGHGHVERUGHSDUDFDGDGLUHFFLyQGHGLVSHUVLyQ9pDVHILJXUDE
/RVDOJRULWPRVGHLQVHUFLyQHOLPLQDFLyQFRQVXOWD\PRGLILFDFLyQVRQPiVVHQFLOORVTXHSDUD
HOGLUHFFLRQDPLHQWRDELHUWR
'LVSHUVLyQP~OWLSOH6HDSOLFDXQDVHJXQGDIXQFLyQGHGLVSHUVLyQ6LVHSURGXFHGHQXHYR
XQDFROLVLyQVHDSOLFDGLUHFFLRQDPLHQWRDELHUWRRELHQXQDWHUFHUDIXQFLyQGHGLVSHUVLyQ\
OXHJRGLUHFFLRQDPLHQWRDELHUWR
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
/D IXQFLyQ h GHEH VHU VHQFLOOD \ UiSLGD GH FDOFXODU $GHPiV VX SULQFLSDO REMHWLYR HV FRQVHJXLU
XQD GLVWULEXFLyQ XQLIRUPH GH ORV UHJLVWURV HQ HO HVSDFLR GH GLUHFFLRQHV HV GHFLU VLQ
DFXPXODPLHQWRVHQ]RQDVGHWHUPLQDGDVGHOILFKHUR'HHVWDPDQHUDVHPLQLPL]DUiHOQ~PHUR
GH FROLVLRQHV \ VH RFXSDUi HO Pi[LPR Q~PHUR GH SRVLFLRQHV GHO ILFKHUR VH UHGXFLUi HO
GHVDSURYHFKDPLHQWRGHOHVSDFLRHQGLVFR
(QODGLVSHUVLyQH[WHUQDHOHVSDFLRGHGLUHFFLRQHVGHVWLQRHVXQFRQMXQWRGHFXEHWDV
8QD FXEHWD HV XQ FRQMXQWR GH UHJLVWURV GH IRUPD TXH SXHGH FRQWHQHU XQ EORTXH GH GLVFR R
ELHQYDULRVEORTXHVFRQWLJXRVGHGLVFRItVLFDROyJLFDPHQWH
/D IXQFLyQ h DKRUD VH DSOLFD DO YDORU GHO FDPSR GH GLVSHUVLyQ GH XQ UHJLVWUR \ GHYXHOYH HO
Q~PHURGHFXEHWDGRQGHVHDOPDFHQDUiGLFKRUHJLVWUR
(QHOGHVFULSWRUGHOILFKHURVHPDQWLHQHXQDWDEODTXHHVWDEOHFHODFRUUHVSRQGHQFLDHQWUHFDGD
Q~PHURGHFXEHWD\ODGLUHFFLyQGHGLVFRHQODTXHpVWDFRPLHQ]D9pDVHILJXUD
(OXVRGHFXEHWDVGHFUHPHQWDHOQ~PHURGHFROLVLRQHVSXHVORVUHJLVWURVVLQyQLPRVTXHTXHSDQ
HQODFXEHWDVHGLVSHUVDQVLQSUREOHPDVGHQWURGHpVWDVHDOPDFHQDQVHFXHQFLDOPHQWH
(O SUREOHPD VXUJH FXDQGR OD FXEHWD HVWi FRPSOHWD \ XQ QXHYR UHJLVWUR GHEH DOPDFHQDUVH HQ
HVD FXEHWD /D VROXFLyQ VHUtD TXH FDGD FXEHWD FRQWHQJD XQ SXQWHUR DO SULPHU UHJLVWUR GH XQD
lista de registros de desbordeDOPDFHQDGRVHQXQDcubeta de desbordeFRP~QDWRGDVODV
GHPiV6LpVWDVHFRPSOHWDSXHGHHQFDGHQDUVHFRQRWUDFXEHWDGHGHVERUGH9pDVHILJXUD
/DGLVSHUVLyQSRVLELOLWDHODFFHVRPiVUiSLGRSRVLEOHDFLHUWRUHJLVWURGDGRVXYDORUGHFDPSRGH
GLVSHUVLyQ HV XQ DFFHVR GLUHFWR VLQ WHQHU HQ FXHQWD HO UHVWR GH UHJLVWURV /D PD\RUtD GH ODV
YHFHVEDVWDXQDFFHVRDEORTXHSDUDlocalizarXQUHJLVWUR
6LQHPEDUJRHVWDWpFQLFDQRUHVXOWDPX\~WLOVLVHGHVHDleer en ordenORVUHJLVWURVSXHVOD
PD\RUSDUWHGHODVIXQFLRQHVGHGLVSHUVLyQQRPDQWLHQHQORVUHJLVWURVRUGHQDGRVVHJ~QHOYDORU
GHOFDPSRGHGLVSHUVLyQDXQTXHDOJXQDVVtORKDFHQFRPRODfunción identidad, SHM
3RU RWUD SDUWH WDPELpQ WLHQH HO LQFRQYHQLHQWH GH DVLJQDU XQD FDQWLGDG ILMD GH HVSDFLR D FDGD
ILFKHUR9HDPRVVLVHGLVSRQHGHM FXEHWDV FDGD XQD FRQ FDSDFLGDG SDUDm UHJLVWURV FRPR
Pi[LPR $ OR PiV FDEHQ m*M registros HQ HO HVSDFLR DVLJQDGR 6L HO Q~PHUR UHDO GH
UHJLVWURV GHO ILFKHUR HV PXFKR PHQRU TXH m*M, VH GHVDSURYHFKDUi PXFKR HVSDFLR 6L HO
Q~PHUR GH UHJLVWURV HV PX\ VXSHULRU D m*M HO Q~PHUR GH FROLVLRQHV VHUi PX\ HOHYDGR GH
IRUPD TXH OD REWHQFLyQ GH UHJLVWURV VHUi PX\ OHQWD GHELGR D ODV ODUJDV OLVWDV GH UHJLVWURV GH
GHVERUGH
/DbúsquedaGHXQUHJLVWURFRQEDVHHQHOYDORUGHXQFDPSRTXHQRVHDHOGHGLVSHUVLyQHV
WDQFRVWRVDFRPRHQXQILFKHURQRRUGHQDGRSXHVGHEHUHDOL]DUVHXQDE~VTXHGDVHFXHQFLDO
/D eliminación GH XQ UHJLVWUR LPSOLFD VDFDUOR GH OD FXEHWD HQ OD TXH VH HQFXHQWUD 3RGUtD
SDVDUVHXQRGHORVUHJLVWURVVLQyQLPRVGHVGHODOLVWDGHGHVERUGHDODFXEHWDSDUDDSURYHFKDU
HVH HVSDFLR 6L HO UHJLVWUR TXH VH GHVHD HOLPLQDUD \D HVWXYLHUD HQ XQD OLVWD GHVERUGH EDVWDUtD
FRQVDFDUORGHGLFKDOLVWD
9HPRVTXHHVQHFHVDULRVHJXLUODSLVWDGHODVSRVLFLRQHVYDFtDVGHOiUHDGHGHVERUGHPHGLDQWH
XQDOLVWDHQOD]DGDGHSRVLFLRQHVGHGHVERUGHGHVRFXSDGDV
(Q OD modificación GH XQ YDORU GHQWUR GH XQ UHJLVWUR VL OD FRQGLFLyQ GH E~VTXHGD HV XQD
FRPSDUDFLyQ GH LJXDOGDG VREUH HO FDPSR GH GLVSHUVLyQ OD ORFDOL]DFLyQ GHO UHJLVWUR HV PX\
HILFLHQWHDSOLFDQGRODIXQFLyQhHQFDVRFRQWUDULRHVQHFHVDULRUHDOL]DUXQDE~VTXHGDOLQHDOGHO
UHJLVWUR$GHPiVVLGHEHPRGLILFDUVHXQ FDPSRQRGHGLVSHUVLyQVHDFWXDOL]D HOUHJLVWUR\VH
UHHVFULEHHQODPLVPDFXEHWDGRQGHHVWDEDHQFDPELRVLHOFDPSRFX\RYDORUGHEHFDPELDUVt
TXH HV HO FDPSR GH GLVSHUVLyQ OD PRGLILFDFLyQ SXHGH LPSOLFDU TXH HO UHJLVWUR ³VDOWH´ D RWUD
FXEHWDORFXDOSURYRFDODHOLPLQDFLyQGHOUHJLVWURDQWLJXR\ODLQVHUFLyQGHOQXHYR
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
25*$1,=$&,Ï16(&81'$5,$),&+(526'(Ë1',&(6
/RV tQGLFHV VRQ HVWUXFWXUDV GH DFFHVR DGLFLRQDOHV GH DKt OD GHQRPLQDFLyQ GH RUJDQL]DFLyQ
secundaria SXHVWR TXH XQ FDGD tQGLFH HV XWLOL]DGR MXQWR FRQ XQ ILFKHUR GH GDWRV fichero
principalFX\RVUHJLVWURVHVWiQRUJDQL]DGRVVLJXLHQGRDOJ~QWLSRGHRUJDQL]DFLyQSULPDULD
(O tQGLFH DJLOL]D OD REWHQFLyQ GH UHJLVWURV GHO ILFKHUR SULQFLSDO HQ UHVSXHVWD D FLHUWDV
FRQGLFLRQHVGHE~VTXHGDRGHVHOHFFLyQ
7LSRVGHtQGLFHV
ËQGLFHVRUGHQDGRVGHXQQLYHO
D 3ULPDULRV
E 6HFXQGDULRV
F 'H$JUXSDPLHQWR
ËQGLFHVPXOWLQLYHO
D ÈUEROHV%
E ÈUEROHV%
Ë1',&(25'(1$'2'(8162/21,9(/
(VXQDHVWUXFWXUDGHGDWRVGHILQLGDFRQEDVHHQORVYDORUHVGHXQFDPSRGHOILFKHURSULQFLSDO
OODPDGRJHQpULFDPHQWHcampo de indexaciónRLQGL]DFLyQ
(O ILFKHUR GH tQGLFH FRQWLHQH XQ FRQMXQWR GH UHJLVWURV OODPDGRV entradas &DGD HQWUDGD
FRQWLHQHXQFDPSR SDUD FRQWHQHU ORV YDORUHV GHO FDPSR GH LQGH[DFLyQ MXQWR FRQ XQD OLVWD GH
SXQWHURVFDGDXQRGHORVFXDOHVDSXQWDDXQRGHORVEORTXHVTXHFRQWLHQHQDOJ~QUHJLVWURFRQ
GLFKR YDORU HQ WDO FDPSR GHQWUR GHO ILFKHUR SULQFLSDO GH IRUPD DQiORJD D FRPR FDGD OtQHD
HQWUDGD GHO tQGLFH GH XQ OLEUR ILFKHUR FRQWLHQH FDGD SDODEUD LPSRUWDQWH R WySLFR YDORU GH
LQGH[DFLyQ MXQWR FRQ ORV Q~PHURV SXQWHURV GH WRGDV ODV SiJLQDV EORTXHV HQ ODV TXH
DSDUHFHWDOWySLFR
/DVHQWUDGDV GHO tQGLFH HVWiQ RUGHQDGDV VHJ~Q HO YDORU GHO FDPSR GH LQGH[DFLyQ DVt TXH HV
SRVLEOHUHDOL]DUE~VTXHGDVELQDULDVHQHOtQGLFHGHIRUPDHILFLHQWHSXHVWRTXHHOtQGLFHVXHOHVHU
GH SRFR WDPDxR 6L HO tQGLFH FRQWLHQH EL EORTXHV OD E~VTXHGD ELQDULD QHFHVLWD DFFHGHU D XQD
PHGLDGHORJELEORTXHV
8QtQGLFHHVGHQVRVLFRQWLHQHXQDHQWUDGDSRUFDGDUHJLVWURGHOILFKHURGHGDWRV(QRWURFDVR
HO tQGLFH HV QR GHQVR SRU HMHPSOR FXDQGR FRQWLHQH XQD HQWUDGD SRU FDGD EORTXH GHO ILFKHUR
SULQFLSDO
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
$Ë1',&(635,0$5,26
6RQtQGLFHVQRGHQVRV\VHFRQVWUX\HQVREUHILFKHURVGHGDWRVFRQUHJLVWURVRUGHQDGRVVHJ~Q
ORVYDORUHVGHXQFDPSRTXHHVFODYHVXHOHVHUODFODYHSULPDULD
(Ocampo de indexaciónHVHOFDPSRFODYHGHRUGHQDPLHQWRGHOILFKHURGHGDWRV
(OtQGLFHHVXQILFKHURFRQUHJLVWURVHQWUDGDVGHGRVFDPSRV\ORQJLWXGILMD
/RVFDPSRVVRQ
- 8QR(K)GHLJXDOWLSRGHGDWRVTXHODclave de ordenamientoGHOILFKHURGHGDWRV
- (ORWUR(P)XQpuntero a bloqueGHGLVFR
8QD HQWUDGD FRQWLHQH ORV YDORUHV <K(i), P(i)>, GRQGH K(i) HV HO YDORU GH OD FODYH GHO SULPHU
UHJLVWURGHOEORTXHi OODPDGRUHJLVWURancla del bloque\ P(i)HVODGLUHFFLyQGHFRPLHQ]R
GHObloque i
(OQ~PHURWRWDOGHHQWUDGDVHQHOtQGLFHHVHOQ~PHURGHEORTXHVGHOILFKHURGHGDWRVRUGHQDGR
HQGLVFR
(OILFKHURGHtQGLFHHVWiRUGHQDGRVHJ~QORVYDORUHVK(i).
9pDVHILJXUD
(OQ~PHURGHEORTXHVGHOILFKHURtQGLFHHVPXFKRPHQRUTXHHOQ~PHURGHEORTXHVGHOILFKHUR
GHGDWRVSXHVWRTXH
- (OQ~PHURGHHQWUDGDVGHOtQGLFHHVPX\LQIHULRUDOGHUHJLVWURVGHOILFKHURGHGDWRV
WLHQHXQDHQWUDGDSRUFDGDEORTXH
- (OWDPDxRGHFDGDHQWUDGDHVPXFKRPHQRUTXHHOWDPDxRGHXQUHJLVWURGHGDWRV
SXHVVyORWLHQHGRVFDPSRV
$VtTXHHQXQEORTXHGHGLVFRFDEHQPiVHQWUDGDVGHtQGLFHTXHUHJLVWURVGHGDWRV
3RUWDQWRODE~VTXHGDELQDULDHQHOtQGLFHQHFHVLWDPXFKRVPHQRVDFFHVRVDEORTXHVTXHVLVH
UHDOL]DUDGLUHFWDPHQWHODE~VTXHGDHQHOILFKHURGHGDWRV
/DbúsquedaGHXQUHJLVWURFX\DFODYHWLHQHHOYDORUkLPSOLFDa)UHDOL]DUXQDE~VTXHGDELQDULD
HQHOtQGLFHKDVWDHQFRQWUDUXQDHQWUDGDiWDOTXHK(i)≤ k <K(i+1)HQWRQFHVHOUHJLVWUREXVFDGR
HVWi HQ HO EORTXH FRQ GLUHFFLyQ P(i) \ b) XQD YH] TXH HO EORTXH FRQ GLUHFFLyQ P(i) \D VH KD
FRSLDGRHQHOEXIIHUOHHUORGHIRUPDVHFXHQFLDOKDVWDHQFRQWUDUHOUHJLVWUR
/D inserción HQ OD SRVLFLyQ FRUUHFWD GH XQ QXHYR UHJLVWUR HQ HO ILFKHUR GH GDWRV LPSOLFD
DGHPiVGHORTXH\DYLPRVSDUDODLQVHUFLyQHQXQILFKHURFRQUHJLVWURVRUGHQDGRVYHUVHFFLyQ
ODPRGLILFDFLyQGHODVHQWUDGDVGHOtQGLFHHQHOFDVRGHTXHODLQVHUFLyQKD\DDOWHUDGRORV
UHJLVWURVDQFODGHDOJXQRVEORTXHV
(OborradoGHUHJLVWURVWDPELpQSXHGHVXSRQHUODPRGLILFDFLyQGHOILFKHURGHtQGLFHVLVHKD
HOLPLQDGRDOJ~QUHJLVWURDQFODGHEORTXH
10
11
Si K(i) contiene el valor de la clave del último registro del bloque i se mejora el tiempo de acceso.
Esto es posible gracias al ordenamiento (físico o lógico) del fichero de datos según el valor de la clave.
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
%Ë1',&(6'($*583$0,(172
7DPELpQVRQtQGLFHVQRGHQVRV\VHFRQVWUX\HQVREUHILFKHURVGHGDWRVFRQUHJLVWURVRUGHQDGRV
VHJ~QORVYDORUHVGHXQFDPSRTXH12HVFODYH
(O campo de indexación HV HO FDPSR GH RUGHQDPLHQWR GHO ILFKHUR \ HV SRVLEOH TXH H[LVWDQ
YDULRVUHJLVWURVGHGDWRVFRQHOPLVPRYDORUSDUDWDOFDPSRTXHVHGHQRPLQDDKRUD campo de
agrupamiento
(VWHWLSRGHtQGLFHDFHOHUDODREWHQFLyQGHWRGRVORVUHJLVWURVTXHWLHQHQHOPLVPRYDORUHQHO
FDPSRGHLQGH[DFLyQRDJUXSDPLHQWR
(OtQGLFHHVXQILFKHURFRQHQWUDGDVGHGRVFDPSRV\ORQJLWXGILMD
- 8QRK,GHLJXDOWLSRGHGDWRVTXHHOcampo de agrupamientoGHOILFKHURGHGDWRV
- (ORWURP, XQpuntero a bloqueGHGLVFR
8QD HQWUDGD FRQWLHQH ORV YDORUHV <K(i), P(i)>, GRQGH K(i) HV XQ YDORU GLVWLQWR GHO FDPSR GH
DJUXSDPLHQWR \ P(i) HV XQ SXQWHUR DO SULPHU EORTXH GHO ILFKHUR GH GDWRV TXH FRQWLHQH XQ
UHJLVWURFRQHVHYDORUK(i)HQ HOFDPSRGHDJUXSDPLHQWRORVUHJLVWURVGH GDWRV FRQ HO PLVPR
YDORU K(i) HVWiQ WUDV pO HQ HO ILFKHUR SULQFLSDO SXHV pVWH HVWi RUGHQDGR SRU HVH FDPSR QR
FODYH
(OtQGLFHFRQWLHQHXQDHQWUDGDiSRUFDGDYDORUGLVWLQWRGHOFDPSRGHDJUXSDPLHQWRGHOILFKHUR
GHGDWRV
(OILFKHURGHtQGLFHHVWiRUGHQDGRVHJ~QORVYDORUHVK(i)
9pDVHILJXUD
/Dinserción\eliminaciónGHXQUHJLVWURVRQRSHUDFLRQHVFRVWRVDVGHELGRDODRUGHQDFLyQ
ItVLFDGHORVUHJLVWURVGHGDWRV
(VWR SXHGH DOLYLDUVH UHVHUYDQGR XQ bloque completo SDUD FDGD valor distinto GHO FDPSR GH
DJUXSDPLHQWR GH IRUPD TXH ORV UHJLVWURV FRQ GLFKR YDORU VH FRORFDQ HQ HVH EORTXH \ VL VH
QHFHVLWDPiVHVSDFLRVHHQOD]DXQQXHYREORTXHYDFtRFRQHOTXHVHKDFRPSOHWDGR
9pDVHILJXUD
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
&Ë1',&(66(&81'$5,26
(QHVWHFDVRHOcampo de indexaciónHVXQFDPSRGHORVUHJLVWURVGHXQILFKHURGHGDWRV
TXHQRHVGHRUGHQDPLHQWR
&DGDHQWUDGDGHOtQGLFHFRQWLHQHGRVFDPSRV
- 8QR, KGHLJXDOWLSRGHGDWRVTXHHOcampo de indexación
- (ORWURPXQpunteroa bloque RELHQ a registroGHOILFKHURHQGLVFR
3XHGHQ H[LVWLU PXFKRV tQGLFHV VHFXQGDULRV PXFKRV FDPSRV GH LQGH[DFLyQ SDUD XQ PLVPR
ILFKHURGHGDWRV
Ë1',&(6(&81'$5,262%5(81&$032&/$9('(/),&+(5235,1&,3$/
5HFRUGHPRV TXH HO FDPSR QR HV GH RUGHQDPLHQWR \ SXHVWR TXH HV FODYH DKRUD VH OH OODPD
clave secundaria
(VXQtQGLFHGHQVRSXHVFRQWLHQHXQDHQWUDGDLSRUFDGDUHJLVWURGHOILFKHURGHGDWRV
&DGDHQWUDGDHVXQUHJLVWURGHORQJLWXGILMD\GRVFDPSRV<K(i), P(i)>,GRQGHK(i)HVHOYDORUGH
ODFODYHVHFXQGDULDGHXQUHJLVWUR\P(i)HVXQDSXQWDGRUELHQDHVHUHJLVWURRELHQDOEORTXH
GRQGH HVWi GLFKR UHJLVWUR HQ FX\R FDVR XQD YH] FRSLDGR HO EORTXH HQ HO EXIIHU GH PHPRULD
SDUD DFFHGHU DO UHJLVWUR VHUi QHFHVDULR EXVFDUOR VHFXHQFLDOPHQWH GHQWUR GHO EORTXH KDVWD GDU
FRQpO
/DV HQWUDGDV HVWiQ RUGHQDGDV VHJ~Q HO YDORU GH K(i), GH IRUPD TXH HV SRVLEOH UHDOL]DU
E~VTXHGDVELQDULDVHQHOtQGLFH
9pDVHILJXUD
/RV UHJLVWURV HQ HO ILFKHUR GH GDWRV QR HVWiQ RUGHQDGRV VHJ~Q ORV YDORUHV GH OD FODYH
VHFXQGDULDDVtTXHQRHVSRVLEOHXWLOL]DUDQFODVGHEORTXHSRUHVWRVHQHFHVLWDXQDHQWUDGDGH
tQGLFHSRUFDGDUHJLVWUR\QRSRUFDGDEORTXHHOtQGLFHHVGHQVR
&XDQGRVHFRQVWUX\HXQtQGLFHVHFXQGDULRVREUHXQILFKHURGHGDWRVVHJ~QORVYDORUHVGHXQR
GH VXV FDPSRV VH PHMRUD PXFKR OD E~VTXHGD GH XQ UHJLVWUR DUELWUDULR GDGR VX YDORU SDUD
GLFKRFDPSRSXHVWRTXHVLHOtQGLFHQRH[LVWLHUDGHEHUtDUHDOL]DUVHXQDE~VTXHGDOLQHDO
3RURWUDSDUWHXQtQGLFHVHFXQGDULRQHFHVLWDPiVHVSDFLRTXHXQtQGLFHSULPDULR\VXWLHPSRGH
E~VTXHGDHVVXSHULRUSXHVFRQWLHQHPiVHQWUDGDV
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
Ë1',&(6(&81'$5,262%5(81&$03212&/$9('(/),&+(5235,1&,3$/
5HFRUGHPRV TXH HO FDPSR QR HV GH RUGHQDPLHQWR \ SXHVWR TXH QR HV FODYH HV SRVLEOH TXH
YDULRVUHJLVWURVGHGDWRVFRQWHQJDQHOPLVPRYDORUHQHOFDPSRGHLQGH[DFLyQ
$ODKRUDGHFRQVWUXLUtQGLFHVGHHVWHWLSRH[LVWHQYDULDVRSFLRQHVHVWDVVRQDOJXQDV
D ,QFOXLU YDULDV HQWUDGDV GH tQGLFH FRQ HO PLVPR YDORU GH K(i) (V GHFLU FDGD HQWUDGD
VHUiXQUHJLVWURGHORQJLWXGILMDTXHFRQWHQGUiORVYDORUHV<K(i), P(i)>GRQGHP(i)HV
XQSXQWHURDXQRGHORVUHJLVWURVFRQGLFKRYDORUK(i) HQHOFDPSRGHLQGH[DFLyQ.
(QHVWHFDVRHOtQGLFHHVGHQVR
E ,QFOXLUXQD~QLFDHQWUDGDGHtQGLFHSRUFDGDYDORUGLVWLQWRGHOFDPSRGHLQGH[DFLyQ\
SHUPLWLU TXH ODV HQWUDGDV GHO tQGLFH WHQJDQ ORQJLWXG YDULDEOH GH IRUPD TXH FDGD
HQWUDGD GH tQGLFH SXHGD FRQWHQHU YDULRV SXQWHURV <K(i), [P(i1), P(i2)..P(in)]>, GRQGH
FDGD P(ij) DSXQWD DO EORTXH GRQGH HVWp XQR GH ORV n UHJLVWURV FRQ YDORU K(i) HQ HO
FDPSRGHLQGH[DFLyQ
(Q ORV FDVRV D \ E VHUi QHFHVDULR PRGLILFDU HO DOJRULWPR GH E~VTXHGD ELQDULD HQ HO
tQGLFH
F ,QFOXLU XQD ~QLFD HQWUDGD SRU FDGD YDORU GLVWLQWR GHO FDPSR GH LQGH[DFLyQ SHUR ODV
HQWUDGDV VRQ GH ORQJLWXG ILMD $KRUD VH XWLOL]D XQ nivel adicional de indirección
SDUDPDQHMDU³SXQWHURVP~OWLSOHV´
(VGHFLUFDGDHQWUDGDFRQWHQGUiORVYDORUHV<K(i), P(i)>GRQGHP(i)HVXQSXQWHURD
XQEORTXHGHDSXQWDGRUHVDUHJLVWURVFDGD XQR GH ORV FXDOHV DSXQWD D XQ UHJLVWUR
GHO ILFKHUR GH GDWRV FRQ YDORU K(i) HQ HO FDPSR GH LQGH[DFLyQ 6L KD\ PXFKRV
UHJLVWURV FRQ YDORUK(i) \ VH DJRWD HO HVSDFLR HQ HO EORTXH GH DSXQWDGRUHV pVWH VH
HQOD]DFRQXQQXHYREORTXHGHDSXQWDGRUHV
$KRUD OD REWHQFLyQ GH GDWRV QHFHVLWD XQ DFFHVR D EORTXH DGLFLRQDO SXHV KD\ XQ
QLYHOH[WUDSHURORVDOJRULWPRVGHLQVHUFLyQE~VTXHGD\HOLPLQDFLyQVRQVHQFLOORV
9pDVHILJXUD
8QD DOWHUQDWLYD DO XVR GHO QLYHO DGLFLRQDO VHUtD TXH P(i) DSXQWDUD D XQ UHJLVWUR GH
GDWRVFRQYDORUK(i),HOFXDOHVWXYLHUDOLJDGRDOUHVWRGHUHJLVWURVFRQHOPLVPRYDORU
SDUDODFODYHVHFXQGDULDPHGLDQWHXQDOLVWDHQOD]DGDHQHOILFKHURGHGDWRV
/RV tQGLFHV VHFXQGDULRV HQ JHQHUDO UHSUHVHQWDQ XQ ordenamiento lógico GH ORV UHJLVWURV
VHJ~QORVYDORUHVGHOFDPSRGHLQGH[DFLyQ
12
Debido a que el campo apuntador es multivaluado.
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
Ë1',&('(0Ò/7,3/(61,9(/(6
3DUDFRQVWUXLUXQtQGLFHGHHVWHWLSRVHSDUWHGHODH[LVWHQFLDGHXQtQGLFH\DFUHDGRVREUHHO
ILFKHURGHGDWRVHQGLVFRSULQFLSDO
&RQVLGHUDHVWHtQGLFHTXHDKRUDOODPDUHPRVtQGLFHGHSULPHUQLYHORGHQLYHOEDVHFRPRXQ
ILFKHURRUGHQDGRFRQXQYDORUGLVWLQWRSDUDFDGDK(i),GHPRGRTXHHVSRVLEOHFUHDURWURtQGLFH
SULPDULRVREUHGLFKRILFKHUR\pVWHVHUiHOtQGLFHGHVHJXQGRQLYHO
3DUDFUHDUORSRGHPRV XWLOL]DU anclas de bloqueSRUORTXHHOtQGLFH GHVHJXQGRQLYHOWHQGUi
XQDHQWUDGDSRUFDGDEORTXHGHOtQGLFHGHSULPHUQLYHOVHUiQRGHQVR
'HODPLVPDPDQHUDHOWHUFHUQLYHOHVXQtQGLFHSULPDULRVREUHHOGHVHJXQGRQLYHO\WHQGUiXQD
HQWUDGDSRUFDGDEORTXHGHOtQGLFHGHQLYHO9pDVHILJXUD
6yORHVQHFHVDULRFUHDUHOtQGLFHGHXQQLYHOPiV, t+1VLHOtQGLFHDQWHULRUGHQLYHOtQHFHVLWD
PiVGHXQEORTXHGHDOPDFHQDPLHQWRHQGLVFR
$VtSXHGHUHSHWLUVHHVWHSURFHVRKDVWDTXHWRGDVODVHQWUDGDVGHXQQLYHOtGHOtQGLFHTXHSDQ
HQXQ~QLFREORTXH(QHVHPRPHQWRVHKDEUiFRPSOHWDGRHOtQGLFH\HOtQGLFHGHQLYHOtVHUi
HOGHQLYHOVXSHULRU
(VWH HVTXHPD GH P~OWLSOHV QLYHOHV HV ~WLO SDUD FXDOTXLHU WLSR GH tQGLFH SULPDULR GH
DJUXSDPLHQWRRVHFXQGDULRVLHPSUHTXHHOtQGLFHGHSULPHUQLYHO WHQJDYDORUHVGLVWLQWRV SDUD
K(i)\HQWUDGDVGHORQJLWXGILMD
(VWHWLSRGHRUJDQL]DFLyQUHGXFHHOQ~PHURGHEORTXHVOHtGRVDOEXVFDUXQUHJLVWURGDGRVXYDORU
GHO FDPSR GH LQGH[DFLyQ (O SURFHGLPLHQWR GH E~VTXHGD VREUH XQ tQGLFH GH YDULRV QLYHOHV
GHVHFKDHQFDGDSDVRPiVUHJLVWURVTXHODE~VTXHGDELQDULDHQXQtQGLFHGHXQVRORQLYHO
2EVHUYDUTXHHQHOFDVRGHTXHHOtQGLFHGHP~OWLSOHVQLYHOHVIXHUDGHQVRHVGHFLUHOtQGLFHGH
QLYHO EDVH HV GHQVR HV SRVLEOH GHWHUPLQDU VL XQ UHJLVWUR HVWi R QR HQ HO ILFKHUR SULQFLSDO VLQ
QHFHVLGDGGHDFFHGHUDGLFKRILFKHUR¢FyPR"PLHQWUDVTXHVLHOtQGLFHGHP~OWLSOHVQLYHOHVQR
HV GHQVR Vt VHUi QHFHVDULR DFFHGHU DO ILFKHUR SULQFLSDO SDUD SRGHU GHWHUPLQDU VL FRQWLHQH HO
UHJLVWUR
3XHVWR TXH WRGRV ORV QLYHOHV GHO tQGLFH VRQ ILFKHURV RUGHQDGRV ItVLFDPHQWH VXUJHQ ORV
FRQVDELGRV SUREOHPDV GH LQHILFLHQFLD DO UHDOL]DU RSHUDFLRQHV GH LQVHUFLyQ HOLPLQDFLyQ R
PRGLILFDFLyQGHUHJLVWURVGHGDWRVTXHLPSOLTXHQLQVHUFLyQRHOLPLQDFLyQGHHQWUDGDVGHOtQGLFH
(VWRVSUREOHPDVVHUHGXFHQGHMDQGRHVSDFLRHQWRGRVORVEORTXHVGHORVILFKHURVGHtQGLFHSDUD
QXHYDV HQWUDGDV $Vt VXUJHQ ORV índices dinámicos de múltiples niveles TXH VXHOHQ VHU
LPSOHPHQWDGRV FRQ HVWUXFWXUDV GH GDWRV OODPDGDV árboles B \ árboles B+, TXH SHUPLWHQ DO
tQGLFHH[SDQGLUVH\FRQWUDHUVHGLQiPLFDPHQWH
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
Ë1',&(6',1È0,&26'(0Ò/7,3/(61,9(/(6&21%$6((1È5%2/(6%<%
$QWHVGHQDGDUHFRUGHPRVDOJXQRVFRQFHSWRV
8QiUEROHVWiFRPSXHVWRSRUXQFRQMXQWRGHQRGRV
&DGDQRGRVDOYRHOQRGRUDt]WLHQHXQQRGRSDGUH\QLQJXQRRYDULRVQRGRVKLMRV/RVQRGRV
FRQKLMRVVHOODPDQQRGRVLQWHUQRVPLHQWUDVTXHORVTXHQRWLHQHQKLMRVVRQQRGRVKRMD
(OQLYHOGHSURIXQGLGDGGHOQRGRUDt]HV\HOGHXQQRGRFXDOTXLHUDHVHOQLYHOGHOSDGUH
(OVXEiUEROGHXQQRGRHVHVHQRGR\HOFRQMXQWRGHVXVdescendientesVXVKLMRVORVKLMRV
GHVXVKLMRV\DVtVXFHVLYDPHQWHKDVWDOOHJDUDQRGRVKRMD
8QiUEROHVWiHTXLOLEUDGRVLWRGRVVXVQRGRVKRMDHVWiQHQHOPLVPRQLYHOGHSURIXQGLGDG
(OTXHXQiUEROHVWpHTXLOLEUDGRHVXQDVLWXDFLyQGHVHDEOHSXHVJDUDQWL]DTXHQRH[LVWHQQRGRV
HQQLYHOHVPX\DOWRVTXHHQXQDE~VTXHGDQHFHVLWDUtDQPXFKRVDFFHVRVDEORTXHV
ÁRBOL DE BÚSQUEDA
(VXQiUEROJXtDHQODE~VTXHGDGHXQUHJLVWURGDGRHOYDORUGHXQRGHVXVFDPSRV
8QiUEROGHE~VTXHGDGHRUGHQpHVXQiUEROFX\RVQRGRVFXPSOHQ
- &RQWLHQHQXQPi[LPRGHp-1YDORUHV
- &RQWLHQHQFRPRPXFKRpSXQWHURVDQRGRVKLMRV
<FDGDQRGRHVGHODIRUPD3.3.3T.T3T!GRQGHq≤p\
3LHVXQSXQWHURDXQQRGRKLMRRQXOR
.LHVXQYDORUGHE~VTXHGD~QLFRGHQWURGHOiUEROGHE~VTXHGD
<DGHPiVFXPSOHQHVWDVGRVUHVWULFFLRQHV
D (QFDGDQRGRVHFXPSOHTXH...T
E 3DUDWRGRYDORU;GHQWURGHOVXEiUERODOTXHDSXQWD3LVHFXPSOH
.L;.L
SDUD1<i<q
;.L
SDUDi=1
.L;
SDUDL=q
(VWDV GRV UHJODV LQGLFDQ HO SURFHGLPLHQWR GH XQD E~VTXHGD GH XQ UHJLVWUR FRQ YDORU X HQ VX
FDPSRGHLQGH[DFLyQVHJXLUVLHPSUHHOSXQWHUR3LTXHODVFXPSOD
3DUDXVDUORViUEROHVGHE~VTXHGDFRQHOREMHWLYRGHORFDOL]DUUHJLVWURVDOPDFHQDGRVHQILFKHURV
HQGLVFR
• /RVYDORUHVHQORVQRGRVVHUiQORVGHXQRGHORVFDPSRVGHOILFKHURSULQFLSDOHOOODPDGR
FDPSRGHE~VTXHGDLJXDODOFDPSRGHLQGH[DFLyQVLHVXQtQGLFHGHP~OWLSOHVQLYHOHVHO
TXHJXtDODE~VTXHGD&DGDYDORUHVWDUiDVRFLDGRDXQSXQWHURDUHJLVWURRDEORTXH
• &DGD SXQWHUR VHUi XQ DSXQWDGRU DO UHJLVWUR GHO ILFKHUR HQ GLVFR TXH FRQWLHQH HO YDORU
FRUUHVSRQGLHQWH R ELHQ DO EORTXH HQ HO TXH HVWi GLFKR UHJLVWUR R ELHQ D XQ EORTXH GH
SXQWHURVFDGDXQRGHORVFXDOHVDSXQWDUiDXQRGHORVUHJLVWURVFRQLJXDOYDORUHQHOFDPSRGHE~VTXHGD • (OiUEROGHE~VTXHGDVHDOPDFHQDUiWDPELpQHQGLVFR\VHDVLJQDFDGDQRGRGHOiUEROD
XQEORTXHGHOGLVFR
13
Aunque no tiene por qué ser único dentro del fichero de datos
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
/D inserción GH XQ UHJLVWUR GH GDWRV LPSOLFD DFWXDOL]DU HO iUERO GH E~VTXHGD DxDGLHQGR HO
YDORUGHOFDPSRGHOQXHYRUHJLVWUR\XQSXQWHURDpVWH6RQQHFHVDULRVDOJRULWPRVGHLQVHUFLyQ
\ HOLPLQDFLyQ GH YDORUHV HQ HO iUERO TXH QR YLROHQ ODV GRV UHVWULFFLRQHV DQWHULRUHV (VWRV
DOJRULWPRVHQJHQHUDOQRJDUDQWL]DQTXHHOiUEROHVWpHTXLOLEUDGR
/D eliminación GH XQ UHJLVWUR GH GDWRV SXHGH GHMDU DOJXQRV QRGRV GHO iUERO EORTXHV GH
GLVFRFDVLYDFtRVFRQORTXHVHGHVSHUGLFLDUiHVSDFLR\VHDXPHQWDUiHOQ~PHURGHQLYHOHVHQ
HOiUERO
È5%2/%%$/$1&($'2
(VXQiUEROGHE~VTXHGDDOTXHVHOHDxDGHQPiVUHVWULFFLRQHVGHPRGRTXHUHVXHOYHQORVGRV
LQFRQYHQLHQWHVTXHDFDEDPRVGHFLWDU(VWDVUHVWULFFLRQHVDVHJXUDQTXHHVWHWLSRGHiUEROHVHQ
WRGR PRPHQWR HVWp HTXLOLEUDGR \ TXH HO HVSDFLR GHVSHUGLFLDGR SRU HOLPLQDFLRQHV QXQFD HV
GHPDVLDGRSHURDOPLVPRWLHPSRHVWRLPSOLFDTXHORVDOJRULWPRVGHLQVHUFLyQ\HOLPLQDFLyQGH
YDORUHVHQHOiUEROVHDQPiVFRPSOHMRV
I. Árbol B de orden p, utilizado como estructura de acceso según un campo clave para
buscar registros de un fichero de datos
'HILQLFLyQ
&DGDQRGRLQWHUQRHVGHODIRUPD
3.3U!3.3U!3T.T3UT!3T!GRQGHq≤p\
3LHVXQpuntero de árbolDRWURQRGREORTXHGHGLVFRHQILFKHURGHtQGLFH RQXOR
.LHVXQYDORUGHE~VTXHGD
3ULHVXQSXQWHURGHGDWRVDOEORTXHGRQGHHVWiHOUHJLVWURGHGDWRVRDOSURSLRUHJLVWUR
EORTXHGHVSOD]DPLHQWRFX\RYDORUGHOFDPSRFODYHGHE~VTXHGDHV. L
(QFDGDQRGRVHFXPSOHTXH...T
3DUD WRGR YDORU X GHO FDPSR FODYH GH E~VTXHGD HQ HO VXEiUERO DO TXH DSXQWD 3L VH
FXPSOH
.LX.L
SDUD1<i<q
SDUDi=1
X.L
.LX
SDUDi=q
&DGDQRGRFRQWLHQHFRPRPXFKRpDSXQWDGRUHVGHiUERO
&DGDQRGRVDOYRODUDt]\ODVKRMDVWLHQHXQPtQLPRGHp/2SXQWHURVGHiUERO
/DUDt]WLHQHXQPtQLPRGHdosVDOYRVLHVHO~QLFRQRGRGHOiUERO
8QQRGRFRQqSXQWHURVGHiUEROq≤pWLHQHq-1YDORUHVGHOFDPSRFODYHGHE~VTXHGD\
q-1SXQWHURVGHGDWRV
7RGRVORVQRGRVKRMDVXVSXQWHURVGHiUEROVRQWRGRVQXORVHVWiQHQHOPLVPRQLYHOGH
SURIXQGLGDG
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
II. Árbol B de orden p, utilizado como estructura de acceso según un campo NO clave
para buscar registros de un fichero de datos
(QHVWHFDVRORVSXQWHURV3ULDSXQWDQDXQEORTXHROLVWDHQOD]DGDGHEORTXHVGHSXQWHURVD
ORVUHJLVWURVFRQHOPLVPRYDORUHQVXFDPSRGHE~VTXHGD
Inserción en un árbol B.
•
7RGRiUERO%FRPLHQ]DFRQXQ~QLFRQRGRUDt]\KRMDHQHOQLYHO
•
8QD YH] FRPSOHWDGR FRQ p-1 YDORUHV LQVHUWDU XQD QXHYD HQWUDGD LPSOLFD OD
SDUWLFLyQGHOQRGRUDt]HQGRVQRGRVGHQLYHOGHIRUPDTXH
- (OQRGRUDt]TXHGDFRQHOYDORUGHOPHGLRm\GRVSXQWHURVDVXVKLMRV
- /RVYDORUHVPHQRUHVTXHmSDVDQDOQRGRGHODL]TXLHUGD
- /RVYDORUHVVXSHULRUHVDmTXHGDQHQHOQRGRKLMRGHODGHUHFKD
•
6LVHFRPSOHWDXQQRGRQRUDt]\VHGHEHLQVHUWDUXQDQXHYDHQWUDGDHQGLFKRQRGR
pVWHVHGLYLGHHQGRVQRGRVGHVXPLVPRQLYHO
- (OYDORUGHOPHGLRmSDVDDOQRGRSDGUHDVtFRPRORVSXQWHURVDVXVKLMRV
- /RVYDORUHVPHQRUHVTXHmSDVDQDOQRGRGHODL]TXLHUGD
- /RVYDORUHVVXSHULRUHVDmTXHGDQHQHOQRGRKLMRGHODGHUHFKD
6L HO SDGUH WDPELpQ HVWi FRPSOHWR VH GLYLGLUi D VX YH] HQ GRV SURSDJiQGRVH HVWR
KDVWDODUDt]$OGLYLGLUVHHOQRGRUDt]VHFUHDXQQXHYRQLYHOHQHOiUERO
Eliminación en un árbol B.
•
6L OD HOLPLQDFLyQ GH XQ YDORU KDFH TXH XQ QRGR TXHGH RFXSDGR KDVWD PHQRV GH OD
PLWDGVHFRPELQDFRQVXVQRGRVYHFLQRVHOSDGUHRFXSDODSRVLFLyQGHOKLMR\HO
VLJXLHQWHQRGRYHFLQRSDVDDVHUHOQRGRSDGUH
(Explicación más o menos informal) Cuando se elimina una entrada de un nodo que sólo
contiene esa entrada, debe eliminarse ese nodo junto con el puntero que lo apunta desde el
padre; esto conlleva que el valor que lo apuntaba ha de “saltar” de tal nodo padre: para saber
“dónde” hay que colocarlo hay que pensar que ya no está ahí y que hay que insertarlo (seguir
algoritmo de inserción de una nueva entrada). Cuando se elimina una entrada de un nodo con
más entradas, (a) si al eliminar la entrada, no existe “insuficiencia”, pues ‘no pasa nada’, pero (b)
si el nodo queda con menos entradas de la cuenta (insuficiencia), primero se echa mano de algún
nodo hermano con el que fusionar el nodo actual; si no tiene hermanos, se acude al padre (el
valor padre pasa a ocupar la posición del valor eliminado; si no tiene padre, se acude a los nodos
hijos: el último valor del primer hijo pasa a ocupar la posición del eliminado. Cualquiera de
estos cambios puede implicar reestructurar los subárboles, etc.
14
Cada nodo interno debe tener un mínimo de p/2 punteros de árbol
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
ÁRBOL B+
9DULDFLyQGHiUERO%WDPELpQHPSOHDGRSDUDLPSOHPHQWDUtQGLFHVGLQiPLFRVGHP~OWLSOHVQLYHOHV
/D SULQFLSDO GLIHUHQFLD HV TXH HQ ORV iUEROHV % WRGRV ORV YDORUHV GHO FDPSR GH E~VTXHGD
DSDUHFHQHQDOJ~QQLYHOGHOiUEROMXQWRFRQVXVSXQWHURVGHGDWRVFRUUHVSRQGLHQWHVPLHQWUDV
TXHHQORViUEROHV%ORVSXQWHURVGHGDWRVDSDUHFHQVyORHQORVQRGRVKRMD
1RGR+RMD
- 8QDHQWUDGDSRUFDGDYDORUGHOFDPSRGHE~VTXHGDMXQWRFRQXQSXQWHURDOUHJLVWURRDVX
EORTXH HQ GLVFR VL HO FDPSR GH E~VTXHGD HV FODYH R VL QR OR HV D XQ EORTXH GH
DSXQWDGRUHVQLYHOGHLQGLUHFFLyQDGLFLRQDO
- 7RGRV ORV QRGRV KRMD HVWiQ HQOD]DGRV HQWUH Vt SDUD SHUPLWLU HO DFFHVR RUGHQDGR D ORV
UHJLVWURVVHJ~QHOFDPSRGHE~VTXHGD
- (VWUXFWXUDGHXQQRGRKRMD
&DGDQRGRKRMDHVGHODIRUPD
.3U!.3U!.T3UT!3VLJ!
GRQGHq≤p3ULHVXQSXQWHURGHGDWRV\3VLJHVXQSXQWHURDOVLJXLHQWHQRGRKRMD
(QFDGDQRGRKRMDVHFXPSOHTXH...T
&DGD3ULHVXQSXQWHURDGDWRVGHOILFKHURHQGLVFR
ÂDOUHJLVWURFX\RYDORUGHOFDPSRGHE~VTXHGDHV.LR
ÂDOEORTXHTXHFRQWLHQHHOUHJLVWURR
ÂDOEORTXHGHSXQWHURVDORVUHJLVWURVFRQYDORU.LVLHOFDPSRGHE~VTXHGDQRHVFODYH
&DGDQRGRWLHQHXQPtQLPRGHp/2YDORUHV
7RGRVORVQRGRVKRMDHVWiQHQHOPLVPRQLYHO
1RGR,QWHUQR
- $OJXQRVYDORUHVGHOFDPSRGHE~VTXHGDGHORVQRGRVKRMDVHUHSLWHQHQORVQRGRVLQWHUQRV
SDUDJXLDUODVE~VTXHGDV
- (VWUXFWXUDGHXQQRGRLQWHUQR
&DGDQRGRLQWHUQRHVGHODIRUPD
3.3.3T.T3T!q≤p3LXQSXQWHURGHiUERO\.LXQYDORUGHE~VTXHGD
(QFDGDQRGRLQWHUQRVHFXPSOHTXH...T
3DUDWRGRYDORUGHE~VTXHGDX HQHOVXEiUERODOTXHDSXQWD3LVHFXPSOH
.LX ≤.L
SDUD1<i<q
X ≤.L
.LX
SDUDi=1
SDUDi=q
&DGDQRGRFRQWLHQHFRPRPXFKRpDSXQWDGRUHVGHiUERO
&DGDQRGRWLHQHXQPtQLPRGHp/2SXQWHURVGHiUERO/DUDt]WLHQHXQPtQLPRGHGRV
VDOYRVLHVHO~QLFRQRGRGHOiUERO
8QQRGRFRQq SXQWHURVGHiUEROq≤pWLHQHq-1YDORUHVGHOFDPSRFODYHGHE~VTXHGD
- /DVHQWUDGDVGHORVQRGRVLQWHUQRVFRQWLHQHQYDORUHVGHE~VTXHGD\DSXQWDGRUHVGHiUERO
SHUR QR DSXQWDGRUHV GH GDWRV SRU OR TXH FDEHQ PiV HQWUDGDV HQ XQ QRGR LQWHUQR GH XQ
iUERO%TXHHQXQQRGRVLPLODUHQXQiUERO%$VtTXHVLHOWDPDxRGHEORTXHQRGRHVHO
PLVPRHORUGHQpGHXQiUERO%VHUiPD\RUTXHSDUDHOiUERO%FRUUHVSRQGLHQWHHVGHFLU
HOiUERO%WHQGUiPHQRVQLYHOHVFRQORTXHVHUHGXFLUiHOWLHPSRGHE~VTXHGD
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
I. Árbol B+ de orden p, utilizado como estructura de acceso según un campo clave
para buscar registros de un fichero de datos
/RVSXQWHURV3LHQORVQRGRVLQWHUQRVVRQapuntadores de árbolDEORTXHVQRGRVGHiUERO
/RVSXQWHURV3ULHQORVQRGRVKRMDVRQapuntadores de datosDUHJLVWURVREORTXHVGHOILFKHUR
GHGDWRV6DOYR3VLJTXHHVXQpuntero de árbolDOVLJXLHQWHQRGRKRMD
*UDFLDVDHVWHHQFDGHQDPLHQWRGHORVQRGRVKRMDHVSRVLEOHHODFFHVRRUGHQDGRDORVUHJLVWURV
GH GDWRV UHFRUULHQGR ORV QRGRV GH L]TXLHUGD D GHUHFKD PHGLDQWH ORV SXQWHURV 3VLJ 'H HVWD
IRUPDHOtQGLFHSXHGHXWLOL]DUVHWDQWRSDUDSURFHVDPLHQWRVHFXHQFLDOGHUHJLVWURVFRPRSDUD
HODFFHVRGLUHFWRDXQUHJLVWURLQGLYLGXDOGDGRHOYDORUGHOFDPSRGHE~VTXHGD
II. Árbol B+ de orden p, utilizado como estructura de acceso según un campo NO clave
(QHVWHFDVRORVSXQWHURVHQORVQRGRVKRMDV3ULVRQDSXQWDGRUHVDEORTXHVGHSXQWHURVD
ORVUHJLVWURVGHOILFKHURGHGDWRV
3RU VXSXHVWR FDGD QRGR GH XQ iUERO % FRQWLHQH OD LQIRUPDFLyQ QHFHVDULD SDUD OD
LPSOHPHQWDFLyQGHORVDOJRULWPRVGHLQVHUFLyQ\HOLPLQDFLyQGHYDORUHVHQHOiUEROHVGHFLU
Â7LSRGHOQRGRLQWHUQRXKRMD
Â1~PHURGHHQWUDGDVDFWXDOHVq
Â3XQWHURDOQRGRSDGUH\DORVKHUPDQRV
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
15
También sería posible incluir en cada nodo hoja un puntero al nodo anterior (Pant)
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
$/*81$6&216,'(5$&,21(6
ƒ
(QODPD\RUSDUWHGHORVVLVWHPDVFRPHUFLDOHVGH%'HOtQGLFHQRHVSDUWHGHOILFKHURVLQR
TXHHVXQDHVWUXFWXUDGHDFFHVRLQGHSHQGLHQWHTXHVHFUHD\GHVWUX\HGLQiPLFDPHQWH
ƒ
6L VH YD D DFFHGHU FRQ IUHFXHQFLD D XQ ILFKHUR GH GDWRV VHJ~Q FRQGLFLRQHV GH VHOHFFLyQ R
E~VTXHGD FRQ EDVH HQ ORV YDORUHV GH GHWHUPLQDGR FDPSR HV FRQYHQLHQWH FUHDU XQ tQGLFH
VREUHHOPLVPR1RUPDOPHQWHHOVLVWHPDFUHDUiXQtQGLFHVHFXQGDULRSXHV
- (YLWDODRUGHQDFLyQItVLFDGHORVUHJLVWURVGHOILFKHURGHGDWRV
- 3XHGH FUHDUVH XQ tQGLFH VHFXQGDULR FRQ FDVL FXDOTXLHU RUJDQL]DFLyQ GH UHJLVWURV GH
IRUPD TXH VXSRQH XQ FRPSOHPHQWR GH RWURV PpWRGRV SULPDULRV hashing
RUGHQDPLHQWR,QFOXVRSXHGHXVDUVHFRQDUFKLYRVPL[WRV
ƒ
3DUDFUHDUXQtQGLFHVHFXQGDULRLPSOHPHQWDGRFRQXQiUERO%HVQHFHVDULR
([DPLQDUWRGRVORVUHJLVWURVGHOILFKHUR
&UHDUODVHQWUDGDVDQLYHOGHKRMD
2UGHQDUGLFKDVHQWUDGDV\OOHQDUORVQRGRVKRMDFUHDQGRHOUHVWRGHQLYHOHVGHOiUERO
ƒ
(VSRVLEOHXWLOL]DUORVíndices para imponer XQD restricción de claveYDORUHV~QLFRV
VREUHHOFDPSRGHLQGH[DFLyQGHODUFKLYR&DGDYH]TXHVHLQVHUWDXQQXHYRUHJLVWURHQHO
ILFKHUR GHGDWRVSULPHURVH EXVFD HQ HO tQGLFH HO OXJDU GRQGH GHEH VHU LQWURGXFLGR \ DO
PLVPRWLHPSRSXHGHFRPSUREDUVHVLH[LVWH\DXQUHJLVWURHQHOILFKHURFRQHVHPLVPRYDORU
GHOFDPSRGHLQGH[DFLyQHQFX\RFDVRVHUHFKD]DODLQVHUFLyQ
ƒ
8Q fichero totalmente invertido HV DTXHO TXH WLHQH XQ tQGLFH VHFXQGDULR FRQVWUXLGR
VREUHFDGDXQRGHVXVFDPSRV&RPRWRGRVORVtQGLFHVVRQVHFXQGDULRVORVUHJLVWURVQXHYRV
SXHGHQVHULQVHUWDGRVDOILQDOGHOILFKHURGHGDWRVQRHVQHFHVDULRFRQVHUYDUQLQJ~QRUGHQ
ItVLFRSRUORTXHpVWHSXHGHVHUXQILFKHURQRRUGHQDGR
ƒ
8QILFKHURWLHQHXQDorganización secuencialindexadaVLHOILFKHURHVWiRUGHQDGRSRU
XQ FDPSR FODYH \ WLHQH XQ tQGLFH SULPDULR GH P~OWLSOHV QLYHOHV EDVDGR HQ GLFKD FODYH GH
RUGHQDPLHQWR (VWR SHUPLWH HO DFFHVR D ORV UHJLVWURV GHO ILFKHUR WDQWR GH IRUPD VHFXHQFLDO
FRPRGLUHFWD
16
17
Ver “especificación de índices en SQL”, en el anexo A
Implementado mediante un árbol B+
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
$1(;2$Especificación de índices en SQL estándar.
'HELGRDTXHORVtQGLFHVVRQFDPLQRVItVLFRVGHDFFHVRDORVGDWRV\QRFRQFHSWRVOyJLFRVQRVH
LQFOX\HURQHQ64/ODVLQVWUXFFLRQHVSDUDFUHDU\HOLPLQDUtQGLFHV
6LQ HPEDUJR YHUVLRQHV DQWHULRUHV GH 64/ \ PXFKRV 6*%' DFWXDOHV Vt FXHQWDQ FRQ GLFKDV
LQVWUXFFLRQHVGHFUHDFLyQ\HOLPLQDFLyQGHtQGLFHV
(QODVSULPHUDVYHUVLRQHVGH64/ODSDUWH''/data definition languageQRLQFOX\HFOiXVXODV
SDUD GHILQLU restricciones de clave QL GH integridad referencial HQ OD LQVWUXFFLyQ CREATE
TABLE. (Q SDUWLFXODU QR GLVSRQtD GH ODV FOiXVXODV PRIMARY KEY R UNIQUE SRU OR TXH SDUD
HVSHFLILFDU XQD restricción de clave HUD QHFHVDULR FUHDU XQ tQGLFH OODPDGR índice único
GHELGRDTXHSUHFLVDPHQWHVHXWLOL]DSDUDDVHJXUDUODQRUHSHWLFLyQGHYDORUHVGHVXFDPSRGH
LQGH[DFLyQ
(Q OD YHUVLyQ 64/ HVWH WLSR GH UHVWULFFLyQ GH LQWHJULGDG VH LPSRQH LQFOX\HQGR OD FOiXVXOD
35,0$5<.(<R81,48(HQODGHILQLFLyQGHODWULEXWR(VWRLPSOLFDODGHILQLFLyQDXWRPiWLFDSRU
SDUWHGHOVLVWHPDGHXQtQGLFH~QLFRVREUHGLFKRDWULEXWR
(QODPD\RUSDUWHGHORV6%'UHODFLRQDOHVXQILFKHURFRUUHVSRQGHDXQDUHODFLyQWDEODEDVH
XQtQGLFHVHFRQVWUX\HVREUHXQDUHODFLyQEDVHVHJ~QORVYDORUHVGHXQRGHORVDWULEXWRVGHOD
UHODFLyQDWULEXWRGHLQGH[DFLyQ
(QORV6*%'UHODFLRQDOHVORVtQGLFHVSXHGHQFUHDUVH\HOLPLQDUVHGHIRUPDGLQiPLFDVLQDIHFWDU
DODUHODFLyQVREUHODTXHKDQVLGRFRQVWUXLGRV
/D H[LVWHQFLD GH XQ tQGLFH VREUH XQ DWULEXWR LQFUHPHQWD OD YHORFLGDG GH ODV FRQVXOWDV HQ FX\D
FRQGLFLyQGHVHOHFFLyQGHUHXQLyQVHHVSHFLILFDXQYDORUSDUDWDODWULEXWR
3RURWURODGRFDGDtQGLFHFRQVWUXLGRSDUDXQDWULEXWRGHXQDUHODFLyQKDFHTXHODVLQVHUFLRQHV
ERUUDGRV\DFWXDOL]DFLRQHVGHODUHODFLyQFRQVXPDQPiVWLHPSR\VHDQPiVFRPSOHMDV
3DUDFUHDUXQtQGLFHVREUHHODWULEXWRgeneroGHODUHODFLyQPELICULAVHXWLOL]DUtDODVHQWHQFLD
CREATE INDEX INDICE_GENERO_PELICULA
ON PELICULA(genero);
(VSRVLEOHLQGLFDUDOVLVWHPDVLVHGHVHDTXHODVHQWUDGDVGHOtQGLFHHVWpQHQRUGHQDVFHQGHQWH
ASC,RSFLyQSRUGHIHFWRRGHVFHQGHQWHDESCVHJ~QORVYDORUHVGHODWULEXWRGHLQGH[DFLyQ
7DPELpQSXHGHFUHDUVHXQtQGLFHVREUHODFRPELQDFLyQGHYDULRVDWULEXWRV
CREATE INDEX INDICE_NOMBRES_DIRECTOR
ON DIRECTOR(apellido1 ASC, apellido2 ASC, nombre DESC);
64/RIUHFHGRVRSFLRQHVDGLFLRQDOHVDOFUHDUtQGLFHV
3DUDLPSRQHUXQDrestricción de claveVREUHHODWULEXWRGHLQGH[DFLyQPHGLDQWHXQtQGLFH
HVQHFHVDULRFUHDUORLQGLFDQGRTXHHODWULEXWRGHLQGH[DFLyQKDGHFRQWHQHUYDORUHV~QLFRV
XWLOL]DQGRODFOiXVXODUNIQUE
CREATE UNIQUE INDEX
ON DIRECTOR(nif);
INDICE_NIF_DIRECTOR
6LVHLQWHQWDFUHDUHVWHtQGLFHVREUHXQDWDEODEDVHFX\DVWXSODVQRFXPSODQTXHHOYDORUGH
nifVHD~QLFRHOVLVWHPDQRFUHDUiHOtQGLFH
'HHVWDIRUPDHVPiVHILFLHQWHLPSRQHUODXQLFLGDGGHORVYDORUHVGHXQDWULEXWRTXHVLQR
H[LVWLHUD HO tQGLFH VREUH HO PLVPR ¢3RU TXp" ¢4Xp KDUi HO VLVWHPD VL QR H[LVWH tQGLFH SDUD
FRPSUREDUODXQLFLGDGGHORVYDORUHVGHXQDWULEXWR"
18
La unicidad de un atributo es un concepto lógico, ligado a la definición de la tabla donde está el
atributo, y conviene separarlo de cuestiones de almacenamiento físico.
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
64/SHUPLWHFUHDUíndices de agrupamientoFRQODFOiXVXODCLUSTERJUXSR
'HHVWHPRGRHOVLVWHPDDOPDFHQDUiHQHOILFKHURGHGDWRVORVUHJLVWURVRUGHQDGRVVHJ~Q
HOYDORUGHOFDPSRGHLQGH[DFLyQ\FRQVWUXLUiXQtQGLFHVREUHGLFKRDWULEXWR/DVVHQWHQFLDV
'0/ TXH LQFOX\HQ GLFKR DWULEXWR HQ OD FRQGLFLyQ GH UHXQLyQ R GH VHOHFFLyQ VRQ PiV
HILFLHQWHV
3DUD FRQVHJXLU TXH ODV WXSODV UHJLVWURV GH SHOtFXODV HVWpQ LQGH[DGRV \ DJUXSDGRV
ItVLFDPHQWHHQHOILFKHURGHGDWRVSRUGLUHFWRUFUHDUHPRVHVWHtQGLFH
CREATE INDEX INDICE_DIRECTOR_PELICULA
ON PELICULA(director)
CLUSTER;
8QDUHODFLyQEDVHSXHGHWHQHU
9 8QRRQLQJ~QtQGLFHGHDJUXSDPLHQWR
9 &XDOTXLHUQ~PHURGHtQGLFHVQRGHDJUXSDPLHQWR
3DUD HYLWDU FRQIXVLRQHV OD VLJXLHQWH WDEOD HVWDEOHFH OD FRUUHVSRQGHQFLD H[LVWHQWH HQWUH ORV
FRQFHSWRVGH64/HVWiQGDU\ORVHVWXGLDGRVHQODWHRUtDGHHVWHWHPD
SQL
índice de agrupamiento único
índice de agrupamiento no único
índice no de agrupamiento
Teoría
índice primario
índice de agrupamiento
índice secundario
3DUDGHVWUXLUXQtQGLFHVHXWLOL]DODVHQWHQFLDDROPFRQYLHQHHOLPLQDUXQtQGLFHFXDQGR\DQR
VHYDQDUHDOL]DUFRQVXOWDVHQODVTXHLQWHUYLHQHXQDWULEXWRLQGH[DGR\DVtHYLWDUHOFRVWHGHO
PDQWHQLPLHQWRGHOtQGLFH\DSURYHFKDUHOHVSDFLRTXHRFXSDHQGLVFR
DROP INDEX
INDICE_DIRECTOR_PELICULA;
&DGD 6*%' LPSOHPHQWD ORV tQGLFHV XWLOL]DQGR VX SURSLD WpFQLFD SRU HMHPSOR SXHGH XWLOL]DU
iUEROHV % R % FRPR 2UDFOH R ELHQ XWLOL]DU HVWUXFWXUDV GH DOPDFHQDPLHQWR EDVDGDV HQ
GLVSHUVLyQHWF
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
Algunas notas sobre los índices en Oracle
(Q2UDFOHVHUHFRPLHQGDFUHDUXQtQGLFH
9 FXDQGRODWDEODFRQWLHQHJUDQFDQWLGDGGHGDWRVRFXSDPXFKRHVSDFLR
9 VREUHFROXPQDVTXHVXHOHQDSDUHFHU
ƒ HQFOiXVXODVWHEREFRQXQDFRPSDUDFLyQGHigualdadRGHmenorRmayor que
ƒ HQjoinsGHYDULDVWDEODVHVGHFLUFROXPQDVTXHVXHOHQVHUDWULEXWRVGHUHXQLyQ
HQHVWRVFDVRVHO6*%'12XWLOL]DHOtQGLFHFXDQGRODFRQVXOWD
ƒ QRLQFOX\HWHERE
ƒ FRQWLHQHGROUP BY\RDISTINCT
ƒ PRGLILFDXQDFROXPQDLQGH[DGDPHGLDQWHXQDIXQFLyQSUBSTR, ||
\HO6*%'6ËSXHGHXWLOL]DUHOtQGLFHVLODFRQVXOWD
ƒ FRQWLHQHORDER BY
ƒ DSOLFDODVIXQFLRQHVMIN\RMAXVREUHXQD~QLFDFROXPQD
9 VREUHFROXPQDVFRQJUDQYDULHGDGHQVXVYDORUHVSXHVHOtQGLFHVXSRQGUiXQDPD\RU
GLVFULPLQDFLyQHQODVE~VTXHGDV
3RUHMHPSORQRFRQYHQGUtDFUHDUXQtQGLFHVREUHXQDFROXPQDes_valido FX\RVYDORUHV
VyORSXHGHQVHU (SI, NO).6tFRQYHQGUtDKDFHUORVREUHXQDFROXPQDcod_postal.
(QHOFDVRGHTXHODFODYHDEDUTXHPiVGHXQDFROXPQDHVFRQYHQLHQWHGHILQLUHOtQGLFH
SRQLHQGR ODV FROXPQDV HQ RUGHQ GH mayor a menor variedad HQ VXV YDORUHV < VL
WLHQHQvariedadSDUHFLGDSRQLHQGRSULPHURODVFROXPQDVDFFHGLGDVPiVDPHQXGR
(VLQWHUHVDQWHKDFHUQRWDUTXHHQ12H[LVWHHQWUDGDHQHOtQGLFH2UDFOHSDUDXQDILODTXHWHQJD
XQYDORU18//HQODFROXPQDRDWULEXWRGHLQGH[DFLyQ6LHOtQGLFHHVWiFRQVWUXLGRVREUHYDULDV
FROXPQDVQRH[LVWHHQWUDGDSDUDXQDWXSODFRQDOJXQDGHHVWDVFROXPQDVFRQYDORU18//
3DUDPiVLQIRUPDFLyQDFHUFDGHORVtQGLFHVHQ2UDFOHSXHGHDFXGLUVHDORVPDQXDOHVGH
UHIHUHQFLDGH
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
$1(;2%Clusters en Oracle
3RU~OWLPR\SDUDHYLWDUFRQIXVLRQHVGDUHPRVXQDSHTXHxDLQWURGXFFLyQDXQPpWRGRRSFLRQDO
SDUDDOPDFHQDUGDWRVGHOTXHKDEOD2UDFOHODHVWUXFWXUDGHGDWRVOODPDGDcluster
8Q FOXVWHU HV XQ JUXSR GH XQD R PiV WDEODV DOPDFHQDGDV MXQWDV ItVLFDPHQWH GHELGR D TXH
FRQWLHQHQ LQIRUPDFLyQ FRP~Q /RV ILFKHURV GH HVWH WLSR VRQ ORV TXH KDVWD DKRUD KHPRV
GHQRPLQDGRficheros mixtos8QHMHPSORVHUtDXQILFKHURHQHOTXHVHDOPDFHQDUDQUHJLVWURV
GHHPSOHDGRV\GHORVGHSDUWDPHQWRVDORVTXHpVWRVSHUWHQHFHQ
1RUPDOPHQWH VH FRQVWUX\H XQ FOXVWHU SDUD WDEODV TXH a) HVWiQ UHODFLRQDGDV HQWUH Vt PHGLDQWH
XQD R PiV FROXPQDV FRPXQHV D GLFKDV WDEODV SRU HMHPSOR (03 \ '(37 FRPSDUWHQ HO FDPSR
deptno –número de departamento \ b) FRQ PXFKD IUHFXHQFLD ODV WDEODV VRQ UHIHUHQFLDGDV
FRQMXQWDPHQWHHVGHFLUHQFRQVXOWDVTXHLQFOX\HQODreunión GHODVPLVPDV
/D FROXPQD R FRQMXQWR GH FROXPQDV TXH WLHQHQ HQ FRP~Q ODV WDEODV HQ XQ FOXVWHU IRUPDQ OD
clave del clustercluster key(QQXHVWURHMHPSORdeptnoHVODFODYHGHOFOXVWHU
(O TXH DPEDV WDEODV HVWpQ DOPDFHQDGDV HQ HO PLVPR ILFKHUR LQFUHPHQWD OD HILFLHQFLD GH ODV
FRQVXOWDV TXH LQFOX\HQ OD reunión GH ODV WDEODV TXH IRUPDQ HO FOXVWHU SXHVWR TXH ODV WXSODV
UHODFLRQDGDVHVWiQItVLFDPHQWHDG\DFHQWHV
2WUDYHQWDMD HVTXHGHELGRDTXHORV GDWRVHQXQDFODYHGHO FOXVWHU ORV YDORUHV GHO deptno
VyOR VH DOPDFHQDQ XQD YH] SDUD ODV WDEODV TXH OR IRUPDQ ORV FOXVWHUV SHUPLWHQ DOPDFHQDU XQ
FRQMXQWR GH WDEODV DSURYHFKDQGR PiV HO HVSDFLR TXH VL ODV WDEODV HVWXYLHUDQ DOPDFHQDGDV GH
IRUPDLQGLYLGXDOVLQFOXVWHU
2UDFOHLQGLFDTXHVHGHEHFUHDUXQtQGLFHVREUHHOFOXVWHUGHIRUPDPDQXDOXQDYH]FUHDGRHO
FOXVWHUGHWDEODV/ROODPDíndice de cluster (cluster index)SXHVHVWiFUHDGRVREUHODFODYHGHO
FOXVWHU\FRQWLHQHXQDHQWUDGDSRUFDGDYDORUGHGLFKDFODYHGHFOXVWHU
3DUDORFDOL]DUFLHUWDILODHQXQFOXVWHUVHXWLOL]DHOtQGLFHGHFOXVWHUSDUDHQFRQWUDUHOYDORUGHOD
FODYHGHFOXVWHUTXHDSXQWDDOEORTXHGHGDWRVDVRFLDGRDWDOYDORU3RUWDQWR2UDFOHDFFHGHD
XQDILODGHOFOXVWHUFRQXQPtQLPRGHGRVRSHUDFLRQHVGH(6VHUiQPiVGHGRV
(OtQGLFHFOXVWHUGHEHVHUFUHDGRFRQ CREATE INDEX VREUHODFODYHGHFOXVWHUDQWHVGHSRGHU
HMHFXWDUFXDOTXLHUVHQWHQFLD'0/LQFOX\HQGRINSERT\SELECTVREUHODVWDEODVHQHOFOXVWHU
3RUWDQWRQRHVSRVLEOHLQWURGXFLUGDWRVHQXQDWDEODGHFOXVWHUKDVWDTXHQRVHKD\DFUHDGRHO
tQGLFHFOXVWHU
'LIHUHQFLDVHQWUHXQíndice de tabla\XQíndice de cluster
• /DVFODYHVTXHVRQNULLVtWLHQHQXQDHQWUDGDHQHOtQGLFHFOXVWHU
• /DVHQWUDGDVGHOtQGLFHDSXQWDQDOSULPHUEORTXHHQODFDGHQDSDUDXQYDORUGHFODYHGHFOXVWHUGDGR
• 8QtQGLFHFOXVWHUFRQWLHQHXQDHQWUDGDSRUYDORUGHFODYHGHFOXVWHUHQYH]GHXQDHQWUDGDSRUILODGH
FOXVWHU
• /DDXVHQFLDGHXQtQGLFHGHWDEODQRDIHFWDDORVXVXDULRVSHURORVGDWRVHQXQFOXVWHUQRSXHGHQVHU
DFFHGLGRVDPHQRVTXHH[LVWDXQtQGLFHGHFOXVWHU6LVHGHVWUX\HXQtQGLFHGHFOXVWHUORVGDWRVHQHO
FOXVWHUSHUPDQHFHQSHURVHUiQLQDFFHVLEOHVKDVWDTXHVHDFUHDGRXQQXHYRtQGLFHGHFOXVWHU
3DUD PiV LQIRUPDFLyQ DFHUFD GH ORV FOXVWHUV HQ 2UDFOH SXHGH DFXGLUVH D ORV PDQXDOHV GH
UHIHUHQFLDGH
19
3DUDFDGDFROXPQDHVSHFLILFDGDDOFUHDUHO FOXVWHUFRPRSDUWHGHOD FODYHGHFOXVWHUFDGDWDEODLQFOXLGDHQHO
FOXVWHUGHEHWHQHUXQDFROXPQDTXHVHFRUUHVSRQGDHQWDPDxR\WLSRFRQGLFKDFROXPQDHQODFODYHGH FOXVWHU
20
9pDVHODILJXUDGHODSiJLQDVLJXLHQWH
©%DVHVGH'DWRVª&XUVR
(VWUXFWXUDVGH$OPDFHQDPLHQWR\0pWRGRVGH$FFHVR
&RPRHMHPSORVHPXHVWUDQODVWDEODVEMP\DEPTTXHFRPSDUWHQODFROXPQDdeptnoHVSRU
WDQWRODFODYHGHOFOXVWHU(QODILJXUDVLJXLHQWHDSDUHFHQODVGRVSRVLELOLGDGHVELHQFUHDUXQ
FOXVWHUSDUDDPEDVWDEODVRELHQDOPDFHQDUFDGDXQDSRUVHSDUDGR
(Q FDVR GH FUHDU XQ FOXVWHU 2UDFOH DOPDFHQD HQ ORV PLVPRV EORTXHV GH GDWRV OD ILOD GH FDGD
GHSDUWDPHQWR \ ODV GH ORV HPSOHDGRV TXH SHUWHQHFHQ D pVWH 2EVpUYHVH TXH ORV YDORUHV GH OD
FODYHGHFOXVWHUdeptnoVyORVHDOPDFHQDQXQDYH]SDUDODVGRVWDEODV
Nota: aunque en el dibujo aparezca así, las tuplas de departamento dentro del cluster no tienen
por qué estar en orden según los valores del atributo deptno; las tuplas de empleados
correspondientes a cada departamento tampoco tienen por qué estar almacenadas en orden
según los valores del atributo empno.
(DEPTNO)
©%DVHVGH'DWRVª&XUVR
Descargar