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, 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.
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.
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.
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
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
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.
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.
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)
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
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)
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.
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.
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.
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.
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.
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).
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)
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.
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.
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//
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;
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;
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; //
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;
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.
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.
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.