Está en la página 1de 10

BASE DE DATOS I

CD1. ESCOBAR FONSECA FRANK STIVEN

FUERZA AÉREA COLOMBIANA


ESCUELA MILITAR DE AVIACIÓN “MARCO FIDEL SUÁREZ”
2016
BASE DE DATOS I

Trabajo presentado como requisito para el área de base de datos

Alumno
CD1. ESCOBAR FONSECA FRANK STIVEN
92-D

Docente
José tulio Benavides

FUERZA AÉREA COLOMBIANA


ESCUELA MILITAR DE AVIACIÓN “MARCO FIDEL SUÁREZ”
2016
INTEGRIDAD Y SEGURIDAD

Restricciones de los Dominios

Estas restricciones protegen contra el daño accidental a la base de datos, para


asegurar que los cambios autorizados de la base de datos no producen una pérdida
de la consistencia de dichos datos.

Verifican los valores insertados en la base de datos, y verifican las consultas para
asegurar que las comparaciones tienen sentido.
No se puede asignar o comparar un valor de tipo Euros a un valor de tipo Dólares.

Integridad Referencial

Asegura que un valor que aparece en una relación para un conjunto de atributos
determinado aparezca también en otra relación para un cierto conjunto de atributos.

un ejemplo muy claro es el siguiente Si “As Pontes” es un nombre de sucursal que


aparece en una de las tuplas de la relación cuenta, entonces existirá una tupla en la
relación sucursal para la sucursal “As Pontes”.

Integridad Referencial en el Modelo E-R

Considérese el conjunto de relaciones R entre los conjuntos de entidades E1 y E2.


El esquema de relación para R incluye las claves primarias K1 de E1 y K2 de E2.
Entonces las claves externas K1 y K2 forman los esquemas relacionales de E1 y E2
respectivamente.

Modificación de la Base de Datos

Si se actualiza una tupla t2 de la relación r2 y la actualización modifica valores de la


clave externa , entonces se realiza una comprobación similar al del caso de la
inserción. t2’ denota el nuevo valor de la tupla t2. El sistema debe asegurar que
t2’[]  K(r1)
Si se actualiza una tupla t1 de r1, y la actualización modifica valores de la clave
primaria (K), entonces se realiza una comprobación parecida al del caso del
borrado. El sistema debe calcular
 = t1[K] (r2)
utilizando el valor anterior de t1 (el valor antes de que se lleve a cabo la
actualización). Si este conjunto no es el conjunto vacío, la actualización se rechaza
como error, o se puede ejecutar en cascada las tuplas del conjunto, o se pueden
borrar las tuplas de dicho conjunto.

Integridad Referencial en SQL


Las claves primarias y candidatas y las claves externas se pueden especificar como
parte de la instrucción create table de SQL:
La cláusula primary key de la instrucción create table incluye una lista de los
atributos que comprende la clave primaria.

La cláusula unique key de la instrucción create table incluye una lista de los
atributos que comprende una clave candidata.

La cláusula foreign key de la instrucción create table incluye una lista de los
atributos que comprende la clave externa y el nombre de la relación a la que hace
referencia mediante la clave externa.

Asertos.

Un aserto es un predicado que expresa una condición que se desea que la base de
datos satisfaga siempre.
Un aserto en SQL tiene la forma
create assertion <nombre-aserto > check <predicado>
Cuando se crea un aserto, el sistema comprueba su validez, y la comprueba de
nuevo en cada actualización que puede violar el aserto
Esta prueba puede introducir una cantidad considerable de sobrecarga; por lo tanto
se deben utilizar los asertos con mucha cautela.
El aserto
para todo X, P(X)
se consigue en un modo indirecto utilizando
no existe X tal que no P(X)

Disparadores.

Un disparador es una orden que el sistema ejecuta de manera automática como


efecto secundario de la modificación de la base de datos.
Para diseñar un mecanismo disparador, se debe:
Especificar las condiciones en las que se va a ejecutar el disparador.
Especificar las acciones que se van a realizar cuando se ejecute el disparador.

Los disparadores se introdujeron en el estándar de SQL en el SQL:1999, pero se


soportaron incluso antes utilizando la sintaxis no estándar en la mayoría de las
bases de datos.

