Fundamentos de Bases de datos

1

Cómo diseñar bases de datos y hacer queries efectivos

2

Cómo identificar y organizar datos en bases de datos

3

Introducción práctica a SQL y bases de datos relacionales

4

Trabajo Directo con MySQL: Cliente, Servidor y Manejo de Errores

5

Instalación de MySQL en varios sistemas operativos

Quiz: Fundamentos de Bases de datos

Introducción a Bases de Datos Relacionales

6

Conceptos básicos de bases de datos: columnas, tuplas y relaciones

7

Creación de Tablas en MySQL con Tipos de Datos Esenciales

8

Creación de tablas en MySQL con Primary Key y Timestamp

9

Normalización y relaciones en bases de datos relacionales

10

Creación y visualización de bases de datos con DBML y DBDiagram

Quiz: Introducción a Bases de Datos Relacionales

Manipulación de Datos

11

Cómo crear tablas y utilizar 'Foreign Keys' en MySQL

12

Crear tablas y establecer llaves foráneas en SQL

13

Tipos de tablas en una base de datos relacional

14

Cómo Modificar Tablas en SQL con ALTER TABLE

15

Cómo Insertar Datos y Manejar Errores en MySQL

16

Creación Avanzada de una Tabla Products en MySQL

17

Uso práctico del WHERE en SQL para filtrar datos con precisión

18

Guía práctica para modificar datos usando UPDATE en SQL

19

Cómo eliminar datos en SQL: métodos lógicos y físicos

20

Uso Avanzado del Comando SELECT en SQL

Quiz: Manipulación de Datos

Agrupación de Datos

21

Funciones agregadoras en MySQL para análisis eficiente de datos

22

Insertar datos desde otra tabla en MySQL con Insert Into Select

23

Cómo utilizar Left Join en bases de datos relacionales

24

Cómo consultar y relacionar tablas en MySQL

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
6 Hrs
29 Min
47 Seg

Crear tablas y establecer llaves foráneas en SQL

12/24
Resources

What is it and how to create an intermediate table in SQL?

When we have different tables in a database (for example, customers, products and invoices), it is necessary to have an intermediate table. Bill Products is an example of this type of table, in charge of joining what has been sold (products) with each respective invoice.

A join or intermediary table contains:

  • A primary key(Primary Key).
  • References to the related tables by means ofForeign Keys.
  • Additional specific information, such as quantity, creation and update dates.

How to use foreign keys and what are their main options?

AForeign Key links two tables indicating a clear dependency between them. The most common options when acting on related records are:

  • ON UPDATE CASCADE: when updating the source field, it also updates dependencies.
  • ON DELETE CASCADE: when deleting a source record, it automatically deletes all its dependent records.
  • Other less frequent alternative options, such as SET NULL or SET DEFAULT, regularly present compatibility restrictions depending on the database engine used.

These options depend on the engine used (e.g. InnoDB in MySQL).

Differences between hard and soft relationships in databases?

Hard relationships:

  • They are strictly defined at the database level.
  • If you delete a record, all related records are automatically deleted (when using CASCADE).
  • They are more secure at the integrity level, but can generate operational difficulties when there are frequent changes.

Soft relationships:

  • They do not require strict definition in the database, delegating this logic to the application.
  • They allow more flexibility in the face of frequent changes, simplifying administration.
  • The responsibility falls on the programmer to maintain the referential integrity from the code itself.

The choice will depend on the context, being both valid under clear criteria according to the needs of the project. Each scenario offers pros and cons directly related to the flexibility and robustness of the scheme.

I invite you to share what kind of relationships you prefer in your projects and your experience implementing them.

Contributions 7

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

