Академический Документы
Профессиональный Документы
Культура Документы
Introduccin
En este artculo se va a presentar un sistema completo de publicacin de datos en Internet,
utilizando el navegador de Internet como cliente, y como servidor de bases de datos actuar el
servidor de web Apache con una extensin llamada PHP.
Todos los elementos del sistema se pueden obtener sin ningn tipo de coste por lo que el montaje
inicial del sistema y su uso no conllevan ninguna inversin. Es ms, a excepcin de MySQL, de la
que hay que comprar licencias en el caso de que se quiera vender sistemas que la incluyan, todos
los dems elementos tienen licencia GPL [1]
Durante el desarrollo del artculo se describirn cada una de las piezas del sistema que
acompaan a GNU/Linux, hacindose especial hincapi en como se relacionan. Es conveniente
para el lector tener unas nociones bsicas de bases de datos ya que al ser un tema muy amplio no
se podr tratar con detalle en el artculo, aunque se intentarn aclarar los conceptos principales a
medida que vayan apareciendo.
Y quizs la parte fundamental del artculo sea el ltimo apartado donde se intentar llevar al lector
paso por paso en la instalacin de todo el sistema, hasta llegar a tener el sistema completo
funcionando. Con ello y junto con un software desarrollado por la empresa Desarrollo y Recursos
[9] y bajo licencia GPL, se tendr un sistema de creacin, gestin y uso de bases de datos
utilizando Internet que puede aportar una gran utilidad en cualquier tipo de proyectos.
INTRODUCCIN AL SISTEMA
Como una motivacin previa y para que el lector pueda tener una visin global desde el principio,
se presenta en este apartado una visin global del sistema. En el siguiente grfico se destacan las
partes fundamentales.
En este primer esquema se puede ya ver que toda la interaccin con la base de datos se hace a
travs de PHP, y como PHP tiene soporte para una amplia gama de bases de datos, el sistema
descrito en este artculo es fcilmente adaptable a diferentes bases de datos con cambios mnimos
en el cdigo que se encarga de acceder a la base de datos.
APACHE
Apache es el servidor de web por excelencia. Ha sido uno de los mayores xitos del software libre
y su supremaca entre los servidores de web no se ve amenazada (ni si quiera por el servidor de
web de Microsoft).
En el primer nmero de Linux Actual se dedic un artculo completo a este servidor de web por lo
que recomendamos al lector interesado su lectura. En las referencias [2], [3], [4] y [5] el lector
podr ampliar tambin informacin sobre este servidor de web.
En el manual de PHP se describe a PHP como: << PHP Version 3.0 es un lenguaje de
programacin que se introduce dentro de las pginas HTML. La mayora de sus sintaxis est
basada en C, Java y Perl. El principal objetivo del lenguaje es permitir a los desarrolladores de
aplicaciones basadas en el web escribir pginas que se generan de forma dinmica de una forma
sencilla y rpida. >>
PHP [7] es un lenguaje de programacin del lado del servidor. Esto es, es un lenguaje que nos
permite programar aplicaciones asociadas al servidor de web, aumentando la funcionalidad de
dicho servidor y convirtindolo en un sistema de desarrollo de aplicaciones cliente/servidor mucho
ms completo.
Ha sido un evolucin de un lenguaje conocido como PHP/FI (Personal Home Page/ Form Input), el
cual debido a su gran xito, fue totalmente remodelado tras la versin 2.0 lo que oblig a ciertas
incompatibilidades bastante molestas a la hora de actualizar el antiguo cdigo.
El nuevo PHP, cuya versin es la 3.0 para mantener una cierta asociacin con su progenitor, ha
sido ampliado con aspectos tan importantes como conceptos de programacin orientada a objetos,
y su sintaxis es ahora mucho ms cercana a la de C, por lo que cualquier programador que haya
programado en C no tardar mucho tiempo en aprender a utilizar el lenguaje.
Las construcciones sintcticas de PHP son ms cercanas a Perl que a C ya que en su diseo se
busc un lenguaje til con el que se programara muy rpido, es decir, que fuera un lenguaje muy
productivo al ms puro estilo de Perl.
PHP est en continuo desarrollo y como detalle curioso citar que se ha votado por Internet el
significado del acrnimo durante Abril de 1998, publicndose el resultado del 19 de Abril: PHP
significa PHP Hypertext Preprocessor (acrnimo recursivo al estilo GNU significa GNU is Not Unix).
Oracle
PostgreSQL
Sybase
Adabas D
FilePro
MySQL
Velocis
Solid
dBase
Generic ODBC
Unix dbm
De hecho es bastante sencillo portar la aplicacin que se describir al final de este artculo de
MySQL a cualquiera de ellas ya que las funciones de acceso que ofrece PHP son en muchos
casos de sintaxis compartida.
Quizas MySQL es la que mejor soporte tiene por parte de PHP junto con PostgreSQL, debido a
que ambas bases de datos son de libre distribucin, con el cdigo fuente, y con un acceso muy
sencillo a travs del lenguaje C.
MYSQL
En el mundo de GNU/Linux es MySQL junto a PostgresSQL [10] los principales SGBD de uso libre
y con cdigo fuente. Las grandes compaas de bases de datos como Software AG [11] estn
comenzando a ver en GNU/Linux un nuevo mercado y estn portando sus grandes sistemas a
GNU/Linux. ADABAS es un SGBD del nivel de Oracle o Illustra de Informix y est portado a Linux,
lo que constituye una opcin muy importante a grandes empresas donde el acceso a los datos sea
crtico y donde se necesite un soporte comercial. Incluso el servidor de bases de datos de Oracle
se puede ejecutar en Linux utilizando el binario de SCO Unix y el mdulo de compatibilidad de
binarios iBCS.
MySQL est al igual que PHP en fase de pleno desarrollo. Se estn publicando de forma regular
nuevas versiones del sistemas, as como herramientas que son bsicas en cualquier SGBD actual:
En el servidor de MySQL [12] podemos encontrar una comparacin exhaustiva entre diferentes
SGBD: MySQL, mSQL, PostgreSQL 6.3, Oracle, Solid y Empress.
Quizs una de las cosas que ms se agradecen de MySQL es que las bases de datos las
almacena creando un directorio por cada una de ellas, y dentro de dicho directorio, crea tres
ficheros por tabla donde se almacenan los registros de la tabla y la definicin de la tabla. El copiar
una base de datos es tan fcil como copiar un directorio por lo que hacer copias de seguridad de
las mismas es algo de lo ms sencillo.
EL SISTEMA COMPLETO
En este apartado se quiere facilitar al lector la tarea de instalar el sistema completo desde el
principio. Para ello se detallan los pasos a seguir para la compilacin e instalacin de los diferentes
paquetes aunque la ltima palabra siempre la tendrn la documentacin de cada paquete en
particular. En algn caso la descripcin que aqu se hace pudiera no ser completa y el lector tendr
que recurrir a las instrucciones de instalacin de cada uno de los paquetes. Para cualquier duda se
puede consultar con el escritor del presente artculo en: castillo@dyr.es.
El sistema donde ha sido probado el sistema completo es Debian 1.3.1, que se entreg con el
primer nmero de Linux Actual. Con cualquiera otra distribucin de Linux los cambios sern
mnimos y perfectamente documentados dentro de la documentacin de cada paquete.
La compilacin del cdigo fuente puede plantear problemas para usuarios inexpertos pero desde
aqu se recomienda encarecidamente al lector que intent compilar el sistema. En un mundo tan
evolutivo como Linux el saber compilar aplicaciones llega a ser vital ya que, los programas cambian
muy rpidamente y no siempre se disponen de binarios ya compilados, y los binarios ya
compilados puede que no se adapten a nuestras necesidades. Y desde el punto de vista didctico,
se aprende mucho enfrentndose a este tipo de problemas.
De cualquier forma y si el lector prefiere obtener el binario resultado del proceso descrito a
continuacin lo puede obtener de [13].
MySQL
El primer paso es obtener MySQL, compilarlo e instalarlo. Para ello podemos obtener la ltima
versin de [8]. En el momento de escribir este artculo dicha versin era la 3.21.29-gamma
Como se habitual lo que obtenemos es un archivo .tgz, que deberemos descomprimir para poder
continuar con la instalacin: tar xvfz mysql-3.21.29-gamma.tar.gz.
Si no hay problemas en este paso con un simple make se crear el demonio servidor de bases de
datos (mysqld), los clientes de acceso y programas de gestin junto con las libreras necesarias
para poder acceder desde nuestros programas en C a la base de datos.
Tras finalizar la compilacin pasamos a instalar MySQL. Para ello necesitaremos ponernos en el
papel de superusuario y ejecutar: make install. Con esta orden se copian bajo /usr/local/ en los
direcotorios adecuados los binarios y las libreras. En especial cabe resaltar que las bases de datos
se crean dentro del directorio /usr/local/var. Para crear la primera base de datos conocida como
mysql y que contiene los permisos de acceso a las bases de datos, ejecutamos desde el directorio
actual la orden: scripts/mysql_install_db. Con ello se crear esta primera base de datos
en /usr/local/var/mysql y se arrancar el demonio de la base de datos.
Con esto queda finalizada la compilacin e instalacin de MySQL. Para arrancar el demonio
servidor de bases de datos hay que ejecutar /usr/local/libexec/mysqld, aunque dicho demonio est
ya arrancado tras el ltimo paso de la instalacin.
Entre las herramientas que acompaan a MySQL cabe destacar mysql que se encuentra
en /usr/local/bin y que permite ejecutar comandos SQL sobre la base de datos.
Ante cualquier problema hasta este momento se recomienda al lector que acuda a la
documentacin de MySQL y si esta no logra resolver su duda, puede contactar con el autor del
artculo.
PHP y Apache
Una vez instalada MySQL pasamos a compilar PHP. De nuevo hay que obtener la ltima versin de
[6] que el momento de escribir el artculo era la 3.0RC4. Los pasos de instalacin son similares a
MySQL y estn documentados dentro del fichero INSTALL de la distribucin de PHP. Tan solo la
salvedad de que debemos tener la ltima versin de Apache obtenida de [2], que en el momento de
escribir el artculo era la 1.2.6, descomprimida ya que a PHP hay que decirle donde puede
encontrar las fuentes de Apache. En el paso 3 hay que sustituir ruta-acceso por el directorio donde
el lector haya ejecutado: tar xvfz apache-1.2.6.tgz.
Asimismo y dentro de este mismo fichero aadimos a EXTRA_LIBS las opciones que aparecen
tras LIBS dentro del fichero libphp3.module.
Una vez hecho esto ejecutamos make proceso que finalizar con la creacin del ejecutable httpd,
que es el servidor de web Apache con el soporte para PHP incluido. Ejecutamos strip httpd y
copiamos dicho servidor a/usr/local/bin, para que no interfiera con el servidor de web instalado por
Debian, si es que ha sido instalado.
Hay que modificar el fichero de configuracin de Apache srm.conf para indicar al servidor que los
ficheros con extensin .phtml deben ser tratados por el mdulo de PHP. Esto se hace incluyendo
en el lugar adecuado la lnea:AddType application/x-httpd-php3 .phtml.
Paramos el servidor Apache incluido con Debian (/etc/init.d/apache stop), si es que lo hemos
instalado y en funcionamiento, y ejecutamos /usr/local/bin/httpd como superusuario. En el caso de
que no encuentre Apache los ficheros de configuracin del demonio, bastar con copiar los ficheros
de /etc/apache a /usr/local/etc/httpd.
Una vez llegado a este punto ya tenemos el servidor de web Apache con soporte para PHP
corriendo en nuestra mquina Linux.
Probando el sistema
Para ver que todo est funcionando correctamente basta con crear un fichero prueba.phtml con el
contenido:
<? phpInfo();?>
Dicho fichero ha de ser visualizado a travs del servidor de Apache para que mdulo de PHP lo
preprocese antes de enviarlo al usuario.
Los <? indican el comienzo y ?> fin del cdigo PHP dentro de la pgina HTML y la
funcin phpInfo() vuelca en HTML un informe completo del mdulo PHP con informacin sobre la
versin del servidor de Apache, la versin de PHP, los soportes de acceso a bases de datos
incluidos y mucha ms informacin.
Si el lector ha logrado ver est pgina todo ha funcionado correctamente y el sistema est
preparado para el uso desde el web del SGBD MySQL.
De cualquier modo si el lector no ha logrado llegar a este paso final se pone a disposicin de l el
binario del servidor Apache precompilado para Linux en [13], pgina desde la que tambin podr
consultar nueva informacin del artculo o contactar con el autor para la resolucin de dudas.
Dentro de mi trabajo para la empresa Desarrollo y Recursos S.L. (DyR) [9] tuve el problema de
cmo facilitar el uso de MySQL para la gestin integral de los datos de la empresa.
Para MySQL no exista ninguna interfaz web, aunque si una para el entorno grfico de Linux
conocida como xmysql. Asimismo junto con la distribucin de MySQL se incluye una interfaz de
lnea de comandos desde la que gestionar todo el sistema conocida como mysql.
La interfaz web permite el acceso a la base de datos desde cualquier punto de la intranet que
tenga un navegador de web, por lo que los ordenadores con Windows 95, MacOS o OS/2 no
tendran ningn problema para acceder a las bases de datos, normalmente para la introduccin y
consulta de datos.
Por ello inici el desarrollo de una interfaz web a la base de datos ya que esto permitira el acceso
a los datos desde cualquier punto de la intranet a travs de un cliente web, as como la gestin de
las diferentes bases de datos.
En este apartado se puede crear, borrar y listar las bases de datos actualmente disponibles en el
sistema.
Gestin de Tablas
En este apartado se pueden crear tablas, borrarlas o eliminar todos los registros que tuvieran.
La creacin de tablas es sin duda el programa ms complejo del sistema ya que tras indicar el
nmero de campos y el nombre de la tabla, se ha de poder indicar el tipo de campo para cada uno
de los que se van a crear, la longitud en caso de tipos variables, y si el campo es clave nica o no
lo es.
Esta parte del sistema necesita mejoras como aumentar el nmero de tipos y gestionar de forma
correcta el campo de longitud, aunque la funcionalidad actual es bastante til.
Desde el momento que se crea una tabla se puede ir a la parte a la parte de insercin de datos
desde la que se podrn introducir registros nuevos para esa tabla.
Gestin de Datos
Este ltimo apartado es el que mayor valor aadido encierra. Desde l se pueden acceder a los
datos bien volcando todo su contenido o realizando una bsqueda.
Tambin se pueden modificar registros siempre que la tabla tenga definida una clave nica ya que
sino no sera posible localizar a un registro en particular.
La insercin de datos nos permite introducir nuevos registros dentro de una tabla ya creada dentro
de una base de datos.
Por ltimo el borrado de datos nos permite despus de una bsqueda eliminar un conjunto de
registros.
Los planes futuros para esta interfaz son su traduccin al ingls y su adaptacin a otras bases de
datos, principalmente PostgreSQL y Adabas.
El software en su totalidad ha sido puesto bajo licencia GPL convirtindose DyR en una de las
empresas que comienzan a apoyar la filosofa que acompaa a GNU/Linux, alejndose del modelo
de empresa que explota GNU/Linux pero que no lo apoya ni promociona.
CONCLUSIONES
GNU/Linux es un sistema operativo ideal para aplicaciones de red que requieran un funcionamiento
robusto de forma continuada. Este es el caso de los servidores de bases datos, programas que
permiten el acceso a los datos de una empresa, de un proyecto o de cualquier tipo de
organizacin, datos normalmente vitales.
La robustez y eficiencia de Linux ha hecho que empresas como Software AG hayan portado bases
de datos del renombre de Adabas a Linux, y a precios muy inferiores a otros entornos. As
GNU/Linux se afianza en otro nuevo campo del mundo software, un campo muy importante y que
puede ayudarle a multiplicar una confianza que comienza a palparse dentro del mundo
empresarial.
Referencias
[1] http://www.gnu.org/copyleft/gpl.html
[12] http://www.tcx.se/crash-me.html
[13] http://www.dyr.es/~acs/linux-actual/bd.html
http://acsblog.es/articulos/trunk/LinuxActual/BasesDatosLinux/html/
SOFTWARE LIBRE
Con el advenimiento de Internet, el software libre se ha consolidado como alternativa,
tcnicamente viable y econmicamente
sostenible al software comercial, contrariamente a lo que a menudo se piensa,
convirtindose el software libre como otra alternativa para ofrecer los mismos servicios a
un costo significativamente reducido, encontrando estas alternativas tanto
parasistemas operativos, herramientas de ofimtica, software especializado,
manejadores de bases de datos, para este caso nos basaremos en los
manejadores de Bases de Datos, se pretende determinar un soporte para
recomendar a una empresa la utilizacin de estos recursos de distribucin
libre, de la misma forma en que se confa en software propietario o mucho
mejor, para la toma de esta decisin se debe tener en cuenta factores como;
seguridad en el almacenamiento de los datos, ventajas que proporciona un
manejador de base de datosgratuito, volmenes de informacin que soportara,
cual es su rendimiento, complejidad en la migracin de los datos, soporte
ofrecido, sistema de backup, confiabilidad ofrecida, considerando estos
elementos como importantes para un buen desempeo en la aplicacin y con
esto el soporte de la decisin.
De igual manera de deber tener en cuenta cual es la B.D ms optima, cual me ofrece
mayores garantas en mi desarrollo especfico, que detalles de implementacin debemos
tener en cuenta para elegir nues
tro sistema de gestin de bases de datos, se convierte en una gran preocupacin y
responsabilidad el conocer las caractersticas ventajas y desventajas, no d
esconocemos que las herramientas constituyen un aspecto fundamental a la hora de
desarrollar un proyecto o una implementacin, las caractersticas de los proyectos, de las
compaas o las necesidades hacen prioritario que estas herramientas se ajusten a esos
requerimientos especficos, por estas razones se debe profundizar e investigar las
diferentes alternativas que se tienen al alcance ,evitando inconvenientes posteriores como
son, perdida de tiempo, perdida de dinero o aun ms grave comprometer la
credibilidad profesional al avalar un concepto tcnico sin el suficiente soporte y
conocimiento.
De los dos tipos de licenciamiento que se van a tratar aqu es (comercial y Libre), optando
por la utilizacin de MySql Server y Sql Server 2000 por las siguientes razones:
MYSQL SERVER
Su bajo consumo lo hacen apto para ser ejecutado en una mquina con escasos recursos
sin ningn problema.
El conjunto de aplicaciones Apache-PHP-MySQL es uno de los ms utilizados en
aplicaciones en ambiente Web.
Velocidad a la hora de realizar las operaciones.
Segn las cifras del fabricante, existiran cinco millones de copias de MySQL corriendo en
la actualidad, lo que supera la base instalada de cualquier otra herramienta de bases de
datos.
SQL SERVER
Las utilidades de administracin de este gestor son envidiables para muchos de los gestor
es comerciales existentes, debido a su gran facilidad de configuracin e instalacin.
Es utilizada por una gran cantidad de usuarios haciendo esto que sea muy popular y de
fcil acceso.Otros Criterios para los dos manejadores seleccionados Por conocimiento en el
manejo de los dos SGBD Por facilidad en obtener los medios de instalacin
Por facilidad en el acceso de la documentacin para cada SGBDMicrosoft SQL Server
vs. MySQL
Autntico entorno multitarea sin lmites. Realice ms tareas al mismo tiempo, por ejemplo,
puede reproducir uno de sus temas musicales preferidos, explorar la presencia de virus en
segundo plano y simultneamente editar un video o fotografas. El potente procesador
Intel Core 2 Duo para PC de desktop le brinda la velocidad que necesita para realizar todas
y cada una de las tareas imaginables.
Comentarios del autor: El procesador Intel Core 2 Duo fue diseado desde el comienzo
para asegurar un uso eficiente de la energa, lo cual permite disfrutar de diseos de PC de
desktop ultra silenciosos, delgados y de mayor desempeo con un menor consumo de
energa. Se pueden ejecutar ms tareas al mismo tiempo, rindiendo la velocidad que
necesita para realizar todas y cada una de las innumerables tareas. A nivel de las empresas
sera de gran beneficio contar con ello ya que ofrecen la seguridad y administracin de
tecnologas de informacin de prxima generacin con tecnologas preventivas basadas en
hardware de seguridad y nos ofrece un excepcional desempeo y un consumo eficaz de
energa.
http://norela1904.blogspot.com/