sábado, 11 de julio de 2009

¿Cuáles son las diferencias entre un backup consistente y un backup inconsistente?

Nivel de la pregunta: básico - específico a oracle

Un backup consistente es aquel en el que no se necesita aplicar operaciones de redo para dejar los datos consistentes. Todos los archivos de un backup consistente deben cumplir que:
  1. Todos tienen el mismo número de checkpoint en sus cabeceras (mismo SCN).
  2. No contienen cambios que pertenecen a un checkpoint posterior al que llevan en su cabecera.
  3. La información del checkpoint concuerda con la información que se tiene del mismo y que está guardada en el archivo de control de la base de datos.
Un backup inconsistente es aquel que contiene al menos un archivo que no cumple con alguno de los puntos anteriores y que por lo tanto necesita recibir cambios antes de restaurarse. (Por cambios se entienden operaciones de redo y undo)
Para realizar estos cambios es necesario disponer de un backup del log de transacciones de la base de datos.

Ver: Opciones completas de backup en oracle

¿Cuáles son las diferencias entre un backup online y un backup offline

Nivel de la pregunta: básico - específico a oracle
Un backup offline o cold-backup o closed-backup es aquel que se realiza luego de que la base de datos fue cerrada limpiamente, o sea, con todas sus transacciones finalizadas. La unidad de backup es la base de datos.
Un backup online, open-backup o hot-backup es aquel que se realiza cuando la base de datos está en modo operativo. La unidad de backup es el tablespace.

¿Cuáles son las diferencias entre un user-managed backup y un server-managed backup?

Nivel de la pregunta: básico - específico
Definición para Oracle:
Un server-managed backup es aquel que se realiza utilizando herramientas utilitarias de oracle (RMAN) tanto como para salvar los datos como para restaurarlos.
Un user-managed backup se realiza utilizando herramientas del sistema operativo, se copian los datos al lugar deseado y se restauran manualmente.

¿Cuál es la diferencia entre una vista simple y una compleja?

Nivel de la pregunta: básico

Una vista simple es aquella que sólo contiene una tabla base, una compleja se construye de dos o más tablas y pueden contener condiciones de join, clausulas group by y clausulas order by.

viernes, 10 de julio de 2009

¿Se pueden hacer updates en una vista?

Nivel de la pregunta: básico

La respuesta es no porque las vistas no son tablas. Si reformulamos la pregunta a: ¿Se pueden hacer updates a la tabla que genera la vista? la respuesta es sí si se cumplen estas restricciones:
  • Se tiene el permiso de UPDATE sobre la tabla que genera la vista.
  • Una única tabla es la que generó la vista, si la vista es resultado de la unión de dos o más tablas no será posible.

¿Qué es una vista? ¿Cuándo es recomendable hacer una?

Nivel de la pregunta: básico

Esta es una posible respuesta:

Una vista es consulta sql precompilada que se guarda en el diccionario del manejador.
Características que debemos conocer:
  • No contienen datos, los datos se generan cuando la consulta de la vista es ejecutada.
  • Son una buena forma de restringir el acceso de un usuario a las columnas y datos de una tabla. Esta sería una respuesta a ¿cuándo es recomendable usarlas? ... cuando queramos restringir el acceso de un usuario a ciertas columnas o datos de una tabla. Podemos completar más esa respuesta agregando:
  • Las vistas reducen la complejidad de las consultas sql.
Un ejemplo en Oracle para crear una vista generada por las tablas mitabla y tutabla:

CREATE VIEW mivista AS(
SELECT mitabla.col1, mitabla.col2, tutabla.col5, tutabla.col1
FROM mitabla, tutabla
WHERE
mitabla.col1 = tutabla.col1 AND
mitabla.col2 = este_valor);

Un ejemplo en Oracle para otorgar permisos de lectura a un usuario en una vista:

GRANT SELECT ON mivista TO elusuario;

Gran parte de la información fue tomada de: http://www.orafaq.com/wiki/View

Nombra 5 tipos de restricciones en una tabla

Nivel de la pregunta: básico (Es un tema visto en cursos regulares de bases de datos)
Veamos una posible respuesta:
  1. Declaración de claves primarias. (Utilizando primary key)
  2. Declaración de claves alternas. (Utilizando unique)
  3. Integridad referencial (Utilizando foreign keys)
  4. Restricciones en los valores de los atributos (Utilizando check)
  5. Restricciones globales sobre tuplas o relaciones (Utilizando triggers)

Quizz 1

Luego de leer el artículo Interview tips for aspiring junior DBAs de Steve Callas veremos si estás pronto para responder estas preguntas, no porque las respuestas esten allí sino porque debes sentir curiosidad por querer comprobar cuanto sabes sobre los temas que menciona.
Veamos: