Herramientas de usuario

Herramientas del sitio


informatica:programacion:cursos:desarrollo_web_backend:diseno_base_datos

¡Esta es una revisión vieja del documento!


Diseño de bases de datos

Módulo perteneciente al curso Desarrollo web back-end

Aprenderemos a modelar, diseñar y crear una base de datos a partir de las especificaciones del usuario y teniendo en cuenta las normas de diseño establecidas. Para ello, estudiaremos los sistemas gestores de bases de datos relacionales, incluyendo el diseño de esquemas y entidades, atributos y claves, y la importancia de las claves primarias, únicas, múltiples y foráneas.

También aprenderemos sobre las relaciones entre tablas, incluyendo las relaciones de uno a muchos, uno a uno y muchos a muchos. Para el modelado de bases de datos, utilizaremos la herramienta draw.io para crear diagramas entidad/relación.

Además, estudiaremos la teoría relacional y las cuatro formas normales del diseño de bases de datos. En cuanto a la construcción de bases de datos, aprenderemos a utilizar instrucciones DDL para construir una base de datos, así como a crear bases de datos directamente con phpMyAdmin y MySql WorkBench.

También estudiaremos las instrucciones SQL para acceder a una base de datos, incluyendo las operaciones CRUD con instrucciones DML, conceptos de transacción y punto de sincronía, accesos avanzados utilizando expresiones, funciones y predicados, y acceso a más de una entidad simultáneamente utilizando JOINS.

Por último, veremos cómo integrar la base de datos con el servicio php mediante la utilización de librerías como la librería mysqli estructurada, la librería mysqli orientada a objetos y la librería PDO, y la construcción de una plataforma web utilizando el patrón MVC.

Aprenderemos a modelar, diseñar y crear una base de datos a partir de las especificaciones del usuario y teniendo en cuenta las normas de diseño establecidas.

Es fundamental comprender los conceptos básicos de las bases de datos relacionales, como el esquema y las entidades, los atributos y las claves, las claves primarias, únicas, múltiples y foráneas, y las relaciones entre tablas.

También exploraremos la teoría relacional y las cuatro formas normales del diseño de bases de datos, y aplicaremos todo lo aprendido en la creación del diagrama entidad/relación.

Finalmente, utilizaremos herramientas como draw.io, phpMyAdmin y MySql Workbench para construir nuestras bases de datos y las instrucciones SQL para acceder a ellas.

Introducción a las bases de datos: definición, utilización y tipo

En el mundo de la informática, una base de datos es una herramienta fundamental para almacenar, organizar y recuperar información de manera eficiente. Una base de datos es un conjunto de datos relacionados que se almacenan en un sistema de manera estructurada.

La utilizacióin de bases de datos se ha vuelto cada vez más común en el desarrollo de aplicaciones web y de escritorio. Además, es posible encontrar diferentes tipos de bases de datos tales como las bases de datos relacionales, no relacionales y orientadas a objetos entre otras.

Las bases de datos relacionales son las más utilizadas y en este módulo aprenderemos cómo diseñar y construir una base de datos relacional.

En este tipo de bases de datos, la información se organiza en tablas que se relacionan entre sí mediante claves.

Es importante entender el concepto de bases de datos y su utilización para poder desarrollar aplicaciones eficientes que manejen grandes cantidades de información.

Sistemas gestores de bases de datos relacionales

IMAAAAAAAAAAAAAAAAAAAGEN

  • Sistema gestor de bases de datos: Un sistema gestor de bases de datos relacionales es un software que permite la gestión y organización de grandes cantidades de información de forma estructurada y eficiente. Entre los sistemas gestores de bases de datos relacionales más populares se encuentran MySQL, PostgreSQL, Oracle y SQL Server.
  • Diseño de una base de datos relacional: El diseño de una base de datos relacional implica la creación de un esquema que representa la estructura lógica de la base de datos y la definición de las entidades y sus atributos. Una entidad representa un objeto o concepto dentro del sistema y cada atributo describe una propiedad o característica de esa entidad.
  • Claves: Las claves son elementos importantes en el diseño de una base de datos relacional. Una clave es un conjunto de uno o más atributos que se utilizan para identificar de forma única a una entidad dentro de una tabla. Las claves primarias son las claves que se utilizan para identificar de forma única a cada entidad en una tabla y las claves únicas son las claves que garantizan que no haya duplicados en una tabla.

