Sie sind auf Seite 1von 12

Temario de oposiciones

INFORMTICA
Alexandre Dapena Mora
Jose Luis Villanueva de Matos
Eladio Rial Nez
Temario de oposiciones de
INFORMTICA
Alexandre Dapena Mora
Jose Luis Villanueva de Matos
Eladio Rial Nez
ltima edicin 2016
Autores: Alexandre Dapena Mora, Jose Luis Villanueva de Matos y Eladio Rial Nez
Maquetacin: Educlia Editorial
Edita: Educlia Editorial
Imprime: SERVICECOM
ISBN: 978-84-16663-78-1
Depsito legal: En curso
Printed in Spain/Impreso en Espaa.
Todos los derechos reservados. No est permitida la reimpresin de ninguna parte de este libro,
ni de imgenes ni de texto, ni tampoco su reproduccin, ni utilizacin, en cualquier forma o por
cualquier medio, bien sea electrnico, mecnico o de otro modo, tanto conocida como los que
puedan inventarse, incluyendo el fotocopiado o grabacin, ni est permitido almacenarlo en un
sistema de informacin y recuperacin, sin el permiso anticipado y por escrito del editor.

Alguna de las imgenes que incluye este libro son reproducciones que se han realizado
acogindose al derecho de cita que aparece en el artculo 32 de la Ley 22/18987, del 11 de
noviembre, de la Propiedad intelectual. Educlia Editorial agradece a todas las instituciones, tanto
pblicas como privadas, citadas en estas pginas, su colaboracin y pide disculpas por la posible
omisin involuntaria de algunas de ellas.

Educlia Editorial
Avda de les Jacarandes 2 loft 327 46100 Burjassot-Valncia
Tel. 960 624 309 - 963 768 542 - 610 900 111
Email: educaliaeditorial@e-ducalia.com
www.e-ducalia.com
TEMA 43
Administracin de sistemas de bases de datos.

1. Introduccin
2. Instalacin
2.1. Creacin de la base de datos
3. Gestin de usuarios y seguridad
4. Administracin
4.1. Monitorizacin
4.2. Gestin de espacio
4.3. Copias de seguridad
4.4. Distribucin de los datos
5. Optimizacin
5.1. Optimizacin del entorno
5.2. Optimizacin de objetos de BD
5.3. Optimizacin de consultas
5.4. Herramientas particulares de algunos SGBDs

1. INTRODUCCIN
Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el alma-
cenamiento, modificacin y extraccin de la informacin en una base de datos, adems de propor-
cionar herramientas para explotar, gestionar y administrar las bases de datos.
La figura del administrador de la base de datos (DBA) ser la responsable de asegurar el acceso
a los datos de manera ptima, para lo cual tendr que llevar a cabo una serie de tareas:
- Eleccin del SGBD idneo e instalacin del SGBD y de las bases de datos:
o Disear la arquitectura y desplegar los sistemas gestores de bases de datos
o Crear, dar soporte y gestionar las bases de datos corporativas
- Explotacin del SGBD:
o Arrancar y parar las BDs
o Asegurar la disponibilidad de los datos
o Asegurar la integridad de la informacin
o Hacer copias de seguridad peridicas de los datos y mantenerlos a salvo de la destruccin
accidental o intencional
o Disear un plan de recuperacin para que cuando se presenten los problemas, los datos
se pueden restaurar rpidamente.
- Administracin:
o Colaborar con el administrador del SO en la gestin de los archivos de almacenamiento y
gestin del espacio en disco ocupado.

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 4 Tel. 963 768 542 - 960 624 309 - 610 900 111
o Establecer estndares de uso, polticas de acceso y buenas prcticas de diseo de bases
de datos.
- Gestin de usuarios y seguridad:
o Crear y mantener las cuentas de usuarios y permisos
o Establecer auditoras del sistema para detectar anomalas, intentos de violacin de la se-
guridad, accesos inadecuados, etc
- Optimizacin:
o Optimizar el SGBD, los objetos de base de datos y las consultas ms habituales.

