2. Tema 1.- Estructura de un sistema de base de datos.
Tema2.- Restricciones de los dominios.
Tema 3.- Privilegios en SQL.
Tema 4.- Cifrado y autenticación.
3. Estructura de un sistema de base de datos
Un sistema de bases de datos se
divide en módulos,
se pueden dividir a grandes
rasgos en los componentes
“gestor de almacenamiento” y
“procesador de consultas”.
TEMA 1
4. Componentes funcionales de un sistema de base de datos son:
Gestor de Almacenamiento
Entre sus componentes se incluye
oGestor de Autorización e Integridad
oGestor deTransacciones
oGestor de Archivos
oGestor de Memoria Intermedia
5. Diccionario de Datos, contiene la información referente a la estructura de la base de datos.
6. Integridad y Seguridad de la Información
La seguridad de los datos implica
protegerlos de operaciones indebidas que
pongan en peligro su definición,
existencia, consistencia e integridad
independientemente de la persona que los
accede.
Que usuarios autorizados no provoquen la pérdida de la consistencia de
los datos. Por tanto, las restricciones de integridad protegen a la base de
datos contra los daños accidentales.
7. Declaración de claves:
La estipulación de que ciertos atributos pueden formar
una clave para un conjunto de entidades determinado.
8. Forma de la relación: de varios a varios,
de uno a varios, de uno a uno.
Departamento Capital
Municipio Vereda
Bosque Suelo
Muchos-Muchos
1-Muchos
1-1
10. Restricciones de los Dominios
•Las restricciones de los
dominios son la forma más
simple de restricción de
integridad. El sistema las
verifica fácilmente siempre que
se introduce en la base de datos
un nuevo elemento de datos.
11. Tipos de Dominios
• Es posible que varios atributos
tengan el mismo dominio. Por
ejemplo los atributos nombre-
cliente y nombre-empleado podrían
tener el mismo dominio, el conjunto
de nombre de todas las personas.
Sin embargo los dominios de saldo y
nombre-sucursal deben ser
distintos, quizá este menos claro si
nombre-cliente y nombre-sucursal
deben tener el mismo dominio.
12. Tipos de Dominios en SQL
El SQL estándar soporta un conjunto restringido de
tipos de dominios.
• Cada cadena de caracteres de longitud fija, con
longitud especificada por el usuario.
• Número en coma fija con precisión especificada por
el usuario.
• Entero.
• Entero pequeño.
• Números en coma flotante y en coma flotante de
doble precisión, con precisión dependiente de la
máquina.
13. Valores Nulos
• Para determinados atributos, los valores nulos pueden ser inapropiados.
• El SQL estándar permite que la declaración del dominio de un atributo incluya la especificación not null.
• Hay muchas situaciones en las que la prohibición de valores nulos es deseable.
14. Integridad Referencial
• A menudo se desea asegurar 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
15. 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 hay que cumplir dos requisitos:
1. Especificar las condiciones en las que se va a ejecutar el disparador.
2. Especificar las acciones que se van a realizar cuando se ejecute el
disparador.
16. Seguridad y Autorización de Usuarios
Los datos guardados en la base de datos deben estar protegidos contra los accesos no autorizados, de la
destrucción o alteración malintencionadas, además de la introducción accidental de inconsistencias que evitan las
restricciones de integridad.
Violaciones de la seguridad
La seguridad de las bases de datos
Sistema de bases de datos
Sistema operativo
Red
Fisico
Humano
18. Autorización en SQL
Un esquema de seguridad muy utilizado es el
autorizaciones, que permitiría realizar (o no) determinadas
operaciones sobre los datos.
El usuario con la autorización de recursos que crea una
relación nueva recibe automáticamente todos los privilegios
sobre la misma.
19. Autorizaciones y vistas
Se pueden utilizar vistas para ocultar determinada información, que el usuario
de la vista no desea o no deba ver.
Por ejemplo, un usuario no puede recibir la autorización de actualización sobre
una vista si no tiene la autorización de actualización sobre las relaciones
utilizadas para definir la vista.
20. Privilegios en SQL
La norma SQL incluye los privilegios delete, insert, select y update
SQL también incluye un privilegio references
El lenguaje de definición de datos de SQL incluye órdenes para conceder y retirar
privilegios.
La instrucción grant se utiliza para conferir autorizaciones.
grant <lista de privilegios> on <nombre de relación ode lista> to <lista de
usuarios/papeles>
21. La autorización update e insert puede
concederse sobre todos los atributos de la
relación o solo sobre algunos.
La autorización update e insert puede concederse sobre todos los atributos de la relación o solo
sobre algunos.
22. Concesión de Privilegios
Papeles o Roles
El Privilegio de Conceder Privilegios
24. Cifrado
• Para información extremadamente reservada es necesario cifrar los datos. Los
datos cifrados no se pueden leer a menos que el lector sepa la manera de
descifrarlos.
25. Técnicas de cifrado
• Es relativamente sencillo para los usuarios autorizados cifrar y descifrar
los datos
• Los esquemas como DES o Triple DES son esquemas de cifrado
simétricos.
• Las claves públicas, como su nombre indica, son de dominio público:
cualquiera puede verlas.
• Si el usuario U1 desea compartir los datos con U2 los codifica
utilizando C2, la clave pública de U2
• Pese a que el cifrado de clave pública es seguro, también es costoso en
cuanto a cálculo.
26. Autenticación
• La autenticación se refiere a la tarea de verificar la identidad de una
persona o software que se conecte a una base de datos. La forma
más simple consiste en una contraseña o password que se debe
presentar cuando se abra una conexión a la base de datos. Sin
embargo, el uso de contraseñas tiene algunos inconvenientes,
especialmente en una red.
27. Desnormalización para el Rendimiento
• A veces los diseñadores de bases de datos
escogen un esquema que tiene información
redundante; es decir, que no está
normalizada. Utilizan la redundancia para
mejorar el rendimiento para aplicaciones
concretas
28. Utilizar la Desnormalización de la Base de Datos
• Una base de datos normalizada impide las dependencias
funcionales de los datos para que el proceso de actualización de
la base de datos sea fácil y eficiente.
• Existen además dos tipos de desnormalización de base de datos.
Por ejemplo, supongamos que en una base de datos hay dos
tablas:
• Orders y Order Details. La tabla Orders contiene información acerca del
pedido de un cliente.
Un sistema de bases de datos se divide en módulos,
se pueden dividir a grandes rasgos en los componentes “gestor de almacenamiento” y “procesador de consultas”.
Gestor de Almacenamiento Proporciona la interfaz entre los datos de bajo nivel en la base de datos y los programas de aplicación y consultas emitidas al sistema.
Son los modelos de datos físicos
Gestor de Autorización e Integridad comprobando que se satisfagan las
restricciones de integridad y la autorización de los usuarios para acceder a los
datos.
Gestor de Transacciones, asegura la consistencia de la base
de datos a pesar de los fallos del sistema
Gestor de Archivos gestiona la reserva de espacio de
almacenamiento de disco y las estructuras de datos usadas
Gestor de Memoria Intermedia permite que la base de datos maneje tamaños de datos mucho mayores que el tamaño de la memoria principal.
Diccionario de Datos Índices, permiten un rápido acceso a registros que contienen valores específicos. Una forma gráfica de representar los componentes antes mencionados y la relación que existe entre ellos sería la siguiente.
Integridad y Seguridad de la InformaciónLa seguridad de los datos implica protegerlos de operaciones indebidas que pongan en peligro su definición, existencia, consistencia e integridad independientemente de la persona que los accede, que los usuarios no autorizados no modifiquen la base de datos.
También se le llama clave principal a un campo o a una combinación de campos, no puede haber dos filas en una tabla que tengan la misma clave primaria
La relación representa una asociación establecida entre campos comunes (Columnas) en dos tablas. En base de datos las relaciones de tipo varios a varios no pueden ser expresadas por lo que deben ser remodelizadas
Se ha visto que hay que asociar a cada atributo un dominio de valores posibles. La declaración de que un atributo pertenezca a un determinado dominio actúa como una restricción sobre los valores que puede tomar.
En el nivel de implementación los nombres de cliente y los nombres de sucursal son cadenas de caracteres. Sin embargo normalmente no consideramos la consulta "Encontrar a todos los clientes que tienen el mismo nombre que una sucursal" como una consulta con sentido. Así, si vemos la base de datos en el nivel conceptual en vez de en el físico, nombre-cliente y nombre-sucursal deberán tener dominios distintos.
Entero (un subconjunto finito de los enteros que es dependiente de la máquina).
Entero pequeño (un subconjunto de tipo de dominio entero dependiente de la máquina).
-Considérese una tupla en la relación cliente y en la nombre-cliente que es un valor vacío. Una tupla de este tipo da una calle y una ciudad para un cliente anónimo y, por tanto, no contiene información útil. En casos como este, deseamos prohibir los valores nulos, restringiendo el dominio de ciudad-cliente para excluir los valores nulos.
-Esto prohíbe la inserción de un valor nulo para este atributo. Cualquier modificación de la base de datos que causara que se insertase un valor nulo en un dominio not null genera un diagnóstico de error.
-Un caso particular en el que es esencial prohibir los valores nulos es en la clave primaria de un esquema de relación. Observamos que en el ejemplo anterior de la relación cliente, nombre-cliente de hecho es la clave primaria.
Esta condición se denomina integridad referencial.
1.- Esto se descompone en un evento que causa la comprobación del disparador y una condición que se debe cumplir para ejecutar el disparador.
2.-Este modelo de disparadores se denomina modelo evento-condición-acción
La base de datos almacena disparadores como si fuesen datos normales, por lo que son persistentes y accesibles para todas las operaciones de la base de datos.
Una vez que se almacena un disparador en la base de datos, el sistema asume la responsabilidad de ejecutarlo cada vez que ocurra el evento especificado y se satisfaga la condición correspondiente.
Los disparadores son mecanismos útiles para alertar a los usuarios o para realizar de manera automática ciertas tareas cuando se cumplen determinadas condiciones.
En este apartado se examina el modo en que se pueden utilizar mal los datos o hacerlos inconsistentes de manera intencionada. Se presentan luego mecanismos para protegerse de dichas incidencias
1.- La lectura no autorizada de los datos (robo de información). La modificación no autorizada de los datos. La destrucción no autorizada de los datos.
2.-Se refiere a la protección frente a accesos malintencionados. No es posible la protección absoluta de la base de datos contra el uso malintencionado, pero se puede elevar lo suficiente el coste para quien lo comete como para disuadir la mayor parte, si no la totalidad, de los intentos de tener acceso a la base de datos sin la autorización adecuada.
3.-Puede que algunos usuarios del sistema de bases de datos solo estén autorizados a tener acceso a una parte limitada de la base de datos. Puede que otros usuarios estén autorizados a formular consultas pero tengan prohibido modificar los datos.
4.-Independientemente de lo seguro que pueda ser el sistema de bases de datos, la debilidad de la seguridad del sistema operativo puede servir como medio para el acceso no autorizado a la base de datos.
5.-la seguridad en el nivel del software de la red es tan importante como la seguridad física, tanto en Internet como en las redes privadas de las empresas.
5.1.-Los sitios que contienen los sistemas informáticos deben estar protegidos físicamente contra la entrada de intrusos
5.2.-Los usuarios deben ser autorizados cuidadosamente para reducir la posibilidad de que alguno de ellos dé acceso a intrusos a cambio de sobornos u otros favores.
TEMA 3
Autorización en SQL
n esquema de seguridad muy utilizado es el autorizaciones, que permitiría realizar (o no) determinadas operaciones sobre los datos.
El usuario con la autorización de recursos que crea una relación nueva recibe automáticamente todos los privilegios sobre la misma.
Autorizaciones y vistas Se pueden utilizar vistas para ocultar determinada información, que el usuario de la vista no desea o no deba ver.
Por ejemplo, un usuario no puede recibir la autorización de actualización sobre una vista si no tiene la autorización de actualización sobre las relaciones utilizadas para definir la vista.
Privilegios en SQL Los permisos en SQL Server se asignan a roles que se puedes asignara usuarios, parecidos a grupos de usuarios de Windows
Esto vendrían siendo los demás privilegios o normas
La autorización update e insert puede concederse sobre todos los atributos de la relación o solo sobre algunos.
La autorización update e insert puede concederse sobre todos los atributos de la relación o solo sobre algunos.
Concesión de Privilegios Un usuario al que se le ha concedido una autorización puede ser autorizado a transmitirla a otros usuarios. Sin embargo, hay que tener cuidado con el modo en que se hace, para poder asegurar que la misma pueda retirarse en el futuro.
Papeles o Roles Los papeles o roles son una forma de simplificar la asignación de autorizaciones a los usuarios. Las autorizaciones se conceden a los papeles, de igual modo que se conceden a usuarios individuales.
El Privilegio de Conceder Privilegios Un usuario o papel al que se le concede un privilegio no está autorizado de manera predeterminada a concederlo. Si se desea conceder un privilegio a un usuario y permitirle que lo transmita a otros usuarios hay que añadir la clausula
Por ejemplo, si se desea conceder a U1 el privilegio select sobre sucursal y que pueda transmitirlo a otros, hay que escribir:
grant select on sucursal to U1 with grant option
El cifrado también forma la base de los buenos esquemas para la autenticación de usuarios en una base de datos.
1.-Los esquemas como DES o Triple DES son esquemas de cifrado simétricos (Se usa la misma clave para cifrar que para descifrar).
2.-Los cifrados de clave pública utilizan claves distintas para el cifrado y para el descifrado, por lo que puede evitar en parte el problema de la distribución de la clave. Cada usuario Ui tiene una clave pública Ci y una clave privada iD
3.-La clave privada, por el contrario, solo es conocida por el usuario al que pertenece. Si el usuario U1 desea guardar datos cifrados, los cifra utilizando su clave publica C1. Descifrarlos requiere la clave privada D1 (Que solo él conoce).
4.-Dado que solo U2 conoce la manera de descifrar los datos, la información se transmite de manera segura.
5.-Se establece una clave de sesión, utilizando cifrado simétrico, por ejemplo DES. Las claves se trasmite mediante un cifrado de clave pública y posteriormente se utiliza el cifrado DES para los datos transmitidos.
La autenticación se refiere a la tarea de verificar la identidad de una persona o software que se conecte a una base de datos. La forma más simple consiste en una contraseña o password que se debe presentar cuando se abra una conexión a la base de datos. Sin embargo, el uso de contraseñas tiene algunos inconvenientes, especialmente en una red.
A veces los diseñadores de bases de datos escogen un esquema que tiene información redundante; es decir, que no está normalizada. Utilizan la redundancia para mejorar el rendimiento para aplicaciones concretas
Sin embargo, la realización de consultas en la base de datos puede requerir la combinación de varias tablas para unir la información.
Los productos individuales de cada pedido están incluidos en la tabla Order Details. Supongamos que desea consultar el importe total en dólares de cada pedido. En primer lugar, debe determinar el importe en dólares de cada producto (unidades * precio por unidad – descuento aplicable).