viernes, 8 de marzo de 2013

Actividad #15 & #16

PARTICIONES
Cuando hablamos de particiones estamos hablando de dividir un disco duro en varias partes, cada una de las cuales se comportará como si fuera un disco duro independiente de los demás. L os sistemas operativos no trabajan con unidades físicas directamente, sino con unidades lógicas que reciben el nombre de particiones. Por regla general al instalar un nuevo sistema operativo una sola partición ocupará toda la superficie del disco. Sin embargo, es muy interesante tener más de una partición para, por ejemplo, hacer una copia de seguridad de nuestros datos. Para ello, el sistema operativo simula un segundo disco aunque físicamente solo dispongamos de uno.

Las particiones pueden ser de dos tipos:
1.     Partición primaria. Es la partición desde la que puede arrancar el sistema operativo. Para que esto sea posible, esta partición debe estar marcada como partición activa.

2.     Partición extendida. Es la p artición que no puede contener los archivos necesarios para arrancar el sistema y que puede ser subdividida en unidades lógicas. Este tipo de particiones sirven para guardar ficheros. En esta partición extendida se crean las unidades lógicas.

SISTEMA DE ARCHIVOS Un sistema de archivos es una estructura que permite tanto el almacenamiento, organización jerárquica, manipulación, navegación, acceso y consulta de datos de en una partición, como su modificación y recuperación.
Para que una partición pueda ser utilizada, es necesario asignarle previamente un sistema de archivos. Esta operación se denomina dar formato a una partición .
Normalmente, cada sistema de archivos ha sido diseñado para obtener el mejor rendimiento de un sistema operativo concreto, pero sin embargo, es muy normal que un sistema operativo reconozca varios tipos de sistemas de archivos.

Los sistemas de archivos más comunes:
FAT (File Allocation Table, tabla de asignación de archivos)
Este sistema de archivos se basa en un índice en el que se hace referencia a los datos que hay en un disco duro, y a la situación de los mismos.

Este sistema es compatible con la mayoría de sistemas operativos, pero también posee una serie de limitaciones como por ejemplo que el tamaño máximo de la partición es de 2 GB, que solo admite nombres de archivos cortos, una elevada fragmentación de los archivos debido a un tamaño del cluster demasiado grande, etc. Es el sistema de archivos típico de DOS.
VFAT (Virtual FAT)
Este sistema de archivos es una mejora del anterior con el que se logra ampliar el límite de los nombres de archivos y directorios de 8 a 255 caracteres entre el nombre y la extensión.

FAT32 (FAT de 32 bits)
Nos permite trabajar con particiones mayores de 2 GB. Además, el tamaño del cluster es mucho menor, con lo que la fragmentación de los archivos disminuye, el sistema no se ralentiza tanto y no se desperdicia tanto espacio como ocurría en las particiones FAT.

Este sistema de archivos lo podemos encontrar en Windows95 (no en sus primeras versiones) pero sobre todo a partir de Windows 98, por lo que hay que tener en cuenta que versiones anteriores de Windows y MS-DOS no pueden acceder a los datos almacenados en una partición FAT32.
NTFS (New Technology File System, sistema de archivos de nueva tecnología)
Este es el sistema de archivos nativo de Windows NT, que además de ser muy eficiente y robusto, permite controlar el acceso a archivos o directorios utilizando todas las características de seguridad y protección de archivos de Windows NT. NTFS es recomendable para particiones grandes, ya que las estructuras del sistema consumen gran cantidad de espacio. Además, podemos definir el tamaño del cluster a partir de 512 bytes (tamaño de un sector) de forma independiente al tamaño de la partición. De esta manera se evita la fragmentación y hay un menor desaprovechamiento del disco, lo que hace de este sistema de archivos el sistema ideal para las particiones de gran tamaño requeridas en ordenadores de gran capacidad y servidores.

Es el sistema de archivos empleado en Windows NT, Windows 2000, Windows XP y Windows 2003.
HPFS (High Performance File System, sistema de archivos de alto rendimiento)
Es el sistema de archivos propio de OS/2. Utiliza una estructura muy eficiente para organizar los datos en las particiones, ya que no utiliza clusters, sino que directamente los organiza en sectores del disco (que equivalen a un cluster de 512 bytes).

