Está en la página 1de 10

Restricciones de identidad

El término integridad de datos se refiere a la corrección y complementación


de los datos en una base de datos. Cuando los contenidos se modifican con
sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados
puede perderse de muchas maneras diferentes. Pueden añadirse datos no válidos
a la base de datos, tales como un pedido que especifica un producto no existente.

Pueden modificarse datos existentes tomando un valor incorrecto, como por


ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la
base de datos pueden perderse debido a un error del sistema o a un fallo en el
suministro de energía. Los cambios pueden ser aplicados parcialmente, como por
ejemplo si se añade un pedido de un producto sin ajustar la cantidad disponible
para vender.

Una de las funciones importantes de un DBMS relacional es preservar la


integridad de sus datos almacenados en la mayor medida posible.

En el mundo real existen ciertas restricciones que deben cumplir los


elementos en él existentes; por ejemplo, una persona sólo puede tener un número
de DNI y una única dirección oficial. Cuando se diseña una base de datos se debe
reflejar fielmente el universo del discurso que estamos tratando, lo que es los
mismo, reflejar las restricciones existentes en el mundo real.

Los componentes de una restricción son los siguientes:

La operación de actualización (inserción, borrado o eliminación) cuya


ejecución ha de dar lugar a la comprobación del cumplimiento de la restricción.

La condición que debe cumplirse, la cual es en general una proposición


lógica, definida sobre uno o varios elementos del esquema, que puede tomar uno
de los valores de verdad (cierto o falso).

La acción que debe llevarse a cabo dependiendo del resultado de la


condición.

Las restricciones se clasifican en:

Inherentes:

Están impuestas por el modelo,

No tiene que ser definidas por el usuario, ya que se encuentran en el propio


modelo,
Se activan en el momento de la definición del esquema cuando se produce
un intento de violación,

Se rechaza todo esquema que no cumple estas restricciones,

Introducen rigideces en el modelo.

Semánticas:

Impuestas por el universo del discurso,

Tienen que ser definidas por los diseñadores,

Se activan en el momento de la actualización de la base de datos,

Se rechaza todo ejemplar que no cumpla estas restricciones (o se ponen en


marcha otros medios a fin de que no se produzca un estado de inconsistencia),

Ayudan a capturar la semántica de los datos y a conseguir su consistencia.

Ajenas:

Se especifican en los programas de aplicación,

No están almacenadas en el esquema de la base de datos,

Pueden ser violadas por actualizaciones en las que no se haya programado


la restricción,

El sistema de bases de datos no puede comprobar si son consistentes en sí


mismas.

El optimizador no puede tomarlas en consideración,

Proporcionan el máximo de flexibilidad,

Pueden ser programadas en un lenguaje de propósito general o en algún


lenguaje propio del sistema de bases de datos,

Suponen una importante carga de programación y mantenimiento.

Propias:

Se identifican en el esquema,

Están almacenadas en el esquema de la base de datos,

No pueden ser violadas por ninguna actualización.


Acción General:

Es obligatorio especificar la condición y la acción,

Son procedimentales (al menos en parte, ya que la acción se especifica


siempre mediante un procedimiento),

Suponen carga de programación,

Es muy difícil (prácticamente imposible en la mayor parte de los casos) que


el sistema de bases de datos pueda comprobar su consistencia,

El optimizador no puede tomarlas en consideración,

Hasta ahora no están estandarizadas,

Están muy ligadas a los productos,

Son muy flexibles,

Tienen nombre y existencia propia dentro del programa.

Procedimientos almacenados

Es obligatorio especificar la condición (además de la acción),

Son totalmente procedimentales,

Pueden ser tan complejas como imponga la semántica del mundo real
(tanto en la condición como en la acción),

Son las más flexibles dentro de las restricciones propias.

Disparadores:

Combinan los enfoques declarativo (en la condición) y procedimental (en la


acción),

Pueden ser tan complejas como imponga la semántica del mundo real en
cuanto a la acción, y bastantes complejas en la condición (todo lo que permite la
proposición lógica mediante la que se expresa la condición),

