Vous êtes sur la page 1sur 139

UNIVERSIDAD NACIONAL DE SAN MARTIN

FACULTAD DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Sistema Gestor de Base de Datos

Tarapoto 2018 - II
Autores: Ing. Andy Hirvyn Rucoba Reategui
Renato Cruzalegui Cruzalegui
Cesar David Paredes Torres
ÍNDICE pág.

1. Evolución Histórica del Gestor de Base de Datos…………………………………………………………………………………..….3


1.1. Como, Cuando y Donde de Creo………………………………………………………………………………………………..…….4
1.2. Hechos trascendentales(Elaborar una línea de tiempo)…………………………………………………………………………..……4
1.3. Evolución de Versiones, Ediciones (Elaborar una línea de tiempo)……………………………………………………………..……4
1.4. Mejoras hasta la fecha(de la última versión)……………………………………………………………………………………..……5

2. Conociendo el Gestor de Base de Datos………………………………………………………………………………………………..7


2.1. Características Propias del Gestor…………………………………………………………………………………………………….7
2.2. Diferencia frente a otros Gestores…………………………………………………………………………………………………….8
2.3. Demostración del Gestor y sus Herramientas Básicas (Creación de base de datos, Tablas, listas, etc.)
en modo Gráfico y en Comandos SQL…………………………………………………………………………………………………9

3. Diccionario de Datos…………………………………………………………………………………………………………………….22
3.1. Definición de Metadatos, Tipo de Metadatos…………………………………………………………………….…………………..23
3.2. Definición de Diccionario de Datos(Catalogo), Significado, Importancia…………………………………………………………...24
3.3. Que Aplicaciones/Herramientas hacen uso el Diccionario de Datos…………………………………………………………….…...24
3.4. En que consisten los siguientes estándares: ISO/IEC 10027:1990 ISO/IEC 10728:1993…………………………………….…..25
3.5. Trabajo de Demostración del Diccionario de Datos en el Gestor:…………………………………………………………….……..26

4. Integridad en Base de Datos…………………………………………………………………………………………………………….34


4.1. Definición de Integridad, Integridad de Datos………………………………………………………………………………………...34
4.2. Categorías (Integridad de Entidad, de Dominio, Referencial y Definida por el Usuario)……………………...……………………35
4.3. Trabajo de Demostración de la Integridad de los Datos en el Gestor…………………………………………...….….…..…….…..36

5. Seguridad en Base de Datos…………………………………………………………………………………………………………….41


5.1. Definición de Seguridad/ Confidencialidad en Base de Datos……………………………………………………………………….41
5.2. Inicios de Sesión, Usuarios, Roles, Grupos, Funciones en el Servidor, Privilegios……………………………………….…………42
5.3. Autenticación o Autentificación, Políticas de Contraseñas…………………………………………………………………….…..…51
5.4. Trabajo de Demostración de la Seguridad en el Gestor………………………………………………………………………….…..53

6. Migración de Datos………………………………………………………………………………………………………………………63
6.1. Definición de Migración de Datos, Propósito de una migración…………………………………………………………………….63
6.2. Fuentes u Orígenes de Datos………………………………………………………………………………………………….………64
6.3. Etapas Básicas de una Migración de Datos…………………………………………………………………………………………..64
6.4. Proveedores de Acceso a Datos(ADO, OLEDB, ODBC y JDBC)…………………………………………………………………..64
6.5. Herramientas de Migración de Datos…………………………………………………………………………………………………67
6.6. Taller: Demostración de Migración de datos del Gestor hacia Otros Gestores (cree una fuente de datos y
utilizando las herramientas del propio gestor migre los datos al gestor)…………………...………………………………………………69

7. Rendimiento……………………………………………………………………………………………………………………………..97
7.1. Control de Concurrencia………………………………………………………………………………………...…………....………97
7.2. Optimización de Consultas, Heurística, Creación de Índices, Plan de Ejecución de Consultas…………………………………….98
7.3. Estimación de Costos de Procesamiento de consultas………………………………………………………………………………102
7.4. Balanceo de Carga………………………………………………………………………………………………………………...…105
7.5 Tranajo práctico……………………………………………………………………………………………………………………...106

8. Encriptación o Cifrado de Datos ………………………………………………………………………………………………...116


8.1. Criptología, Encriptación de Datos, Definición……………………………………………………………………………………..116
8.2. Métodos de Encriptación, Firmas Digitales…………………………………………………………………………………………116

9. Disponibilidad…………………………………………………………………………………………………………………………..124
9.1. Definición e Importancia de una Disponibilidad…………………………………………………………………………………….124
9.2. Copia de Seguridad (Backups) de una Base de Datos………………………………………………………………………………126
9.3. Técnicas de Recuperación de Datos para la restauración de una base de datos corrupta a un estado previo libre de daños……...126
9.4. Alta Disponibilidad, Estrategias (Ejem. Clustering, Replicación, Otros) depende de cada Gestor cuál de ellos soporte…………..131
9.5. Demostración de las Herramientas de Disponibilidad en el Gestor…………………………………………………………………133
CAPÍTULO 1

Evolución histórica del gestor de base de datos

1.1. Como, cuando y donde se creo

Jim Starkey trabajaba en DEC en su producto “Datatrive network database”. Cuando

tuvo la idea de un sistema que manejara cambios hechos concurrentemente por varios

usuarios. La idea simplificaba dramáticamente los problemas existentes del control de

concurrencia utilizando trancas (locking), los cuales representaban un serio problema

para los nuevos sistemas de base de datos relacionales que se estaban desarrollando en

ese momento. Entonces comenzó a trabajar en el sistema en DEC, pero en ese momento

DEC comenzaba el desarrollo de una base de datos relacional que resultó en el producto

Rdb/VMS. Cuando se enteraron de su proyecto se desató un gran problema, y Starkey

eventualmente decidió desistir. Starkey se enteró que el proveedor de plataformas locales

Apollo Computer buscaba una base de datos para sus máquinas Unix, y accedían a

solventar su desarrollo. Con su apoyo, Starkey formó Groton Database Systems (Groton,

Massachusetts era el lugar donde se encontraban) en 1984 y comenzó a trabajar en lo que

eventualmente sería lanzado como Inter Base en 1986. Apollo sufrió un inconveniente

corporativo y decidió dejar el negocio del software, pero en ese tiempo el producto ya

estaba generando dinero.

Entre 1986 y 1991 el producto fue gradualmente vendido a Ashton-Tate, creadores del

famoso BASE, quienes en ese entonces se encontraban comprando varias compañías de

base de datos con el fin de ampliar su catálogo. La compañía cayó rápidamente y Borland

la compró en 1991, adquiriendo Inter Base como parte del trato.


1.2. Hechos trascendentales

Figura 1: Línea de tiempo de Interbase. Fuente: Elaboración propia.

1.3. Evolución de versiones

1.3.1. CodeGear.

El 14 de noviembre de 2006 el departamento de IDEs y compiladores (Borland

Developer Tools Group) se separó de Borland formando una nueva filial (cuyo único

accionista era Borland), llamada CodeGear. La casa matriz, Borland Software

Corporation, se centrará en herramientas de análisis, diseño y "gestión del ciclo de vida

de la aplicación" (Application Lifecycle Management, ALM).

En mayo de 2008 Borland Software Corporation llegó a un acuerdo para la venta

de CodeGear a Embarcadero Technologies por 23 millones de dólares.


1.3.2. Embarcadero Technologies.

Ahora es comercializado por Embarcadero Technologies y actualmente está en su

versión Inter Base XE3.

1.4. Mejoras hasta la fecha

Donde quiera que sus aplicaciones son, Inter Base es allí. Con InterBase se obtiene

una verdadera flexibilidad entre plataformas y la portabilidad, desde el dispositivo al

servidor, ya través de Android, iOS, Windows, Mac, Linux y Solaris.

1.4.1. IBLite para Android y iOS

Ahora usted puede utilizar como base de datos Inter Base incrustado en sus

aplicaciones móviles Android e iOS! Desarrolla tus aplicaciones con Embarcadero RAD

Studio y fácilmente integrar y conectar con la base de datos IBLite para almacenar datos

de su aplicación. Usted recibe una licencia de despliegue ilimitado libre para IBLite para

Android y iOS con la compra de RAD Studio XE5 o Delphi XE5 con Mobile. O conseguir

IBLite para iOS gratuita con C + + Builder XE5. Eso significa que el coste cero para

desplegar IBLite con sus aplicaciones móviles.

1.4.2. InterBase Togo para Android y iOS

InterBase Togo extiende IBLite para Android y iOS para trabajar con archivos de

bases de datos más grandes (> 100MB) y proporciona un fuerte (AES) de base de datos

y la columna de cifrado, así como una fuerte encriptación de red (SSL). Ideal para

aplicaciones corporativas y aplicaciones donde la seguridad de datos es una necesidad.


1.4.3. La estrecha integración con RAD Studio, Delphi y C + + Builder para

despliegue fluido

Inter Base libre Developer Edition se incluye con RAD Studio, C + + Builder y

Delphi. Con InterBase XE3 usted consigue una fácil implementación de sus aplicaciones

para Android, iOS, Windows y OS X (además de Linux y Solaris con Inter Base XE). Su

base de datos se empaqueta con proyectos RAD así al implementar su proyecto a

cualquier plataforma, InterBase automáticamente conseguirá desplegados con él.

1.4.4. Nuevo controlador ODBC de 64 bits permite una fácil implementación en

plataformas de 64 bits.

InterBase XE3 ofrece nuevos controladores ODBC para 64 bits que le permite

implementar y utilizar InterBase en 64 bits y clientes del servidor. También, incrustar

InterBase con tus aplicaciones de 64 bits ODBC (sólo Windows) y desplegarlo a través

de múltiples plataformas.
CAPÍTULO 2

Conociendo al gestor de base de datos

2.1. Características Propias del Gestor

•Corre en plataformas LINUX, MICROSOFT WINDOWS Y SOLARIS.

•Dispone de transacciones.

•Integridad.

• Posee de un sistema escalable.

2.1.1. Ventajas

• InterBase destaca del resto de los sistemas de bases de datos por su

arquitectura única, basada en versiones.

• Otro de los puntos fuertes de InterBase es su cercanía al estándar de

SQL, sobre todo en la sintaxis de procedimientos almacenados y

triggers.

• Es sumamente fácil programar una base de datos activa en InterBase

y posteriormente adaptar la definición para Oracle.

• El lenguaje de procedimientos y triggers es muy potente, e incluso

supera a Oracle en la facilidad para expresar cláusulas de verificación

check que involucren a varias tablas, y en que los triggers no están

sujetos a los problemas ocasionados en Oracle por las denominadas

“tablas mutantes”.
2.1.2. Desventajas

• Los problemas de InterBase se deben a la misma causa que sus

ventajas: su arquitectura única.

• Es muy sencillo realizar particiones en otros sistemas (Oracle, DB2,

SQL Server, Informix) para aumentar el rendimiento físico de una base

de datos, pero este concepto es difícil de adaptar para InterBase.

• InterBase sí permite que una base de datos se expanda a lo largo de

varios discos, aunque no controla qué tablas van a parar a qué

dispositivo.

2.2. Instalación de Interbase

Para descargar Interbase nos dirigimos hacia la página oficial de descarga.

Imagen 1: Página principal Embarcadero. Fuente: Elaboración propia.


Nos movemos hasta productos y seleccionamos a Interbase

CLICK!

Imagen 2: Ubicación de interbase. Fuente: Elaboración propia.

Luego de hacer click, la página se redireccionará hasta la sección de registro,

donde se ingresará todos los datos que se solicitan, porque de otra forma no se iniciará la

descarga.

CLIC

Imagen 3: Registro de datos web. Fuente: Elaboración propia.


Una vez que se terminó de llenar los datos y hacer click en “comenzar prueba
gratis”, la descarga iniciará y un correo con el serial del producto llegará a la bandeja de
entrada del E-mail colocado en el registro.

Imagen 4: Catálogo de descargas Firefox Fuente: Elaboración propia.

Imagen 5: Correo con serial. Fuente: Elaboración propia.


Una vez terminada la descargar, damos click derecho y clickea en “Extract
Here” para descomprimir al archivo.

Imagen 6: Extraer archivo. Fuente: Elaboración propia.

Aparecerá una serie de archivos y carpetas, pero al único que clickearemos


será al siguiente:

Imagen 7: Icono de instalación. Fuente: Elaboración propia.


Se le da click derecho y lo ejecutamos como administrador.

Imagen 8: Ejecutar como administrador. Fuente: Elaboración propia.


Aparecerá el asistente de instalación, y se dará click en “Install InterBase

2017”

Imagen 9: Asistente de instalación 1. Fuente: Elaboración propia.

Se mostrará un menú de opciones con las herramientas que deseamos

instalar. Si es la primera vez que InterBase se instala, se selecciona todo y damos

en “Install”.

Imagen 10: Opciones de herramientas. Fuente: Elaboración propia.


Esta es la ventana que inicia el proceso de instalación del gestor, le damos

en “Next”.

Imagen 11: Inicio de instalacion. Fuente: Elaboración propia.

Luego de leer los términos y condiciones de uso, aceptamos y le damos en

“yes” para continuar.

Imagen 12: Términos y condiciones. Fuente: Elaboración propia.


En la siguiente ventana se mostrarán las opciones de selección de los

componentes que se instalarán.

Imagen 13: Selección de componentes. Fuente: Elaboración propia.

Lo siguiente es seleccionar la arquitectura con la que se instalará.

Imagen 14: Selección de arquitectura. Fuente: Elaboración propia.


Para ir finalizando, seleccionamos la ubicación de instalación, y una vez

ubicado la damos en “Next”.

Imagen 14: Selección de arquitectura. Fuente: Elaboración propia.

Por último, nos aseguramos que todas las decisiones que tomamos fueron

las correctas, y si lo fue damos click en “Next”.

Imagen 15: Terminando la instalación. Fuente: Elaboración propia.


Empezará la instalación de los ficheros, esperamos hasta la finalización.

Imagen 16: Proceso de instalación. Fuente: Elaboración propia.

Luego se mostrará una ventana donde se solicitará el serial enviado al E-

mail con el que se registró. Ingresamos el serial y continuamos.