2. INSTALACIN
El primer paso para la puesta en produccin de una base de datos es la instalacin del gestor de
bases de datos. El proceso de instalacin depender en gran medida el producto de que se trate y del
sistema operativo sobre el que se realizar la instalacin. La prctica totalidad de sistemas de bases
de datos actuales tienen una arquitectura de cliente-servidor y proveen de sus propias herramientas y
asistentes para realizar la instalacin tanto del servidor como del cliente, y establecer la conexin entre
ellos.
Los componentes bsicos de la instalacin son los siguientes:
- Motor del SGBD
- Herramientas de administracin del SGBD
- Aplicaciones de comunicacin
- Consola interactiva o herramientas de desarrollo para el acceso a las BDs
Antes de proceder a la instalacin del SGBD ser necesario tomar varias decisiones como:
- Tipo de sistema de bases de datos: actualmente existen tres tipos fundamentales de sistemas
de bases de datos: sistemas orientados a objetos (especficos para aplicaciones basadas en el
paradigma de la OO), relacionales (bases de datos SQL habituales) y bases de datos noSQL. Los
sistemas noSQL tienen como objetivo solventar uno de los problemas fundamentales de los SGBDs
relacionales: la escalabilidad. No requieren por lo general esquemas fijos, evitan las operaciones
join almacenando datos desnormalizados y estn diseadas para escalar horizontalmente. Son los
sistemas ms adecuados para almacenamiento y procesamiento de big data.
- Ubicacin de la BD: si ser una BD centralizada (con un nico nodo encargado de procesar todas
las peticiones de los usuarios) o distribuida (con varios nodos independientes, de forma que cada
uno de ellos puede funcionar de forma autnoma). A su vez, una BD centralizada puede imple-
mentarse en una sola mquina fsica o por medio de un clster de servidores, de forma que aun-
que lgicamente se vea como un solo sistema, sea posible balancear la carga entre los distintos
servidores de la red.

2.1. CREACIN DE LA BASE DE DATOS


Una vez instalado el SGBD ser necesario crear las bases de datos donde se almacenar la in-
formacin. Existen numerosos parmetros que se pueden modificar para que el rendimiento de la BD
sea ptimo. Estos parmetros dependern del SGBDs en cuestin que aloje la base de datos, pero hay
varios tipos de parmetros comunes:
- Idioma: idioma de los datos, mapa de caracteres utilizado,..
- Gestin de memoria: Para cada BD activa el SGBD reserva una zona de memoria donde se alma-
cenarn los procesos del servidor que se ejecutan los procesos de la BD, y una zona especfica
de memoria para cada usuario conectado a la BD (con sus reas de E/S y comunicacin con el
SGBD). El tamao de cada una de estas zonas de memoria se determina por medio de parme-
tros de configuracin de la BD.
- Gestin de ficheros: ficheros de logs, de control, de datos, temporales, de redo,...

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 5 Tel. 963 768 542 - 960 624 309 - 610 900 111
- Utilizacin de la BD: hay varios parmetros que dependern del uso que se vaya a hacer de esa
base de datos: si sern bases de datos transaccionales (OLTP) o de Data warehouse (OLAP). Las
arquitecturas de ambos sistemas son completamente diferentes, por lo que hay diversos parme-
tros que ser necesario adaptar en funcin de la arquitectura utilizada: el tamao por defecto del
bloque de datos, el tamao del segmento temporal, el tipo de optimizador (existe un optimizador
especfico para la arquitectura en estrella de los entornos OLAP), el modo del optimizador (para
que priorice la minimizacin de E/S al disco o el coste de CPU), ...
- Parmetros de restriccin: destinados a aplicar lmites o cuotas para evitar la acaparacin de re-
cursos por parte de un usuario o limitar el nmero de procesos simultneos que se ejecutan sobre
la BD.
La creacin de las bases de datos y todos sus objetos asociados (esquemas, tablas, vistas, sin-
nimos, restricciones, enlaces de bases de datos, ...) pueden llevarse a cabo por medio del lenguaje
de definicin de datos (DDL), pero habitualmente los SGBDs ya proveen sus propias herramientas con
interfaz grfica para facilitar esta labor.

3. GESTIN DE USUARIOS Y SEGURIDAD


