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)
);

Recursos

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