Imagen 17: Ingreso de serial. Fuente: Elaboración propia.


Quitamos los check de las opciones para terminar la instalación de

InterBase y, a continuación, se iniciará la instalación de ADO.NET y ODBC driver.

Imagen 18: Ingreso de serial. Fuente: Elaboración propia.


Emergerá el asistente de instalación de ADO.NET y procedemos a

instalarlos.

Imagen 19: Instalando ADO.NET. Fuente: Elaboración propia.


Terminada la instalación del componente anterior emergerá el asistente de

instalación de ODBC driver y procedemos a instalarlos.

Imagen 20: Instalando ODBC driver. Fuente: Elaboración propia.

Cuando todo termine nos dirigimos al buscador de Windows y escribimos

“InterBase Server Manager” y lo iniciamos.

Imagen 21: Buscando Server Manager. Fuente: Elaboración propia.


Se abrirá el panel que controla el servicio de server. Presionamos en “Star”

para iniciar el servicio.

Imagen 22: Panel Server Stopped. Fuente: Elaboración propia.

Una vez que se active, podremos iniciar la consola.

Imagen 23: Panel Server Running. Fuente: Elaboración propia.


Ahora buscamos la consola del gestor, escribimos “IBConsole” y lo

iniciamos.

Imagen 24: Buscando la consola. Fuente: Elaboración propia.

Entonces, hasta aquí ya terminamos todo el proceso de instalación. Lo que

aprecian es la interfaz gráfica de InterBase.

Imagen 25: Interfaz gráfica InterBase. Fuente: Elaboración propia.


CAPÍTULO 3
Diccionario de datos

3.1. ¿Qué son los metadatos?

Los metadatos son una parte vital de una base de datos. Dentro de la base de
datos, hay objetos, que incluyen tablas, vistas e índices. Básicamente, el catálogo del
sistema es un conjunto de objetos, que incluye información que define:

▪ Otros objetos incluidos en la base de datos.


▪ La estructura de la base de datos.
▪ Varias otras piezas vitales de información.

3.1.1. Tipos de Metadatos

TIPO DEFINICION EJEMPLO


Descripción e identificación de
recursos de información

• en el nivel (sistema) local


para permitir la búsqueda
• identificadores únicos
y la recuperación (por
(PURL, Handle);
ejemplo, búsqueda de una
• atributos físicos (medios,
colección de imágenes
condición de las
para encontrar pinturas
dimensiones);
con ilustraciones de
DESCRIPTIVOS • atributos bibliográficos
animales);
(título, autor/ creador,
• en el nivel Web, permite a
idioma, palabras
los usuarios descubrir
clavess).
recursos (por ejemplo,
búsqueda en la Web para
encontrar colecciones
digitalizadas sobre
poesía).

facilitan la navegación y
presentación de recursos rótulos de estructuración
electrónicos como por ejemplo página de
título, tabla de contenidos,
ESTRUCTURALES • proporcionan información capítulos, partes, fe de erratas,
sobre la estructura interna índice, relación con un sub-
de los recursos, objeto (por ejemplo,
incluyendo página, fotografía de un periódico).
sección, capítulo,
numeración, índices, y
tabla de contenidos;
• describen la relación entre
los materiales (por
ejemplo, la fotografía B
fue incluida en el
manuscrito A);
• unen los archivos y los
textos relacionados (por
ejemplo, el ArchivoA es
el formato JPEG de la
imagen de archivo del
ArchivoB).

facilitan la gestión y Datos técnicos tales como


procesamiento de las colecciones tipo y modelo de escáner,
digitales tanto a corto como a resolución, profundidad de
largo plazo bit, espacio de color, formato
de archivo, compresión,
• incluyen datos técnicos fuente de luz, propietario,
sobre la creación y el fecha del registro de derecho
control de calidad; de autor, limitaciones en
ADMINISTRATIVOS
• incluyen gestión de cuanto al copiado y
derechos y requisitos de distribución, información
control de acceso y sobre licencia, actividades de
utilización; preservación (ciclos de
• información sobre acción actualización, migración,
de preservación. etc.).

Tabla 1: Tipos de metadatos.


Fuente: https://www.techopedia.com/definition/22442/system-catalog

3.2. ¿Qué es el diccionario de datos?

Un diccionario de datos es una colección de descripciones de los objetos o


elementos de datos en un modelo de datos para el beneficio de los programadores y
otras personas que necesitan referirse a ellos.
3.2.1. Importancia

Es extremadamente importante para los administradores de bases de datos o para


todos los demás usuarios de bases de datos que deseen comprender la naturaleza y la
estructura de una base de datos. El catálogo del sistema permite mantener el orden, no
solo por los usuarios y el administrador de la base de datos, sino también por el servidor
de la base de datos.

3.3. Aplicaciones/Herramientas que hacen uso el Diccionario de Datos

Herramienta cuyo único propósito es generar documentación a


partir de su esquema de base de datos. Esta herramienta no tiene
ninguna capacidad de edición y solo puede generar una
documentación a partir de los metadatos extraídos de la base de
datos.

Esta herramienta mantiene los datos en un repositorio separado


que le permite reunir y almacenar muchos más metadatos y los
hace independientes en la plataforma de la base de datos.
Proporcionan más funcionalidades: creación avanzada, más
metadatos, diagramas de base de datos.

Esta herramienta almacena metadatos en la base de datos


en sí: en Propiedades extendidas en el caso de SQL Server
o comentarios en el caso de MySQL y Oracle.

Existe una gran categoría de herramientas


que están diseñadas específicamente para el
modelado de datos lógico y físico independiente
del motor. Proporcionan funcionalidades de ingeniería
directa e inversa. Son buenos para crear diagramas ER,
pero mucho más para describir elementos de datos
(crear diccionarios de datos).
3.4. Estándares ISO/IEC 10027:1990 y ISO/IEC 10728:1993

3.4.1. ISO / IEC 10027.

Esta norma internacional especifica una interfaz de servicios que le da a


cualquier programa acceso total a todos los servicios IRDS, a través de cualquier
interfaz externa proporcionada por el idioma en el cual el programa está escrito. El
cuerpo de esta Norma Internacional define la semántica de este interfaz, y también
especifica los enlaces de idioma para ISO Pascal (ISO 7185). Esta Norma Internacional
describe el marco para un número de Normas Internacionales que especifican una
especialización Sistema de información, llamado Recurso de Información Sistema de
diccionario (IRDS). Un IRDS se usa para controlar y documentar los recursos de
información de una empresa. Esta Norma Internacional define los niveles de datos
relevantes a un IRDS. Define las interfaces IRDS que son prescrito por otras Normas
Internacionales en el IRDS familia de estándares. También define los tipos de contenido
de datos que están prescritos por otras Normas Internacionales en el familia.

3.4.2. ISO / CEI 10728

La Norma Internacional ISO / CEI 10728 fue preparada por el Comité Técnico
Conjunto ISO / IEC JTC1, Tecnología de la información, Subcomité SC 21,
Recuperación de información, transferencia y gestión para la interconexión de sistemas
abiertos (OSI).
Esta norma internacional especifica una interfaz de servicios que le da a
cualquier programa acceso total a todos los servicios IRDS, a través de cualquier
interfaz externa cal1 proporcionada por el idioma en el cual el programa está escrito.
3.5. Trabajo de Demostración del Diccionario de Datos en el Gestor

3.5.1. Cree una Base de Datos con al menos 5 tablas relacionadas, 3 Vistas,
3 Procedimientos Almacenados y 2 Disparadores en su Gestor

A continuación, se muestra el script de la creación de la base de datos.

Imagen26: Script de la base de datos. Fuente: Elaboración propia.


También mostramos el script de las vistas, los procedimientos y los
disparadores.

Imagen27: Creación de vistas. Fuente: Elaboración propia.

Imagen28: Creación de triggers. Fuente: Elaboración propia.


Imagen29: Creación de procedimientos. Fuente: Elaboración propia.

3.5.2. Una consulta SQL que muestre las Tablas

Imagen30: Consulta metadata de tablas. Fuente: Elaboración propia.

En las siguientes imágenes se muestra la comparación de resultados de


la consulta en la metadata vs las tablas que se muestran en la interfaz del
gestor.
Imagen31: Resultados consulta metadata de tablas. Fuente: Elaboración propia.

3.5.3. Una consulta SQL que muestre las Vistas

Imagen32: Consulta de procedimientos. Fuente: Elaboración propia.


En las siguientes imágenes se muestra la comparación de resultados de
la consulta en la metadata vs las tablas que se muestran en la interfaz del
gestor.

Imagen33: Resultados consulta de vistas. Fuente: Elaboración propia.

3.5.4. Una consulta SQL que muestre los Procedimientos Almacenados

Imagen34: Consulta de procedimientos. Fuente: Elaboración propia.

En las siguientes imágenes se muestra la comparación de


resultados de la consulta en la metadata vs las tablas que se muestran
en la interfaz del gestor.
Imagen35: Resultados consulta procedimientos. Fuente: Elaboración propia.

3.5.5. Una consulta SQL que muestre los Disparadores

Imagen36: Consulta de triggers. Fuente: Elaboración propia.

En las siguientes imágenes se muestra la comparación de


resultados de la consulta en la metadata vs las tablas que se muestran
en la interfaz del gestor.

Imagen37: Resultados consulta de triggers. Fuente: Elaboración propia.

3.5.6. Una consulta SQL que muestre las Llaves Foráneas

Imagen38: Consulta de llaves foráneas. Fuente: Elaboración propia.


En las siguientes imágenes se muestra la comparación de
resultados de la consulta en la metadata vs las tablas que se muestran
en la interfaz del gestor.
Imagen39: Resultado consulta de llaves foráneas. Fuente: Elaboración propia.

3.5.7. Una consulta SQL que muestre las Llaves Primarias

Imagen40: Consulta de llaves primarias. Fuente: Elaboración propia.

Imagen41: Resultado consulta de llaves primarias. Fuente: Elaboración propia.

3.5.8. Una consulta SQL que muestre las Definiciones de SQL de Vistas,
Procedimientos Almacenados, Disparadores.

Imagen42: Consulta definiciones. Fuente: Elaboración propia.


A continuación, se muestra el resultado de la consulta, evidenciando las
relaciones de los procedimientos con los disparadores.

Imagen43: Resultados consulta definiciones. Fuente: Elaboración propia.

3.5.9. Una consulta SQL que muestre una lista de los campos de una de las
tablas creadas con sus respectivos tipos de datos y tamaños.

Imagen44: Consulta de campos. Fuente: Elaboración propia.


A continuación, se muestra el resultado de la consulta, evidenciando las
relaciones de los procedimientos con los disparadores

Imagen45: Resultados consulta de campos. Fuente: Elaboración propia.


CAPÍTULO 4

Integridad en base de datos

4.1. Definición de integridad

Integridad se refiere a los elementos que no pueden ser modificados por medidas

externas que no son autorizadas para el manejo de éstos. En otras palabras, es una

característica que protege la calidad de los elementos ante posibles errores ante su mala

manipulación.

4.1.1. Integridad de datos.

La integridad de los datos es la garantía de que la información digital no está

corrompida y solo pueden acceder o modificarla las personas autorizadas para hacerlo.

La integridad implica mantener la consistencia, precisión y confiabilidad de los datos

durante todo su ciclo de vida.

Para mantener la integridad, los datos no deben cambiarse en tránsito y deben

tomarse medidas para garantizar que los datos no puedan ser modificados por una persona

o programa no autorizado. Tales medidas incluyen la implementación de controles de

acceso de usuarios y el control de versiones para evitar cambios erróneos o la eliminación

accidental por parte de usuarios autorizados.

Otras medidas incluyen el uso de sumas de comprobación y sumas de

comprobación criptográficas para verificar la integridad. Las medidas de administración

de la red para garantizar la integridad de los datos incluyen la documentación de los

procedimientos de administración del sistema, los parámetros y las actividades de


mantenimiento, y la creación de planes de recuperación de desastres para situaciones

como cortes de energía, fallas en el servidor o ataques de seguridad. En caso de que los

datos se corrompan, las copias de seguridad o las redundancias deben estar disponibles

para restaurar los datos afectados a su estado correcto.

También se deben tomar medidas para garantizar la integridad mediante el control

del entorno físico de los terminales y servidores conectados en red, ya que la consistencia,

la precisión y la confiabilidad de los datos también pueden verse amenazadas por peligros

ambientales como el calor, el polvo o los problemas eléctricos. Deben existir algunos

medios para detectar cualquier cambio en los datos que pueda ocurrir como resultado de

eventos no causados por el hombre, como un pulso electromagnético (EMP) o un fallo

del servidor. Las prácticas seguidas para proteger la integridad de los datos en el entorno

físico incluyen mantener los medios de transmisión (como cables y conectores) cubiertos

y protegidos para garantizar que no puedan ser detectados, y proteger el hardware y los

medios de almacenamiento de sobrecargas de energía, descargas electrostáticas y

magnetismo.

4.2. Categorías

En el mundo de la base de datos, la integridad de los datos a menudo se

coloca en los siguientes tipos:

• Integridad de la entidad

• Integridad referencial

• Integridad de dominio

• Integridad definida por el usuario


4.2.1. Integridad de entidad

La integridad de la entidad define que cada fila sea única dentro de su tabla. No

hay dos filas iguales. Para lograr esto, se puede definir una clave principal. El campo de

clave principal contiene un identificador único o sea no hay dos filas que puedan contener

el mismo identificador único.

4.2.2. Integridad de dominio

La integridad del dominio se refiere a la validez de las entradas para una columna

determinada. Seleccionar el tipo de datos apropiado para una columna es el primer paso

para mantener la integridad del dominio.

Otros pasos podrían incluir la configuración de restricciones y reglas apropiadas

para definir el formato de datos o restringir el rango de valores posibles de entrada.

4.2.3. Integridad referencial

La integridad referencial se refiere a las relaciones. Cuando dos o más tablas

tienen una relación, debemos asegurarnos de que el valor de la clave externa coincida con

el valor de la clave primaria en todo momento.

No queremos tener una situación en la que un valor de clave externa no tenga un

valor de clave primaria en la tabla con la que está relacionada. Esto daría como resultado

un registro huérfano.
4.2.4. Integridad definida por el usuario

