Está en la página 1de 34

XAMPP Es un paquete formado por un servidor web Apache, una base de datos MySQL y los intrpretes para los

lenguajes PHP y Perl. De hecho su nombre viene de hay, X (para cualquier sistema operativo), A (Apache), M (MySQL), P (PHP) y P (Perl). XAMPP es independiente de plataforma y tiene licencia GNU GPL. Existen versiones para Linux (testeado para SuSE, RedHat, Mandrake y Debian), Windows (Windows 98, NT, 2000, XP y Vista), MacOS X y Solaris (desarrollada y probada con Solaris 8, probada con Solaris 9). Una de las ventajas de XAMPP es que de una forma muy sencilla y rpida (no ms de 5 minutos) te puedes montar en tu mquina un entorno de desarrollo de cualquier aplicacin web que use PHP y base de datos. La configuracin por defecto de XAMPP tiene algunas deficiencias de seguridad por lo que no es recomendable usarla como una herramienta para produccin, sin embargo con algunas modificaciones es lo suficientemente seguro para ser usada como servidor de sitios web en internet. Desde LAMPP (Linux AMPP) sique podr hacer una instalacin segura haciendo "/opt/lampp/lampp security".

XAMPP no es para uso en produccin, pero para los desarrolladores en un entorno de desarrollo, el uso como localhost en una red local cerrado se recomienda. La forma en que XAMPP est configurado es estar abierto como sea posible, y permitir que el desarrollador de cualquier cosa que l / ella quiere. Para entornos de desarrollo esto est muy bien, pero en un entorno de produccin podra ser fatal. Aqu est una lista de (algunas) de las medidas de seguridad que faltan en XAMPP: - El administrador de MySQL (root) no tiene contrasea. - El demonio MySQL es accesible a travs de la red. - PhpMyAdmin es accesible a travs de la red. - Ejemplos de ello son accesibles a travs de la red.

Para solucionar la mayora de las debilidades de seguridad, simplemente llame a la siguiente direccin URL: http://localhost/security/ La contrasea de root para MySQL y phpMyAdmin, y tambin la proteccin directorio XAMPP se puede establecer aqu. Todas estas medidas se deben tomar si el servidor est en una LAN con una conexin a Internet, aunque esto debe estar detrs de un firewall de hardware. * NOTAS APACHE (1) A diferencia de Apache 1.x, no puedes dejar de Apache 2.x con el comando "apache-k shutdown". Esto solo funciona para una instalacin como servicio de NT. Use el botn Panel de control. En el caso de Apache no se instala como un servicio, basta con cerrar la ventana de comandos DOS Apache para el cierre. Esta ventana se puede minimizar durante el funcionamiento normal. (2) Para utilizar la versin experimental de mod_auth_mysql, eliminar el comentarioout # al inicio de la lnea correspondiente, en el archivo httpd.conf. Informacin detallada sobre este tema se puede encontrar en el men barra de navegacin izquierda de la pgina de administracin de XAMPP. (3) Para utilizar mod_dav cargar los mdulos y mod_dav.so mod_dav_fs.so en el "httpd.conf" quitando el # en el comienzo de sus lneas. Reinicia Apache. A continuacin, intente http://127.0.0.1:81 (para Dreamweaver, no para MS Frontpage!) * NOTAS MYSQL (1) El servidor MySQL puede ser iniciado en el panel de control de Xampp, de lo contrario, haciendo doble clic en (la ejecucin) mysql_start.bat en el directorio raz Xampp. En las instalaciones de manual (no instalador de Windows), la ruta exacta de este archivo es X: \ xampp \ mysql_start.bat, donde "X" indica la letra de la unidad que ha desempaquetado en XAMPP. Este archivo por lotes inicia el servidor MySQL en modo consola. La primera inicializacin puede tardar unos minutos. No cierre la ventana de DOS o tendr que tumbar el servidor! Para detener el servidor, por favor use mysql_shutdown.bat, que se encuentra en el mismo directorio. (2) Para utilizar el demonio de MySQL con "innodb" para un mejor rendimiento, por favor, edite el "mi" (o "my.cnf") en el archivo C: \ xampp \ mysql \ bin, o para los servicios de la carpeta c: \ my.cnf para Windows NT/2000/XP. De all, activar el "innodb_data_file_path = ibdata1: 30M" comunicado. La atencin, "innodb" no se recomienda para 95/98/ME. Para usar MySQL como servicio de NT / 2000 / XP, simplemente copia el "mi" / "my.cnf" archivo "C: \ mi", o "C: \ my.cnf". Tenga en cuenta que este archivo tiene que ser colocado en C: \ (raz), en otros lugares no estn permitidos. A continuacin, ejecute la "mysql_installservice.bat" en la carpeta mysql. (3) MySQL se inicia con valores estndar para la identificacin del usuario y la contrasea. El ID de usuario predeterminado es "root", la contrasea es "" (= sin contrasea). Para acceder a MySQL a travs de PHP con los valores preestablecidos, que tendr que usar la siguiente sintaxis:

mysql_connect ("localhost", "root", ""); Si desea establecer una contrasea para acceder a MySQL, por favor usa MySQLAdmin. Para establecer la Contrasea "secreto" para el usuario "root", escriba lo siguiente: C: \ xampp \ mysql \ bin \ mysqladmin.exe-u root-p secreto Despus de cambiar la contrasea que tendr que volver a configurar phpMyAdmin para utilizar la nueva contrasea, de lo contrario no podr acceder a las bases de datos. Para ello, abra el fichero config.inc.php en \ xampp \ phpmyadmin \ y editar las siguientes lneas: $ Cfg ['Servers'] [$ i] ['usuario'] = 'root'; / / MySQL del usuario $ Cfg ['Servers'] [$ i] ['auth_type'] = 'http'; / / HTTP autenticacin As que primero el 'root' password se consulta por el servidor MySQL, antes de phpMyAdmin puede acceder a l. * PHP-Switch Notas Esto se utiliza para probar las aplicaciones en el PHP anteriores v4, as como el ltimo v5 incluye Xampp. Puede utilizar la opcin del men Inicio de Windows en el grupo de Xampp, o el archivo por lotes relevantes para el cambio entre las dos versiones. Por favor, ignore esta funcin si no se estn desarrollando con PHP. Qu PC se puede utilizar como un servidor? Si la carga no es pesada luego un PC obsoleto puede ser utilizado como un servidor. Si la carga es media, como en una LAN bien utilizados en una oficina grande (tal vez 10 usuarios en lnea o ms), un PC bastante moderna se debe utilizar - pero nada especial que se necesita. Si un servidor es un servidor de produccin, luego de un PC con una buena especificacin debe ser utilizado. Las reas crticas (en orden de importancia) son la memoria RAM (2 GB necesarios por lo menos), una alta calidad en disco duro rpido (como un Seagate uno), y una CPU rpida (lo que es actualmente un modelo rpido, pero a un precio razonable - no hay necesidad de ir por la borda). Establecer una LAN simple Para una red sencilla, bsica - una red local - slo necesita un poco de equipo simple y econmico. Esto es lo que usted necesita: Cualquier viejo PC - incluso un viejo PC de la CPU a 800 MHz ser adecuada para trabajos ligeros un eje bsico de LAN, para su uso con cable (no WiFi) - esto es slo alrededor de 10 / $ 15 dos cables de LAN (a contar desde la PC1 al centro, y el centro de PC2) Tarjetas LAN o LAN a bordo, en cada uno de los PCs Este equipo no es caro. No se necesita software, aparte de XAMPP u otra aplicacin de servidor en el PC que est designado como el servidor. No se necesita software en el PC cliente (es decir, su trabajo principal uno) adems de un navegador. Un navegador, como Firefox o IE, es el software que se conecta a un servidor. Dado que este es un LAN cerrado hay menos consecuencias para la seguridad de que el uso de Internet. Puede conectar tantos PCs como quieras (o de otros equipos como los Mac). La capacidad del centro (tambin conocido como switch) es el nico factor limitante - la ms pequea es de aproximadamente 4 conexiones, y el ms grande de uso comn

