28
Bases de Datos II, por M.C. Enrique Ruiz Díaz. Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 1 de 28 Bases de Datos II, por M.C. Enrique Ruiz Díaz. Correspondientes a mis Estudios de Licenciatura en Informática en el Instituto Tecnológico de Tuxtepec, Oax., México. All Rights Reserved. Con título y cédula profesional 5632071 en la Maestría en Ciencias de la Computación. Egresado del Instituto Tecnológico de Orizaba, Ver. México.

Bases de Datos II - M.C. Enrique Ruiz Díaz

Embed Size (px)

Citation preview

Page 1: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 1 de 28

Bases de Datos II,

por M.C. Enrique Ruiz Díaz.

Correspondientes a mis Estudios de Licenciatura en Informática en el Instituto

Tecnológico de Tuxtepec, Oax., México.

All Rights Reserved.

Con título y cédula profesional 5632071

en la Maestría en Ciencias de la Computación.

Egresado del Instituto Tecnológico de Orizaba, Ver. México.

Page 2: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 2 de 28

Acerca de mi.

Titulado en la Maestría en Ciencias en Ciencias de la Computación, Cédula

profesional 5632071. Egresado del Instituto Tecnológico de Orizaba, Ver.,

México. Antes, me Titulé en la Licenciatura en Informática, Cédula profesional

4046033. Egresado del Instituto Tecnológico de Tuxtepec, Oax., México,

distinguiéndome además, por ser el mejor promedio de mi generación con

98%.

Bien, regresando al tema de mi Título de Maestría en Ciencias de la

Computación, para subrayar que ésta, requirió el desarrollo de una TESIS. Otro

aspecto muy importante, fue que durante el desarrollo de mi Maestría escribí

un ARTICULO, mismo que fue aceptado para publicación y con mi ponencia en

el evento 'Primer Encuentro de Estudiantes en Ciencia de la Computación -

E2C2' ISBN-10:970-36-0404-8 e ISBN-13:978-970-36-0404-3 celebrado en el

Instituto Politécnico Nacional, México, D.F. 2007.

Page 3: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 3 de 28

Mi Diploma por mi Ponencia en el Instituto Politécnico

Nacional, México, D.F. 2007, durante mis estudios de

Maestría.

Page 4: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 4 de 28

UNIDAD 1 - Reglas de Integridad Relacional.

1. Dibuje una tabla en donde se identifique lo siguiente:

1) Una tupla o registro. 2) Un atributo o campo. 3) El campo llave primaria. 4) El campo clave ajena.

Respuesta:

EMPLEADOS RFC Nom_empl Sdo Ant No_Depto

Tupla 1 DISR 810422 Rosa Andrea Díaz

Sánchez

4,800 10 1

Tupla 2 RUDE 801125 Enrique Ruiz Díaz 3,500 5 2

a) Una tupla o registro. Cualquiera de las dos líneas de información que nos presenta la tabla.

b) Un atributo o campo. Cualquiera de los 5 atributos o campos. c) El campo clave primaria. En este caso es el “RFC”. d) El campo clave ajena. En este caso es “No_Depto”.

(Se supone que existirá una tabla de “Departamentos” en donde necesariamente

encontraremos un “Depto no. 1” y un “Depto no. 2”.)

2. ¿A quienes se aplican las 2 reglas generales de Integridad? A las claves primarias y a las claves ajenas.

3. ¿Qué es una Clave Primaria? Es un identificador único en una relación (una tabla), es decir, nos permite identificar de forma

única a las tuplas. Por lo cual, la clave primaria no debe contener valores nulos ni repetidos.

Page 5: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 5 de 28

4. ¿Por qué son importantes las claves primarias? Porque es el único modo garantizado por el sistema de localizar alguna tupla específica.

5. ¿Qué requisitos deben cubrir las claves candidatas a claves primarias? a) Unicidad. Significa que no existen 2 tuplas con el mismo valor.

b) Minimalidad. Sí la clave está compuesta, no es posible destruir ningún componente

sin destruir la unicidad.

6. Cuál es la diferencia entre claves candidatas, clave alternativa y clave primaria? Una relación tiene varias claves candidatas a clave primaria, se escoge una de esas claves

