Está en la página 1de 20

Relación Identificadora (Identifying Relationship):

En una relación identificadora (identifying relationship), la


clave primaria de una entidad fuerte es absorbida por una
entidad débil. Se dice que es una entidad débil, porque por
sí misma no tiene modo de identificarse de forma única (no
tiene clave primaria).

Un ejemplo: tenemos una aplicación que registra el ingreso


de los empleados a las instalaciones de la organización. he
aquí el modelo:

 empleado { id_empleado, nombre, apellido, departamento,


cargo }
ingreso_a_instalaciones { id_empleado, hora_ingreso,
puerta }
En este caso, existe una relación identificadora
porque cada registro de ingreso_a_instalaciones
*requiere* que se especifique la id_empleado.

De no especificarse, no se podría saber quién


ingresó a las instalaciones. Eso convierte a cada
ingreso_a_instalaciones en una entidad débil,
que depende de la existencia de otra entidad (el
empleado)
Relación No Identificadora (Non-Identifying
Relationship):

En una relación no identificadora (non-


identifying relationship) no depende de la
existencia de otra, porque tiene su propia clave
principal.
Un ejemplo: tenemos una aplicación que lleva la
nómina:
empleado { id_empleado, nombre, apellido, cargo,
departamento, id_empleado_jefe }

En este caso, yo puedo usar la clave foránea


id_empleado_jefe para establecer qué otro
empleado es jefe de un empleado en particular,
pero en sí, cada empleado tiene su id_empleado,
por lo que la relación con el *empleado jefe* no
tiene para nada que ver con la existencia del
empleado común.
 Relaciones uno a uno

La relación uno a uno es la menos usada pero


es importante conocerla para establecerla en el
momento que la necesitemos. En una relación
uno a uno, una fila de la tabla A no puede tener
más de una fila coincidente en la tabla B y
viceversa. Se crea una relación uno a uno si las
dos columnas relacionadas son claves
principales o tienen restricciones UNIQUE.
 Relaciones uno a uno

Este tipo de relación no es habitual, ya que la mayor


parte de la información relacionada de esta manera
estaría toda en una tabla. Puede utilizar una relación
uno a uno para:

 Dividir una tabla con muchas columnas.


 Aislar parte de una tabla por razones de seguridad.
 Almacenar datos que son efímeros y que pueden
eliminarse fácilmente mediante la simple eliminación
de la tabla.
 Almacenar información que se aplica solamente a un
subconjunto de la tabla principal.
 Relaciones uno a muchos

Las relaciones uno a muchos son el tipo de relación más habitual .


En este tipo de relación, una fila de la tabla A puede corresponder a
muchas filas de la tabla B, pero una fila de la tabla B sólo puede
corresponder a una fila de la tabla A.

Por ejemplo, en las tablas Autor y Libros se da una relación uno a


muchos, porque, un autor publica muchos títulos, pero cada libro le
corresponde sólo a un autor, esto nos confirma que es una relación
uno a muchos.

 En este tipo de relaciones la clave foránea siempre debe ir en la


tabla que hace la relación de muchos, en este caso sería la tabla
Libros.
 Cree una relación uno a muchos si solamente una de las columnas
relacionadas es la clave principal o tiene una restricción UNIQUE.
 Relaciones uno a muchos
 Relaciones muchos a muchos

En una relación muchos a muchos, una fila de la tabla A puede tener


muchas filas coincidentes en la tabla B y viceversa. Este tipo de
relaciones se crea definiendo una tercera tabla, denominada tabla
de unión, cuya clave principal esté constituida por las claves
externas de las tablas A y B.

Por ejemplo, entre las tablas Alumno y Profesor existe una relación
muchos a muchos, porque un alumno puede tener muchos
profesores y un profesor puede tener muchos alumnos. Para definir
una relación muchos a muchos entre estas dos tablas debemos
crear una tercera tabla que llamaremos Alumno_Profesor (por
convención lleva el nombre de las dos tablas unidas por un guion
bajo) . La clave principal de la tabla Alumno_Profesor es la
combinación de la columna idAlumno (la clave principal de la tabla
Alumno) y la columna idProfesor (la clave principal de la tabla
Profesor).
 Relaciones muchos a muchos
CREACIÓN DE USUARIOS

Vamos empezando por crear un usuario nuevo desde la


consola de MySQL:

CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY


'tu_contrasena';

Lamentablemente, a este punto el nuevo usuario no tiene


permisos para hacer algo con las bases de datos. Por
consecuencia si el usuario intenta identificarse (con la
contraseña establecida), no será capaz de acceder a la
consola de MySQL.

Por ello, lo primero que debemos hacer es porporcionarle el


acceso requerido al usuario con la información que requiere.
CREACIÓN DE USUARIOS

GRANT ALL PRIVILEGES ON * . * TO 'nombre_usuario'@'localhost';

Los asteriscos en este comando hacen


referencia a la base de datos y la tabla
(respectivamente) a la cual el nuevo usuario
tendrá acceso; específicamente este comando
permite al usuario leer, editar, ejecutar y
realizar todas las tareas en todas las bases de
datos y tablas.
CREACIÓN DE USUARIOS

Una vez que has finalizado con los permisos que deseas
configurar para tus nuevos usuarios, hay que asegurarse
siempre de refrescar todos los privilegios.

FLUSH PRIVILEGES;
CREACIÓN DE USUARIOS

Aquí está una pequeña lista del resto de los posibles permisos que
los usuarios pueden gozar.

 ALL PRIVILEGES: como mencionamos previamente esto permite a


un usuario de MySQL acceder a todas las bases de datos
asignadas en el sistema.
 CREATE: permite crear nuevas tablas o bases de datos.
 DROP: permite eliminar tablas o bases de datos.
 DELETE: permite eliminar registros de tablas.
 INSERT: permite insertar registros en tablas.
 SELECT: permite leer registros en las tablas.
 UPDATE: permite actualizar registros seleccionados en tablas.
 GRANT OPTION: permite remover privilegios de usuarios.
CREACIÓN DE USUARIOS

Para proporcionar un permiso a usuario específico, puedes


utilizar ésta estructura:

 GRANT [permiso] ON [nombre de bases de datos].[nombre de


tabla] TO ‘[nombre de usuario]’@'localhost’;

Si deseas darles acceso a cualquier base de datos o tabla,


asegurate de insertar un asterisco (*) en lugar del nombre de la
base de datos o tabla.
CREACIÓN DE USUARIOS

Si necesitas remover un permiso, la estructura es casi idéntica a


la que los asigna:

 REVOKE [permiso] ON [nombre de base de datos].[nombre de


tabla] FROM ‘[nombre de usuario]’@‘localhost’;
CREACIÓN DE USUARIOS

Así como puedes borrar bases de datos con DROP, también


puedes usar el comando DROP para borrar usuarios:

 DROP USER ‘usuario_prueba’@‘localhost’;

También podría gustarte