Disparadores en SQL

El evento del disparador puede ser insert, delete or update


Los disparadores en la actualización se pueden restringir para especificar los
atributos
Por ejemplo, create trigger disparador-descubierto after update of saldo en
cuenta
Se puede hacer referencia a los valores de los atributos antes y después de una
actualización
referencing old row as : para borrados y actualizaciones
referencing new row as : para insertos y actualizaciones

Los disparadores pueden activarse antes de un evento, que pueden servir como
restricciones adicionales. Por ejemplo, convertir los espacios vacíos a nulos.

Cuando no deben usarse los disparadores

Los disparadores se utilizaban anteriormente para tareas como


Mantenimiento de resúmenes de datos (por ejemplo, sueldos totales de cada
departamento)
Hacer réplicas de bases de datos registrando los cambios en relaciones especiales
(llamadas relaciones de cambio o delta) y haciendo un proceso separado que
aplica cambios sobre una réplica

Hay formas mejores de hacerlo ahora:


Las bases de datos hoy se proporcionan construidas en facilidades de vista
materializadas para mantener los datos de resumen
Las bases de datos se proporcionan construidas en soporte de réplica
En muchos casos se pueden utilizar las facilidades de “encapsulación” en vez de los
disparadores
Definir los métodos para actualizar campos
Llevar a cabo acciones como parte de los métodos de actualización en vez de a
través de un disparador

Seguridad y Autorización

Seguridad - protección de intentos malintencionados para robar o modificar datos.

Nivel del sistema de la base de datos

 Mecanismos de autenticación y autorización para permitir el


acceso de los usuarios especificados sólo a los datos
requeridos

 Se concentra en la autorización en el resto de este capítulo

Nivel de sistema operativo

 Los superusuarios del sistema operativo pueden hacer


cualquier cosa que quieran en la base de datos! Se necesita
una buena seguridad del nivel del sistema operativo.

Nivel de la red: debe utilizar el cifrado para evitar

 Escuchas (lectura no autorizada de mensajes)


 Mascarada (pretensión de ser un usuario autorizado o enviar
mensajes supuestamente desde usuarios autorizados)

Autorización Las formas de autorización para diferentes partes de la base de


datos:

 Autorización de lectura permite la lectura, pero no la modificación de datos.


 Autorización de inserción permite la inserción de datos nuevos, pero no la
modificación de los existentes.
 Autorización de actualización permite la modificación, pero no el borrado
de los datos.
 Autorización de borrado permite el borrado de los datos

Autorizaciones y vistas

 Se les puede dar a los usuarios autorización de vistas, sin darles ninguna
autorización sobre las relaciones utilizadas en la definición de vista

 La capacidad de las vistas para esconder datos sirve para simplificar el uso
del sistema y aumentar la seguridad permitiendo a los usuarios acceder solo
a los datos que necesitan para su trabajo

 Se puede utilizar una combinación de seguridad en el nivel relacional y en el


nivel de las vistas para limitar el acceso de un usuario precisamente a los
datos que no necesita.

Concesión de Privilegios

 El paso de autorización de un usuario a otro se puede representar mediante


un grafo de autorización.

 Los nodos de este grafo son los usuarios.

 La raíz del grafo es el administrador de la base de datos.

 Considérese el grafo para la autorización de actualización sobre el préstamo.

 Un arco Ui Uj indica que el usuario U i ha garantizado la autorización de


actualización sobre el préstamo a Uj.

Concesión privilegios en SQL


 select: permite el acceso de lectura a la relación, o la capacidad para hacer
consultas utilizando la vista

Ejemplo: autorizan a los usuarios U1, U2, y U3 select autorización en la relación


sucursal:
grant select on sucursal to U1, U2, U3

 insert: la capacidad para insertar tuplas

 update: la capacidad para actualizar utilizando la instrucción actualización de


SQL

 delete: la capacidad para borrar tuplas.

 references: la capacidad para declarar claves externas cuando se crean


relaciones.

 usage: en SQL-92; autoriza a un usuario a utilizar un dominio especificado

El concepto de papel

 Los papeles permiten privilegios comunes para una clase de usuarios que se