candidatas como clave primaria, y a las demás las llamamos claves alternativas.

7. ¿Cuáles son las 2 reglas generales de Integridad del modelo relacional? a) Regla de Integridad de las Entidades.

b) Regla de Integridad Referencial.

8. ¿Qué dice la Regla de Integridad de Entidades? Ningún componente de la clave primaria de una relación base puede aceptar nulos. Por

ejemplo, en nuestra tabla “Empleados” al atributo “RFC” se le aplica esta regla.

9. Qué dice la Regla de Integridad Referencial? La base de datos no debe contener valores de clave ajena sin concordancia.

10. ¿Qué es la Clave ajena? Es un atributo de una relación cuyos valores deben concordar con los de la clave primaria de

otra relación. Por ejemplo:

Tabla 1 ... ... ... Clave

Ajena

Atributo

Referido

... ... ... Tabla 2

2 4

4 2

1 1

Page 6: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 6 de 28

EMPLEADOS RFC Nom_empl Sdo Ant No_Depto

Tupla 1 DISR 810422 Rosa Andrea Díaz Sánchez 4,800 3 10

Tupla 2 CORE 801125 Enrique Cortinez Robles 4,500 5 20

Tupla 3 HABR 791012 Rubi Hajek byron 3,300 2 30

DEPTOS Num_D Nom_Dep Num_Empl CJ

10 Mercadotecnia 5 JD1

20 Ventas 50 JD2

30 Contabilidad 10 JD3

40 Producción 0 JD4

11. ¿Qué es la Disgreción? Nos dice que si bien el valor de la clave ajena debe concordar con la clave primaria de otra

relación, no se requiere lo inverso, es decir, la clave primaria correspondiente a una clave

ajena dada podría contener un valor que de momento no aparezca como valor de esa clave

ajena.

En nuestro ejemplo anterior, si bien el atributo de la clave ajena: “No_Depto” de la

tabla “Empleados” debe de encontrar a su correspondiente valor en la tabla “Deptos”, ésta

tabla puede en un momento tener un valor (en su clave primaria) que no aparezca en la tabla

empleados; por ejemplo, el depto 40 de Producción.

Clave ajena

Clave

primaria

Page 7: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 7 de 28

12. ¿Cómo se llama a la Relación que contiene a la clave ajena? Relación referencial. (Por ejemplo, la tabla “Empleados”).

13. ¿Cómo se llama a la Relación que contiene a la clave primaria que es llamada por la clave ajena? Relación referida o relación objetivo. (Por ejemplo, la tabla “Deptos”).

14. ¿Qué se entiende por Relaciones autorreferenciales? Cuando en una Relación (o tabla) los valores de la clave ajena (no nulos) deben coincidir con

los valores de la clave primaria de la misma relación.

Es decir, no hay dos tablas, sino una sola, pero observe que no se permiten nulos.

15. ¿Cuáles son las preguntas que hay que responder para el manejo de la Clave ajena? a) ¿Puede aceptar nulos la Clave ajena? b) ¿Qué deberá suceder si hay un intento de eliminar el objetivo de una clave ajena? c) ¿Qué deberá suceder si hay un intento de modificar la clave primaria que es el

objetivo de una clave ajena?.

16. Mencione las 3 respuestas posibles a las preguntas anteriores. a) Se restringe. b) Se propaga. c) Se anula.

17. ¿Qué se entiendo por operación restringuida (se restringe)? No se puede eliminar una tupla de la tabla referida cuando tiene información que es

requerida por la clave ajena de otra tabla.

17. ¿Qué se entiende por operación de propagación?

La operación de eliminación se propaga a la tabla que contiene la tupla con la clave ajena que

la llama. Por ejemplo, si se elimina al departamento de contabilidad se elimina también a la

tupla de Rubi Hajek byron.

Page 8: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 8 de 28

18. ¿Qué se entiende por la operación de “se anula”?

Se siguen 2 pasos, primero, se asigna nulo a la clave ajena correspondiente, y luego, se

elimina a la tupla correspondiente de la tabla referida u objetivo.

Nota: Las operaciones pueden ser de eliminación y de modificación.

a) En el caso de la “modificación y restringida” la operación de modificación se permite, siempre y cuando no haya claves ajenas que requieran los datos.