es de 20. En la prctica no existe una "mayor", como usted puede comprar incluso las ms grandes, o una cadena de ellos. Una alternativa sencilla para el uso temporal es un USB de PC a PC por cable. No se puede utilizar una ordinarias a un cable USB en este caso no va a funcionar. Se necesita un micro centro de LAN en el centro. Esto puede ser ms barato si la alternativa es que usted tiene que comprar todos los otros componentes. Sin embargo, hay problemas de usabilidad como este no es un estndar de LAN - las direcciones IP son inusuales, por ejemplo. Xampp ubicacin de la carpeta Despus de la instalacin, la carpeta raz Xampp (el directorio raz) se puede encontrar en: C: \ Archivos de programa \ xampp \ El 'Webroot o carpeta de pginas web (que es siempre un nivel por debajo del directorio raz) se encuentra en: C: \ Archivos de programa \ xampp \ htdocs Esta carpeta es donde se colocan los archivos que se puede acceder a travs de la web (o en este caso a travs de la LAN). En teora, todos los archivos en esta carpeta se puede ver en la web / LAN. Una carpeta en un servidor que suele llamarse un directorio - no hay diferencia entre una carpeta y un directorio. La construccin de un nuevo sitio En primer lugar - la limpieza de la carpeta de documentos web, / htdocs /. Puede reorganizar la carpeta de documentos web, porque en la instalacin que contiene una gran cantidad de archivos sueltos que se confunde despus de realizar sus propios archivos de aqu. Cree una nueva carpeta en htdocs, llamado / viejo / Poner todo el archivo actual suelto en htdocs en esto (pero no las carpetas como prohibidas, etc) Dejar las carpetas de all, ya que son Sus pginas web deben ser colocados en la carpeta \ xampp \ htdocs (no en \ apache \ htdocs \ como normalmente podra ser el caso de un servidor LAMP, pero esto no existe de todos modos). Vuelva a colocar la pgina de prueba incluye index.html con su propia pgina. La primera pgina de su sitio es denominado correctamente la pgina de ndice. Tambin puede ser llamado tu pgina de inicio, pgina de inicio, etc Su nombre es a menudo index.html, ya que es la convencin. Tambin puede ser un htm. O. Archivo php. Hay alternativas - pero esto se est volviendo demasiado complejo. Tenga en cuenta que no se puede ejecutar. Asp en un servidor LAMP as. A pesar de que est utilizando un PC con Windows, se ha instalado una capa de servidor independiente en la parte superior, y un servidor estndar no se puede ejecutar. Asp o. Net. Establecer un solo sitio Por lo general, para servir a un solo sitio, su ndice y otras pginas de 'frontend' se colocan sueltos en la carpeta htdocs. A continuacin, las carpetas se agregan otros aqu, como imgenes y secciones de su sitio web. Cuando el uso de carpetas en un servidor, que generalmente se llaman directorios. A = El directorio de una carpeta en un servidor. No hay ninguna diferencia. Puede utilizar cualquiera de los trminos, aunque por el uso del servidor, es ms correcto usar

'directorio' del trmino. En este caso, hemos utilizado 'carpeta' el trmino ms porque me pareca mejor para estos fines, es decir, ms simple. As que si slo tienes un sitio, y las pginas estn sueltas en el webroot, entonces la URL de un sitio nico, podr ser: 192.168.0.1/index.html ... Dependiendo del router. En el propio servidor (acceso a la mquina local directamente, en su propio teclado / pantalla) ser: http://127.0.0.1/index.html ... Suponiendo que se pone un archivo de la pgina principal de all, llamado index.html. Cmo crear una pgina de ndice Usted puede crear una pgina HTML o usar un CMS o una aplicacin similar. Para crear una pgina HTML, basta con crear un archivo de texto y el nombre de "ndice". Cuando se guarda por lo que ser index.txt, un archivo de texto estndar. Escriba este texto en l: Hola, mundo. A continuacin, cambie la extensin de archivo (la parte despus del punto), de modo que se convierta en index.html, ahora tiene una pgina de ndice HTML. O construir en un editor HTML, por supuesto. Ahora, cuando usted acceder a su sitio, podr ver "Hola, mundo". Multi-Site en XAMPP Cuando se atiende a ms de un sitio web, cada uno debe ser colocado en su propia carpeta. De multi-sitio utilizan, entonces, debe poner a cada "sitio" en su propia carpeta dentro de / htdocs /. Por lo tanto, una ruta de archivo local a una pgina de ndice para yoursite1.com, en una carpeta denominada <yoursite1>, sern los siguientes: \ Htdocs \ yoursite1 \ index.html La direccin URL ser: 192.168.0.1/yoursite1 ... Aunque en navegadores antiguos o no estndar es posible que tenga que escribir: http://192.168.0.1/yoursite1/index.html Para cada sitio adicional de la ruta de archivo local es: \ Htdocs \ yoursite2 \ index.html ... Y as sucesivamente. Por lo tanto las direcciones URL de sitios mltiples, cada uno en su propia carpeta, en formato largo (aunque usted debera ser capaz de salirse con la versin ms corta de slo <IP/folder>) sern los siguientes: http://192.168.0.1/yoursite1/index.html http://192.168.0.1/yoursite2/index.html ... O en un equipo local: http://127.0.0.1/yoursite1/index.html http://127.0.0.1/yoursite2/index.html Servidores de Internet resolver este problema el nombre de multi-site mediante el establecimiento de los DNS para cada sitio en sus servidores directos en la carpeta de cada sitio, y por lo tanto perder parte de la 'yoursite1 "de la URL.

Al utilizar varias carpetas de pginas web en un sitio (que es una prctica normal para el estndar de pginas HTML), estos se denominan directorios. Usted debe asegurarse de que su men de navegacin son correctos entre los niveles de directorio. Cuntos sitios en XAMPP? Cul es el nmero mximo de sitios que se pueden ejecutar en XAMPP? - Un nmero infinito, pero limitado por los recursos del PC. En otras palabras, no importa. Ms grande que he odo hablar de es de 30.000 (s, 30k). En la prctica, una base de datos MySQL debe limitarse a alrededor de 50.000 entradas, como las pginas. Si desea instalar cientos de HTML o de los sitios de la CMS, que est bien, no tendrn ningn problema - para el desarrollo del curso, o utilizar la red LAN. Para la produccin, los sitios web son las siguientes limitaciones: De alta calidad de hosting compartido tiene un mximo de 50 sitios CMS / ecommerce / foro, para un rendimiento superior (dinmicas agencias) De buena calidad de alojamiento compartido, los sitios estn limitados a 200 max. Para obtener un rendimiento promedio de, 300 o 400 sitios por servidor son permitidos. Pgina tiempos de carga, y, en ocasiones los incidentes fuera de lnea, el aumento para cada paso en el nmero de sitios dinmicos por servidor. Son aproximadamente 100 veces ms recursos que un sitio web HTML. Con la base de datos impulsada por sitios, entonces el servidor de base de datos ser muy sobrecargado, a veces, con ms de 300 sitios por servidor, y esto se traduce en carga de la pgina muy lenta o incluso offlines. Pero, por supuesto, no estamos hablando de servidores de produccin aqu, XAMPP no puede ser endurecido para la produccin, excepto por un experto. Y un experto no lo estara utilizando para ello, no tendran razn para hacerlo si se puede ejecutar un Linux / Apache o un servidor Linux / Nginx. CMS sobre XAMPP Xamp CMS set-up esfcil.Esta es la mejor manera de probar y construir su CMS antes de transferirlo a la red de acogida. XAMP contiene las bases de datos MySQL y PHP scripting que usted necesita para la funcionalidad de CMS. En teora, el nmero de DB (bases de datos) que puede tener es ilimitada. Que se establecen, como en un servicio de hosting, con phpMyAdmin. Motores de sitios dinmicos, como las aplicaciones CMS, debe ser colocado en la carpeta htdocs, y la instalacin ejecutar desde aqu (a menos que la aplicacin indique lo contrario). Dicha instalacin del motor del sitio no debe iniciarse hasta que su base de datos est configurado y funciona correctamente (a menos que la aplicacin se instala la base de datos durante la primera instalacin). Es probable que no de otra manera, ya que la funcionalidad dinmica depende de la base de datos. Tenga en cuenta que las "pginas" de un sitio completo, dinmico - como un sitio de CMS basado - no existen: se construyen sobre la marcha de la aplicacin dinmica en conjunto con la base de datos y el servidor, y por lo tanto, son las pginas virtuales. Por lo tanto, no van en busca de sus pginas web en htdocs - slo las carpetas de aplicacin (el programa de CMS en s mismo) no existe. Con una aplicacin CMS o de comercio electrnico, las pginas no existen. Se construyen a partir de la base de datos, sobre la marcha.