Es importante entender cómo se relacionan las entidades entre sí en una base de datos relacional. La relación entre dos entidades se define mediante una clave foránea, que es un atributo en una tabla que hace referencia a la clave primaria en otra tabla.

Claves primarias, únicas, múltiples y foráneas

Las claves son un elemento fundamental en el diseño de bases de datos relacionales. Se utilizan para identificar de forma única a cada registro en una tabla, y para establecer relaciones entre tablas.

Existen varios tipos de claves, entre las que se incluyen las claves primarias, únicas, múltiples y foráneas:

  • Clave primaria: la clave primaria es una columna o conjunto de columnas que identifica de forma única a cada registro en una tabla. Esta clave es obligatoria y solo puede haber una por tabla. Además, la clave primaria no puede tener valores nulos.
  • Clave única: la clave única es similar a la clave primaria, ya que también identifica de forma única a cada registro de una tabla. Sin embargo, a diferencia de la clave primaria, puede haber varias claves únicas por tabla, y pueden tener valores nulos.
  • Clave múltiple: la clave múltiple se utiliza para establecer relaciones entre tablas. Consiste en una combinación de columnas de dos o más tablas, que identifican de forma única a un registro en ambas tablas.
  • Clave foránea: la clave foránea es una columna o conjunto de columnas que se utiliza para establecer una relación entre dos tablas. La clave foránea de una tabla debe hacer referencia a la clave primaria de otra tabla.

Es importante comprender cómo funcionan las claves en las bases de datos relacionales, ya que esto es esencial para diseñar una estructura de base de datos eficiente y fácil de mantener.

En el ejemplo que se muestr a continuación tenemos una base de datos (personas) con tres campos:

  • id: es la clave primaria de la tabla, que se usa para identificar de forma única cada registro de la tabla.
  • email: tiene la restricción UNIQUE, lo que significa que ningún otro registro en la tabla puede tener el mismo valor en esa columna.
  • ciudad_id: es una clave foránea que hace referencia a la tabla ciudades. Esta relación se define mediante la cláusula FOREIGN_KEY, que establece la integridad referencial entre las dos tablas.

El código SQL de esta tabla, es el siguiente:

CREATE TABLE personas (
   id INT(11) NOT NULL AUTO_INCREMENT,
   nombre VARCHAR(50) NOT NULL,
   email VARCHAR(50) NOT NULL UNIQUE,
   telefono VARCHAR(20),
   ciudad_id INT(11),
   PRIMARY KEY (id),
   FOREIGN KEY (ciudad_id) REFERENCES ciudades(id)
);

Relaciones entre tablas

Las relaciones entre tablas son una parte fundamental del diseño de bases de datos relacionales. Una relación se establece entre dos tablas cuando existe una conexión lógica entre los datos almacenados en ellas.

En este punto, vamos a ver las tres relaciones más comunes entre tablas: uno a muchos, uno a uno y muchos a muchos.

Relación uno a muchos

Un registro de una tabla se relaciona con muchos registros de otra tabla.

Por ejemplo, una tabla de “clientes” puede tener una relación uno a muchos con una tabla de “pedidos”, donde cada cliente puede tener varios pedidos asociados. En este caso, la tabla de “clientes” sería la tabla principal y la tabla de “pedidos” sería la tabla secundaria. Para establecer esta relación, se utiliza una clave foránea en la tabla secundaria que hace referencia a la clave primaria de la tabla principal.

IMAAAAAAAAAAAAAAAAAAAAGEN

Códigos SQL del ejemplo:

CREATE TABLE Clientes (
    id_cliente INT PRIMARY KEY,
    nombre VARCHAR(50)
);
 
CREATE TABLE Pedidos (
   id_pedido INT PRIMARY KEY,
   fecha_pedido DATE,
   id_cliente INT,
   FOREIGN KEY (id_cliente) REFERENCES Clientes(id_cliente)
);

Relación uno a uno

Un registro de una tabla se relaciona con un solo registro de otra tabla.