b) En el caso de “modificación y propagación” la modificación se propaga modificando también a la clave ajena correspondiente.

c) En el caso de la “modificación y se anula” se siguen los 2 pasos: primero, se asignan nulo a la clave ajena correspondiente y en seguida se modifica a la tupla referida u objetivo.

Page 9: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 9 de 28

SENTENCIAS EN SQL - Lenguaje Estructurado de Consulta –

Aplicación de algunas sentencias elementales del lenguaje SQL. SELECT, FROM Y WHERE.

Sintaxis:

SELECT (lista de atributos)

FROM (tabla o lista de tablas)

WHERE (condicion)

OBTENGA LA INSTRUCCIONES SQL Y LA TABLA RESULTADO DE LOS SIGUIENTES

PROBLEMAS (con las tablas Empleados y Deptos).

1. Obtener una lista de empleados (clave, nombre y sueldo) de aquellos que tengan una

antigüedad mayor a 2 años.

SELECT (RFC, Nom_empl, Sdo)

FROM EMPLEADOS

WHERE (Ant > 10)

RESULTADO RFC Nom_empl Sdo

Tupla 1 DISR 810422 Rosa Andrea Díaz Sánchez 4,800

Tupla 2 CORE 801125 Enrique Cortinez Robles 4,500

2. Obtener la clave y nombre del empleado de aquellos que estén en el departamento de

ventas.

SELECT (RFC, Nom_empl)

FROM (EMPLEADOS, DEPTOS)

WHERE (Nom_dep = “Ventas”) AND (Num_D = No_Depto)

Page 10: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 10 de 28

RESULTADO RFC Nom_empl

Tupla 2 CORE 801125 Enrique Cortinez Robles

3. Obtener la información completa de los empleados que tengan un sueldo menor o igual a

4,500

SELECT *

FROM EMPLEADOS

WHERE (SDO <= 4,500)

RESULTADO RFC Nom_empl Sdo Ant No_Depto

Tupla 2 CORE 801125 Enrique Cortinez Robles 4,500 5 20

Tupla 3 HABR 791012 Rubi Hajek byron 3,300 2 30

Page 11: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 11 de 28

UNIDAD 2 - Recuperacion y Concurrencia.

1. ¿Qué se entiende por TRANSACCIÓN?

Una transacción es una unidad lógica de trabajo. La cual no es por fuerza una sola operación

en la base de datos; más bien, es en general una secuencia de varias de esas operaciones

mediante la cual un estado consistente de la base de datos se transforma en otro estado

consistente, sin conservar por fuerza la consistencia en todos los puntos intermedios.

Por ejemplo: una transacción que implique dos modificaciones a la base de datos,

entonces la transacción es el conjunto de esas dos modificaciones, no puede faltar ninguna

de ella porque se perdería la consistencia.

2. ¿Qué se entiende por CONSISTENCIA? Una respuesta simplista: cuando los datos de la base de datos están completos y correctos;

bien sea porque no se ha iniciado alguna transacción, o porque estas han sido exitosamente

realizadas.

3. ¿Qué es el PROCESAMIENTO DE OPERACIONES? Es la garantía que ofrece el sistema de que si la transacción ejecuta algunas modificaciones y

después se presenta una falla (por cualquier razón) antes de que llegue el término normal de

la transacción, se anularan esas modificaciones. Así, o bien la transacción se lleva a cabo en

su totalidad, o se cancela en su totalidad (Propiedad de la “ATOMICIDAD” es decir, o todo

completo o nada).

4. ¿Cómo se llama el componente del sistema encargado de lograr la “atomicidad” en las Transacciones? “Manejador de Transacciones”

5. ¿Qué operaciones realiza el Manejador de Transacciones? a) COMMIT (comprometer en español) b) ROLLBACK (retroceder)

Page 12: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 12 de 28

6. ¿Qué significa una operación COMMIT? Señala el término exitoso de la transacción: le dice al Manejador de transacciones que ha

finalizado con éxito una unidad lógica de trabaja (una transacción) y que se hacen

permanentes las modificaciones efectuadas por esa transacción. En español se dice

“comprometer” y significa lo mismo.

