informatica:programacion:cursos:desarrollo_web_backend:diseno_base_datos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:cursos:desarrollo_web_backend:diseno_base_datos [2024/11/16 14:53] – [Sistemas gestores de bases de datos relacionales] tempwin | informatica:programacion:cursos:desarrollo_web_backend:diseno_base_datos [2024/11/19 12:11] (actual) – [Diseño de bases de datos] tempwin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Diseño de bases de datos ====== | ====== Diseño de bases de datos ====== | ||
| - | <WRAP center round info 60%> | + | <WRAP center round box 80%> |
| Módulo perteneciente al curso [[informatica: | Módulo perteneciente al curso [[informatica: | ||
| </ | </ | ||
| Línea 46: | Línea 46: | ||
| 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. | 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**: | ||
| + | * **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. | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | Es importante comprender cómo funcionan las claves en las bases de datos relacionales, | ||
| + | </ | ||
| + | |||
| + | 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 '' | ||
| + | * **ciudad_id**: | ||
| + | |||
| + | El código SQL de esta tabla, es el siguiente: | ||
| + | |||
| + | <code sql> | ||
| + | CREATE TABLE personas ( | ||
| + | id INT(11) NOT NULL AUTO_INCREMENT, | ||
| + | | ||
| + | email VARCHAR(50) NOT NULL UNIQUE, | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | ===== 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 " | ||
| + | |||
| + | <WRAP center round todo 60%> | ||
| + | IMAAAAAAAAAAAAAAAAAAAAGEN | ||
| + | </ | ||
| + | |||
| + | Códigos SQL del ejemplo: | ||
| + | |||
| + | <code sql> | ||
| + | CREATE TABLE Clientes ( | ||
| + | id_cliente INT PRIMARY KEY, | ||
| + | nombre VARCHAR(50) | ||
| + | ); | ||
| + | |||
| + | CREATE TABLE Pedidos ( | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | ==== Relación uno a uno ==== | ||
| + | |||
| + | Un registro de una tabla se relaciona con un solo registro de otra tabla. | ||
| + | |||
| + | Por ejemplo, una tabla de " | ||
| + | |||
| + | <WRAP center round todo 60%> | ||
| + | IMAAAAAAAAAAAAAAAAAAAAGEN | ||
| + | </ | ||
| + | |||
| + | Códigos SQL del ejemplo: | ||
| + | |||
| + | <code sql> | ||
| + | CREATE TABLE Empleados ( | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | Detalles_Empleados(id_detalles_empleado) | ||
| + | ); | ||
| + | |||
| + | CREATE TABLE Detalles_Empleados ( | ||
| + | | ||
| + | | ||
| + | | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | ==== Relación muchos a muchos ==== | ||
| + | |||
| + | Muchos registros de una tabla se relacionan con muchos registros de otra tabla. | ||
| + | |||
| + | Por ejemplo, una tabla de " | ||
| + | |||
| + | <WRAP center round todo 60%> | ||
| + | IMAAAAAAAAAAAAAAAAAAAAGEN | ||
| + | </ | ||
| + | |||
| + | Códigos SQL del ejemplo: | ||
| + | |||
| + | <code sql> | ||
| + | CREATE TABLE Estudiantes ( | ||
| + | | ||
| + | | ||
| + | ); | ||
| + | |||
| + | CREATE TABLE Cursos ( | ||
| + | | ||
| + | | ||
| + | ); | ||
| + | |||
| + | CREATE TABLE Inscripciones ( | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | Estudiantes(id_estudiante), | ||
| + | | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | ===== Modelado de base de datos utilizando draw.io ===== | ||
| + | |||
| + | A continuación, | ||
| + | |||
| + | Para empezar, lo primero que debes hacer es acceder a la [[https:// | ||
| + | |||
| + | 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, | ||
| + | |||
| + | 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/ | ||
| + | |||
| + | En esta sección del curso se aprenderá cómo crear un diagrama entidad/ | ||
| + | |||
| + | 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**: | ||
| + | * **Identificar las relaciones**: | ||
| + | * **Identificar los atributos**: | ||
| + | |||
| + | 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", | ||
| + | |||
| + | 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, | ||
| + | |||
| + | <WRAP center round todo 60%> | ||
| + | VIDEOOOOOOOOOOOOOOOOOOOOOOOO | ||
| + | </ | ||
| + | |||
| + | En este ejemplo, se han identificado dos entidades: " | ||
| + | |||
| + | ===== Integridad referencial y el diagrama entidad/ | ||
| + | |||
| + | 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/ | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | ===== 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, | ||
| + | |||
| + | Por ejemplo, en una tabla de empleados, si la dirección de un empleado depende de su departamento, | ||
| + | |||
| + | ==== 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, | ||
| + | |||
| + | |||
| ===== Recursos ===== | ===== Recursos ===== | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
informatica/programacion/cursos/desarrollo_web_backend/diseno_base_datos.1731765190.txt.gz · Última modificación: por tempwin
