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 contenido?

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 unos primos suyos)
  4. Qué es un gestor de contenido
  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; Google Sheets propietaria pero gratuita o Numbers, de Apple y sólo disponible para Mac OS X.

En las celdas de la base de datos de un sitio web se almacena información, por ejemplo, los textos de sus páginas.

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 los datos de un producto. 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 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 ID. En el ejemplo anterior (Tabla 5.1) hemos llamado al identificador único “Referencia”.

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

Nombre de tabla: “Ventas”

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) a través del número de referencia. Así sabemos 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 €”. 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 es menos habitual en el desarrollo web y por eso no hablo de ellas en este libro).

Los software 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, llamadas RDBMS, que permiten consultar el contenido de las bases de datos. Dichos programas permiten consultar bases de datos a través de comandos de texto. Algunos de los RDBMS más extendidos son MySQL, 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, obtener cualquier dato, 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 otro sistema de gestión de bases de datos.

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. Su fortuna, de 56.200 millones de dólares, le convierten en la quinta persona más rica del mundo.
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“, lo 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 puedes usar MySQL para crear una base de datos donde almacenar un catálogo de productos. Después puedes crear un programa en PHP que genere un archivo HTML con el contenido de esa base de datos.

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

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

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

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 contenido… y en realidad en cualquier tecnología en la que exista más de una alternativa. Más adelante te cuento por qué, por este motivo, no te debe preocupar la tecnología a usar.

Por ejemplo, la Wikipedia, uno de los mayores archivos documentales del mundo, usa el gestor de contenido 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 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.

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 (los sitios web grandes suelen usar una combinación de lenguajes de programación, a veces modificados a su gusto).

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 debe preocupar, lo que te debe preocupar es saber elegir bien a quien vaya a tomar dicha decisión.

¿Qué es un gestor de contenido o CMS?

Un gestor de contenido 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. Bien visto, un gestor de contenido consiste en una interfaz gráfica que permite introducir y editar contenido en una base de datos.

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 contenido del blog mongemalo.es, WordPress. Se solicita

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

Captura de pantalla del panel de control del gestor de contenido 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. Tan fácil como escribir un mensaje de correo electrónico.
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 publicado.

WordPress, Joomla!, Drupal, Prestahop 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 MagentoWordPress o 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á construida 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, también cuenta con versiones de pago.

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 para implementar nuevas funcionalidades. 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 a medida, es decir, no concebidas para ningún gestor de contenidos en particular. themeforestTemplateMonster son dos populares tiendas online de plantillas de diseño web.

Comprar una plantilla es una excelente opción para probar una idea de negocio rápidamente y sin gran inversión pero no es una buena opción si deseas tener una imagen de marca única y coherente a lo largo de todos tus elementos corporativos, no deseas parecerte a otros sitios web 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 llamados 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 añade funcionalidades de tienda online. A veces, como en el caso de WooCommerce, 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. Suele ser fácil encontrar en el código HTML referencias al gestor de contenidos con el que está construido un sitio web.

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 su eslogan: “El código es poesía”. Algunos llegan más lejos.
(Imagen bajo licencia CC BY-NC-ND 3.0 cortesía de Alexandra Lucas.)

De nuevo, es fácil encontrar excelentes y horribles sitios web construidos con cualquier gestor de contenido.

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 gestores de contenido autoalojados, y también 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 todavía más 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 diseñarás y crearás un sitio web en unos pocos minutos aunque no tengas idea de informática. Por contra, la personalización gráfica y de funcionalidad que puedes alcanzar en tu sitio web es limitada.

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 tener mayor control sobre tu sitio web.

Una desventaja importante de los gestores de contenido autoalojados es que rara vez permiten exportar el contenido. Esto quiere decir que si construyes un sitio web extenso con un gestor de contenidos autoalojado y algún día decides cambiar a otro gestor de contenidos tendrás un largo trabajo por delante.

Formatos de almacenamiento e intercambio de datos

Siguiendo ciertas normas podemos usar documentos de texto para intercambiar información entre bases de datos:

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 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 €"

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 del 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”.

Al igual que el lenguaje HTML, el XML es un lenguaje de etiquetas. Como 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í. A diferencia del HTML, en XML nos inventamos los nombres de las etiquetas. Así de sencillo 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 XML y distintas versiones de CSV.

sitemap.xml de un sitio web

Sitemap significa “mapa del sitio”. El sitemap.xml es un archivo que se suele almacenar en el directorio raíz del alojamiento del sitio web. Usando unas etiquetas determinadas, el sitemap.xml contiene la siguiente información de cada página del sitio web: URL, última fecha de actualización, número de imágenes que contiene, importancia dentro del sitio web y frecuencia con la que se actualiza.

El archivo sitemap.xml facilita que buscadores como Goolge, Yahoo!, Bing o Ask conozcan la arquitectura de la información de un sitio web.

Aunque puedes crear y actualizar el archivo sitemap.xml a mano, esta labor requeriría demasiado trabajo y cometerías errores, por eso, la mayoría de gestores de contenidos pueden configurarse para generar un sitemap.xml y actualizarlo automáticamente cada vez que hagas 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 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 ser la ó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. 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 una gran cantidad de información.

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…

Dan Ariely (1968– ).

Resumen

Las bases de datos sirven para almacenar contenido independizando dicho contenido de la programación y la maquetación.

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 conocido MySQL.

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

Un gestor de contenido es una aplicación web que permite la edición de contenido de un sitio web sin necesidad de conocimientos técnicos avanzados.

Existen estándares para intercambiar información, como el CSV, el XML o el JSON, que consisten en archivos de texto en los que hay que escribir el contenido siguiendo ciertas 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 por eso que no debes perder ni un segundo en empezar con el Capítulo 6. Qué es un servidor y cómo funciona internet.