7. ¿Qué significa la operación ROLLBACK? Señala el término No exitoso de una transacción: le dice al manejador de transacciones que

algo salió mal y que todas las modificaciones efectuadas hasta el momento por la unidad

lógica de trabajo deben anularse.

8. ¿Qué es el Punto de Sincronización? Se establece con la ejecución de una operación COMMIT (comprometer) o ROLLBACK

(retroceder).

Un punto de Sincronización representa el límite entre dos transacciones

consecutivas, de modo que corresponde al final de una unidad lógica de trabajo (una

transacción) lo cual es el punto en que la BD está en un estado de consistencia (con datos

correctos y completos).

9. ¿Qué es la BITACORA o diario? Es el registro de todas las operaciones de actualización (modificación), en particular, los

valores iniciales y final del objeto modificado.

10. ¿Para que sirva la BITACORA? Para cuando es necesario anular alguna modificación especifica, el sistema puede utilizar la

entrada correspondiente de la bitácora para restaurar el valor original del objeto modificado.

11. ¿Qué es el Punto de Revisión? Cada cierto intervalo el sistema establece un Punto de Revisión que implica:

a) Gravar físicamente el contenido de los buffers (memoria) de datos en la base de datos física (disco duro).

b) Gravar físicamente un registro de punto de Revisión especial en la bitácora física.

12. ¿Para que sirve el Punto de Revisión? Para cuando se reinicia el sistema después de una falla, se establezca que transacciones

deberán anularse y cuales deberán repetirse.

Page 13: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 13 de 28

13. ¿Cuales son los pasos del algoritmo para identificar las transacciones a anular y a repetir? ... ...

14. ¿Cuáles son las fallas que puede presentarse en el sistema? a) fallas locales. Afecta a una sola transacción como por ejemplo, un

problema de desborde en la misma.

b) fallas globales. Afecta a todas las transacciones que se estaban efectuando en el

momento de la falla.

15. ¿Cuáles son las categorías de las “fallas globales”? a) Fallas del sistema. Por ejemplo, corte de la electricidad. Daña a todas las

transacciones que se estaban efectuando pero no daña a la base de datos.

b) Fallas de los medios de almacenamiento. Daño en el disco duro por aterrizaje

de las cabezas, lo que puede dañar cuando menos a una parte de la base de datos y por

supuesto a las transacciones que se estaban efectuando.

12. ¿Cómo se efectúa la recuperación en las fallas del sistema?

Cuando el sistema se reinicia algunas transacciones deberán anularse y otras deberán

realizarse nuevamente. Para ello, el sistema utilizará a la Bitácora en donde se registra las

transacciones que se estaban realizando en el momento de establecerse el “punto de

revisión”.

16. ¿Cómo se efectúa la recuperación en las fallas de los medios de almacenamiento? Cuando se destruye físicamente (en el disco duro, o cinta) alguna porción de la base de datos, la

recuperación implica cargar de nuevo (restaurar) la base de datos a partir de una copia de

respaldo y después utilizar la bitácora para realizar de nuevo todas las transacciones terminadas

desde que se hizo esa copia de respaldo.

17. ¿En que consiste un problema de Concurrencia? Es una situación en la cual una transacción, aunque correcta en sí, puede producir de todos

modos un resultado incorrecto debido a la interferencia por parte de alguna otra transacción.

Page 14: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 14 de 28

18. ¿Cuales son los tres problemas de Concurrencia? a) El problema de la modificación perdida. b) El problema de la dependencia no comprometida. c) El problema del análisis inconsistente. (no se estudiará)

19. ¿En que consiste el problema de la Modificación perdida? Cuando la transacción B graba su registro modificado encima del registro modificado por A

sin verlo siquiera.

En detalle, en un principio, dos transacciones “A” y “B” leen correctamente el valor

de un registro, pero luego, “A” modifica el valor y a continuación “B” también modifica dicho

registro sin considerar que el valor del registro ya no corresponde a lo que inicialmente leyó.

20. ¿En que consiste el problema de la dependencia no comprometida? Cuando una transacción (A) habrá visto datos que ya no existen (y que en cierto sentido

nunca existieron).

En detalle, Cuando se permite a una transacción (A) leer o modificar con datos