La integridad definida por el usuario le permite al usuario aplicar reglas comerciales

a la base de datos que no están cubiertas por ninguno de los otros tres tipos de integridad

de datos.

4.3. Trabajo de demostración de la integridad de los datos en el gestor

4.3.1. Cree una base de datos y con un ejemplo indique de qué manera el
gestor de base de datos aplica cada una de las categorías de integridad.

Primero creamos una base de datos donde podamos trabajar, en esta ocasión,

creamos la base “Integrity”.

Imagen46: Icono base de datos Integrity. Fuente: Elaboración propia.

A continuación, creamos las tablas para nuestra base de datos.

Imagen47: Script de datos Integrity. Fuente: Elaboración propia.


El siguiente diagrama muestra la relación entre las tablas considerando el tipo y
tamaño de dato.

Diagrama 1: Diagrama entidad relación de la base de datos. Fuente: Elaboración propia.

4.3.1.1. Integridad de entidad

En la tabla sede tenemos datos insertados; intentaremos insertar un dato


con ID duplicado, esto no debería poder ocurrir.

Imagen48: Contenido de la tabla SEDE. Fuente: Elaboración


propia.
En efecto, no se puede realizar la instrucción porque el gestor no
permite la duplicidad en campos con valor primario.

Imagen49: Insert en con valor duplicado. Fuente: Elaboración


propia.
4.3.1.2. Integridad de dominio

Para ejemplo, creamos los dominios para la tabla SEDE.

Imagen50: Tabla editor de SEDE. Fuente: Elaboración propia.

Le damos click en “New Domain” para crear un dominio que regirá al campo
seleccionado de la tabla SEDE.

Imagen51: Propiedades de campo. Fuente: Elaboración propia.

Y llenamos los datos necesarios para crear el dominio.


Nombre del dominio 1

1 Selección del tipo de dato que


admite el dominio.

¿admite valores nulos?

Imagen 52: Edición de dominio. Fuente: Elaboración propia.


A continuación, realizaremos un INSERT para comprobar que no se
puede añadir datos que no cumplan con las especificaciones del
dominio.

Sabemos que, el dominio indica que los ID de la tabla SEDE son un


VARCHAR (2); trataremos que insertar un ID de 3 dígitos.

Imagen53: INSERT a tabla SEDE Fuente: Elaboración propia.

Nos aparecerá el siguiente


mensaje:
Indica que no puede insertar
los datos del código porque existe
una restricción establecida.
Imagen 54: Mensaje de error de insert. Fuente: Elaboración
propia.

4.3.1.3. Integridad referencial

Primero creamos dos tablas que nos servirán de ejemplo

Imagen 55: Creación de tablas ejemplo. Fuente: Elaboración propia.

Realizamos unos insert para tener datos con los cuales trabajar.

Imagen 56: Insert de tabla ejemplo_1. Fuente: Elaboración propia.


Realizamos un insert a la tabla EJEMPLO_2 con un dato de valor

“5” en el campo que es foreign key con la tabla EJEMPLO_1. Esta acción

fallará por que el gestor no permite realizar la inserción de un dato

inexistente en la tabla de referencia.

Imagen 57: Insert tabla ejemplo_2. Fuente: Elaboración propia.

4.3.1.4. Integridad definida por el usuario

Creamos una nueva tabla que llamaremos TABLA_3 que tendrá un


CHECK que validará el ingreso de datos de la columna NUMERO.

Imagen 58: Crear tabla TABLA_3. Fuente: Elaboración propia.

Para comprobar que el CHECK funciona realizaremos un INSERT con


el valor de la columna NUMERO menor al que indica el CHECK.

Imagen 59: Insert tabla TABLA_3. Fuente: Elaboración propia.

Tras ejecutar el
scrip debería emerger
una ventana que indica
el error. Y en efecto, la
venta se muestra
indicando el tipo de
error.
Imagen 60: Mensaje de error Insert tabla TABLA_3. Fuente: Elaboración propia.

De esta manera se asegura la integridad de los datos que se ingresan.


CAPÍTULO 5

Seguridad en base de datos

5.1. Definición de seguridad

El término seguridad posee múltiples usos. A grandes rasgos, puede afirmarse que

este concepto que proviene del latín securitas hace foco en la característica de seguro, es

decir, realza la propiedad de algo donde no se registran peligros, daños ni riesgos. Una

cosa segura es algo firme, cierto e indubitable. La seguridad, por lo tanto, puede

considerarse como una certeza.

Una de las acepciones del término es el que se utiliza en informática, un concepto

moderno, pero sumamente importante para conservar los ordenadores y equipos

relacionados en buen estado. La seguridad informática permite asegurarse que los

recursos del sistema se utilizan de la manera en la que se espera y que quienes puedan

acceder a la información que en él se encuentran sean las personas acreditadas para

hacerlo.

En informática se habla de dos tipos de seguridades, la física (barreras físicas que

impiden el paso al sistema de cualquier persona no acreditada. Se realiza a través de

aplicaciones y procedimientos específicos que tienen el objeto de bloquear el acceso a

dichos individuos) y la lógica (las formas en las que se desempeña este tipo de seguridad

es a través de encriptación de códigos, de modo que no puedan ser leídos o traducidos por

los intrusos que pudieran sobre pasar las barreras físicas, códigos de autenticación y

antivirus o pared de fuego, en el caso de usar un sistema operativo como Windows). A la

hora de elaborar un diseño, ya sea de página web o de espacio en la red de cualquier tener

en cuenta ambos tipos de seguridad es fundamental.


5.1.1. Confidencialidad de datos

Consiste en la capacidad de garantizar que la información, almacenada en el

sistema informático o transmitido por la red, solamente va a estar disponible para

aquellas personas autorizadas a acceder a dicha información, es decir, que, si los

contenidos cayesen en manos ajenas, estas no podrían acceder a la información o a su

interpretación. Este es uno de los principales problemas a los que se enfrentan muchas

empresas; en los últimos años se ha incrementado el robo de los portátiles con la

consecuente pérdida de información confidencial, de clientes, líneas de negocio, entre

otras. Cuando se produce información confidencial, los responsables deciden quién o

quiénes tienen derecho a acceder a la misma. Los recaudos a tomar para garantizar

dicha confidencialidad dependen del contexto. Si la información confidencial incluye

material que puede poner en riesgo la seguridad de una nación, el nivel de precauciones

será mucho mayor. Por lo general, los documentos de esta naturaleza de ponen bajo la

custodia de organismos públicos especializados, en ubicaciones secretas, y en muchos

casos se recurre a la escritura en clave.

5.2. Inicio de sesión.

En el ámbito de la informática, se conoce como sesión a la duración de una conexión

a un determinado sistema o red. La sesión informática suele incluir el intercambio de

paquetes de información entre un usuario y un servidor. Es habitual que el usuario deba

ingresar un nombre de usuario y contraseña para iniciar una sesión, en un procedimiento

conocido como log in o loguearse.

Las sesiones que se establecen al ingresar a un sitio Web poseen distintas

características, que responden a las necesidades de los diseñadores y al tipo de público al

cual esté orientado el proyecto. Una de las posibilidades consiste en iniciar una sesión a
través del ingreso de nombre de usuario y contraseña y permitir que ésta perdure hasta

que el propio individuo decida cuándo finalizarla, lo cual puede tener lugar entre el

momento del comienzo y una fecha límite (que puede durar desde minutos hasta meses,

o años), establecida por los desarrolladores, independientemente de la cantidad de veces

que se entre y salga del sitio.

Esta práctica no resulta muy segura, dado que no siempre un ordenador es utilizado

por la misma persona; si bien cada usuario debería hacerse cargo de la seguridad de los

dispositivos que usa para conectarse a Internet, sobre todo si intercambia información

sensible, la mayoría de las compañías busca crear un modelo que proteja a sus seguidores

como si fueran niños pequeños, evitando así potenciales litigios ante delitos comunes de

la actualidad, como es el robo de identidad.

5.2.1. Usuarios.

La noción de usuario es muy popular en el ámbito de la informática. En este

sentido, un usuario puede ser tanto una persona como una computadora o una aplicación,

ya que el concepto está vinculado al acceso a ciertos recursos o dispositivos.

Se conoce como usuario final a la persona a quien va destinado un producto

cuando éste ya ha superado las diversas etapas de desarrollo. Se trata, por lo tanto, del

sujeto que tiene una interacción directa con el producto.

El usuario registrado es aquel que cuenta con un identificador (nombre de usuario)

y una clave de acceso (también conocido como password) para hacer uso de un servicio

en Internet. El proceso de registro puede ser gratuito o pago y luego del mismo, el cliente

obtiene una cuenta propia que almacena su información personal (su nombre, una

dirección de correo electrónico, etc.); esto le permite acceder a información no disponible

para aquellas personas que no están registradas en el sistema en cuestión.


Cuando un desarrollador informático se dispone a crear un programa o un

videojuego, debe tomar en cuenta una serie de puntos fundamentales, la mayoría de los

cuales gira en torno a la experiencia del usuario. En el ámbito del software y el

entretenimiento digital, la palabra cliente resulta demasiado fría para hablar de los

consumidores; al referirse a ellos como usuarios, se hace alusión a un nivel de intimidad

muy particular, dada la cercanía entre ellos y los productos.

5.2.2. Roles.

Es una colección con nombre de tareas que definen las operaciones disponibles en

un servidor de informes. Las definiciones de roles proporcionan las reglas que el servidor

de informes utiliza para aplicar la seguridad. Cuando un usuario intenta realizar una tarea,

como publicar un informe, el servidor de informes comprueba la asignación de roles de

dicho usuario para determinar si la tarea está incluida en su definición de roles. Si la tarea

está incluida en la definición de roles, se envía la solicitud. Usar roles para autorizar el

acceso a un servidor de informes

Un rol será operativo solo cuando se utilice en una asignación de roles. Para

obtener más información sobre el modo en que los roles proporcionan seguridad, vea

Asignaciones de roles.

5.2.2.1. Tipos de definiciones de roles:

Las definiciones de roles pueden ser de nivel de elemento o de nivel de sistema.

Una definición de roles de nivel de elemento describe tareas relacionadas con elementos

almacenados y administrados en un servidor de informes, como informes, carpetas y

modelos. Administrar informes, Ver carpetas y Administrar suscripciones individuales

son ejemplos de tareas que puede incluir en las definiciones de roles de nivel de elemento.

Una definición de roles del sistema incluye tareas que se aplican a todo el sitio. Ver
propiedades del servidor de informes es un ejemplo de tarea que puede incluir en un rol

del sistema.

5.2.2.1.1. Roles predefinidos

Administrador de contenido, Publicador, Explorador, Generador de informes y

Mis informes son definiciones de roles de nivel de elemento que puede utilizar al crear

asignaciones de roles para tener acceso al contenido del servidor de informes.

Administrador del sistema y Usuario del sistema son definiciones de roles de nivel

de sistema que puede utilizar para autorizar el acceso a las operaciones del sitio.

5.2.3. Grupos

Un grupo es un conjunto de cuentas de usuario y de equipo, contactos y otros

grupos que se pueden administrar como una sola unidad. Los usuarios y los equipos que

pertenecen a un grupo determinado se denominan miembros del grupo. Esto permite a los

administradores organizar los privilegios de seguridad de los usuarios como parte de

Grupos. El administrador establece los privilegios de seguridad del grupo y asigna los

usuarios a grupos.

• Un administrador puede crear, cambiar el nombre y eliminar grupos, así como

modificar la pertenencia a grupos.

• Un grupo puede contener usuarios o incluso otros grupos.

• Tanto un usuario como un grupo pueden pertenecer a varios grupos.

(No se permite: el grupo A forma parte del grupo B, que forma parte del grupo A.)

De forma predeterminada, existen dos grupos de usuarios.

• El grupo de usuarios Administradores proporciona a sus miembros acceso

completo al sistema.
• El grupo Usuarios de firebird proporciona a los usuarios acceso limitado al

sistema.

La pertenencia a grupos facilita la administración de la seguridad de muchos

usuarios ya que no tienen que administrar de forma individual los privilegios de cada

usuario.

• Si se aplica una restricción de seguridad a un grupo, esta restricción se aplica de

forma implícita a todos los miembros de ese grupo.

• Si se añaden usuarios al grupo posteriormente, se aplicarán las mismas

restricciones de seguridad de forma automática.

• Si los usuarios se eliminan, las restricciones de seguridad no se aplicarán.

5.2.4. Funciones en el servidor

Permiten administrar los permisos sobre los objetos del servidor. Aquí podemos ver

algunas de ellas:

• ibase_add_user — Añade un usuario a una base de datos segura

• ibase_affected_rows — Devuelve el número de columnas afectadas por la última

consulta

• ibase_backup — Inicia la tarea de copia de seguridad en el administrador de servicios

y devuelve el control inmediatamente

• ibase_blob_add — Añade datos a un nuevo blob

• ibase_blob_cancel — Cancela la creación de un blob

• ibase_blob_close — Cierra un blob

• ibase_blob_create — Crea un nuevo blob al que añadir datos

• ibase_blob_echo — Imprime el contenido de un blob

• ibase_blob_get — Consulta un determinado número de bytes de un blob


• ibase_blob_import — Crea un blob, copia un fichero en él, y lo cierra

• ibase_blob_info — Devuelve el tamaño de un blob y otra información útil

• ibase_blob_open — Abre un blob para su consulta

• ibase_close — Cerrar una conexión con una base de datos InterBase

• ibase_commit_ret — Lleva a cabo una transacción sin cerrarla

• ibase_commit — Lleva a cabo una transacción

• ibase_connect — Abrir una conexión a una base de datos

• ibase_db_info — Consulta estadísticas de una base de datos

• ibase_delete_user — Elimina un usuario de una base de datos segura

• ibase_drop_db — Elimina una base de datos

• ibase_errcode — Devuelve un código de error

• ibase_errmsg — Devuelve un mensaje de error

• ibase_execute — Ejecutar una consulta previamente preparada

• ibase_fetch_assoc — Extra una fila en forma de array asociativo de una consulta

• ibase_fetch_object — Consulta un objeto de una base de datos InterBase

• ibase_fetch_row — Recuperar una fila desde una base de datos InterBase

• ibase_field_info — Consulta información sobre un determinado campo

