9na Sesión: Base de Datos

BASE DE DATOS

Una base de datos es una colección organizada de información o datos estructurados, que normalmente se almacena de forma electrónica en un sistema informático. Normalmente, una base de datos está controlada por un sistema de gestión de bases de datos (DBMS). En conjunto, los datos y el DBMS, junto con las aplicaciones asociadas a ellos, reciben el nombre de sistema de bases de datos, abreviado normalmente a simplemente base de datos.


Las bases de datos sirven para guardar, gestionar y consultar la información o los datos de forma eficiente y efectiva. Con una base de datos se puede almacenar una gran cantidad de información de forma ordenada y segura, se puede acceder a ella rápidamente desde diferentes dispositivos o programas, se puede modificar o eliminar según las necesidades, se puede analizar o procesar para obtener conocimientos o insights, se puede compartir o proteger según los permisos, etc.


Las características generales de una base de datos son:


- Estructura: la información o los datos se organizan según un modelo o un esquema que define cómo se almacenan y se relacionan entre sí. Los modelos más comunes son el relacional (que usa tablas con filas y columnas) y el no relacional (que usa otros formatos como documentos, grafos o clave-valor).

- Lenguaje: la información o los datos se manipulan mediante un lenguaje de programación que permite definir, consultar o modificar los datos. El lenguaje más usado es el SQL (lenguaje de consulta estructurada) para las bases de datos relacionales, aunque también existen otros como el NoSQL para las bases de datos no relacionales.

- Gestión: la información o los datos se administran mediante un sistema de gestión de bases de datos (DBMS) que es el software que permite crear, mantener y controlar la base de datos. El DBMS se encarga de garantizar la integridad, la seguridad, la disponibilidad y el rendimiento de la base de datos.


La importancia de una base de datos radica en que es una herramienta fundamental para el almacenamiento y el procesamiento de la información o los datos, que son el activo más valioso en la era digital. Con una base de datos se puede aprovechar al máximo el potencial de los datos para mejorar la toma de decisiones, optimizar los procesos, innovar los productos o servicios, satisfacer las necesidades o expectativas de los clientes, etc.


La relación con el tema empresarial es que las bases de datos son imprescindibles para cualquier empresa que quiera competir en el mercado actual. Las bases de datos permiten a las empresas gestionar toda la información o los datos relacionados con su actividad, como los proveedores, los productos, los inventarios, los pedidos, las entregas, los clientes, las ventas, las facturas, etc. Además, las bases de datos permiten a las empresas analizar y explotar la información o los datos para obtener ventajas competitivas, como reducir costes, aumentar ingresos, mejorar calidad, fidelizar clientes, etc.


Los tipos de bases de datos se pueden clasificar según diferentes criterios, como el modelo, el acceso o la ubicación. Algunos tipos son:


- Según el modelo: 

  - Relacional: es el tipo más usado y se basa en organizar la información o los datos en tablas con filas (registros) y columnas (atributos) que se relacionan mediante claves primarias y foráneas. Ejemplos: Oracle Database, MySQL, PostgreSQL.

  - No relacional: es un tipo más flexible y se basa en usar otros formatos para almacenar la información o los datos sin necesidad de seguir un esquema fijo ni establecer relaciones entre ellos. Ejemplos: MongoDB (documental), Neo4j (grafos), Redis (clave-valor).

- Según el acceso:

  - Estática: es aquella que solo permite leer la información o los datos almacenados sin poder modificarlos ni eliminarlos. Ejemplo: una base de datos histórica.

  - Dinámica: es aquella que permite leer, modificar y eliminar la información o los datos almacenados según las necesidades. Ejemplo: una base de datos de clientes.

- Según la ubicación:

  - Centralizada: es aquella que se almacena en un solo lugar o dispositivo y se accede a ella desde diferentes puntos mediante una red. Ejemplo: una base de datos en un servidor.

  - Distribuida: es aquella que se almacena en varios lugares o dispositivos y se accede a ella como si fuera una sola base de datos mediante una red. Ejemplo: una base de datos en la nube.

Has clic para más información

Modelo de relaciones de una Base de Datos (mínimo de 8tablas), identificando claves principal y foráneas en cada tabla