modificados por otra transacción (B) pero que aun no son datos definitivos (no se han

“comprometido”), porque sí la transacción “B” vuelve a modificar dicho registro en cuyo caso

la transacción “A” trabaja con datos que ya no existen.

21. ¿Qué es el BLOQUEO? Es la seguridad que una transacción adquiere de que un registro de la base de datos no

cambiará sin que ella se dé cuenta. Se bloquea el acceso a otras transacciones.

22. ¿Cuáles son los dos tipos de Bloqueos? a) Bloqueos compartidos (bloqueos S). (Se solicita cuando se lee – se copia- un dato) b) Bloqueos exclusivos (bloqueos X). (Se solicita cuando se va a actualizar)

23. ¿Qué efecto tiene el bloqueo exclusivo X? Si una transacción A tiene un bloqueo exclusivo (X) sobre un registro, una solicitud por parte

de la transacción B de cualquier tipo de bloqueo (S o X) hará que B entre en un estado de

espera hasta que se libere el bloqueo.

Page 15: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 15 de 28

24. ¿Qué efecto tiene el bloqueo compartido (S)? Si una transacción A tiene un bloqueo compartido (S) sobre un registro:

a) Una solicitud por una transacción B de bloqueo X sobre el registro hará que B entre en un estado de espera.

b) Una solicitud por una transacción B de bloqueo S sobre el registro será concedida.

25. Dibuje la “Matriz de compatibilidad”

transacción A

trans. X S -

B X no no si

S no si si

- si si si

26. ¿Que es el bloqueo mutuo? Es una situación en la cual dos o más transacciones están en un estado de espera simultáneo,

y cada una espera la liberación de un bloqueo por parte de la otra para poder continuar.

27. ¿Cómo se resuelve el problema de la modificación perdida? (Vea definición del problema) Cuando la transacción A quiere actualizar (modificar) el

registro solicita un bloqueo X, dicho bloqueo no procede porque no es compatible con el

bloqueo S que anteriormente puso la transacción B, por lo que A entra en espera ... Por otra

parte, B solicita un bloqueo X para actualización, el cual tampoco procede debido al bloqueo

S que anteriormente había impuesto A, y B también entra en espera ... la solución es que no

se pierde ninguna modificación pero hay bloqueo mutuo o candado mortal.

28. ¿Cómo se resuelve el problema del bloqueo mutuo o candado mortal? El sistema elige como víctima a una de las transacciones y a la otra le permite continuar. La

transacción víctima posteriormente tendrá que rehacerse.

Nota: el – significa que no hay

bloqueo.

Esta matriz refleja lo mismo ya

expresado anteriormente con los

efectos de los bloqueos.

Page 16: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 16 de 28

29. ¿Cómo se resuelve el problema de la dependencia no comprometida? Para evitar que una transacción (A) use datos que aun no terminan de ser actualizados por

otra transacción (B) se usan los bloqueos, así una transacción (B) que actualice (modifique)

un registro le asigna bloqueo X (bloqueo exclusivo) siendo así, la otra transacción (A) deberá

esperar hasta que se libere el dato para que pueda a la vez aplicar su propio bloqueo.

El hecho de “liberar” el dato se le llama “comprometer” y significa que el dato ya es

correcto.

Page 17: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 17 de 28

UNIDAD 3 - Seguridad e Integridad.

1. ¿Cuál es la diferencia entre “Seguridad” e “Integridad”? Seguridad se refiere a la protección de los datos contra una revelación, alteración o

destrucción no autorizada (protege a la BD contra usuarios no autorizados); Integridad se

refiere a la exactitud de los datos o validez de los datos (protege a la BD de usuarios

autorizados).

2. Mencione algunas consideraciones generales sobre la Seguridad a) Aspectos legales, sociales y éticos. Ejemplo: tenemos derecho legal de obtener la

información solicitada a un cliente de crédito. b) Controles físicos. Ejem. Deberá estar cerrado el cuarto de las computadoras o

terminales. c) Cuestiones de política interna. Ejem. ¿Cómo decide la empresa quién puede tener

acceso a que?. d) Problemas de operación. Ejem. Si se utiliza un sistema de contraseñas, ¿Cómo se