• ibase_free_event_handler — Cancela un manejador de eventos ya registrado

• ibase_free_query — Liberar la memoria reservada por una consulta preparada

• ibase_free_result — Liberar un conjunto de resultados

• ibase_gen_id — Incrementa el generador de nombres y devuelve su nuevo valor

• ibase_maintain_db — Lleva a cabo una tarea de mantenimiento en el servidor de

bases de datos

• ibase_modify_user — Modifica un usuario en una base de datos segura

• ibase_name_result — Asigna un nombre a un juego de resultados


• ibase_num_fields — Consulta el número de campos de un resultado

• ibase_num_params — Devuelve el número de parámetros de una sentencia preparada

• ibase_param_info — Devuelve información sobre un parámetro de una sentencia

preparada

• ibase_pconnect — Abrir una conexión persistente con una base de datos InterBase

• ibase_prepare — Preparar una consulta para su asociación con parámetros de

sustitución y ejecución posterior

• ibase_query — Ejecutar una consulta en una base de datos InterBase

• ibase_restore — Inicia una tarea de restauración en el administrador de servicios y

devuelve el control inmediatamente

• ibase_rollback_ret — Deshace una transacción sin cerrarla

• ibase_rollback — Deshace una transacción

• ibase_server_info — Solicita información sobre un servidor de bases de datos

• ibase_service_attach — Conecta al administrador de servicios

• ibase_service_detach — Desconecta del administrador de servicios

• ibase_set_event_handler — Registra una función manejadora de un determinado

evento

• ibase_trans — Comienza una transacción

• ibase_wait_event — Espera a que la base de datos emita un determinado evento


5.2.5. Privilegios.

Es una ventaja especial o una exención de una obligación que disfruta alguien por

la concesión de un superior o por su propia capacidad y circunstancia. El término también

se utiliza para nombrar al documento en el que consta la concesión del privilegio.

Este tipo de configuraciones son las que hacen que el Sistema Operativo se vuelva

más fuerte y robusto, sobre todo cuando el equipo es utilizado por varias personas y si su

dueño desconoce la actividad que cada una de estas realizan con el ordenador. También

es una muy buena forma de reducir las infecciones de malware en el equipo, permitiendo

controlar qué aplicaciones utilizan las demás personas. Esto puede volverse muy útil a la

hora de aplicar restricciones en aplicaciones para el cuidado de los más pequeños, ya que

desde esta sección se puede bloquear el uso de aplicaciones podrían poner en riesgo la

integridad del equipo o el mundo digital de los niños.

Llevándolo a un escenario real, un padre podría bloquear la ejecución de juegos

pero permitir la ejecución de herramientas ofimática para realizar trabajos del colegio.

De esta forma, reduciría el tiempo de distracción en juegos por parte del joven, en

combinación con control parental en el uso de Internet, que podría lograr el uso más

productivo del equipo para los jóvenes.

5.3. Autenticatión o Autentificación

Autenticación es el proceso que debe seguir un usuario para tener acceso a los

recursos de un sistema o de una red de computadores. Este proceso implica identificación

(decirle al sistema quién es) y autenticación (demostrar que el usuario es quien dice ser).

La autenticación por sí sola no verifica derechos de acceso del usuario; estos se confirman

en el proceso de autorización.
En general, la seguridad de las redes de datos requiere para conceder acceso a los

servicios de la red, tres procesos: (1) autenticación, (2) autorización y (3) registro.

• Autenticación: el proceso por el cual el usuario se identifica en forma

inequívoca; es decir, sin duda o equivocación de que es quien dice ser.

• Autorización: el proceso por el cual la red de datos autoriza al usuario

identificado a acceder a determinados recursos de la misma.

• Registro: el proceso mediante el cual la red registra todos y cada uno de los

accesos a los recursos que realiza el usuario, autorizado o no.

Estos tres procesos se conocen por las siglas en inglés como AAA, o

Authentication, Authorization, y Accounting.

Tipos de autenticación: Se puede efectuar autenticación usando uno o varios de

los siguientes métodos:

• Autenticación por conocimientos: basada en información que sólo conoce el

usuario.

• Autenticación por pertenencia: basada en algo que posee el usuario.

• Autenticación por características: basada en alguna característica física del

usuario.

De lo anterior se deduce que la autenticación involucra aspectos físicos y lógicos

relacionados con el acceso, la utilización y la modificación de los recursos de la red o

sistema. Autenticación física La autenticación física se basa en algún objeto físico que

posee el usuario, o en alguna característica física del usuario; en tal caso utiliza algún tipo

de mecanismo biométrico. La información capturada en el proceso de autenticación, pasa

al proceso de autorización realizado por personas, dispositivos electrónicos de seguridad

o sistemas de seguridad informática. Autenticación lógica La autenticación lógica puede


utilizarse para identificar personas o sistemas y se basa en información que sólo conoce

el usuario. La autenticación y autorización las realiza software especializado.

Si se combinan dos o más métodos de autenticación, esta se denomina

autenticación múltiple (multi-factor authentication) y es una autenticación más segura.

Por ejemplo, autenticación doble si el usuario debe presentar dos tipos de identificación,

una física (una tarjeta) y la otra algo que el usuario ha memorizado como una clave de

seguridad o un número de identificación personal (PIN—Personal Identification

Number). Este es el caso de una tarjeta bancaria que se utiliza con un cajero automático

(ATM—Automatic Teller Machine). Más aún, algunos sistemas utilizan autenticación

triple (con tres factores): un objeto físico, una contraseña y algún dato biométrico como

la huella digital.

5.3.1. Política de contraseñas.

La contraseña o clave de un usuario es el mecanismo que utilizamos para

autenticarnos en todos los sistemas informáticos de la Facultad de Ingeniería. Nos

identificamos ante el sistema utilizando el nombre de usuario (p.e. 'jperdomo') y usamos

nuestra contraseña para probar nuestra identidad en el sistema. Las contraseñas continúan

siendo, a pesar del esfuerzo continuado de la institución, un eslabón débil dentro de la

seguridad. La calidad de la contraseña es un factor importante a ser considerado. Si las

contraseñas pueden adivinarse o robarse, alguien ingresando con su usuario puede causar

problemas a la institución o sus recursos. Por ello, la contraseña es de uso personal e

individual, no debe ser compartida con otras personas y debe ser mantenida en forma

segura.
Complejidad mínima de las contraseñas

Las clases de caracteres utilizada para las contraseñas son mayúsculas,

minúsculas, números y símbolos. La complejidad que deben tener las contraseñas, en

función de las clases de caracteres, dependerá del largo de las mismas. Intuitivamente, a

mayor cantidad de caracteres, se relaja la necesidad de tener clases adicionales. Como

mínimo, las contraseñas deberán tener al menos 10 caracteres. Luego, al ir creciendo en

largo, se podrá usar menos clases de caracteres.

Podríamos entonces resumirlo como:

• El mínimo del largo de una contraseña es de 10 caracteres.

• Si el largo de una contraseña es de 10 u 11 caracteres, debe tener

elementos de las 4 clases de caracteres.

• Si el largo de una contraseña es de 12 a 19 caracteres, debe tener

elementos de al menos 3 clases de caracteres.

• Si el largo de una contraseña es de 20 a 25 caracteres, debe tener

elementos de al menos 2 clases de caracteres.

• Si el largo de una contraseña es de 26 o más caracteres, puede tener

solamente elementos de 1 clase de caracteres.

En todos los casos el largo máximo de caracteres será de 40.

Adicionalmente se debe tener en cuenta que si la contraseña cuenta con una única

letra mayúscula esta no puede ser la primera y si cuenta con un solo dígito no puede ser

el último.

Usando diccionarios de varios idiomas, listas recopiladas de palabras comunes,

nombres propios, nombres de lugares, nombres de artistas y personajes, etc., se puede


probar hasta acertar. Es un trabajo arduo, pero si se automatiza en una computadora no

lleva esfuerzo sino sólo tiempo.

Así que a las contraseñas se las somete a pruebas adicionales para evitar estas

situaciones. Se rechazarán las contraseñas que sean derivadas de datos básicos del usuario

(nombre, apellido, etc.) , que correspondan a teclas corridas o cercanas en el teclado

(como 'qwerty'), o que se puedan encontrar, como se dijo, en listas y diccionarios.

Algunas de estas pruebas se hacen luego de aceptada la contraseña, sometiéndolas

periódicamente a pruebas como las señaladas anteriormente contra diccionarios y

similares listas, así que puede ocurrir que para una contraseña haya sido aceptada

inicialmente pero posteriormente se pida su cambio.

Cambio de contraseñas

El usuario puede cambiar su contraseña siempre que así lo desee. En caso de que

exista la más mínima posibilidad de que la misma haya sido comprometida, es necesario

notificar a los administradores y realizar el cambio en forma urgente.

5.4. Trabajo de Demostración de la Seguridad en el Gestor

Cree diferentes usuarios en la base de datos y a cada uno ve asignándolo sus

respectivos permisos y privilegios demostrando lo que pasa en cada nivel de seguridad,

a nivel de base de datos, objetos, acciones y columnas.


5.4.1. Usuario1 Puede Ingresar a la BD1 y no a la BD2

Creamos la base de datos y colocamos como

usuario de esa base de datos al USUARIO_1.

Antes de darle en ok nos fijamos en que la

autenticación de usuario esté activada.

Imagen 62. Fuente: elaboración propia

Con la autenticación, cualquiera que no sea un usuario autorizado no podrá ingresar a la

base de datos.
Imagen 61. Fuente: elaboración propia

De la misma forma creamos otra base de datos, pero ésta tendrá como

usuario a USUARIO_2.
Imagen 63. Fuente: elaboración propia

De esta manera ya tenemos las dos bases de datos creadas.

Imagen#: Bases de datos db1 y db2. Fuente: elaboración propia


Ahora intentaremos ingresar a DB2 con el USUARIO_1, y no debería

poder acceder ya que no tiene los permisos de usuario para ingresar.

Imagen 64. Fuente: elaboración propia Imagen 65. Fuente: elaboración propia

5.4.2. Usuario2 Puede Ingresar a la BD1, tiene acceso a la Tabla1 y no a la

Tabla2

Primero creamos un ROLE para otorgar acceso al USUARIO_2 a la base de datos

DB1

Imagen 66. Fuente: elaboración propia

Luego otorgamos el ROLE al USUARIO_2

Imagen 67. Fuente: elaboración propia

De esta forma nosotros podemos otorgar los permisos de LOGIN a

la base de datos. Y ahora, para comprobar que todo está


funcionando, intentaremos ingresar a la base de datos DB1 con el

USUARIO_2, no debería presentar problemas.

Logramos ingresar sin ningún

problema; Ahora, solo para

verificar la existencia del ROLE,

nos dirigimos a la sección.


Imagen 69. Fuente: elaboración propia
Imagen 68. Fuente: elaboración propia

Ingresamos y podemos verificar que si existe el

ROLE que otorga el acceso a la base de datos.

Imagen 70. Fuente: elaboración propia

TENEMOS QUE HACER UNA ACLARACIÓN, INTERBASE NO

CUENTA CON SEGURIDAD A NIVEL DE TABLAS, POR LO QUE NO SE

INCLUYE DENTRO DE ESTE INFORME.

5.4.3. Usuario3 Puede Ingresar a la BD1, tiene acceso a la Tabla1, puede

hacer UPDATE y SELECT, pero no INSERT y DELETE

Primero creamos nuestro USUARIO_3 dar el ejemplo

Imagen 71. Fuente: elaboración propia


Luego creamos un ROLE para poder permitir el acceso del USUARIO_3 a la base

de datos DB1.

Imagen 72. Fuente: elaboración propia

Imagen 73. Fuente: elaboración propia

Ahora otorgamos y revocamos los privilegios que se mencionaron

en el ejemplo

Imagen 74. Fuente: elaboración propia

Imagen 75. Fuente: elaboración propia

Estas acciones se pueden corroborar de forma gráfica, en la sección

de permisos de la TABLA_1.

Imagen 76. Fuente: elaboración propia


Ahora comprobaremos que las instrucciones se cumplan. Comenzaremos con

SELECT y luego con UPDATE.

Imagen 77. Fuente: elaboración propia

Comprobamos que no tenemos problemas al ejecutar SELECT. A continuación,

realizamos un UPDATE.

Imagen 78. Fuente: elaboración propia

Realizamos un SELECT para verificar el cambio.

Imagen 79. Fuente: elaboración propia

Efectivamente, se realizó la actualización.

Imagen 80. Fuente: elaboración propia


Ahora verificamos los privilegios revocados. Escribimos el scrip para hacer un

DELETE

Imagen 81. Fuente: elaboración propia

Al darle en ejecutar nos

aparecerá el siguiente mensaje de

error, indicando que no contamos

con los permisos necesarios para realizar la instrucción.


Imagen 82. Fuente: elaboración propia

Y ahora un INSERT

Imagen 83. Fuente: elaboración propia

Al darle en ejecutar nos

aparecerá el siguiente mensaje de

error, indicando que no contamos

con los permisos necesarios para realizar la instrucción.


Imagen 84. Fuente: elaboración propia

5.4.4. Usuario4 Puede Ingresar a la BD1, tiene acceso a la Tabla1, puede

hacer UPDATE y SELECT pero solo en la columna1, columna2 y no en la columna3

Primero creamos al USUARIO_4 para realizar el ejemplo.

Imagen 85. Fuente: elaboración propia


Luego nos dirigimos hasta la TABLA_1 clickeamos en el siguiente icono:

Imagen 86. Fuente: elaboración propia

Emergerá la ventana de GRANT EDITOR donde podemos otorgar los privilegios

de manera gráfica; es este caso nos regimos al ejemplo que se menciona al inicio.

Imagen 87. Fuente: elaboración propia


Intentaremos realizar un UPDATE en el campo COLUMNA_3. En teoría no se

podría por la configuración que aplicamos.

Imagen 88. Fuente: elaboración propia

Y en efecto, no se puede

actualizar porque hemos configurado

que solo el campo COLUMNA_3

esté fuera de nuestro poder.


Imagen 89. Fuente: elaboración propia

Ahora, con la instrucción SELECT nos muestra los campos que se encuentran

llenos, y que, a continuación, será modificado por UPDATE.