El cumplimiento de la condición dispara la acción,

Son más flexibles que las restricciones de acción específica.


Acción Específica:

La acción está implícita en la misma restricción, por lo que no hay que


definirla,

Son declarativas, puesto que no especifica la acción y la condición, si se


define, es declarativa,

El no cumplimiento de la condición lleva a aplicar la acción,

Podrían ser definidas mediante un lenguaje de tipo general,

El sistema de bases de datos puede comprobar si son consistentes en sí


mismas,

El optimizador puede tomarlas en consideración,

No suponen carga de programación, sólo de definición.

Condición General:

No se especifica la acción, que es siempre de rechazo (el no cumplimiento


de la condición lleva consigo el rechazo de la actualización),

Es obligatorio declarar la condición mediante una proposición lógica que


permite condiciones de complejidad arbitraria,

Además de la condición, se puede especificar algún otro componente,

Son más flexibles que las de condición específica,

Es más difícil optimizar su ejecución que en el caso de las de condición


específica.

Verificación:

No tienen existencia en sí mismas,

Su definición forma parte de la definición del elemento afectado por la


restricción,

Se aplican a un único elemento y aunque pueden afectar a otros, en este


caso se complica su definición,

Pueden no tener nombre.

Aserción:
Tienen existencia por sí mismas,

Se definen con independencia de cualquier elemento del esquema,

Pueden afectar a más de un elemento,

Tienen nombre.

Condición Específica:

Son opciones proporcionadas por el propio modelo,

No se especifica ninguno de los componentes relativos a una restricción (ni


la operación, ni la condición, ni la acción),

Son poco flexibles,

El optimizador puede tomarlas en consideración,

Su ejecución puede ser más fácilmente optimizada que las de condición


general.

Entidad

Establece que la clave primaria de una tabla debe tener un valor único para
cada fila de la tabla; si no, la base de datos perderá su integridad. Se especifica en
la sentencia CREATE TABLE. El DBMS comprueba automáticamente la unicidad
del valor de la clave primaria con cada sentencia INSERT Y UPDATE. Un intento
de insertar o actualizar una fila con un valor de la clave primaria ya existente
fallará.

La clave primaria de una entidad no puede tener valores nulos y siempre


deberá ser única, por ejemplo DNI.

Referencial

Asegura la integridad entre las llaves foráneas y primarias (relaciones


padre/hijo). Existen cuatro actualizaciones de la base de datos que pueden
corromper la integridad referencial:

inserción de una fila hijo se produce cuando no coincide la llave foránea


con la llave primaria del padre.

La actualización en la llave foránea de la fila hijo, donde se produce una


actualización en la clave ajena de la fila hijo con una sentencia UPDATE y la
misma no coincide con ninguna llave primaria.
La supresión de una fila padre, con la que, si una fila padre -que tiene uno o
más hijos- se suprime, las filas hijos quedarán huérfanas.

La actualización de la llave primaria de una fila padre, donde si en una fila


padre, que tiene uno o más hijos se actualiza su llave primaria, las filas hijos
quedarán huérfanas.

Las claves ajenas de una tabla hija se tienen que corresponder con la clave
primaria de la tabla padre con la que se relaciona. Por ejemplo, en las tablas
familiares de los empleados necesitaremos el DNI de empleado, que es la clave
ajena de la tabla.

Operaciones de actualización
La actualización de los datos consiste en hacer que los cambios que se
producen en la realidad queden reflejados en las relaciones de la base de datos.

Insertar

Inserción sirve para añadir una o más tuplas a una relación.

Eliminar

Borrado sirve para eliminar una o más tuplas de una relación.

Actualizar

Modificación sirve para alterar los valores que tienen una o más tuplas de
una relación para uno o más de sus atributos.

La actualización de los datos consiste en hacer que los cambios que se


producen en la realidad queden reflejados en las relaciones de la base de datos.

Operaciones básicas del algebra relacional


