{"id":379,"date":"2013-03-18T09:24:38","date_gmt":"2013-03-18T09:24:38","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/fem\/?p=379"},"modified":"2013-08-28T07:21:26","modified_gmt":"2013-08-28T07:21:26","slug":"las-aplicaciones-web-y-las-bases-de-datos","status":"publish","type":"post","link":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/las-aplicaciones-web-y-las-bases-de-datos\/","title":{"rendered":"Las aplicaciones web y las bases de datos"},"content":{"rendered":"<p>Una base de datos es un conjunto de informaci\u00f3n relacionada, estructurada y almacenada de manera sistem\u00e1tica. El objetivo es poder acceder a esa informaci\u00f3n de manera f\u00e1cil, tanto para consultarla como para a\u00f1adir nuevos datos. Los programas que se encargan de gestionar bases de datos se denominan <em>sistemas gestores de bases de datos<\/em> (SGBD) y son una pieza importante en el entramado de la web.<\/p>\n<p>Hace unos a\u00f1os (en marzo del 2004), escribimos un art\u00edculo para la revista <cite>Mosaic<\/cite> titulado <a href=\"http:\/\/mosaic.uoc.edu\/2004\/03\/29\/paginas-web-estaticas-vs-paginas-web-dinamicas-las-bases-de-dades-en-internet\/\"><cite>P\u00e1ginas web est\u00e1ticas vs. p\u00e1ginas web din\u00e1micas. Las bases de datos en Internet<\/cite><\/a>, donde d\u00e1bamos una breve explicaci\u00f3n de lo que es una p\u00e1gina web din\u00e1mica y las diferencias con las p\u00e1ginas web est\u00e1ticas. Recomendamos una lectura de dicho art\u00edculo antes de seguir con este porque lo vamos a usar como referencia.<\/p>\n<p>Si en el 2004 las bases de datos ya eran importantes, actualmente casi todas las webs tienen detr\u00e1s un gestor de contenidos que, a su vez, utiliza un SGBD para almacenar la informaci\u00f3n de la web. Sea como sea, si se quiere crear una web que sea f\u00e1cilmente actualizable, la opci\u00f3n m\u00e1s sencilla ser\u00e1 personalizar un gestor de contenidos y la m\u00e1s complicada ser\u00e1 crearlo; en ambos casos, ser\u00e1 importante tener conocimientos de c\u00f3mo funcionan las bases de datos y c\u00f3mo acceder a la informaci\u00f3n en el lenguaje del SGBD que us\u00e9is.<\/p>\n<p>Aunque la situaci\u00f3n de los diferentes SGBD usados en la web ha cambiado algo desde el 2004, los cambios no son, ahora mismo, demasiado importantes. As\u00ed, SQL sigue siendo el lenguaje de consulta de SGBD m\u00e1s habitual y en la web, <a href=\"http:\/\/www.mysql.com\/\">MySQL<\/a>, <a href=\"http:\/\/www.postgresql.org\/\">PostgreSQL<\/a> y <a href=\"http:\/\/www.sqlite.org\/\">SQLite<\/a> son las soluciones libres m\u00e1s usadas; por su parte, <a href=\"http:\/\/www.microsoft.com\/en-us\/sqlserver\/\">Microsoft SQL Server<\/a> y <a href=\"http:\/\/www.oracle.com\/us\/products\/database\/overview\/index.html\">Oracle Database<\/a> son las soluciones privativas m\u00e1s comunes.<\/p>\n<p>A partir de aqu\u00ed, vamos a centrarnos en uno de esos gestores de bases de datos (MySQL) para explicar de qu\u00e9 manera acceden a los datos las aplicaciones web. La elecci\u00f3n de MySQL no es casual. Seg\u00fan un estudio de Gartner elaborado en el a\u00f1o 2008, MySQL era en ese momento el tercer SGBD m\u00e1s usado en el mundo, el primero de c\u00f3digo libre. Desde entonces y a pesar de que la compra de MySQL por parte de Oracle hizo que algunos desarrolladores pensasen en pasarse a PostgreSQL, su presencia en la web no ha dejado de crecer.<\/p>\n<p>Por otra parte, muchas aplicaciones web usan una combinaci\u00f3n de MySQL como base de datos, PHP como lenguaje de programaci\u00f3n, Apache como servidor web y Linux como sistema operativo. Esta combinaci\u00f3n de tecnolog\u00edas recibe el nombre de <a href=\"http:\/\/es.wikipedia.org\/wiki\/lamp\">LAMP<\/a><a style=\"mso-footnote-id: ftn;\" title=\"\" href=\"#_ftn7\" name=\"_ftnref\"><\/a><span lang=\"ES\"> (Linux, Apache, MySQL y, habitualmente, PHP) y es una de las m\u00e1s usadas en los servidores web.<\/span><\/p>\n<p>En una aplicaci\u00f3n web, como un gestor de contenidos o una tienda en l\u00ednea o cualquier otra web que haga uso de bases de datos, podemos encontrar hasta cuatro tipos de desarrollo:<\/p>\n<ol>\n<li>Desarrollo de HTML + CSS<\/li>\n<li>Desarrollo JavaScript<\/li>\n<li>Desarrollo en PHP<\/li>\n<li>Consultas SQL<\/li>\n<\/ol>\n<figure id=\"attachment_399\" aria-describedby=\"caption-attachment-399\" style=\"width: 425px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/multimedia.uoc.edu\/blogs\/fem\/files\/2013\/03\/Cliente-Servidor-BD.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-399\" alt=\"Esquema de ejecuci\u00f3n de las diferentes partes de una aplicaci\u00f3n web\" src=\"http:\/\/multimedia.uoc.edu\/blogs\/fem\/files\/2013\/03\/Cliente-Servidor-BD.png\" width=\"425\" height=\"197\" srcset=\"https:\/\/multimedia.uoc.edu\/blogs\/fem\/files\/2013\/03\/Cliente-Servidor-BD.png 425w, https:\/\/multimedia.uoc.edu\/blogs\/fem\/files\/2013\/03\/Cliente-Servidor-BD-300x139.png 300w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/><\/a><figcaption id=\"caption-attachment-399\" class=\"wp-caption-text\">Esquema de ejecuci\u00f3n de las diferentes partes de una aplicaci\u00f3n web<\/figcaption><\/figure>\n<p>De las cuatro, las dos primeras se ejecutan en el navegador y las dos segundas, en el servidor, aproximadamente de la siguiente manera:<\/p>\n<ul>\n<li>En el servidor, un archivo .php contiene el programa PHP con las instrucciones SQL para acceder a los datos, con el c\u00f3digo HTML y CSS necesario para poderlos visualizar correctamente y con el JavaScript necesario para interactuar con el usuario.<\/li>\n<li>El servidor ejecuta las instrucciones PHP y las consultas SQL, obtiene los datos y env\u00eda al cliente un archivo con el HTML, el CSS, el JavaScript y los datos obtenidos.<\/li>\n<li>El navegador presenta los datos al usuario y ejecuta las instrucciones JavaScript.<\/li>\n<li>El navegador env\u00eda al servidor los datos que proporciona el usuario.<\/li>\n<li>El servidor recibe esa informaci\u00f3n y la guarda en la base de datos.<\/li>\n<\/ul>\n<p>En la pr\u00e1ctica, PHP, SQL y HTML suelen ir en un archivo, mientras que el CSS y el JavaScript van en archivos aparte, con lo que el navegador recibe un archivo HTML con los datos, un archivo CSS con el dise\u00f1o y un archivo JavaScript con el programa que se va a ejecutar.<\/p>\n<p>En general, las diferentes tecnolog\u00edas que podemos encontrar en una aplicaci\u00f3n web requieren de varias personas con diferentes competencias. Volviendo a la base de datos, su dise\u00f1o no es una tarea trivial. Dependiendo de lo bien o mal hecha que est\u00e9, el n\u00famero de transacciones (consultas o modificaciones) que deber\u00e1n hacerse puede variar de modo considerable. En aplicaciones sencillas o para sitios con poco movimiento, la importancia puede ser relativa, pero en aplicaciones complejas y, en especial, en sitios con muchas visitas, reducir el n\u00famero de consultas a la base de datos puede reducir considerablemente el coste en hardware del sitio. Y es que, en sitios web con muchas visitas, la importancia de la base de datos es tal que suele situarse en un servidor aparte del servidor de la aplicaci\u00f3n.<\/p>","protected":false},"excerpt":{"rendered":"<p>Una base de datos es un conjunto de informaci\u00f3n relacionada, estructurada y almacenada de manera sistem\u00e1tica. El objetivo es poder acceder a esa informaci\u00f3n de manera f\u00e1cil, tanto para consultarla como para a\u00f1adir nuevos datos. Los programas que se encargan de gestionar bases de datos se denominan sistemas gestores de bases de datos (SGBD) y &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/las-aplicaciones-web-y-las-bases-de-datos\/\" class=\"more-link\">Seguir leyendo<span class=\"screen-reader-text\"> \u00abLas aplicaciones web y las bases de datos\u00bb<\/span><\/a><\/p>\n","protected":false},"author":42,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,11],"tags":[],"class_list":["post-379","post","type-post","status-publish","format-standard","hentry","category-fundamentals","category-technologies","entry"],"_links":{"self":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/posts\/379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/comments?post=379"}],"version-history":[{"count":4,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/posts\/379\/revisions"}],"predecessor-version":[{"id":518,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/posts\/379\/revisions\/518"}],"wp:attachment":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/media?parent=379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/categories?post=379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/es\/wp-json\/wp\/v2\/tags?post=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}