Sie sind auf Seite 1von 20

RELACIONES ENTRE TABLAS MYSQL

http://www.infop.hn
OBJETIVO

Al finalizar el estudio de esta unidad, el participante estará en capacidad de definir las llaves
primarias, foráneas en una tabla y establecer relaciones entre tablas.
RELACIONES ENTRE TABLAS MYSQL

Llaves Primarias y Foráneas en las Tablas

A continuación se le explica el concepto de llave primaria, posteriormente según vaya


avanzando el tema se explicará el concepto de llave foránea. Veamos:

 Llave Primaria

Es un campo único irrepetible que sirve para identificar los registros de una tabla como
distintos, además que sirve para hacer relaciones entre tablas. Sin las llaves primarias
las bases de datos relacionales no tendrían sentido y siempre existiría información
repetida.

Por Ejemplo:

En la tabla clientes que creamos en la primera unidad, la llave primaria


seria el campo cod_cliente porque es único en la tabla y no se va a
repetir.

También podemos agregar a la llave primaria que sea autoincremental o sea que se genere
automáticamente por un correlativo del cod_cliente incrementado en 1, sin que tengamos
que ingresarlo.
A continuación se detallan los pasos para definir la Llave Primaria:

1 Paso 1
Haga clic en la pestaña
Estructura.

2 Paso 2
2 Marque el campo que va
seleccionar como llave
3 primaria, en este caso
codigo_cliente

Paso 3
Seguidamente haga clic en
Primaria.
4

Paso 4
Una vez seleccionado el
paso 3, le aparecerá el
siguiente mensaje.
Presione Sí.
Paso 5
7 Una vez de haber
aceptado en el paso 6,
le aparecerá la siguiente
pantalla.

Haga Clic en la etiqueta


de índices.

5
Paso 6
Podrán observar que
aparece la llave primaria
cod_cliente.
6

Paso 7
Luego haga clic en la
flechita de atrás 2
veces, y nos mostrará la
pantalla principal de la
base de datos.
9
8

Paso 8
Seleccione el campo que va ser Incremental y lo
marca.

Paso 9
Seguidamente haga clic en el lapicito de cambiar. 11
10
Paso 10
Marque el campo A_I.

Paso 11
Haga Clic en Guardar.
Observe que aparece
el campo:

AUTO_INCREMENT

12
A Continuación se explica el concepto de llave foránea:

 Llave Foránea

Una llave foránea o "Foreignkey" es un término de las bases de datos.

Consiste en tener en una tabla, un campo de idéntico tipo y tamaño al campo clave de otra tabla de la base. A través de este
campo pueden relacionar la información entre ambas tablas y es así como se normalizan los diseños para evitar duplicidades e
inconsistencias en la base de datos.

Por ejemplo:

Si tuviéramos una tabla llamada empleado y otra llamada departamento, cada empleado pertenece a un
departamento, por ende, la tabla empleado tendrá un campo que será la clave foránea a la tabla
departamento y de este modo podemos identificar a dónde pertenece cada uno.

Si por el contrario tuviéramos el nombre del departamento como un campo en la tabla del empleado, fácilmente podría suceder
que para uno escribiéramos "Ventas" y para otro "Bentas", generando así una inconsistencia en las tablas.

Para poder trabajar con claves foráneas se necesita hacer lo siguiente:

 Crear ambas tablas del tipo InnoDB. Se refiere a la tabla que tiene la llave primaria y la tabla que tiene la llave foránea,
estas deben tener motor de almacenamiento de tipo InnoDB.
 Crear un índice en el campo que ha sido declarado clave foránea. InnoDB no crea automáticamente índices en las
claves foráneas, así que deben crearlos de manera explícita. Los índices son necesarios para que la verificación de las
claves foráneas sean más rápidas.

En la tabla de clientes, la llave primaria es el campo cod_cliente, como se muestra a continuación:

Clientes

Id de cliente (Llave Primaria)


Primer apellido
Segundo apellido
Teléfono
dirección

En la tabla vendedores, la llave primaria va a ser el código del vendedor que deberá ser único en la tabla de vendedores
y no podrá repetirse, ósea no pueden haber 2 vendedores con el mismo código. Veamos:

Vendedores

Código vendedor (Llave Primaria)


Nombre de vendedor
Primer apellido
Segundo apellido
teléfono
En la tabla Tipo de facturas, la llave primaria va ser el código de tipo, deberá ser único en la tabla (no se debería
repetir). Veamos:

Tipo de Factura

Código de tipo (Llave Primaria)


descripción de tipo

En la tabla facturas, la llave primaria va a ser el número de factura. Tipo Factura, es la llave foránea de la tabla
facturas; Código de Clientes, es la llave foránea de la tabla Facturas; Código Vendedor, es la llave foránea de la tabla
facturas.

Acuérdese de definir en cada una de las tablas el motor de almacenamiento, debe elegir tipo InnoDB.

