Hola, que tal? genere la base de datos desde el scrip.sql, que enviaron, pero observo que las tablas no están relacionadas, tal como se v...

Pregunta de la clase:
Bash y archivos SQL
Juan Carlos Tovar Medina

Juan Carlos Tovar Medina

Pregunta
studenthace 4 años

Hola, que tal?

genere la base de datos desde el scrip.sql, que enviaron, pero observo que las tablas no están relacionadas, tal como se ve:

A5lWFHAA1V.png Consulta, esto afectaría mis consultas? los JOIN? ETC

Saludos y gracias

5 respuestas
para escribir tu comentario
    Patricio Villarroel Durán

    Patricio Villarroel Durán

    studenthace 4 años

    ¡Me alegra que pudieras entenderlo! Eso de las bases de datos es fascinante.

    Juan Carlos Tovar Medina

    Juan Carlos Tovar Medina

    studenthace 4 años

    Joya!! de explicación!! Gracias

    Patricio Villarroel Durán

    Patricio Villarroel Durán

    studenthace 4 años

    Hola Juan Carlos

    En realidad, podemos tener relaciones entre nuestras tablas sin especificarle al motor de MySQL esa relación (es decir, sin especificar las llaves foráneas). Basta con usar un campo numérico e con el Id de la tabla referenciada. Y va a funcionar. Si tengo la tabla usuarios y tu id de usuario es el 543, puedo poner en la tabla comentarios que el usuario_id es 543 y queda hecha la referencia.

    Pero haciendo esto la base de datos desconoce la relación que existe entre las tablas y por tanto no puede ayudarnos a preservar la integridad de los datos. Tendremos que delegar a la aplicación que estamos programando esta función, lo cual no tiene sentido.

    Un ejemplo de preservar la integridad es borrar una fila o tupla en una tabla relacionada con varias otras tablas mediante llaves foráneas. La base de datos nos impedirá borrar el registro a primeras pues llevaría a tener inconsistencias de datos. Así que solo nos permitirá eliminar el registro cuando ninguna tabla apunte a él mediante una llave foránea. Volviendo al ejemplo anterior, no podríamos borrar el usuario 543 porque existen comentarios que referencian a ese usuario como autor.

    Te recomiendo repasar esta clase del curso de Fundamentos de Base de datos donde esto se explica con más detalle.

    ¡Saludos!

    Juan Carlos Tovar Medina

    Juan Carlos Tovar Medina

    studenthace 4 años

    Gracias! otra consulta, en que me afectaría no tener las relaciones?

    es decir, tenia entendido que hacen falta, pero para SQL no es necesario? y si es necesario para las aplicaciones? Saludos

    Patricio Villarroel Durán

    Patricio Villarroel Durán

    studenthace 4 años

    Hola Juan Carlos

    No afecta JOINS en absoluto, pero veo que el código solo indica las tablas, no tiene las llaves foráneas indicadas. Por eso no ves las relaciones en el diagrama.

    Bastaría crear las llaves foráneas

Curso de SQL y MySQL desde Cero ► Empieza Gratis

Curso de SQL y MySQL desde Cero ► Empieza Gratis

Aprende desde cero SQL, el lenguaje para gestionar y consultar bases de datos relacionales. Elabora tablas, cruza, elimina, modifica y consulta información. Conoce las funciones de MySQL como gestor de base de datos para crear aplicaciones y soluciones tecnológicas efectivas.

Curso de SQL y MySQL desde Cero ► Empieza Gratis
Curso de SQL y MySQL desde Cero ► Empieza Gratis

Curso de SQL y MySQL desde Cero ► Empieza Gratis

Aprende desde cero SQL, el lenguaje para gestionar y consultar bases de datos relacionales. Elabora tablas, cruza, elimina, modifica y consulta información. Conoce las funciones de MySQL como gestor de base de datos para crear aplicaciones y soluciones tecnológicas efectivas.