Ir al curso

Página 19: Sistemas de bases de datos

/es/creacion-de-sitios-web/lenguajes-de-programacion-web/content/

Sistemas de bases de datos

Las bases de datos son fundamentales para los sitios web dinámicos, en ellas reposa toda la información administrativa y los contenidos del sitio.

La base de datos es un componente fundamental de un sitio web dinámico, en ella se encuentra toda la información necesaria para que el sitio funcione. En este contexto la base de datos debe contener información de tipo administrativo como usuarios, permisos y contraseñas, información textual, que es el contenido como tal del sitio y la demás información que haga parte del núcleo del negocio.

Base de Datos Relacional

Existen varios modelos de bases de datos, mencionaremos uno de ellos que es mayormente usado en el desarrollo de sitios web, el modelo relacional. Este tiene fundamentos teóricos en el álgebra relacional que fue propuesta por Edgar "Ted" Codd en los años 70, como una especie de teoría de conjuntos aplicada sobre datos.
Diagrama Entidad - Relación

Diagrama Entidad - Relación

Entidades

Uno de los conceptos importantes en el modelo relacional es el concepto de entidad. Una entidad representa algo que es significativo y contiene atributos relevantes para el sistema. Por ejemplo si nuestro sitio web es un blog, una posible entidad seria "artículo" y algunos posibles atributos serían su "fecha de publicación" y su "título". Si nuestro sitio web es una tienda en línea, una posible entidad sería "producto" con posibles atributos "nombre" y "precio".

Llaves

Es importante que cada entidad tenga un identificador único que se conoce como su llave primaria, esta puede ser artificial es decir generada por el sistema o natural, es decir que normalmente hace parte de la entidad. Las llaves facilitan las búsquedas en la base de datos y permiten establecer las relaciones entre entidades.

Relaciones

Una relación es una asociación entre dos entidades, podemos identificar estas relaciones cuando usamos verbos como tiene, contiene, hace parte de, esta inscrito en, etc. Las relaciones las establecemos al momento de diseñar la base de datos y parten de la experiencia en nuestro negocio. Por ejemplo, si nuestro sitio es un blog sabemos que un autor escribe varios artículos, así encontramos una relación entre la entidad "artículo" y la entidad "autor". Si nuestro sitio es una tienda linea sabemos que una compra tiene uno o más productos, así encontramos una relación entre la entidad "compra" y la entidad "producto".

Para implementar las relaciones se usa el concepto de llave foránea. La llave foránea es una llave que es primaria para una entidad y se copia como atributo de otra entidad, estableciendo así la relación. Siguiendo el ejemplo del blog, para relacionar a un autor con sus artículos agregaremos a "artículo" un nuevo atributo "escrito por", que contendrá el valor de la llave primaria de la entidad "autor".

Búsquedas

Uno de los beneficios de contar con un modelo matemático para las bases de datos relacionales es que facilitó la creación de un lenguaje de búsqueda estructurado que se conoce como SQL (Structured Query Language). A través de este podemos ejecutar actualizaciones y consultas sobre los datos. Por ejemplo actualizar atributos de alguna entidad, buscar entidades que cumplan ciertas condiciones o encontrar grupos de entidades asociadas, entre muchas otras opciones.

Implementación informática

Los sistemas gestores de bases de datos relacionales, RDBMS por sus siglas en inglés, implementan el modelo relacional a través del concepto de tabla. Una tabla contiene filas y columnas. Cada entidad se registra en una fila de la tabla y cada uno de sus atributos se registra en cada columna de la fila. Finalmente las tablas se materializan como archivos en disco, para que su información se registre de manera permanente y duradera.
Tabla autor

Ejemplo de tabla "AUTOR"

Adicionalmente estos sistemas ofrecen funcionalidades como gestión de usuarios y permisos, acceso simultáneo a través de red, creación de backups y análisis de rendimiento entre otras. En el mercado encontramos muchos de estos sistemas, podemos mencionar a MySQL, Oracle y PostgreSQL entre los más conocidos.

Tabla artículo

Ejemplo de tabla "ARTÍCULO"

Alternativas

El campo de las bases de datos es amplio tanto en lo académico como a nivel empresarial. Existen distintos criterios para clasificarlas, multitud de implementaciones e infinidad de drivers para conectarse con ellas desde múltiples lenguajes de programación. Dependiendo de la complejidad del sitio, podemos tener una o más bases de datos, incluso es posible mezclar diferentes tipos de bases de datos en el mismo proyecto según las necesidades.

Entre las alternativas al modelo relacional, podemos encontrar otras formas de almacenamiento como depósitos llave-valor, bases de datos orientadas por objetos, tablas distribuidas, bases de datos orientadas a documentos o almacenamiento basado en logs. Cada una de ellas tiene similitudes y diferencias con el modelo relacional. Podemos mencionar a MongoDB, Ozone DB, Oracle Berkeley Database, Apache Cassandra e Hypertable entre otras.

/es/creacion-de-sitios-web/consejos-para-un-desarrollo-web/content/