Cómo contratar diseño web sin hacer el ridículo

Capítulo 5

¿Qué es una base de datos y qué son los gestores de contenidos?

En este capítulo aprenderás…

  1. Qué es una base de datos
  2. Qué es y cómo funciona el lenguaje SQL
  3. Qué es MySQL (y SQLite, y PostgreSQL, y …)
  4. Qué es un gestor de contenidos
  5. Qué son los archivos CSV, XML y JSON
  6. Qué es el big data

Bases de datos

Imagina una base de datos como una hoja de cálculo con varias páginas. Una base de datos es un archivo que cuenta con tablas formadas por celdas distribuidas en filas y columnas.

Los documentos de Microsoft Excel son hojas de cálculo. Microsoft Excel es un programa de creación y edición de hojas de cálculo. Otras herramientas de creación y edición de hojas de cálculo son Calc, libre y gratuita, o Numbers, ésta última de Apple y sólo para Mac OS X.

En las celdas de la base de datos de un sitio web se almacena información, como por ejemplo los textos de cada una de las secciones.

Imagina que creamos una base de datos para una tienda online. Sería lógico crear una tabla llamada “productos”. En dicha tabla podríamos crear las columnas “nombre del producto”, “descripción” y “precio”.

En cada fila de la tabla introduciríamos un producto, para el cual rellenaríamos las tres columnas mencionadas en el párrafo anterior. El resultado sería parecido a lo que se muestra a continuación:

Nombre de la tabla: “Productos”

Referencia Nombre Descripción Precio
1 Camiseta deportiva 100% algodón 19,99 €
2 Pantalones vaqueros Temporada: primavera/verano 99,99 €
3 Camisa Ideal para llevar con traje y corbata 39,95 €

Tabla 5.1. Ejemplo de tabla de una base de datos del catálogo de productos de una tienda online de ropa.

En una tabla de una base de datos cada elemento debe tener un identificador único, también llamado Key ID o simplemente ID. En el ejemplo anterior de la tabla de productos (Tabla 5.1), hemos llamado al identificador único “Referencia”.

Otras tablas que tendría sentido crear son “Ventas realizadas” o “Usuarios registrados”. Varias tablas pueden estar relacionadas entre sí a través de su identificador. Siguiendo el ejemplo anterior, imaginemos que existe la siguiente tabla de ventas realizadas:

Nombre de tabla: “Ventas realizadas”

Referencia Unidades Vendidas
1 321
2 18
3  72

Tabla 5.2. Ejemplo de tabla de una base de datos de una tienda online de ropa.

La Tabla 5.1 (Productos) está relacionada con la Tabla 5.2 (Ventas realizadas) a través del número de referencia. De esta forma sabemos, a través de la Tabla 5.1, que el producto con número de referencia 1 se llama “Camiseta deportiva”, que su descripción es “100% algodón” y su precio “19,99 €”. Además, gracias a la Tabla 5.2 sabemos que de ese mismo producto (referencia = 1) se han vendido 321 unidades. Por este motivo, este tipo de bases de datos se denominan bases de datos relacionales (también existen las bases de datos no relacionales, pero su uso no es habitual en el desarrollo web y por eso no vamos a hablar de ellas en este libro).

Los sistemas para gestionar bases de datos relacionales se denominan RDBMS, del inglés Relational Database Management Systems.

Imagen de cuatro discos apilados uno encima de otro.

Imagen 5.3. Icono utilizado universalmente para representar una base de datos.

Las bases de datos son archivos que contienen información ordenada siguiendo unas reglas. Existen aplicaciones que permiten consultar el contenido de las bases de datos, llamados RDBMS. Dichos programas permiten hacer consultas a la base de datos a través de comandos de texto.

Uno de los RDBMS más extendidos es MySQL. Otros bastante conocidos son SQLite, PostgreSQLMariaDB.

Por ejemplo, imagina que en la base de datos anterior queremos obtener el precio del producto con “Número de referencia” igual a “2”. Para ello ejecutaríamos la siguiente consulta o query en un programa de gestión de base de datos o RDBMS:

SELECT Precio FROM Productos WHERE Referencia = 2;

Esa consulta significa: “SELECCIONA Precio DE Productos DONDE Referencia = 2”, y tras ejecutarla, el software de gestión de bases de datos nos devolvería el siguiente resultado:

Precio = 99,99 €