La mayora de los SGBD instalados en entornos de produccin son sistemas multiusuario, por lo
que es necesario llevar a cabo una gestin del acceso a la informacin para garantizar la confiden-
cialidad de los datos.
El lenguaje SQL tiene un sublenguaje denominado DCL (lenguaje de control de datos) que permi-
te gestionar los recursos que se asignan. Los comandos principales de este lenguaje son grant, para
asignar permisos y revoke para quitarlos.
Existen varias opciones a considerar a la hora de definir una poltica de permisos de acceso:
1. Usuarios, roles y perfiles: Una base de datos puede tener un nmero muy elevado de usuarios con
distintos permisos y restricciones, lo que complica el mantenimiento y gestin de sus permisos de
accesos. Para simplificar esta labor existen los roles y perfiles, que permiten gestionar permisos y
restricciones de forma conjunta para varios usuarios. Cada rol se correspondera con un conjunto
de permisos, y cada perfil con una serie de restricciones, de forma que en lugar de asignar los
permisos y restricciones a los usuarios directamente, los permisos se asignaran a un rol y las restric-
ciones a un perfil, y a cada usuario se le asignara el rol y perfil que correspondiese a su tipo de
usuario.
Por medio de los roles no solamente se puede controlar el acceso de los usuarios a la informacin
de la BD sino que tambin se puede controlar las operaciones que puede realizar ese usuario con-
tra la BD (crear objetos, modificar la informacin, reasignar permisos, etc).
2. Tablas, sinnimos y vistas: A la hora de asignar permisos a los usuarios o roles existen varias opcio-
nes:
o Asignar los permisos directamente sobre las tablas de la base de datos: de forma que los
usuarios podran acceder directamente a las tablas a las que tengan permiso o bien por
medio de sinnimos a esas tablas (lo que facilitara la monitorizacin y auditora).
o Crear una vista especfica para cada usuario o rol y asignar permisos sobre las vistas. Esta es
la opcin propuesta en la arquitectura ANSI-SPARC de base de datos, de forma que para
cada usuario o rol se creara un esquema externo y los permisos se asignaran a las vistas
del esquema externo de cada usuario o rol. Esta opcin es ms potente que la anterior ya
que no solamente permite gestionar a qu tablas accede cada usuario sino que la propia
definicin de la vista puede incluir restricciones por filas y por columnas.
3. Auditora: algunos SGBDs permiten automatizar la auditora de acceso a determinados datos, de
modo que es posible conocer quin y cundo accede a la base de datos, qu acciones realiza
y sobre qu objetos. Esta informacin se almacena en tablas del sistema, por lo que hay que pre-
ver algn plan de gestin de histrico y limitar el nmero de columnas auditadas. Adems, llevar
control de la auditora implica una carga adicional para el sistema (cada operacin implica la
insercin de al menos un registro en la tabla de auditora), por lo que es necesario alcanzar un

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 6 Tel. 963 768 542 - 960 624 309 - 610 900 111
compromiso entre seguridad y rendimiento. La auditora es muy til para implementar requisitos de
la LOPD (control de acceso a datos personales), ya que permite delegar en el SGBD el registro de
todos los accesos y las operaciones llevadas a cabo sobre los datos auditados.
4. Cifrado de la informacin: otra de las utilidades que ofrecen los SGBD es la posibilidad de cifrar y
descifrar automticamente la informacin almacenada (columnas e incluso tablas enteras). Este
cifrado puede realizarse a varios niveles: a nivel de autenticacin de usuario, cifrado de las comu-
nicaciones, cifrado de los ficheros fsicos donde se almacena la informacin e incluso de los bac-
kups generados. La aplicacin de algoritmos de cifrado y descifrado de datos en cada acceso a
la informacin implica una carga adicional para el sistema, por lo que no se recomienda abusar
de esta posibilidad y normalmente se reserva a datos especialmente crticos.
5. Gestin de recursos: Otra de las herramientas que proveen algunos SGBDs es la posibilidad de
gestionar los recursos del sistema: reservando recursos, limitando la disponibilidad de recursos o
impidiendo el paralelismo a grupos de usuarios determinados. Estas herramientas hacen uso del
diccionario de datos para indicar a qu grupo consumidor pertenece cada usuario y qu limita-
ciones de recursos tiene cada grupo, por lo que facilita la consulta y control de esta informacin.

