0% encontró este documento útil (0 votos)
46 vistas10 páginas

Practica3-BD - Ibarra Gonzalez

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 10

Instituto Politécnico Nacional

Escuela Superior de Cómputo

Desarrollo de Sistemas Distribuidos


Prof. Ephrain Herrera Salgado

Práctica No. 2
Creación de tablas

Grupo: 3BM1

Nombre: Ibarra Gonzalez Emilio Francisco

Fecha:26/05/2021

1
Práctica 3: Integridad referencial
Objetivo de la Práctica Que el alumno entienda que es la integridad referencial
Antecedente
Observe el video titulado “Integridad referencial (Uso de constraint 2)”.

En esta práctica analizará y practicará los comandos para crear tablas con llaves foráneas y
a manipular la instrucción CONSTRAINT.

Actividades
1.- Defina que es una llave foránea y explique cada parte de la sintaxis a nivel de tabla del
constraint foreing key. Utilice un diagrama conceptual o un esquema.

CONSTRAINT [nombreConstraint]
Es un elemento el cual Asigna el nombre del constraint
requiere valores en una
tabla y que coincidan con
los valores de otra, esto
define la relacion entre dos FOREIGN KEY [index_name] (col_name,...)
tablas y asi forza la Indica que es una llave foranea con su nombre y
integridad referencial la columna de la cual se va referenciar

REFERENCES tbl_name (col_name)


Llave foranea Indica con cual tabla va atener referencia
y con que columnda de esa mimsa tabla

[ON DELETE reference_option {CASCADE | SET NULL | NO ACTION |


SET DEFAULT}]
cuando se borre un renglon tome alguna de las acciones mostradas

[ON UPDATE reference_option {CASCADE | SET NULL | NO ACTION |


SET DEFAULT}]
cuando se actualize un renglon tome alguna de las acciones mostradas

2
2.- Describa la instrucción INSERT INTO con un ejemplo y explique sus partes. Utilice un
diagrama conceptual o un esquema.

INSERT INTO tbl_name (col_name,...)


se utiliza para
Selecciona la tbla a la que vamos a
insertar datos
insertar y en que columnas
en una tabla

VALUES (val0,val1...)
Insert into inserta los valores designados, el orden
de estos dependen del orden insertado
de las columnas y su tipo de dato debe
corresponder

Ejemplo:
insert into clientes(id,nombreCliente,ciudad,telefono) values
(1,'José Manuel García','Cd. de Mexico','014898989');

3
3.- Generé la base de datos bdTemporal con el siguiente script (SE ANEXA TAMBIEN A LA
PRACTICA):

-- borramos la base de datos


drop database if exists bdTemporal;

-- creamos la base de datos


create database if not exists bdTemporal;

-- seleccionamos la base de datos


use bdTemporal;

-- crear una tabla que no tenga ningun atributo


CREATE TABLE clientes
(
id int primary key auto_increment,
nombreCliente varchar(30) not null unique,
ciudad varchar (30),
telefono varchar(30)
)ENGINE = InnoDB;
-- crear una tabla que tenga atributos en sus columnas y defina el nombre de la base de
datos
CREATE TABLE IF NOT EXISTS bdTemporal.productos
(
id int not null unique auto_increment ,
nombreProducto varchar(30) unique,
costo decimal(8,2) not null default 0,
precioVenta decimal(8,2) not null default 0,
existencia decimal(8,2) not null default 0
)ENGINE = InnoDB;

-- creamos la tabla
CREATE TABLE IF NOT EXISTS detalleVenta
(
id int not null unique auto_increment ,
fechaVenta date not null,
idClientes int not null,
idProductos int not null,
cantidadVendida decimal(8,2) not null,
costo decimal(8,2) not null default 0,
precioVenta decimal (8,2)
)ENGINE = InnoDB;

4
5.- Realice la inserción de productos que se solicita a partir del minuto 25, y explique porque
en el primer intento si puede insertar el idCliente = 10, así como el idProductos=30, si no hay
referencia de estos datos en otras tablas:

Se pueden insertar porque en el código de la tabla detalle venta, no se están referenciado


los valores de la tabla productos. No hay ningún tipo de constraint entre ellas.

5
6.- indique las modificaciones que se le hicieron a las tablas para conseguir la integridad
referencial y explíquelas:

Se agregan las respectivas llaves foráneas mediante el uso de constraint. Se hace la


referencia de la tabla detalleventas (columnas idClientes y idProductos) con las tablas
clientes y productos (sus respectivos id).

6
7.- Imprima las pantallas del table inspector para las tablas que se modificaron para conseguir
la integridad referencial:

8.- Vuelva a insertar los campos de la tabla detalleVenta con el idCliente = 10, así como el
idProductos=30 para provocar el error a la salida. Imprima el mensaje de error y explique
porque sucedió esto:

Como las tablas ya están referenciadas entre sí, no se puede insertar datos inexistentes.

7
9.- Explique en términos prácticos para que nos puede servir la integridad referencial ¿que
nos ayuda a prevenir?
Puede ser de utilidad en la evasión de fraudes y manipulación de datos. Por ejemplo, en
este caso nos es útil ya que, si no existe integridad referencial, alguien podría agregar o
eliminar registros en los detalles de las ventas para sacar provecho, lo cual representaría
perdidas. También ayuda a evitar errores que se pueda tener durante la inserción de datos
si algún registro es incorrecto.

10.- Ajuste los valores idCliente y idProductos para que le permita hacer la inserción,
compruebe con un select a la tabla detalleVenta e imprima la pantalla:

8
11.- Complete la creación de la llave foránea como lo marca el video con la instrucción: on
delete no action. Con la instrucción delete from clientes where id=1 borre el registro del
cliente con id=1. Explique porque no se puede borrar y como haría para borrarlo, explique
la instrucción que modificaría para poder lograrlo, compruebe con SELECT * FROM
clientes Imprima pantallas:

No se puede borrar ya que cuando se declaró el constraint se agregó la instrucción on


delete no action la cual dice que cuando se intente borrar algún registro que use uso de
ese constraint (llave foránea) no tome acción

Para borrarlo se debe sustituir la instrucción on delete no action por on delete cascade, la
cual va a borrar todo lo que tenga en referencia.

9
Conclusiones
Es importante tener en cuenta correcta implementación de integridad referencial en una
base de datos, ya que esta nos ayuda a prevenir errores durante a la inserción o
eliminación de un valor dentro de la misma. También ayuda a prever una mala gestión de
los datos por parte de alguien.

Consideraciones finales
Descarga el documento antes de llenarlo.
Este documento se debe llenar de manera individual.
Después de llenar el documento, guárdalo como PDF y envíalo a través del tema correspondiente en la
plataforma calssroom.
Queda estrictamente prohibido cualquier tipo de plagio. En caso de que ocurra en esta falta, se anularán las
prácticas y se descontarán dos puntos al parcial para los involucrados.

10

También podría gustarte