Imagen 90. Fuente: elaboración propia

Efectivamente, se

logró actualizar los campos.

Imagen 91. Fuente: elaboración propia


CAPÍTULO 6

Migración de Datos.

6.1. Definición de migración de datos.

Una definición algo más completa es ésta: la migración de datos es el proceso

mediante el cual realizamos una transferencia de datos de unos sistemas de

almacenamiento de datos a otros, de unos formatos de datos a otros o entre diferentes

sistemas informáticos.

6.1.1 Propósito de una migración

Muchas circunstancias existen cuando una organización necesita migrar las

aplicaciones o las bases de datos. Puede ser que sea tan simple como una mejora a una

nueva versión del sistema ó puede ser que implique cambiar a una nueva base de datos o

aplicación. Después de una fusión o de una adquisición, a menudo se retiran las

aplicaciones redundantes, pero los datos tienen que ser preservados en el sistema de

supervivencia. Después de una migración, el viejo sistema y el nuevo sistema tendrán que

coexistir.

La migración de datos es el proceso por el cual grandes volúmenes de datos son

trasladados desde sistemas existentes hacia sistemas nuevos, abarca todos los pasos

necesarios para limpiar, corregir y mover los datos al nuevo sistema.

Al actualizar a una nueva versión de una base de datos o de una aplicación, o al

cambiar a un nuevo sistema, los datos necesitan ser preservados en este nuevo sistema.

El propósito de la migración de datos es transferir datos existentes al nuevo ambiente.

Necesita ser transformado a un formato conveniente para el nuevo sistema, mientras que

se preserva la información presente en el viejo.


6.2. Fuentes u Orígenes de Datos.

Los datos que se usarán en el proceso de migración son los datos reales guardados

en un backup y/o copia del backup original del anterior sistema gestor de base de datos.

6.3 Etapas de una migración de datos.

• Limpieza de las tablas de la Base de Datos.

• Consolidación de las tablas de la Base de Datos.

• Mapeado de las tablas de Origen y Destino.

• Definición de Formato de Origen y Destino.

• Ruta de Saltos de Formato en la Migración.

• Definición del Set de Caracteres de Origen y Destino.

• Comprobación de los delimitadores de campos.

• Migración de Prueba.

• Evaluación y Comprobación de Errores.

• Depuración Final.

6.4. Proveedores de Acceso a Datos (ADO, OLEDB, ODBC y JDBC)

6.4.1 ADO.

ADO es un conjunto de componentes del software que pueden ser usados por los

programadores para acceder a datos y a servicios de datos. Es parte de la biblioteca de

clases base que están incluidas en el Microsoft .NET Framework. Es comúnmente usado

por los programadores para acceder y para modificar los datos almacenados en un Sistema

Gestor de Bases de Datos Relacionales, aunque también puede ser usado para acceder a
datos en fuentes no relacionales. ADO.NET es a veces considerado como una evolución

de la tecnología ActiveX Data Objects (ADO), pero fue cambiado tan extensivamente

que puede ser concebido como un producto enteramente nuevo.

6.4.2 OLEDB.

OLEDB permite separar los datos de la aplicación que los requiere. Esto se hizo

así ya que diferentes aplicaciones requieren acceso a diferentes tipos y almacenes de

datos, y no necesariamente desean conocer cómo tener acceso a cierta funcionalidad con

métodos de tecnologías específicas. OLEDB está conceptualmente dividido en

consumidores y proveedores; el consumidor es la aplicación que requiere acceso a los

datos y el proveedor es el componente de software que expone una interfaz OLEDB a

través del uso del Component Object Model (COM).

6.4.3 ODBC.

El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier

aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los

datos. ODBC logra esto al insertar una capa intermedia (CLI) denominada nivel de

Interfaz de Cliente SQL, entre la aplicación y el DBMS. El propósito de esta capa es

traducir las consultas de datos de la aplicación en comandos que el DBMS entienda. Para

que esto funcione tanto la aplicación como el DBMS deben ser compatibles con ODBC,

esto es que la aplicación debe ser capaz de producir comandos ODBC y el DBMS debe

ser capaz de responder a ellos. Desde la versión 2.0 el estándar soporta SAG (SQL Access

Group) y SQL.

El software funciona de dos modos, con un software manejador en el cliente, o una

filosofía cliente-servidor. En el primer modo, el driver interpreta las conexiones y


llamadas SQL y las traduce desde el API ODBC hacia el DBMS. En el segundo modo

para conectarse a la base de datos se crea una DSN dentro del ODBC que define los

parámetros, ruta y características de la conexión según los datos que solicite el creador o

fabricante.

6.4.4 JDBC.

JDBC se presenta como una colección de interfaces Java y métodos de gestión de

manejadores de conexión hacia cada modelo específico de base de datos. Un manejador

de conexiones hacia un modelo de base de datos en particular es un conjunto de clases

que implementan las interfaces Java y que utilizan los métodos de registro para declarar

los tipos de localizadores a base de datos (URL) que pueden manejar. Para utilizar una

base de datos particular, el usuario ejecuta su programa junto con la biblioteca de

conexión apropiada al modelo de su base de datos, y accede a ella estableciendo una

conexión; para ello provee el localizador a la base de datos y los parámetros de conexión

específicos. A partir de allí puede realizar cualquier tipo de tarea con la base de datos a la

que tenga permiso: consulta, actualización, creación, modificación y borrado de tablas,

ejecución de procedimientos almacenados en la base de datos, etc.

6.5. Herramientas de Migración de Datos.

6.5.1 Apache NiFi.

Apache NiFi es un proyecto de código abierto que

permite la automatización del flujo de datos entre sistemas,

conocido como "logística de datos". El proyecto se escribe utilizando programación

basada en flujo y proporciona una interfaz de usuario basada en web para administrar

flujos de datos en tiempo real.


6.5.2 Talend Open Studio.

Este software es una solución de integración de

datos que permite el acceso de múltiples usuarios y el

trabajo en equipo, y admite grandes volúmenes de datos. Permite la consolidación de

datos en un repositorio central al que pueden acceder todos los miembros de un equipo

colaborador. También permite la gestión de permisos y privilegios de usuario.

6.5.3 Pentaho.

Pentaho Data Integration es bien conocido por

su facilidad de uso y rápida curva de aprendizaje. PDI

implementa un enfoque basado en metadatos, lo que

significa que el desarrollo se basa en especificar qué hacer, no cómo hacerlo.

Pentaho permite a los administradores y desarrolladores de ETL crear sus propios

trabajos de manipulación de datos con un creador gráfico fácil de usar y sin ingresar una

sola línea de código. PDI utiliza un repositorio compartido común que permite la

ejecución remota de ETL, facilita el trabajo en equipo y simplifica el proceso de

desarrollo.

6.5.4 Full Convert.

Puede hacer que la conversión se ejecute

repetidamente; muchos clientes la ejecutan en

algún momento durante la noche, por lo que en la base de datos de la mañana se vuelven

a copiar. Por supuesto, puede cambiar la asignación de la tabla para que la base de datos

de destino se cree de manera diferente sobre la marcha. Las tablas se pueden renombrar,

las columnas se pueden renombrar, los tipos de datos se pueden cambiar, y mucho más.
6.6 Taller: Demostración de Migración de datos del Gestor hacia Otros Gestores.

Iniciamos este taller buscando SQL SERVER para abrirlo y restaurar la base de
datos.

Imagen 92: Búsqueda SQL. Fuente: Elaboración propia.

Cuando SQL SERVER se inicie damos click derecho en la sección de “Object

Explorer” y damos click en “Restore Database” para comenzar la restauración de

la base de datos

Imagen 93: Paso 1 restauracion. Fuente: Elaboración propia.

Emergerá una ventana donde podremos ubicar la dirección de la base de datos

para su próxima restauración.


Damos click en los puntos suspensivos para iniciar la búsqueda.

Imagen 94: Paso 2 restauración. Fuente: Elaboración propia.

Emergerá otra ventana donde finalmente ubicaremos al Back up de la base de

datos.

Imagen 95: Paso 3 restauración. Fuente: Elaboración propia.

Ubicamos y seleccionamos a la base de datos y damos click en OK


Imagen 96: Paso 4 restauración. Fuente: Elaboración propia.

Le damos en OK para continuar

Imagen 97: Paso 5 restauración. Fuente: Elaboración propia.


Volveremos a la primera ventana que emergió, y damos en OK para iniciar la

restauración del Back Up.

Imagen 98: Inicio de la restauración. Fuente: Elaboración propia.

Cuando termine emergerá un mensaje que indicará la exitosa restauración.

Imagen 99: Fin de la restauración. Fuente: Elaboración propia.


Para comprobar que la base de datos existe, nos vamos al explorador de objetos y
buscamos nuestra base de datos.

Imagen 100: Comprobación de la restauración. Fuente: Elaboración propia.


Ahora pasamos al inicio de la migración de datos. Para esto, primero iniciamos el

servicio de INTERBASE y creamos una base datos receptora. (Estos pasos se

encuentran al inicio del manual)

Terminada esta acción iniciaremos la herramienta de migración llamada FULL

CONVERT.

Imagen 101: Logo FullConvert. Fuente: Elaboración propia.

Imagen 102: Inicio FullConvert. Fuente: Elaboración propia.


Cuando la herramienta se inicie, damos click en “New dabase conversion”

Imagen 103: Migración paso 1. Fuente: Elaboración propia.

En la primera ventana se seleccionará la base y el servidor que contiene a la base

de datos.

Imagen 104: Migración paso 2. Fuente: Elaboración propia.


En la segunda ventana se seleccionará la base de datos que contendrá a los datos

de la migración. En este caso ya contamos la base de datos que previamente

creamos en INTERBASE. Lo ubicamos y lo seleccionamos.

Imagen 105: Migración paso 3. Fuente: Elaboración propia.


En este paso seleccionamos las tablas que deseamos migrar.

Imagen 106: Migración paso 4. Fuente: Elaboración propia.

Por último, previo la migración nos piden confirmar todas las acciones.

Imagen 107: Migración paso 5. Fuente: Elaboración propia.


Iniciará la migración. Esto puede tardar unas horas.

Imagen 108: Inicio de la migración. Fuente: Elaboración propia.


Cuando la migración termine, aparecerá una ventana con un resumen de los
sucesos de la migración.

Imagen 109: Fin de la migración. Fuente: Elaboración propia.


Ahora, tenemos que comprobar que todos los datos de todas las tablas estén
completos. Para esto realizaremos un “SELECT COUNT(CAMPO) FROM
TABLA” tanto para SQL e INTERBASE.

PARA LA TABLA ALMACEN

Imagen 110: Comprobación tabla almacén SQL. Fuente: Elaboración propia.


PARA LA TABLA CAJA

Imagen 111: Comprobación tabla caja IB. Fuente: Elaboración propia.

Imagen 112: Comprobación tabla caja SQL. Fuente: Elaboración propia.


PARA LA TABLA CARGOS

Imagen 113: Comprobación tabla cargos IB. Fuente: Elaboración propia.

Imagen 114: Comprobación tabla cargos SQL. Fuente: Elaboración propia.


PARA LA TABLA CLIENTE

Imagen 115: Comprobación tabla cliente IB. Fuente: Elaboración propia.

Imagen 116: Comprobación tabla cliente SQL. Fuente: Elaboración propia.


PARA LA TABLA DETALLEVETNAS

Imagen 117: Comprobación tabla detalleventas IB. Fuente: Elaboración propia.

Imagen 118: Comprobación tabla detellavetnas SQL. Fuente: Elaboración propia.


PARA LA TABLA EMPLEADO

Imagen 119: Comprobación tabla empleado IB. Fuente: Elaboración propia.

Imagen 120: Comprobación tabla empleado SQL. Fuente: Elaboración propia.


PARA LA TABLA EMPRESA

Imagen 121: Comprobación tabla empresa IB. Fuente: Elaboración propia.

Imagen 122: Comprobación tabla empresa SQL. Fuente: Elaboración propia.


PARA LA TABLA LINEA

Imagen 123: Comprobación tabla línea IB. Fuente: Elaboración propia.

Imagen 124: Comprobación tabla línea SQL. Fuente: Elaboración propia.


PARA LA TABLA LOCALIDAD

Imagen 125: Comprobación tabla localidad IB. Fuente: Elaboración propia.

Imagen 126: Comprobación tabla localidad SQL. Fuente: Elaboración propia.


PARA LA TABLA MARCA

Imagen 127: Comprobación tabla marca IB. Fuente: Elaboración propia.

Imagen 128: Comprobación tabla marca SQL. Fuente: Elaboración propia.


PARA LA TABLA MONEDA

Imagen 129: Comprobación tabla moneda IB. Fuente: Elaboración propia.

Imagen 130: Comprobación tabla moneda SQL. Fuente: Elaboración propia.


PARA LA TABLA PRODUCTO

Imagen 131: Comprobación tabla producto IB. Fuente: Elaboración propia.

Imagen 132: Comprobación tabla producto SQL. Fuente: Elaboración propia.


PARA LA TABLA SERIE DOCUMENTO

Imagen 133: Comprobación tabla seriedocumento IB. Fuente: Elaboración propia.

Imagen 134: Comprobación tabla seriedocumento SQL. Fuente: Elaboración propia.


PARA LA TABLA TIPOCLIENTE

Imagen 135: Comprobación tabla tipocliente IB. Fuente: Elaboración propia.

Imagen 136: Comprobación tabla tipocliente SQL. Fuente: Elaboración propia.


PARA LA TABLA TIPODOCUMENTO

Imagen 137: Comprobación tabla tipodocumento IB. Fuente: Elaboración propia.

Imagen 138: Comprobación tabla tipodocumento SQL. Fuente: Elaboración propia.


PARA LA TABLA UNIDADMEDIDA

Imagen 139: Comprobación tabla unidadmedida IB. Fuente: Elaboración propia.

Imagen 140: Comprobación tabla unidadmedida SQL. Fuente: Elaboración propia.


PARA LA TABLA VENTAS

Imagen 141: Comprobación tabla ventas IB. Fuente: Elaboración propia.

Imagen 142: Comprobación tabla ventas SQL. Fuente: Elaboración propia.


PARA LA TABLA ZONA