4. ADMINISTRACIN
4.1. MONTORIZACIN
Una de las herramientas que suelen proporcionar los SGBDs actuales es el monitor del rendimiento
del servidor. Por medio de esta herramienta es posible consultar el uso que el sistema hace de los recur-
sos (CPU, memoria, red, disco, ...), y prevenir posibles problemas en el sistema. Algunas de las posibilida-
des que ofrece el monitor del SGBD son las siguientes:
- Deteccin de bloqueos: De forma general podramos decir que cuando un usuario comienza
una operacin de modificacin de datos sobre una tabla, sta se bloquea, y cualquier peticin
de modificacin de otro usuario quedara bloqueada en espera de la finalizacin de esta mo-
dificacin, pudiendo dar lugar a interbloqueos u otras situaciones indeseadas. Por medio de la
monitorizacin del SGBD es posible comprobar si se estn produciendo bloqueos en un momento
dado o incluso consultar si se producen habitualmente para tratar de evitarlos (algunos bloqueos
pueden evitarse particionando la tabla, dividiendo su contenido en varios ficheros, modificando
el espacio libre en los bloques de ndices o modificando parmetros del SGBD).
- Deteccin de procesos que acaparen recursos: en caso de que un proceso acapare recursos (de
disco, CPU, etc) penalizando el rendimiento general del SGBD, es posible detectar esta situacin
y en caso de que pueda comprometer el correcto funcionamiento del sistema incluso se puede
finalizar ese proceso.
- Optimizar consultas: otra de las posibilidades que ofrece el monitor del SGBD es comprobar el
consumo de recursos producido al lanzar una consulta, por lo que de cara a la optimizacin de
consultas es muy til para comprobar el impacto de una reescritura de la consulta, un cambio en
el optimizador, el impacto de la creacin de un ndice, etc.
- Auditora: la auditora de un SGBD permite registrar todas las operaciones que se lleven a cabo so-
bre un campo concreto de la base de datos, indicando el autor, la fecha, la operacin realizada,
etc. El administrador nicamente tendra que indicar qu campo es susceptible de ser auditado y
el SGBD se encargara de todo el procesamiento.

4.2. GESTIN DE ESPACIO


La gestin del almacenamiento fsico de los datos tiene como objetivo disminuir los tiempos de
respuesta de la BD, minimizar el espacio de almacenamiento, evitar reorganizaciones (habitualmente
muy costosas) y, en definitiva, optimizar los recursos del sistema.
Existen varias tareas relativas a la gestin y administracin del espacio ocupado por la base de
datos que debe llevar a cabo el DBA:

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 7 Tel. 963 768 542 - 960 624 309 - 610 900 111
1. Distribucin de datos: la correcta distribucin de los datos entre los ficheros que conforman la
base de datos puede incrementar considerablemente el rendimiento. Hay varias directrices que
conviene tener en cuenta para optimizar el uso de los recursos y el paralelismo:
o Dividir las tablas grandes en varios ficheros, tantos como CPUs tenga el servidor (para optimi-
zar el paralelismo), y de un tamao similar entre ellos (para evitar que unos se llenen antes
que otros).
o Separar los ficheros de datos, de ndices y temporales (de forma que mientras se escanea el
ndice se pueden ir buscando los datos en la tabla y almacenndolos en el temporal).
o En tablas particionadas, separar las particiones en diferentes ficheros, de forma que puedan
ser accedidas en paralelo cuando se consultan varias particiones
2. Gestin de almacenamiento: otra de las decisiones importantes a tomar con respecto a cmo se
realizar el almacenamiento de la BD ser la posibilidad de implementar algn sistema de control
de redundancia y tolerancia a fallos (sistemas RAID). Estos sistemas se basan en la replicacin de
la informacin en varios discos de forma que si se produce algn problema en uno de los discos
el sistema podra continuar funcionando sin problema. Existen varios niveles de RAID en base al
nmero de rplicas utilizadas y al modo en que se distribuye la informacin a travs de los discos.
Estas tcnicas son muy apropiadas para asegurar la disponibilidad de la informacin, pero su cos-
te es muy elevado, ya que implican multiplicar el espacio en disco necesario, que suele ser caro,
por lo que es necesario buscar un equilibrio entre seguridad de los datos y coste.
3. Planificar capacidad: las bases de datos son sistemas muy dinmicos en los que se insertan datos
continuamente. Deben existir por tanto una planificacin del espacio que ocupar cada base de
datos y una poltica de incremento y mantenimiento del mismo.
4. Gestionar histrico: generalmente en una base de datos los datos ms crticos y ms accedidos
son los datos ms actuales, y a medida que pasa el tiempo esos datos dejan de ser tan relevan-
tes. Estos datos histricos suponen un problema, porque incrementan el tamao de las tablas
(haciendo ms lento el acceso incluso para los datos actuales) y porque el coste del disco de alto
rendimiento en una base de datos es muy alto. Para solucionar ambos problemas lo que se suele
hacer es definir una poltica de paso a histrico, de forma que los datos con determinada antige-
dad se pasan a un disco de menor rendimiento (y por tanto ms barato), y as se evita tambin el
sobredimensionamiento innecesario de las tablas.
5. Compresin de tablas / particiones: una posibilidad que ofrecen los sistemas gestores de bases de
datos para optimizar el espacio ocupado por las tablas es comprimirlas (bien una tabla completa
o una particin de la misma). De esta manera se reduce considerablemente el tamao de las ta-
blas e incluso se incrementa el rendimiento de las consultas, aunque penaliza las modificaciones
y borrados y dificulta el mantenimiento, ya que al comprimir una tabla o particin es necesario
reconstruir todos sus ndices.

