UNIVERSIDAD NACIONAL DE SAN MARTÍN -1-
[Capte la atención de los lectores mediante una cita importante extraída del documento o utilice este
espacio para resaltar un punto clave. Para colocar el cuadro de texto en cualquier lugar de la página, sol o
FACULTAD DE INGENIERÍA DE SISTEMAS E
tiene que arrastrarlo.]
INFORMÁTICA
Manual de uso
InterBasee R
AUTORES:
Ing. Andy Hirvyn Rucoba Reategui
Leydi Pintado Pompa
Deisy Fiorela Quinteros Mendoza
Autores: Javier Córdova Montalván
Alejandro Zorrilla Olivera
2
CAPÍTULO I
Evolución histórica del gestor de base de datos
1.1¿Que es Interbase?
Es un sistema de gestión de bases de datos relacionales (RDBMS), Interbase se destaca
de otros DBMS´S por su trabajo consumo de recursos, su casi nula necesidad de
administración y su arquitectura multi-general. Interbase es un sistema de
administración de bases de datos relacionales disponible para diferentes plataformas.
Hablar de Interbase es hablar de una herramienta que cubre las expectativas que puedan
surgir a un programador de aplicaciones de gestión con conocimientos de SQL y
administración de Bases de datos (Méndez, 2017)
1.2 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
3
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. (Méndez,
2017)
1.3. Hechos trascendentales
En 1985 Interbase comenzó como Groton Database Systems y al poco tiempo fue
renombrado como Interbase.
1.3.1 Comienzos
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 InterBase
4
en 1986. “Apollo Computer” sufrió un inconveniente corporativo y decidió dejar
el negocio del software, pero en ese tiempo el producto ya estaba generando dinero.
(Méndez, 2017)
1.3.2 El camino hacia Borland
Entre 1986 y 1991 el producto fue gradualmente vendido a Ashton-Tate, creadores del
famoso DATABASE, 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 Interbase como parte del trato.
1.3.3 Código libre
A principios del año 2000, la compañía Borland anunció que el código de Interbase
sería liberado (código libre) en la versión 6.0 y comenzó las negociaciones para que
una empresa separada se encargara del nuevo producto. Cuando los responsables de
esta nueva empresa y Borland no llegaron a un acuerdo de separación, Interbase
permaneció como un producto de Borland y el código fuente de Interbase 6 se liberó
bajo una variante de la “Mozilla Public License” a mediados del [Link] la división
de Interbase en Borland, la compañía liberó una versión propietaria de Interbase 6 y
luego 6.5. Borland liberó varias actualizaciones para la versión libre antes de anunciar
que ya no participaría activamente en el desarrollo de este proyecto De aquí nació una
nueva rama de desarrollo libre basada en el código abierto de Interbase
6 conocida como Firebird, que aún se encuentra en desarrollo .
1.4 Evolución de las versiones de Interbase
Interbase ha ido evolucionando a lo largo del tiempo, a continuación, veamos las
versiones que se han desarrollado
5
1.4.1 Versión 7 fue lanzada a finales del 2002
Recientemente Borland ha lanzado al mercado InterBase 7, la nueva versión de su base
de datos multiplataforma. InterBase 7 soporta el uso de múltiples procesadores
simétricos permitiendo el máximo aprovechamiento del hardware disponible. El
soporte para SMP comprende tanto al servidor como a los clientes. En versiones
anteriores, InterBase se ejecutaba de forma segura en hardware con varios procesadores
1.4.2 Interbase 2007 fue lanzada en el 2006
ofrece una alta eficiencia en entornos multiprocesador [SMP], permitiendo
actualizaciones Batch y optimizaciones de consultas y cuenta Con un Tama o reducido,
sencillo de distribuir con instalación silenciosa, sin administración y auto ajustable sin
necesidad de administrador
1.4.3 Interbase 2009 fue lanzada en el 2008
InterBase SMP 2009 combina el rendimiento de una arquitectura multigeneracional
con la tranquilidad de un journaling basado en logs y recuperación automática de
desastres. Su fácil instalación, rastro e impacto mínimos, recuperación automática de
caídas, auto-tuning, soporte integrado de Unicode y SMP, el cumplimiento de SQL 92,
y su mantenimiento mínimo, la convierten en la base de datos ideal para aplicaciones
de negocio de servidor críticas para la pyme.
1.4.4 Interbase XE lanzada en el 2010
XE ha sido diseñado para cubrir las necesidades de los desarrolladores, por ello te
ofrece una nueva versión que permite crear y administrar sistemas de BBDD
sorprendentemente rápido, crear aplicaciones críticas de negocio con capacidad de
recuperación, para incrustarlas en soluciones para dispositivos, escritorios y grupos de
trabajo, con la posibilidad de ser multiplataforma,
6
1.4.5 InterBase XE3 lanzado en el 2013
InterBase XE3 es un sistema completo, de alto rendimiento, seguro y escalable. Base de
datos relacional para desarrolladores que buscan incrustar un administrador cero, Base
de datos multiplataforma en sus aplicaciones y soluciones. InterBase XE3 es
totalmente compatible con 64 bits, multi-core y SMP para darle un rendimiento
increíble.
1.4.6 InterBase XE7 lanzado en el 2014
Ahora, InterBase XE7 Server Edition incluye soporte para Linux 32-bit y 64- bit,
incluido Red Hat Enterprise Linux (RHEL) 6, RHEL 7 y SUSE Linux Enterprise
11, y ahora también para Ubuntu 14. Esta nueva plataforma está disponible como
opción al comprar Interbase XE7 Server, y también está incluida en la última
Developer Edition y en la versión de evaluación de Interbase Server.
• Seguridad mejorada
• Protección sólida de contraseñas con la función de encriptación
criptográfica. Interbase XE también soporta contraseñas de hasta 32 caracteres para
cumplir con las exigencias de seguridad más estrictas.
• Escalabilidad mejorado
• Interbase tiene ahora la capacidad de gestionar más datos y bases de datos
más amplias.
• Funciones para facilitar el desarrollo.
• Soporte de Dynamic SQL en procedimientos almacenados
• Gestión mejorada de grandes objetos.
7
1.4.7 InterBase 2017 lanzado en el 2017
InterBase 2017 es una base de datos multiplataforma con funciones completas de alto
rendimiento, encriptable, relacional, y escalable dirigida a desarrolladores que buscan
embeber una base de datos de bajo coste, con cero administraciones, con seguridad de
base de datos y ligera, dentro de las aplicaciones en plataformas heterogéneas y
conectadas. Con InterBase 2017, obtienen un potente control de acceso, ChangesViews,
recuperación de desastres, e implementación de transacciones, así como soporte para
los motores de datos más populares y para una mayor flexibilidad de implementación.
1.5 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. (Mendez, 2017)
1.5.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.
8
1.5.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.5.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.5.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
plataforma
9
CAPÍTULO II
Conociendo el gestor de base de datos
InterBase es un sistema manejador (administrador, gestor) de bases de datos relacional
que utiliza a SQL como lenguaje de definición y manipulación de datos. Interbase
ha estado en el mercado desde hace ya 15 años, lo que nos garantiza su estabilidad,
velocidad y portabilidad a otras plataformas. obtienen un potente control de acceso,
recuperación de desastres, e implementación de transacciones, así como soporte para
los motores de datos más populares y para una mayor flexibilidad de
implementación. (2004)
2.1. Características propias del gestor
Pequeña, rápida y altamente eficiente, ¿Necesita una base de datos que sea compacta
en memoria y en tamaño en disco, aunque suficientemente potente para asegurar el
soporte de sus aplicaciones críticas de negocio?, Interbase es fácil de integrar o
instalar, deja poca huella, soporta potentes cifrados y no requiere de
administración, en cuanto a la instalación ocupa 40 Mb en el disco (Emilce, 2008)
• Está construido para arquitecturas modernas de CPU, Con Interbase, puedes
confiar en más de 15 años de experiencia para sobrecargar sus aplicaciones con una de
las bases de datos nativas más rápidas disponibles. Interbase utiliza actualmente CPUs
multi-core y sistemas multi-CPU, junto con un único enfoque de versionamiento, para
recuperar y actualizar sus datos rápidamente . (Emilce, 2008)
• Es una base de datos multiplataforma, puede ser ejecutado en en
plataformas LINUX, MICROSOFT WINDOWS Y SOLARIS con funciones
10
completas de alto rendimiento, encriptable, relacional, y escalable dirigida a
desarrolladores que buscan embeber una base de datos de bajo coste, con cero
administraciones, con seguridad de base de datos y ligera. Dentro de las aplicaciones
en plataformas heterogéneas y conectadas. También presenta soporte para servidores
de 64bit para Linux y Windows ofreciendo la perfecta opción a desarrolladores para
migrar a Linux con RAD Studio. Con un formato en disco común, podrá mover
fácilmente sus bases de datos entre Windows y Linux como vea conveniente,
mejorando las opciones de desarrollo, pruebas e implantación. (Emilce, 2008)
• Es de multi- uso, Facilita el acceso instantáneo de tu aplicación a recursos mediante
el alojamiento de Interbase en la nube. O mantenerle local para mayor seguridad y más
rápido rendimiento. (Emilce, 2008)
• Potente integridad, Interbase proporciona integridad de datos a nivel de tabla,
permitiendo asignar a cada usuario de la base de datos, los permisos que permitan
independientemente consultar, agregar, modificar y eliminar datos en cada tabla. Para
lograr esto, se deben definir los usuarios en cada servidor Interbase, dando un nombre
(login), contraseña (password) y el nombre real de cada usuario. (Emilce, 2008)
• 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”. (Emilce, 2008)
2.1.1 Ventajas
• Interbase destaca del resto de los sistemas de bases de datos por su arquitectura
única, basada en versiones.
11
• 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”.
21.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. Diferencia frente a otros gestores
Tabla 1. Diferencia de Interbase frente a otros gestores
SGBD Interbase Postgred SQL My SQL
12
Seguridad Fuerte protección para Tiene roles heredados MySQL implementa
contraseñas con el uso de la para establecer y mantener seguridad basada en
función SHA-1 los permisos. tiene Listas de Control de
cryptographic hash. soporte nativo para SSL Acceso (ACLs) para
Interbase soporta en conexiones para cifrar todas las
contraseñas de hasta 32 la comunicación conexiones,
caracteres de longitud
Rendimiento Funciona bien con PostgreSQL se aprovecha MySQL funciona
aplicaciones de Inteligencia mejor en sistemas que bien en sistemas
Empresarial, pero se ajusta requieran ejecución de OLAP/OLTP
mejor a aplicaciones para consultas complejas, rinde cuando solo se
Almacén de Datos y bien en sistemas requiere velocidad
análisis de datos. en lectura.
Soporte para Interbase es compatible con soporta C/C++, Java, Algo de soporte para
lenguaje de Java, C, C++, .NET, JavaScript, .Net, R, Perl, programación del
programación Delphi, PHP y Ruby. Se Python, Ruby, Tcl y otros. lado del servidor, en
integra perfectamente con un solo lenguaje no
C++Builder, RAD Studio y extensible.
Delphi.
NOTA Entre todas las alternativas en Sistemas Gestores de bases de Datos, hay una que,
aunque no sea muy conocida, es posiblemente la mejor en la relación, potencia, flexibilidad,
escalabilidad, precio. Se trata de Interbase de Borland (2004)
13
2.2. instalación de Interbase
• Para descargar Interbase nos dirigimos hacia la página oficial de descarga. En este
caso descargaremos Interbase 2017
Imagen 1 página oficial de Interbase; fuente: elaboración propia
• Nos movemos hasta productos y seleccionamos a Interbase
Imagen 2 seleccionar gestor; fuente: elaboración propia
14
• 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.
Imagen 3 sección de registro; 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 iniciar prueba; fuente: elaboración propi
15
• Una vez terminada la descargar, damos click derecho y clickea en “Extract
Here” para descomprimir al archivo
Imagen 5 descomprimir archivo; fuente: elaboración propia
• Aparecerá una serie de archivos y carpetas, pero al único que daremos click
será al siguiente.
Imagen 6 comenzar instalación; fuente: elaboración propia
• Se le da clic derecho y lo ejecutamos como administrador.
Imagen 7 ejecutar como administrador; fuente: elaboración propia
16
• Aparecerá el asistente de instalación, y se dará click en “Install InterBase
Imagen 8 asistencia de instalación; 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 9 herramienta de instalación; fuente: elaboración propia
17
• Esta es la ventana que inicia el proceso de instalación del gestor, le damos
en “Next”
Imagen 10 iniciar proceso de instalación; fuente: elaboración propia
• Luego de leer los términos y condiciones de uso, aceptamos y le damos
en “yes” para continuar.
Imagen 11 aceptar términos y condiciones; fuente: elaboración propia
18
• En la siguiente ventana se mostrarán las opciones de selección de los
componentes que se instalarán.
Imagen 12 componentes de instalación; fuente: elaboración propia
• Lo siguiente es seleccionar la arquitectura con la que se instalará.
Imagen 13 seleccionar arquitectura; fuente: elaboración propia
19
• correctas, y si lo fue damos click en “Next”.
Imagen 14 arquitectura correcta; fuente: elaboración propia
• Empezará la instalación de los ficheros, esperamos hasta la finaliza
Imagen 15 instalación de ficheros; f u e n t e : elaboración propia
20
• Luego se mostrará una ventana donde se solicitará el serial enviado al
Email con el que se registró. Ingresamos el serial y continuamos
Imagen 16 insertar 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 [Link] y ODBC driver.
Imagen 17 instalación de driver; fuente: elaboración propi
21
• Emergerá el asistente de instalación de [Link] y procedemos a
instalarlos.
Imagen 18 instalación completa de driver; fuente: elaboración propia
• Se abrirá el panel que controla el servicio de server. Presionamos en
“automatic ” para iniciar el servicio.
Imagen 19 panel controlador; fuente: elaboración propia
22
• Entonces, hasta aquí ya terminamos todo el proceso de instalación. Lo que
aprecian es la interfaz gráfica de Interbase
Imagen 20 interfaz gráfica de Interbase; fuente: elaboración propia
2.3. Demostración del gestor y sus herramientas básicas
• Creación de base de datos
✓ Clic derecho en Database, luego damos clic en créate Database para iniciar la
creación de la base de datos en Interbase
Imagen 21 creación de base de datos ;fuente: elaboración propia
23
✓ Clic en los 3 puntos, luego guardamos la base de datos en cualquier parte
del equipo.
Imagen 22 guardar base de datos; fuente: elaboración propia
✓ Elegimos donde se va guardar la base de datos dentro de nuestros
Archivos
Imagen 23 elegir archivo; fuente: elaboración propia
24
✓ Luego Conectamos la base de datos
Imagen 24 conexión de base de datos; fuente: elaboración propia
✓ Clic en el icono SQL para abrir la consola de comandos
Imagen 25 abrir consola; fuente: elaboración propi
25
✓ Escribir los comandos para crear una tabla, seleccionamos el código y
ejecutamos para guardar en la BD.
Imagen 26 escribir comandos; fuente: elaboración propia
✓ Tabla de forma gráfica
1. clic en tablas
2. clic derecho, aparecen las siguientes opciones y seleccionamos créate
Campos de las tablas y el tipo de datos para crear la base de datos de manera
gráfica.
Imagen 27 insertar campos; fuente: elaboración propia
CAPÍTULO III
Diccionario de datos
3.1 ¿Que 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 (Posted, 2016)
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. (Posted, 2016)
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. (Posted, 2016)
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. (Gomez, 2015)
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. (Gomez, 2015)
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. (Gomez,
2015)
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). (Gomez, 2015)
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 la familia. (Aenor , 2015)
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). (Aenor, 2016)
3.5. Trabajo de Demostración del Diccionario de Datos en el Gestor
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 y
tablas relacionadas
imagen 29 creación de base de datos; fuente: elaboración propia
• Luego insertamos los datos para poder hacer nuestras vistas
Imagen 30 inserción de datos; fuente: elaboración propi
• Una vez insertado los datos procedemos a la Creación de vistas
imagen 30 creación de vistas; fuente: elaboración propia
• A continuación, mostramos la creación de los procedimientos
almacenados.
imagen 31 creación de procedimientos almacenados
• Ahora mostramos la Creación de triggers.
imagen 32 creación de trigger ; fuente : elaboración propia
2.- con la Base de Datos ya creada, elabore scripts SQL, que den
como resultado lo siguiente:
• Una consulta que muestre todas las tablas. Para esto
ejecutaremos la siguiente consulta para obtener el resultado
Select rdbcrelation_name as “nombre de la tabla”
From rdbcrelations
Where rdbcsystem_flag-=0 and rdbcrelation_name not in (Select
rdbcview_name from rdbcview_relation
imagen 33 todas las tablas; fuente: elaboración propia
• Una consulta que muestre las vista. Por el cual ejecutaremos la siguiente
consulta
Select rdbcview_name as vistas
Rdbcrelation_name as relación_tabla
From rdbcrelations
imagen 34 vistas ; fuente: elaboración propia
• Una consulta que muestre los procedimientos almacenados, ejecutamos la
siguiente consulta
Select rdbsprocedure_name as procedures
From rdbsprocedures
imagen 35 resultados de los procedimientos almacenados
• Una consulta sql que muestre todos los disparadores o triggers. ejecutamos la
siguiente consulta:
Select rdbstrigger _name as disparadores
From rdbstriggers
Where rdbssystem_flag=0
imagen 36 resultado de trigger
• Una consulta que muestre las llaves primarias, ejecutamos la siguiente consulta
Select rdbsconstraint _name
From rdbsrelation_constraint
Where rdbsconstraimt_type =`primary key `
imagen 37 resultados de las llaves primarias
• Una consulta que muestre todas las llaves foráneas
From rdbsrelation_constraint
Where rdbsconstraimt_type =`foreign key `
imagen 38 resltados llaves foraneas
• Crear 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.
imagen 39 resultado de tipo de dato y campo
.
- -
CAPÍTULO IV
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 (Pérez 2015)
4.1.1. Integridad de datos.
Según Sanchez(2014)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 se llamará semana 4 ,
imagen 41 creación de la base de datos; fuente: elaboración propia
A continuación, procedemos a crear las tablas para nuestra base de datos
imagen 42 creación de tablas
- -
[Link]. Integridad de entidad
En la tabla sede tenemos datos insertados;
imagen 43 insertar datos; fuente: elaboración propia
Intentaremos insertar un dato con ID duplicado, esto debería resultarnos un
error, ya que no se puede realizar la instrucción porque el gestor no permite la
duplicidad en campos con valor primario
imagen 44 error de integridad; fuente: Elaboración propia
[Link]. Integridad de dominio
En la creación de la tabla la tabla el tipo de datos del DNI esta con tipo de de
dato int lo cual solo permitirá el ingreso de números enteros
CREATE TABLE persona (
DNI int not null
Por lo tanto intentaremos ingresar número y letras para verificacar su entrada
y esto nos debe salir error porque solo permite números enteros
Imagen 45 error de integridad; fuente: elaboración propia
- -
[Link]. Integridad referencial
En este caso intentaremos un dato con un pk que no existe, esto deberíamos
Salir error ya que no permite tener un dato huérfano
Imagen 46 error de integridad; fuente: elaboración propia
[Link]. Integridad definida por el usuario
Creamos una tabla que que tendrá un CHECK que validará el ingreso de datos
de la columna, en este caso solo permitirá el ingreso de una letra FoM
imagen 47 Insertar check; fuente: elaboración propia
Para comprobar que el CHECK funciona realizaremos un INSERT con el valor
de una letra diferente y esto nos tendría que salir error
imagen 48 Error de integridad; fuente: elaboración propipiada
CAPÍTULO V
Seguridad en base de datos
5.1 Definición de Seguridad Confidencialidad en Base de Datos
Al concepto de seguridad también se le puede llamar privacidad. El problema de
la seguridad consiste en lograr que los recursos de un sistema sean, bajo toda circunstancia,
utilizados para los fines previsto (data, 2016)
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. (Posted, 2017)
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 (Bembibre, 2009).
5.1.1Confidencialidad en Base 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 (Bembibre, 2009).
5.1.2 El concepto de seguridad lo medimos en:
• La protección del sistema frente a ataques externos.
• La protección frente a caídas o fallos en el software o en el equipo.
• La protección frente a manipulación por parte de usuarios no autorizados
5.1.3Tipos de seguridad:
Direccional: Se usa para otorgar y revocar privilegios a los usuarios a nivel de
archivos, registros o campos en un modo determinado (consulta o modificación)
Obligatoria: Sirve para imponer seguridad de varios niveles tanto para los
usuarios como para los datos. Para eso se utilizan mecanismos de protección.
5.1.4 Requisitos para la seguridad de las base de datos
• La base de datos debe ser protegida contra el fuego, el robo y otras formas de
destrucción. Los datos deben ser re construibles, ya que siempre pueden ocurrir accidentes.
• Los datos deben poder ser sometidos a procesos de auditoria.
• El sistema debe diseñarse a prueba de intromisiones, no deben poder pasar
por alto los controles.
• Ningún sistema puede evitar las intromisiones malintencionadas, pero es
posible hacer que resulte muy difícil eludir los controles.
• El sistema debe tener capacidad para verificar que sus acciones han sido
autorizadas.
• Las acciones de los usuarios deben ser supervisadas, de modo tal que pueda
descubrirse cualquier acción indebida o errónea.
5.2. Inicios de Sesión, Usuarios, Roles, Grupos, Funciones en el Servidor,
Privilegios
5.2.1 Inicios de Sesión
Acción de comenzar una sesión de un usuario específico, permitiendo así
identificarse frente a un sistema o servicio (Bembibre, 2009).
5.2.2 Usuarios
Un usuario es aquella persona que utiliza un dispositivo o un ordenador y realiza
múltiples operaciones con distintos propósitos. A menudo es un usuario aquel que adquiere
una computadora o dispositivo electrónico y que lo emplea para comunicarse con otros
usuarios, generar contenido y documentos, utilizar software de diverso tipo y muchas otras
acciones posibles (Bembibre, 2009).
Tipos de usuarios
Según existen 2 tipos de usuario. (Unknown, 2018)
• Usuario con derecho a crear, borrar y modificar objetos y que además puede
conceder privilegios a otros usuarios sobre los objetos que ha creado.
• Usuario con derecho a consultar, o actualizar, y sin derecho a crear o borrar
objetos. Privilegios sobre los objetos, añadir nuevos campos, indexar, alterar la estructura
de los objetos, etc.
5.2.3 Roles
Un rol define el conjunto de privilegios asignado a un miembro. Los privilegios
se asignan a los miembros mediante un rol predeterminado o un rol personalizado. A los
miembros se le asigna un rol cuando se les agrega a la organización. (Aenor, 2016)
Roles predeterminados
Según Aenor define un conjunto de privilegios para los cuatro roles
predeterminados que aparecen a continuación:
• Visualizador: ver elementos tales como mapas, aplicaciones, escenas y
capas compartidas con el público, la organización o un grupo al que pertenece el miembro.
Unirse a grupos propiedad de la organización. Arrastrar archivos CSV, GPX o de texto
a Map Viewer para geocodificar direcciones o nombres de lugares. Obtener indicaciones
en Map Viewer y en las aplicaciones.
Los miembros a los que se les asigna el rol de Visualizador no pueden crear,
poseer ni compartir contenido, ni tampoco realizar análisis. El rol de Visualizador se
puede asignar a cuentas de nivel 1 o de nivel 2.
• Usuario: privilegios de Visualizador, además de la capacidad para ver una
vista personalizada del sitio, utilizar los mapas, las aplicaciones, las capas y las
herramientas de la organización, así como unirse a los grupos que permitan a los miembros
actualizar todos los elementos del grupo. Los miembros que tienen asignado el rol
de Usuario también pueden crear mapas y aplicaciones, editar entidades, agregar
elementos al portal, compartir contenido y crear grupos. El rol de Usuario se puede asignar
a cuentas de nivel 2.
• Publicador: privilegios de Usuario, además de la capacidad de publicar
capas web alojadas y realizar análisis de entidades y de ráster. El rol de Publicador se puede
asignar a cuentas de nivel 2.
• Administrador: privilegios de Editor además de privilegios para
administrar la organización y a otros usuarios.
Una organización debe tener al menos un administrador, aunque se recomienda
tener dos. No existe ningún límite en cuanto al número de miembros a los que se puede
asignar el rol de Administrador dentro de una organización; sin embargo, por motivos de
seguridad, únicamente debería asignar este rol a quienes necesiten los privilegios
adicionales asociados a él. El rol de Administrador se puede asignar a cuentas de nivel 2.
Roles personalizados
Es posible que las organizaciones deseen refinar los roles predeterminados en un
conjunto de privilegios más detallado mediante la creación de roles personalizados. Por
ejemplo, puede que su organización desee asignar a algunos miembros los mismos
privilegios que un Usuario predeterminado, pero sin permitirles editar datos de entidades.
Esto se podría conseguir creando un rol personalizado basado en el rol
de Usuario predeterminado, desactivando los privilegios de edición y llamando al rol
personalizado Usuario sin edición o algo similar (Bembibre, 2009)
Solo los administradores predeterminados; es decir, aquellos a los que se les ha
asignado el rol de Administrador, pueden crear, configurar y asignar roles personalizados.
Los administradores predeterminados configuran roles personalizados en función de
cualquier combinación de los privilegios generales y administrativos disponibles
(Bembibre, 2009)
5.2.4 Grupos
Se afirma que la mayoría de los sistemas de administración de bases de datos
proporcionan formas para que el administrador de bases de datos agrupe a los usuarios
según las necesidades de acceso a los datos y asigne privilegios al grupo. Esto reduce el
tiempo dedicado a modificar los privilegios individuales de cada usuario y simplifica la
administración de grandes números de privilegios para grandes números de usuarios. Por
lo tanto, puede utilizar grupos (también denominados roles, tipos, o autoridades, según el
sistema de administración de bases de datos) que otorguen derechos a los usuarios de
acuerdo con las funciones comunes. (Draconis, 2008)
Las categorías o los grupos de usuarios comunes son los que visualizan los datos,
los que editan los datos y los que crean lo datos.
Sugerencias para agrupar usuarios
A continuación, se presentan algunas sugerencias para agrupar usuarios en el
sistema de administración de bases de datos.
• Cree grupos separados (roles) para los privilegios de sistema y de objeto.
• Elija una convención de nomenclatura que refleje cada tipo de grupo (rol) para
lograr una referencia fácil.
• Otorgue privilegios directamente al administrador de la geodatabase y otorgue
privilegios mediante grupos (roles) para todos los demás usuarios.
• Evite mezclar los roles con los privilegios otorgados directamente a las
cuentas de usuarios no administradores.
5.2.5 Funciones en el servidor
Se afirma que:
• Las bases de datos se utilizan para almacenar datos y las organizaciones que
tratan y almacenan grandes cantidades de datos, necesitan un potente software de bases
de datos para gestionar los datos.
• Las bases de datos proporcionan un mayor control sobre los datos y permiten
a los usuarios transformar y enriquecer los datos para todos los aspectos de la presentación
de informes empresariales y gestionar las transacciones back-end.
• Los servidores conectados a una red de gran volumen, que gestionan
transacciones múltiples y simultáneas, necesitan contar con la configuración técnica
adecuada para soportar la red de forma eficiente.
5.2.6 Privilegios
Los privilegios permiten a los miembros de la organización llevar a cabo diferentes
tareas y flujos de trabajo en la organización. Por ejemplo, algunos miembros tienen
privilegios para crear y publicar contenido, mientras que otros tienen privilegios para ver
contenido, pero no pueden crear el suyo propio. (Draconis, 2008)
Privilegios generales
A los miembros que llevan a cabo tareas específicas dentro de la organización
como, por ejemplo, crear mapas o editar entidades, se les pueden asignar los privilegios
generales que necesitan para trabajar y compartir con grupos, contenido y entidades.
Privilegios administrativos
Los privilegios que se enumeran a continuación permiten que los roles
personalizados puedan ayudar a los administradores predeterminados con la
administración de los miembros, los grupos y el contenido en la organización. Estos roles
administrativos personalizados no incluyen el conjunto de privilegios completo reservados
para los administradores predeterminados; es decir, aquellas personas que tienen asignado
el rol de Administrador.
Privilegios reservados para los administradores predeterminados
Algunos privilegios administrativos están reservados para los administradores
predeterminados y no están disponibles para los roles personalizados. Por ejemplo, solo
los administradores predeterminados pueden configurar el sitio web y eliminar a otros
administradores de la organización. La siguiente lista muestra los privilegios reservados
para los administradores predeterminados:
• Configurar el sitio web
• Configurar roles personalizados
• Configurar inicios de sesión corporativos
• Cambiar el rol de administrador de miembros
• Eliminar a otros administradores de la organización
• Compartir contenido con el público cuando la organización no permite a los
miembros compartir fuera de la organización
Privilegios para flujos de trabajo comunes
Algunos flujos de trabajo requieren una combinación de privilegios. Si no puede
realizar una función que piense que debería permitir su rol, verifique que su administrador
haya habilitado el conjunto completo de privilegios requeridos para la función.
5.3. Autenticación o autentificación, políticas de contraseñas
5.3.1 Autenticación o Autentificación
La autenticación o autentificación es el acto o proceso de confirmar que algo (o
alguien) es quien dice ser. A la parte que se identifica se le llama probador. A la parte que
verifica la identidad se la llama verificador. Es habitual que el probador sea un usuario
que quiere acceder a ciertos recursos y el verificador sea un sistema que protege el acceso
a dichos recursos y tiene que verificar que el que accede sea un usuario que tiene permisos
para acceder a esos recursos. Para poder tener autenticación es necesaria, como condición
previa, la existencia de identidades biunívocamente identificadas de tal forma que se
permita su identificación (Wikipedia ,2018)
Características de autenticación
Cualquier sistema de identificación ha de poseer unas determinadas características
para ser viable
• Ha de ser fiable con una probabilidad muy elevada (podemos hablar de tasas
de fallo de en los sistemas menos seguros)
• Económicamente factible para la organización (si su precio es superior al
valor de lo que se intenta proteger, tenemos un sistema incorrecto).
• Soportar con éxito cierto tipo de ataques.
• Ser aceptable para los usuarios, que serán al fin y al cabo quienes lo utilicen.
• Respuesta inmediata, directa, inteligente, sencilla, ante cada situación.
5.3.2 Políticas de Contraseñas
Las continuas amenazas de seguridad del mundo actual requieren que las empresas
mantengan y mejoren sus políticas de administración respecto al uso de contraseñas.
Es común que las contraseñas sean obtenidas por personas externas a la compañía,
teniendo acceso a recursos tales como documentos clasificados, equipos, servidores y
bases de datos, que normalmente no deberían tener.
La mayoría de las vulnerabilidades y amenazas en las empresas provienen del
personal interno, es por ello que se debe de informar y entrenar a todos los usuarios acerca
de la importancia de tener contraseñas con un alto nivel de seguridad.
Los sistemas deben requerir al usuario que su contraseña cumpla con ciertos requisitos para
garantizar la seguridad, como es la utilización de caracteres especiales, mayúsculas,
minúsculas y uso de números no repetidos ni consecutivos,
Otro de los mecanismos recomendados para la configuración de contraseñas es el
de colocar una “frase” que sea fácil de recordar para el usuario.
Hay que verificar que las contraseñas no puedan ser reutilizables, es decir, se debe
tener una base de datos con contraseñas previamente configuradas por el usuario.
Es recomendable el cambio periódico de las contraseñas para aumentar su
seguridad (en algunas organizaciones se puede hacer a los 30 o 90 días).
Una buena política del uso de contraseñas se debe apoyar en las políticas de
seguridad de cada empresa. El mantener contraseñas fuertes y tener un personal
capacitado y consciente acerca de su utilización, evitará que la información sea filtrada y
utilizada con propósitos negativos.
Política y acciones para construir contraseñas seguras:
• Se deben utilizar al menos 8 caracteres para crear la clave. Según un estudio
de la Universidad de Wichita, el número medio de caracteres por contraseña para usuarios
entre 18 y 58 años habituales de Internet es de 7
• Se recomienda utilizar en una misma contraseña dígitos, letras y caracteres
especiales.
• Es recomendable que las letras alternen aleatoriamente mayúsculas y
minúsculas. Hay que tener presente el recordar qué letras van en mayúscula y cuáles en
minúscula. Según el mismo estudio, el 86% de los usuarios utilizan sólo minúsculas, con
el peligro de que la contraseña sea descubierta por un atacante casi instantáneamente.
• Elegir una contraseña que pueda recordarse fácilmente y es deseable que pueda
escribirse rápidamente, preferiblemente, sin que sea necesario mirar el teclado.
• Las contraseñas hay que cambiarlas con una cierta regularidad. Un 53% de
los usuarios no cambian nunca la contraseña salvo que el sistema le obligue a ello cada
cierto tiempo. Y, a la vez, hay que procurar no generar reglas secuenciales de cambio. Por
ejemplo, crear una nueva contraseña mediante un incremento secuencial del valor en
relación a la última contraseña. P. ej.: pasar de “01Juitnx” a “02Juitnx”.
5.4 trabajo de demostración de la seguridad en el gestor
• Creamos diferentes usuarios en la base de datos y a cada uno asignándole
sus respectivos permisos y privilegios demostrando lo que pasa en cada nivel de
seguridad, a nivel de base de datos, objetos, acciones y columnas.
imagen 49 creación de usuarios; fuente: elaboración propia
• Luego verificamos que los usuarios existan
imagen 50 verificación de usuarios; fuente: Elaboración propia
5.4.1. El Usuario1 Puede Ingresar a la BD1 y no a la BD2
• Ingresaos como usuario 1 y debe ingresar correctamente
imagen 51 Ingresar como usuario 1; fuente: elaboración propia
• 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 52 verificar autentificación ;fuente :elaboración propia
• De la misma forma creamos otra base de datos, pero ésta tendrá como
usuario a USUARIO_2
imagen 53 privilegiar al usuario 2; fuente: elaboración propia
• De esta manera ya tenemos las dos bases de datos creadas con sus
respectivas limitaciones
imagen 54 base de datos limitada ;fuente :elaboración propia
• Ahora procedemos a hacer la demostración, intentaremos ingresar a DB2
con el USUARIO_1, y no debería poder acceder ya que no tiene los permisos de usuario
para ingresar.
Ilustración 1 usuario1 ingresa a db2
imagen 55 prueba de autentificación ;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
“CREATE ROLE GENERAL”
• Luego otorgamos el ROLE al USUARIO_2.
“GRANT GENERAL TO USUARIO_2”
• De esta forma nosotros podemos otorgar los permisos de LOGIN a la base
de datos. Y ahora, para comprobar que todo funcionando, intentaremos ingresar a la base
de datos DB1 con el USUARIO_2, no debería presentar problemas.
• Ingresamos y podemos verificar que si existe el ROLE que otorga el acceso
a la base de datos.
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.
CREATE USER USUARIO_3
SET PASSWORD usuario 3
• Luego creamos un ROLE para poder permitir el acceso del USUARIO_3 a
la base de datos DB1
CREATE ROLE ACCES
GRANT ACCES TO usuario_3
• Ahora otorgamos y revocamos los privilegios que se mencionaron
“GRANT SELECT, UPDATE ON país TO usuario_3”
• Estas acciones se pueden corroborar de forma gráfica, en la sección de
permisos de la TABLA_1
imagen 56 tablas de forma gráfica; fuente: elaboración propia
• Ahora comprobaremos que las instrucciones se cumplan.
Comenzaremos con SELECT y luego con UPDATE.
SELECT*FROM país
imagen 57 datos de la tabla país
• Comprobamos que no tenemos problemas al ejecutar SELECT. A
continuación, realizamos un UPDATE.
UPDATE país SET nombre=Perú
WHERE idpaís=p01
• Realizamos un SELECT para verificar el cambio. Efectivamente, se realizó
la actualización.
SELECT *FROM país
imagen 58 actualización de datos
• Ahora verificamos los privilegios revocados. Escribimos el script para hacer
un DELETE, al ejecutar nos aparecerá el siguiente mensaje de error, indicando que no
contamos con los permisos necesarios para realizar la instrucción.
DELETE FROM país WHERE idpais =p01
Imagen 59 error de autentificación; fuente :elaboración propia
• Ahora un INSERT al darle en ejecutar nos aparecerá el siguiente mensaje de
error, indicando que no contamos con los permisos necesarios para realizar la
instrucción.
INSERT INTO pais (IdPais , Nombre) VALUES ('p07','España')
imagen 60 Error de permiso; 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.
CREATE USER USUARIO_4 SET PASSWORD usuario4
• Luego nos dirigimos hasta la TABLA_1 clickeamos en el siguiente icono:
imagen 61 propiedades de la tabla ;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 62 otorgar privilegios ;fuente ;elaboración propia
Luego otorgamos privilegios que se encuentran en la parte superior de la ventana
,seleccionaremos con un chek para otorgar
imagen 63 seleccionar privilegios; fuente: elaboración propia
• Intentaremos realizar un UPDATE en la columna SEXO. En teoría no se
podría por la configuración que aplicamos.
UPDATE persona SET sexo = 'm' WHERE ID=2
imagen 64 error de autentificación; fuente elaboración prop
CAPITULO VI
Migración de base 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,
(aguile, 2014)
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. (wikipedia, 2014)
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. (aguile, 2014)
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
(wikipedia, 2014)
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.
6.4. Proveedores de acceso a datos (ado, oledb, odbc y jdbc)
6.4.1 Ado. El 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. [Link] 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. (Gembeta,2014)
6.4.2 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). (Gembeta 2014)
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. (Gembeta,2014)
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
(Gembeta, 2016) 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. (Gembeta, 2016)
6.4.4 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. (Gembeta, 2016)
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. (Gembeta,
2016)
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. (Gembeta, 2016)
6.5.3 pentaho. Su integración 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. (Gembeta,
2016)
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.
(Gembeta, 2016)
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.
Cuando sql server se inicie damos click derecho en la sección de “objectexplorer”
y damos click en “restore database” para comenzar la restauración de la base de datos
imagen 65 restaurar base de datos ;fuente: elaboración propia
• Emergerá una ventana donde podremos ubicar la dirección de la base de datos para
su próxima restauración
imagen 66 ubicar dirección de base de datos ;fuente: elaboración propia
• Al encontrar la dirección de la base de datos Emergerá otra ventana donde
finalmente ubicaremos al back up de la base de datos
• imagen 67 ubicar el back; fuente: elaboración propia
• Luego buscamos el archivo con el nombre que le hemos guardado
imagen 68 buscar archivo;fuente:elaboracion propia
• le damos aceptar para ver inicicar con la restauracion
imagen 69 empezar 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 y verificamos la existencia de la base de datos
imagen 70 verificación de la base de datos
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 conver.
Cuando la herramienta se inicie, damos clic en “new dabase conversión
imagen 71 interfaz full converter ;fuente: elaboración propia
• En la primera ventana se seleccionará la base y el servidor que contiene a la base de
datos
imagen 72 seleccionar base de datos y servidor
• 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 73 seleccionar gestor; fuente: elaboración propia
• seguidamente se nos mostrara todas las tablas a migrar
• imagen 74 tablas que se van a migrar
• Si deseamos conocer la cantidad de datos que contiene cada tabla le damos
click en “count records” y luego le damos next para continuar.
imagen 75 verificar datos ;fuente: elaboración propia
• Esperamos que analice todos los datos
imagen 76 analizar datos ;fuente ; elaboración propia
• Ahora empezara la tranferencia de todos los datos de cada tabla. Asi que
esperamos que culmine.
imagen 77 transferencia de datos ;fuente: elaboración propia
• Esperamos a que se creen los index
imagen 78 creación de index ;fuente: elaboración propia
• Finalmente ya tenemos nuestra base de datos migrada
imagen 79 Base de datos; fuente: elaboración propia
Comparamomos los datos en cada tabla para verificar que se haya migrado todos
los datos
• Para la tabla almacen
imagen 80 consulta en Interbase ; fuente: elaboración propia
imagen 81 consulta en SQL server ; fuente: elaboración propia
• Para la tabla caja
imagen 82 consulta en Interbase; fuente: elaboración propia
imagen 83 consulta en SQL server; fuente: elaboración propia
• Para la tabla cargos
imagen 84 consulta en Interbase; fuente: elaboración propia
imagen 85 consulta en SQL server; fuente: elaboración propia
• Para la tabla cliente
imagen 86 consulta en Interbase; fuente: elaboración propia
imagen 87consulta en SQL server; fuente: elaboración propia
• Para la tabla detalle ventas
imagen 88consulta en Interbase ;fuente: elaboración propia
imagen 89consulta en SQL server; fuente: elaboración propia
• Para la tabla empleado
imagen 90 consulta en Interbase; fuente: elaboración propia
imagen 91consulta en SQL server; fuente: elaboración propia
• Para la tabla empresa
imagen 92consulta en Interbase; fuente: elaboración propia
imagen 93 consulta en SQL server ;fuente: elaboración propia
• Tabla marca
imagen 94 consulta en Interbase; fuente: elaboración propia
imagen 95 consulta en SQL server ;fuente: elaboración propia
• Tabla moneda
imagen 96consulta en Interbase; fuente: elaboración propia
imagen 97consulta en SQL server ;fuente: elaboración propia
• Tabla producto
imagen 98consulta en Interbase; fuente: elaboración propia
imagen 99consulta en SQL server ;fuente: elaboración propia
• Tabla stock
imagen 100 consulta en Interbase; fuente: elaboración propia
imagen 101 consulta en SQL server fuente: elaboración propia
• Tabla unidad venta
imagen 102 consulta en Interbase; fuente: elaboración propia
imagen 103 consulta en SQL server; fuente: elaboración propia
• Tabla ventas
imagen 104 consulta en Interbase; fuente: elaboración propia
imagen 105consulta en SQL server; fuente: elaboración propia
CAPITULO VII
Rendimiento
7.1. Control 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
(Valle 2005)
El control de transacciones concurrentes en una base de datos brinda un
eficiente desempeño del Sistema de Base de Datos, puesto que permite controlar la
ejecución de transacciones que operan en paralelo, accesando a información compartida y,
por lo tanto, interfiriendo potencialmente unas con otras. (Valle 2005)
7.1.1 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á. 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 memoria, de ahí que el
scheduler interactúa con ellos y en su defecto solicita la lectura de los datos del disc
(sawatkar 2013)
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
sociabilidad 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 sociabilidad 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
7.2.1. Optimización de consultas
La optimización es la acción y efecto de optimizar. Este verbo hace referencia
a buscar la mejor manera de realizar una actividad. El término se utiliza mucho en el ámbito
de la iinformática. 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.
A nivel general, la optimización puede realizarse en diversos ámbitos, pero siempre
con el mismo objetivo: mejorar el funcionamiento de algo o el desarrollo de un proyecto a
través de una gestión perfeccionada de los recursos. La optimización puede realizarse en
distintos niveles, aunque lo recomendable es concretarla hacia el final de un proceso. El
Objetivo de la optimización de consultas es elegir la estrategia de ejecución que minimiza
el uso de los recursos
7.2.2. Optimización Heurística
Un método heurístico es un conjunto de pasos que deben realizarse para identificar
en el menor tiempo posible una solución de alta calidad para un determinado problema; es
un enfoque que aprovecha la estructura del problema mediante el uso de un conjunto de
reglas “racionales”, obteniendo una solución buena, es decir cercana a la óptima o en
ocasiones la óptima. Un método heurístico es un procedimiento para resolver un problema
de optimización mediante una aproximación intuitiva, en la que la naturaleza intrínseca del
problema se usa de manera inteligente para obtener una buena solución. En contraposición
de los métodos exactos que proporcionan una solución óptima del problema, los métodos
heurísticos se limitan a encontrar una buena solución, aunque no necesariamente la óptima.
Lógicamente, el tiempo que tarda un método exacto para encontrar una solución óptima de
un problema difícil es de un orden de magnitud muy superior al de un método heurístico.
(Pérez y Gardey,2009)
Los métodos heurísticos son de naturaleza muy diferentes; por ejemplo, tenemos
los métodos de descomposición los cuales descomponen el problema en subproblemas más
sencillos de resolver. Los métodos inductivos pretenden generalizar de versiones pequeñas
al caso completo. Los métodos de búsqueda local son aquellos que comienzan con una
solución del problema y la mejoran progresivamente (los algoritmos genéticos pertenecen
a esta categoría). Los métodos constructivos son deterministas y consisten en construir paso
a paso una solución del problema, y suelen mejorar la elección en cada iteración, Los
algoritmos de aproximación como el algoritmo de Christofides pertenecen a esta categoría
(Pérez y Gardey,2009).
7.2.3. Creación de índices
Un índice es una estructura interna que el sistema puede usar para encontrar 1 o más
registros en una tabla de forma rápida, un índice de Base de Datos se crea para una columna
o grupo de columnas, un índice de Base de Datos se crea para una columna o grupo de
columnas. A un índice se le asigna un nombre de acuerdo con las mismas reglas que se
aplican para los nombres de tablas. Los índices son "estructuras" alternativa a la
organización de los datos en una tabla. El propósito de los índices es acelerar el acceso a
los datos mediante operaciones físicas más rápidas (Scribd,2018).
¿Por qué usar Índices?
Mayor velocidad para localizar datos.
Reforzar la identificación única.
Tipos de Índices:
a) Índice único (UNIQUE, ADD UNIQUE): Un índice único no permite la
inserción los valores duplicados en dicha columna que marquemos como único. Se puede
aplicar a varias columnas.
b) Primario (PRIMARY KEY): Un índice primario es también conocido como
Primary KEY, permite crear un índice en cuyo valor es único y no puede ser NULL. Solo
puede haber un índice primario por tabla.
c) Índice Ordinario (ADD INDEX): Este tipo de índice permite la existencia o
inserción de valores duplicados en una tabla. Con este tipo solamente mejoramos la
ejecución y rendimiento de las consultas. .
d) Índices con parte de campos o columnas: Similar al índice FULLTEXT, pero
solamente cogiendo parte del contenido de la columna. Este tipo de índices aligeran las
consultas sobre campos de textos. Por ejemplo si realizamos búsquedas sobre tablas de
nombres o apellidos con seleccionar los primeros caracteres nos valdría para realizar la
comparación.
7.2.4. Plan de 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ásicas 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 (Petrovic,2018)
Líneas generales para leer un plan de ejecución de consultas:
• 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
7.3. Estimación de Costos de Procesamiento de consultas
• Consultas en paralelo en cada nodo
–Costo de transferencia de los datos sobre la red.
• 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.
– 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.
7.4. Balanceo de Carga
El balance o balanceo de carga es un concepto usado en informática que se refiere
a la técnica usada para compartir el trabajo a realizar entre varios procesos, ordenadores,
discos u otros recursos. Está íntimamente ligado a los sistemas de multiprocesamiento, o
que hacen uso de más de una unidad de procesamiento para realizar labores útiles.
(Wikipedia 2016)
Cuando un Reuter 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. (Wikipedia 2016)
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. (Wikipedia 2016)
7.5. Demostración del Rendimiento en el Gestor
Antes de empezar es importante mencionar que el redimiento se realizará con una
laptop de las siguientes características
Anteriormente realizamos una migración de datos a nuestra base de datos por lo tanto Usaremos esa
base de datos para nuestra práctica de rendimiento acontinuacion se muestra la consulta que se estara
ejecutando
Ilustración106 consulta en Interbase fuente: elaboración propia
Una vez ejecutada la consulta obtenemos las siguientes estadísticas de
rendimiento con un tiempo de 17.25.0328 minutos.
Ilustración 107 ejecución de consulta ; fuente: elaboración propia
Ahora apagaremos nuestra laptop para limpiar la memoria cache. Una vez
prendida nuevamente nuestra laptop procederemos a crear los índices, los cuales nos
ayudaran a conseguir los datos necesarios para nuestra consulta en el menor tiempo
posible. A continuación, veremos cómo 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.
Ilustración 107cracion de indices , fuente:elaboracion propia
Colocamos el nombre del índice y seleccionamos la tabla con la que trabajaremos,
en este caso, trabajaremos con la table “VENTA”, una vez seleccionado la tabla
buscaremos los campos que usaremos con el índice.
Ilustración 108 insertar nombre del indice ; fuente : elaboracion propia
Una vez seleccionados los campos, damos en “OK” y continuamos.
Ilustración108 inserción de campos, fuente: elaboración propia
De la misma forma creamos los índices para la tabla producto
Ilustración 109 indice de la tabla producto ,fuente :elaboracion propia
También creamos un índice para la tabla detalleventa
Ilustración 110 indece para la tabla detalle venta , fuente: elaboración propia
Una vez creaados los indeces ejecutamos nuevamente la misma consulta y
obtenes el siguiente resultado de rendimiento obteniendo un tiempo de 3.57.0672
minutos.
Ilustración 111 tiempo estimado con índices ;fuente: elaboración propia
Luego nos vamos a la opción que dice “plan” para poder observar el plan de
ejecución teniendo en cuenta que nuestra herramienta IB CONSOLE no tiene para
observarla de manera grafica si no en texto
Ilustración112 plan de ejecución ; fuente: elaboración propia
CAPITULO VIII
Encriptación o cifrado de datos
Interbase soporta tanto el cifrado DES como AES. (AES 256bit
recomendado). Cuando utilice el cifrado, debe crear una clave de respaldo que admita el
nivel más alto de cifrado en el archivo de base de datos. Esta clave de copia de seguridad
no permitirá el acceso a los datos, pero permitirá que scripts externos realicen una copia de
seguridad de la base de datos. Esto es especialmente útil si la base de datos será respaldada
por administradores de red que no necesitan ver los datos. (Ball, 2014)
Cifrado de columnas Con la configuración de los usuarios de la base de datos y
las claves de cifrado creadas, ahora es el momento de cifrar los datos que queremos cifrar
específicamente. EL Cifrado a nivel de columna puede ser mucho más eficiente que tener
toda la base de datos cifrada. (Ball,2014)
Para el control de los niveles de cifrado de datos, Interbase recomienda usar
SYSDSO (Data Security Office) como inicio de sesión para administrar la seguridad. La
secuencia de comandos primero crea SYSDSO en la base de datos (lo que requiere que las
opciones de administración / autenticación de usuario integrada estén habilitadas). La
autenticación de usuarios integrada de Interbase coloca a todos los usuarios dentro del
archivo de la base de datos para garantizar que la seguridad sea transportable durante todo
el ciclo de vida del desarrollo). (Ball,2014)
8.1 Creación función externa
Las funciones externas, también conocidas como " funciones definidas por el usuario " (UDF)
son programas escritos en un lenguaje de programación externo y almacenados en bibliotecas
cargadas dinámicamente. Una vez declarados a una base de datos, están disponibles en
declaraciones dinámicas y de procedimiento como si se implementaran en el lenguaje SQL
internamente. Las funciones externas amplían considerablemente las posibilidades de
procesamiento de datos con SQL. Para hacer que una función esté disponible para una base
de datos, se declara utilizando la instrucción DECLARE EXTERNAL FUNTION (firebird
,2109)
8.1.2 Cláusulas de las funciones y palabras clave
Cláusula RETURNS:(Requerido) especifica el parámetro de salida devuelto por la
función. Una función es escalar: devuelve uno y solo un parámetro. El parámetro de salida
puede ser de cualquier tipo de SQL (excepto una matriz o un elemento de matriz) o una cadena
terminada en nulo ( CSTRING ). El parámetro de salida se puede pasar por referencia (el valor
predeterminado), por descriptor o por valor. Si se especifica la cláusula BY DESCRIPTOR ,
el parámetro de salida se pasa por el descriptor. Si se especifica la cláusula BY VALUE , el
parámetro de salida se pasa por valor. (firebird ,2109)
Palabra clave PARÁMETRO: especifica que la función devuelve el valor del
parámetro con el número param_num . Es necesario si necesita devolver un valor de tipo de
datos BLOB. (firebird ,2109)
Palabra clave FREE_IT: significa que la memoria asignada para almacenar el valor
de retorno se liberará después de que se ejecute la función. Se utiliza solo si la memoria se
asignó dinámicamente en la UDF. En tal UDF, la memoria debe asignarse con la ayuda de
la función del módulo, un requisito de compatibilidad con las funciones usadas en el código
Firebird y en el código de los módulos UDF enviados, para asignar y liberar memoria.
(firebird ,2109)
Cláusula ENTRY_POINT: especifica el nombre del punto de entrada (el nombre
de la función importada), como se exporta desde el módulo.
Cláusula MODULE_NAME: define el nombre del módulo donde se encuentra la
función exportada. El enlace al módulo no debe ser la ruta completa y la extensión del archivo,
si eso se puede evitar. Si el módulo se encuentra en la ubicación predeterminada (en el
subdirectorio ../UDF de la raíz del servidor Firebird) o en una ubicación explícitamente
configurada facilita mover la base de datos entre diferentes
plataformas. El parámetro UDFAccess en el archivo [Link] permite configurar las
restricciones de acceso a los módulos de funciones externas. (firebird ,2109 Cualquier
usuario conectado a la base de datos puede declarar una función externa
❖ 8.2 Demostración de encriptación o cifrado de datos en el gestor
interbase
Como primer paso nos dirigimos a crear una base de datos,
Ilustración 113 creación de la base de datos
Luego nos dirigimos a crear las tablas
Una vez creada las tablas empezamos con la realización de la encriptación
Ojo: debemos aclarar que no encontramos un algoritmo para Interbase donde se realiza la
encriptación, es por eso que crearemos nuestro propio algoritmo, teniendo en cuenta la secuencia
de encriptación del gestor firebird, es por ello que como parte introductoria a este tema
conceptualizamos algunas funciones que se van a utilizar
Creación del algoritmo. -Como primer paso creamos las funciones externas o EXTERNAL
FUNTION con la siguiente sintaxis
Una vez creada las funciones continuamos a crear un procedimiento almacenado
lo cual se llamará encriptación donde se dará uso de ellas
Ilustración114Funcion de encriptación
Ilustración115 función de encriptación
• Una vez creado el algorimo procedemos a hacer la validacion del este .
Acontinuacion vamos a ejecutar :
Ilustración 115 encriptación realizada ,fuente: elaboración propia
Como observamos los datos se encriptan correctamente
CAPITULO IX
Disponibilidad
9.1. Definición e Importancia de una Disponibilidad
Disponibilidad Es un protocolo de diseño del sistema y su implementación
asociada que asegura un cierto grado absoluto de continuidad operacional durante un
período de medición dado. Disponibilidad se refiere a la habilidad de la comunidad
de usuarios para acceder al sistema, someter nuevos trabajos, actualizar o alterar trabajos
existentes o recoger los resultados de trabajos previos. Si un usuario no puede acceder al
sistema se dice que está no disponible. . (Evera,2015)
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. (Evera,2015)
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 (Evera,2015)
9.2. Copia de Seguridad (Backups) de una Base de Datos
La copia de seguridad, también llamada respaldo o backup, se refiere a la copia de archivos
físicos o virtuales o bases de datos a un sitio secundario para su preservación en caso de falla
del equipo u otra catástrofe. El proceso de copia de seguridad de los datos es fundamental para
un plan de recuperación de desastres (DRP) exitoso. (Rouse 2019)
El componente de copia de seguridad y restauración ofrece una protección esencial
para los datos críticos almacenados en las bases de datos de . Para minimizar el riesgo de
pérdida de datos catastrófica, debe realizar copias de seguridad de las bases de datos para
conservar las modificaciones en los datos de forma periódica. Una estrategia de copias de
seguridad y restauración correctamente planeada contribuye a la protección de las bases de
datos de la pérdida de datos derivada de daños causados por diferentes errores. Pruebe la
estrategia mediante la restauración de las copias de seguridad y la posterior recuperación
de la base de datos para estar preparado y poder responder de forma eficaz ante un desastre
(Rouse 2019)
9.2.1 Por qué realizar copias de seguridad
La copia de seguridad de las bases de datos, la ejecución de procedimientos de
restauración de prueba de las copias de seguridad y el almacenamiento de las copias en
una ubicación segura y fuera del sitio contribuyen a protegerse ante una pérdida de
datos catastrófica. Las copias de seguridad son la única forma de proteger los datos.
(Rouse 2019)
Con las copias de seguridad válidas de una base de datos puede recuperar los datos en
caso de que se produzcan errores, por ejemplo:
o Errores de medios.
o Errores de usuario, por ejemplo, quitar una tabla por error.
o Errores de hardware, por ejemplo, una unidad de disco dañada o la pérdida
permanente de un servidor.
o Desastres naturales. El uso de la copia de seguridad de SQL Server en el servicio de
almacenamiento Blob de Windows Azure le permite crear una copia de seguridad
externa en una región diferente de la ubicación local, con lo que podrá utilizarla en
caso de que un desastre natural afecte a su ubicación.
Además, las copias de seguridad de una base de datos son útiles para fines
administrativos habituales, como copiar una base de datos de un servidor a otro,
configurar Grupos de disponibilidad AlwaysOn o la creación de reflejo de la base de
datos y el archivo.
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.
9.3.1 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.
A menudo se realiza más de una única copia, que luego se almacenan en un lugar
lejos del ordenador, y alejadas entre sí, con el fin de que si algún tipo de suceso catastrófico
produjese la destrucción del ordenador, al menos una de las copias en cinta no resultase
dañada por el mismo suceso. Cuando se trata de bases de datos críticas, como las que
guardan información bancaria, suele guardarse al menos una copia en un lugar alejado
bastantes kilómetros de la instalación del ordenador. Además, no es raro que se mantengan
varias generaciones de copias, para añadir un nivel de seguridad adicional.( Paloma ,
2012)
9.3.2 Diarios de transacciones y restauración/ejecució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. (Paloma, 2012)
9.3.3. 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. ( Paloma ,
2012)
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.
9.3.4 Recuperación por adelantado
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. ( Paloma , 2012)
9.4. Alta Disponibilidad, Estrategias
Alta disponibilidad es un protocolo de diseño del sistema y su implementación
asociada que asegura un cierto grado absoluto de continuidad operacional durante un
período de medición dado. Disponibilidad se refiere a la habilidad de la comunidad
de usuarios para acceder al sistema, someter nuevos trabajos, actualizar o alterar trabajos
existentes o recoger los resultados de trabajos previos. Si un usuario no puede acceder al
sistema se dice que está no disponible. El término tiempo de inactividad (downtime) es
usado para definir cuándo el sistema no está disponible( Tapia 2012)
Debe haber una base de datos una alta disponibilidad para asegurarse de que los
datos estén disponibles si se produce una anomalía. Puede introducir una base de datos
con funciones que se adapte a las necesidades de su organización, según el nivel de
protección y los costes asociados.
Un servidor de bases de datos puede fallar como resultado de cualquiera de los
siguientes factores:
• Ambientales, como la temperatura
• Anomalía de hardware
• Error de software
• Interrupción conectividad de red
• Intervención de usuario
Estrategias (Clustering, Replicación)
Clustering, Grupo de máquinas interconectadas en red que cooperan entre si para
procesar datos en paralelo y divide un gran problema en problemas más pequeños, Resuelve
el gran problema resolviendo la suma de los problemas más pequeños
Tipos de clustering
• Failover: usa la técnica activo – pasivo, es decir un servidor espera que el otro
muera para maximizar la disponibilidad Los datos son accedidos únicamente por el único
nodo activo, pues el otro no tiene acceso a los datos
• Activo – Activo: Los dos servidores acceden al arreglo externo de datos pero
a unidades lógicas diferentes, ej: Servidor web en un servidor y SGBD en otro servidor Si
llegaran a acceder a la misma unidad se destruyen los datos
Replicación No usa almacenamiento externo
• Los datos se replican desde un nodo hacia el otro consumiendo mucho
procesador y RAM
• Cuando hay un fallo el tiempo de recuperación es muy alto
• Ideal para organizaciones muy pequeñas que no tienen presupuesto
• Consiguen una baja disponibilida
9.5. Demostración de las Herramientas de Disponibilidad en el Gestor
9.5.1 sacar una copia de seguridad y como restaurarlo, además de ciertas opciones de
configuración de copias de seguridad propias de cada gestor
Para sacar una copia de seguridad y realizar la restauración debemos haremos un
BACKUP Y para este ejemplo utilizaremos la base de datos creada
• Crearemos una tabla e insertamos los datos
Ilustració116 Creacion de tablas fuente :elaboracion propia
• Luego conectarnos a la base de datos como propietario de la base de datos.
Ilustración 117 conexión de la base de datos fuente: elaboración propia
Le damos click derecho sobre la base de datos de la que necesitamos sacar una copia
de seguridad o Backup.
Ilustració118 sacamos copia se seguridad , fuente: elaboración propia
- Se muestra el cuadro de diálogo para el Backup de la base de datos
Ilustración 119 Cuadro de dialogo fuente: elaboración propia
IBConsole proporciona un nombre de archivo predeterminado para el archivo de copia de
seguridad. Para anular esto, haga clic en el botón de exploración a la derecha del cuadro de
entrada File Name. Aquí puede seleccionar otro archivo de copia de seguridad o crear un
nuevo nombre de archivo, para el ejemplo dejaremos como está y le damos en ok para
continuar.
Finalmente nos aparecerá un mensaje diciendo que se completó la copia de seguridad de la
base de datos
Ilustración 120 copia de seguridad completada, fuente: Elaboración propia
Una vez creado el Backup. Nos dirigimos a realizar la restauracios en otra maquina
• Creamos una base de datos receptora con el siguiente nombre(restauración)
Ilustración 121 creacion de base de datos restauracion
• Una vez creada la base de datos daremos clip derecho en backup y restauraremos la
base base de datos.
Ilustración 122 Restauración de backup fuente: elaboración propia
• Seguidamente nos aparecera un nueva pestaña don selecionaremos el backup que
deseamos restaurar y la base de datos receptora
Ilustración 123 Seleccionar backup, fuente: Elaboración propia
• Una vez selecionado el backup y la base de datos receptora le damos click en ok. luego
de eso nos aparecera un mensaje que nuetra base de daotos se retauro completamente.
Ilustración 124 Restauración completado , fuente elaboración propia
ahora revisamos que se hayan restaurado todas las tablas y su respectivos datos para tener
una mayor seguridad
Ilustración 2 Copia de seguridad restaurada fuente: Elaboración propia
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
Ilustración 325 Archivo bat ;fuente:elaboracion propia
9.5.3 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.
Se dice que es fácil 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, 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 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, extraemos el disco y copiamos en
un al otro pc, en el segundo pc abrimos Interbase y añadimos la base de datos y listo ya
podemos volver a usarla.
CAPITULO X
Base de datos distribuidas
10.1 Computación distribuida
Según (Pérez,2019) La computación distribuida es un sistema de administración de
computadores en los cuales un conjunto de elementos de procesamiento independiente (no
necesariamente homogéneos) se interconectan por una red de comunicaciones y trabajan
entre ellos para efectuar sus tareas asignadas. El cómputo distribuido determina la forma
como se realizan los procesos entre ellas y las funciones de manejo de datos para el manejo
de funciones distribuidas y procesamiento distribuido de datos.
¿qué es una base de datos distribuidas?
una base de datos distribuida (bdd) es, una base de datos construida sobre una red de
computadores. la información que estructura la base de datos esta almacenada en diferentes
sitios en la red, y los diferentes sistemas de información que las utilizan accedan datos en
distintas posiciones geográficas.
por ende, una base de datos distribuida es una colección de datos que pertenecen
lógicamente a un solo sistema, pero se encuentra físicamente distribuido en varios
computadores o servidores de datos en una red de computadoras. un sistema de bases de
datos distribuidas se compone de un conjunto de sitios lógicos, conectados entre sí, mediante
algún tipo de red de comunicaciones, en el cual:
• cada sitio lógico puede tener un sistema de base de datos.
• los sitios han sido diseñados para trabajar en conjunto, con el fin de que un usuario
de cualquier posición geográfica pueda obtener acceso a los datos desde cualquier punto de la
red tal como si todos los datos estuvieran almacenados en la posición propia del usuario.
entonces, la llamada "base de datos distribuida" es en realidad una especie de “objeto virtual”,
cuyos componentes se almacenan físicamente en varias “bases de datos reales” ubicadas en
diferentes sitios. en esencia es la unión lógica de esas diferentes bases de datos.
Desde el punto de vista del usuario final, un sistema distribuido deberá ser idéntico
a un sistema no distribuido. los usuarios de un sistema distribuido se comportan en su
manipulación de información exactamente como si el sistema no estuviera distribuido. todos
los problemas de los sistemas distribuidos son de tipo interno o a nivel de realización, no
pueden existir problemas de tipo externo o a nivel del usuario final.
Los datos que se encuentran distribuidos en varios sitios y que están interconectados
por una red de comunicaciones tienen capacidad de procesamiento autónomo de
transacciones y hacer procesos locales. cada sitio realiza la ejecución de al menos una
transacción global, la cual requiere accesos a datos en diversos sitios.
10.1.1 Los principios fundamentales de un sistema de datos distribuido son:
Según (chinchilla,2018) los postulados no son todas independientes entre sí, ni tienen
toda la misma importancia que cada usuario le otorgue. sin embargo, sí son útiles como
fundamento para entender la tecnología distribuida y como marco de referencia para
caracterizar la funcionalidad de sistemas distribuidos específicos.
• Autonomía local: los sitios o posiciones de un sistema distribuido deben ser
autónomos. la autonomía local significa que todas las operaciones en un sitio determinado se
controlan en ese sitio; ningún sitio a deberá depender de algún otro sitio b para su buen
funcionamiento (pues de otra manera el sitio a podría ser incapaz de trabajar, aunque no tenga
en sí problema alguno, si cae el sitio b). la autonomía local significa que existe un propietario
y un administrador local de los datos, con responsabilidad local: todos los datos pertenecen a
una base de datos local, aunque los datos sean accesibles desde algún sitio distante. todo el
manejo de la seguridad y la integridad de los datos se efectúan con control de la instalación y
administración local.
• Dependencia de un sitio central: la no dependencia de un sitio central, sería
lo ideal, pero si esto no se logra la autonomía local completa se vería comprometida. la
dependencia de un sitio central no es práctica al menos por las siguientes razones: en primer
lugar, estos sitios podrían generar un cuello de botella, y, en segundo lugar, el sistema sería
vulnerable; si el sitio central sufriera un desperfecto, todo el sistema dejaría de funcionar.
• Operación continúa: en un sistema distribuido, lo mismo que en uno no
distribuido, nunca debería haber necesidad de apagar o dejar de funcionar. es decir, el
sistema nunca debería necesitar apagarse para que se pueda realizar alguna operación, como
añadirse un nuevo sitio o instalar una versión mejorada del sgbd en un sitio ya existente.
• Independencia con respecto a la localización: la independencia con respecto
a la localización, permite que los usuarios finales no sepan dónde están almacenados
físicamente los datos, sino que trabajen como si todos los datos estuvieran almacenados en
su propio sitio local. la independencia con respecto a la localización es deseable porque
simplifica los sistemas de información de los usuarios y sus actividades en la terminal. esto
hace posible la migración de datos de un sitio a otro sin anular la validez de ninguno de esos
sistemas o actividades. esta función de migración permite modificar la distribución de los
datos dentro de la red, en respuesta a cambios en los requerimientos de desempeño.
• Independencia con respecto a la fragmentación: un sistema tiene
fragmentación de datos solo si es posible dividir una relación en partes o "fragmentos" para
propósitos de almacenamiento físico. la fragmentación es deseable por razones de
desempeño: los datos pueden almacenarse en la localidad donde se utilizan con mayor
frecuencia, de manera que la mayor parte de las operaciones sean solo locales y se reduzca
el tráfico en la red de cómputo. existen en esencia dos clases de fragmentación, la
fragmentación horizontal y la fragmentación vertical; estos tipos de fragmentación son
correspondientes a las operaciones relacionales de restricción y proyección,
respectivamente. un fragmento puede ser cualquier sub relación que pueda derivarse de la
relación original mediante operaciones de restricción y proyección; la reconstrucción de la
relación originada a partir de los fragmentos se hace mediante operaciones de reunión y
unión (reunión en el caso de fragmentación vertical, y la unión en casos de fragmentación
horizontal).
• Independencia de réplica: un sistema maneja réplica de datos si una relación
dada se puede representar en el nivel físico mediante varias copias réplicas, en muchos sitios
distintos. la réplica es deseable al menos por dos razones: en primer lugar, puede producir
un mejor desempeño (las aplicaciones pueden operar sobre copias locales en vez de tener
que comunicarse con sitios remotos); en segundo lugar, también puede significar una mejor
disponibilidad (un objeto estará disponible para su procesamiento en tanto esté disponible
por lo menos una copia, al menos para propósitos de recuperación). la desventaja principal
de las réplicas es cuando se pone al día un cierto objeto copiado, deben ponerse al día todas
las réplicas de ese objeto. la réplica debe ser "transparente para el usuario final", un sistema
que maneja la réplica de los datos deberá ofrecer también una independencia de réplica
(conocida también como transparencia de réplica); es decir, los usuarios deberán
comportarse como si sólo existiera una copia de los datos.
• Procesamiento distribuido de consultas: este manejo de datos en las consultas
permite las consultas eficientes desde diferentes usuarios con las características que
determine el sistema; la consulta de datos es más importante en un sistema distribuido que
en uno centralizado. lo esencial es que, en una consulta donde están implicados varios sitios,
habrá muchas maneras de trasladar los datos en la red de cómputo para satisfacer la solicitud,
y es crucial encontrar una estrategia suficiente. por ejemplo, una solicitud de unión de una
relación rx almacenada en el sitio x y una relación ry almacenada en el sitio y podría llevarse
a cabo trasladando rx a y o trasladando ry a x, o trasladando las dos a un tercer sitio z.
• Manejo distribuido de transacciones: este manejo tiene dos aspectos
principales, el control de recuperación y el control de concurrencia, cada uno de los cuales
requiere un tratamiento más amplio en el ambiente distribuido. en un sistema distribuido,
una sola transacción puede implicar la ejecución de programas o procesos en varios sitios
(en particular puede implicar actualizaciones en varios sitios). por esto, cada transacción está
compuesta de varios agentes, donde un agente es el proceso ejecutado en nombre de una
transacción dada en determinado sitio. y el sistema necesita saber cuándo dos agentes son
parte de la misma transacción. es importante aclarar que no puede haber un bloqueo mutuo
entre dos agentes que sean parte de la misma transacción.
• Independencia con respecto al equipo: las instalaciones de cómputo en el
mundo real por lo regular incluyen varias máquinas de diferentes marcas comerciales como
ibm, dell, hp, sun, entre otras; por esta razón existe una verdadera necesidad de poder
integrar los datos en todos esos sistemas y presentar al usuario "una sola imagen del sistema".
por tanto, conviene ejecutar el mismo sgbd en diferentes equipos, y además lograr que esos
diferentes equipos se integren en un sistema distribuido.
• Independencia con respecto al sistema operativo: es necesario y conveniente
no sólo de poder ejecutar el mismo sgbd en diferentes equipos, sino también poder ejecutarlo
en diferentes sistemas operativos y lograr que una versión linux y una windows participen
todas en el mismo sistema distribuido.
• Independencia con respecto a la red: si el sistema puede manejar múltiples
sitios, con equipos distintos y diferentes sistemas operativos, resulta obvia la conveniencia
de manejar también varios tipos de redes de comunicación distintas.
• Independencia con respecto al sgbd: en la independencia con respecto a su
manejo, se requiere que los sgbd en los diferentes sitios manejen toda la misma interfaz; no
necesitan ser por fuerza copias del mismo sistema.
10..2 Partición vertical y horizontal (fragmentación)
Según (Pereira2014) para acceder a una porción de datos en un bdd, un programa
busca y recupera el dato que necesita. dicho dato no se mueve por todo el sistema, sino que
reside en una localidad. los procesos que se ejecutan utilizan operaciones algebraicas para
determinar su ubicación y recuperarlo.
• fragmentación es la descomposición o partición de una tabla en pedazos
llamados fragmentos. La fragmentación básicamente se puede hacer de dos formas:
✓ fragmentación horizontal. selecciona registros completos de una relación
✓ fragmentación vertical. selecciona columnas completas de una relación
10.2.1 Reglas a cumplir por fragmentación
• condición de completes todos los datos de la relación global deberán ser mapeados a
algún fragmento.
• condición de reconstrucción. Deberá ser siempre posible reconstruir la relación global
a partir de sus fragmentos.
• condición de conjuntos [Link] conveniente que los fragmentos sean disjuntos.
10.2.3 Tipo de fragmentación
Los tipos de partición según (Miralles 2015) los tipos de partición son :
• fragmentación horizontal. Definir fragmentos horizontales se hace a través
del operador de selección del algebra relacional operando sobre una relación global.
los predicados que nos permiten definir una fragmentación de una relación son llamados
la calificación de la fragmentación
fragmentaciónvertical
Definir fragmentos verticales se hace a través del operador de proyección del
algebra relacional operando sobre una relación global.
una característica importante de la fragmentación vertical, es que todos los fragmentos
deben incluir la llave primaria de la relación global.
la razón es que si no incluimos la llave primaria no es posible reconstruir la relación original.
10.3 Tipos de arquitecturas / implementaciones
En un sistema de bases de datos distribuidas, existen varios factores que deben tomar
en consideración que definen la arquitectura del sistema:
• distribución: los componentes del sistema están localizados en la misma computadora o no.
• heterogeneidad: un sistema es heterogéneo cuando existen en él componentes que se
ejecutan en diversos sistemas operativos, de diferentes fuentes, etc.
• autonomía: se puede presentar en diferentes niveles, los cuales se describen a continuación:
✓ autonomía de diseño: habilidad de un componente del sistema para decidir cuestiones
relacionadas a su propio diseño.
✓ autonomía de comunicación: habilidad de un componente del sistema para decidir
como y cuando comunicarse con otros sgbd (sistema gestor de bases de datos).
✓ autonomía de ejecución: habilidad de un componente del sistema para ejecutar
operaciones locales como quiera.
10.3.1 Multi base de datos distribuida
cuando una base de datos distribuida es muy homogénea se dice que es multi base de
datos distribuida.
10.3.2 Base de datos federada
cuando una base de datos distribuida tiene mucha autonomía local se dice que es
federada.
10.3.3 Objetivos de implementación
al implementar una base de datos distribuida se tienen ciertos objetivos comunes:
• transparencia de ubicación. permite a los usuarios tener acceso a los datos sin
que tenga conocimiento de la ubicación de éstos. se puede conseguir este nivel de
transparencia al utilizar los administradores de transacciones distribuidas, los cuales son
capaces de determinar la localización de los datos y de emitir acciones a los calendarizadores
apropiados, lo cual puede ejecutarse cuando los administradores de transacciones
distribuidas poseen acceso a los directorios de localizaciones de los datos.
• transparencia de duplicación. para que la transparencia de duplicación sea
posible, los administradores de transacciones deben traducir las solicitudes de procesamiento
de transacción en acciones para el administrador de datos. para las lecturas el administrador
de transacciones selecciona uno de los nodos que almacena los datos y ejecuta la lectura.
para optimizar el proceso, el administrador de transacciones necesita información sobre el
rendimiento de varios nodos respecto al sitio de consulta, así podrá seleccionar el nodo de
mejor rendimiento.
• transparencia de concurrencia. cuando varias transacciones se ejecuten al
mismo tiempo, los resultados de las transacciones no deberán afectarse. la transparencia de
concurrencia se logra si los resultados de todas las transacciones concurrentes son
consistentes de manera lógica con los resultados que se habrían obtenido si las transacciones
se hubieran ejecutado una por una, en cualquier orden secuencial.
• transparencia de fallas. significa que a pesar de fallas las transacciones sean
procesadas de un modo correcto. frente a una falla, las transacciones deben ser atómicas,
significa que se procesen todas o ninguna de ellas. para este tipo de problemas es importante
tener resguardo de la base de datos, y así poder restaurarla cuando sea conveniente. el
sistema debe detectar cuándo falla una localidad y tomar las medidas necesarias para
recuperarse del fallo. el sistema no debe seguir utilizando la localidad que falló. por
• localidad del procesamiento. los datos se deben distribuir lo más cerca posible
de las aplicaciones que los usan para maximizar la localidad del procesamiento, este
principio responde a minimizar el acceso remoto a los datos. diseñar una distribución que
maximice localidad del procesamiento puede hacerse añadiendo la cantidad de referencias
locales y remotas correspondientes a cada fragmentación candidata y asignar la
fragmentación eligiendo la mejor solución.
10.4. Utilizando su gestor, crear un servidor espejo de la base de datos, es decir que cuando
se realice una operación de inserción, modificación, eliminación, etc. éste se ejecute
automáticamente en el otro servidor
• Como primer paso procedemos a Configuramos nuestras computadoras en red, para
poder compartir archivos y de este modo realizar la replicación, teniendo en cuenta
que dicha configuración será realizada en las dos computadoras, pero con ip diferentes
para ello realizaremos los siguientes pasos:
1.-Damos click en “conexion de area local”. Nos aparecera la siguiente ventana “estado de
conexion de area local y -damos click en propiedades
2.- Luego de dar click en propiedades nos aparece la siguente ventana y Damos click en
“protocolo de internet version 4 (TCP/IPv4)” para configurar la direccion ip de la pc.
Ilustración 421 configuration de las computadores
Ilustración 125 configurar direccion de IP
Luego aparecerá la ventana donde verificaremos la dirección ip de ambas computadoras
Computadora 1 Computadora 2
Ilustració123 configuración de la computadora1 Ilustración 126 configuracion de la computadora
4.- para verificar que los computadores están
en red, hacemos ping de una computadora a otra
❖ De la computadora 1 a la computadora 2
Ilustración 127 realizar ping del pc 1 al pc2
❖ De la computadora 2 a la computadora 1
Ilustración12 8Realizar ping del pc 2 al pc 1
Como podemos observar efectivamente hacen ping, esto quiere decir que nuestras
computadoras están en red y ya podrán compartir archivos
Una vez comprobado que la computadora maestra y la computadora esclavo están en red
procedemos a instalar los programas que se van a utilizar
✓ Programas a utilizar:
Gestor DB Interbase Interfaz gráfica de la Base de datos
Herramienta de replicación: IBPhonix
Replicator version [Link]
• Luego procedemos a instalar la herramienta de replicación IBPhonix Replicator
versión [Link] porque el Interbase y IBConsole ya se encuentra instalado (ver
instalación en el capítulo II )
✓ Como podemos observar ya tenemos el instalador lo cual ejecutamos como
administrador para realizar la instalación
Ilustración 129 Instalador de la herramienta IBReplicator
✓ Al ejecutar como administrador nos aparecerá la siguiente ventana a la cual le daremos
siguiente
Ilustración 1210 iniciando la instalación, fuente: elaboración propia
✓ Luego aparecerá la siguiente ventana donde aceptamos los términos y condiciones
Ilustración12 11 Aceptación de términos y condiciones , fuente: Elaboración propia
✓ A
continuación, nos aparecerá la siguiente ventana donde también haremos click en next
para poder continuar
Ilustración 12 Descargando information importante , fuente: elaboración propia
✓ Aqui vamos a elegir la ruta donde se va a guardar la herramienta ,luego hacemos
click en nexta para continuar
Ilustración 13 elegir ruta donde se va a guardar
✓ Una vez elegida la ruta aceptamos las tres herramientas que se van a instalar junto con
el IBPhonix Replicator como el replication server y el replication management toold
ya que estas dos herramientas seran utilizadas para la replicacion
Ilustración 14 instalamos las herramientas internas del IBReplicator
✓ Luego nos dirigimos a crear la configuración de accesos directos del programa en la
carpeta del menú de inicio y hacemos click en next
Ilustración 15 configuración de acceso , fuente: elaboración propia
✓ Luego nos dirigimos a seleccionar tareas adicionales para ejecutar el replicator de una
manera automática y click en next
Ilustración 16 ejecutar de manera automatica
✓ Como podemos observar ya se encuentra lista para la instalacion poro lo tanto
procedemaos a instalarlo .de damos click en install
Ilustración 17 finalizando instalación, Fuente: elaboración propia
✓ Finalmente esperamos que complete al 100% su instalacion y le damos finish
Ilustración 18 damos por finalizada la instalación, fuente: elaboración propia
✓ Tenemos en cuena que las herramientes se hayan creado correctamente y como podemos
observar si se pudo instalar con éxito
Ilustración 19 instalación correcta de las herramientas
✓ Luego nos dirigimos a abrir la herramienta replication manager y nos aparecerá la
siguiente ventana
Ilustración 20 abrir replication manager
✓ Damos click en file y asignamos una nueva configuracion
Ilustración 21 nueva configuración, Fuente: elaboración propia
✓ Nos aparecera la suiguiente ventana donde crearemos la nueva configuracion lo cual
sera la base de datos que nos servira para conectar la computadora maestra con la
computadora esclava y damos click en create y agregar
Ilustración 22 creación de la base de datos puente
✓ Luego crearemos al maestro por lo tanto nos dirigimos a una ventanita que dice data
base en el IBReplicator y aparecerá la siguiente ventana donde pondremos su
descripción respectiva
Ilustración 23 Agregación de la base de datos origen
Ilustración 24 configuración de la base de datos origen
✓ Damos click en donde dice test connection y nos aparecerá un mensaje lo cual
confirmará la conexión a la base de datos origen
✓ Luego asignamos una base de datos como destino
Ilustración 25 agregar base de datos esclava
Ilustración 26 agregación de la base de datos esclava
✓ También damos click en test connection y nos aparecerá el mensaje confirmando la
conexión de la base de datos destino
Ilustración 27 conexión de la base de datos destino
✓ Una vez creada las base datos origen y la base de tatos destino. Procedemos a la
agregacion del esquema donde agregaremos el origen y la base de datos destino.
Ilustración28 agreagr esquemas para origen y destino
✓ Haciendo click en new del grafico anterior nos aparecerá la siguiente ventana
le damos ok y luego test conection.
Ilustración 29 asignar nombre al esquema
✓ Luego agregamos la base de datos destino ,hacemos click en add y
posteriormente ok
Ilustració130 agregar base de datos destino
Ilustración 31 Elegir base de datos
✓ Ahora procedemmos a la creacion de esquemas en nuestra base de tatos
destino , damos click en autogenerate para generar las tablas en la base de
datos destino y luego click e generate
Ilustración 32 generador de tablas de la base de
datos destino
Ilustración 33 generar tablas de la base
de datos
✓ Cuando realizamos click en “generate” para generar los esquemas en la base de
datos destino nos aparecerá la siguiente ventana confirmando la generación de
tablas y cerramos la ventana
Ilustración 34 confirmación de generación de tablas
✓ Una vez generado todos los esquemas procedemos a la sincronización de las
bases de datos. Pero antes de este paso debemos agregar una licencia que le
encontramos en la siguiente página: [Link]
download/ibreplicator donde nos registraremos con un correo electrónico para
que nos envíen el serial de la licencia. De preferencia copiamos en un block de
notas para luego transferirle a donde nos pide
Ilustración 35 block de notas de la licencia
✓ Luego nos dirigimos al replicatos manager y abrimos la ventanita que dice “ license
manager “ y nos aparecerá la siguiente ventana lo cual seleccionamos en add para
agregar la licencia. pegamos la licencia y le damos ok
Ilustración 36 integracion de la licencia
✓ Como podemos observar nuestra licencia ya está agregada, seguidamente cerramos la
pestaña haciendo click en “close”
Ilustración 37 licencia agregada correctamente
✓ Luego nos dirigimos a “Target database\destino\replicate tables and procedures “ y
sobre este damos click derecho y escogemos la opción de “Syncronize”. Para ello es
necesario crear una base de datos con su mismo nombre en cada uno de las
computadoras
Ilustración 38 sincronizacion de las base de datos
✓ Seguidamente nos aparecerá la siguiente ventana donde se muestra el esquema de las
tablas . y damos click en “synchronize”
Ilustración 39 ejecución de sincronización
✓ configuramos que tablas deseamos sincronizar a travez de los checks, y cuando este
listo damos click en “Syncronize” para comenzar con la sincronización.
Ilustración 40 sincronización finalizada
✓ Ahora nos dirigimos a tools y seleccionamos la primera opción “Schedule”
Ilustración 41 programar el periodo de sincronización
✓ Nos aparecerá la siguiente pestaña donde seleccionaremos los dos checks y el periodo
de replicación.
Ilustración 43 seleccionar programación Ilustración 42 programar tiempo de replicación
✓ Cerramos el “Replication schulude”. Con esto estaría terminada nuestra configuración
de la replicación. Ahora abrimos el “replication server” para ejecutar la replicación ,
damos click en le icono de color verde para inicializar la replicación
Ilustración 44 Iniciando replicación
✓ Luego abrimos nuestro gestor en la pc origen e insertamos datos para verificar si la
replicación se ejecuta correctamente
Ilustración 45 insercion de datos en la tabla origen
✓ Ahora abrimos el gestor en la pc destino y verificamos si los datos se replicaron
correctamente
Ilustración 46 verificación de datos en la base de datos destino
❖ Por lo tanto, podemos decir que la replicación se realizó correctamente. este proceso se
realizó en el sistema operativo Windows 7.
Referenciacias
Aenor (2016) Estándares ISO/IEC 10027:1990 y ISO/IEC 10728:1993, obtenido
de:[Link]
Bembibre, v. (2009). definición de ABC , obtenida de [Link]
Chinchilla(2018) Fragmentación de datos en base de datos distribuida ,obtenido de :
[Link]
4835466-pdf
Embarcadero (2011). Gestor de base de datos Interbase obtenido de :
[Link] consultado abril 2019
Gómez (2015) Rol y función de los metadatos [Link]
los-metadatos
Miralles (2015) Bases de Datos Distribuidas, obtenido de: [Link]
Méndez (2017) Gestor de base de datos Interbase obtenido de prezi:
[Link]
Posted, (2016) Diccionario de datos obtenido de: [Link]
Pérez (2019) Distributed Databases, obtenido de [Link]
Pereira(2014) Bases de datos distribuidas, Obtenido de :
[Link]