Imagen 143: Comprobación tabla zona IB. Fuente: Elaboración propia.

Imagen 144: Comprobación tabla zona SQL. Fuente: Elaboración propia.


1

CAPÍTULO 7

Rendimiento

7.1Control de concurrencia

El término concurrencia se refiere al hecho de que los DBMS (Sistemas de

Administración de Bases de Datos) permiten que muchas transacciones accedan a una

misma base de datos a la vez. Como bien es sabido, en un sistema de éstos se necesita

algún tipo de mecanismo de control de concurrencia para asegurar que las transacciones

concurrentes no interfieran entre sí El control de accesos concurrentes y específicamente

de transacciones concurrentes es manejado por un módulo del DBMS llamado

"scheduler".

Es importante recordar que muchos de los datos de la base no se encuentran nada

más en disco, sino también en los buffers de memoria, de ahí que el scheduler interactúa

con ellos y en su defecto solicita la lectura de los datos del disco.

Scheduler del DBMS

El calendarizador crea agendas, secuencias ordenadas de las acciones tomadas por

una o más transacciones. El siguiente ejemplo muestra 2 transacciones cuya única

característica de consistencia es que A=B ya que ambas operaciones son iguales para

ambos elementos. Por otro lado sabemos que si las transacciones son ejecutadas

aisladamente la consistencia se preservará.

Control de Concurrencia Multiversion

Este control de concurrencia los valores antiguos de un elemento de información

cuando este se actualiza estos se conocen como técnicas de control de concurrencia de


2

multiversion por que se mantienen varias versiones valores de un elemento cuando una

transacción requiere acceso a un elemento se elige una versión apropiada para mantener

la seriabilidad del plan que se está ejecutando si es posible la idea consiste en que algunas

operaciones de lectura que será rechazadas si se usaran otras técnicas se pueden aceptar

leyendo una versión anterior del elemento a fin de mantener la seriabilidad cuando una

transacción escribe un elemento escribe una nueva versión y se conserva la versión

anterior de dicho elemento. Una desventaja obvia de las técnicas de multiversion es que

se requiere más almacenamiento para mantener múltiples versiones de elementos de la

base de datos sin embargo es posible que de todos modos sea necesario mantener

versiones anteriores.

7.2. Optimización de Consultas, Heurística, Creación de Índices, Plan de Ejecución

de Consultas

Optimización de consultas

Cuando hablamos de optimización de consultas nos referimos a mejorar los tiempos

de respuesta en un sistema de gestión de bases de datos relacional, pues la optimización

es el proceso de modificar un sistema para mejorar su eficiencia o también el uso de los

recursos disponibles.

En bases de datos relacionales el lenguaje de consultas SQL es el más utilizado por

el común de los programadores y desarrolladores para obtener información desde la base

de datos. La complejidad que pueden alcanzar algunas consultas puede ser tal, que el

diseño de una consulta puede tomar un tiempo considerable, obteniendo no siempre una

respuesta óptima.
3

Es el proceso de selección del plan de evaluación de las consultas más eficiente entre

las estrategias disponibles para el procesamiento de una consulta dada. A través del

álgebra relacional intenta hallar una expresión equivalente a la expresión dada.

Elección de una estrategia detallada para el procesamiento de la consulta: 9 Selección

del algoritmo que se usará para ejecutar una operación 9 Selección de los índices

concretos que se van a emplear La diferencia en costo (en términos de tiempo de

evaluación) entre una estrategia buena y una mala suele ser sustancial, por tanto, vale la

pena la selección de una buena estrategia para el procesamiento de la consulta.

Heurística

Es el conjunto de métodos y técnicas que se emplean con el fin de encontrar y

solucionar un problema en aquellos casos que es difícil hallar una solución óptima o

satisfactoria.

Por tal razón, en las disciplinas científicas se suele emplear el método heurístico a fin

de alcanzar el mejor resultado ante un problema en específico.

La heurística existe desde la antigua Grecia, sin embargo, este término lo popularizó

el matemático George Pólya, en su libro “Cómo resolverlo”, en el cual explica el método

heurístico a sus alumnos de matemáticas, y a todos aquellos que desearan aprender de la

disciplina, citando cuatro ejemplos:

• Si no consigues entender un problema, dibuja un esquema.

• Si no encuentras la solución, haz como si ya la tuvieras y mira qué puedes deducir de

ella (razonando a la inversa).

• Si el problema es abstracto, prueba examinar un ejemplo concreto.


4

• Intenta abordar primero un problema más general y revisar.

Por su parte, el filósofo y matemático Lakato, estableció que la heurística es un

conjunto de métodos o reglas que pueden ser positivos o negativos, que indican cuáles

son las acciones idóneas que pueden generar soluciones al problema.

En su trabajo de programa científico de investigación, Lakato indicó que todo

programa contempla una estructura que puede servir como guía de modo positivo o

negativo.

En relación a lo anterior, la heurística positiva es aquella que establece las directrices

de cómo desarrollar un programa de investigación. En cambio, la heurística negativa de

un programa señala lo que no se puede cambiar, ni modificar, conocido como el núcleo

central.

Por ejemplo, en informática la heurística consiste en encontrar o construir algoritmos

con buena velocidad para ser ejecutados como los juegos informáticos o los programas

que detectan si un correo electrónico es un spam o no.

Creación de índice

Los índices nos ayudan a obtener datos de las tablas en forma más rápida. Utilicemos

un ejemplo para ilustrar este punto: Digamos que estamos interesados en leer en un libro

de jardinería acerca de cómo cultivar pimientos. En vez de leer el libro desde el comienzo

hasta que encontremos una sección sobre pimientos, es mucho más rápido para nosotros

ir a la sección índice al final del libro, ubicar qué páginas contienen la información sobre

pimientos, y luego dirigirnos a esas páginas directamente. Al dirigirnos al índice primero

ahorramos tiempo y seguramente es el método más eficiente para ubicar la información

que necesitamos.
5

El mismo principio se aplica para la obtención de datos desde una tabla de base de

datos. Sin un índice, el sistema de base de datos lee a través de toda la tabla (este proceso

se denomina “escaneo de tabla”) para localizar la información deseada. Con el índice

correcto en su lugar, el sistema de base de datos puede entonces primero dirigirse al índice

para encontrar de dónde obtener los datos, y luego dirigirse a dichas ubicaciones para

obtener los datos necesarios. Esto es mucho más rápido.

Ejecución de consultas

La ejecución de consultas y sentencias en un plan de ejecución de consultas gráfico

es mostrada por íconos. Cada ícono tiene un color específico y representa una acción

específica. Como se muestra en Viendo los planes, los planes de ejecución de consultas

también pueden ser mostrados como XML. La presentación gráfica provee un

entendimiento rápido de las características y estructura básica del plan, por lo tanto, es

útil para el análisis del desempeño. También provee suficiente información para un

análisis más profundo.

• El plan de ejecución de consultas gráfico tiene la forma de un árbol. La estructura de

árbol depende de las sentencias en la consulta

• Cada consulta en un lote es mostrada en el plan

• Cada ícono presenta un operador

• Los íconos son leídos de derecha a izquierda, de arriba abajo

• El árbol muestra nodos a nivel de padres e hijos

• Cada nodo hijo está conectado a un nodo padre por flechas

• El costo de cada consulta está presentado como un porcentaje del costo total del lote.
6

El costo es el tiempo necesario para ejecutar un/a sentencia/consulta/lote. El costo

total de cada lote, por ejemplo, la suma de los costos individuales de las consultas debería

ser 100%. De todas maneras, es posible que incluso en los planes de ejecución de

consultas actuales para consultas costosas, estos costos son mal calculados y la suma es

mayor a 100%.

7.3. Estimación de Costos de Procesamiento de consultas

Datos compartidos a través de una red de nodos donde cada nodo es una BD

Homogénea.

–Localización de los datos para formular reglas heurísticas.

–Descomposición

•Consultas en paralelo en cada nodo

–Costo de transferencia de los datos sobre la red.

*Diferencias con BD Distribuidas:

•Diferencias de capacidades en cada fuente


7

–Las fuentes pueden ser sistemas legados con interfaces a los datos muy limitadas.

–Aún si todos los datos están almacenados en DBMS tradicionales estos pueden

proveer acceso limitado por seguridad o performance.

–Pueden tener procesamientos de consultas adicionales.

•Información sobre las fuentes y la red no disponible

–Costo local de las consultas es desconocido

–Difícil de estimar las estadísticas sobre los datos

–Costos de transferencias impredecibles.

Problema de la Autonomía:

–Control completo sobre los datos locales

–Sitios libres de unirse o no al sistema (autónoma de comunicación)

–Optimizador de consultas locales (autónoma de diseño)(Hace que la estadística

global de costo quede desactualizada)

–Cooperan a través de la interface, no hay oportunidad de cooperación abajo nivel

(no semi-join).

Optimización por Costos

● Plan Físico

– Le asocia a cada operador del álgebra que aparece en un plan lógico, una

implementación.

– Como se pueden considerar diferentes implementaciones para cada operador,

entonces un mismo plan lógico puede originar diferentes planes físicos.


8

– Es necesario estimar el costo (cantidad de operaciones de I/O) de los diferentes

planes que se generen y elegir el de costo mínimo.

● Para evaluar el costo, es necesario considerar ciertos parámetros que tienen

influencia en el cálculo de la cantidad de operaciones de I/O.

Parámetros para la estimación de costos y tamaños.


9

7.4 Balanceo de Carga

Cuando un router detecta varias rutas a una red específica a través de varios procesos

de ruteo (o protocolos de ruteo, como RIP, RIPv2, IGRP, EIGRP y OSPF), instala la ruta

con la mínima distancia administrativa en la tabla de ruteo. Consulte Selección de Rutas

en Routers de Cisco para obtener más información.

A veces, el router debe seleccionar una ruta entre varias que se detectaron a través

del mismo proceso de ruteo con la misma distancia administrativa. En este caso, el router

elige la trayectoria con el costo más bajo (o la métrica más baja) hacia el destino. Cada

proceso de ruteo calcula su costo de forma diferente y es posible que se deban manipular

los costos para alcanzar el balanceo de carga.

Si el router recibe e instala varias trayectorias con el mismo costo y la misma

distancia administrativa a un destino, puede ocurrir el balanceo de carga. La cantidad de

trayectorias que se utilizan está limitada por la cantidad de entradas que el protocolo de

ruteo coloque en la tabla de ruteo. El valor predeterminado es cuatro entradas en el IOS

para la mayoría de los protocolos de ruteo IP, con la excepción de Border Gateway

Protocol (BGP), donde el valor predeterminado es una entrada. La cantidad máxima es

seis trayectorias diferentes configuradas.

Los procesos de ruteo IGRP y EIGRP también soportan el balanceo de carga de

costos desiguales. Puede usar el comando variance con IGRP y EIGRP para lograr el

balanceo de carga de costos desiguales. Ejecute el comando maximum-paths para

determinar la cantidad de rutas que se pueden instalar según el valor configurado para el

protocolo. Si usted configura la tabla de ruteo en una entrada, inhabilita el balanceo de

carga. Consulte ¿Cómo Funciona el Balanceo de Carga de Trayectorias de Costos

Desiguales (Variación) en IGRP y EIGRP? para obtener más información sobre la

variación.
10

Usualmente, puede utilizar el comando show ip route para encontrar rutas de costos

iguales. Por ejemplo, a continuación, se incluye el resultado del comando show ip

router de una subred en particular que tiene varias rutas. Observe que hay dos bloques del

descriptor de ruteo. Cada bloque es una ruta. Hay también un asterisco (*) al lado de una

de las entradas de bloque. Esto corresponde a la ruta activa que se utiliza para el tráfico

nuevo. El término “tráfico nuevo” corresponde a un solo paquete o a un flujo entero a un

destino, según el tipo de switching configurado.

• Para el process switching, el balanceo de carga ocurre por paquete y el asterisco (*)

apunta a la interfaz mediante la cual se envía el siguiente paquete.

• Para el fast switching, el balanceo de carga ocurre por destino y el asterisco (*) apunta

a la interfaz a través de la cual se envía el flujo basado en el siguiente destino.

7.6 Trabajo práctico.

Antes de avanzar necesitamos conocer el plan de ejecución de la consulta, para

esto nos dirigimos a sql server y clickeamos en “ENGINE QUERY”

Imagen 145: Crear query sql

Escribimos nuestra consulta (Previamente tratada, porque en sql server no está en

mayúscula)
11

Imagen 146: Desarrollo query sql

Una vez que se terminó de escribir la consulta, damos click en “Display Estimated

Execution Plan” para visualizer el plan de ejecucion.

Imagen 147: Plan de ejecución del query

TEST N°1

Anteriormente realizamos una migración de datos a nuestra base de datos

“MIGRATION”. Usaremos esa base de datos para nuestra práctica de rendimiento, así

que iniciamos el servicio de Interbase e iniciamos también la consola.


12

Ya en la consola, realizaremos una consulta para conocer el tiempo de respuesta

del sistema.

Imagen 148: Plan de ejecución del query en IBConsole

Interbase cuenta con su propio cronómetro, pero éste no muestra el tiempo de

respuesta al mostrar todos los resultados, por este motive se dio uso a un cronómetro

independiente, y éste arrojó el siguiente resultado:

Imagen 149: Tiempo de respuesta del query IBConsole


13

Ahora para ejemplo, crearemos un indice, éste nos ayudará a conseguir los datos

necesarios para nuestra consulta. A continuación, veremos como crear un índice.

Damos click derecho sobre la barra de información de índices y nos dirigimos

hacia “Create” y lo clickeamos, nos aparecerá una ventana.

Imagen 150: Crear indices

Colocamos el nombre del índice y seleccionamos la tabla con la que trabajaremos,

en este caso, trabajaremos con la table “DETALLEVENTAS”, una vez seleccionado la

tabla buscaremos los campos que usaremos con el índice.

Imagen 151: Crear índices, tabla DETALLEVENTAS


14

Para seleccionar el campo, solo damos click en el nombre y clickeamos en Add

Column para pasar el campo para su uso. Para este ejercicio, selecionaremos los campos

TRANSVENTA y PRECIO.

Imagen 151: Crear índices, tabla DETALLEVENTAS

Una vez seleccionados los campos, damos en “OK” y contimuamos.