4.3. COPIAS DE SEGURIDAD


Una de los requisitos fundamentales de los SGBD es garantizar la disponibilidad de la informacin
y la recuperacin ante fallos, por lo que casi todos ellos incorporan herramientas que permiten efectuar
copias de los contenidos de una BD. Estas copias de seguridad pueden realizarse exportando los datos
de todas las tablas o de tablas especficas (bien en forma de sentencias SQL de creacin de tablas
e insercin de datos o bien en ficheros binarios con un formato especfico). Uno de los problemas de
exportar la informacin es que normalmente cuando se exporta una tabla sta se bloquea, por lo que
el sistema dejara de estar disponible mientras se realiza la copia. Normalmente se suele parar la BD
antes de hacer la copia, pero esto no es posible en sistemas 24x7, por lo que en estos casos es nece-
sario implementar algn proceso de copia ms complejo que permita realizar los backups en caliente,
como la copia en espejo (mirroring) o los BCVs, que permiten realizar una copia de la BD que puede
ser actualizada sencuencialmente por medio de los cuadernos de bitcora (archivos donde se van re-
gistrando de forma secuencial todas las operaciones que se lanzan contra la BD de forma que puedan
ser replicadas en una copia de la BD para llegar al mismo estado actual).

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 8 Tel. 963 768 542 - 960 624 309 - 610 900 111
4.4. DISTRIBUCIN DE LOS DATOS
Una de las decisiones ms importantes que el diseador de bases de datos distribuidas debe to-
mar es la distribucin de los datos en el sistema. Existen distintas soluciones posibles:
- Centralizada: Es muy similar al modelo de Cliente/Servidor en el sentido que la BDD est centra-
lizada en un lugar y los usuarios estn distribuidos. Este modelo solo tiene la ventaja de tener el
procesamiento distribuido ya que en sentido de disponibilidad y fiabilidad de los datos no se gana
nada.
- Replicadas: En una BD replicada cada nodo debe tener su copia completa de la base de da-
tos. Este esquema tiene un alto costo de almacenamiento de la informacin. Debido a que la
actualizacin de los datos debe ser realizada en todas las copias, tambin tiene un alto costo de
escritura, pero todo esto vale la pena si tenemos un sistema en el que se va a escribir pocas veces
y leer muchas, y dnde la disponibilidad y fiabilidad de los datos sea de mxima importancia.
- Particionadas: En este modelo solo habr una copia de cada elemento, pero la informacin es-
tara distribuida a travs de los nodos. En cada nodo se aloja uno o ms fragmentos disjuntos de
la base de datos. Como los fragmentos no se replican esto disminuye el costo de almacenamien-
to, pero tambin sacrifica la disponibilidad y fiabilidad de los datos. Algo que se debe tomar en
cuenta cuando se desea implementar este modelo es la granularidad de la fragmentacin. La
fragmentacin se puede realizar tambin de tres formas:
- Horizontal: Los fragmentos son subconjuntos de una tabla
- Vertical: Los fragmentos son subconjuntos de los atributos con sus valores
- Mixto: Se aplican fragmentacin horizontal y vertical.
Una ventaja significativa de este esquema es que las consultas (SQL) tambin se fragmentan
por lo que su procesamiento es en paralelo y ms eficiente, pero tambin se sacrifica en casos
que involucren varios fragmentos de la BDD.
Para que una fragmentacin sea correcta, sta debe ser completa, reconstruible y todos los
fragmentos deben ser disjuntos.
- Hbridas: Este esquema representa la combinacin del esquema de particin y replicacin. Se
particiona la relacin y a la vez los fragmentos estn selectivamente replicados a travs del siste-
ma de BDD.

