Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 INTRODUCCI6N
Nota: David McGoveranfue el autor original de estecap{tulo.
Los sistemasde apoyo para la toma de decisionesson sistemasque ayudanen el analisisde
infonnaci6n de negocios.Su prop6sitoes ayudara la administraci6nparaque "marquetendencias,
sefialeproblemasy tome... decisionesinteligentes" [21.7]. Los orfgenesde dichos sistemas-in-
vestigaci6nde operaciones,teorfasde administraci6ncientificas o basadasen comportamiento,y
control de procesosestadisticos- seremontana finalesde los afioscuarentay principios de los cin-
cuenta,mucho antesde que las computadorasexistieran.La idea basicaera, y por supuestosigue
siendo,recolectardatosoperacionalesdel negocio(veael capftulo 1) y reducirlosa una fonna que
pudieraser usadaparaanalizarel comportamientodel mismo y modificarlos de una manerainteli-
gente.Por supuesto,por razonesmuy obvias,la reducci6nde los datosen esosprimerosdfaseracasi
minima, involucrabageneralmenteun poco masque producir simplesinfonnes de resUmenes.
A fmalesde los afiossesentay principiosde los setenta,los investigadoresde Harvardy del MIT
comenzarona promoverel uso de computadorasparaque ayudaranen el procesode toma de deci-
siones[21.23]. Al principio, dicho uso estuvolimitado (principalmente)a la automatizaci6nde las
tareasde generaci6nde infonnes, aunqueen ocasionestambien se proporcionaronherramientas
analfticasalgo rudimentarias[21.2], [21.3], [21.6] [21.26]. Esosprimerossistemasde c6mputofue-
ron conocidosinicialmentecomosistemasde decisionespara la administracion, y posterionnente
tambienseles llam6 sistemasde informacion para la administracion. Sin embargo,preferimosel
terrninomasmodemosistemasde apoyopara la tomade decisiones,ya que en buenamedida,todos
los sistemasde infonnaci6n -que incluyen, por ejemplo, a los sistemasOLTP (procesamientode
transaccionesen lfnea)- puedeno debenser consideradoscomo "sistemasde infonnaci6n parala
administraci6n"(a fin de cuentas,todos estaninvolucradoscon y afectanla administraci6nde los
negocios).En las siguientespartes,nos mantendremoscon el terrninomasmodemo.
Los afios setentatambien vieron el desarrollo de varios lenguajes de consulta, y alrededor
de dichos lenguajesseconstruyeronvarios sistemaspersonalizadosde apoyo para la toma de de-
cisiones(desarrolladospor las propiasempresas).Fueron implementadosusandogeneradoresde
infonnes, talescomo el RPG, o productospara la recuperaci6nde datos,talescomo Focus,Data-
trieve y NOMAD. Estos sistemasfueron los primeros que perrnitieron a los usuariosfinales de-
bidamente entrenadosacceder directamente a los almacenesde datos de la computadora; es
decir, perrnitieron que tales usuarios fonnularan consultasrelacionadascon el negocio basan-
doseen esosalmacenesde datos,y ejecutaranesasconsultasdirectamentesin tener que esperar
ayuda del departamentode procesamientode datos.
Por supuesto,losalmacenesde datosque acabamosde mencionareranen su mayorfaarchivos
simples;la mayoriade los datosde negociosen esetiempo seguardabanen dichosarchivos,o posi-
694
Cap£tulo 21 / Apoyo para la toma de decisiones 695
de apoyo para la toma de decisioneS nonnal, casi nunca actualiza la propia base de datoS de apoyo
para la toma de decisiones.
Tambien vale la pena sefialar las siguientes caracteristicas adicionales de las bases de datos
de apoyo para la toma de decisiones (en la secci6n 21.3 regresaremos a este punto para ampliarlo ).
Observe que las tres primeras son de naturaleza 16gica y las tres ultimas son ffsicas.
.Se tiende a usar las co1urnnas en combinaci6n.
.Por 10 general, no preoCUpa la integridad (se SUponeque 10SdatoS Son correctos cuando se
cargan por primera vez y no son actualizados posterionnente).
.Las claves incluyen frecuentemente un componente temporal (vea el capftulo 22).
.La base de datos tiende a ser grande (especialmente cuando se acumulan 10Sdetalles de las
transacciones* de negocios a 10 largo del tiempo, y Con frecuencia asf sucede).
.La base de datoS tiende a estar muy indexada.
.La base de d~toS involucra frecuentemente varioS tipoS de redundancia controlada (vea el
capftulo I).
Las consultas de apoyo para la toma de decisiones presentan tambien caracteristicas espe-
ciales yen particular, tienden a ser bastante complejas. Estos Son algunos de 10StipoS de Com-
plejidades que pueden presentarse:
.Complejidad de expresiones 16gicas: Las consultas de apoyo para la toma de decisiones a
menudo invo1ucran expresiones complejas en la clliusula WHERE; las cuales son diffciles de
escribir, diffciles de comprender y diffciles de manejar adecuadamente por el sistema. (En par-
ticular, 10Soptimizadores clasicoS tienden a ser inadecuados, debido a que estan disefiadoS
para evaluar s01amenteuna cantidad limitada de estrategias de acceso.) Un problema Comun
es que las consultas invo1ucran al tiempo; por 10 general, 10Ssistemas actuales no proporcio-
nan un buen soporte para, por ejemplo, consultas que preguntan por las filas que tienen un
valor maximo de marca de tiempo dentro de un periodo especificado (de nuevo, vea el capf-
tu10 22). Si hay alguna junta inv01ucrada, dichas consultas llegan rapidamente a ser muy Com-
plejas. Por supuesto, en todos eSOSCasoSel resultado neto es un bajo rendimiento.
.Complejidad de juntas: Las consultas de apoyo para la toma de decisiones requieren frecuen-
temente acceso a muchas clases de hechoS. Por consecuencia, en una base de datoS disefiada
adecuadamente --es decir completamente nonnalizada- dichas consultas inv01ucran, por 10
general, a muchas juntas. Desafortunadamente, la tecn010gfa para el procesarniento de juntas
nunca ha 10grado mantenerse al paso ante las demandas siempre crecientes de las consultas de
apoyo para la toma de decisiones. t Por 10tanto,loS disefiadores a menudo optan por desnorma-
* Aquf, y a 10largo de estecapftulo, distinguimos entre las transaccionesde negocios (por ejemplo, la venta
de un producto) y las transaccionesen el sentido de la parte IV de este libro, y usaremossiempre el califi-
cador "negocios" cuando en realidad queramosreferirnos a una transaccion de negocios (a menos que el
contexto haga obvio el significado).
tEl escritor (McGoveran), mientras trabajabaen los primeros sistemasde apoyo para la toma de decisiones
en 1981, observo que una junta de tres tablas de tamafio moderadopodrfa llevarse facilmente varias horns.
Por 10general,ias juntas de cuatro 0 seistablas eran consideradasdemasiadocostosas.En la actualidad, las
juntas de seisa diez tabias muy grandesson comunes,y por 10general la tecnologfa funciona bien. Sin em-
bargo, todavfa es facii (y no inusuai) generarconsultasquejunten mas tablas de las que la tecnoiogfa puede
manejar razonabiemente.Las consuitasquejuntan mas de doce tablas pueden!legar a ser rapidamenteuna
aventura, iY atin asf, es comtin encontrar requerimientospara dichas consuitas!
Cap£tulo 21 Apoyo para la toma de decisiones 697
lizar la base de datos "prejuntando" detenninadas tablas. Sin embargo, como vimos en el capf-
tulo 12 (en la secci6n 12.5), este enfoque rara vez es exitoso, ocasiona generalmente tantos
problemas como los que resuelve. Ademas, el deseo de evitar juntas tambien puede conducir
al uso ineficiente de las operaciones relacionales, recuperando una gran cantidad de datos y rea-
lizando el procesarniento de juntas dentro de la aplicaci6n en lugar de hacerlo en el DBMS.
.Complejidad de funci6n: Las consultas de apoyo para la toma de decisiones involucran fre-
cuentemente funciones estadfsticas y matematicas. Pocos productos soportan tales funciones.
Por consecuencia, a menudo es necesario dividir una consulta en una secuencia de otras con-
sultas mas pequefias, las cuales luego son ejecutadas en forma intercalada con procedimientos
escritos por el usuario que calculan las funciones deseadas. Este enfoque tiene la consecuen-
cia desafortunada de que tal vez sea necesario recuperar grandes cantidades de datos; por su-
puesto tambien hace que la consulta general sea mucho mas diffcil de escribir y comprender.
.Complejidad analuica: Las preguntas de negocios rara vez son respondidas con una sola
consulta. No s61o es diffcil para los usuarios escribir consultas de gran complejidad, sino
que las limitaciones que tienen las implementaciones de SQL pueden impedir el procesa-
miento de una de estas consultas. Una forma de reducir la complejidad de dichas consultas
es (de nuevo) dividirla en una serie de otras consultas mas pequefias y guardar los resulta-
dos intermedios en tablas auxiliares.
Todas las caracterfsticas anteriores, tanto las de las bases de datos de apoyo para la toma de de-
cisiones como las de las consultas de apoyo para la toma de decisiones, dan pie a un fuerte enfasis
sobre el disefio para el rendimiento, en especial el rendimiento de la inserci6n por lotes y la recu-
peraci6n ad hoc. Sin embargo, nuestra posici6n (en la cual ahondaremos en la siguiente secci6n) es
que esta situaci6n s61o debe afectar al disefio fisico de la base de datos y no al disefio 16gico. Sin
embargo, por desgracia (como sefialamos en la secci6n 21.1) los fabricantes y usuarios de los sis-
temas de apoyo para la toma de decisiones a menudo fallan al distinguir adecuadamente entre los
aspectos 16gicos y los fisicos;* de hecho, con frecuencia olvidan por completo el disefio 16gico.
Como consecuencia, los intentos para manejar las diversas caracterfsticas que explicamos anterior-
mente tienden a ser ad hoc y conducen frecuentemente a dificultades insuperables al tratar de balan-
cear los requerimientos de correcci6n, mantenimiento, rendimiento, escalabilidad y utilidad.
Como aflfffiamos anteriormente en este libro (en particular en la introduccion a la parte ill),
nuestraposicion es que el disefio de basede datos siempre debe ser realizado en al menos dos
etapas,primero la logica y luego la ffsica:
a. El disefio logico debe ser realizadoprimero. En estaetapa,el enfoqueestaen la correcci6n
relacional: las tablas debenrepresentarrelaciones adecuadasy por 10tanto garantizar que
las operacionesrelacionales funcionen tal como se indica y no produzcanresultados sor-
Disefio logico
Las reglas del disefio 16gico no dependen del uso que se pretenda dar a la base de datos, ya que
se aplican las mismas reglas sin tomar en cuenta los tipos de aplicaciones. Por 10 tanto, en par-
ticular no debe haber diferencia si esas aplicaciones son operacionales (OL TP) o de apoyo para
la toma de decisiones; de cualquier forma, es necesario seguir el mismo procedimiento de disefio.
Entonces, volvamos a ver las tres caracteristicas 16gicas de las bases de datos de apoyo para la
toma de decisiones que identificamos casi al iniciode la secci6n 21.2 y consideremos sus im-
plicaciones para el disefio 16gico.
VP v# P# IDM CANT
V1 P1 3 300
V1 P1 5 100
V1 P2 1 200
V1 P3 7 400
V1 P4 1 200
V1 P5 5 100
V1 P6 4 100
V2 P1 3 300
V2 P2 9 400
V3 P2 6 200
V3 P2 8 200
V4 P2 1 200
V4 P4 8 200
V4 P5 7 400
V4 P5 11 400
1 200
2 600
3 300
4 100
5 100
6 200
7 400
8 200
9 400
10 100
11 400
12 50
Disefto fisico
En la secci6n21.2 dijimos quelas basesde datos de apoyo para la toma de decisionestienden a
sergrandesy fuertemente indexadas,e involucran diversostipos de redundanciacontrolada. En
esta subsecci6ntrataremosbrevementeestascuestionesde disefio ffsico.
Primero consideramosel partido (tambienconocido comofragmentacion).El partido repre-
sentaun ataqueal problema de la "base de datos grande"; divide una tabla dadaen un conjunto
departiciones ofragmentos separadosparaefectosde almacenarnientoffsico (vea la explicaci6n
sobre fragmentaci6n en el capftulo 20). Dichas particiones puedenmejorar significativamente
el manejo y la accesibilidadde la tabla en cuesti6n.Por 10general,a carlapartici6n se le asignan
determinadosrecursosde hardwaremas 0 menosespecfficos(por ejemplo, disco, CPU) y por 10
tanto, se rninirniza la competenciapor dichos recursosentre las particiones.Las tablasson parti-
das horizontalmente* por medio de unafuncion de particion, la cual toma valores de colurnnas
seleccionadas(la clave de particion) como argumentosy regresaun numero o direcci6n de par-
tici6n. Por 10general,dichasfuncionessoportanla partici6n por rango,por dispersi6nyen ronda,
entre otros tipos (vea el comentario a la referencia [17.58] en el capftulo 17).
Ahora pasemosal indexado. Por supuesto,es bien conocido que el uso del tipo adecuadode
indice puedereducir drasticamentela F/S. La mayorfa de los primeros productos SQL propor-
cionabansolamenteun tipo de indice, el8ibol B, pero a travesde los afiossehan tenido otros tipos
disponibles,en especialen conexi6n con las basesde datosde apoyo para la toma de decisiones;
estosincluyen a los indicesde mapade bits, dispersion,multitabla, logicos y funcionales, asfcomo
a los indices de 8ibol B en sf. Comentaremosbrevementecadauno de estostipos.
.indices de tirbol B. Los indices de 8ibol B proporcionan accesoeficiente para consultasde
alcance(a menos que la cantidad de filas accedidasllegue a ser demasiadogrande).La ac-
tualizaci6n de 8iboles B egrelativamenteeficiente.
*El partido vertical, aunquepudiera ser ventajoso,no es muy usado,ya que la mayoria de 10Sproductosno
10SODOrta.
702 Parte v / Temas adicionales
.El segundo implica mantener datos derivados ademlis de los datos blisicos, muy frecuente-
mente en la forma de tablas de resumen o de columnas calculadas o derivadas.
.En el caso s{ncrono, si se actualiza una replica dada, todas las demas replicas del mismo frag-
mento de datos tambien se actualizan dentro de la misma transacci6n; 10 que implica que
(desde unpunto de vista 16gico) s610existe una versi6n de los datos. La mayorfa de los pro-
ductos implementan la replicaci6n sfncrona por medio de procedimientos disparados (posi -
blemente ocultos y manejados por el sistema). Sin embargo, la replicaci6n sfncrona tiene la
desventaja de que impone una sobrecarga sobre todas las transacciones que actualizan cual-
quier replica (tambien puede haber problemas de disponibilidad).
.En el caso as{ncrono, las actualizaciones a una replica son propagadas hacia las demlis en
algun momento posterior, no dentro de la misma transacci6n. Pot 10tanto, la replicaci6n asfn-
crona presenta un retardo de tiempo, 0 latencia, durante el cual es posible que las replicas
no sean identicas (y por 10 tanto, el termino "replica" ya no es muy adecuado, debido a que
ya no estamos hablando de copias exactas). La mayorfa de los productos implementan la
replicaci6n asfncrona leyendo la bitacora de transacciones 0 una cola estable de actualiza-
ciones que necesiten ser propagadas.
La ventaja de ia replicaci6n asfncrona es que la sobrecarga de replicaci6n esta desaco-
plada con relaci6n a la transacci6n de actualizaci6n, la cual puede ser de "misi6n crftica" y
altamente sensible al rendimiento. La desventaja es que los datos pueden llegar a ser incon-
sistentes (en cuanto a como son vistos por el usuario); es decir, la redundancia puede ser
mostrada a traves del nivel16gico, 10 que significa en terminos estrictos que el termino "re-
dundancia controlada" ya no es muy adecuado.*
*Observe tambien que las replicas puedenlIegar a ser inconsistentesen fonnas que son diffciles de evitar
y de componer. En particular, es posible presentarconflictos sobre el orden en que las transaccionesson
aplicadas.Por ejemplo, dejemosque la transacci6nTi inserte una fila en la replica RX, que la transacci6n
T2 luego borre esa fila y que RY seauna replica de RX. Si las actualizacionesson propagadashacia RY,
pero lIegan a RY en orden inverso (por ejemplo, a causade retardosen las rutas), T2 encuentraque no hay
fila que borrar y luego TI inserta la fila. El efecto real es que RY contiene la fila yen cambio, RX no la
tiene. La administraci6n de conflictos y el cumplimiento de la consistenciaa traves de replicas son proble-
mas diffciles que est.1nfuera del alcancede este libro.
704 Parte v / Temas adicionales
que es posible copiar grandescantidadesde datosde una sola vez. La desventajaes que la mayor
partedel tiempo las copiasno son identicasa los datosbasicos;ademas,los usuariosdeben(por 10
general)estarconscientesde en que momentoban sido sincronizadas.Por 10general,la administra-
cion de copiassesimplifica al requerirque las actualizacionesseanaplicadasde acuerdocon algUn
tipo de esquemade "copia primaria" (vea el capitulo 20).
El otro tipo de redundancia que aqui consideramosson las COlumDascalculadas y las
tablas de resumeD. Estas construccionesson particularmente importantes en el contexto del
apoyo a la toma de decisiones,ya que se usan para guardar valores de datos precalculados(es
decir, valores que son calculadosa partir de otros datos guardadosen algun otro lugar de la base
de datos).Paraser mas especificos,dicbasconstruccionesevitan la necesidadde volver a calcu-
lar dicbos valores cada vez que seanrequeridosen alguna consulta. Una columna calculada es
aquella cuyo valor en cualquier fila dada se deriva (de cierta forma) a partir de otros valores de
la misma fila.* Una tabla de resumenes una tabla que guardatotales(surnas,promedios,cuentas,
etcetera)de valores que estanen otras tablas. Con frecuencia, dicbos totales son precalculados
para varios agruparnientosdiferentesde los mismos datosde detalle (vea la secci6n21.6). Nota:
Si las colurnnas calculadasy las tablas de resumen van a ser en verdad ejemplaresde redun-
dancia controlada, entoncesdebenestar completamenteocultas ante los usuarios; sin embargo,
en los productos actualesusualmenteno es asi.
Las tablasde resumeny las colurnnascalculadassonimplementadascasi siemprepor medio
de procedimientosdisparadosque son administradospor el sistema,aunquetambien puedenser
implementadaspor medio de c6digo de procedimientosescrito por el usuario.El primer enfoque
permite mantenerla consistenciaentre los datosbasicosy los derivados (siemprey cuando am-
bos seanactualizadosen la misma transacci6n,10cual puede 0 no ser el caso; incluso si 10es,
observeque un alto nivel de aislarnientopuedesercrucial para obteneresaconsistencia).Es mas
probable que el segundoenfoque expongainconsistenciaante el usuario.
En esta subsecci6n cornentarernos breyernente algunas prlicticas de disefio que son communesen el
ambiente de apoyo para la torna de decisiones y que seguirnos considerando poco conyenientes:
.Filas duplicadas. Los disefiadores de apoyo para la torna de decisiones dicen con frecuencia
que sus datos simplernente no tienen un identificador Unico y que por 10 tanto, tienen que per-
mitir duplicados. Las referencias [5.3] y [5.6] explican en detalle por que los duplicados son
un error; aqui simplernente cornentamos que el "requerimiento" surge debido a que el esquerna
ffsico no se deriya a partir de un esquema 16gico (el cual probablernente nunca se cre6). Obser-
yamos tambien que en tales disefios, las filas tienen a rnenudo significados no uniformes (en
especial si esta presente cualquier nulo); es decir, no todas son ejernplares del misrno predica-
do (yea el capftulo 3, secci6n 3.4, y tambien el capftulo 18). Nota: En ocasiones, los duplica-
dos se permiten incluso deliberadamente, en especial cuando el disefiador tiene una formaci6n
orientada a objetos (yea el ultimo parrafo de la secci6n 24.2 en el capftulo 24).
*En fonna alterna, el valor calculado podria ser derivado a partir de los valores de varias filas de la rnisma
tabla o de otras tablas. Sin embargo, dicho enfoque implica que la actualizaci6n de una fila podria requerir
que tambien se actualizaranmuchasotras filas; en particular, esto puedeteller un efecto muy negativo sobre
las operacionesde carga y actualizaci6n.
Capitulo 21 Apoyo para la tomade decisiones 705
Extraccion
La extracci6n es el proceso de capturar datos de las bases de datos operacionales y otras fuentes.
Hay muchas herramientas disponibles para ayudar en esta tarea, incluyendo herramientas pro-
porcionadas por el sistema, programas de extracci6n personalizados y productos de extracci6n
comerciales (de prop6sito general). El proceso de extracci6n tiende a ser intensivo en E/S y por
10 tanto, puede interferir con las operaciones de misi6n crucial; por esta raz6n, este proceso a me-
nudo es realizado en paralelo (es decir, como un conjunto de subprocesos paralelos) yen un nivel
fisico. Sin embargo, dichas "extracciones fisicas" pueden ocasionarproblemas para el procesa-
miento subsecuente, ya que pueden perder infonnaci6n -en especial infonnaci6n de vinculos-
que esta representada de alguna manera fisica (por ejemplo, por apuntadores 0 por contigiiidad
fisica). Por esta raz6n, los programas de extracci6n proporcionan en ocasiones un medio para
preservar dicha infonnaci6n introduciendo numeros de registro secuenciales y reemplazando
apuntadores por 10 que en realidad son valores de clave extema.
Limpieza
Pocas fuentes de datos controlan adecuadamente la calidad de los datos. Por consecuencia, los
datos requieren frecuentemente de una limpieza (por 10general, por lote) antes de que puedan ser
introducidos en la base de datos de apoyo para la toma de decisiones. Las operaciones de lim-
pieza tfpicas incluyen el Ilenado de valores faltantes, la correcci6n de errores tipograficos yotros
de captura de datos, el establecimiento de abreviaturas y formatos estandares, el reemplazo de
sin6nimos por identificadores estandares, etcetera. Los datos que son err6neos y que nopueden
ser limpiados, seran reemplazados. Nota: En ocasiones, la informaci6n obtenida durante el pro-
ceso de limpieza puede ser usada para identificar la causa de los errores en el origen y por 10
tanto, mejorar la calidad de los datos a traves del tiempo.
Transformaci6n y consolidaci6n
Aun despues haber sido limpiados, es probable que los datos todavfa noesten en la forma en que se
requieren para el sistema de apoyo para la torna de decisiones y por 10 tanto, deberan ser transfor-
mados adecuadarnente. Por 10 general, la forma requerida sera un conjunto de archivos, uno por
cada tabla identificada en el esquema ffsico; como resultado, la transformacion de los datos puede
involucrar la division o la combinaci6n de registros fuente de acuerdo a 10 que hemos explicado en
el capftulo 1 (secci6n 1.5). Nota: A veces, los errores de datos que no fueron corregidos durante la
limpieza son encontrados durante el proceso de transformaci6n. Como dijimos antes, por 10general
cualquier dato incorrecto es rechazado. (Tambien, igual que antes, la informacion obtenida como
parte de este proceso puede ser usada, en ocasiones, para mejorar la calidad de la fuente de datos.)
La transformacion es particularmente importante cuando necesitan mezclarse varias fuentes
de datos, un proceso al que se llama consolidaci6n. En estos casos, cualquier vfncu10 implfcito
entre datos de distintas fuentes necesita volverse explfcito (introduciendo valores de datos explf-
citos). Ademas, las fechas y horas asociadas con el significado que tienen los datos en los negocios,
necesitan ser mantenidas y correlacionadas entre fuentes; un proceso llamado "sincronizacion
en el tiempo" [jcita textual!].
Por razones de rendirniento, las operaciones de transformacion se realizan frecuentemente
en paralelo. Pueden ser intensivas tanto en FlS como en CPU .
Nota: La sincronizaci6n en el tiempo puede ser un problema diffcil. Por ejemplo, suponga
que queremos encontrar el promedio de las ganancias por cliente y por vendedor en cada trimestre.
Suponga que los datos del cliente contra las ganancias son mantenidos por trimestre fiscal en una
base de datos de contabilidad, yen cambio, los datos del vendedor contra el cliente son mantenidos
por trimestre de calendario en una base de datos de ventas. De manera clara, necesitamos fusionar
los datos de las dos bases de datos. La consolidaci6n de clientes es facil, involucra simplemente
la coincidencia de IDs de clientes. Sin embargo, la cuestion de la sincronizaci6n de tiempo es
mucho mas diffcil. Podemos encontrar las ganancias de cliente por trimestre,fiscal (a partir de
la base de datos de contabilidad), pero no podemos decir que vendedores fueron responsables
de cuales clientes en ese momento y, a fin de cuentas, no podemos encontrarlas ganancias de
clientes por trimestre de calendario.
Carga
Los fabricantes de DBMS ban puesto considerable importancia en la eficiencia de las operaciones
de carga. Para los prop6sitos actuales, consideramos que las "operaciones de carga" incluyen (a)
el movimiento de los datos transformados y consolidados bacia la base de datos de apoyo para
la toma de decisiones, (b ) la verificacion de su consistencia (es decir, verificacion de integridad) y
(c ) la construccion de cualquier fndice necesario. Comentaremos brevemente cada paso:
a. Movimiento de datos. Por 10general, los sistemas modemos proporcionan berramientas de car-
ga en paralelo. En ocasiones formatearan previamente los datos para darles el formato fisico
intemo requerido por el DBMS de destino antes de la carga real. (Una tecnica altema que pro-
porciona gran parte de la eficiencia de las cargas preformateadas es cargar los datos en tablas
de trabajo que se asemejan al esquema de destino. La verificacion de la integridad necesaria
puede ser realizada en esas tablas de trabajo [ vea el parrafo b] y luego usar los INSERTs en el
nivel de conjunto para mover los datos desde las tablas de trabajo bacia las tablas de destino.)
b. Verificaci6n de integridad. La mayor parte de la verificacion de integridad de los datos a
ser cargados puede ser realizada antes de la carga real, sin bacer referencia a los datos que
708 Parte v Temasadicionales
ya est8n en la base de datos. Sin embargo, ciertas restricciones no pueden verificarse sin exa-
minar la base de datos existente; por ejemplo, una restricci6n de unicidad tendra que ser veri-
ficada, por 10 general, durante la carga real (0 por lotes despues de que se haya terminarlo la
carga).
c. Construcci6n de indices. La presencia de indices puede hacer significativamente lento el
proceso de carga, debido a que la mayorfa de los productos actualiza los indices conforrne
carla fila es insertada en la tabla subyacente. Por esta raz6n, en ocasiones es buena idea eli -
minar los indices antes de la carga y luego volverlos a crear .Sin embargo, este enfoque no
vale la pena cuando la proporci6n de los nuevos datos (con respecto a los existentes) es pe-
quefia, ya que el costo de crear un indice no se compensa con el tamafio de la tabla a indexar.
Ademas, la creaci6n de un indice grande puede estar sujeta a errores de asignaci6n irrecupera-
bles, y entre mas grande sea el indice, es mas probable que ocurran tales errores. Nota: La
mayorfa de los productos DMBS soportan la creaci6n de indices en paralelo en un esfuerzo
para agilizar los procesos de carga y de construcci6n de indices.
Actualizacion
La mayoria de las bases de datos de apoyo para la toma de decisiones (aunque no todas) re-
quieren una actualizacion peri6dica de los datos para mantenerlos razonablemente vigentes. La
actualizaci6n involucra por 10 general una carga parcial, aunque algunas aplicaciones de apoyo
para la toma de decisiones requieren la elirninaci6n de 10 que hay en la base de datos y una recar-
ga completa. La actualizaci6n involucra todos los problemas que estan asociados con la carga,
pero tambien es probable que deba realizarse rnientras los usuarios estan accediendo a la base
de datos. Yea el capitulo 9, secci6n 9.5, y tambien las referencias [9.2] y [9.6].
Data warehouses
AI igual que los almacenes de datos operacionales (y los data marts, vea la siguiente subsecci6n),
un data warehouse es un tipo especial de base de datos. Al parecer, el termino se origin6 a fmales
de los ochenta [21.13], [21.17], aunque el concepto es de alguna manera mas antiguo. Lareferen-
cia [21.18] define un data warehouse como "un almacen de datos orientado a un tema, integrado,
no volcitil y variante en el tiempo, que soporta decisiones de administraci6n" (donde el termino no
voltitil significa que una vez que los datos han sido insertados, no pueden ser cambiados, aunque
si pueden ser borrados). Los data warehouses surgieron por dos razones: primero, la necesidad de
proporcionar una fuente unica de datos limpia y consistente para prop6sitos de apoyo para la toma
de decisiones; segundo, la necesidad de hacerlo sin afectar a los sistemas operacionales.
Por definici6n, las cargas de trabajo del data warehouse estan destinadas para el apoyo a la toma
de decisiones y por lo tanto, tienen consultas intensivas (con actividades ocasionales de inserci6n
por lotes); asimismo, los propios data warehouses tienden a ser bastante grandes (a menudo mayo-
res que 500GB y con una tasa de crecimiento de hasta el 50 por ciento anual). Por consecuencia,
es dificil-aunque no imposible- perfeccionar el rendimiento. Tambien puede ser un problema la
escalabilidad. Contribuyen a ese problema (a) los errores de disefio de la base de datos (que trata-
mos en la subsecci6n final de la secci6n 21.3), (b) el uso ineficiente de los operadores relacionales
(que mencionamos brevemente en la secci6n 21.2), (c) la debilidad en la implementaci6n del mo-
delo relacional del DBMS, (d) la falta de escalabilidad del propio DBMS y (e) los errores de disefio
710 Parte v Temas adicionales
Data marts
Por 10 general, los data warehouses estan hechos para proporcionar una fuente de datos unica
para todas las actividades de apoyo para la toma de decisiones. Sin embargo, cuando los data
warehouses se hicieron populares (a principio de los afios noventa) pronto fue evidente que los
usuarios a menudo realizaban amplias operaciones de informes y analisis de datos sobre un sub-
conjunto relativamente pequefio de todo el data warehouse. Asimismo, era muy probable que los
usuarios repitieran las mismas operaciones sobre el mismo subconjunto de datos cada vez que
era actualizado. Ademlls, algunas de esas actividades -por ejemplo, analisis de pron6sticos,
simulaci6n, modelado de datos de negocios del tipo "que pasarfa si..."- involucraban la crea-
ci6n de nuevos esquemas y datos con actualizaciones posteriores a esos nuevos datos.
De manera obvia, la ejecuci6n repetida de tales operaciones sobre el mismo subconjunto de
todo el almacen no era muy eficiente; por 10 tanto, pareci6 obviamente una buena idea construir
algun tipo de "almacen" limitado de prop6sito general que estuviera hecho a la medida de ese
prop6sito. Ademas, en algunos casos seria posible extraer y preparar los datos requeridos di-
rectamente a partir de las fuentes locales, 10 que proporcionaba un acceso mas rllpido a los datos
que si tuvieran que ser sincronizados con los demlls datos cargados en todo el data warehouse.
Dichas consideraciones condujeron al concepto de data marts.
De hecho, hay alguna controversia sobre la definici6n precisa del termino data mart. Para
nuestros prop6sitos podemos definirlo como "un almacen de datos especializado, orientado a un
tema, integrado, vollltil y variante en el tiempo para apoyar un subconjunto especffico de deci-
siones de administraci6n". Como puede ver, la principal diferencia entre un data mart y un data
warehouse es que el data mart es especializado y voltitil. Por especializado queremos decir que
contiene datos para dar apoyo ( solamente ) a un area especffica de analisis de negocios; por voltitil
queremos decir que los usuarios pueden actualizar los datos e incluso, posiblemente, crear nuevos
datos (es decir, nuevas tablas) para algun prop6sito.
Hay tres enfoques principales para la creaci6n de un data mart:
.Los datos pueden ser simplemente extrafdos del data warehouse; de hecho, sigue un enfo-
que de "divide y venceras" sobre la carga de trabajo general de apoyo para la toma de decisio-
nes, a fin de lograr un mejor rendimiento y escalabilidad. Por 10 general, los datos extrafdos
son cargados en una base de datos que tiene un esquema ffsico que se parece mucho al sub-
conjunto aplicable del data warehouse; sin embargo, puede ser simplificado de alguna mane-
ra gracias a la naturaleza especializada del data mart.
.A pesar del hecho de que el data warehouse pretende proporcionar un "punto de control uni-
co", un data mart puede ser creado todavfa en forma independiente (es decir, no por medio de
la extracci6n a partir del data warehouse). Dicho enfoque puede ser adecuado si el data ware-
house es inaccesible por alguna raz6n, digamos razones financieras, operacionales 0 inc1uso
polfticas (0 puede ser que ni siquieraexista todavfa el data warehouse; vea el siguiente punto ).
.Algunas instalaciones han seguido un enfoque de "primero el data mart", donde los data
marts son creados conforme van siendo necesarios y el data warehouse general es creado,
finalmente, como una consolidaci6n de los diversos data marts.
'apitulo 21 Apoyo para la toma de decisiones 711
Esquemas djmensionales
Suponga que queremos recolectar un historial de las transacciones de negocios para efectos de
analisis. Como indicamos en la secci6n 21.1, los primeros sistemas de apoyo para la toma de de-
cisiones mantenian generalmente ese historial como un archivo simple, el cual podia ser acce-
dido mas tarde por medio de unaexploraci6n secuencial. Sin embargo, conforme el volumen de
los datos se incrementa, 1lega a ser cada vez mas necesario apoyar la busqueda con el acceso di-
recto a ese archivo desde varias perspectivas diferentes. Por ejemplo, tener la posibilidad de en-
contrar todas las transacciones de negocios que involucran a un producto en particular o todas
las transacciones de negocios que suceden dentro de un periodo en particular o todas las transac-
ciones de negocios que se refieren a un cliente en particular.
Un metodo de organizaci6n que soporta este tipo de acceso fue 1lamado base de datos "mul-
ticatalogo".* Para continuar con nuestro ejemplo, dicha base de datos consistirfa en un gran
archivo central de datos que contUviera los datos de las transacciones de negocios,junto con tres
archivos de "catalogo" individuales para productos, periodos y clientes, respectivamente. Dichos
*No tiene nadaque ver con los catalogosen el sentido que tiene el tenninoen lasbasesde datos mode
712 Parte v / Temas adiciona(es
*Las columnas DESDE y BASTA de la tabla JYf contienen datos del tipo marca de tiempo. Por razonesde
simplicidad, en la figura no mostramoslos valores realesde las marcas de tiempo, sino que en su lugar, los
representamossimb61icamente.
Cap£tulo 21 / Apoyo para la toma de decisiones 713
VP PT
" "
21.6 PROCESAMIENTO ANALITICO EN LINEA
El tennino OLAP ("procesamiento analftico en linea") fue acufiado en un articulo escrito por
Arbor Software Corp. en 1993 [21.10], aunque (como sucede con el tennino "data warehouse")
el concepto es mucho mas antiguo. Puede ser definido como "el proceso interactivo de crear,
mantener, analizar y elaborar informes sobre datos" y es usual afiadir que los datos en cuesti6n
son percibidos y manejados como si estuvieran almacenados en un "arreglo multidimensional".
Sin embargo, decidimos explicar primero las ideas en tenninos de tablas convencionales estilo
SQL, antes de entrar en el tema de la representaci6n multidimensional como tal.
El primer punto es que el procesamiento analftico requiere invariablemente, algun tipo de
agregaci6n de datos, por 10general en muchas formas diferentes (es decir, de acuerdo con muchos
agrupamientos diferentes). De hecho, uno de los problemas fundamentales del procesamiento
analftico es que la cantidad de agrupamientos posib1es llega rapidamente a ser muy granOOy los
usuarios deben considerarlos todos o casi todos. Ahora bien, por supuesto que los lenguajes rela-
cionales soportan tal agregaci6n, pero cada consulta individual en un lenguaje de estos produce
como resultado una sola tabla (y todas las filas de esa tabla tienen la misma forma y el mismo
tipo de interpretaci6n). Por 10 tanto, para obtener n agrupamientos distintos se requieren n con-
sultas distintas y n tablas de resultados distintas. Por ejemplo, considere las siguientes consultas
sobre la base de datos usual de proveedores y partes:
Supongamosque s6lo hay dos partes,PI y P2, y que la tabla de envios luce deesta fOnni
VP P# CANT
V1 P1 300
V1 P2 200
V2 P1 300
V2 P2 400
V3 P2 200
V4 P2 200
Parte v Temas adicionales
Entonces estas son las fonnulaciones* SQL de las cuatro consultas y sus resultados
pondientes:
Las desventajas de este enfoque son obvias: la formulaci6n de tantas consultas similares,
pero distintas, es tediosa para el usuario, y la ejecuci6n de todas esas consultas -pasando una
y otra vez por los mismos datos- es probablemente bastante costosa en tiempo de ejecuci6n.
Por 10 tanto, parece que vale la pena tratar de encontrar una forma (a) de solicitar varios niveles
de agregaci6n en una sola consulta y por 10tanto, (b ) ofrecer a la implementaci6n la oportunidad de
calcular todas esas agregaciones de manera mas eficiente (es decir, en un solo paso). Dichas con-
sideraciones son la motivaci6n que hay tras las opciones GROUPING SETS, ROLLUP y CUBE
de la clausula GROUP BY. Nota: Dichas opciones ya son soportadas en varios productos comer-
ciales. Tambien estan incluidas en SQL3 (yea el apendice B).
La opci6n GROUPING SETS permite al usuario especificar con exactitud que agru-
pamientos especificos van a ser realizados. Por ejemplo, la siguiente instrucci6n SQL representa
una combinaci6n de las consultas 2 y 3 :
SELECT
v#, P#, SUM
(CANT)AS CANTOT
FROM VP
GROUPBY GROUPINGSETS( (V#), (P#) ) ;
Aqui la clausula GROUP BY esta pidiendo efectivamente al sistema que ejecute dos consultas,
una donde el agrupamiento sea por V# y otra en la que sea por P#. Nota: Los parentesis inte-
*Tal vez debieramosdecir "fonnulaciones seudoSQL", ya que el SQlJ92 no pennite que los operandosde
GROUP BY estenencerradosentreparentesis,ni pennite queGROUP BY no tengaoperandos(aunquela omi-
si6n completade la clausulaGROUP BYes l6gicarnenteequivalentea la especificaci6nde una sin operandos).
'av[tulo 21 Apoyo para la toma de decisiones 717
riores en realirlad no son necesariosen esteejemplo, ya que carlauno de los "conjuntos de agru-
pamiento" involucra solo una columna, pero los mostramospor razonesde claridad.
Ahora bien, la idea de agruparde estamaneravariasconsultasdiferentesen una sola instruc-
cion puedeser inobjetable por simisma (aunquetenemosque decir que prefeririamos atacareste
temamuy generalen una forma aun masgeneral,sistematicay ortogonal). Sin embargo,por des-
gracia jel SQL continua agrupandolos resultadosde estasconsultaslogicamentedistintasen una
sola tabla de resultados!* En el ejemplo, esatabla de resultadosluce asi:
I -~-
v# CANTOT
V1 nulo 500
V2 nulo 700
V3 nulo I 200
V4 200
nulo P1 600
nulo P2 1000
*Esta linica tabla puede ser consideradacomo una "uni6n extema" -tambien, una forma extremadamente
rara de uni6n extema- de esosresultados.Debe quedarclaro, por 10que dijimos en el capitulo 18, que aun
en su forma menosrara, la "uni6n extema" no es una operaci6nrelacional respetable.
718 Parte v { Temas adicionales
El tennino ROLLUP se deriva del becboque (en el ejemplo) las cantidadesban sido "enro-
lladas" para cada proveedor (es decir, enrolladas "en toda la dimension de proveedor"; vea la
subsecci6n"Basesde datosmultidimensionales"que siguea continuacion).En general,GROUP
BY ROLLUP (A, B, ..., 2) -aproximadamente, "enrollar en toda la dimension A "- significa
"agrupar por todas las combinacionessiguientes":
( A, B, z )
( A, B,
( A, B
( A )
!~
En otras palabras, la consulta es una fonnulaci6n SQL combin"a~dg~i~~9ri~i
nales 4, 3, 2 y 1. El resultado se ye de esta fonna:
El tennino CUBE poco util, se deriva del hecho de que en la tenninologfa OLAP (0 al
menosmultidimensional), los valores de datos pueden ser percibidos como si estuvieranalma-
cenadosen las celdas de un arreglo multidimensional 0 hipercubo. En el caso que estamos
viendo (a) los valores de datos son cantidades,(b) el "cubo" es de dos dimensiones: una di-
mensi6n de proveedoresY una dimensi6n de partes (iY el "cubo" es bastante pIano!) Y por
supuesto,(c) esasdos dimensionesson de tamafiosdesiguales(por 10que el "cubo" ni siquiera
es un cuadrado,sino un rectangulogeneral).De cualquierforma, GROUP BY CUBE (A, B, ...,2)
significa "agrupar por todos los subconjuntosposibles del conjunto {A, B, ..., Z} ".
Una clliusula GROUP BY dada puede incluir cualquier mezcla de especificaciones
GROUPING SETS, ROLLUP Y CUBE.
Tabulaciones cruzadas
Con frecuencia, los productos OLAP desplieganlos resultadosde las consultasno como tablas
estilo SQL sino como tabulaciones cruzadas (abreviado "tabcruz"). Considerenuevamentela
consulta 4 ("obtener el total de envios por proveedor y parte"). Esta es una representaci6n
tabcruz del resultadode esaconsulta.Dicho seade paso,observeque mostramoslas cantidades
de la parte PI para los proveedoresV3 y V4 (correctamente)como cero; por el contrario, SQL
diria que estascantidadesdeben ser nulos (vea el capitulo 18). De hecho, la tabla que produce
SQL en respuestaa la consulta 4 ino contiene filas para (V3, PI) ni para (V4, PI)! Como con-
secuenciade esto, la producci6n de la tabcruz a partir de la tabla no es completamentetrivial.
hay una columna para cada tipo de parte (y por 10tanto, la estructurade la tabcruz y el signifi-
cado de las filas'~dependen de los datosreales). Por 10tanto, una tabcruz no es una relaci6n sino
un i1ifi;Jrme;
para ser mas especificos,un informe que tiene el formato de un arreglo simple. (Las
relacionestienen I,Inpredicado que puedededucirsea partir de los predicadosde las relaciones
de las cualesestan'derivadas;por el contrario, el "predicado" de una tabcruz-si es que en gene-
ral p9demos decir 9ue existe- no puede deducirse de los predicadosde las relaciones de las
cualese,staderivada. sino que, como ha visto, dependede los valores de los datos.)
,Confrecuen~a decimos que las tabcruz como la que acabamosde mostrar, tienen dos
dimensi~es: e!):.e~ecaso proveedoresy partes. Las dimensiones son tratadascomo si fueran
variahjeslntle"pendientes;entonces,las "celdas" de intersecci6ncontienenlos valoresde las varia-
bits dependientescorrespondientes.Parauna explicaci6n masa fondo, vea la subsecci6n"Bases
de datos multidimensionales" que sigue.
Este es otro ejemplo de tabcruz que representael resultadodel ejemplo anterior de CUBE:
200
400
200
200
000 600
La columna del extremo derecho contiene totales de filas (es decir, los totales para el
proveedor indicado en todas las partes) y la fila inferior contiene totales de columnas (es decir,
los totales para la parte indicada en todos los proveedores).La celda de la parte inferior derecha
contieneel gran total, que es el total de fila de todos los totales de columna y el total de columna
de todos los totales de fila.
*Por 10 tanto, las celdas del arreglo son referidas simb6licamente, en lugar de hacerlo por medio de los
subindices numericos que estan asociadosmas convencionalmentecon los arreglos.
tObserve el contrastecon los sistemasrelacionales.En una analogia relacional adecuadapara el ejemplo,
no tendriamos una fila (c,p,t) con una "celda" vacia, sino que simplemente no tendriamos una fila (c,p,t).
Por 10tanto, no sepresentael conceptode "arreglos poco densos"o "tablas poco densas",por 10que no hay
necesidadde manejar tecnicasde compresi6n inteligentes.
722 Parte v Temas icionales
*Sin embargo,hay algo que debemosdecir. A menudose afirma que "las tablas son planas" (esdecir, de dos
dimensiones);en cambio, .'los rlatosrealesson multidimensionales" y por 10tanto, las relacionesson inade-
cuadascomo baseparaOLAP .Pero dar estosargumentosiesconfundir las tablasy las relaciones!Como vimos
en el capltulo 5, las tablasson s610inuigenesde relacionesy no relacionescomo tales.Y aunquees cierto que
esasimagenesson de dos dimensiones,las relacionesno 10son; en su lugar son n dimensionales,donden es
el grado. Paraser masprecisos,carlatupla en una relaci6n con n atributosrepresentaun punto en un espacio
n dimensionaly la relaci6n como un todo, representaun conjunto de dichos puntos.
Cap(tulo 21 / Apoyo para la toma de decisiones 723
VENTAS
Considerela tabla VENTAS (ique no es muy grande!) de la figura 21.5, la cual muestrain-
formaci6n con respectoa ciertas transaccionesde ventasde un negocio al menudeo.* AI nego-
cio le gustarfarealizar un antilisis de canasta de mercado sobre estos datos (donde el terrnino
"canasta de mercado" se refiere al conjuntt>de productos compradosen una sola transacci6n)
para descubrir de ese modo que, por ejemplo, es probable que un cliente que compra zapatos
tambien compre calcetinescomo parte de la misma transacci6n.Esta correlaci6n entre zapatosy
calcetineses un ejemplo de una regia de asociaci6n; puedeser expresada(en rerrninosgenera-
les) de la siguiente forma:
FORALL
tx ( ZapatosE tx =.. Calcetines E tx )
Dados los datos de ejemplo de la figura 21.5, la poblaci6n es 4, el soparte es 50 par ciento y la
confianza es del 66.67 por ciento.
*Observe que (a) la clave es {TX#, PRODUCTO}; (b) la tabla satisfacelas DFs TX# -7 CLIENTE#y TX#
-7 MARCA DE TIEMPO, y por 10tanto, no estaeoFNBC; (c) una versi6n de la tabla en la cualla columna
PRODUCTO tuviera valores de relaci6n (y TX# fuera la clave) estaria en FNBC y podria ser m~sadecuada
para el tipo de exploraci6n involucrada en estecaso (pero tal vez no serfa adecuadapara otros tipos).
724 Parte v / Temas adicionales
21.8 RESUMEN
HemoS examinado el USOde la tecnologfa de base de datos para efectos del apoyo a la toma de
decisiones. La idea basica es recolectar datos operacionales y reducirlos a una forma que pueda
ser utilizada para que la adrninistraci6n entienda y modifique el comportarniento de la empresa.
Primero identificamos ciertos aspectoSde 10Ssistemas de apoyo para la torna de decisiones que
los apartan de 10Ssistemas operacionales. El punto principal es que la base de datos es en su mayo-
ria (aunque no totalmente) de solo lectura. Las bases de datos de apoyo para la toma de decisiones
tienden a ser muy grandes y altamente indexadas -e involucran una gran cantidad de redun-
dancia controlada (en especial en la forma de replicacion y agregaciones precalculadas)--, las
claves tienden a involucrar un Componente temporal y las consultas tienden a ser complejas. Como
consecuencia de tales consideraciones, existe un enfasis en el diseiio para el rendimiento; estamos
de acuerdo con el enfasis, pero creemoS que no debemos permitir que interfiera Con las buenas prac-
ticas de disefio. El problema es que en la practica, 10Ssistemas de apoyo para la torna de decisiones
no distinguen adecuadamente (por 10 general) entre las consideraciones logicas y las ilSicas.
Despues explicamos 10 que esta involucrado en la preparaci6n de 10Sdatos operacionales
para el apoyo a la toma de decisiones. Vimos las tareas de extraccion, limpieza, transformacion
y consolidacion, carga y actualizacion. Tambien mencionamoS brevemente a 10Salmacenes
de datos operacionales, que pueden ser usados (entre otras cosas) Como area transitoria durante
Cap£tulo 21 / Apoyo para la toma de decisiones 725
E}ERCICIOS
21.1 l,Cuales son algunos de los puntos principales de diferencia entre las bases de datos de apoyo
para la toma de decisiones y las operacionales? l,Por que lasaplicaciones de apoyo para la toma de
decisiones y las aplicaciones operacionales utilizan generalmente almacenes de datos diferentes?
21.2 Resuma los pasos involucrados en la preparaci6n de datos operacionales para el apoyo a la toma
de decisiones.
21.3 Distinga entre la redundancia controlada y la no controlada. De algunos ejemplos. l,Por que es
importante la redundancia controlada en el contexto del apoyo para la toma de decisiones? l,Que
sucede si, en vez de ello, la redundancia no es controlada?
21.4 Distinga entre data warehouses y data marts.
21.5 l,Que entiende usted por el termino esquema de estrella?
21.6 Por 10general, los esquemasde estrella no estan completamente normalizados. l,Cual es la justi -
ficaci6n para esta situaci6n? Explique la metodologia mediante la cual son disefiados dichos esquemas.
21.7 Explique la diferencia entre ROLAP y MOLAP.
726 Parte v Temas adicionales
21.8 l.En cuantas formas es posible resumir los datos si estan caracterizados por cuatro dimensiones,
donde cada una de ellas pertenece a una jerarquia de agregaci6n de tres niyeles (par ejemplo, ciudad,
region, estado)?
21.9 Utilice la base de datos de proyeedores, partes y proyectos (yea el ejercicio 4.1 del capitulo 4)
para expresar 10 siguiente como consultas SQL:
a. Obtener la cantidad de enyios y las cantidades promedio de enyios para proYeedores,partes y pro-
yectos considerados en pares (es decir, para cada par V#-P#, cada par P#-y# y cada par y#- V#).
b. Obtener las cantidades maxima y minima de enyios para cada proyecto, para cada combinaci6n
de proyecto y parte, yen general.
Co Obtener las cantidades de enYios totales enrolladas "en toda la dimensi6n de proyeedor" y "en
toda la dimensi6n de parte". Precauci6n: Aqui hay una trampa.
do Obtener las cantidades de enyio promedio par proyeedor, por parte, par combinaciones de pro-
Yeedor/parte yen general.
En cada caso, muestre el resultado SQL que se produciria tomando 10sdatos de ejemplo de la figura
4.5 (0 aigunos datos de ejemplo que usted proparcione). Tambien muestre esosresultados como tablas
cruzadas.
21.10 Casi ai principio de la secci6n 21.6, mostramos una yersi6n simple de la tabla VP que contiene
solamente seis filas. Suponga que la tabla incluye ademas la siguiente fila (10 que significa que ital
yez! existe el proyeedor V5 pero actualmente no proparciona partes):
I V5 I nulo I nulo I
Explique las implicaciones para todas las diyersas consultas SQL que mostramos en la secci6n 21.6.
21.11 l.Significa 10 rnismo el terrnino dimensional en las frases "esquema dimensional" y "base de
datos multidimensional"? Explique su respuesta.
21.12 Considere el problema del analisis de canasta de mercado. Indique un aigoritmo mediante el
cual sea pasible descubrir las reglas de asociaci6n que tienen niyeles de soporte y de confianza ma-
yores que 10Slirnites especificados. Sugerencia: Si alguna combinaci6n de productos "no es intere-
sante" debido a que sucede en muy pocas transacciones de Yentas, entonces 10 rnismo es cierto para
todos los superconjuntos de esa combinaci6n de productoso
REFERENCIAS y BIBLIOGRAFiA
21.1 Pieter Adriaans y Do1f Zantinge: Data Mining. Reading, Mass.: Addison-Wesley (1996).
Aunque es descrito como una panor3mica en el nivel ejecutivo, este libro es en realidad una in-
troducci6n bastante detallada (y buena) al tema.
21.2 S. Alter: Decision Support Systems: Current Practice and Continuing Challenges. Reading,
Mass.: Addison-Wesley (1980).
21.3 J. L. Bennett (ed.): Building Decision Support Systems.Reading, Mass.: Addison- Wesley ( 1981).
21.4 M. J. A. Berry y G. Linoff: Data Mining Techniquesfor Marketing, QTY, and Customer Support.
Nueva York, N.Y.: McGraw-Hill (1997).
Es una buena explicaci6n sobre 10Smetodos de la mineria de datos y su valor para aspectos se-
leccionados de 10Snegocios.
21.5 J. B. Boulden: Computer-Assisted Planning Systems.Nueva York, N.Y.: McGraw-Hill (1975).
Este primer texto trata muchas de las preocupaciones que posteriormente fueron reunidas bajo
el encabezado de apoyo para la toma de decisiones. Como 10 dice el tftulo, el enfasis esta en la
planeaci6n de la administraci6n en el sentido clasico.
Cap(tulo 21 / Apoyo para la toma de decisiones 727
21.18 W. H. Inmon: Building the Data Warehouse. Nueva York, N.Y.: Wiley (1992).
Es el primer libro dedicado a los data warehouses. Define el termino y trata los problemas prin-
cipales involucrados en el desarroUo de un data warehouse. Su preocupaci6n principal es la
justificaci6n del concepto y los asuntos operacionales y de disefio ffsico.
21.19 W. H. InmonyR. D. Hackathorn: Using the Data Warehouse.Nueva York,N.Y.: Wiley(1994).
Es una explicaci6n para usuarios y administradores del data warehouse. At igual que otros libros
sobre el tema, se concentra en asuntos ffsicos. Trata en detalle el concepto de almacen opera-
cional de datos.
21.20 P. G. W. Keen y M. S. Scott Morton: Decision Support Systems;An Organizational perspec-
tive. Reading, Mass.: Addison-Wesley (1978).
Este texto clasico es uno de los primeros -si es que no el primero-- en tratar explfcitamente el
apoyo para la toma de decisiones. La orientaci6n es con relaci6n al comportamiento y trata
el analisis, disefio, implementaci6n, evaluaci6n y desarroUo de sistemas de apoyo para la toma
de decisiones.
21.21 Ralph Kimball: The Data Warehouse Toolkit. Nueva York, N.Y.: John Wiley & Sons (1996).
Es un libro practico. Como 10sugiere el subtftulo "Tecnicas practicas para la construcci6n de data
warehouses dimensionales", el enfasis esta centrado en los asuntos pragmaticos y no te6ricos.
La suposici6n tacita es que en esencia, no existe diferencia entre los niveles 16gico y ffsico del
sistema. Por supuesto, esta suposici6n eS completamente valida para los productos actuales;
sin embargo, sentimos que serfa mejor tratar de mejorar la situaci6n en lugar de simplemente
aprobarla.
21.22 J. D. C. Little: "Models and Managers: The Concept of a Decision Calculus", Management
Science 16, No.8 (abril, 1970).
Este artfculo presenta un sistema (Brandaid) disefiado para apoyar decisiones de productos, pro-
mociones, precios y publicidad. El autor identifica cuatro criterios para el disefio de modelos para
apoyar la toma de decisiones de la administraci6n: robustez, facilidad de control, simplicidad y
compleci6n de los detaUesrelevantes.
21.23 M. S. Scott Morton: "Management Decision Systems: Computer-Based Support for Decision
Making", Harvard University, Division of Research, Graduate School of Business Administration
(1971).
Este es el articulo clasico que present6 el concepto de los sistemas de decisiones para la adminis-
traci6n, Uevandoclaramente el apoyo para la toma de decisiones al campo de los sistemasbasados
en computadora. Se construy6 un "sistema de decisiones para la administraci6n" especffico para
coordinar la planeaci6n de la producci6n para equipo de lavanderfa. Luego fue sometido a pruebas
cientfficas con administradores de ventas y de producci6n como usuarios.
21.24 K. Parsaye y M. ChigneU: Intelligent Database Tools and Applications. Nueva York, N.Y.:
Wiley (1993).
Este libro parece ser el primero dedicado a los principios y tecnicas de la minerfa de datos
(aunque se refiere al tema como "bases de datos inteligentes").
21.25 A. Pirotte y P. Wodon: "A Comprehensive Formal Query Language for a Relational Data
Base", R.A.I.R.O. Informatique/Computer Science 11, No.2 (1977).
21.26 R. H. Sprague y E. D. Carlson: Building Effective Decision Support Systems.Englewood Cliffs,
N.J.: Prentice-Hall (1982).
Es otro texto clasico.
Capftulo 21 / Apoyo para la toma de decisiones 729
21.27 Erik Thomsen: 01AP Solutions: Building Multi-Dimensional Information Systems. Nueva
York, N.Y.: Wiley (1997).
Es uno de los primeros libros sobre OLAP y tal vez el mas completo. Se concentra en la com-
prensi6n de los conceptos y metodos de anaIisis usando sistemas multidimensionales. Es un
intento serio para inyectar algo de disciplina en un tema confuso.
21.28 R. Uthurusamy: "From Data Mining to Knowledge Discovery: Current Challenges and Future
Directions", en U. M. Fayyad, G. Piatetsky-Shapiro, P. Smyth y R. Uthurusamy (eds.): Advances in
Knowledge Discovery and Data Mining. Cambridge, Mass.: AAAI Press/MIT Press (1996).
21.8 Hay ocho (= 23) posibles agrupamientos para cada jerarquia y por 10 tanto, la cantidad total de
posibilidades es 84= 4,096. Como ejercicio adicional, tal vez quiera considerar 10 que implica usar
SQL para obtener todos estos resumenes.
21.9 Con respecto a las consultas SQL mostramos solamente las clausulas GROUP BY:
La trampa es que la consulta es ambigua; el tennino (por ejemplo) "enrollado en toda la dimen-
si6n de proveedor" tiene muchos significados posibles. Sin embargo, una interpretaci6n posible
del requerimiento conducir1i a una cl1iusula GROUP BY como esta:
do GROUP
BY CUBE( V#. P# )
Omitimos las tablas de resultados SQL. Respecto de las tabcruz, debe quedar claro que no son una
forma muy buena para desplegar un resultado que involucra mas de dos dimensiones (y entre mas di-
mensiones hay, peor se pone). Por ejemplo, una de estas tabcruz -que corresponde a GROUP BY
V#, P#, Y#- podria verse como esto (en parte):