Veamos la pantalla siguiente:

Facturas
Numero de factura (Llave Primaria)
Tipo de factura (Llave Foránea)
Código de Cliente (Llave Foránea)
Código Vendedor (Llave Foránea)
Fecha de Factura

Para hacer las relaciones tenemos que haber creado todas las tablas que son necesarias, para trabajar con las relaciones
recuerde haber definido las llaves primarias y las llaves foráneas, si no las ha definido no podrá hacer el diagrama de
relaciones.
Los índices se definen en la tabla facturas como se detalla a continuación:
Paso 13
El numero_factura, es la llave
primaria de la tabla facturas o la
primary key

13 . Paso 14
2 El código_tipo, código_vendedor,
14 código_cliente, son llaves foráneas
de la facturas y se definen como
2 INDEX en la tabla facturas,
recuerde que en las otras tablas
(clientes, tipo_factura, vendedores)
se definieron como llave primaria.

Paso 15
15 Una vez realizado los pasos
2 anteriores haga Clic en Guardar
Paso 16
17 Observe que aparecen
2 todas las tablas creadas.

16
Paso 17
Presione clic en Nueva si
desea agregar una tabla.
Relaciones Entre Tablas

A continuación se detallan los pasos para realizar las relaciones entre tablas:

2
Paso 1
Posiciónese en el nombre
de la base de datos, en este
caso sistema
1
Paso 2
Haga Clic en Más y
seleccione la opción
diseñador

3
Paso 3
Finalmente haga clic en
Continuar
Paso 4
Haga Clic en el tercer icono de la
4 izquierda

Paso 5
Arrastre con la flechita en
5 código_tipo de la tabla
6 tipo_facturas

Paso 6
7 Arrastre la flechita hasta
código_tipo de la tabla facturas

9 Paso 7
8
Haga Clic en la flechita on delete y
seleccione CASCADE

Paso 8
Paso 9
Haga clic en la flechita on update y
Haga Clic en Ok seleccione CASCADE
10
9
Paso 10
Haga Clic en el tercer icono de la
izquierda

Paso 11
Arrastre con la flechita el
12 codigo_vendedor de la tabla
11 9
vendedores
9

Paso 12
13
9
Arrastre la flechita
15 código_vendedor de la tabla
9 14 vendedores, al
9 codigo_vendedor de la tabla
facturas

Paso 14 Paso 13
Haga clic en la etiqueta on update y Haga clic en la etiqueta on delete
seleccione CASCADE y seleccione CASCADE

Paso 15
Haga clic en OK.
Paso 16
Esta la relación,
código_tipo de la tabla
tipo_facturas con el
campo código_tipo de la
tabla facturas

Paso 17
16
9 Esta la relación,
código_vendedor de la
tabla vendedores con el
campo código_vendedor
18 de la tabla facturas
9

17
9
Paso 18
Esta la relación,
código_cliente de la
tabla clientes con el
campo código_cliente de
la tabla facturas
20
9
Paso 19
Posiciónese en la tabla facturas
21
22
9

Paso20
23
9

19 9
Haga clic en la etiqueta Insertar
24
9
26
9 25
9
Paso21
9
Haga clic en la flechita y seleccione el
correlativo 1

Paso 22
Haga clic en la flechita de código_tipo y
seleccione 1

Paso25 Paso 23
Haga clic en Continuar Haga clic en la flechita de
código_vendedor y seleccione 1

Paso26
Paso24
Vea que muestra un mensaje de error, esto debido a que
primero se deben ingresar datos en las tablas clientes, Haga clic en la flechita de
tipo_factura, vendedores y por último en la tabla código_cliente y seleccione 1
facturas. Recordemos que le dimos actualizar en
CASCADE
28 Paso27
9
Posiciónese en la tabla
29 facturas
30 9

31
9
Paso 28
27
9
33 Haga clic en Insertar
9
32 9

Paso 29
9

Haga clic en numero_factura


y seleccione 1

Paso30
Haga clic en código_tipo y
seleccione 1

Paso 32 Paso31
Haga clic en código_cliente y seleccione 1 Haga clic en
código_vendedor y
Paso 33 seleccione 1

Haga clic en continuar y verá que se agregarán los


datos sin dar un error
Paso 34
Después de haber hecho clic en
continuar, se agregan los datos
sin dar un error, y nos muestra los
datos agregados en la tabla de
34
facturas.
9

Recuerde ingresar datos en la


tabla padre de principio y
después en la tabla hijo. De igual
manera seleccione la opción de
actualizaren CASCADE, por
orden lógico… (No se puede
agregar datos en la tabla
facturas, si necesito que estén
grabados los campos en la tabla
clientes, tipo facturas y
vendedores)

¡Felicidades hemos concluido la Unidad 2!

Continuemos ahora con el desarrollo de las actividades de aprendizaje

Das könnte Ihnen auch gefallen