Un antipatrón que se mencionó en clase es utilizar relaciones duras (foreign keys) sin considerar el impacto en el diseño y mantenimiento de la base de datos. Esto puede llevar a problemas graves, como la pérdida de datos al eliminar registros en cascada sin un control adecuado. Es preferible implementar la lógica de relaciones en la capa de aplicación, lo que ofrece más flexibilidad y facilidad de mantenimiento. Evitar este enfoque ayudará a mantener la integridad de los datos y facilitará futuras modificaciones.
Las foreign keys son cruciales en bases de datos relacionales porque garantizan la integridad referencial entre tablas. Esto significa que cualquier valor en una columna de foreign key debe coincidir con un valor en la tabla referenciada, evitando datos huérfanos y asegurando relaciones consistentes. **Ejemplo de buenas prácticas:** - Al crear una tabla de "pedidos", una foreign key puede referirse a "clientes". Esto asegura que cada pedido esté asociado a un cliente existente, protegiendo la integridad de los datos. Implementar foreign keys mejora la calidad y la estructura de tus datos, facilitando el mantenimiento y las consultas eficientes.
Se presentaron los siguientes comandos relacionados con la creación de tablas en SQL: 1. **CREATE TABLE**: Se utiliza para crear una nueva tabla. 2. **FOREIGN KEY**: Define una relación entre dos tablas, asegurando la integridad referencial. En este caso, se usó para hacer referencia a las tablas `bills` y `products`. 3. **ON UPDATE CASCADE / ON DELETE CASCADE**: Permiten que los cambios en la tabla referenciada se propaguen automáticamente a la tabla que contiene la clave foránea. En resumen, estos comandos permiten crear relaciones entre tablas y mantener la integridad de los datos en la base de datos.
El comando `SELECT *` se utiliza en SQL para seleccionar y mostrar todos los campos de una tabla específica. Cuando ejecutas esta instrucción, obtienes todas las filas y columnas disponibles en la tabla consultada. Es útil para obtener una vista completa de los datos, pero en consultas grandes puede generar un gran volumen de datos, por lo que se recomienda usarlo con precaución.
💡Recordemos que si estamos siguiendo los pasos del profe, debemos estar consultando nosotros mismos constantemente con el `select from * nombre_tabla; `ya que no siempre serán los mismos id, sobre todo para el caso de bill\_id y product\_id
Excelente como el profe maneja los errores naturales y los usa para enseñarnos o reforzar conocimiento!
Gemini: Excelente que estés aprendiendo SQL y bases de datos. Con las tablas que has creado, podemos evaluar tu comprensión de varios conceptos fundamentales. Prepárate para responder las siguientes preguntas de la manera más precisa y concisa posible. ==================================================================================================================================================================================================================================================== **Pregunta 1:** Describe detalladamente la función y el propósito de la cláusula `PRIMARY KEY` en la tabla `clients`. ¿Qué implicaciones tiene que la columna `client_id` sea la clave primaria y además tenga el atributo `AUTOINCREMENT`? **Pregunta 2:** En la tabla `products`, la columna `slug` tiene la restricción `UNIQUE`. Explica por qué podría ser útil tener una columna `slug` única además del `product_id` como identificador principal. Proporciona un ejemplo concreto de su posible uso. **Pregunta 3:** La tabla `bills` contiene una clave foránea (`FOREIGN KEY`) que referencia a la tabla `clients`. * a) ¿Cuál es el nombre de la columna que actúa como clave foránea y a qué columna de la tabla `clients` se refiere? * b) Explica qué significa la cláusula `ON DELETE CASCADE` en esta relación. ¿Qué sucedería si se eliminara un registro de la tabla `clients`? * c) Explica qué significa la cláusula `ON UPDATE CASCADE` en esta relación. ¿Qué sucedería si se modificara el valor de la clave primaria en un registro de la tabla `clients`? **Pregunta 4:** La tabla `bill_products` establece una relación de muchos a muchos entre las tablas `bills` y `products`. * a) ¿Por qué es necesaria una tabla intermedia como `bill_products` para representar esta relación? * b) Identifica las claves foráneas en la tabla `bill_products` y a qué tablas y columnas referencian. * c) Describe cómo podrías obtener una lista de todos los productos incluidos en una factura específica (por ejemplo, la factura con `bill_id = 5`). Escribe la estructura general de la consulta SQL que utilizarías (sin necesidad de datos específicos). **Pregunta 5:** Considerando la columna `status` en la tabla `bills`, que es de tipo `ENUM('open', 'paid', 'lost') NOT NULL DEFAULT 'open'`: * a) ¿Qué significa el tipo de dato `ENUM`? ¿Cuáles son los valores permitidos para esta columna? * b) ¿Qué implica la restricción `NOT NULL` en esta columna? * c) ¿Cuál es el valor por defecto que se asignará a la columna `status` cuando se inserte un nuevo registro en la tabla `bills` y no se especifique un valor para esta columna? Responde estas preguntas con precisión y demuestra tu comprensión de los conceptos de SQL involucrados en la creación de estas tablas. ¡Adelante!