EXT2 (second extended filesystem o "segundo sistema de archivos extendido")
Es un sistema de archivos mucho más avanzado que el FAT de windows. Este sistema de archivos tiene soporte de corrección y detección de errores, compresión de archivos, menor fragmentación de los archivos y una velocidad de acceso a los datos muy superiores, aunque para ello tiene que utilizar más memoria.
El ext2 tiene una unidad similar al cluster, llamada bloque, y que es, por lo general de 1K, independiente del tamaño de la partición y con un tamaño que puede ser modificado por el usuario, lo cual asegura un aprovechamiento eficaz del espacio libre con archivos pequeños.

Ext3 ( third extended filesystem o "tercer sistema de archivos extendido") Es una versión mejorada de ext2 en la que se incorpora un registro por diario (en inglés journaling), que se utiliza para mantener la consistencia en el sistema.

EXT3 posee una serie de mejoras con respecto a EXT2 como por ejemplo:

·         Permite migrar del sistema de archivos EXT2 sin necesidad de reformatear el disco.

·         Puede ser montado y usado como un sistema de archivos EXT2.

·         Proporciona una integridad superior de los datos si se produce un cierre incorrecto del sistema.

·         El registro por diario permite optimizar el movimiento de los cabezales de los discos duros aumentando la velocidad de escritura/lectura de los datos.


BITACORA
QUE ES UNA BITÁCORA:
Herramienta que permite registrar, analizar, detectar y notificar eventos que sucedan en cualquier sistema de información utilizado en las organizaciones. La estructura más ampliamente usada para grabar las modificaciones de la base de datos.
Una bitácora permite guardar las transacciones realizadas sobre una base de datos en específico, de tal manera que estas transacciones puedan ser auditadas y analizadas posteriormente.
Pueden obtenerse datos específicos de la transacción como son la Operación que se realizo, el Usuario de BD y Windows, Fecha, Maquina y Programa.
BENEFICIOS
·         No se requiere hacer cambios en los sistemas de producción para la implementación de la bitácora.
·         A través de la parametrización se generan las pantallas de consulta y reportes sin necesidad de programar.
·         Acceso a la bitácora a través de una aplicación WEB.
·         Control de Acceso a la información de la bitácora a través de Roles.
·         Se puede implementar en los sistemas de información que utilicen las principales bases de datos del mercado:
·         ORACLE, SQL SERVER,
·         INFORMIX, SYBASE.
·         Permite hacer el seguimiento de todos los cambios que ha tenido un registro.
·         Registra información acerca de eventos relacionados con el sistema que la genara.
·         Reduce riesgos operacionales por cambios no autorizados.
·         Se envían alertas cuando se realizan cambios a la configuración del sistema, permitiendo corregir a tiempo malas configuraciones.
·         Permite dar el seguimiento a cada una de las alertas generadas de acuerdo a los parámetros establecidos por el usuario.
La estructura más ampliamente usada para grabar las modificaciones de la base de datos es la Bitácora.
Cada registro de la bitácora escribe una única escritura de base de datos y tiene lo siguiente:
  1. Nombre de la transacción: Nombre de la transacción que realizó la operación de escritura.
  2. Nombre del dato: El nombre único del dato escrito.
  3. Valor antiguo: El valor del dato antes de la escritura.
  4. Valor nuevo: El valor que tendrá el dato después de  la escritura.
Existen otros registros de bitácora especiales para grabar sucesos importantes durante el proceso de transacción tales como :
< T1, inicio >
< T1, x, v1, v2 >
< T1, commit >
Es fundamental que siempre se cree un registro en la bitácora cuando se realice una escritura antes de que se modifique la base de datos.
También tenemos la posibilidad de deshacer una modificación que ya se ha escrito en la base de datos, esto se realizará usando el campo del valor antiguo de los registros de la bitácora.
Los registros de la bitácora deben residir en memoria estable como resultado el volumen de datos en la bitácora puede ser exageradamente grande.
Una bitácora puede registrar mucha información acerca de eventos relacionados con el sistema que la genera los cuales pueden ser:
  • Fecha y hora.
  • Host origen.
  • Usuario.
  • Actividad realizada.
La importancia de las bitácoras es la de recuperar información ante incidentes de seguridad, detección de comportamiento inusual, información para resolver problemas, evidencia legal, es de gran ayuda en las tareas de cómputo forense.
TIPOS DE BITACORA
}  El sistema guarda diferentes tipos de registros en la bitácora,  dependiendo del evento ocurrido en la BD.
}  Por ejemplo:
}  Un “registro de actualización” describe una escritura única en la BD y tiene los campos:
      ID_Transacción.
      ID_elemento_datos.
      Valor anterior.
      Valor nuevo.
}  Otros registros indican eventos especiales como: inicio de transacción, éxito o fracaso de la misma. Una posible vista de la bitácora puede ser:

EJEMPLO EN MYSQL
Ejemplo de una bitácora desarrollada para la siguiente base de datos de MySQL, llamada proyecto, que tiene las tablas carrera, departamento y maestros.
CREATE DATABASE proyecto;
USE proyecto
CREATE TABLE IF NOT EXISTS `carrera` (`clave_carrera` int(11) NOT NULL, `nom_carrera` varchar(20) NOT NULL, `num_depto` int(11) NOT NULL, PRIMARY KEY (`clave_carrera`), KEY `num_depto` (`num_depto`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `departamento` ( `num_departamento` int(11) NOT NULL,`nombre_dept` varchar(20) NOT NULL, `jefe_num_tarjet` int(11) NOT NULL, PRIMARY KEY (`num_departamento`), KEY `jefe_num_tarjet` (`jefe_num_tarjet`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `maestros` (`num_tarjeta` int(11) NOT NULL DEFAULT ’0,`nombre` varchar(50) DEFAULT NULL, PRIMARY KEY (`num_tarjeta`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;
La estructura de la tabla bitácora sería la siguiente:
CREATE TABLE IF NOT EXISTS `bitacora` (`id` int(11) NOT NULL AUTO_INCREMENT, `operacion` varchar(10) DEFAULT NULL, `usuario` varchar(40) DEFAULT NULL, `host` varchar(30) NOT NULL, `modificado` datetime DEFAULT NULL, `tabla` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
La bitácora debe registrar todos los movimientos (insertar, eliminar y modificar) que se realicen en las tablas de la base de datos. Para lograr lo anterior es necesario crear un trigger para que se ejecute después de la operación de insertar, otro para después de eliminar y el último para después de modificar para cada una de las 3 tablas de la base de datos. Los nueve triggers necesarios para que funcione la bitácora son los siguientes:
DROP TRIGGER IF EXISTS `bit_carr_ins`;
DELIMITER //
CREATE TRIGGER `bitacora` AFTER INSERT ON `carrera`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “INSERTAR”, NOW(), “CARRERA”)
//
DROP TRIGGER IF EXISTS `bit_carr_upd`;
CREATE TRIGGER `bit_carr_upd` AFTER UPDATE ON `carrera`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ACTUALIZAR”, NOW(), “CARRERA”)
//
DROP TRIGGER IF EXISTS `bit_carr_del`;
CREATE TRIGGER `bit_carr_del` AFTER DELETE ON `carrera`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ELIMINAR”, NOW(), “CARRERA”)
//
DROP TRIGGER IF EXISTS `bit_depto_ins`;
CREATE TRIGGER `bit_depto_ins` AFTER INSERT ON `departamento`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “INSERTAR”, NOW(), “DEPARTAMENTO”)
//
DROP TRIGGER IF EXISTS `bit_depto_upd`;
CREATE TRIGGER `bit_depto_upd` AFTER UPDATE ON `departamento`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ACTUALIZAR”, NOW(), “DEPARTAMENTO”)
//
DROP TRIGGER IF EXISTS `bit_depto_del`;
CREATE TRIGGER `bit_depto_del` AFTER DELETE ON `departamento`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ELIMINAR”, NOW(), “DEPARTAMENTO”)
//
DROP TRIGGER IF EXISTS `bit_mae_ins`;
CREATE TRIGGER `bit_mae_ins` AFTER INSERT ON `maestros`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “INSERTAR”, NOW(), “MAESTROS”)
//
DROP TRIGGER IF EXISTS `bit_mae_upd`;
CREATE TRIGGER `bit_mae_upd` AFTER UPDATE ON `maestros`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ACTUALIZAR”, NOW(), “MAESTROS”)
//
DROP TRIGGER IF EXISTS `bit_mae_del`;
CREATE TRIGGER `bit_mae_del` AFTER DELETE ON `maestros`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ELIMINAR”, NOW(), “MAESTROS”)
//
El resultado que se espera de la bitácora se muestra en la siguiente imagen.
REFERENCIAS
http://recursostic.educacion.es/observatorio/web/ca/equipamiento-tecnologico/hardware/362-eduardo-e-quiroga

No hay comentarios:

Publicar un comentario