No hay ms sobrecarga del servidor con este mtodo, aunque esto es irrelevante en un entorno de desarrollo. XAMPP ofrece un ambiente totalmente desarrollado * AMP para la prueba local de CMS y sitios de comercio electrnico.

APACHE (Acrnimo de "a patchy server"). Servidor web de distribucin libre y de cdigo abierto, siendo el ms popular del mundo desde abril de 1996, con una penetracin actual del 50% del total de servidores web del mundo (agosto de 2007). La principal competencia de Apache es el IIS (Microsoft Internet InformationServices) de Microsoft. Apache fue la primera alternativa viable para el servidor web de Netscape Communications, actualmente conocido como Sun Java System Web Server. Apache es desarrollado y mantenido por una comunidad abierta de desarrolladores bajo el auspicio de la Apache Software Foundation. La aplicacin permite ejecutarse en mltiples sistemas operativos como Windows, Novell NetWare, Mac OS X y los sistemas basados en Unix. Historia de Apache La primera versin del servidor web Apache fue desarrollada por Robert McCool, quien desarrollaba el servidor web NCSA HTTPd (National Center forSupercomputingApplications). Cuando Robert dej el NCSA a mediados de 1994, el desarrollo de httpd se detuvo. Robert McCool busc otros desarrolladores para que lo ayudaran, formando el Apache Group. Algunos miembros del grupo original fueron Brian Behlendorf, Roy T. Fielding, RobHartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters y NicolasPioch. La versin 2 del servidor Apache fue una reescritura sustancial de la mayor parte del cdigo de Apache 1.x, enfocndose en una mayor modularizacin y el desarrollo de una capa de portabilidad, el Apache Portable Runtime.

Apache 2.x incluy multitarea en UNIX, mejor soporte para plataformas no Unix (como Windows), una nueva API Apache y soporte para IPv6.

Caractersticas de Apache * Soporte para los lenguajes perl, python, tcl y PHP. * Mdulos de autenticacin: mod_access, mod_auth y mod_digest. * Soporte para SSL y TLS. * Permite la configuracin de mensajes de errores personalizados y negociacin de contenido. * Permite autenticacin de base de datos basada en SGBD. Uso de Apache Apache es principalmente usado para servir pginas web estticas y dinmicas en la WWW. Apache es el servidor web del popular sistema XAMP, junto con MySQL y los lenguajes de programacin PHP/Perl/Python. La "X" puede ser la inicial de cualquier sistema operativo, si es Windows: WAMP, si es el Linux: LAMP, etc. Descripcin de la arquitectura en mdulos del Apache. Explicacin y enumeracin de las funcionalidades asociadas a cada mdulo. El servidor Apache es un software que esta estructurado en mdulos. La configuracin de cada mdulo se hace mediante la configuracin de las directivas que estn

contenidas dentro del mdulo. Los mdulos del Apache se pueden clasificar en tres categoras: Mdulos Base: Mdulo con las funciones bsicas del Apache Mdulos Multiproceso: son los responsables de la unin con los puertos de la mquina, acepando las peticiones y enviando a los hijos a atender a las peticiones Mdulos Adicionales: Cualquier otro mdulo que le aada una funcionalidad al servidor. Las funcionalidades ms elementales se encuentran en el mdulo base, siendo necesario un mdulo multiproceso para manejar las peticiones. Se han diseado varios mdulos multiproceso para cada uno de los sistemas operativos sobre los que se ejecuta el Apache, optimizando el rendimiento y rapidez del cdigo. El resto de funcionalidades del servidor se consiguen por medio de mdulos adicionales que se pueden cargar. Para aadir un conjunto de utilidades al servidor, simplemente hay que aadirle un mdulo, de forma que no es necesario volver a instalar el software. Mdulos Base y Mdulos Multiproceso: core: Funciones bsicas del Apache que estn siempre disponibles. mpm_common: Coleccin de directivas que se implementan en ms de un mdulo multiproceso. beos: Mdulo de multiproceso optimizado para BeOS. leader: Variable experimental de MPM. mpm_netware: Mdulo de multiproceso que implementa un servidor web optimizado para Novell NetWare. mpmt_os2: MPM hbrido, multiproceso y multihilo para OS/2 . perchild: Mdulo multiproceso que permite a los procesos demonio servir las peticiones que se asignan a distintos id de usuario. prefork: Implementa un servidor sin hilos. threadpool: Variante experimental del mdulo estndar de MPM . mpm_winnt: Mdulo multiproceso optimizado para Windows NT. worker: Mdulo multiproceso que implementa un hbrido multihilos y multiprocesos de servidor Web.

Mdulos adicionales: mod_access: proporciona control de acceso basndose en el nombre del host del cliente, su direccin IP u otras caractersticas de la peticin del cliente. mod_actions: este mdulo se utiliza para ejecutar Scripts CGI, basndose en el tipo de medio o el mtodo de peticin. mod_alias: proporcionado para mapear diferentes partes del sistema de ficheros del servidor en el rbol de documentos del servidor, y para redireccin de URL's. mod_asis: envo de ficheros que tienen sus propias cabeceras http. mod_auth: autentificacin de usuario utilizando ficheros de texto. mod_auth_anon: permite a usuarios annimos acceder a reas autentificadas mod_auth_dbm: proporciona autentificacin utilizando ficheros DBM. mod_auth_digest: autentificacin de usuario utilizando MD5. mod_auth_ldap: permite la utilizacin un directorio LDAP para almacenar la base de datos de autentificacin. mod_autoindex: muestra los contenidos de un directorio automticamente, parecido al comando ls de Unix.

mod_cache: Cache de contenidos indexados por URI's. mod_cern_meta: Semntica de etiquetas meta del CERN. mod_cgi: Ejecucin de Scritps CGI. mod_cgid: ejecucin de Scripts CGI utilizando un demonio CGI externo. mod_charset_lite: para la especificacin del juego de caracteres de las traducciones. mod_deflate: comprime el contenido antes de ser enviado al cliente. mod_dir: Proporcionado para redirecciones y para servir los ficheros de listado de directorios. mod_disk_cache: Cache para almacenar contenidos identificados por URI. mod_echo: Un servidor simple de echo para ilustrar los mdulos del protocolo. mod_env: modificacin del entorno que se envia a los scripts CGI y las pginas SSI. mod_expires: Generacin de las cabeceras http Expires, de acuerdo de los criterios especificados por el usuario. mod_ext_filter: pasa el cuerpo de la respuesta a travs de un programa antes de envirsela al cliente. mod_file_cache: cachea una lista esttica de ficheros en memoria. mod_headers: personalizacin de las peticiones HTTP y las cabeceras de las respuestas. mod_imap: proceso de imgenes en el lado del servidor. mod_include: Documentos HTML generados por el servidor (Server SideIncludes). mod_info: proporciona una visin comprensiva de la configuracin del servidor. mod_isapi: Extensiones ISAPI en Apache para Windows. mod_ldap: pool de conexiones LDAP y cacheo de resultados para la utilizacin de otros mdulos LDAP. mod_log_config: registro de las peticiones hechas al servidor. mod_logio: registro del nmero de bytes recibidos y enviados en cada respuesta. mod_mem_cache: Cache de contenidos identificados por URI. mod_mime: asocia las extensiones de peticiones de los ficheros con el comportamiento del fichero (manejadores y filtros) y contenido (tipos mime, idioma, juego de caracteres y codificacin). mod_mime_magic: determina el tipo MIME de un fichero mirando unos pocos bytes del contenido. mod_negotiation: se proporciona para la negociacin del contenido. mod_proxy: servidor HTTP/1.1 proxy/gateway. mod_proxy_connect: extensin de mod_proxy para la gestin de las peticiones CONNECT. mod_proxy_ftp: soporte FTP para mod_proxy. mod_proxy_http: soporte HTTP para el mdulo mod_proxy. mod_rewrite: proporciona un motor de reescritura basado en reglas que rescribe las peticiones de URL's al vuelo. mod_setenvif: permite la configuracin de las variables de entorno basndose en las caractersticas de la peticin. mod_so: carga del cdigo ejecutable y los mdulos en al iniciar o reiniciar el servidor. mod_speling: intenta corregir las URL mal puestas por los usuarios, ignorando las maysculas y permitiendo hasta una falta.

