[ca] Les bases de dades són el mètode preferit per a l'emmagatzemament estructurat de dades. Les grans aplicacions multiusuari, els telèfons mòbils o les agendes electròniques utilitzen tecnologia de bases de dades per a assegurar la integritat de les dades i facilitar la tasca tant dels usuaris com dels programadors que les van desenvolupar. Des de la realització del primer model de dades, passant per l'administració del sistema gestor, fins a arribar al desenvolupament de l'aplicació, la tecnologia i els conceptes associats són molts i molt heterogenis. Tanmateix, és imprescindible conèixer els aspectes clau de cada un d'aquests temes per a tenir èxit en qualsevol projecte que impliqui treballar amb bases de dades. En aquest curs tractarem de donar una visió completa dels conceptes relacionats amb els sistemes gestors de bases de dades. Per començar, veurem els aspectes involucrats en els motors d'aquests magatzems de dades, la seva evolució històrica i els diferents tipus d'organització i abstracció que ha anat sorgint des de la seva conceptualització fins als nostres dies. A continuació aprofundirem en el model anomenat relacional (el més usat als nostres dies), proporcionant els mètodes i eines que ens permetin representar necessitats d'emmagatzemament i consulta de dades en aquest model. Després, estudiarem a fons el llenguatge de consultes estructurat SQL, imprescindible per a treballar amb bases de dades relacionals, tant si és directament com mitjançant qualsevol llenguatge de programació. El disseny de bases de dades té també un capítol dedicat a aprendre a modelar una base de dades i representar-la gràficament, a detectar els possibles problemes de disseny abans que afectin l'aplicació i a construir bases de dades òptimes per als diferents casos de relacions entre entitats que formaran la nostra base de dades. Una vegada establertes aquestes bases, estarem en disposició d'examinar detingudament dos dels sistemes gestors de bases de dades de programari lliure més populars actualment. Així doncs, aprendrem l'ús, l'administració i les particularitats de MySQL i PostgreSQL mitjançant exemples i casos pràctics. També veurem les eines de consulta i administració gràfiques per a aquests dos sistemes gestors de bases de dades, que ens permetran millorar la nostra productivitat en el treball diari amb ells. A continuació, veurem els mètodes d'accés a aquests sistemes gestors de bases de dades des d'alguns llenguatges de programació. En cada cas, comentarem les millors pràctiques i les seves particularitats, i introduirem alguns conceptes relacionats amb la programació en bases de dades com la persistència, el tractament d'errors, etc. Finalment, creiem que la millor manera d'acabar aquest curs és mitjançant un cas d'estudi complet que abordi els temes que s'hi han tractat, en l'ordre en què es produirien en la realitat d'un projecte i fent prevaler la pràctica sobre la teoria. Així doncs, aquest curs tracta de proporcionar a l'estudiant una visió completa dels aspectes implicats en el treball amb bases de dades. Encara que no aprofundirem en alguns temes especialitzats com el disseny intern d'un sistema gestor de bases de dades, aprofundirem tècnicament en els temes més necessaris.

[es] Las bases de datos son el método preferido para el almacenamiento estructurado de datos. Desde las grandes aplicaciones multiusuario hasta los teléfonos móviles y las agendas electrónicas utilizan tecnología de bases de datos para asegurar la integridad de los datos y facilitar la labor tanto de usuarios como de los programadores que las desarrollaron. Desde la realización del primer modelo de datos, pasando por la administración del sistema gestor, hasta llegar al desarrollo de la aplicación, los conceptos y la tecnología asociados son muchos y muy heterogéneos. Sin embargo, es imprescindible conocer los aspectos clave de cada uno de estos temas para tener éxito en cualquier proyecto que implique trabajar con bases de datos. En este curso trataremos de dar una visión completa de los conceptos relacionados con los sistemas gestores de bases de datos. En los primeros capítulos veremos los aspectos involucrados en los motores de estos almacenes de datos, su evolución histórica y los distintos tipos de organización y abstracción que han ido surgiendo desde su conceptualización hasta nuestros días. A continuación profundizaremos en el modelo llamado relacional (el más usado en nuestros días), proporcionando los métodos y las herramientas que nos permitan representar necesidades de almacenamiento y consulta de datos en este modelo. En el siguiente capítulo estudiaremos a fondo el lenguaje de consultas estructurado SQL, imprescindible para trabajar con bases de datos relacionales, ya sea directamente o a través de cualquier lenguaje de programación. El diseño de bases de datos tiene también un capítulo dedicado a aprender a modelar y representar gráficamente una base de datos, a detectar los posibles problemas de diseño antes de que estos afecten a la aplicación, y a construir bases de datos óptimas para los distintos casos de relaciones entre entidades que formarán nuestra base de datos. Una vez sentadas estas bases, estaremos en disposición de examinar detenidamente dos de los sistemas gestores de bases de datos de software libre más usados y populares actualmente. Así pues, aprenderemos el uso, la administración y las particularidades de MySQL y PostgreSQL mediante ejemplos y casos prácticos. También veremos las herramientas de consulta y administración gráficas para estos dos sistemas gestores de bases de datos, que nos permitirán mejorar nuestra productividad en el trabajo diario con ellos. A continuación, veremos los métodos de acceso a estos sistemas gestores de bases de datos desde algunos lenguajes de programación. En cada caso, comentaremos las mejores prácticas para cada uno, así como sus particularidades, e introduciremos algunos conceptos relacionados con la programación en bases de datos como la persistencia, el tratamiento de errores, etc. Finalmente, creemos que la mejor forma de finalizar este curso es mediante un caso de estudio completo que aborde los temas tratados en todos los capítulos, en el orden en que se producirían en la realidad de un proyecto y primando la práctica sobre la teoría. Así pues, este curso trata de proporcionar al estudiante una visión completa de los aspectos implicados en el trabajo con bases de datos. Aunque no profundizaremos en algunos temas muy especializados como el diseño interno de un sistema gestor de bases de datos, profundizaremos técnicamente en los temas más necesarios.