Imagen 152: Crear índices, tabla DETALLEVENTAS parte 2


15

De la misma forma creamos los índices para las demás tablas.

Imagen 153: Crear índices, tabla IDX_VENTAS

Imagen 154: Crear índices IDX_UNIDADMEDIDA


16

Imagen 155: Crear índice IDX_PRODUCTO

Imagen 156: Crear índice IDX_DETALLEVENTAS


17

Reiniciamos nuestro equipo y volvemos a ejecutar interbase, esto para eliminar la

memoria caché y no tener problemas con los resultados de la misma consulta.

Realizamos la misma consulta, y verificamos que el tiempo de respuesta a

disminuido, demostrando así la efectividad de usar índices para mejorar el rendimiento

de una consulta.

Imagen 157: Consulta TEST 1

Y el tiempo que duró en mostrar todos los resultados es de:


18

Imagen 158: Tiempo de respuesta consulta TEST 1

TEST N°2

Borramos los índices creados, reiniciamos nuestro equipo. Cuando termine de

reiniciar el computador, abrimos interbase y creamos solo un índice. En este test

crearemos un indice para la table VENTAS que contedrá su campo: FechaVenta.

Imagen 159: Crear nuevo índice, IDX_VENTAS


19

Realizamos la misma consulta y esperamos el resultado.

El resultado es mucho mejor que en el test anterior.

Imagen 160: Nuevo tiempo de respuesta, solo un indice

CONCLUSIONES DEL CAPÍTULO

1. El uso innecesario de índices afecta el tiempo de respuesta del gestor.

2. La diferencia de tiempo es notable entre el tiempo de respueta del TEST N°1

CON EL TEST N°2.

3. La reduccion de tiempo se logró al crear un indice para el plan de ejecucion,

ya que el temenos una condicion con la tabla VENTAS, y la creación de este

indice ordena los datos de manera que, la consulta se realice de forma rápida.
CAPÍTULO 8

Encriptación

8.1. Criptología e encriptación de datos

8.1.1 criptologia

Criptografía o criptología es la ciencia de codificar y decodificar mensajes. Crypto

en griego significa secreto u oculto. Se suele distinguir la criptografía como el diseño de

criptosistemas para codificar y decodificar mensajes; y el criptoanálisis se dedica a

romper y descifrar criptosistemas sin conocimientos previos del funcionamiento del

mismo.

8.1.2 encriptacion de datos

La encriptación de datos o cifrado de archivos es un procedimiento mediante el

cual los archivos, o cualquier tipo de documento, se vuelven completamente ilegibles

gracias a un algoritmo que desordena sus componentes. Así, cualquier persona que no

disponga de las claves correctas no podrá acceder a la información que contiene.

8.2 Métodos de encriptación

Gronsfeld: Este método utiliza más de un alfabeto cifrado para poner en clave el

mensaje y que se cambia de uno a otro según se pasa de una letra del texto en claro a otra.

Es decir que deben tenerse un conjunto de alfabetos cifrados y una forma de hacer

corresponder cada letra del texto original con uno de ellos.


Método de transposición: En nuestro repaso por los métodos clásicos de

criptografía, nos centramos en el método de transposición, origen y fundamento de otros

sistemas de cifrado más complicados.

El método de transposición consiste en reordenar los elementos que forman el texto

original, de modo que el criptograma resultante tiene los mismos elementos pero su nueva

colocación impide que se pueda entender.

Ejemplo:

computación

Una transposición muy simple, y por tanto poco efectiva, podría consistir en escribir el

mensaje al revés, con lo que quedaría:

nóicatupmoc

Método César: Ahora vamos a conocer uno de los sistemas más clásicos de la

Historia de esta disciplina: el método César, cuyo origen se sitúa en el siglo I antes de

Cristo.

Este sistema se basa en el método de sustitución mono alfabética, es decir, el

proceso de sustitución se lleva a cabo en cada uno de los elementos del texto claro.

En el método César, a cada letra le corresponde la que está 3 posiciones por

delante en un proceso circular que recorre todo el alfabeto. Por ejemplo, a la letra «a» le

corresponde la «d», a la «b» la «e», y así sucesivamente. Cuando hablamos de proceso

circular nos referimos a que si llegamos al final del alfabeto, por ejemplo la «z», se
entiende que volvemos al principio del mismo, por lo que tras contar tres posiciones a la

«z» le corresponde la letra «c», a la «y» le corresponde la «b» y a la «x», la «a».

En términos más formales podríamos describir al método César como

Criptograma(i) = Texto_claro(i) + 3 (mod 26),

(i) es la posición de las letras y (mod 26) indica que se trata de una suma módulo 26, en

la que 26 es el número de letras del alfabeto que utilizamos.

Para entenderlo más claramente vamos a realizar un sencillo ejemplo:

Texto claro: p a n t a l l a

Criptograma: s d q w d o o d

Como puede apreciarse, este método arrastra las debilidades propias de los

algoritmos de sustitución. En vez de utilizar siempre la suma de 3 posiciones podría

cambiarse este valor por otro cualquiera. En cualquier caso, y para dar con la solución,

podemos acudir a un sencillo criptoanálisis basado en la frecuencia de los elementos del

criptograma.

Observamos que la letra que más se repite es la «d». Acudiendo a datos

estadísticos del lenguaje nos encontramos con que dos de las letras que más se repiten

son las vocales «a» y «e» (tanto en español, como en inglés).

Una prueba básica consiste en ver la diferencia que hay entre el elemento más

repetido, la «d», y estas vocales. En el caso de la «a» nos da un valor de 3 posiciones de

diferencia, y el valor 25 al calcular la diferencia con la letra «e». Para probar si la solución
corresponde a uno de los dos casos más probables, tan solo tenemos que aplicar el mismo

método, pero restando. Al restar 25 nos da lo siguiente:

Criptograma: s d q w d o o d

Resta 25: t e r x e p p e

Como vemos, en este caso el intento sería fallido, ya que el proceso nos devuelve

un nuevo texto sin sentido. Si ahora lo intentamos con el valor 3, otro de los probables

según la frecuencia de las letras, obtenemos la solución.

Criptograma: s d q w d o o d

Resta 3: p a n t a l l a

• RSA: En los sistemas tradicionales de cifrado debe comunicarse una clave entre

el emisor y el receptor del mensaje, el problema aquí es encontrar un canal seguro

para transmitir dicha clave. Este problema viene a resolverse en los sistemas de

clave pública la clave de cifrado, pues un tiempo enormemente de ordenador es

necesario para encontrar una transformación de descifrado a partir de la de cifrado.

• DES: DES fue desarrollado por IBM a mediados de los setenta. Aunque tiene un

buen diseño, su tamaño de clave de 56 bits es demasiado pequeño para los

patrones de hoy.

DES (Data Encryption Standard) es un mecanismo de encriptación de datos de

uso generalizado. Hay muchas implementaciones de hardware y software de DES.

Este transforma la información de texto llano en datos encriptados llamados texto

cifrado mediante el uso de un algoritmo especial y valor semilla llamado clave. Si


el receptor conoce la clave, podrá utilizarla para convertir el texto cifrado en los

datos originales. Es un mecanismo de encriptado simétrico.

• Chaffing & Winnowing: Esta técnica propuesta por Donald Rivest. Es más un

intento de esquivar las restricciones a la criptografía en EE.UU. (y otros países)

que una propuesta razonable debido al tamaño de los mensajes resultantes.

El término inglés “winnowing” se tomará como aventar es decir separar el grano

de la paja y el término “chaffing” por el castellano empajar (cubrir o rellenar con

paja). La idea básica consiste en mezclar la información real (grano) con otra de

relleno (paja) de modo que sea imposible separarlas excepto para el destinatario.

• SKIPJACK: Este algoritmo fue descalificado por el gobierno de Estados Unidos.

Algunos detalles sobre el algoritmo en sí y sus aplicaciones en la práctica a los

chips Clipper y Capstone.

Skipjack fue desarrollado por la NSA inicialmente para los chips Clipper y

Capstone. Su diseño comenzó en 1985 y se completó su evaluación en 1990.

• BÍFIDO: El método Bífido es un cifrado fraccionario. Es decir que cada letra

viene representada por una o más letras o símbolos, y donde se trabaja con estos

símbolos más que con las letras mismas.

• WLBYKYAAOTB: Este método altera la frecuencia de los caracteres a diferencia

de lo que ocurre por ejemplo con los cifrados monoalfabéticos. Admite algunas

variaciones como por ejemplo dividir la lista en 3,4,…, n partes.

• Cifrado exponencial: Es un sistema basado en la exponenciación modular,

debido Pohlig y Hellman (1978). Este método es resistente al criptoanálisis.


• Blowfish: Este algoritmo realiza un cifrado simple en 16 ciclos, con un tamaño de

bloque de 64 bytes para un total de 448 bits. Aunque hay una fase compleja de la

inicialización. El cifrado de datos es muy eficiente en los microprocesadores

grandes.

Método Vigenére: Hasta el momento, en nuestros anteriores ejemplos en los que

hemos visto métodos clásicos de cifrado, hemos repasado algoritmos cuyo criptograma

no dependía de una clave externa, o que ésta era fija. En el sistema que sigue, el cifrado

de Vigenère, observaremos cómo el cifrado va tomando diferentes valores en función de

la clave que elijamos.

Tanto en los métodos de sustitución, como en los de transposición, las modificaciones

a los que sometíamos el texto claro eran fijas, bien teniendo en cuenta la correspondencia

con un segundo alfabeto en el caso de la sustitución, o en barajar las letras en función de

un algoritmo preestablecido en las transposiciones.

El cifrado de Vigenère utiliza una clave externa para realizar las sustituciones, con lo

que este mismo algoritmo puede dar diferentes criptogramas para el mismo texto claro en

función de la clave que utilicemos.

Veamos un sencillo ejemplo para ilustrar este método:

Texto claro: s e g u r i d a d

Clave de cifrado: a b c

Para llevar a cabo el cifrado dividimos el texto claro en grupos de tantas letras

como tenga la clave, y a continuación las hacemos corresponder con las letras de la clave

de cifrado:
Texto claro: s e g u r i d a d

Clave: a b c a b c a b c

El proceso de sustitución es similar al método César, por el que a cada letra del

texto claro le corresponde la que está 3 posiciones después en el alfabeto. En esta ocasión,

el número de posiciones que debemos contar viene dado por la posición que ocupa en el

alfabeto la letra clave que le corresponde. Así, cuando la clave sea la letra «a»,

avanzaremos una posición, si la clave es «b» serán dos, y si fuera «c» serán 5.

En el ejemplo que nos ocupa, en primer lugar deberíamos transformar la letra «s»

del texto claro según su clave «a», es decir, avanzamos una letra en el alfabeto, el

resultado será «t». En el segundo caso, la letra «e» según la clave «b» dará una «g»,

porque se avanza dos posiciones.

Texto claro: s e g u r i d a d

Clave: a b c a b c a b c

Criptograma: t g l v t n e c i

Resultado final: t g l v t n e c i

Ahora que conocemos el proceso, vamos a comprobar cómo, cambiando la clave

de cifrado y con el mismo texto claro, obtenemos un criptograma totalmente diferente:

Clave: bcbc

Texto claro: s e g u r i d a d – – –

Clave: b c b c b c b c b c b c
Criptograma: u j i z t n f f f – – –

Resultado final: u j i z t n f f f

Para poder realizar el descifrado la única condición es conocer la clave que se ha

utilizado en el proceso, y hacer los pasos a la inversa. Partiendo del criptograma,

tendremos que dividir en grupos según la clave y, en esta ocasión, restar posiciones en

vez de sumar.

• Este método es algo más seguro que los vistos con anterioridad, debido

principalmente a que el criptograma varía según una clave externa, no conocida

en principio por un hipotético atacante. Sin embargo se ha demostrado que no

resulta difícil romper este cifrado utilizando técnicas de criptoanálisis basadas en

la incidencia de coincidencias en el criptograma.

• Sistemas de clave pública: Un sistema criptográfico de clave pública es tan seguro

como su clave. La distribución de las claves debe ser manejada sobre canales

altamente seguros. Esto suele consumir mucho tiempo. A veces, tales canales de

seguridad no están disponibles.

En el sistema criptográfico convencional el cifrado y descifrado están íntimamente

relacionados. Estos sistemas usan una clave encriptada, E, y un clave descifrado, D, de

manera que no es computacionalmente viable (dentro de un tiempo razonable) determinar

E a partir de D.

De esta forma, E puede ser hecha pública sin comprometer la seguridad de D. Esto

simplifica el problema de la distribución de la clave. Cada usuario genera una clave de

cifrado y una de descifrado, la clave de cifrado está hecha pública y la clave cifrada se
mantiene secreta. Así cualquiera puede enviar un mensaje encriptado a un usuario

particular (porque la clave de cifrado es pública), pero solo aquellos usuarios pueden

descifrar el mensaje (porque la clave de descifrado es privada). E es llamada una clave

pública y D es llamada una clave privada.

8.3 Firmas digitales

Según especifica Wikipedia, una firma digital es un esquema matemático que

sirve para demostrar la autenticidad de un mensaje digital o de un documento electrónico.

Una firma digital da al destinatario seguridad en que el mensaje fue creado por el

remitente, y que no fue alterado durante la transmisión.

Consiste en un método criptográfico que asocia la identidad de una persona o de

un equipo informático al mensaje o documento. En función del tipo de firma, puede,

además, asegurar la integridad del documento o mensaje.

La firma digital de un documento es el resultado de aplicar cierto algoritmo matemático,

denominado función hash, a su contenido y, seguidamente, aplicar el algoritmo de firma

(en el que se emplea una clave privada) al resultado de la operación anterior, generando

la firma electrónica o digital. El software de firma digital debe además efectuar varias

validaciones, entre las cuales podemos mencionar:

* Vigencia del certificado digital del firmante,

* Revocación del certificado digital del firmante,

* Inclusión de sello de tiempo.


CAPÍTULO 9

Disponibilidad

9.1. Definición e Importancia de una Disponibilidad

Nos referimos a este término cuando hablamos del acceso de personas u

organismos a los datos con los que se trabaja. El departamento de informática debe poner

en marcha determinados mecanismos que garanticen que los interesados que estén