mantienen en secreto? ¿Con que frecuencia se cambian? e) Controles del equipo. Ejem. ¿Posee la CPU características especiales de seguridad

como claves de protección a las áreas de almacenamiento? f) Seguridad del sistema operativo. Ejem. ¿borra el sist. op. el contenido de las áreas de

memoria y archivos cuando ya no se necesitan?

3. ¿Con qué características cuenta el SQL en materia de seguridad? a) El mecanismo de vistas (View) b) El subsistema de autorización (Grant y Revoke)

4. ¿Qué es el mecanismo de Vistas en SQL? Es un mecanismo que hace posible dividir conceptualmente a la BD en fragmentos de distinta

manera con objeto de ocultar información confidencial a usuarios no autorizados, es decir,

solo se visualiza un subconjunto de la BD.

5. ¿Qué es el subsistema de autorización en SQL?

A diferencia del mecanismo de vistas, el subsistema de autorización permite especificar las

operaciones que los usuarios autorizados pueden ejecutar con fragmentos de la BD. Esa

función la realizan las proposiciones GRANT (conceder) y REVOKE (revocar).

Page 18: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 18 de 28

6. ¿Qué son las restricciones de autorización? Son las decisiones sobre cuáles derechos deben concederse a cuáles usuarios, las cuales se

dan a conocer al sistema con las proposiciones GRANT (conceder) y REVOKE (revocar) y el

sistema las guarda en su catalago.

7. ¿Qué es una “solicitud de acceso”? Es la combinación de operación solicitada más objeto solicitado más usuario solicitante. Por

ejemplo, operación: update = actualizar; objeto: campo ‘nom’ de la tabla x; usuario: Rosy. Las

solicitudes de acceso se verifican contra las restricciones de autorización aplicables.

8. Mencione los términos básicos para el manejo de ‘Vistas’ y ‘Autorización’ en SQL?

1) SELECT = Seleccionar

2) UPDATE = Modificar

3) GRANT = Conceder

4) REVOKE = Revocar

5) SYSTABLE = Tabla reservada (catalogo)

6) USER = Usuario (el actual)

7) SYSADM = Todos los derechos

8) DELETE = Eliminar

9) INSERT = Insertar

10) AVG = Se obtiene el promedio

11) PUBLIC = Todos los usuarios

12) ALL = Todos los permisos

13) CHECK = Verifica

14) IS_INTEGER = ¿Es entero? (el contenido de una cadena de caracteres)

15) NUM = A numero (una cadena de caracteres que representa un

numero toma realmente valor numerico)

Page 19: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 19 de 28

16) ALTER TABLE = Alterar tabla 17) CREATE INDEX = Crear indice

18) WITH GRANT OPTION = Permito para otorgar permiso

9. ¿Qué es la operación SYSADM? Es una autorización especial que cuando se instala el DB2 por primera vez, otorga al

administrador del sistema todos los derechos para realizar todas las operaciones.

10. ¿Qué derechos son aplicables tanto a las tablas base como a las Vistas? SELECT (seleccionar)

UPDATE (actualizar)

DELETE (eliminar)

INSERT (insertar)

11. ¿Qué derechos se aplican sólo a las tablas base? ALTER TABLE (alterar tabla)

CREATE INDEX (crear indice)

12. En situaciones donde los datos son muy delicados o críticos que procedimientos deben seguirse

a) Un seguimiento de auditoria, que registre datos como: operación, terminal, usuario, fecha y hora, tabla , registro afectado, valor anterior y nuevo del campo afectado.

b) Guardar y/o transmitir los datos en forma codificada.

13. ¿Con qué características cuenta el SQL en materia de Integridad? Un Lenguaje de Integridad (hipotético) que se compone de 2 proposiciones:

a) CREATE INTEGRITY RULE (crear regla de integridad) b) DROP INTEGRITY RULE (desechar regla de integridad)

Nota: Recordar que la Integridad busca proteger a la BD de los usuarios ya autorizados (ya hay

seguridad) pero que ahora se requiere que generen información valida o correcta para la BD.

Page 20: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 20 de 28

14. ¿Qué es una restricción de Integridad? Puede considerarse como una condición que debe ser todos los estados correctos de la base