Las operaciones de álgebra relacional manipulan relaciones. Esto significa
que estas operaciones usan uno o dos relaciones existentes para crear una nueva
relación. Esta nueva relación puede entonces usarse como entrada para una
nueva operación. Este poderoso concepto - la creación de una nueva relación a
partir de relaciones existentes hace considerablemente más fácil la solución de las
consultas, debido a que se puede experimentar con soluciones parciales hasta
encontrar la proposición con la que se trabajará.
Es una colección de operaciones que sirven para manipular relaciones
enteras. Estas operaciones sirven por ejemplo, para seleccionar tuplas de
relaciones individuales y para combinar tuplas relacionadas a partir de varias
relaciones con el fin de especificar una consulta. El resultado de cada operación
es una nueva relación, que podremos manipular en una ocasión futura.

Seleccionar

La operación selección consiste en recuperar un conjunto de registros de


una tabla o de una relación indicando las condiciones que deben cumplir los
registros recuperados, de tal forma que los registros devueltos por la selección
han de satisfacer todas las condiciones que se hayan establecido. Esta operación
es la que normalmente se conoce como consulta.

Podemos emplearla para saber que empleados son mayores de 45 años, o


cuales viven en Madrid, incluso podemos averiguar los que son mayores de 45
años y residen en Madrid, los que son mayores de 45 años y no viven en Madrid,
etc..

En este tipo de consulta se emplean los diferentes operadores de


comparación (=,>, <, >=, <=, <>), los operadores lógicos (and, or, xor) o la
negación lógica (not).

ð condición (R)

Es un operador unario

Define una relación con los mimos atributos que R y que contiene solo
aquellas filas de R que satisfacen la condición especificada (predicado)

Proyectar

Una proyección es un caso concreto de la operación selección, esta última


devuelve todos los campos de aquellos registros que cumplen la condición que he
establecido. Una proyección es una selección en la que seleccionamos aquellos
campos que deseamos recuperar. Tomando como referencia el caso de la
operación selección es posible que lo único que nos interese recuperar sea el
número de la seguridad social, omitiendo así los campos teléfono, dirección, etc.
Este último caso, en el que seleccionamos los campos que deseamos, es una
proyección.

Crea una nueva relación a partir de otra, pero incluyendo sólo algunas de las
columnas
Renombrar

Operaciones de la teoría de conjuntos


Unión

La operación de unión permite combinar datos de varias relaciones. Supongamos


que una determinada empresa internacional posee una tabla de empleados para
cada uno de los países en los que opera. Para conseguir un listado completo de
todos los empleados de la empresa tenemos que realizar una unión de todas las
tablas de empleados de todos los países.

No siempre es posible realizar consultas de unión entre varias tablas, para poder
realizar esta operación es necesario e imprescindible que las tablas a unir tengan
las mismas estructuras, que sus campos sean iguales.

La unión de dos relaciones R y S, es otra relación que contiene las tuplas que
están en R, o en S, o en ambas, eliminándose las tuplas duplicadas.

Intersección

La operación de intersección permite identificar filas que son comunes en dos


relaciones. Supongamos que tenemos una tabla de empleados y otra tabla con los
asistentes que han realizado un curso de inglés (los asistentes pueden ser
empleados o gente de la calle). Queremos crear una figura virtual en la tabla
denominada "Empleados que hablan Inglés", esta figura podemos crearla
realizando una intersección de empleados y curso de inglés, los elementos que
existan en ambas tablas serán aquellos empleados que han asistido al curso.

Define una relación que contiene el conjunto de todas las filas que están tanto en
la relación R como en S
Equivalencia con operadores básicos

R o S = R – (R – S)

Diferencia

La operación diferencia permite identificar filas que están en una relación y no en


otra. Tomando como referencia el caso anterior, deberíamos aplicar una diferencia
entre la tabla empleados y la tabla asistentes al curso para saber aquellos
asistentes externos a la organización que han asistido al curso.

R-S

La diferencia de dos relaciones R y S, es otra relación que contiene las tuplas que
están en la relación R, pero no están en S

También podría gustarte