5. OPTIMIZACIN
Los lenguajes de consulta basados en el lgebra relacional son no procedimentales, ya que el
usuario dice el resultado que quiere obtener, pero no especifica cmo conseguirlo. Esto presenta una
gran ventaja para el usuario, pero delega en el sistema la toma de estas decisiones, lo que limita nota-
blemente la capacidad del usuario para asegurar que los datos se recuperan de forma ptima.
Existen, sin embargo, varias tareas que se pueden llevar a cabo para ayudar al sistema a tomar
las decisiones correctas.

5.1. OPTIMIZACIN DEL ENTORNO


Antes de centrarse en la optimizacin del servidor de bases de datos, es conveniente comprobar
que el entorno (sistema operativo, red, etc) donde est instalado ese servidor es el ms adecuado.
1. Optimizacin del SO: existen comandos de sistema operativo (como prfmon de Windows o systat
de Linux) que contienen numerosas mtricas (accesos a disco, uso de CPU, etc) que permiten
monitorizar el rendimiento del sistema operativo, y tambin de las aplicaciones instaladas, por lo
que pueden utilizarse para monitorizar el rendimiento del SGBD.
2. Optimizacin de red: en un servidor con varios procesadores y varias tarjetas de red, es posible de-
finir afinidades entre una tarjeta de red y un procesador, de forma que las peticiones que lleguen
por cada tarjeta se asignaran a una CPU distinta, y se minimizaran los bloqueos entre CPUs por
comparticin de recursos.

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 9 Tel. 963 768 542 - 960 624 309 - 610 900 111
5.2. OPTIMIZACIN DE OBJETOS DE BD
1. Estructura interna de las tablas: internamente, las tablas se organizan en bloques o pginas. Cuan-
do se inserta una fila en una tabla, se busca un bloque con espacio libre y se inserta ah la informa-
cin. Si no quedan bloques libres, se crea uno nuevo. Existen tres tipos de problemas relacionados
con esta estructuracin interna de las tablas:
o Migrated rows: se producen cuando hacemos una modificacin en los datos de una fila que
provoca que no quepa en el bloque donde estaba almacenada, por lo que se divide el
contenido de la fila y en el bloque actual se guarda un puntero al bloque donde se guar-
dar el resto de la fila. Puntualmente se puede solucionar compactando la tabla o movin-
dola, pero para solucionarlo definitivamente es necesario revisar el tamao del bloque y el
espacio libre reservado en cada bloque.
o Chained rows: se producen cuando es habitual que una fila ocupe ms de un bloque, por
lo que para consultar una fila completa de una tabla son necesarios dos accesos. Se solu-
ciona modificando el tamao de bloque de la tabla.
o Fragmentacin: se produce al eliminar registros de una tabla de forma masiva, lo que provo-
ca que queden huecos en los bloques que estn desperdiciando espacio. Se soluciona
compactando la tabla o movindola.
2. Fragmentacin de ndices: existen dos tipos de fragmentacin de ndices:
o Fragmentacin externa: se produce en ndices con estructura de rbol cuando las ramas
del rbol quedan desniveladas debido a la realizacin de modificaciones sobre las colum-
nas del ndice y borrados de filas.
o Fragmentacin interna se produce cuando en los bloques del ndice queda espacio infrau-
tilizado o estn mal organizados. La fragmentacin se puede solucionar reconstruyendo el
ndice, reorganizndolo (solo para la interna) o compactndolo (solo para la externa).
3. Tablas con estructura de ndice: en tablas con una o dos columnas que no vayan a tener una
gran variacin en sus datos, es posible estructurar la tabla como si fuese un ndice, de forma que
se minimiza el tiempo de acceso a los datos y se evitar tener que crear ndices adicionales.
4. Particionamiento: el particionamiento de una tabla o ndice consiste en dividir sta en varios seg-
mentos (llamados particiones), de forma que se evita procesar toda la tabla cuando se accede a
datos de un segmento concreto, y permite optimizar el acceso en paralelo a los datos de distintas
particiones.
5. Paralelizacin de las tablas: es posible paralelizar el acceso a las tablas y tambin parametrizar el
grado de paralelismo deseado para cada tabla.

5.3. OPTIMIZACIN DE CONSULTAS