En un lenguaje de bases de datos existe vocabulario para ejecutar todo tipo de operaciones, como por ejemplo: crear tabla, borrar tabla, agregar elemento a una tabla, borrar elemento de una tabla, editar cualquier campo, borrar la base de datos entera, etc.

La tecnología MySQL pasó a manos de Oracle Corporation cuando ésta compró Sun Microsystems, su anterior propietaria. MySQL es software libre y gratuito. Curiosamente Oracle cuenta con otras tecnologías de bases de datos que a diferencia de MySQL no son abiertas.

Microsoft SQL Server es el sistema de gestión de bases de datos creado por, cómo no, Microsoft.

Larry Ellison, de pie, en traje negro, con un micrófono en la mano, dando una conferencia en un escenario con el logotipo de Oracle a fondo y una pantalla gigante con su imagen a su derecha.

Imagen 5.4. Larry Ellison (1944— ) es el fundador de la empresa Oracle, de la que fue presidente entre 1977 y 2014. Se estima que es la quinta persona más rica del mundo con una fortuna de 56.200 millones de dólares.
Larry es otro empresario tecnológico de éxito que no acabó sus estudios (al igual que el cofundador de Microsoft Bill Gates o los fundadores de Apple Steve Wozniak y Steve Jobs).
(Imagen bajo licencia CC BY-SA 3.0 cortesía de Ilan Costica.)

SQL son las siglas de “Structured Query Language“, que se traduce como “Lenguaje Estructurado de Consultas”, puesto que es un lenguaje que sirve para consultar la información almacenada en una base de datos.

Captura de phpMyAdmin en un navegador Chrome para Mac OS X. En la columna izquierda un listado de bases de datos correspondientes a varios sitios sitios web alojados en el mismo alojamiento. Al seleccionar una base de datos se muestran, en la misma columna, todas las tablas que dicha base de datos contiene. Al hacer clic en una de las tablas, en la columna derecha se muestra el contenido de dicha tabla, que es la tabla de artículos (llamada wp_posts) de la base de datos del blog mongemalo.es. Entre otras, la tabla tiene tres columnas: post_date (que es la fecha de publicación), post_title (que es el título de artículo) y post_content (que es el cuerpo de texto del artículo). Debajo de una cabecera que muestra los nombres de las columnas se observa el contenido de dichas columnas para varios artículos del blog.

Imagen 5.5. phpMyAdmin es una popular aplicación web que permite operar con bases de datos MySQL a través de una interfaz gráfica. Para editar cualquiera de las celdas de la tabla sólo hay que hacer clic en ella, introducir el valor deseado y guardar los cambios.

En el código de un programa informático se escriben sentencias para trabajar con bases de datos. Por ejemplo podrías crear una base de datos usando MySQL para almacenar un catálogo de productos. Después podrías crear un programa en PHP que generara un archivo HTML con el contenido que se obtuviera al leer la base de datos MySQL que creaste en primer lugar.

De esa forma, si dentro de un tiempo fuera necesario añadir nuevos productos a la página web no tendrías que modificar el código PHP o HTML, sólo añadir nuevas filas a tu tabla de datos, lo que resulta más sencillo y rápido de mantener que modificar el código HTML o PHP. También facilitaría las cosas a un tercero que tuviera que modificar el contenido de la página web, pues esta persona no necesitaría estudiar el código PHPHTML escrito previamente.

Con las bases de datos se independiza el contenido de la lógica o funcionalidad.

Si le pusieras muchas ganas también podrías programar un panel de control privado, es decir, accesible a través de contraseña y que contara con una interfaz gráfica que permita la edición de la base de datos sin necesidad de conocimientos de SQL. Esto le facilitaría mucho la vida a los usuarios que vayan a gestionar el contenido. Si lo hicieras, habrías creado un gestor de contenidos.

En el anterior capítulo te contaba que existen rivalidades entre los defensores de los distintos lenguajes de programación, pues bien, lo mismo ocurre lo mismo con los lenguajes de bases de datos, los gestores de bases de datos, los gestores de contenidos… y en realidad en cualquier tecnología en la que exista más de una alternativa. No obstante, como veremos más adelante, ese es uno de los motivos por los que usar una u otra tecnología no te debe preocupar.

Por ejemplo, la Wikipedia, que es uno de los mayores archivos documentales del mundo, usa el gestor de contenidos de código libre MediaWiki, creado por la Wikimedia Fundation, programado en PHP y que usa el gestor de bases de datos MySQL. Sin embargo, no es difícil encontrar buenos argumentos en contra de esta base de datos y a favor de otras:

Es fácil encontrar grandes e importantes sitios webs que usen cualquier tecnología de bases de datos. Por ejemplo, google.com usa MariaDB, twitter.com usa MySQL, amazon.com usa Oracle Database y etsy.comPostgreSQL.

Como te contaba hace unas líneas, lo mismo ocurre con los gestores de contenidos.

Con los lenguajes de programación no es diferente. facebook.com, youtube.com o yahoo.com están programados en PHP. Amazon, Twitter o LinkedIn han preferido Java. Python fue la elección para reddit.comspotify.com y dropbox.com. ASP.NET reina en bing.comstackoverflow.com y ebay.com; mientras que Ruby (on Rails, probablemente) lo hace en kickstarter.comgoodreads.com y airbnb.com. (En realidad un sitio web grande suele usar una combinación de lenguajes de programación, a veces modificados a gusto de la empresa propietaria de dicho sitio web.).

Si estudiamos quién usa qué sistema operativo, servidor web o cualquier otra tecnología, de nuevo nos encontraremos con que distintos sitios webs de éxito se decantan por distintas tecnologías.

Elegir una tecnología porque la usa un grande es una estupidez (y una forma de la falacia de autoridad). El uso de una tecnología por otros no hace que dicha tecnología sea mejor o peor. Como te cuento en el Capítulo 8 – Dirección de proyectos y en el Capítulo 9 – Más de 100 ideas para mejorar tu proyecto, la elección tecnológica no te debería preocupar, lo que te debería preocupar es ser capaz de elegir bien a quien vaya a tomar dicha elección.

¿Qué es un gestor de contenidos o CMS?

Un gestor de contenidos o CMS es una aplicación, normalmente web, que permite la edición del contenido de un sitio web sin necesidad de contenidos técnicos avanzados por parte del usuario editor. Lo que realmente hace el gestor de contenidos es introducir y editar contenido en la base de datos a través de una interfaz gráfica.

CMS son las siglas de Content Management System, que significa Sistema de Gestión de Contenido.

WordPress, Drupal, Joomla!, PrestaShop, MagentoShopify, OpenCart, Blogger o Medium son algunos gestores de contenido populares, pero existen más de mil de gestores de contenido.

Fotografías de cada uno de los fundadores de WordPress. Uno de ellos, Matt Mullenweb viste una camiseta azul marino con el logotipo de WordPress en blanco.

Imagen 5.6. La primera versión de WordPress fue publicada en 2003, cuando sus programadores, Mike Little (izquierda) y Matt Mullenweg (derecha) tenían 41 y ¡19 años!, respectivamente.
WordPress es software libre publicado bajo licencia GPLv2 (o posterior), que es uno de los tipos de licencias elaboradas por la Free Software Foundation de Richard Stallman.
La fotografía de Matt Mullenweg fue tomada en el WordCamp (un evento acerca de WordPress) de San Francisco en 2006.
(Imágenes bajo licencia CC BY-SA 2.0 (izquierda) y CC-BY-SA-2.5 (derecha) cortesía de MadLab Manchester Digital Laboratory y Arnaud H., respectivamente.)

Captura de pantalla de la pantalla de identificción al panel de control del gestor de contenidos del blog mongemalo.es, WordPress. Se solicita

Imagen 5.7. Captura de la pantalla de identificación al panel de control de WordPress del sitio mongemalo.es.

Captura de pantalla del panel de control del gestor de contenidos del blog mongemalo.es, WordPress. Se muestra la pantalla de edición del artículo titulado

Imagen 5.8. Captura de la pantalla de edición de un artículo del blog mongemalo.es, construido en WordPress. Casi tan fácil como enviar un correo electrónico o editar un documento de texto.
Lo que ves en la imagen superior es el editor WYSIWYG de WordPress. Recuerda que ya en el Capítulo 3. ¿Qué es el HTML y CSS? explicaba que un editor WYSIWYG convierte en HTML contenido introducido a través de una sencilla interfaz gráfica como la de la imagen.

Captura de pantalla del artículo del blog de mongemalo.es titulado

Imagen 5.9. Así se ve el artículo que se ha publicado como se explica y muestra anteriormente.

WordPress, Joomla!, Drupal, PrestaShop y Magento están programados en PHP y funcionan con bases de datos MySQL. Magento, además, usa el framework de PHP Zend. Shopify está programado en Ruby On Rails. Drupal, a partir de su versión 8, emplea Symfony, un framework de PHP.

Si ya cuentas con una web construida en un gestor de contenidos y deseas contratar a alguien para modificarla o mantenerla, no busques a un experto en el gestor de contenidos, busca a un experto en el lenguaje de programación y framework con el que está desarrollado el gestor de contenidos de tu web.

Por ejemplo, no busques a un experto en MagentoPrestaShop o WordPress, busca a un buen programador de PHP. El gestor de contenidos es lo fácil de aprender. Ningún informático que se precie diría que es un experto en un gestor de contenidos. Un buen programador se convierte en un experto en un gestor de contenidos en cuestión de días.

Sé que el anterior comentario levantará ampollas entre algunos autoproclamados expertos en Magento o WordPress, incluso en PrestaShop. Lo siento por ellos. Una excepción legítima es el gestor de contenidos Drupal, que a diferencia del resto está diseñado con el programador en mente (en lugar del usuario que gestiona el contenido de la web), para permitir máxima flexibilidad en la implementación de funcionalidades.

Tampoco es correcto hablar de desarrollar (o programar) en un gestor de contenidos. Desarrollar o programar se desarrolla o programa en un lenguaje de programación. Puedes desarrollar en PHP o Java, pero no en WordPress o PrestaShop. Lo correcto es decir que una web está construída sobre WordPress, PrestaShop o cualquier otro gestor de contenidos.

Los CMSs pueden ser de código abierto o de código propietario, gratuitos o de pago y basados o no en un modelo de SaaS.

WordPress, Joomla! Drupal, PrestaShop, Magento son gestores de contenidos de código abierto y gratuitos. Shopify es de código propietario y que se comercializa bajo un modelo SaaS. Magento, pese a ser libre, ofrece versiones de pago de su software.

Logotipos de: WordPress (que consiste en una

Imagen 5.10. Logotipos de los gestores de contenido más populares

Existen CMSs concebidos para distintos propósitos, como la venta online, reserva de habitaciones de hoteles, prestación de cursos online, venta de entradas o gestión de foros.

A estas alturas ya entenderás que el diseño es independiente del CMS. Con cualquier CMS en el que sea posible acceder al código fuente se puede obtener cualquier diseño.

Igual que con el diseño, teniendo acceso al código fuente, cualquier funcionalidad se puede implementar en cualquier gestor de contenidos. Otra cosa es si es razonable hacerlo.

Cada gestor de contenidos ofrece distinto grado de flexibilidad y facilidad a la hora de implementar funcionalidades personalizadas. No obstante, si se requiere algo muy personalizado es preferible optar por un desarrollo a medida en lugar de usar un CMS existente.

¡Ojo! No confundas CMS con plantilla o template. Mientras un CMS es una herramienta para gestionar contenido, una plantilla o template es un diseño predefinido. En el caso de la web, una plantilla está compuesta por un conjunto de archivos CSS y probablemente imágenes, archivos HTML y archivos JavaScript, PHP o de otros lenguajes de programación.

Existen plantillas para gestores de contenido como WordPress o para desarrollos más a medida, es decir, no concebidas para ningún gestor de contenidos en particular. themeforestTemplateMonster son dos de las más populares tiendas online de plantillas de diseño web.

Comprar una plantilla es una excelente opción para probar una idea de negocio o sitio web rápidamente y sin gran inversión. No es una buena opción si por contra deseas tener una imagen de marca única y coherente a lo largo de todos los elementos corporativos, no deseas parecerte a otros sitios web de internet o ambicionas un elevado perfeccionismo técnico o en posicionamiento en buscadores.

La mayoría de CMSs permiten extender su funcionalidad a través de programas a los que llaman plugins, extensiones, componentes, addons o módulos. La mayoría de los gestores de contenidos cuentan con extensiones tanto gratuitas como de pago, pero no esperes ningún milagro, no vas a replicar la tecnología de la última empresa de éxito a base de un gestor de contenidos y sus extensiones. Si lo intentas lo más probables es que acabes con un Frankenstein incompleto y habiendo perdido tiempo y dinero.

WooCommerce es un conocido plugin para WordPress que le añade funcionalidades de tienda online. A veces, como en el caso de WooCommerce, incluso existen plugins para plugins.

Capturas de sitios web, a 2 de abril de 2015, construidos con WordPress: Time (time.com), Fortune (fortune.com), TechCrunch (techcrunch.com), The New Yorker (newyorker.com)

Imagen 5.11. WordPress y Drupal son, con diferencia, los gestores de contenido más utilizados. Sitios web tan importantes como Time, Fortune, TechCrunch y The New Yorker usan WordPress. Otros, como The Economist, la NASA o La Casa Blanca usan Drupal.

Captura de pantalla de las estadísticas de builtwith.com (trends.builtwitdh.com/cms) de uso de gestores de contenidos, en forma de gráfico de tarta. Muestra que el más usado es WordPress (49,47%), seguido de Drupal (14,63%), y Joomla! (1,03%), seguido de otros muchos con porcentajes menores al 1% y

Imagen 5.12. Una forma de saber con qué gestor de contenidos está construida una página web es con herramientas como el sitio web builtwith o la extensión de Google Chrome y Firefox Wappalyzer. Estos dos sitios web también publican estadísticas de uso de gestores de contenido y otras tecnologías empleadas en la construcción de sitios web.

Capturas de sitios web, a 2 de abril de 2015, construidos con Drupal: The Economist (economist.com), NASA (nasa.gov), The White House (whitehouse.gov)

Imagen 5.13. Normalmente, es fácil encontrar en el código HTML de una página web referencias al gestor de contenidos con el que está construida.

Fotografía tomada desde arriba de varios cientos de asistentes en una sala y una gran mascota inchable en forma del logo de Drupal.

Imagen 5.14. Cualquier lenguaje de programación, base de datos, gestor de contenidos, disciplina o especialización, y prácticamente cualquier tecnología que se precie, cuenta con eventos periódicos alrededor del mundo. En la imagen, una de las muchas conferencias de Drupal, DurpalCon, en 2013.
(Imagen bajo licencia CC BY-SA 2.0 cortesía de Drupal Association y BrokenBanjo.)

Un asistente a un evento viste una camiseta negra con el eslogan de WordPress,

Imagen 5.15. Fan de WordPress vistiendo camiseta con el eslogan “El código es poesía”. Hay algunos que llegan más lejos.
(Imagen bajo licencia CC BY-NC-ND 3.0 cortesía de Alexandra Lucas.)

Gestores de contenido autoalojados o self-hosted

En el capítulo 3 hablaba de Wix y SquareSpace, herramientas que partiendo de diseños predefinidos permiten construir sitios web sin apenas conocimientos técnicos. Wix o SquareSpace son dos de los gestores de contenido autoalojados más conocidos, pero hay otros, como los ya mencionados blogger, medium o Shopify.

Los sitios web basados en gestores de contenido autoalojados no se alojan en un alojamiento de tu propiedad, sino que se alojan en el servidor de alojamiento que te proporciona el propio gestor de contenidos. Por eso es habitual que si deseas usar un gestor de contenidos autoalojado tengas que pagar una cuota recurrente o mostrar publicidad en tu sitio web, aunque no siempre es así.

Los gestores de contenido autoalojados suelen ser extremadamente sencillos de usar y no permiten acceder a su código fuente, pues persiguen al usuario que no se quiere complicar la vida con decisiones técnicas. No te tienes que ocupar de actualizarlos o mantenerlos, de hacer copias de seguridad, de contratar alojamiento… y crear y diseñar el sitio web se puede hacer en cuestión de pocos minutos aunque no tengas ni idea de informática. Esto es una gran ventaja por un lado, pero por otro limita la personalización, gráfica y de funcionalidad, que puedes alcanzar en tu sitio web.

Shopify es un gestor de contenidos de tienda online, autoalojado, que además permite un alto grado de personalización, aunque nunca tanto como en un gestor de contenidos no autoalojado.

WordPress, en wordpress.com ofrece una versión autoalojada de su gestor de contenidos, pero también puedes descargar su código fuente en wordpress.org y alojarlo donde desees, para así tener un mayor control sobre tu sitio web.

La mayor desventaja de los gestores de contenido autoalojados es que rara vez permiten exportar el contenido o hacerlo de una forma que haga fácil su reaprovechamiento en otro gestor de contenidos. Esto quiere decir que si tienes una tienda online con miles de productos en un gestor de contenidos autoalojado y un día decides cambiar a otro gestor de contenidos tendrás un largo trabajo por delante.

Formatos de almacenamiento e intercambio de datos

Si quieres que la base de datos reciba contenido de un sistema externo, como otra aplicación web o una aplicación móvil, o deseas enviar tus datos a otra persona o sistema, usarás archivos de texto en un formato de almacenamiento de datos como CSV, XML o JSON.

También puedes importar contenido a una base de datos, o exportar contenido de una base de datos, a través de archivos con estos formatos.

CSV

CSV son las siglas de “Comma-Separated Values” o “Character-Separated Values“, expresiones inglesas que se traducen como “Valores Separados por Coma” o “Valores Separados por Carácter”, respectivamente. Esto es así porque los campos almacenados en un archivo CSV se separan por comas u otro carácter.

La estructura de los archivos CSV es muy fácil de entender. Por ejemplo, así sería el archivo CSV resultante de exportar la Tabla 5.1 (Productos) presentada al inicio de este capítulo:
"Referencia","Nombre","Descripción","Precio"
"1","Camiseta deportiva","100% algodón","19,99 €"
"2","Pantalones vaqueros","Temporada: primavera/verano","99,99 €"
"3","Camisa","Ideal para llevar con traje y corbata","39,95 €"

Como puedes observar en el ejemplo anterior, la primera línea determina los campos a almacenar (referencia, nombre, descripción y precio), y cada una de las siguientes líneas refleja los valores de dichos campos, separados por comas, para cada uno de los productos.

El valor de cada uno de los campos se delimita por comillas. Así, si el valor de un campo contiene el carácter de la coma el ordenador sabrá que esa coma no es un separador de valores, sino que es parte del valor de un campo.

También podemos ahorrarnos las comillas si utilizamos como separador un carácter que no forme parte del valor de ninguno de los campos, como por ejemplo el signo de punto y coma (;). También sería aceptable usar las comillas únicamente en aquellos campos que contengan el signo de la coma (o el carácter separador correspondiente) como parte de su valor.

XML

El XML es un lenguaje definido por el W3C, la misma organización que define el lenguaje HTMLXML son las siglas de “eXtensible Markup Language“, algo que se traduce al castellano como “Lenguaje Extensible de Marcado”.

El XML es un lenguaje de etiquetas, igual que lo es el lenguaje HTML. De la misma forma que ocurre en HTML, las etiquetas de XML deben abrirse y cerrarse. Entre la etiqueta de apertura y la etiqueta de cierre se recoge el contenido. Las etiquetas son anidables entre sí. Pero a diferencia del HTML, en XML nos inventamos los nombres de las etiquetas.

El XML es muy fácil de entender, por ejemplo, así sería el archivo XML resultante de exportar la Tabla 5.1(Productos) presentada al inicio de este capítulo:

<tienda-online>
  <tabla-productos>

    <producto>

      <referencia>
        1
      </referencia>    
    
      <nombre>
        Camiseta deportiva
      </nombre>

      <descripcion>
        100% algodón
      </descripcion>
      
      <precio>
        19,99 €
      </precio>
      
    </producto>

    <producto>
    
      <referencia>
        2
      </referencia>    
    
      <nombre>
        Pantalones vaqueros
      </nombre>

      <descripcion>
        Temporada: primavera/verano
      </descripcion>
      
      <precio>
        99,99 €
      </precio>
      
    </producto>

    <producto>
    
      <referencia>
        3
      </referencia>    
    
      <nombre>
        Camisa
      </nombre>

      <descripcion>
        Ideal para llevar con traje y corbata
      </descripcion>
      
      <precio>
        39,95 €
      </precio>
      
    </producto>

  </tabla-productos>
</tienda-online>
Imagen del cuadro de diálogo de Microsoft Excel de

Imagen 5.16. Microsoft Excel permite guardar una hoja de cálculo en distintos formatos XML o CSV.

sitemap.xml

Quizás hayas oído hablar del sitemap.xml de un sitio web. Sitemap significa “mapa del sitio” (del sitio web, se entiende).

El sitemap.xml es un archivo en formato XML que, usando unas etiquetas determinadas, representa información acerca de cada página de un sitio web, como por ejemplo: la URL, la última fecha de actualización, el número de imágenes que contiene la página en cuestión, la importancia de cada página dentro del sitio web o la frecuencia con la que se actualiza cada página.

El archivo sitemap.xml resulta de gran ayuda a los buscadores como Goolge, Yahoo!, Bing o Ask, pues les permite descubrir la arquitectura de la información de un sitio web de manera muy eficiente, lo que tiene una repercusión positiva en el posicionamiento en buscadores.

El archivo sitemap.xml se suele almacenar en el directorio raíz del alojamiento.

Aunque podrías crear y actualizar el archivo sitemap.xml a mano, esta labor requeriría demasiado trabajo y se cometerían errores, por eso, la mayoría de gestores de contenidos pueden configurarse para que generen un sitemap.xml y que lo actualicen automáticamente cada vez que se haga un cambio en el sitio web.

JSON

JSON son las siglas de “JavaScript Object Notation“, que se traduce como “Objeto de Anotación de JavaScript“, y es otro formato de archivo de texto utilizado para intercambiar datos. Pese a su relación con JavaScript puede utilizarse con cualquier lenguaje de programación o simplemente para almacenar datos.

A continuación el resultado de exportar a JSON la Tabla 5.1 (Productos) presentada al inicio de este capítulo:

{
  "tienda-online": {
    "tabla-productos": {
      "producto": {
        "Referencia": "1",
        "Nombre": "Camiseta deportiva",
        "Descripción": "100% algodón",
        "Precio (€)": 19.99
        }
      "producto": {
        "Referencia": "2",
        "Nombre": "Pantalones vaqueros",
        "Descripción": "Temporada: primavera/verano",
        "Precio (€)": 99.99
        }
      "producto": {
        "Referencia": "3",
        "Nombre": "Camisa",
        "Descripción": "Ideal para llevar con traje y corbata",
        "Precio (€)": 39.95
        }
      }
    }
}

CSV ≠ base de datos

Un archivo de intercambio de datos (es decir, un archivo CSV, XML, JSON o en otro formato de intercambio de datos), no tiene por qué ser un reflejo de una tabla de una base de datos. Un archivo CSV, por ejemplo, podría contener sólo parte de las filas y/o parte de las columnas de una tabla de la base de datos. También se podrían combinar varias tablas, o partes de varias tablas, en un sólo archivo. En este caso se debería desarrollar un programa informático que asigne a cada campo de cada tabla de la base de datos el campo correspondiente en el archivo de intercambio de datos.

El motivo por el que a veces se trabaja con archivos de intercambio de datos con diferente configuración a la configuración de las tablas de una base de datos es porque la forma en la que se configura el archivo de intercambio de datos es más cómoda de gestionar por un humano que la forma en la que está configurada la base de datos, que sin embargo puede resultar óptima para un ordenador.

Big data

Big data significa algo así como “gran cantidad de datos” y es un término que se ha popularizado con propósitos comerciales pero con poca sustancia en su significado.

Se usa para referirse al análisis estadístico que se puede hacer, con un hipotético excelente impacto en los resultados comerciales de una empresa, de la ingente cantidad de información de usuarios o clientes con las que cuentan algunos o que se pueden obtener a través de las redes sociales u otras fuentes.

El big data es como el sexo adolescente: todo el mundo habla de ello, nadie sabe realmente cómo hacerlo, todo el mundo cree que los demás lo están haciendo, así que todo el mundo dice que lo hace…

Resumen

Las bases de datos sirven para almacenar contenido de manera ordenada, fácilmente accesible, y para independizar dicho contenido de la programación y la maquetación (HTML y CSS).

SQL es el lenguaje de bases de datos más popular. Existen sistemas para crear, editar y consultar contenido en bases de datos, siendo el más conocidos MySQL.

A través de la programación, y usando sentencias SQL, podemos crear páginas web que muestren contenido almacenado en una base de datos.

Un gestor de contenidos es una aplicación web que permite la edición de contenido en una base de datos sin necesidad de conocimientos técnicos avanzados, lo que facilita la gestión de un sitio web.

Para intercambiar contenido (con una base de datos o entre programas o usuarios) existen especificaciones como el CSV, el XML o el JSON, que consisten en archivos de texto en los que hay que escribir el contenido siguiendo unas reglas.

Hasta ahora hemos visto que para crear un buen sitio web es necesario conocer al menos un lenguaje de programación, HTML, CSS y un lenguaje de bases de datos, pero eso no es todo. También es necesario saber qué son y cómo funcionan los servidores, y es por eso que no debes perder más tiempo antes de empezar con el Capítulo 6. Qué es un servidor y cómo funciona internet.