- Tabla clientes: almacena la información de los clientes que se registran en la tienda online.

  - id_cliente: clave primaria, identifica a cada cliente de forma única.

  - nombre: atributo, almacena el nombre del cliente.

  - apellido: atributo, almacena el apellido del cliente.

  - email: atributo, almacena el correo electrónico del cliente.

  - contraseña: atributo, almacena la contraseña del cliente para acceder a su cuenta.

  - dirección: atributo, almacena la dirección del cliente para el envío de los pedidos.

  - teléfono: atributo, almacena el número de teléfono del cliente para contactar con él en caso de necesidad.


- Tabla productos: almacena la información de los productos que se venden en la tienda online.

  - id_producto: clave primaria, identifica a cada producto de forma única.

  - nombre: atributo, almacena el nombre del producto.

  - descripción: atributo, almacena una breve descripción del producto.

  - precio: atributo, almacena el precio del producto en euros.

  - stock: atributo, almacena la cantidad disponible del producto en el almacén.

  - imagen: atributo, almacena la ruta de la imagen del producto que se muestra en la web.


- Tabla categorías: almacena la información de las categorías o tipos de productos que se venden en la tienda online.

  - id_categoría: clave primaria, identifica a cada categoría de forma única.

  - nombre: atributo, almacena el nombre de la categoría.


- Tabla productos_categorías: almacena la relación entre los productos y las categorías a las que pertenecen. Es una tabla intermedia que permite implementar una relación muchos a muchos entre las tablas productos y categorías.

  - id_producto: clave foránea, referencia a la clave primaria de la tabla productos. Junto con id_categoría forma la clave primaria compuesta de esta tabla.

  - id_categoría: clave foránea, referencia a la clave primaria de la tabla categorías. Junto con id_producto forma la clave primaria compuesta de esta tabla.


- Tabla pedidos: almacena la información de los pedidos que realizan los clientes en la tienda online.

  - id_pedido: clave primaria, identifica a cada pedido de forma única.

  - id_cliente: clave foránea, referencia a la clave primaria de la tabla clientes. Indica el cliente que ha realizado el pedido.

  - fecha: atributo, almacena la fecha en que se ha realizado el pedido.

  - estado: atributo, almacena el estado del pedido (pendiente, enviado, entregado, cancelado, etc.).

  - total: atributo, almacena el importe total del pedido en euros.


- Tabla detalles_pedidos: almacena la información de los detalles o líneas de cada pedido, es decir, los productos que se han comprado y sus cantidades y precios. Es una tabla intermedia que permite implementar una relación muchos a muchos entre las tablas pedidos y productos.

  - id_pedido: clave foránea, referencia a la clave primaria de la tabla pedidos. Junto con id_producto forma la clave primaria compuesta de esta tabla.

  - id_producto: clave foránea, referencia a la clave primaria de la tabla productos. Junto con id_pedido forma la clave primaria compuesta de esta tabla.

  - cantidad: atributo, almacena la cantidad del producto que se ha comprado en el pedido.

  - precio_unitario: atributo, almacena el precio unitario del producto en euros en el momento de realizar el pedido.


- Tabla comentarios: almacena la información de los comentarios o valoraciones que hacen los clientes sobre los productos que han comprado en la tienda online.

  - id_comentario: clave primaria, identifica a cada comentario de forma única.

  - id_cliente: clave foránea, referencia a la clave primaria de la tabla clientes. Indica el cliente que ha hecho el comentario.

  - id_producto: clave foránea, referencia a la clave primaria de la tabla productos. Indica el producto sobre el que se ha hecho el comentario.

  - fecha: atributo, almacena la fecha en que se ha hecho el comentario.

  - texto: atributo, almacena el texto del comentario.

  - puntuación: atributo, almacena la puntuación del producto de 1 a 5 estrellas.


- Tabla ofertas: almacena la información de las ofertas o descuentos que se aplican a los productos de la tienda online.

  - id_oferta: clave primaria, identifica a cada oferta de forma única.

  - id_producto: clave foránea, referencia a la clave primaria de la tabla productos. Indica el producto al que se aplica la oferta.

  - porcentaje: atributo, almacena el porcentaje de descuento que se aplica al producto.

  - fecha_inicio: atributo, almacena la fecha en que comienza la oferta.

  - fecha_fin: atributo, almacena la fecha en que termina la oferta.