INTRODUCCIÓN El espacio en disco es fundamental en las bases de datos para almacenar grandes cantidades de datos de forma permanente. Algunas de las razones por las cuales se almacenan las bases de datos en memorias secundarias es por el gran tamao de las bases de datos para ser guardadas en la memoria principal. Otra de las causas para utilizar la memoria secundaria es por!ue suele ser m"s barata !ue la memoria primaria. #as bit"coras tienen una principal funci$n !ue es recuperar informaci$n ante incidentes de seguridad% etc. Una de las &enta'as de crear particiones en una base de datos es a causa de !ue me'ora el rendimiento ( simplifica el mantenimiento. Un segmento es un con'unto de e)tensiones !ue contiene todos los datos para un espacio de tabla dentro de una estructura de almacenamiento l$gico.
1
*. Configuraci$n ( administraci$n del espacio en disco *.+ Estructuras l$gicas de almacenamiento. *.+.+ Definici$n de espacio de Almacenamiento. #as bases de datos suelen ser creadas para almacenar grandes cantidades de datos de forma permanente. ,or lo general% los datos almacenados en -stas suelen ser consultados ( actualizados constantemente. #a ma(ora de las bases de datos se almacenan en las llamadas memorias secundarias% especialmente discos duros% aun!ue% en principio% pueden emplearse tambi-n discos $pticos% memorias flas/% etc. #as razones por las cuales las bases de datos se almacenan en memorias secundarias son0
En general% las bases de datos son demasiado grandes para entrar en la memoria principal. #a memoria secundaria suele ser m"s barata !ue la memoria primaria 1aun!ue esta 2ltima tiene ma(or &elocidad3. #a memoria secundaria es m"s 2til para el almacenamiento de datos permanentemente% puesto !ue la memoria primaria es &ol"til.
En cuanto al respaldo de las bases de datos% suelen emplearse tanto discos duros% como cintas magn-ticas% discos $pticos o similares. #as t-cnicas empleadas para almacenar bases de datos son sumamente importantes para la &elocidad de acceso ( recuperaci$n de datos. #as t-cnicas dependen del tipo de almacenamiento% el uso !ue se le da o se le dar" a la base de datos% la estructura de la misma% el 456D empleado% etc. Esta dependencia no significa necesariamente !ue /a(a !ue cambiar la estructura de la base de datos si se cambian las t-cnicas empleadas. #as t-cnicas de almacenamiento son independientes de la base de datos% pero% de todas maneras% las me'ores t-cnicas muc/as &eces pueden determinarse &iendo la estructura de la base de datos% entre otras caractersticas. #os encargados de elegir estas t-cnicas son los diseadores ( administradores de bases de datos% ( dependen tambi-n de las capacidades del 456D. En general% el 456D ofrece diferentes opciones ( t-cnicas para organizar los datos. #a idea es !ue los encargados de la base de datos encuentren las t-cnicas id$neas% o sea% a!uellas !ue permitan la ma(or &elocidad posible de acceso a los 2
datos. Una mala decisi$n en esta "rea puede resultar en una menor &elocidad de acceso a la base de datos% o en un uso e)cesi&o del espacio de almacenamiento% o incluso% puede aumentar la &elocidad de consulta de una base de datos% pero disminuir la &elocidad de actualizaci$n de la misma.
*.+.7 Definici$n ( creaci$n del espacio asignado para cada base de datos. #as bases de datos se almacenan en fic/eros o arc/i&os. E)isten diferentes formas de organizaciones primarias de arc/i&os !ue determinan la forma en !ue los registros de un arc/i&o se colocan fsicamente en el disco (% por lo tanto% c$mo se accede a -stos. #as distintas formas de organizaciones primarias de arc/i&os son0 +. Arc/i&os de montculos 1o no ordenados30 esta t-cnica coloca los registros en el disco sin un orden especfico% aadiendo nue&os registros al final del arc/i&o. 7. Arc/i&os ordenados 1o secuenciales30 mantiene el orden de los registros con respecto a alg2n &alor de alg2n campo 1cla&e de ordenaci$n3. *. Arc/i&os de direccionamiento calculado0 utilizan una funci$n de direccionamiento calculado aplicada a un campo especfico para determinar la colocaci$n de los registros de disco. 8. Arboles 60 se &ale de la estructura de "rbol para las colocaciones de registros. E)iste una segunda forma de acceder a los datos llamada organizaci$n secundaria o estructura de acceso au)iliar. Estas permiten !ue los accesos a los registros de un arc/i&o basado en campos alternati&os% sean m"s eficientes !ue los !ue /an sido utilizados para la organizaci$n primaria de arc/i&os. El D694 asigna espacio de almacenamiento a las bases de datos cuando los usuarios introducen create database o alter database. El primero de los comandos puede especificar uno o m"s dispositi&os de base de datos% 'unto con la cantidad de espacio en cada uno de ellos !ue ser" asignado a la nue&a base de datos.
3
4i se utiliza la palabra cla&e default o se omite completamente la cl"usula on % el D694 pone la base de datos en uno o m"s de los dispositi&os predeterminados de base de datos especificados en master..s(sde&ices ,ara especificar un tamao 1en este e'emplo% 8963 para una base de datos !ue se &a a almacenar en una ubicaci$n predeterminada% utilice on default : size de esta forma0 create database newpubs on default = 4
,ara situar la base de datos en dispositi&os especficos% d- el nombre del dispositi&o o dispositi&os en !ue desea almacenarla. Como la sinta)is indica% puede solicitar !ue se almacene en m"s de un dispositi&o de base de datos% con una cantidad de espacio diferente en cada uno. Todos los dispositi&os mencionados en create database deben estar enumerados en s(sde&ices . En otras palabras% deben /aberse inicializado con dis; init . #a instrucci$n siguiente crea la base de datos ne
A menos !ue cree una base de datos pe!uea o !ue no sea crucial% sit2e siempre el diario en un dispositi&o de base de datos aparte. 4i la cantidad de espacio solicitada a un dispositi&o especfico de base de datos no est" disponible% el D694 crea la base de datos con tanto espacio como sea posible en cada dispositi&o ( muestra un mensa'e informando el espacio asignado en cada uno. 1Esto no se considera un error.3 4i /a( menos espacio del mnimo necesario para una base de datos en el dispositi&o especificado 1o en el predeterminado% si no se especifica un nombre3% el comando create database falla.
*.+.* 6it"coras. Una bit"cora es una /erramienta !ue permite registrar% analizar% detectar ( notificar e&entos !ue sucedan en cual!uier sistema de informaci$n utilizado en las organizaciones. #a principal importancia de una bit"cora es recuperar informaci$n ante incidentes de seguridad% detecci$n de comportamiento inusual% informaci$n para resol&er problemas% e&idencia legal% etc. #a estructura m"s ampliamente usada para grabar las modificaciones de la base de datos es la 6it"cora.
4
Cada registro de la bit"cora escribe una 2nica escritura de base de datos ( tiene lo siguiente0 +. Nombre de la transacci$n0 Nombre de la transacci$n !ue realiz$ la operaci$n de escritura. 7. Nombre del dato0 El nombre 2nico del dato escrito. *. =alor antiguo0 El &alor del dato antes de la escritura. 8. =alor nue&o0 El &alor !ue tendr" el dato despu-s de la escritura. E)isten otros registros de bit"cora especiales para grabar sucesos importantes durante el proceso de transacciones tales como0 > T+% inicio ? > T+% )% &+% &7 ? > T+% commit ? Es fundamental !ue siempre se cree un registro en la bit"cora cuando se realice una escritura antes de !ue se modifi!ue la base de datos. Tambi-n tenemos la posibilidad de des/acer una modificaci$n !ue (a se /a escrito en la base de datos% esto se realizar" usando el campo del &alor antiguo de los registros de la bit"cora. #os registros de la bit"cora deben residir en memoria estable como resultado el &olumen de datos en la bit"cora puede ser e)ageradamente grande. •
E'emplo e implementaci$n de bit"cora de base de datos en lengua'e de programaci$n en 4@# ser&er.
CREATE TABLE [dbo].[Bitacora] ( [BitacoraID] [int] IDENTITY (1, 1) NOT NULL , [EvntT!"] [c#ar] (1$) NOT NULL , [%tat&'] [int] NOT NULL , [EvntIno] [varc#ar] (1) NOT NULL , [U'&ario] [varc#ar] (*) NOT NULL , [+c#a] ['a--datti] NOT NULL ) ON [RI/ARY] 0O ALTER TABLE [dbo].[Bitacora] IT2 NOC2EC3 ADD CON%TRAINT [D+4Bitacora4U'&ario] DE+AULT ('&'r4'na()) +OR [U'&ario],
5
CON%TRAINT [D+4Bitacora4+c#a] DE+AULT (5tdat()) +OR [+c#a] Y, "or otro -ado, - tri55r n -a tab-a -o rinir6a d -a 'i5&int anra7 89 Tri55r d /onitoro 98 CREATE TRI00ER tri54tab-abitacora ON TABLA +OR DELETE, IN%ERT, UDATE A% BE0IN DECLARE :NU/ERO INT IN%ERT INTO Bitacora (EvntT!",%tat&',EvntIno) ;c '"4;c&t'<- N=DBCC INUTBU++ER( :i )=, N=:i int=, :i>::'"id END
*.+.8 ,articiones. #as particiones les permiten descomponer tablas mu( grandes ( los ndices en partes m"s pe!ueas ( mane'ables llamadas particiones. Cada partici$n es un ob'eto independiente con su propio nombre (% opcionalmente% sus propias caractersticas de almacenamiento. #a creaci$n de particiones en una base de datos me'ora el rendimiento ( simplifica el mantenimiento. Al di&idir una tabla grande en tablas indi&iduales m"s pe!ueas% las consultas !ue tengan acceso 2nicamente a una parte de los datos pueden e'ecutarse con ma(or rapidez% (a !ue deben recorrer menos datos. #as tareas de mantenimiento 1por e'emplo% &ol&er a generar los ndices o /acer copias de seguridad de una tabla3% pueden e'ecutarse con ma(or rapidez.
4e puede conseguir la creaci$n de particiones sin di&idir las tablas si las tablas se colocan fsicamente en unidades de disco indi&iduales. #a colocaci$n de una tabla en una unidad fsica ( de las tablas relacionadas en una unidad independiente puede me'orar el rendimiento de las consultas% debido a !ue% cuando se e'ecutan consultas !ue implican combinaciones entre las tablas% &arios encabezados de discos leen los datos al mismo tiempo. 4e pueden utilizar grupos de arc/i&os de 4@# 4er&er para especificar los discos en los !ue se colocar"n las tablas.
6
•
,articiones de /ard
#a creaci$n de particiones de /ard
•
=arios procesadores !ue permiten m2ltiples subprocesos de operaciones% lo !ue permite !ue muc/as consultas se e'ecuten al mismo tiempo. Opcionalmente% una sola consulta puede e'ecutarse m"s r"pidamente en &arios procesadores% (a !ue permiten la e'ecuci$n simult"nea de los componentes de la consulta. ,or e'emplo% distintos subprocesos pueden recorrer al mismo tiempo cada una de las tablas a las !ue /ace referencia la consulta. Dispositi&os RAID 1matriz redundante de discos independientes3 !ue permiten crear bandas de datos a tra&-s de &arias unidades de disco% para obtener un acceso m"s r"pido a los datos% (a !ue /a( m"s cabezales de lectura ( escritura !ue leen los datos al mismo tiempo. Normalmente% se puede recorrer m"s r"pidamente una tabla separada en bandas a tra&-s de &arias unidades !ue la misma tabla almacenada en una sola unidad. De forma alternati&a% almacenar tablas en unidades independientes desde las tablas relacionadas puede me'orar de forma significati&a el rendimiento de las consultas !ue combinan esas tablas.
•
•
•
Crear particiones /orizontales
#a creaci$n de particiones /orizontales di&ide una tabla en &arias tablas. As% cada tabla contiene el mismo n2mero de columnas% pero menos filas. ,or e'emplo% se podra crear una partici$n /orizontal de una tabla !ue contenga mil millones de filas en +7 tablas cada una de las tablas m"s pe!ueas representara un mes de datos de un ao especfico. #as consultas !ue re!uieran datos de un mes especfico s$lo /acen referencia a la tabla apropiada. #a determinaci$n del modo de crear particiones /orizontales de las tablas depende de c$mo se analicen los datos. Debera crear particiones de tablas de forma !ue las consultas /agan referencia al menor n2mero posible de tablas. De lo contrario% un n2mero e)cesi&o de consultas UNION% utilizadas para mezclar las tablas de forma l$gica en el momento de la consulta% podra afectar al rendimiento. ,ara obtener m"s informaci$n acerca de c$mo consultar tablas con particiones /orizontales. Es com2n crear particiones /orizontales de datos basadas en la edad ( el uso. ,or e'emplo% una tabla puede contener datos de los 2ltimos cinco aos% pero normalmente s$lo se obtiene acceso a los datos del ao actual. 7
En este caso% puede considerar la posibilidad de crear particiones de datos en cinco tablas% cada una de las cuales contendr" s$lo los datos de un ao.
Crear particiones &erticales
#a creaci$n de particiones &erticales di&ide una tabla en &arias tablas !ue contienen menos columnas. #os dos tipos de particiones &erticales son la normalizaci$n ( la di&isi$n de filas0 •
•
•
#a normalizaci$n es el proceso est"ndar de bases de datos !ue consiste en !uitar columnas redundantes de una tabla ( colocarlas en tablas secundarias &inculadas a la tabla principal mediante relaciones de cla&e principal ( cla&e e)terna.
#a di&isi$n de filas di&ide &erticalmente la tabla original en tablas con menos columnas. Cada fila l$gica de una tabla di&idida coincide con la misma fila l$gica en las dem"s tablas% seg2n se identifica en la columna UNI@UE BE !ue es id-ntica en todas las tablas con particiones. ,or e'emplo% al combinar la fila con el Id. +7 de cada tabla di&idida se &uel&e a crear la fila original.
Igual !ue las particiones /orizontales% las particiones &erticales permiten a las consultas recorrer menos datos. De ese modo se aumenta el rendimiento de las consultas. ,or e'emplo% una tabla !ue contenga siete columnas de las cuales generalmente s$lo se /ace referencia a las cuatro primeras% puede beneficiarse de la di&isi$n de las tres 2ltimas columnas en una tabla independiente.
#a creaci$n de particiones &erticales se debe considerar detenidamente% (a !ue analizar datos de &arias particiones re!uiere consultas !ue combinen las tablas. #a partici$n &ertical tambi-n puede afectar al rendimiento si las particiones son mu( grandes.
*.+. Espacios pri&ados. 8
Un espacio pri&ado permite !ue los administradores ( redactores gestionen el con'unto de datos del sitio. Algunas bases de datos tienen estos espacios pri&ados llamados com2nmente paneles de control% !ue son formularios !ue aparecen al abrir la base de datos. #os paneles de control sir&en de Fpuerta principalF o FrecibidorF de una base de datos en el sentido de !ue dirigen a las personas /acia determinadas tareas% como introducir o buscar datos. 4ir&en tambi-n para mantener ale'ados a los usuarios de las tablas !ue contienen los datos en tiempo real. Cuando reciba una base de datos% debe adentrarse m"s all" del panel de control para a&eriguar c$mo est"n estructurados los datos% pero merece la pena ec/ar un &istazo inicial al panel de control. #e puede ofrecer alg2n indicio sobre las tareas !ue el diseador de la base de datos consider$ !ue realizaran los usuarios /abitualmente con los datos.
*.+.G Espacios para ob'etos. #os D694 se basan en arc/i&os para almacenar datos% ( estos arc/i&os% o con'untos de datos% residen en medios de almacenamiento% o dispositi&os. Una buena parte del traba'o del D6A implicar" la planificaci$n para el almacenamiento real de la base de datos.
Algunas tecnologas de almacenamiento son m"s adecuadas !ue otras. 4in embargo% la naturaleza mec"nica de la unidad de disco los /ace m"s &ulnerables al fracaso de los componentes de otro e!uipo. Adem"s% las formas en !ue las unidades de disco son utilizados por las bases de datos pueden /acer !ue la gesti$n del almacenamiento impredecibles% como la barra lateral F9odern D694 de uso de discoH ,uede usarse RAID para me'orar la seguridad de los datos.
El rendimiento de la base de datos depende de la entrada ( salida a disco. #a cantidad de datos almacenados es ma(or !ue nunca antes% ( los datos se almacenados por m"s tiempo.
Algunos D694 permiten al tamao de los arc/i&os temporales de e)pandirse ( contraerse de forma autom"tica. Dependiendo del tipo ( la naturaleza de las operaciones de base de datos en proceso% esta fluctuaci$n puede pro&ocar picos de uso del disco. 9
El crecimiento de la capacidad de almacenamiento aumenta a2n m"s la comple'idad de la gesti$n de datos ( bases de datos. 9uc/as organizaciones est"n implementando nue&as tecnologas de almacenamiento% tales como almacenamiento en red 1NA43 ( redes de "rea de almacenamiento 14AN3% para a(udar a controlar la cantidad cada &ez ma(or de almacenamiento necesario para los usos modernos. #a gesti$n del almacenamiento en el entorno din"mico de /o( es una tarea difcil D6A.
a( muc/os problemas de almacenamiento !ue deben ser resueltos antes de !ue un D6A pueda crear una base de datos. Uno de los temas m"s importantes es la cantidad de espacio para permitir la base de datos. El c"lculo espacial debe tener en cuenta no s$lo tablas% ndices% sino tambi-n% ( dependiendo del D694% el registro de transacciones. Cada una de estas entidades probablemente re!uerir" un arc/i&o separado o con'unto de datos% para el almacenamiento persistente.
El D6A debe separar en diferentes discos a los arc/i&os para0
9e'orar el rendimiento
4eparar ndices de datos
Aislar los logros en otro disco
*.7. 4egmentos. Un segmento es un con'unto de e)tensiones !ue contiene todos los datos para un espacio de tabla dentro de una estructura de almacenamiento l$gico ,or e'emplo% 6ase de Datos de Oracle asigna una o m"s e)tensiones para formar el segmento de datos para una tabla. #a base de datos tambi-n asigna una o m"s e)tensiones para formar el segmento de ndice de una tabla. 10
4egmentos de usuarios
Un segmento de datos indi&idual en una base de datos almacena los datos para un ob'eto de usuario a( diferentes tipos de segmentos. E'emplos de segmentos de usuarios inclu(en0 J Tabla% tabla de particiones% o cl2ster mesa J ,artici$n #O6 #O6 o J ,artici$n de ndice o un ndice
Cada ob'eto sin particiones ( partici$n ob'eto se almacena en su propio segmento. ,or e'emplo% si un ndice tiene cinco particiones% luego cinco segmentos contener los datos de ndice.
*.*. 9emoria Compartida.
Configurar la memoria manualmente
4i prefiere e'ercer un control m"s directo sobre el tamao de los componentes indi&iduales de memoria% puede desacti&ar la gesti$n autom"tica de memoria ( configurar la base de datos para la gesti$n de la memoria manual. a( dos m-todos de gesti$n de memoria manuales diferentes para el 45A% ( dos para la instancia ,5A. #os dos m-todos de gesti$n de memoria manual del 45A &aran en la cantidad de esfuerzo ( conocimientos re!ueridos por el D6A. Con una gesti$n autom"tica de memoria compartida% se establece ob'eti&o ( tamaos m")imos para el 45A. #a base de datos a continuaci$n% establece el tamao total de la 45A a su destino designado% ( optimiza de manera din"mica los tamaos de muc/os componentes 45A. Con la gesti$n de la memoria compartida manual% a'usta el tamao de &arios componentes indi&iduales 45A% determinando as el tamao total 45A. A continuaci$n% a'ustar manualmente estos componentes 45A de forma permanente. ,ara la instancia ,5A% es la gesti$n de memoria ,5A autom"tico% en el !ue 11
establece un tamao final de la instancia ,5A. #a base de datos a continuaci$n% establece el tamao de la instancia de ,5A a su ob'eti&o% ( optimiza de manera din"mica los tamaos de ,5A indi&iduales. E)iste tambi-n la gesti$n de memoria ,5A manual% en el !ue establece el tamao m")imo del "rea de traba'o para cada tipo de operador 4@# 1tal como una especie o de /as/K'oin3. Este m-todo de gesti$n de memoria% aun!ue compatible% no se recomienda. #as siguientes secciones proporcionan informaci$n sobre todos estos m-todos de gesti$n de memoria manuales0 • • •
Utilizaci$n de la gesti$n autom"tica de memoria compartida Utilizaci$n de la gesti$n de memoria compartida 9anual Utilizaci$n de la gesti$n de memoria autom"tica ,5A
*.8. Instancias m2ltiples 4e llama instancia m2ltiple al /ec/o de poder e'ecutar un programa m"s de una &ez al mismo tiempo. a( programas !ue no admiten m"s !ue una sola instancia% es decir !ue si (a se est" e'ecutando% por m"s !ue lo cli!uees de nue&o en el icono o en el men2 no aparecer" un nue&o e'emplar del programa. Con las bases de datos se complica un poco por!ue si un usuario modifica un registro !ue otro usuario tiene tambi-n abierto% la modificaci$n !ue se /aga en una instancia debe refle'arse de inmediato 1actualizarse3 en cual!uier otra instancia abierta de la misma base de datos.
4in embargo% en las bases de datos se puede seleccionar la opci$n en el diseo de la 6D% ( se refle'ar"n de inmediato las modificaciones en todas las instancias abiertas.
12