de datos.

Por ejemplo, no puede haber un mes 13, o un día 40 etc. y otras situaciones no tan obvias pero

que si son necesarias para el entorno de la base de datos, Por ejemplo: que el campo “situación”

de la tabla “s” sea positivo

( CHECK S.SITUACION > 0).

15. ¿Qué es QUEL? Es un lenguaje que a diferencia de SQL, QUEL no aprovecha las “Vistas” (VIEW) para la

observancia de la seguridad, en vez de ello, toda solicitud de un usuario se modifica de

manera automática (y silenciosa) antes de la ejecucion para cuidar las restricciones de

seguridad. (pag. 433)

16. De acuerdo a lo estudiado, cual sería la clasificación de “seguridad” e “integridad” abarcando SQL y QUEL

SEGURIDAD

INTEGRIDAD

SQL: a) Create view (creación de vistas)

b) Grant (conceder), Revoke (revocar)

QUEL: Estrategia de modificación de consultas.

SQL: Leng. de Integridad Hipotético:

a) Create Integrity Rule b) Drop Integrity Rule

QUEL: Estrategia de modificación de consultas.

(otra vez)

QUEL: Estrategia de modificación de consultas.

Page 21: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 21 de 28

PROBLEMAS DE SQL

CREAR VISTAS (Seguridad)

1. Crear una vista de nombre “Prov_paris” con los campos snom, situacion, ciudad de la tabla S cuando la ciudad es Paris.

2. Mismo problema anterior, sólo que este tiene acceso a todos los registros pero no a situación.

3. Crear una vista con el nombre “Mis_tablas” para un usuario que se le permite el acceso sólo a las filas del catalago correspondiente a las tablas de las cuales es dueño.

Respuestas:

1. CREATE VIEW Prov_paris AS SELECT S#, snom, situacion, ciudad

FROM S

WHERE ciudad=”paris”;

2. CREATE VIEW Prov_nom_ciud //El nombre puede ser cualquiera// AS SELECT S#, snom, ciudad

FROM S; //Si hay acceso a todos los registros,

entonces no hay condicion (where)//

3. CREATE VIEW Mis_tablas AS SELECT * //Acceso a todos los campos (fila completa)

FROM SYSTABLES // Tabla reservada = catalogo //

WHERE CREATOR = USER; // Donde el creador es el mismo usuario actual//

Page 22: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 22 de 28

CREAR PERMISOS Y REVOCACIÓN (Seguridad)

1. Permiso de Selección sobre la tabla S a Carlos 2. Permiso de Selección y Modificación sobre los campos situación y ciudad de la tabla S

a Juan y Maria. 3. Concede todos los permisos sobre las tablas S y P a Juan y Lupe 4. Se concede selección sobre la tabla P a todos los usuarios 5. Permiso de crear tabla indice sobre la tabla S a Felipe 6. Se revoca selección sobre la tabla S a Carlos 7. Se revoca selección y borrado sobre la tabla SP a Elena y Juan

Respuestas:

1. GRANT SELECT ON TABLE S TO CARLOS;

2. GRANT SELECT, UPDATE (SITUACION, CIUDAD) ON TABLE S TO JUAN, MARIA;

3. GRANT ALL ON TABLE S, P TO JUAN, LUPE;

4. GRANT SELECT ON TABLE P TO PUBLIC;

5. GRANT INDEX ON TABLE S TO FELIPE;

6. REVOKE SELECT ON TABLE S FROM CARLOS;

7. REVOKE SELECT, DELETE ON TABLE SP FROM ELENA, JUAN;

Page 23: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 23 de 28

CREAR PERMISOS Y REVOCACIÓN DEL DERECHO DE CONCEDER AUTORIZACIÓN (Seguridad)

1. Otorgar el permiso de Seleccionar y de otorgar permiso del usuario U1 al U2 y de U2 a U3.

2. El usuario U1 revoca el permiso otorgado a U2 (por lo que por efecto ‘cascada’ U3 pierde también el permiso)

Respuestas:

1. Usuario U1: GRANT SELECT ON TABLE S TO U2 WITH GRANT OPTION;

Usuario U2:

GRANT SELECT ON TABLE S TO U3 WITH GRANT OPTION;

2. Usuario U1: REVOKE SELECT ON TABLE S FROM U2;

Page 24: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 24 de 28

CREAR RESTRICCIONES DE INTEGRIDAD (Lenguaje de Integridad)

1. Los valores del campo “situacion” de la tabla S deben ser positivos. (Respuesta detallada y simplificada).

2. Integridad para la fecha (dia,mes,año).

3. Los valores de “situación” (de la tabla S) nunca deben disminuir.

4. El valor promedio de “situacion” debe ser mayor que 25.

5. Desechar la regla de integridad “R4”

Respuestas:

1. a) CREATE INTEGRITY RULE R1

ON INSERT S.SITUACION,

UPDATE S.SITUACION :

CHECK FORALL S (S.SITUACION > 0)

ELSE REJECT;

// Lectura: Se crea la regla de integridad R1

Ante una situacion de insercion, actualizacón

en el campo s.situacion:

verifica “para toda S” s.situacion >0

De lo contrario rechaza; //

Page 25: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 25 de 28

b) CREATE INTEGRITY RULE R1

CHECK S.SITUACION > 0 // Checa que s.situacion sea > a 0 //

2. CREATE INTEGRITY RULE R2 CHECK IS_INTEGER (SP.AÑO)

AND IS_INTEGER (SP.MES)

AND IS_INTEGER (SP.DIA)

AND NUM (SP.AÑO) BETWEEN 0 AND 99 // Between = entre //

AND NUM (SP.MES) BETWEEN 1 AND 12

AND NUM (SP.DIA) > 0

AND IF NUM (SP.MES) IN (1,3,5,7,8,10,12)

THEN NUM(SP.DIA) < 32

AND IF NUM (SP.MES) IN (4,6,9,11)

THEN NUM(SP.DIA) < 31

AND IF NUM (SP.MES) = 2

THEN NUM(SP.DIA) < 30

AND IF NUM (SP.MES) = 2 AND NUM(SP.AÑO) < > 0 AND

MOD ( NUM(SP.AÑO), 4) = 0

THEN NUM(SP.DIA) < 29;

3. CREATE INTEGRITY RULE R3 BEFORE UPDATE OF S.SITUACION FROM NUEVA_SIT:

CHECK NUEVA_SIT > S.SITUACION;

Page 26: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 26 de 28

4. CREATE INTEGRITY RULE R4

CHECK IF EXIST S() THEN AVG (S.SITUACION) > 25;

5. DROP INTEGRITY RULE R4;

PROBLEMAS DE QUEL

A) RESTRICCIONES DE SEGURIDAD

1. De la sintaxis de la restricción de seguridad en QUEL

2. De la sintaxis de destruir permiso en QUEL

Respuestas:

1. DEFINE PERMIT Operación(es) //Ejemplos de posibles operaciones: RETRIEVE = select (sql) = recuperar.

REPLACE = update (sql) = actualizar //

ON TABLA (campo1, campo2, etc)

TO USUARIO

AT TERMINAL(ES)

FROM HORA1 TO HORA2

ON DIA1 TO DIA2

WHERE (Condicion)

2. DESTROY PERMIT TABLA No_identificador // ’No_identificador’ lo da el sist.

Page 27: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 27 de 28

B) CREAR INTEGRIDAD EN QUEL

1. De la sintaxis de cómo crear Integridad

2. De la sintaxis de cómo destruir (quitar) integridad

Respuestas:

1. DEFINE INTEGRITY ON TABLA

IS CONDICION

2. DESTROY INTEGRITY TABLA No_identificador

Nota: Para aplicación de estas sintaxis de QUEL vea ejemplos en la pag. 434 y 435.

Page 28: Bases de Datos II - M.C. Enrique Ruiz Díaz

Bases de Datos II, por M.C. Enrique Ruiz Díaz.

Go to: https://sites.google.com/site/mccenriqueruizdiaz/ Página 28 de 28

Invitation.

La Bandera de los Estados Unidos Mexicanos.

Visit: https://sites.google.com/site/mcenriqueruizdiaz/

Also: http://sites.google.com/site/enriqueruizdiaz/

Get Instruments of Training for you.