15
TALLER DE BASE DE DATOS INTEGRIDAD DE ENTIDAD INTEGRIDAD REFERENCIAL EN: SQL SERVER ACCESS JUAN BAUTISTA EDUARDO VIESCA ISRAEL JIMENEZ

INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

  • Upload
    itsl

  • View
    21.368

  • Download
    1

Embed Size (px)

Citation preview

Page 1: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

TALLER DE BASE DE DATOS

INTEGRIDAD DE ENTIDADINTEGRIDAD REFERENCIAL EN:

SQL SERVERACCESS

JUAN BAUTISTAEDUARDO VIESCA

ISRAEL JIMENEZ

Page 2: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

Pretende que cada entidad que se guarda en la base de datos sea identificable de un modo único, es decir, que evitemos la información redundante.

La identificación de entidades no es única, podemos tener varios modos de entidad para un mismo objeto real .

INTEGRIDAD DE ENTIDAD

Page 3: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

Estas entidades puede ser de diferente carácter:

• Entidades físicas: un libro, una bebida, un empleado• Entidades conceptuales: una empresa• Entidades como eventos: una alerta de nuestra agenda que nos

recuerda una tarea

La integridad de entidad define una fila como entidad única para una tabla determinada. Exige la integridad de las columnas, de los identificadores o la clave principal de una tabla, mediante índices y restricciones UNIQUE, o restricciones PRIMARY KEY o IDENTITY

Cada tabla puede tener sólo una columna de identificación, la que contendrá una secuencia de valores generados por el sistema que unívocamente identifican a cada fila de la tabla

Una tabla puede tener solo una restricción PRIMARY KEY, y ninguna columna que participa de la clave primaria puede aceptar nulos. Cuando se especifica una restricción PRIMARY KEY para una tabla, SQL asegura la unicidad de los datos creando un índice principal para las columnas de la clave primaria.

Page 4: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

Como ejemplo una empresa dedicada a la venta de bebidas, podríamos identificar las bebidas de un modo general, a un modo más individual:

• Todas las bebidas en un sólo grupo.• Todas las bebidas de la misma marca en un grupo.• Agrupar las bebidas en función de si son alcohólicas o no.• Cada bebida de modo individual.• Un hecho sobre una determinada bebida, como puede ser el sabor de

un refresco.

Page 5: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

INTEGRIDAD REFERENCIAL

Protege las relaciones definidas entre las tablas cuando se crean o se eliminan filas.Se basa en las relaciones entre claves externas y claves principales, mediante restricciones FOREIGN KEY y CHECK.

Garantiza que los valores de clave sean coherentes en las distintas tablas. Para conseguir esa coherencia, es preciso que no haya referencias a valores inexistentes y que, si cambia el valor de una clave, todas las referencias a ella se cambien en consecuencia en toda la base de datos.

Page 6: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

Cuando se exige la integridad referencial, SQL Server impide a los usuarios:

• Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila asociada en la tabla principal.

• Cambiar valores en una tabla principal que crea filas huérfanas en una tabla relacionada.

• Eliminar filas de una tabla principal cuando hay filas relacionadas coincidentes.

Por ejemplo, en las tablas Sales.SalesOrderDetail y Production.Product de la base de datos AdventureWorks, la integridad referencial se basa en la relación entre la clave externa (ProductID) de la tablaSales.SalesOrderDetail y la clave principal (ProductID) de la tabla Production.Product. Esta relación garantiza que un pedido de ventas no pueda nunca hacer referencia a un producto que no existe en la tablaProduction.Product.

Page 7: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
Page 8: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
Page 9: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

Integridad referencial e integridad de entidad

con ACCES

Page 10: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

La integridad referencial es un sistema de reglas que utiliza Access para asegurarse que las relaciones entre registros de tablas relacionadas son válidas y que no se borren o cambien datos relacionados de forma accidental.

Integridad referencial

Page 11: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

Al exigir integridad referencial en una relación le estamos diciendo a Access que no nos deje introducir datos en la tabla secundaria si previamente no se han introducido en la tabla principal.

Page 12: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

La integridad referencial entre dos tablas debemos indicarla en el siguiente cuadro de diálogo (aparece cuando se realiza la relación entre dos campos).

Page 13: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

Si al hacer las relaciones entra las tablas “Socios”, “Préstamos” y “Libros” hemos marcado en todas ellas la opción de “Exigir integridad referencial”, y ahora intentamos introducir en la tabla “Préstamos” un libro que no existe en la tabla Libros aparecer´ el siguiente mensaje de error:

Page 14: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

La integridad de entidad define una fila como entidad única para una tabla determinada. La integridad de entidad exige la integridad de las columnas de los identificadores o la clave principal de una tabla, mediante índices y restricciones UNIQUE, o restricciones PRIMARY KEY.

La clave primaria de una entidad no puede tener valores nulos y siempre deberá ser única, por ejemplo DNI.

Integridad de entidad

Page 15: INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS

La primera regla de integridad se aplica a las claves primarias de las relaciones base: ninguno de los atributos que componen la clave primaria puede ser nulo.

Por definición, una clave primaria es un identificador irreducible que se utiliza para identificar de modo único las tuplas. Que es irreducible significa que ningún subconjunto de la clave primaria sirve para identificar las tuplas de modo único. Si se permite que parte de la clave primaria sea nula, se está diciendo que no todos sus atributos son necesarios para distinguir las tuplas, con lo que se contradice la irreducibilidad.

Nótese que esta regla sólo se aplica a las relaciones base y a las claves primarias, no a las claves alternativas.