Por ejemplo, una tabla de “empleados” puede tener una relación uno a uno con una tabla de “detalles empleados”, donde cada empleado tiene una sola información de contacto asociada en esta segunda tabla. En este caso, ambas tablas tienen una clave primaria y se utiliza una clave foránea en una de las tablas para establecer la relación.

IMAAAAAAAAAAAAAAAAAAAAGEN

Códigos SQL del ejemplo:

CREATE TABLE Empleados (
   id_empleado INT PRIMARY KEY,
   nombre VARCHAR(50),
   id_detalles_empleado INT UNIQUE,
   FOREIGN KEY (id_detalles_empleado) REFERENCES
Detalles_Empleados(id_detalles_empleado)
);
 
CREATE TABLE Detalles_Empleados (
   id_detalles_empleado INT PRIMARY KEY,
   direccion VARCHAR(100),
   telefono VARCHAR(20)
);

Relación muchos a muchos

Muchos registros de una tabla se relacionan con muchos registros de otra tabla.

Por ejemplo, una tabla de “estudiantes” puede tener una relación muchos a muchos con una tabla de “cursos”, donde muchos estudiantes pueden estar inscritos en muchos cursos diferentes. En este caso, se utiliza una tabla intermedia que contiene las claves primarias de ambas tablas para establecer la relación.

IMAAAAAAAAAAAAAAAAAAAAGEN

Códigos SQL del ejemplo:

CREATE TABLE Estudiantes (
   id_estudiante INT PRIMARY KEY,
   nombre VARCHAR(50)
);
 
CREATE TABLE Cursos (
   id_curso INT PRIMARY KEY,
   nombre VARCHAR(50)
);
 
CREATE TABLE Inscripciones (
   id_estudiante INT,
   id_curso INT,
   PRIMARY KEY (id_estudiante, id_curso),
   FOREIGN KEY (id_estudiante) REFERENCES
Estudiantes(id_estudiante),
   FOREIGN KEY (id_curso) REFERENCES Cursos(id_curso)
);

Modelado de base de datos utilizando draw.io

A continuación, aprenderás a modelar una base de datos utilizando la herramienta diagrams (antes conocida como draw.io), que es una herramienta online gratuita y de código abierto que te permite diseñar y crear diagramas de forma fácil y sencilla.

Para empezar, lo primero que debes hacer es acceder a la página web oficial de diagrams y crear una cuenta si aún no la tienes. Una vez que hayas iniciado sesión, podrás empezar a crear tu diagrama de base de datos.

En diagrams, puedes crear formas y objetos personalizados para representar tablas, relaciones y otros elementos de tu base de datos.

Además, también puedes utilizar diferentes estilos y colores para hacer que tu diagrama sea más fácil de entender.

Para crear una tabla, simplemente arrastra y suelta la forma de tabla en tu lienzo. Luego,puedes agregar columnas y definir los tipos de datos que deseas utilizar para cada columna.

Para representar las relaciones entre tablas, puedes utilizar las flechas de conexión y las etiquetas para indicar el tipo de relación (uno a uno, uno a muchos, muchos a muchos, etc.). También puedes personalizar la apariencia de las flechas y las etiquetas para que se ajusten a tu diseño.

Una vez que hayas terminado de crear tu diagrama, puedes exportarlo en diferentes formatos (como PNG, PDF o SVG) para compartirlo con otros usuarios o para utilizarlo en tu proyecto.

Creación del diagrama entidad/relación

En esta sección del curso se aprenderá cómo crear un diagrama entidad/relación (ER) para una base de datos.

El diagrama ER es una representación gráfica de las entidades, relaciones y atributos que conforman una base de datos relacional.

Para crear un diagrama ER es importante seguir estos pasos:

  • Identificar las entidades: las entidades son objetos o conceptos del mundo real que serán representados en la base de datos. Ejemplos de entidades pueden ser “clientes”, “productos” o “pedidos”.
  • Identificar las relaciones: las relaciones son las conexiones entre las entidades. Por ejemplo, un cliente puede realizar muchos pedidos, lo que significa que existe una relación “uno a muchos” entre las entidades “clientes” y “pedidos”.
  • Identificar los atributos: los atributos son las características o propiedades que definen una entidad. Por ejemplo, un cliente puede tener atributos como “nombre”, “dirección” o “email”.