Los SGBDs proporcionan varias herramientas orientadas a optimizar el rendimiento de las consultas:
1. Diseo de las tablas y eleccin de tipos: el diseo adecuado de tablas y vistas puede afectar
sustancialmente a las prestaciones. La correcta eleccin de los tipos de datos redundar en una
menor ocupacin de espacio y evitar conversiones de tipos de datos innecesarias, lo cual tam-
bin incrementar el rendimiento.
2. Campos calculados: los campos calculados obligan al sistema a realizar numerosas operaciones
durante su consulta, lo que puede afectar al rendimiento del sistema. Una forma de evitarlo sera
incorporar estos campos a la base de datos, calculndolos en el momento que se insertan, de
forma que se evitaran todas estas operaciones al realizar las consultas.
3. Desnormalizacin: hay ocasiones en que cuando se consultan los datos de una tabla lo habitual
es hacerlo en combinacin con los datos de otra tabla que los complementan. Para evitar tener
que recuperar los datos siempre por medio de un JOIN, una opcin es desnormalizar, que con-
siste en romper la 3FN (o FNBC) al insertar atributos de una tabla en otra tabla o crear una tabla
como el resultado de la unin de otras tablas. En ambos casos esto implica incorporar informacin

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 10 Tel. 963 768 542 - 960 624 309 - 610 900 111
redundante,aparte de hacer que la implementacin sea ms compleja y reducir la flexibilidad,
por lo que estas redundancias deben estar controladas.
4. Monitor de consultas: el monitor de consultas permite realizar una traza de todas las operaciones
realizadas sobre el SGBDs para localizar las operaciones ms frecuentes y determinar qu consul-
tas se realizan de forma ms habitual sobre la BD, que sern las consultas sobre las que se deber
centrar la tarea de optimizacin.
5. Planes de ejecucin: el primer paso para optimizar una consulta es revisar el plan de ejecucin
de la misma para comprobar cmo se est accediendo a las tablas (en qu orden, cmo es el
acceso, qu ndices se usan...). Para mejorar los resultados de un plan de ejecucin existen varias
opciones:
o Actualizar las estadsticas: los planes de ejecucin se basan en las estadsticas de las tablas,
por lo que si stas no se actualizan frecuentemente es posible que los planes utilizados sean
incorrectos.
o Reescribir la consulta: hay varias modificaciones que se pueden realizar sobre las consultas
para que sus resultados sean mejores (sustituir un OR por un UNION, un IN por un EXISTS, ...).
Estas transformaciones tienen como fin simplificar y reducir el tamao de las tablas que inter-
vienen en la consulta antes de realizar las combinaciones (JOIN), de forma que se obtenga
el mismo resultado con menos operaciones de lectura/escritura de tuplas.
o Crear, modificar o eliminar ndices
o Modificar el agrupamiento fsico (distribucin en ficheros) y lgico (particionado) de los re-
gistros.
o Modificar los parmetros del optimizador (priorizar la E/S en lugar del coste de CPU, por
ejemplo)
6. ndices: existen dos decisiones fundamentales a la hora de crear un ndice: sobre qu columnas
crear un ndice y qu tipo de ndice crear.
- Acerca de la primera cuestin hay varias recomendaciones genricas: crear ndices en claves
primarias y forneas, no crear ndices en tablas con muy pocos datos (si la tabla cabe entera
en memoria es ms rpido un full scan que un acceso por ndice), tener cuidado con la crea-
cin de ndices en columnas con muchos nulos, evitar crear ndices sobre muchas columnas,
crear ndices en las columnas que habitualmente aparezcan en el where o incluso en el select
de las consultas, etc.
- Adems de estas recomendaciones, que se debern tener en cuenta cuando se creen inicial-
mente los ndices en las tablas, hay ocasiones en que nos puede interesar crear un ndice para
optimizar el rendimiento de la BD. En este caso, la decisin depender fundamentalmente de
las consultas que se realicen sobre la BD. Por medio de las diferentes herramientas de los SGBDs
podemos saber qu consultas son las ms ejecutadas, revisar los planes de ejecucin para
comprobar cmo se realiza el acceso a cada tabla en estas consultas, comprobar si es estn
usando los ndices correctamente, revisar si se producen bloqueos en los accesos a las tablas,
etc. En base a esta informacin podemos detectar si hay tablas de tamao medio o grande a
las que siempre se acceda de forma completa, penalizando mucho los planes de consulta o
provocando problemas de bloqueos. En estos casos puede ser conveniente crear algn ndice
en esas tablas para agilizar los accesos a estas tablas.
- Respecto al tipo de ndices a crear, depender especialmente del SGBDs utilizado, ya que
cada gestor implementa sus propios tipos de ndices. La filosofa detrs de cada tipo de ndice
particular, sin embargo, suele ser comn a todos los SGBDs:
o Implementacin del ndice: existen dos tipos de ndices por su organizacin: agrupados o
no agrupados. En los ndices agrupados, los campos sobre los que se define el ndice deter-
minan la organizacin de la tabla, ya que las filas de la tabla se guardarn ordenadas en
base al valor de las columnas indexadas. No ocupan espacio adicional, pero solo se pue-
de definir un ndice de este tipo por tabla. Los ndices no agrupados se construyen como

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 11 Tel. 963 768 542 - 960 624 309 - 610 900 111
una estructura aparte de la tabla con punteros a los datos de la tabla. Requieren espacio
adicional pero se pueden definir tantos ndices de este tipo por tabla como se quiera.
- Se recomienda utilizar ndices no agrupados cuando vayan a ser usados en consultas que ac-
cedan solo a parte de una tabla, consultas con JOIN o GROUP BY, consultas que devuelven
pocos datos, consultas que usen coincidencias exactas en el WHERE o consultas sobre colum-
nas que no tengan muchos valores nicos. Los ndices agrupados son ms apropiados en co-
lumnas que se actualizan con frecuencia, tablas con claves amplias o consultas con grandes
conjuntos de resultados.
o Organizacin del ndice: la estructura habitual de los ndices es en forma de rbol (ndices
B-tree), pero existen SGBDs que permiten otros tipos de ndices, como los ndices bitmap
que se implementan como vectores que contienen las columnas que toman un determina-
do valor o los ndices hash. Los ndices bitmaps son ms adecuados para entornos de Data
Warehouse ya que las modificaciones que se realizan sobre los datos de la BD son menos
habituales, y los ndices hash son muy tiles para consultas en las que se busque siempre un
valor concreto en una columna.
- Tan importante como la creacin de los ndices es la eliminacin de ndices innecesarios, ya
que los ndices que no se utilizan no solo ocupan espacio sino que tambin consumen recursos
para su mantenimiento.