mod_ssl: criptografa avanzada utilizando los protocolos Secure Sockets Layer y TransportLayer Security. mod_status: proporciona informacin en la actividad y rendimiento del servidor. mod_suexec: permite a los scripts CGI ejecutarse con un nombre y grupo especfico. mod_unique_id: proporciona variables de entorno y un identificador nico para cada peticin. mod_userdir: directorios especficos para usuarios. mod_usertrack: registro de actividad de un usuario en el sitio. mod_vhost_alias: Proporcionado para configurar muchos servidores virtuales dinmicamente.

Estructura del fichero principal de configuracin del Apache. El fichero httpd.conf es el fichero principal de configuracin del Apache, se encuentra dentro del directorio Conf, en el directorio de instalacin del Apache. En primer lugar hay que destacar que el fichero est dividido en tres secciones, que son: 1 Parmetros globales 2 Directivas de Funcionamiento 3 Host Virtuales En el fichero se encuentran todos los parmetros de funcionamiento del Apache. Algunos parmetros son generales para la instalacin y funcionamiento del Apache. Muchos otros de los parmetros se pueden configurar independientes para un conjunto de directorios y/o ficheros . En estos casos los parmetros se encuentran ubicados dentro de secciones donde se indica el mbito de aplicacin del parmetro. Las secciones ms importantes son: <Directory> : Los parmetros que se encuentran dentro de esta seccin, slo se aplicarn a el directorio especificado y a sus subdirectorios. <DirectoryMatch>: Igual que Directory, pero acepta en el nombre del directorio expresiones regulares. <Files>: Los parmetros de configuracin proporcionan control de acceso de los ficheros por su nombre. <FilesMatch>: Igual que Files, pero acepta expresiones regulares en el nombre del fichero. <Location>: Proporciona un control de acceso de los ficheros por medio de la URL <LocationMatch>: Igual que Location, pero acepta expresiones regulares en el nombre del fichero. Algunas veces las directivas de funcionamiento de las secciones anteriores se pueden cruzar en cuyo caso tienen el siguiente orden de preferencia: 1. 2. 3. 4. <Directory> y .htaccess (.htaccessprevalecefrente a <Directory>) <DirectoryMatch> y <Directory> <Files> y <FilesMatch> <Location> y <LocationMatch>

Tambin hay que destacar, que el fichero contiene un montn de comentarios para su correcta utilizacin, las lneas comentadas aparecen con el smbolo #. Alguna vez has implementado clases que gestionaran directamente datos de configuracin? Existen en varias formas estndar de gestionar los datos configuracin de nuestros componentes y aplicaciones: Mediante la clase java.util.Properties A travs de las clases del paquete java.util.prefs. (API muy potente que permite gestionar datos de configuracin de modo herrquico al estilo del "Registro de Windows" que recomiendo leerse si el lector la desconoce) En este pequeo tutorial, voy a nombrar un API que a mi personalmente me parece de una enorme utilidad y potencia para la gestin de datos de configuracin. Se trata de Apache JakartaCommonsConfiguration. Apache JakartaCommonsConfiguration es un subproyecto de la serie de proyectos Apache JakartaCommons. CommonsConfiguration es un conjunto de proyectos que intentan estandarizar las tareas comunes que casi todas las aplicaciones y componentes realizan normalmente. Una tarea muy comn en cualquier aplicacin es la gestin de datos de configuracin. Es aqu en donde entra en juego Apache JakartaCommonsConfiguration. Podemos obtener todo lo necesario desde la siguiente direccin:http://jakarta.apache.org/commons/configuration/ Bsicamente Apache CommonsConfiguration nos permite: Gestin de los datos de configuracin independientemente del lugar en el que esten almacenados. (Ficheros de propiedades, documentos XML, JNDI, Base de datos, etc.). Un potente motor de consultas para realizar bsquedas del valor que tienen determinadas propiedades de configuracin. Recarga automtica de los datos de configuracin en caso de que sean modificados en su lugar fsico de origen (Fichero de texto plano, fichero xml, etc) Posibilidad de almacenar los datos de configuracin automticamente en su lugar fsico (fichero de texto plano, fichero xml, etc). Otras Caractersticas interesantes Este API tambin nos da la posibilidad de que se recargen automticamente los datos de configuracin sobre el objeto Configuration en caso de que estos hayan sido modificados.

MySQL MySQL es la base de datos open source ms popular y, posiblemente, mejor del mundo. Su continuo desarrollo y su creciente popularidad est haciendo de MySQL un competidor cada vez ms directo de gigantes en la materia de las bases de datos como Oracl MySQL es un sistema de administracin de bases de datos (Database Management System, DBMS) para bases de datos relacionales. As, MySQL no es ms que una aplicacin que permite gestionar archivos llamados de bases de datos o , lo que es lo mismo, u Existen muchos tipos de bases de datos, desde un simple archivo hasta sistemas relacionales orientados a objetos. MySQL, como base de datos relacional, utiliza multiples tablas para almacenar y organizar la informacin. MySQL fue escrito en C y C++ y destaca por su gran adaptacin a diferentes entornos de desarrollo, permitiendo su interactuacin con los lenguajes de programacin ms utilizados como PHP, Perl y Java y su integracin en distintos sistemas operativos. Tambin es muy destacable, la condicin de open source de MySQL, que hace que su utilizacin sea gratuita e incluso se pueda modificar con total libertad, pudiendo descargar su cdigo fuente. Esto ha favorecido muy positivamente en su desarrollo y continuas actualizaciones, para hacer de MySQL una de las herramientas ms utilizadas por los programadores orientados a Internet. 9.1. Valores literales