autorizados a acceder a esta información puedan hacerlo de forma segura y sencilla. Es

clave que el informático garantice que se pueda acceder tanto a estos datos como a

procesos en sí en cualquier momento de forma rápida y sencilla y solucionar posibles

problemas cuando puedan surgir.

En su nivel más simple, disponibilidad ya sea alta, baja, o en un término medio,

es una medida de tiempo que el sistema está funcionando normalmente. De lo cual se

puede tener una ecuación para calcular la disponibilidad:

D = TMEF/( TMEF + TMRF)

Donde D es el grado de disponibilidad expresado como porcentaje, TMEF es el tiempo

medio entre fallas, y TMRF es el máximo tiempo para reparar o resolver un problema

particular.

La disponibilidad informática forma parte del día a día de una empresa, por lo que

conocer los mecanismos a poner en marcha y las estrategias de seguridad necesarias para

poder garantizar la seguridad del proceso es crucial para cualquier compañía.

Recuerda que este concepto va muy unido a otros como la confidencialidad, que trabaja

con el objetivo de evitar el conocimiento de determinados datos por personas no

autorizadas; la integridad, que se orienta a la no manipulación de la información y a la


autenticación, como un proceso de comprobación de la identidad de las personas y

entidades con acceso.

Así, un buen servicio de disponibilidad de la información trabaja constantemente

en la garantía del acceso a las personas autorizadas a ello y en los procesos de seguridad

necesarios para evitar un ataque que lo impida en algún momento. Incorporar procesos

de este tipo al día a día de una compañía es un recurso que muchas empresas deberían

valorar.

9.2. Copia de Seguridad (Backups) de una Base de Datos

El backup es una palabra inglesa que en ámbito de la tecnología y de la

información, es una copia de seguridad o el proceso de copia de seguridad. Backup se

refiere a la copia y archivo de datos de la computadora de modo que se puede utilizar para

restaurar la información original después de una eventual pérdida de datos. La forma

verbal es hacer copias de seguridad en dos palabras, mientras que el nombre es copia de

seguridad.

Los respaldos tiene dos propósitos diferentes, el primer propósito es la

recuperación de datos después de su pérdida ya sea por la eliminación o corrupción de

datos, la pérdida de datos puede ser una experiencia común de los usuarios de

computadoras. Una encuesta de 2008 encontró que el 66 % de los encuestados había

perdido los archivos en su ordenador doméstico.

El segundo propósito de las copias de seguridad es la recuperación de los datos de

una época anterior, de acuerdo con una política de retención de datos definidos por el

usuario, que por lo general es configurado en una aplicación de copia de seguridad de

cómo se requieren largos copias de los datos, aunque las copias de seguridad representan
popularmente una forma simple de recuperación de desastres y deben formar parte de un

plan de recuperación de desastres por sí mismos.

Una de las razones de esto es que no todos los sistemas de copia de seguridad o

aplicaciones de copia de seguridad son capaces de reconstruir un sistema informático u

otras configuraciones complejas, como un clúster de ordenadores, que son servidores de

directorio activo o un servidor de base de datos, mediante la restauración de sólo los datos

de una copia de seguridad.

9.3. Técnicas de Recuperación de Datos para la restauración de una base de datos

corrupta a un estado previo libre de daños.

Existen diversos métodos para la restauración de una base de datos corrupta a un

estado previo libre de daños. El tipo de técnica de recuperación usado en cada situación

determinada depende de varios factores, incluyendo los siguientes:

La extensión del daño sufrido por la base de datos.

El nivel de actividad de la base de datos. Las técnicas de recuperación son fáciles

de implementar en bases de datos que se modifican con escasa frecuencia. Por el

contrario, resulta mucho más difícil y caro el diseño de técnicas de recuperación para

bases de datos que se están actualizando continuamente.

La naturaleza de la información de la base de datos. Para algunos tipos de datos,

la pérdida de una pequeña cantidad de información puede no resultar particularmente

crítica. En otras situaciones, tales como bases de datos financieras, no es aceptable

ninguna pérdida de datos, independientemente de su cuantía. Los dos tipos de

circunstancias requieren muy diferentes aproximaciones en lo que se refiere a fiabilidad

y recuperación.
Copias de seguridad de la base de datos

Para poder efectuar cualquier tipo de restauración de una base de datos, es

necesaria la realización de copias de seguridad (backups) de la base de datos de forma

periódica. Este proceso consiste en la escritura de una copia exacta de la base de datos en

un dispositivo magnético separado del que contiene a la propia base de datos. En los

sistemas más grandes, este dispositivo suele ser una cinta magnética. En los sistemas

basados en microordenadores, puede tratarse de un cartucho de cinta de casete, o de uno

o más discos flexibles. Habitualmente, mientras se está generando una copia de seguridad

es preciso detener todas las demás actividades de la base de datos.

Un método sencillo de recuperación

El método más simple de recuperación de una base de datos es el expuesto a

continuación. Periódicamente, quizá una vez cada día, se realiza una copia de seguridad

de la base de datos. Comenzando a partir del momento en el que se hace cada copia, se

lleva manualmente una lista física, o diario (log), de todos los cambios subsiguientes que

se efectúan en la base de datos. Si la base de datos es dañada o destruida, para recuperarla

es preciso seguir la secuencia de pasos siguiente:

- Reparar el problema de hardware o software que causó la caída del sistema.

- Restaurar la base de datos a partir de la copia de seguridad más reciente. Esto no restaura

la base de datos a su estado en el instante en el que tuvo lugar el daño.

- Volver a introducir manualmente en la base de datos los cambios realizados desde que

se hizo la copia, usando la lista física.


Diarios de transacciones y restauración/reejecución

Una extensión de la técnica anterior consiste en el mantenimiento automático de

un fichero de ordenador, que contenga una lista de los cambios hechos en la base de datos

entre dos copias de seguridad consecutivas. Esta lista se conoce como diario de

transacciones, y se mantiene siempre en un dispositivo físico diferente del que almacena

a la propia base de datos. Habitualmente se utiliza para este propósito una unidad de cinta

magnética, o una unidad de disco diferente. La razón para usar un dispositivo separado

es simplemente que si la base de datos resulta dañada, la causa de dicho daño no tiene por

qué afectar a los datos almacenados en un dispositivo físico diferente.

La forma de utilizar un diario de transacciones como ayuda para la restauración

es idéntica a la que ya se ha descrito, excepto en la última etapa. En este caso, la

restauración de las transacciones anotadas en el diario las realiza una utilidad del SGBD,

que devuelve la base de datos al estado inmediatamente anterior al momento del fallo.

Este proceso se conoce habitualmente como restauración/reejecución.

Recuperación por retroceso

La recuperación por retroceso resulta útil en situaciones en las que el

procesamiento de la base de datos se ve interrumpido, pero la base de datos en sí no resulta

dañada de forma alguna. Un ejemplo de esto podría ser algún tipo de fallo que produzca

una terminación anormal de la ejecución del SGBD. Las transacciones en marcha podrían

ser abortadas antes de su finalización, y los registros asociados a las mismas quedarían en

estados desconocidos, aunque el resto de la base de datos no se vería afectada.

La técnica de recuperación por retroceso requiere que el diario de transacciones

contenga imágenes iniciales de cada registro de la base de datos que haya sufrido

modificaciones desde la última copia de seguridad. Una imagen inicial es una copia de
un registro tal como se encontraba inmediatamente antes de ser modificado como parte

de una transacción, es decir, justo antes del inicio de dicha transacción.

El procesado de recuperación por retroceso conlleva que después de que se haya colocado

nuevamente en funcionamiento el SGBD, con la base de datos correcta, tal como estaba

cuando tuvo lugar la interrupción, se pase a procesar el diario de transacciones. Para cada

transacción incompleta anotada en el diario se reemplaza la versión actual del registro de

la base de datos por la imagen inicial correspondiente. Así, cada registro de la base de

datos que ha sufrido modificaciones durante una transacción no completada es devuelto

a su estado inicial, antes del comienzo de la transacción. El resultado de este proceso es

la eliminación de la base de datos de todas las huellas de transacciones incompletas, es

decir, las que estaban en marcha cuando tuvo lugar la caída.

La cantidad de esfuerzo necesaria para efectuar una recuperación por retroceso

puede ser mucho menor que la que se necesita para una recuperación por

restauración/reejecución. Por ejemplo, supongamos que se han grabado 1000

transacciones en un diario entre el momento en que se hizo la última copia de seguridad

y el instante del fallo (un fallo que no dañe a la base de datos). Supongamos asimismo

que en el instante del fallo se encuentran en marcha 5 transacciones. Con la técnica de

restauración/reejecución, la base de datos debe ser restaurada a partir de la última copia,

por lo que habrá que procesar 995 transacciones. Por su parte, una recuperación por

retroceso parte de la base de datos tal como se encuentra, limitándose a deshacer los

efectos de las 5 transacciones incompletas.

Recuperación por adelanto

El adelanto es otro tipo de mecanismo de recuperación, que se usa a menudo

cuando una base de datos ha sido dañada y debe, por tanto, ser restaurada a partir de una
copia de seguridad. Se parece a la técnica del retroceso, y comparte con ésta la ventaja de

que es mucho más rápida que el método de restauración/reejecución. Requiere que el

diario de transacciones contenga una imagen final de cada registro de la base de datos que

ha sido modificado desde la última copia. Una imagen final es una copia de un registro,

inmediatamente después de haber sido modificado como parte de una transacción, es

decir, en el estado en que se encuentra al finalizar dicha transacción.

En su forma más simple, esta técnica consta de dos etapas:

1. Después de un fallo que produce un daño en la base de datos, se utiliza la última

copia de seguridad para restaurarla.

2. Se procesa el diario, a partir del punto en que se efectuó la última copia de

seguridad. Para cada transacción completada anotada en el diario, se sustituye la versión

actual del registro de la base de datos por la imagen final correspondiente.

Esta técnica es considerablemente más rápida que la de restauración/re ejecución, ya que

la sustitución de un registro por su imagen final lleva mucho menos tiempo que el proceso

de recreación de la base de datos completa a partir de la copia de seguridad.

9.4. Alta Disponibilidad, Estrategias (Ejem. Clustering, Replicación, Otros) depende

de cada Gestor cuál de ellos soporte.

Clustering: es una técnica de minería de datos (data mining) dentro de la

disciplina de Inteligencia Artificial que identifica de forma automática agrupaciones o

clústeres de elementos de acuerdo a una medida de similitud entre ellos. El objetivo

fundamental de las técnicas de clustering consiste en identificar grupos o clústeres de

elementos tal que: La similitud media entre elementos del mismo clúster sea alta.

Similitud intra-clúster alta. La similitud media entre elementos de distintos clústeres sea

baja. Similitud inter-clúster baja. La identificación de clústeres o grupos de elementos se


basa en una medida de similitud. Diferentes medidas de similitud dan lugar a diferentes

clústeres.

Replicación: es el proceso de copiar y administrar objetos de base de datos, tales

como tablas, hacia múltiples bases de datos en localidades remotas que son parte de un

sistema de bases de datos distribuido. Los cambios ejecutados en una localidad son

capturados y guardados localmente antes de ser aplicados a las localidades remotas.

Replicación de datos como método de alta disponibilidad 38 Los términos sistemas de

bases de datos distribuidas y replicación de bases de datos, están relacionados, pero no

son equivalentes. Mediante la replicación de base de datos, usuarios de todo el mundo

pueden estar accediendo a lo que para ellos son los mismos datos, aunque en realidad,

físicamente esos datos pueden estar de forma transparente para el usuario, en diferentes

nodos o localidades.
9.5 Demostración de las Herramientas de Disponibilidad en el Gestor

9.5.1 Haga un ejemplo de cómo sacar una copia de seguridad y como restaurarlo,

además de ciertas opciones de configuración de copias de seguridad propias de

cada gestor.

Primero damos click derecho sobre la base de datos de la que necesitamos sacar una copia

de seguridad o Backup.

Se abrirá un cuadro en el que podremos dar una ruta o ubicación que servirá de destino

para el backup.
Después de haber realizado estos pasos, procedemos a restaurar el backup creado, para lo

cual debemos crear una nueva base de datos en la cual irá a parar la restauración del

backup, luego seleccionamos la ubicación del backup y la base de datos recién creada.
1. Implemente una copia de seguridad automática (programada) a una cierta

hora y fecha.

En este caso, creamos un archivo “bat” el cual ejecuta la tarea de sacar un backup a cierta

base de datos.
De esta manera se generará un back up automáticamente en la ruta especificada,

para programar la hora, día, semana o mes que se sacará el backup, podemos usar el

Programador de Tareas de Windows:

Fijamos los desencadenadores:


Y la acción que se realizará, en este caso pegamos la ruta de donde se encuentra el archivo

“gbak.bat”

Entonces, aquí podemos observar la carpeta donde están tanto la Base de datos, el archivo

gbak.bat y el gbak.exe necesario para q se ejecute el archivo por lotes.


Al llegar el momento en el que se ejecutará automáticamente el gback.bat a través del

programador de tareas de Windows sucede lo siguiente:

Podemos ver que se generó exitosamente un backup de la base de datos.


9.5.2 En el hipotético caso de que no existiera una copia de seguridad y solo

tuviéramos los archivos físicos de la base de datos. Indique el

procedimiento a seguir en su Gestor para volver a poner activa la base de

datos.

Aquí hay bastante facilidad de poder llevar una base de datos de una máquina a otra, lo

único que se necesita es tener el gestor de base de datos InterBase instalado en el otro

ordenador, si hipotéticamente surge un problema con el sistema operativo de la laptop en

la cual trabajo la base de datos “DBA”, y no puedo ingresar a ninguno de los archivos por

tener dañado el sistema operativo. De alguna manera, extrayendo directamente del disco

duro de la máquina afectada, el archivo de la base de datos “DBA” en la cual estaba

trabajando, solo lo copio y lo pego en otro ordenador que esté en buen funcionamiento y

tenga instalado InterBase.

Por lo tanto, copiamos en un USB el archivo original (DBA.IB) para pasarlo a otro pc, en

el segundo pc abrimos InterBase y añadimos la base de datos y listo ya podemos volver

a usarla.

Vous aimerez peut-être aussi