pueden especificar sólo una vez que se crea el “papel” correspondiente

 Se pueden conceder privilegios o revocarlos desde los papeles, sólo como


usuario

 Se pueden asignar papeles a usuarios, e incluso a otros papeles

 SQL:1999 soporta papeles

Autorización en SQL

Retirada de autorización en SQL

 La instrucción revoke se utiliza para retirar la autorización.

revoke<lista de privilegios>
on <nombre de relación o de vista> from <lista de usuarios> [restrict|cascade]

 Ejemplo:
revoke select on sucursal from U1, U2, U3 cascade
 La retirada de un privilegio a un usuario puede hacer que otros usuarios
también pierdan ese privilegio; a esto se refiere los revoke en cascada.

 Se puede impedir el proceso en cascada especificando restrict:


revoke select on sucursal from U1, U2, U3 restrict
Con restrict, el comando revoke falla si son necesarias las retiradas en cascada.

Retirada de autorización en SQL

 La <listadeprivilegios> puede ser all to para retirar todos los privilegios que la
retirada puede mantener.

 Si la <listaderetirada> incluye public todos los usuarios pierden el privilegio


excepto aquellos que lo autorizan explícitamente.

 Si el mismo privilegio se concede dos veces al mismo usuario por diferentes


concesiones, el usuario puede retener el privilegio después de la retirada.

 Todos los privilegios que dependen del privilegio que se ha retirado se retiran
también.

Limitaciones de la autorización SQL

 Todos los usuarios finales de una aplicación (tal como una aplicación web) se
pueden corresponder con un único usuario de la base de datos

 La tarea de autorización en los casos anteriores recae entonces en el


programa de la aplicación, sin soporte de SQL

 Se debe dar la autorización del código de la aplicación, y dispersarse


en toda la aplicación

 El comprobar la ausencia de agujeros de seguridad de autorización se


hace muy difícil ya que implica la lectura de grandes cantidades de
códigos de la aplicación

Cifrado

 La Data Encryption Standard (DES, Norma de cifrado de datos) sustituye los


caracteres y los reordena en función de una clave de cifrado que se
proporciona a los usuarios autorizados mediante un mecanismo seguro. El
esquema no es más seguro que el mecanismo de transmisión de claves ya
que se tiene que compartir la clave.

 La Advanced Encryption Standard (AES, Norma de cifrado avanzado) es un


nuevo estándar que sustituye al DES, y está basado en el algoritmo Rijndael,
pero también depende de las claves secretas compartidas

 El cifrado de clave pública se basa en cada uno de los usuarios que tienen
dos claves:

 clave pública – la clave publicada públicamente se utiliza para cifrar


datos, pero no se puede utilizar para descifrarlos

 clave privada – clave conocida sólo por el usuario individual, y utilizada


para descifrar datos.
No necesita transmitirse al sitio que hace el cifrado.

El esquema de cifrado se hace de tal forma que es imposible o extremadamente


difícil descifrar datos dada sólo la clave pública.

 El esquema de cifrado de clave pública RSA se basa en la dificultad para


encontrar los factores de un número grande (de 100 dígitos) en sus
componentes primarios.

Autenticación

 Se utiliza en gran medida contraseña basada en la autenticación, pero es


susceptible de su husmeo en la red

 Los sistemas de desafío-respuesta evitan la transmisión de contraseñas

 La BD envía una cadena de desafíos (generado aleatoriamente) al


usuario

 El usuario cifra la cadena y devuelve el resultado.

 La BD verifica la identidad mediante el resultado de descifrado

 Se puede utilizar el sistema de cifrado en clave pública mediante la BD


enviando un mensaje cifrado utilizando la clave pública del usuario, y
el usuario descifra y envía el mensaje de respuesta.

 Las firmas digitales se utilizan para verificar la autenticidad de los datos


 Por ejemplo, utiliza la clave privada (al inverso) para cifrar datos, y
alguien puede verificar la autenticidad utilizando la clave

 pública (al inverso) para descifrar datos. Sólo el manipulador de


claves privadas podría haber creado el mensaje cifrado.

 Las firmas digitales también ayudan a asegurar el rechazo: el emisor


no puede reclamar después el no haber originado los datos

También podría gustarte