5.4. HERRAMIENTAS PARTICULARES DE ALGUNOS SGBDS


Algunos SGBDs proveen de herramientas que permite optimizar determinadas tareas habituales
en base de datos. Algunas de las ms relevantes son las siguientes:
1. Inserciones masivas (SQL Server, Oracle): las inserciones masivas permiten insertar datos en blo-
ques en lugar de hacerlo fila a fila, con lo que se incrementa notablemente la velocidad.
2. Insert append (Oracle): al insertar datos en una tabla se van completando en primer lugar los
espacios libres que queden en los bloques de la tabla. Al hacer un append los datos se insertan
siempre por el final de la tabla, por lo que se evita recorrer la tabla y la insercin es ms rpida.
Tiene el problema de que si se hace habitualmente puede dejar la tabla muy fragmentada.
3. Intercambio de particiones (SQL Server, Oracle, Mysql): las operaciones de insercin son mucho
ms rpidas que las de modificacin, por lo que en lugar de modificar los datos de una particin
de una tabla, se pueden insertar los datos en una tabla temporal y luego intercambiar la tabla
temporal por la particin (que es inmediato), con lo que adems de ganar en velocidad se ac-
tualizara la informacin de la tabla sin afectar a su rendimiento.
4. Vistas materializadas o indexadas (SQL Server, Oracle, PostgreSQL): se define una vista sobre una
tabla y se crea un ndice sobre la vista. Al lanzar una consulta sobre la tabla que se pueda resolver
con el ndice, se utilizara la vista en lugar de la tabla. Son apropiadas para consultas con muchas
combinaciones en entornos Datawarehouse.
5. Merge (Oracle, SQL Server, Mysql, informix): la operacin merge combina la insercin y modifica-
cin en una sola instruccin. Al hacer el merge de una fila se comprueba si la clave de la fila existe
en la tabla: si no existe inserta esa fila, y si existe actualiza todas las columnas de la fila existente por
los de la fila nueva. Es muy apropiada para procesos ETL en entornos datawarehouse.
6. ndices con filtro (SQL Server): son ndices que aplican solamente sobre determinados valores de
una columna. Por ejemplo, en una columna con valores SI/NO/No aplica, se podra crear el ndi-
ce solamente para las filas con valores SI/NO. En otros SGBD se puede hacer algo similar usando
ndices con funciones.

Prohibida la reproduccin total o parcial sin permiso escrito del editor Pgina 12 Tel. 963 768 542 - 960 624 309 - 610 900 111

Das könnte Ihnen auch gefallen