{"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\/las-aplicaciones-web-y-las-bases-de-datos\/","title":{"rendered":"Les aplicacions web i les bases de dades"},"content":{"rendered":"<p>Una base de dades \u00e9s un conjunt d\u2019informaci\u00f3, relacionada, estructurada i emmagatzemada de manera sistem\u00e0tica. L\u2019objectiu \u00e9s poder accedir a aquesta informaci\u00f3 de manera f\u00e0cil, tant per a consultar-la com per a afegir-hi noves dades. Dels programes que s\u2019encarreguen de gestionar bases de dades se\u2019n diu <em>sistemes de gesti\u00f3 de bases de dades<\/em> (SGBD) i s\u00f3n una pe\u00e7a important en l\u2019entramat de la web.<\/p>\n<p>Fa uns anys (el mar\u00e7 del 2004), vam escriure un article per a la revista <cite>Mosaic<\/cite> titulat <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> en qu\u00e8 f\u00e8iem una explicaci\u00f3 breu sobre qu\u00e8 \u00e9s una p\u00e0gina web din\u00e0mica i les difer\u00e8ncies amb les p\u00e0gines web est\u00e0tiques. Us recomanem que llegiu aquest article abans de continuar amb aquest, perqu\u00e8 el farem servir com a refer\u00e8ncia.<\/p>\n<p>Si el 2004 les bases de dades ja eren importants, avui dia gaireb\u00e9 totes les webs tenen al darrere un gestor de continguts, que, al seu torn, fa servir un SGBD per a emmagatzemar la informaci\u00f3 de la web. Sigui com sigui, si es vol crear una web que sigui f\u00e0cil d\u2019actualitzar, l\u2019opci\u00f3 m\u00e9s senzilla \u00e9s personalitzar un gestor de continguts i la m\u00e9s complicada crear-lo i, en tots dos casos, \u00e9s important tenir coneixements de la manera de funcionar de les bases de dades i d\u2019accedir a la informaci\u00f3 en el llenguatge que l\u2019SGBD faci servir.<\/p>\n<p>Encara que la situaci\u00f3 dels diferents SGBD usats a la web ha canviat una mica des del 2004, els canvis no s\u00f3n, ara mateix, gaire importants. Aix\u00ed, SQL continua essent el llenguatge de consulta d\u2019SGBD m\u00e9s habitual i, a la web, <a href=\"http:\/\/www.mysql.com\/\">MySQL<\/a>, <a href=\"http:\/\/www.postgresql.org\/\">PostgreSQL<\/a> i SQLite[4] s\u00f3n les solucions obertes m\u00e9s usades i <a href=\"http:\/\/www.microsoft.com\/en-us\/sqlserver\/\">Microsoft SQL Server<\/a> i <a href=\"http:\/\/www.oracle.com\/us\/products\/database\/overview\/index.html\">Oracle Database<\/a>, les solucions privades m\u00e9s comunes.<\/p>\n<p>A partir d\u2019aqu\u00ed, ens centrarem en un d\u2019aquests gestors de bases de dades (MySQL) per explicar de quina manera accedeixen a les dades les aplicacions web. L\u2019elecci\u00f3 de MySQL no \u00e9s casual. Segons un estudi de Gartner fet el 2008, MySQL era llavors el tercer SGBD m\u00e9s usat al m\u00f3n, el primer de codi obert. Des de llavors i malgrat que la compra de MySQL per part d\u2019Oracle va fer que hi hagu\u00e9s alguns desenvolupadors que pensessin a passar-se a PostgreSQL, la seva pres\u00e8ncia a la web no ha deixat de cr\u00e9ixer.<\/p>\n<p>D\u2019altra banda, hi ha moltes aplicacions web que fan servir una combinaci\u00f3 de MySQL com a base de dades, PHP com a llenguatge de programaci\u00f3, Apache com a servidor web i Linux com a sistema operatiu. Aquesta combinaci\u00f3 de tecnologies rep el nom de <a href=\"http:\/\/es.wikipedia.org\/wiki\/lamp\">LAMP<\/a> (Linux, Apache, MySQL i, habitualment, PHP) i \u00e9s una de les m\u00e9s usades en servidors web.<\/p>\n<p>En una aplicaci\u00f3 web com ara un gestor de continguts o una botiga en l\u00ednia o qualsevol altra web que faci \u00fas de bases de dades, hi podem trobar fins a quatre tipus de desenvolupament:<\/p>\n<ol>\n<li>Desenvolupament d\u2019HTML + CSS<\/li>\n<li>Desenvolupament JavaScript<\/li>\n<li>Desenvolupament en PHP<\/li>\n<li>Consultes 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 d'execuci\u00f3 de les diferents parts d'una aplicaci\u00f3 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 d&#8217;execuci\u00f3 de les diferents parts d&#8217;una aplicaci\u00f3 web<\/figcaption><\/figure>\n<p>D\u2019aquests quatre tipus, els dos primers s\u2019executen en el navegador, i els altres dos en el servidor aproximadament de la manera seg\u00fcent:<\/p>\n<ul>\n<li>En el servidor, un arxiu .php cont\u00e9 el programa PHP amb les instruccions SQL per a accedir a les dades, amb el codi HTML i CSS necessari per a poder-les visualitzar correctament i amb el JavaScript necessari per a interactuar amb l\u2019usuari.<\/li>\n<li>El servidor executa les instruccions PHP i les consultes SQL, obt\u00e9 les dades i envia al client un arxiu amb l\u2019HTML, el CSS, el JavaScript i les dades obtingudes.<\/li>\n<li>El navegador presenta les dades a l\u2019usuari i executa les instruccions JavaScript.<\/li>\n<li>El navegador envia al servidor les dades que proporciona l\u2019usuari.<\/li>\n<li>El servidor rep aquesta informaci\u00f3 i la desa a la base de dades.<\/li>\n<\/ul>\n<p>A la pr\u00e0ctica PHP, SQL i HTML solen anar en un arxiu, mentre que CSS i JavaScript van en arxius a part, de manera que el navegador rep un arxiu HTML amb les dades, un arxiu CSS amb el disseny i un arxiu JavaScript amb el programa que s\u2019ha d\u2019executar.<br \/>\nEn general, les diferents tecnologies que podem trobar en una aplicaci\u00f3 web requereixen diferents persones amb diferents compet\u00e8ncies. Tornant a la base de dades, el seu disseny no \u00e9s una tasca trivial. Depenent de si est\u00e0 m\u00e9s ben fet o m\u00e9s mal fet, el nombre de transaccions (consultes o modificacions) que s\u2019han de fer pot variar considerablement. En aplicacions senzilles o per a llocs que no tenen gaire moviment la import\u00e0ncia pot ser relativa, per\u00f2 en aplicacions complexes i, sobretot, en llocs amb moltes visites el fet de reduir el nombre de consultes a la base de dades tamb\u00e9 pot reduir considerablement el cost en maquinari del lloc. I \u00e9s que, en llocs web amb moltes visites, la import\u00e0ncia de la base de dades \u00e9s tan grossa que se sol situar en un servidor a part del servidor de l\u2019aplicaci\u00f3.<\/p>","protected":false},"excerpt":{"rendered":"<p>Una base de dades \u00e9s un conjunt d\u2019informaci\u00f3, relacionada, estructurada i emmagatzemada de manera sistem\u00e0tica. L\u2019objectiu \u00e9s poder accedir a aquesta informaci\u00f3 de manera f\u00e0cil, tant per a consultar-la com per a afegir-hi noves dades. Dels programes que s\u2019encarreguen de gestionar bases de dades se\u2019n diu sistemes de gesti\u00f3 de bases de dades (SGBD) i &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/multimedia.uoc.edu\/blogs\/fem\/las-aplicaciones-web-y-las-bases-de-datos\/\" class=\"more-link\">Continua llegint <span class=\"screen-reader-text\">\u00abLes aplicacions web i les bases de dades\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\/wp-json\/wp\/v2\/posts\/379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/comments?post=379"}],"version-history":[{"count":4,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/posts\/379\/revisions"}],"predecessor-version":[{"id":518,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/posts\/379\/revisions\/518"}],"wp:attachment":[{"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/media?parent=379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/categories?post=379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.uoc.edu\/blogs\/fem\/wp-json\/wp\/v2\/tags?post=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}