En esta seccin se trata la escritura de valores literales en MySQL. Estos incluyen a las cadenas, nmeros, valores hexadeciales, valores booleanos y NULL. Tambin se ocupa de las distintas situaciones (algunas muy propensas a error) en las que se puede incurrir al manejar estos tipos bsicos de MySQL. 9.1.1. Cadenas de caracteres Una cadena (string) es una secuencia de caracteres, encerrada por comillas simples (''') o dobles ('"'). Ejemplos: 'una cadena' "otra cadena" Si el modo de servidor tiene habilitado ANSI_QUOTES, las cadenas solamente pueden delimitarse con comillas simples. Una cadena delimitada por comillas dobles ser interpretada como un identificador. A partir de MySQL 4.1.1, las cadenas pueden tener una parte indicativa del conjunto de caracteres y una clusulaCOLLATE: [_conjunto_caracteres]'cadena' [COLLATE tipo_ordenacin] Ejemplos: SELECT _latin1'cadena'; SELECT _latin1'cadena' COLLATE latin1_danish_ci; 9.1.2. Nmeros Los enteros se representan como secuencias de dgitos. Los flotantes utilizan '.' como separador decimal. Cada tipo de nmero puede estar precedido con '-' para indicar un valor negativo. Ejemplos de enteros vlidos: 1221 0 -32 Ejemplos de nmeros de punto flotante vlidos: 294.42 -32032.6809e+10 148.00 Un entero puede usarse en un contexto de punto flotante; se intepretar como el nmero de punto flotante equivalente. 9.1.3. Valores hexadecimales MySQL soporta valores hexadecimales. En contextos numricos, stos actuarn como enteros (con precisin de 64 bits). En contextos de cadena, actuarn como cadenas binarias, donde cada par de dgitos hexadecimales es convertido a un carcter: mysql> SELECT x'4D7953514C'; -> 'MySQL' mysql> SELECT 0xa+0; -> 10

mysql> SELECT 0x5061756c; -> 'Paul' En MySQL 5.0, el tipo predeterminado para un valor hexadecimal es una cadena. Si se desea estar seguro de que el valor se tratar como un nmero, puede emplearse CAST(... AS UNSIGNED): mysql> SELECT 0x41, CAST(0x41 AS UNSIGNED); -> 'A', 65 La sintaxis 0x se basa en ODBC. Las cadenas hexadecimales son utilizadas a menudo por ODBC para proveer valores para columnas BLOB. La sintaxis x'hexstring' se basa en SQL standard. Se puede convertir una cadena o un nmero en una cadena en formato hexadecimal con la funcin HEX(): mysql> SELECT HEX('cat'); -> '636174' mysql> SELECT 0x636174; -> 'cat' 9.1.4. Valores booleanos En MySQL 5.0, la constante TRUE se evala como 1 y la constante FALSE, como 0. Los nombres de constantes pueden escribirse en cualquier combinacin de maysculas y minsculas. mysql> SELECT TRUE, true, FALSE, false; -> 1, 1, 0, 0 9.1.5. Valores de bits A partir de MySQL 5.0.3, los valores de bits pueden escribirse utilizando la notacin b'valor'. value es un valor binario escrito empleando ceros y unos. La notacin de bits es conveniente para especificar valores que se asignarn a columnas BIT: mysql> CREATE TABLE t (b BIT(8)); mysql> INSERT INTO t SET b = b'11111111'; mysql> INSERT INTO t SET b = b'1010'; +------+----------+----------+----------+ | b+0 | BIN(b+0) | OCT(b+0) | HEX(b+0) | +------+----------+----------+----------+ | 255 | 11111111 | 377 | FF | | 10 | 1010 | 12 |A | +------+----------+----------+----------+ 9.1.6. Valores NULL

El valor NULL significa no hay dato. NULL puede escribirse en cualquier combinacin de maysculas y minsculas. Debe tenerse en cuenta que el valor NULL no es lo mismo que 0 para tipos numricos o la cadena vaca para tipos de cadena. Consulte Seccin A.5.3, Problemas con valores NULL. Para operaciones de exportacin o importacin de texto utilizando LOAD DATA INFILE o SELECT ... INTO OUTFILE, NULL se representa con la secuencia \N. Motores de almacenamiento de MySQL y tipos de tablas MySQL soporta varios motores de almacenamiento que tratan con distintos tipos de tabla. Los motores de almacenamiento de MySQL incluyen algunos que tratan con tablas transaccionales y otros que no lo hacen:

MyISAM trata tablas no transaccionales. Proporciona almacenamiento y recuperacin de datos rpida, as como posibilidad de bsquedas fulltext. MyISAM se soporta en todas las configuraciones MySQL, y es el motor de almacenamiento por defecto a no ser que tenga una configuracin distinta a la que viene por defecto con MySQL. El motor de almacenamiento MEMORY proporciona tablas en memoria. El motor de almacenamiento MERGE permite una coleccin de tablas MyISAM idnticas ser tratadas como una simple tabla. Como MyISAM, los motores de almacenamiento MEMORY y MERGE tratan tablas no transaccionales y ambos se incluyen en MySQL por defecto. Nota: El motor de almacenamiento MEMORY anteriormente se conoca como HEAP. Los motores de almacenamiento InnoDB y BDB proporcionan tablas transaccionales. BDB se incluye en la distribucin binaria MySQL-Max en aquellos sistemas operativos que la soportan. InnoDB tambin se incluye por defecto en todas las distribuciones binarias de MySQL5.0 . En distribuciones fuente, puede activar o desactivar estos motores de almacenamiento configurando MySQL a su gusto. El motor de almacenamiento EXAMPLE es un motor de almacenamiento "tonto" que no hace nada. Puede crear tablas con este motor, pero no puede almacenar datos ni recuperarlos. El objetivo es que sirva como ejemplo en el cdigo MySQL para ilustrar cmo escribir un motor de almacenamiento. Como tal, su inters primario es para desarrolladores. NDB Cluster es el motor de almacenamiento usado por MySQLCluster para implementar tablas que se particionan en varias mquinas. Est disponible en

distribuciones binarias MySQL-Max 5.0. Este motor de almacenamiento est disponible para Linux, Solaris, y Mac OS X . Aadiremos soporte para este motor de almacenamiento en otras plataformas, incluyendo Windows en prximas versiones. El motor de almacenamiento ARCHIVE se usa para guardar grandes cantidades de datos sin ndices con una huella muy pequea. El motor de almacenamiento CSV guarda datos en ficheros de texto usando formato de valores separados por comas. El motor de almacenamiento FEDERATED se aadi en MySQL 5.0.3. Este motor guarda datos en una base de datos remota. En esta versin slo funciona con MySQL a travs de la API MySQL C Client. En futuras versiones, ser capaz de conectar con otras fuentes de datos usando otros drivers o mtodos de conexin clientes. Cuando crea una nueva tabla, puede decirle a MySQL qu tipo de tabla crear aadiendo la opcin de tablaENGINE o TYPE al comando CREATE TABLE : CREATE TABLE t (i INT) ENGINE = INNODB; CREATE TABLE t (i INT) TYPE = MEMORY; Aunque se soporta TYPE en MySQL 5.0, ENGINE es el trmino preferido. Si omite la opcin ENGINE o TYPE, se usa el motor de almacenamiento por defecto, quees MyISAM. Puede cambiarlo usando las opciones de arranque --default-storageengine o --default-table-type ,o sistema storage_engine o table_type . Cuando se instala MySQL en Windows usando el MySQLConfigurationWizard, InnoDB es el motor de almacenamiento por defecto en lugar de MyISAM. Para convertir una tabla de un tipo a otro, use un comando ALTER TABLE que indique el nuevo tipo: ALTER TABLE t ENGINE = MYISAM; ALTER TABLE t TYPE = BDB; Si trata de usar un motor de almacenamiento que no est compilado o que est desactivado, MySQL crea una tabla de tipo MyISAM. Este comportamiento es conveniente cuando quiere copiar tablas entre servidores MySQL que soportan distintos motores. (Por ejemplo, en una inicializacin de replicacin, tal vez su maestro suporte un motor de almacenamiento transaccional para ms seguridad, pero los esclavos usan un motor de almacenamiento no transaccional para mayor velocidad.) La sustitucin automtica del tipo MyISAM cuando se especifica un tipo no especificado puede ser confuso para nuevos usuarios. En MySQL 5.0, se genera una advertencia cuando se cambia un tipo de tabla automticamente. cambiando la variable de

MySQL siempre crea un fichero .frm para guardar la definicin de tabla y columnas. El ndice y datos de la tabla puede estar almacenado en uno o ms ficheros, en funcin del tipo de tabla. El servidor crea el fichero .frm por encima del nivel de almacenamiento del motor. Los motores de almacenamiento individuales crean los ficheros adicionales necesarios para las tablas que administran. Una base de datos puede contener tablas de distintos tipos. Las tablas transaccionales (TSTs) tienen varias ventajas sobre las no transaccionales (NTSTs): Ms seguras. Incluso si MySQL cae o tiene problemas de hardware, puede recuperar los datos, mediante recuperacin automtica o desde una copia de seguridad ms el log de transacciones. Puede combinar varios comandos y aceptarlos todos al mismo tiempo con el comando COMMIT (si autocommit est desactivado). Puede ejecutar ROLLBACK para ignorar los cambios (si autocommit est desactivado). Si falla una actualizacin, todos los cambios se deshacen. (Con tablas no transaccionales, todos los cambios son permanentes.) Motores de almacenamiento transaccionales pueden proporcionar mejor concurrencia para tablas que tienen varias actualizaciones concurrentes con lecturas. En MySQL 5.0, InnoDB usa valores de configuracin por defecto si no los especifica. Tablas no transaccionales tienen varias ventajas al no tener una sobrecarga transaccional:

Ms rpidas Menor requerimiento de espacio. Menos memoria para actualizaciones Puede combinar tablas transaccionales y no transaccionales en el mismo comando para obtener lo mejor de ambos mundos. Sin embargo, en una transaccion con autocommit desactivado, los cambios de tablas no transaccionales son permanentes inmediatamente y no pueden deshacerse.

Apndice E. Variables de entorno Este apndice lista todas las variables de entorno que se usan directa o indirectamente en MySQL. La mayora de ellas pueden encontrarse en otros apartados de este manual. Tenga en cuenta que cualquier opcin de la lnea de comandos tiene precedencia sobre los valores especificados en los ficheros de opciones y variables de entorno, y los valores en los ficheros de opciones tienen precedencia sobre los valores de las variables de entorno. En muchos casos, es preferible usar un fichero de opciones en lugar de variables de entorno para modificar el comportamiento de MySQL. Variable Descripcin CXX CC CFLAGS CXXFLAGS DBI_USER DBI_TRACE HOME LD_RUN_PATH MYSQL_DEBUG Nombre del compilador C++ (para ejecutar configure). Nombre del compilador C (para ejecutar configure). Flags para el compilador C (para ejecutar configure). Flags para el compilador C++ (para ejecutar configure). Nombre de usuario por defecto para Perl DBI. Opciones de traceo para Perl DBI. La ruta por defecto para el fichero histrico mysql es $HOME/.mysql_history. Usado para especificar dnde est localizado libmysqlclient.so. Opciones de traceo de depuracin durante la depuracin. La ruta al fichero histrico mysql . Si esta variable est inicializada, su valor sobreescribe el valor por defecto de$HOME/.mysql_history. Nombre de equipo usado por defecto por el cliente de lnea de comandos mysql . El prompt usado por el cliente de lnea de comandos mysql . La contrasea por defecto al conectar a mysqld. Tenga en cuenta que su uso es inseguro! Consulte Seccin 5.7.6, Guardar una contrasea de forma segura. Puerto TCP/IP por defecto. Nombre de fichero socket Unix por defecto; usado para conexiones con el localhost. Usado por la shell para encontrar programas MySQL. Directorio donde se crean los ficheros temporales. Debe tener el valor de la zona horaria local. Consulte Seccin A.4.6, Problemas con las franjas horarias. La mscara de creacin de directorios del usuario. Tenga en cuenta que se hace una operacin Y lgica con UMASK! La mscara de creacin de ficheros del usuario. Nombre de usuario por defecto para Windows y NetWare usado al concetar con mysqld.

MYSQL_HISTFILE MYSQL_HOST MYSQL_PS1

MYSQL_PWD MYSQL_TCP_PORT MYSQL_UNIX_PORT PATH TMPDIR TZ UMASK_DIR UMASK USER

Procedimientos almacenados y funciones

Los procedimientos almacenados y funciones son nuevas funcionalidades de la versin de MySQL 5.0. Un procedimiento almacenado es un conjunto de comandos SQL que pueden almacenarse en el servidor. Una vez que se hace, los clientes no necesitan relanzar los comandos individuales pero pueden en su lugar referirse al procedimiento almacenado. Algunas situaciones en que los procedimientos almacenados pueden ser particularmente tiles: Cuando mltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas, pero necesitan realizar la misma operacin en la base de datos. Cuando la seguridad es muy importante. Los bancos, por ejemplo, usan procedimientos almacenados para todas las operaciones comunes. Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que cada operacin se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no obtendran ningn acceso directo a las tablas de la base de datos, slo pueden ejectuar algunos procedimientos almacenados. Los procedimientos almacenados pueden mejorar el rendimiento ya que se necesita enviar menos informacin entre el servidor y el cliente. El intercambio que hay es que aumenta la carga del servidor de la base de datos ya que la mayora del trabajo se realiza en la parte del servidor y no en el cliente. Considere esto si muchas mquinas cliente (como servidores Web) se sirven a slo uno o pocos servidores de bases de datos. Los procedimientos almacenados le permiten tener bibliotecas o funciones en el servidor de base de datos. Esta caracterstica es compartida por los lenguajes de programacin modernos que permiten este diseo interno, por ejemplo, usando clases. Usando estas caractersticas del lenguaje de programacin cliente es beneficioso para el programador incluso fuera del entorno de la base de datos. MySQL sigue la sintaxis SQL:2003 para procedimientos almacenados, que tambin usa IBM DB2. La implementacin de MySQL de procedimientos almacenados est en progreso. Toda la sintaxis descrita en este captulo se soporta y cualquier limitacin y extensin se documenta apropiadamente. Ms discusin o restricciones de uso de procedimientos almacenados se da en Apndice H, Restricciones en caractersticas de MySQL.

PHPAdmin PhpMyAdmin es un programa de libre distribucin en PHP, creado por una comunidad sin nimo de lucro, que slo trabaja en el proyecto por amor al arte. Es una herramienta muy completa que permite acceder a todas las funciones tpicas de la base de datos MySQL a travs de una interfaz web muy intuitiva. La aplicacin en si no es ms que un conjunto de archivos escritos en PHP que podemos copiar en un directorio de nuestro servidor web, de modo que, cuando accedemos a esos archivos, nos muestran unas pginas donde podemos encontrar las bases de datos a las que tenemos acceso en nuestro servidor de bases de datos y todas sus tablas. La herramienta nos permite crear tablas, insertar datos en las tablas existentes, navegar por los registros de las tablas, editarlos y borrarlos, borrar tablas y un largo etctera, incluso ejecutar sentencias SQL y hacer un backup de la base de datos. Pgina de phpMyAdmin La pgina de inicio del proyecto es http://www.phpmyadmin.net/. Desde all podemos descargar los ficheros de la ltima versin de la aplicacin, que posteriormente debemos colocar en nuestro servidor web. Tambin podemos encontrar a phpMyAdmin dentro de la red Sourceforge.net, que es un sitio que recoge multitud de proyectos "Open Source" (cdigo abierto). Hay varias versiones disponibles, pero es recomendable escoger la que nos aconsejen como la ltima versin estable (Thelaststable versin). En el momento de escribir este

artculo era la 2.2.6. De modo que, si nuestro sistema es Windows, descargaremos el archivo phpMyAdmin-2.2.6-php.zip Los archivos que hemos descargado son de la versin 4 de PHP, aunque tambin ofrecen la posibilidad de bajarse los archivos que guardan compatibilidad con la versin 3 de PHP, para que aquellos que no dispongan del motor de PHP ms actual. La pagina de inicio del programa tambin nos ofrece la posibilidad de ver un demo online, aunque nos avisan de que el servidor donde se aloja puede estar cado. http://www.phpmyadmin.net/phpMyAdmin/ Instalando phpMyAdmin Una vez descargada la ltima versin la tenemos que descomprimir, con lo que obtendremos los ficheros PHP que conforman la herramienta y colocarlos dentro del directorio de publicacin de nuestro servidor web. Nota: recordamos que phpMyAdmin es un proyecto escrito en PHP, por lo que necesitaremos colocar los archivos en un servidor web que permita programacin de pginas PHP. Adems, deberemos acceder a la herramienta a travs de la direccin del servidor web, seguida del directorio en el que tenemos los archivos que hemos descomprimido. Por ejemplo, si nuestro servidor es el PWS y hemos colocado los archivos dentro del directorio de publicacin (Generalmente C:\Inetpub\wwwroot), en el subdirectorio phpMyAdmin, debemos escribir algo como http://localhost/phpMyAdmin Si tuviramos instalado un servidor Apache los colocaramos en la carpeta que hayamos indicado como "documentRoot", que suele ser htdocs. Lo primero que podemos leer es el archivo de la documentacin, que encontramos junto con los archivos de phpMyAdmin. Explica datos generales del programa, como sus requerimientos, instrucciones de instalacin, configuracin, preguntas frecuentes, etc. Posteriormente, tal como explica la documentacin, hay que editar el archivo config.inc.php para cambiar los valores de host de la base de datos (ordenador que tiene instalado el MySQL) y el usuario y password con el que nos conectamos. Se pueden configurar muchos aspectos en la herramienta, aunque ahora solo comentar los que he encontrado esenciales para hacerla funcionar, en la documentacin tenemos un apartado dedicado por completo a especificar el sentido de cada variable. $cfgPmaAbsoluteUri Debemos asignarlo a la ruta completa necesaria para acceder a phpMyAdmin. Podra ser algo como http://localhost/phpMyAdmin o http://www.midominio.com/phpMyAdmin $cfgServers[$i]['host'] string El nombre del host de la base de datos. Por ejemplo localhost, si es que es el mismo ordenador donde estamos instalandosphpMyAdmin y la base de datos. Tambin podra ser la direccin IP del ordenador al que nos conectamos. $cfgServers[$i]['user'] string $cfgServers[$i]['password'] string El par usuario/contrasea que debe utilizar phpMyAdmin para conectarse con el servidor MySQL. Con estas sencillas configuraciones ya podemos acceder a phpMyAdmin y trabajar con nuestra base de datos a golpe de ratn, que resulta muy de agradecer teniendo en

cuenta que, en caso de no tener esta herramienta u otra parecida, la otra opcin consistira en utilizar el lenguaje SQL, y, en caso de que la base de datos est alojada remotamente en Internet, no podramos hacerlo sino es con acceso por TELNET al servidor de la base de datos.

DBMS Evolucin Inicialmente, en los aos 40s, los Sistemas de Archivos generados a travs de lenguajes de programacin no propietarios como Cobol y Fortran (vigentes en la actualidad), permiten almacenar los datos a travs de archivos planos con funciones bsicas de lectura y escritura sobre ellos. En 1964, se conciben los primeros Gestores de Base de Datos (DBMS: Database Management System), por medio de los cuales se pretende dar un viraje a los Sistemas de Archivos, los cuales se limitan a la estructuracin del almacenamiento fsico de los datos. Con los DBMS se crea el concepto de Administracin de los datos, por medio de actividades integradas que permiten verlos fsicamente en un solo almacenamiento pero lgicamente se manipulan a travs de esquemas compuesto por estructuras donde se establecen vnculos de integridad, mtodos de acceso y organizacin fsica sobre los datos, permitiendo as obtener valores agregados de utilizacin tales como: manejo de usuarios, seguridad, atomicidad e independencia fsica y lgica de los datos, entre otros. El primer gestor de bases de datos (DBMS) comercial, IDS: Integrated Data Store , se crea bajo el concepto del Modelo de Datos de Red (Bachgman, 1965); luego se desarrolla el IMS: Information Management System , sobre el concepto del Modelo de Datos Jerrquico. Estos DBMSs eran accesados normalmente por lenguajes de programacin como Cobol usando interfasesde bajo nivel haciendo que las tareas de creacin de aplicaciones y mantenimiento de los datos fuesen controlables, pero an complejas.

A medida que evolucionaban los DBMS, los lenguajes de programacin tambin lo hacan. En 1967 surge el primer lenguaje de programacin orientado a objetos, Simula, el cual fue propuesto para simulacin de actividades. En este los procedimientos podan ser asociados a un tipo para representar el comportamiento de una instancia, introduciendo as el concepto de Clase. Simula, soporta paralelismo permitiendo muchas entidades interactivas en una simulacin. Adems comparte objetos acoplando datos y procedimientos. Luego se genera una nueva nocin, donde las bases de datos deben almacenar por medio de una estructura tabular llamada relacin o tabla (Codd,1970), compuesta por filas y columnas, accesando dichas relaciones a travs de un lenguaje de alto nivel no procedural (declarativo). De esta forma en los aos 80s surgen varios productores de DBMS Relacionales (RDBMS) como Oracle, Informix, Ingres y DB2, adems de otros lenguajes orientados a objetos como el C++, Java (antes el Oak), Eiffel, y Smalltalk adoptando y mejorando el concepto de clase pero su desarrollo se hace independiente de los DBMSs. Comenzando los aos 80s ya se siente la necesidad de que los DBMS actuales manipulen objetos complejos y estructuras como las usadas en sistemas CAD y CASE, entre otras. A partir de esto se da inicio a dos grandes tendencias: los ORDBMS (ObjectRelationalDatabase Management System) los cuales se proyectan como una extensin de los RDBMS hacia el paradigma OO, y los OODBMS (ObjectOrientedDatabase Management System) estaran disponibles para almacenar y manipular las clases, los objetos, la asociacin entre ellos y sus mtodos. As, finalizando los aos 80s se crean los OODBMSs por medio de productores como O2, ObjectDesign y Objectivity, entre otros. Pero realmente se puede decir que estos no se hicieron tan comerciales como los existentes RDBMS ya que el concepto de Orientacin a Objetos se segua manejando muy a nivel del lenguaje de programacin, sin que se trabajaran estructuras de almacenamiento Orientadas a Objetos dependientes de estos . As, en 1991 surge la ODMG (ObjectDatabase Management Group) el cual estandariza los OODBMSs a partir del ODMG-93 y luego en 1992 el comit ANSI X3H2 inicia un trabajo en SQL3, del cual surgen los DBMS objeto relacional ORDBMS. Este trabajo fue programado para finalizarse en 1995, pero an se sigue trabajando en este con un tiempo lmite de terminacin, en el ao 1999.

Por medio de la tabla 1 se puede observar la clasificacin que se ha hecho de las versiones que han generado los diferentes vendedores de acuerdo a la evolucin de los modelos:

Tabla

1.

Productos

DBMS

por

Vendedor,

1997.

ProductosVendedor Oracle Sybase Informix IBM

RDBMS Oracle 7.x System 10/11 Dynamic Server DB/2

ORDBMS Oracle 8.x

OODBMS

UniSQL

Universal Server (Ilustra) Universal Database (DB/2 Extenders) UniSQL/X

Unisys ComputerAssociates Gemstone O2 ObjectDesign Objectivity Versant

OSMOS OpenIngres Jasmine Gemstone O2 ObjectStore Objectivity/DB Versant ODBMS

Esquema de un DBMS

Lenguajes del DBMS En la estructura bsica de un Sistema Manejador de Base de Datos se enuncian dos lenguajes que permiten trabajar sobre la base de datos. Estos lenguajes estandar son:

DDL (Data Definitionlanguage): Lenguaje de Definicin de Datos. Por medio de este el DBMS identifica las descripciones de los elementos de los esquemas y almacena la descripcin del esquema en el catlogo del DBMS. Por medio de este el DBMS especifica el esquma conceptual e interno (Base de datos Almacenada). SDL (StoreDefinitionlanguage): Lenguaje de definicin de almacenamiento. Es utilizado por el DBMS para especificar el esquema interno que corresponde a la Base de Datos Almacenada. VDL (View Definitionlanguage): Lenguaje de Definicin de Vistas. Es utilizado por el DBMS para especificar las vistas del usuario y sus correspondiencias con el esquema conceptual.

En las Bases de Datos Relacionales, el SQL, representa una combinacin de los anteriores. DML (Data Manipulationlanguage): Lenguaje de Manipulacin de Datos. Permite la manipulacin de las operaciones de Insercin, Eliminacin y Modificacin. o Tipos de DML's: De alto Nivel o No por procedimientos: SQL. De bajo Nivel o por procedimientos. Usuarios de un Sistema Manejador de Base de Datos Personal del DBA Usuarios Expordicos Programadores de Aplicaciones Usuarios paramtricos ARQUITECTURA DE UN MANEJADOR DE BASES DE DATOS (DBMS) Nota: Las partes utilizadas para ejemplificar la arquitectura se refieren a Oracle Una base de datos en ejecucin consta de 3 cosas:

Archivos o Control (ctl): almacenan informacin acerca de la estructura de archivos de la base. o Rollback (rbs): cuando se modifica el valor de alguna tupla en una transaccin, los valores nuevos y anterioresse almacenan en un archivo, de modo que si ocurre algn error, se puede regresar (rollback) a un estado anterior. o Redo (rdo): bitcora de toda transaccin, en muchos dbms incluye todo tipo de consulta incluyendo aquellas que no modifican los datos. o Datos (dbf): el tipo ms comn, almacena la informacin que es accesada en la base de datos. o Indices (dbf) (dbi): archivos hermanos de los datos para acceso rpido.

Temp (tmp): localidades en disco dedicadas a operaciones de ordenamiento o alguna actividad particular que requiera espacio temporal adicional. Memoria o Shared Global Area (SGA): es el rea ms grande de memoria y quizs el ms importante Shared Pool: es una cach que mejora el rendimiento ya que almacena parte del diccionario de datos y el parsing de algunas consultas en SQL Redo Log Buffer: contiene un registro de todas las transacciones dentro de la base, las cuales se almacenan en el respectivo archivo de Redo y en caso de siniestro se vuelven a ejecutar aquellos cambios que an no se hayan reflejado en el archivo de datos (commit). Large Pool: espacio adicional, generalmente usado en casos de multithreading y esclavos de I/O. Java Pool: usado principalmente para almacenar objetos Java o Program Global Area (PGA): informacin del estado de cursores/apuntadores o User Global Area(UGA): informacin de sesin, espacio de stack Procesos o Threading o System Monitor: despierta peridicamente y realiza algunas actividades entre las que se encuentran la recuperacin de errores, recuperacin de espacio libre en tablespaces y en segmentos temporales. o Process Monitor: limpia aquellos procesos que el usuario termina de manera anormal, verificando consistencias, liberacin de recursos, bloqueos. o DatabaseWriter: escribe bloques de datos modificados del buffer al disco, aquellas transacciones que llegan a un estado de commit. o Log Writer: escribe todo lo que se encuentra en el redo log buffer hacia el redo file o Checkpoint: sincroniza todo lo que se tenga en memoria, con sus correspondientes archivos en disco

Instancia de una bd en Oracle

Rotacin de segmentos de rollback

Rotacin de bitcoras de Redo

Ejemplo del esquema de una base de datos en Oracle

Utilizacin del Shared Pool

Ejemplo del control de transaccin Los Sistemas de Bases de Datos Relacionales (RDBMS) Los sistemas de bases de datos relacionales RDBMS (RelationalDatabase Management System, por sus siglas en Ingls) tales como Oracle, MySQL, SQL Server, PostgreSQL, Informix, entre otros, le permiten ejecutar las tareas que se mencionan a continuacin, de una forma entendible y razonablemente sencilla: Le permiten ingresar datos al sistema. Le permiten almacenar los datos. Le permiten recuperar los datos y trabajar con ellos. Le proveen herramientas para capturar, editar y manipular datos. Le permiten aplicar seguridad. Le permiten crear reportes e informes con los datos. DEFINICIN Y TERMINOLOGA DE UN RDBMS Los sistemas de base de datos relacionales son aquellos que almacenan y administran de manera lgica los datos en forma de tablas. Una TABLA es, a su vez, un mtodo para presentar los datos en la forma de filas y columnas. Cada columna representa un campo nico de un registro. Varias de estas columnas o campo componen un registro, proveyendo informacin significativa e interrelacionada. Cada registro es representado en una fila. Una tabla puede consistir en varias columnas. Muchas de las tablas que poseen datos interrelacionados e interdependientes son agrupadas por medio de el establecimiento de relaciones entre ellas. Al administrar las tablas y sus relaciones, encontramos los medios para insertar, borrar, consultar y actualizar la informacin de un sistema RDBMS. En la tabla anterior, la tabla Empleados consiste en tres columnas y tres filas. Las columnas o campo conforman un registro lgico, correspondiente a un empleado.

La tabla Empleados esta relacionada con la tabla de Departamentos por medio de una columna "Numero de Departamento" que aparece en ambas tablas. Llave Primaria Hemos visto que los datos son almacenados de manera lgica en tablas en la Bases de datos relacionales. Cada tabla tiene un nombre nico. Para identificar una fila particular en una tabla, se usa una columna o combinacin de columnas. Esta columna debe ser tal que identifique de manera nica e inequvoca cada fila. No puede haber mas de dos filas (registros) en una tabla que tengan el mismo valor para la columna que haya sido elegida como llave primaria. Una columna identificada como la llave primaria no puede tener valores duplicados no nulos. Por ejemplo, considerando la tabla de Empleados presentada en la Figura No. 1, podemos ver que cada empleado tiene un nico numero de empleado. La columna "NUM-EMP" puede ser escogida como la llave primaria. Similarmente, la columna "NUM-DEPT" en la tabla de Departamentos puede ser igualmente una llave primaria. Llave Fornea La llave primaria y la llave fornea son usadas para establecer relaciones entre tablas. En la Figura No. 1 el dominio de los valores de la columna "NUM-DEPT" de la tabla Empleados se encuentra dentro del rango de valores de la columna "NUM-DEPT" de la tabla Departamentos. Un empleado deber pertenecer a un Departamento que est listado en la tabla Departamentos. Se considera entonces que la columna "NUM-DEPT" en la tabla Empleados es una llave fornea. De esta manera, la existencia de esta llave fornea en la tabla Empleados controla que no pueda ser ingresado un nuevo registro de un empleado si este no pertenece primero a un Departamento. Si el empleado que desea ingresarse a la tabla trabaja en un Departamento que no esta listado en la tabla Departamentos, primero debe crearse el registro del Departamento en su respectiva tabla, y luego si procedemos a ingresar al empleado. Este tipo de control que impone la asignacin de una llave fornea en una tabla es de mucha utilidad para evitar la existencia de registros hurfanos y para evitar la incongruencia de datos, temas que veremos mas adelante. Adems, como dijimos al principio, la llave fornea nos permite relacionar dos tablas, lo cual nos permite compartir y repartir la informacin de manera que no tengamos los mismos datos duplicados en varias tablas. Estos conceptos sern aterrizados en la seccin de Normalizacin de tablas que se estudiar en un capitulo posterior. En los esquemas de tablas, las llaves primarias estn subrayadas. Igualmente diagramaremos restricciones de integridad referencial a travs de lneas de conexin que van desde cada llave fornea hasta la llave primaria que referencie. Para que haya mejor claridad, la punta de la flecha deber apuntar hacia la llave primaria de la tabla referenciada. Nulos Un Nulo se puede interpretar como un valor indefinido o como ningn valor. Los nulos son usados en las columnas donde se desconozca su valor. Un nulo no significan espacios en blanco. Un valor "nulo" no puede ser usado para hacer ningn clculo u operaciones de comparacin. Un "nulo" puede ser comparable a un infinito. Un "nulo" no es igual a otro "nulo". Vistas

Los RDBMS gestionan la estructura fsica de los datos y su almacenamiento. Con esta funcionalidad, el RDBMS se convierte en una herramienta de gran utilidad. Sin embargo, desde el punto de vista del usuario, se podra discutir que los RDBMS han hecho las cosas ms complicadas, ya que ahora los usuarios ven ms datos de los que realmente quieren o necesitan, puesto que ven la base de datos completa. Conscientes de este problema, los RDBMS proporcionan un mecanismo de vistas que permite que cada usuario tenga su propia vista o visin de la base de datos. El lenguaje de definicin de datos permite definir vistas como subconjuntos de la base de datos. Las vistas, adems de reducir la complejidad permitiendo que cada usuario vea slo la parte de la base de datos que necesita, tienen otras ventajas: Las vistas proporcionan un nivel de seguridad, ya que permiten excluir datos para que ciertos usuarios no los vean. Las vistas proporcionan un mecanismo para que los usuarios vean los datos en el formato que deseen. Una vista representa una imagen consistente y permanente de la base de datos, incluso si la base de datos cambia su estructura.

Htdocs D: \ FTP \ Usuario \ htdocs directorio Web raz, donde se coloca el contenido del sitio web como index.html y default.asp. Quin puede editar htdocs. Cualquier persona con acceso de escritura al rbol de NetBSD CVS puede htdocs caja y hacer los cambios, y de hecho se anima a hacerlo. En particular, los desarrolladores agregar funciones y los conductores deben actualizar el hardware adecuado o pgina de inicio del puerto. Utilice su nombre de usuario NetBSD.org contra cvs.NetBSD.org y la salida 'htdocs'. Lo que se necesita para editar htdocs (arriba) Lea la introduccin CVS. Instale meta-pkgs/netbsd-www, que proporciona las herramientas necesarias para construir el sitio web. Por favor, asegrese de que usted tiene por lo menos textproc / docbook-xsl> = 1.68.1 y textproc / docbook-sitio web de> = 2.6.0nb1 (requiere

automticamente meta-pkgs/netbsd-www 1,4, pero las versiones anteriores aceptado revisiones anteriores de la necesaria herramientas, que no puede apropiarse). Tenga en cuenta que cualquier LOCALBASE especial o PKG_SYSCONFBASE configuraciones en / etc / mk.conf no deben ser protegidos por BSD_PKG_MK como sus valores son utilizados por los makefileshtdocs. Tambin instale meta-pkgs/netbsd-doc-print para regenerar la gua NetBSD y algunas otras pginas que dependen de la gua. Establezca su CVSROOT como se indica y ejecutar cvscheckouthtdocs