Bases de Datos en E-Commerce
Bases de Datos en E-Commerce
Bases de Datos en E-Commerce
MACE
Integracin y Funcionalidad
Una compaa que quiera implementar e-commerce necesita en un principio 3
instalaciones distintas de bases de datos para poder proporcionar a sus clientes un buen
servicio; stas pueden ser:
1. Un RDBMS (Relational Data Base Manager System - Sistema Administrador de
Bases de Datos relacionales) en el servidor de Web que tenga la informacin de los
catlogos, informacin personal del usuario y pedidos.
2. Un RDBMS en un Banco afiliado que administre nmeros de tarjetas de crdito que
van a ser procesadas
Pgina 1 de 15
Bases de Datos
MACE
en las transacciones
en la proteccin de datos
Bases de Datos
MACE
Modelo de 3 Capas
Para disear un sitio en internet que permita venta de productos on-line como
libros por ejemplo, se puede usar un modelo como el siguiente, el cual muchas
empresas lo han implementado, una de ellas es la empresa Barnes & Noble.
Ejemplos Desarrollados
IBM DB2 5.2, Informix Dynamic Server 7.2, Interbase 5.5, MS SQL Server 7,
Oracle 8, Sybase Adaptive Server 11.5
A continuacin vamos a intentar introducirnos en cada uno de los productos, buscando
siempre un punto de vista tcnico que resulte asequible, de forma que pueda servir de
referencia a las PYMES de nuestro pas. Por esta misma razn, aunque funcionan en
mltiples plataformas, se ha elegido como servidor de pruebas un sistema basado en
Windows NT.
Caractersticas comunes
Un servidor de base de datos moderno, del tipo de los analizados, debe reunir una serie
de prestaciones. Para empezar, debe soportar al menos un protocolo de red basado en
TCP/IP, aunque no se descartan otros protocolos.
El nmero de clientes que pueden conectarse es, o muy grande, o ilimitado, aunque
siempre sujeto a los recursos del sistema sobre el que se ha instalado. Cada aplicacin
cliente podr conectarse a ms de una base de datos simultneamente.
El lenguaje SQL debe ser la base de la manipulacin de datos, aunque, por desgracia,
pueden existir pequeas diferencias en cuanto a la sintaxis del mismo. Tambin debe
existir una optimizacin de las consultas, con el fin de acelerar el procesado de las
mismas.
Las bases de datos admitirn declaraciones de integridad referencial, incluyendo
procesos en cascada, etc... es decir, se comportarn como autnticas RDBMS.
Igualmente, dispondrn soporte de atomicidad de datos, es decir, podrn iniciar
transacciones que pueden tener un final feliz (commit) o por el contrario todas las
operaciones realizadas sern descargadas automticamente (rollback). Esto va unido a la
Pgina 3 de 15
Bases de Datos
MACE
consistencia de los datos, que obliga a que la base de datos pase de un estado vlido a
otro estado igualmente vlido, entendiendo como vlido a aquel que cumpla las reglas
de integridad impuestas. Siempre debe darse un aislamiento, que hace que las
transacciones en curso sean invisibles, mientras no sean correctamente terminadas, para
el resto del entorno.
Asimismo, se proporcionarn las herramientas que permitan gestionar reas de copia de
seguridad de los datos, restauracin, estadsticas de acceso, mantenimiento general,
reparacin de datos y seguridad de accesos.
Tambin se dar soporte a multitud de tipos de datos que pueden ser usados para definir
los campos de las entidades de la base de datos, obteniendo prcticamente todas las
variantes de los clsicos numrico y alfanumrico de las ancestrales estructuras.
En lo referente a campos BLOB, (se trata de un tipo de dato dimensionable
dinmicamente, sin longitud o tamao fijo, capaz de albergar objetos como imgenes,
sonidos, datos binarios, etc...), su manipulacin puede ser directa, es decir, el contenido
del campo se recupera sin ms, o mediante handles que permiten un rendimiento
superior (se trata de devolver un nmero que identifique el contenido para ser
recuperado con posterioridad, caso de ser de inters). Como veremos, no todos los
servidores de bases de datos tratan de igual manera a los campos BLOB.
La escalabilidad es otro factor a tener en cuenta, ya que si vamos a almacenar gran
cantidad de datos, de alguna manera necesitamos disponer de algn lugar para
guardarlos. Un servidor de bases de datos debe proporcionar soporte tanto si trabaja en
una base de datos local como en una base de datos que est distribuida a lo largo de un
sistema paralelo ms grande. A medida que se necesite ms capacidad o potencia de
proceso, se debe disponer de un sistema de base de datos escalables capaz de manejar
las nuevas necesidades.
En ocasiones se ofrece la posibilidad de compartir datos que pertenecen, fsicamente, a
distintas bases de datos (fenmeno conocido como data replication). Las ventajas que
ofrece son, en primer lugar, que los datos estn disponibles localmente, con lo que se
evitan los problemas de coste y disponibilidad en las transmisiones; y en segundo lugar,
que la velocidad de respuesta ante un requerimiento de datos es, obviamente, mucho
mayor. En cualquier caso, esta replica de datos no puede (y no lo hace) realizarse
alegremente, sino que debe asegurar una integridad transaccional para cada base de
datos y una consistencia en los mismos, minimizando y solucionando los problemas de
que en un mismo instante de tiempo coexistan distintas versiones de una misma
informacin.
Un factor importante es el de la administracin del sistema. Evidentemente, cualquier
sistema de este tipo tiene que facilitar unas herramientas que permitan configurar
infinidad de parmetros tanto de los usuarios como del entorno. Sin embargo, no es lo
mismo trabajar con comandos o ficheros de configuracin que con un entorno grfico.
Tampoco es lo mismo realizar las tareas manualmente o ser ayudados por asistentes. En
definitiva, el mejor sistema es el que se administra slo, y si eso no es posible, por lo
menos que sea lo ms sencillo posible.
Y una ltima aclaracin, relativa a las plataformas -sistemas operativos- admitidos por
cada producto. En las referencias a este particular, siempre nos referimos a la instalacin
de software en el servidor, donde pueden existir versiones muy concretas para diferentes
Pgina 4 de 15
Bases de Datos
MACE
sistemas operativos. Los clientes, por lo general, no tienen tanto problema, existiendo
una conectividad igual -existe soporte de cliente para los mismos sistemas que el
servidor-, pero generalmente es superior, casi universal.
TRANSACCIONES OLAP Y DATA WAREHOUSING
Bases de Datos
MACE
satlites basados en tablas pequeas) y uniones hash (donde se comparan los cdigos
hash antes de comparar los predicados para las tablas implicadas en una unin).
En esta ltima versin tambin se incorpora un tipo de datos (llamado DATALINK)
capaz de referenciar y controlar a un objeto que se encuentra fuera de la base de datos.
La idea es que, a pesar de encontrarse fuera de esta, pueda ser considerado como si no
fuese as, soportando integridad, control de accesos y recuperacin como si se tratase de
unos datos integrados normalmente.
Una adecuada gestin de campos permite el almacenamiento de datos de gran tamao,
incluyendo soporte directo de objetos multimedia como imgenes, sonido, vdeo, etc...
La escalabilidad se obtiene gracias a la posibilidad de particionar la base de datos a lo
largo de mltiples sistemas independientes conectados a travs de una LAN. En este
sentido, DB2 admite mltiples particiones con mltiples procesadores, con las ventajas
del paralelismo SMP y MPP.
Internet es siempre la gran estrella. Con DB2, es posible acceder a los datos de las tablas
usando JDBC -tan potente como escribir directamente C contra la base de datos-, Java y
SQLJ (proporciona tanto el SQL esttico de Java como complementa el soporte de SQL
dinmico del JDBC). Tambin es posible efectuar tareas de administracin a travs de la
Web, y leer los manuales, que estn en formato HTML. Tambin se proporciona un
interface de programacin para PERL en ciertas plataformas.
El programa encargado de las conexiones recibe el nombre de DB2 Connect, que
tradicionalmente ha utilizado el protocolo SNA para conectar con los servidores, aunque
ahora se ha aadido el TCP/IP. De esta forma, se ha popularizado mucho ms la
herramienta, disminuyendo los requerimientos de prestaciones de los clientes. Los
servidores DB2 soportan cualquier comunicacin basada en alguno de los siguientes
protocolos: APPC, IPX/SPX, NetBIOS, TCP/IP, o Pipes con nombre.
Las plataformas que admite el producto son, en principio, OS/2, Windows NT y UNIX.
Esta ltima versin asegura que el software del servidor ha sido adaptado para poder
funcionar con OS/2 Warp, HP-UX, AIX, SCO UnixWare 7, Windows 98, Windows NT
y Solaris.
Finalmente, como ancdota, decir que el producto tiene soporte para el euro,
considerado hasta en el juego de caracteres asociado a las tablas.
Informix
Al igual que Oracle, la presencia de Informix se deja sentir en una gran cantidad de
plataformas, concretamente para Windows NT y UNIX.
Antes de entrar en detalles sobre la potencia de este servidor de bases de datos,
deberamos mencionar las potentes caractersticas de administracin. Un completo
conjunto de herramientas grficas permiten asistir tanto en los procesos de instalacin,
como en la administracin del servidor y de la base de datos, sin necesidad de que el
administrador tenga grandes conocimientos. Existe incluso la posibilidad, con el
Enterprise Command Center, de gestionar mltiples bases de datos remotas desde una
nica y centralizada consola, donde se muestran grficamente tanto las BD como los
objetos que contienen (tablas, ndices, procedimientos,...). Tambin podr establecerse
un calendario de tareas a ejecutar en cualquier objeto o grupo de objetos.
Pgina 6 de 15
Bases de Datos
MACE
Pgina 7 de 15
Bases de Datos
MACE
Los bloqueos se pueden realizar a todos los niveles posibles, desde fila hasta base de
datos, pasando por pginas y tablas. Los niveles de aislamiento son completos,
soportando dirty read, committed read, cursor stability y repeatable read. El lenguaje
sigue las normas de ANSI SQL-92, al igual que tambin se cumple el estndar X/Open.
Los campos BLOB son gestionados de manera excelente, con la posibilidad de
almacenar diversos tipos de datos multimedia (imagen, vdeo, sonido...) o cualquier otro
que requiera un tamao ilimitado. Las consultas SQL pueden utilizarse normalmente
incluyendo a estos campos.
Tambin la seguridad e integridad de los datos es uno de los objetivos de Informix,
incluyendo duplicacin espejo de discos, volcado de seguridad y restauracin de alta
velocidad, transacciones en lnea y un diseo de seguridad conforme a la clasificacin
C2. OLTP y Data Warehousing estn disponibles.
InterBase
Sencillez y potencia son las caractersticas de InterBase, que ana muchas de las
caractersticas de los productos que ya hemos visto.
Su arquitectura multigeneracional permite la manipulacin de transacciones crticas
manteniendo concurrencia de datos y consistencia de los mismos cuando se hace una
operacin mixta, como puede ser la consulta y actualizacin de un entorno determinado.
Esto se consigue creando y almacenando mltiples versiones de cada registro de datos.
En la prctica, dentro de una transaccin, un usuario puede estar modificando un
registro y otro leyndolo simultneamente, ya que se trata de versiones distintas. Para
procesos crticos se pueden usar transacciones que aslen un grupo de cambios de otros
cambios.
El bloqueo aplicado cuando un cliente actualiza datos, sin utilizar transacciones, se hace
exclusivamente a nivel de registro. Esto permite que varios clientes alteren la
informacin de una misma tabla sin colisiones, a excepcin de cuando coincidan en un
mismo punto, donde se produce una serializacin.
La herramienta ISQL (interactive SQL) utiliza un interface grfico para introducir
sentencias SQL de forma sencilla. La sentencia introducida es enviada al servidor,
preparada y ejecutada, recibindose la posible respuesta del mismo. Windows ISQL
puede manejar transacciones, mostrar metadatos y producir y ejecutar fragmentos de
cdigo que contengan sentencias SQL.
En lo que respecta al SQL, el lenguaje utilizado est basado en el estndar ANSI o SQL92. Es posible definir funciones a medida UDF.
La gestin del servidor est basada en un elemento denominado Guardian.
Normalmente es un proceso silencioso que arranca de forma automtica y ofrece sus
servicios, pero dispone de opciones manuales. Para poder efectuar las conexiones
cliente-servidor, adems del necesario TCP/IP, InterBase soporta el protocolo Netbeui
cuando se trata de servidores NT y clientes Windows, as como un modo de conexin
local que no precisa de interfaces de red. La versin 5.5 en concreto, puede soportar
IPX/SPX.
InterBase proporciona dos elementos especficos para Internet: InterClient es un driver
de red para desarrollos en Java, que incorpora un protocolo remoto JDBC para
Pgina 8 de 15
Bases de Datos
MACE
intercambio de datos entre cliente y servidor. Esto significa que el navegador del cliente
no precisa de libreras preinstaladas para poder acceder, a travs de la red, a los datos de
InterBase. Por el otro lado tenemos a InterServer, bajo NT o UNIX, que es el que opera
del lado del servidor, se comunica con InterClient y transmite las operaciones a
InterBase.
Con el fin de acceder de forma ms exhaustiva a la funcionalidad de InterBase, es
posible acceder a una coleccin de funciones o API. Mediante estas funciones se pueden
enviar directamente sentencias SQL a la maquinaria de base de datos, recuperando el
resultado. Este proceso puede parecer muy similar al empleado integrando SQL en las
aplicaciones, pero en realidad tiene una serie de ventajas entre las que destacar el
control sobre la gestin de memoria, el acceso a los mensajes de error y el acceso a los
manipuladores de transacciones y opciones. Para acceder a este API hemos de usar un
compilador de C tal como el MS Visual C++ 2.0 o 4.0 en caso de encontrarnos en el
entorno Windows.
Finalmente, decir que Interbase soporta los handles como opcin a los campos BLOB,
as como matrices de tipos de datos, incluso multidimensionales (pero no matrices de
matrices, que ya sera excesivo). Es posible definir funciones a medida para campos
BLOB, llamadas BLOB-UDF, de forma que se realicen tareas especficas con datos
binarios en formatos ilegibles por el sistema.
MS SQL Server
Esta nueva versin persigue inclinar la balanza hacia un producto que ha ido ganando
adeptos de forma espectacular desde aquella antigua versin con tecnologa de Sybase,
sobre todo porque, aparte de unas consideraciones tcnicas ms que aceptables, tiene
todo el empuje comercial y de soporte de Microsoft.
Se podra decir que, en cierta medida, pretende ser el servidor de base de datos genrico
para Windows, no tanto porque la casa de desarrollo sea la misma, ni siquiera porque el
SQL Server, a diferencia de otros servidores, slo trabaja con plataformas Windows,
sino porque Microsoft promete integracin y soporte total con otros productos suyos,
como, por ejemplo MS Office 2000. En efecto, MS Access 2000 traer consigo un
nuevo MSDE (Data Engine) como alternativa al ya existente, el cual ser totalmente
compatible con SQL Server (tambin ser posible llamar directamente a SQL Server
desde MS Access).
Otra caracterstica son los servicios OLAP integrados en el paquete, que proveen de un
mecanismo de muy fcil uso para aquellos que necesitan analizar datos (concretamente
si los datos son multidimensionales es muy til el servicio PivotTable, integrado en
Excel 2000), ya que es un modo de analizar compleja informacin, potencialmente
esencial en la toma de decisiones. Aquellas organizaciones que comiencen a desplegar
datos de warehouses encontrarn muy interesantes estos servicios. Unido a los servicios
de Warehousing y OLAP est el English Query, que permite, en vez de realizar
consultas estructuradas, hacerlo en lengua inglesa.
La escalabilidad es total. No es necesario decir que el producto puede funcionar en un
servidor NT multiprocesador de elevadas prestaciones, pero si lo es decir que tambin
puede funcionar en un porttil, con Windows 95 o 98.
Pgina 9 de 15
Bases de Datos
MACE
Las caractersticas del SQL Server son muy impresionantes. Tenemos soporte de
transacciones OLTP, una maquinaria de bsqueda de texto completo (que permite
localizar informacin a lo largo de una tabla, lo que hace las delicias si el proyecto a
considerar es para Internet), posibilidad de ejecutar consultas en paralelo, as como
heterogneas y distribuidas, bloqueos dinmicos a nivel de fila (entre otros),
optimizador de consultas, estadsticas automticas, Unicode nativo, replicacin
avanzada (actualizacin multisite e inmediata, posibilidad de mezclas a posteriori y
replicacin transaccional), encriptacin dinmica de datos, ... y un largo etctera.
Pero lo mejor de todo es la sencillez de comprensin y navegacin entre procesos, as
como lo intuitivo de la herramienta. Alrededor de 30 asistentes pueden conseguir que un
usuario sin ninguna experiencia pueda realizar multitud de opciones, o bien facilitar la
vida de los experimentados, que tambin es de agradecer. Uno de los asistentes, por
ejemplo, crea tablas, otro posibilita la importacin o exportacin de bases de datos, otro
facilita la publicacin de informacin en Internet, etc...
Ciertos procesos son automticos, como ocurre con las tareas de autoajuste (por
ejemplo, la gestin automtica de memoria o la de espacio en disco, que puede ser
asignado dinmicamente conforme crece el tamao de las tablas) y otros casi lo son (el
asistente Index Tuning sugiere los ndices que deberan ser creados para mejorar
sustancialmente el rendimiento, lo que nos convierte a todos en candidatos para ser
administradores de BD). Unas herramientas auxiliares, como el Query Profiler o el
Query Analyzer habilitan colecciones y anlisis de bases de datos, junto con la actividad
de las consultas.
Los protocolos de red soportados con garanta de funcionamiento son los siguientes
TCP/IP, Pipes con nombre, IPX/SPX, AppleTalk ADSP y Banyan VINES.
Oracle
A pesar de llevar ya algn tiempo en el mercado, la versin 8 de Oracle sigue, junto con
MS SQL Server, liderando el mercado de NT. Adems de Windows, el servidor Oracle
puede funcionar en una gran cantidad de sistemas operativos y diversidad de hardware.
Prcticamente, tenemos a toda la familia de UNIX, pero adems a VMS, MVS, VM, HP
MPE/XL, Siemens, ICL, Novell Netware y OS/2. Adems, el funcionamiento est
optimizado para ajustarse a las particularidades de cada sistema operativo. En el caso de
Windows NT, por ejemplo, Oracle se ajusta al modelo de ejecucin de hilos o procesos
que aporta el sistema.
Dentro de la idea de Oracle de potenciar los grupos de trabajo distribuidos, se necesita
un acceso a los datos de dichos grupos. En este sentido, se posibilitan consultas y
actualizaciones distribuidas permitiendo la comparticin de datos a travs de mltiples
servidores, con una consistencia de los datos basada en un commit de dos fases (proceso
que resulta transparente al usuario). Igualmente se proporciona replicacin de los datos,
con las ventajas anteriormente enunciadas, y enlaces a bases de datos de forma que
permiten a los datos remotos ser definidos y usados como si fuesen locales.
Oracle Enterprise Manager proporciona la posibilidad de gestionar mltiples grupos de
trabajo remotos desde una nica y centralizada consola. El administrador ver una
representacin grfica de todos los objetos importantes. Tambin podr establecer un
calendario de tareas a ejecutar en cualquier objeto o grupo de objetos, para lo cual puede
verse ayudado por el Intelligent Agent, presente en cada servidor, que obedece las
Pgina 10 de 15
Bases de Datos
MACE
rdenes enviadas desde la consola central. Otro cometido de este agente es detectar
problemas que puedan ir surgiendo e informar de los mismos.
En lo referente a Internet, las aplicaciones Web pueden acceder a los datos almacenados
en las bases de datos de Oracle, as como presentar documentos HTML generados
dinmicamente a partir de un modelo y una consulta. Sin embargo, para conseguir una
ptima conectividad basada en Java o soporte procedimental de este, es necesario acudir
a la reciente aparicin de Oracle 8i.
Oracle soporta paralelismo dentro de una consulta, lo que proporciona un incremento
notable en su ejecucin. Tambin soporta proceso de transacciones on-line y data
warehousing, atendiendo a las caractersticas de manejabilidad, escalabilidad,
rendimiento y soporte entre plataformas. Tenemos una arquitectura de servidor con
ejecucin multi-hilo y rendimiento de multiprocesadores simtricos SMP. En cuanto a
los bloqueos, admite bloqueos a nivel de fila sin restricciones.
Las bases de datos pueden crecer hasta lmites que en la prctica podran considerarse
inalcanzables y, gracias a un rediseo respecto versiones anteriores, se han eliminado
ciertos cuellos de botella. Las caractersticas tal vez ms relevantes en lo referente a la
escalabilidad reside en las tablas particionadas, que son tablas que pueden dividirse a lo
largo de mltiples dispositivos de almacenamiento de acuerdo con valores
preestablecidos y el multiplexado y pooling de conexiones.
Precisamente la gestin de conexiones se realiza mediante cierto software especfico.
Concretamente, el software de red antes llamado SQLNet, ahora se denomina Net8, que
aparte de cambiar de nombre ha avanzado tanto en sus caractersticas (interfaces de
programacin, navegadores Internet con soporte Java y servicios de red adicionales) y
rendimiento, como en facilidad de uso. El objetivo fundamental de Net8 es establecer
sesiones y transferir datos entre un cliente y un servidor o entre dos servidores. No
obstante, para obtener multiplexado en conexiones (se combinan varias conexiones de
clientes entrantes hacia una nica conexin de salida hacia el servidor), es necesario un
componente adicional, denominado Connection Manager.
Los protocolos de red soportados por Oracle son los siguientes: Net8, TCP/IP, IPX/SX,
Pipes con nombre, DECNet, DCE, NDS y LU6.2 (APPC).
Entre las caractersticas del SQL podemos destacar a una optimizacin independiente de
la sintaxis, unas consultas star y una generacin de estadsticas de tablas (ANALIZE).
Pero lo que realmente incrementa drsticamente el rendimiento es el soporte de
referencias a objetos (refs) que son rpidos punteros a tablas, los cuales sustituyen a las
lentas y tradicionales uniones relacionales. Con las refs podemos trabajar con tablas de
objetos mediante las habituales consultas relacionales SQL, consiguiendo una excelente
interoperatividad entre objetos y tablas. Este sistema, sabiamente utilizado, puede
cambiar el modo en el que las BD relacionales son diseadas.
Existen ciertos mtodos de extensibilidad (capacidad de aadir nuevas posibilidades a la
base de datos), basados en un soporte limitado con llamadas en C. Por desgracia no son
tan brillantes como los proporcionados en DB2 e Informix Universal Server.
Un componente denominado Self-Tuner es el encargado de optimizar el rendimiento de
la base de datos de forma automtica. Para ello analiza los recursos de los que dispone
el sistema y los requerimientos de la aplicacin mientras la BD est en funcionamiento,
Pgina 11 de 15
Bases de Datos
MACE
Pgina 12 de 15
Bases de Datos
MACE
Pgina 13 de 15
Bases de Datos
MACE
Pgina 14 de 15
Bases de Datos
MACE
Pgina 15 de 15