Una vez que se han identificado las entidades, relaciones y atributos, se puede comenzar a crear el diagrama ER. Existen diferentes herramientas para crear diagramas ER, como diagrams.net.

En el diagrama ER, las entidades se representan como rectángulos y las relaciones como líneas que conectan los rectángulos. Los atributos se representan dentro de los rectángulos.

Es importante tener en cuenta que existen diferentes tipos de relaciones, como “uno a muchos”, “uno a uno” y “muchos a muchos”, cada una representada de una manera diferente en el diagrama ER.

Para crear un diagrama ER efectivo, es necesario tener un conocimiento profundo de la estructura y los datos de la base de datos, así como una comprensión clara de las necesidades y requerimientos del proyecto.

A continuación, se presenta un ejemplo sencillo de diagrama ER para una base de datos que almacena información de clientes y sus pedidos:

VIDEOOOOOOOOOOOOOOOOOOOOOOOO

En este ejemplo, se han identificado dos entidades: “clientes” y “pedidos”. Existe una relación “uno a muchos” entre las entidades “clientes” y “pedidos”, ya que un cliente puede realizar muchos pedidos, pero cada pedido pertenece a un solo cliente. Los atributos identificados para la entidad “clientes” son “id_cliente” y “nombre_cliente”, mientras que para la entidad “pedidos” son “id_pedido”, “fecha_pedido” y “id_cliente”.

Integridad referencial y el diagrama entidad/relación

La integridad referencial es un concepto clave en la construcción de bases de datos relacionales. Consiste en mantener la consistencia de los datos entre las tablas de la base de datos, mediante la utilización de claves foráneas.

En un diagrama entidad/relación la integridad referencial se representa mediante una línea que conecta la clave primaria de una tabla con la clave foránea de otra tabla. Esta línea indica que existe una relación entre las tablas y que la clave foránea de la segunda tabla hace referencia a la clave primaria de la primera tabla.

La integridad referencial se puede definir mediante la utilización de cláusulas como ONDELETE o ON UPDATE, que especifican qué hacer cuando se intenta eliminar o actualiza runa fila en una tabla que está referenciada por una clave foránea en otra tabla.

Por ejemplo, si se define ON DELETE CASCADE, al eliminar una fila en la tabla padre, se eliminarán automáticamente todas las filas en las tablas hijas que estén referenciando la fila eliminada.

Teoría relacional: las cuatro formas normales del diseño de bases de datos

La teoría relacional es un concepto fundamental en el diseño y construcción de bases de datos. Una base de datos bien diseñada debe seguir ciertas normas para garantizar su eficiencia, integridad y consistencia.

Las cuatro formas normales del diseño de bases de datos son una serie de reglas que permiten estructurar una base de datos de manera óptima.

La primera forma normal (1FN)

La primera forma normal (1FN) establece que todas las tablas de la base de datos deben tener una clave primaria única y que cada columna debe ser atómica, es decir, no se permiten valores repetidos o combinados.

Por ejemplo, en una tabla de empleados, la información de teléfono y dirección debe estar en columnas separadas, no en una sola columna.

La segunda forma normal (2FN)

La segunda forma normal (2FN) se refiere a la eliminación de redundancias y establece que cada columna debe depender solo de la clave primaria de la tabla.

Por ejemplo, en una tabla de pedidos, la fecha del pedido debe estar en una tabla separada de los detalles del pedido, para evitar la redundancia de información.

La tercera forma normal (3FN)

La tercera forma normal (3FN) se enfoca en la eliminación de dependencias transitivas, es decir, cuando una columna depende de otra columna que no es la clave primaria.

Por ejemplo, en una tabla de empleados, si la dirección de un empleado depende de su departamento, la información de departamento debe estar en una tabla separada.

La cuarta forma normal (4FN)

Finalmente, la cuarta forma normal (4FN) se centra en la eliminación de dependencias multivaluadas. Una dependencia multivaluada ocurre cuando una tabla tiene más de una clave y las dependencias entre ellas no están claras.

Por ejemplo, en una tabla de ventas, si un producto puede estar en varias categorías, la información de categoría debe estar en una tabla separada.

Recursos

informatica/programacion/cursos/desarrollo_web_backend/diseno_base_datos.1731767378.txt.gz · Última modificación: por tempwin