![]() |
|
|
Antes de contestar eso, sería conveniente saber porque nuestro sistema requiere de una Base de Datos y no es capaz de prescindir de una base de datos en ciertas situaciones. La gran mayoria de la información en un sistema de computo se encuentra basada en un tipo de "File System" en archivos denominados "Flat Files". El tipo de "File System" generalmente depende del sistema operativo y la funcionalidad que se requiera de la información, Windows utiliza VFAT o NTFS , Sun utiliza NFS , Linux usa ext2 . A pesar que los detalles de un "File System" son complejos, para el usuario final el accesar los archivos ("Flat Files") y subdividirlos por directorio es una operación transparente, el sabe que genero un archivo presentacion.ppt o clases.doc pero esta insulado de saber que es o como funciona un "File System".
| NOTA: Aunque en el sentido más estricto de la palabra estos "Flat Files" puedan ser considerados "Bases de Datos", la Industria casi ha reservado el termino "Base de Datos" a productos o implementaciones que utilizen control de transacciones avanzadas, que cumplan con el "ACID test" mencionado a continuación. |
Que sucede cuando ocurre una actualización o búsqueda en un "Flat File" ?. Tomemos el caso de una aplicacion de servidor que realiza una búsqueda o actualización de usuarios en un "Flat File".
El archivo usuarios.txt contiene varios datos de los usuarios , toda la información se encuentra separada por espacios.El primer problema es realizar una búsqueda en este archivo "usuarios.txt": Una vez escrito un programa que realize la busqueda, este programa deberá leer TODO el archivo para localizar la información, si este archivo contiene 1000 o 2000 usuarios, cada vez que se requiera información es necesario leer TODO el archivo de nuevo, y en una aplicacion que realize varias busquedas por segundo esto puede resultar ineficiente.
El segundo problema es la actualización de información, suponiendo que en el mismo instante se dan de alta dos usuarios, el programa que haya sido escrito debe agregar dos lineas al archivo "usuarios.txt" con la información adecuada. Dependiendo como haya sido escrito el programa pueden ocurrir tres cosas:
El problema se agrava aún más cuando estas transacciones contienen información critica como una transaccion financiera , donde se debe garantizar que un "deposito a cuenta" de un cliente genere una "deduccion de cuenta" a otro. Que ocurre si se depositan $10,000 al "usuario X", pero a la mitad de la transacción el equipo de computo falla, y al "usuario Y" no se le deducen los $10,000 ?. Esta es la razón de ser de una Base de Datos.
| Notese que para sitios de Internet que no requieran de alta complejidad o control de transacciones (* OL Inter *) , un "flat file" es una solución viable (Vea Lectura y Escritura de Datos en Perl ) |
Se dice que toda "Base de Datos" debe de cumplir con la prueba del acido, denominada "ACID" (Atomicity,Consistency,Isolation,Durability).
La prueba del Acido garantiza que nuestra información mantenga una forma consistente, pero aún falta otro tema importante que ataca una Base de Datos que un "Flat File" no puede proporcionar.
Es posible Indexar un archivo como el mencionado anteriormente (usuarios.txt) y cargarlo en memoria, pero recordemos que este archivo puede llegar a contener miles de lineas de información y en cada ocasión que se realize una busqueda el programa tendrá que tener preparado un indice para eficientizar la busqueda, a pesar que existe la posiblidad de indexar un "flat file", cada vez que se realize una actualización al "flat file" será necesario leer TODO el archivo de nuevo para mantener la información vigente ( DOM en XML soluciona algunos de estos aspectos ), aunado a esto existe el problema del uso del lenguaje secuencial que debe ser utilizado para actualizar el indice.
Como solución al uso del lenguaje secuencial surgió el modelo relacional,es por esto que muchos productos de Bases de Datos son denominados "RDBMS" ("Relational Database Management Systems"), la mayor ventaja que presenta este modelo relacional es la utilización del lenguaje SQL ("Structured Query Language") que es un lenguaje declarativo ("declarative").Una gran parte de los lenguajes son de caracter secuencial ("procedural"), un programador debe de indicar paso a paso que debe ejecutarse por medio de un procedimiento, los ejemplos clásicos son C,Fortran,Pascal....; en SQL el programador es capaz de declarar un funcionamiento : "deseo cumplir los siguientes requisitos".
Lo anterior presenta dos ventajas a un lenguaje secuencial , la primera es que las busquedas no dependen de la representación de los datos, la base de datos es libre de guardar la información como a esta le convenga y la otra ventaja es la facilidad con la que se puede ejecutar una búsqueda o actualización sin la necesidad de escribir código fuente complejo.
Para realizar esta tarea cada base de datos contiene una parte denominada "optimizador" o "ejecucion de busqueda" que es el encargado de determinar: donde,como y que deberá ser ejecutado para realizar una actualización o busqueda en la Base de datos.
Existen varios vendedores de Bases de Datos,pero quizas la marca que tiene mayor mercado es Oracle , y en orden de uso posiblemente le sigan: Sybase, Solid, Postgres ,MySql y DB2; todas ofrecen las funcionalidades antes mencionadas y utilizan el lenguaje SQL, sin embargo, debido a la misma complejidad de las operaciones que se llevan acabo, cada vendedor utiliza diferentes algoritmos y diseños por lo que el migrar y aprender a utlizar un producto de cierta compañia requiere de un esfuerzo e inversión substancial.
Oracle es una de las Bases de Datos que ofrece mayor funcionalidad en muchas areas, ya que ofrece paquetes con operaciones logicas por industria (orientaciones hacia SCM "Supply Chain Management" , servidor-paginas ("Web-Server") , CRM's , entre otras..., sin embargo su costo es de los más altos en la Industria, pudiendo oscilar desde $10,000 Dlls U.S hasta $750,000-$1,000,000 Dlls dependiendo de las funcionalidades utilizadas, y esto solo es el software basico , sin incluir administración o desarrollo de aplicaciones.
Ahora, dentro del ramo Open-Source existen varias alternativas que por su costo/beneficio quizas sobrepasen a Oracle, una de estas implementaciones es Postgres, aunque cabe mencionar también existen otras Bases de Datos Open-Source como: MySql o Interbase.
Links:
|
| Le intereso el contenido ? | Quizas requiera un servicio de Tecnologia ? | Le gustaria que le avisaramos de nuestras actualizaciones ? |
| Recomiende esta pagina a un amigo | Servicios OsmosisLatina | Agregese a la lista de correo de OsmosisLatina |
| webmaster@osmosislatina.com | ©2000-2001 OsmosisLatina |