Download Trabajo de curso de Word: Antes

Document related concepts

Base de datos distribuida wikipedia , lookup

SAP HANA wikipedia , lookup

Transacción (base de datos) wikipedia , lookup

SQLite wikipedia , lookup

Oracle Database wikipedia , lookup

Transcript
Índice
SISTEMAS OPERATIVOS Y SISTEMAS DE INFORMACIÓN
Sistemas operativos
Lo primero que cabría decir es que la historia de los sistemas operativos corre paralela a
la de la arquitectura de los computadores.
Podemos decir que hasta que no aparecieron los circuitos integrados y el sistema
operativo OS/360 de IBM (1965), no se popularizaron varias técnicas fundamentales, de
las que la más importante es la multiprogramación.
Otra de las características del OS/360 (y otros de su generación), era la capacidad de
leer trabajos de las tarjetas al disco, de maneras que estos quedaban encolados a la
espera de que el sistema operativo concluyera con un trabajo, cargando un nuevo trabajo
del disco en la partición de memoria que había quedado desocupada. Esta técnica se
llama spooling.
Posteriormente, surgió otra técnica relacionada con la multiprogramación: la de tiempo
compartido. Se trata de que en un sistema donde hay varios usuarios con sesiones
abiertas, la CPU puede ser asignada a los que requieran servicio. Así, unos mandarán
trabajos cortos, como la compilación de programas de cinco páginas, y otros requerirán
del sistema que ordene un millón de registros de una cinta. La computadora podría dar
un servicio rápido e interactivo a varios usuarios y realizar los trabajos más largos
cuando esté más inactiva. En este sentido, quizás el sistema operativo más
representativo fue MULTICS (MIT, Bell Labs y General Electric), con el que se
pretendía soportar cientos de sesiones con tiempo compartido. El proyecto se fue
abandonado poco a poco y sólo en cierto ambiente de producción del MIT llegó
realmente a ejecutarse. Sin embargo muchas de las ideas de MULTICS tuvieron una
enorme influencia en sistemas subsecuentes.
Con el desarrollo de los circuitos LCI (Large Scale Integration), chips con miles de
transistores en un cm2 de silicio, se inició la era de la computadora personal.
La amplia disponibilidad del poder de cómputo, que dio lugar a que podían contarse con
gráficos excelentes, condujo al crecimiento de una gran industria de producción de
software para computadoras personales. Gran parte de este software es amigable con el
usuario, lo que indica que está destinado al usuario que no sabe nada acerca de
computadores.
Dos sistemas operativos han dominado la escena de las computadoras personales y las
estaciones de trabajo (en realidad, computadoras personales grandes): MS-DOS de
Microsoft y UNIX. MS-DOS tiene un amplio uso en la IBM PC y otras máquinas con la
CPU de la familia Intel (del 8088 al último Pentium o Itanium).
UNIX domina en las computadoras que no utilizan a Intel, así como en las estaciones de
trabajo (en especial las que poseen chips de alto desempeño RISC).
Concepto de sistema operativo
Los programas de computador se pueden dividir es dos grupos: los programas del
sistema, que gestionan las actividades del computador en sí, y los programas de
aplicación, que resuelven los problemas de los usuarios.
Si cada programador se tuviera que preocupar de cómo funciona el controlador del
disco y de la gran cantidad de errores que pueden ocurrir al leer un bloque de disco, es
muy probable que muchos programas no se llegasen a escribir. Precisamente, uno de los
programas de sistema más importante, el sistema operativo, se encarga de administrar
todos los recursos del computador y proporcionar el soporte necesario para escribir los
programas de aplicación.
En otras palabras: el sistema operativo es la capa de software sobre el hardware, que se
encarga de gestionar todos los elementos del sistema y presentar al usuario una interfaz
(funciones de llamadas al sistema), o máquina virtual más fácil de entender y programar.
Pero el sistema operativo, como se ha señalado, no sólo proporciona soporte a los
programadores, también (y quizás sea su labor más importante), administra los recursos
del computador.
Un computador consta de procesadores, memorias, temporizadores, discos, terminales,
unidades de disco, interfaz a redes de comunicación, impresoras, etc. El sistema
operativo debe asignar, de forma ordenada, los procesadores, memorias y dispositivos
de E/S a los diversos programas (procesos) que compiten por ellos.
Por último digamos, que la perspectiva que se utiliza aquí (y en el resto de temas
relacionados) es la de los sistemas operativos llamados "tradicionales" o centralizados,
en contraposición de los "distribuidos". Un sistema operativo distribuido realiza las
mismas funciones que el centralizado pero utilizando un gran número de CPU (con
todas sus memorias, discos, etc., y demás recursos asociados), y que están conectados
mediante una red de alta velocidad.
Objetivos y funciones de un sistema operativo
Podemos afirmar que todo sistema operativo tiene dos objetivos:
Comodidad: Un sistema operativo hace que un computador sea más fácil y cómodo de
utilizar.
Eficiencia: Un sistema operativo permite que los recursos del computador se utilicen de
forma eficiente.
Las funciones o servicios que proporciona un sistema operativo se llevan a cabo en las
siguientes áreas:
Creación de programas: El sistema operativo proporciona cierta variedad de servicios y
medios para ayudar al programador en la elaboración de programas. Usualmente, estos
servicios son utilidades que no son propiamente del sistema operativo, pero se accede a
ellos a través del mismo.
Ejecución de programas: Para ejecutar un programa es preciso realizar una serie de
tareas. Las instrucciones y datos deben cargarse en memoria principal, los dispositivos
de E/S y los ficheros deben iniciarse, y deben prepararse otros recursos. El sistema
operativo proporciona todo eso al usuario.
Acceso a los dispositivos de E/S: El sistema operativo se encarga del conjunto particular
de instrucciones y señales de control que necesitan los dispositivos de E/S para operar.
De esta manera, el programador piensa sólo en términos de lecturas y escrituras.
Acceso controlado a los ficheros: El sistema operativo se ocupa de los detalles sobre la
naturaleza del dispositivo donde están almacenados los ficheros (disco fijo, CD-ROM,
etc.), así como del formato de los mismos. También, en el caso de sistemas
multiusuarios, el sistema operativo proporciona mecanismos de protección para
controlar el acceso a los ficheros compartidos.
Detección de errores: Mientras el computador está funcionando, se pueden producir
errores de hardware, internos y externos, tales como errores de memoria, o
comportamientos incorrectos de los dispositivos, y errores diversos de software, tales
como desbordamientos, el intento de acceso a una posición de memoria no permitida.
En cada caso, el sistema operativo debe responder de forma que se supere el error con el
menor impacto para las aplicaciones que se estén ejecutando. Normalmente, lo que hará
el sistema operativo es abortar el programa que causó el error, reintentar la operación o
notificar el error a la aplicación.
Contabilidad: El sistema operativo debe almacenar la estadística de uso de los distintos
recursos. Esta información es útil para anticipar la necesidad de futuras ampliaciones, y
ajustes que mejoren las prestaciones del sistema.
Tipos de sistemas operativos
Para distinguir entre los distintos tipos de sistemas operativos, existen ciertas
características clave. La primera característica clave es si se trata de un sistema de colas
(batch) o interactivo. En un sistema interactivo, el usuario interactúa directamente con el
computador, para solicitar la ejecución de un trabajo o realizar una transacción. Un
sistema de colas, es lo opuesto. El programa usuario se introduce en una cola junto con
programas de otros usuarios. Después de que el programa ha terminado, los resultados
se proporcionan al usuario.
La otra característica clave es si el sistema utiliza multiprogramación o no. Con la
multiprogramación se intenta mantener al procesador ocupado tanto como sea posible,
haciéndolo trabajar en más de un programa al mismo tiempo. La alternativa es un
sistema de monoprogramación, que trabaja sólo en un programa en cada momento.
Hay muchas clasificaciones de sistemas operativos, dependiendo del criterio en que se
basen.
Según el punto de vista del usuario
Sistemas monousuario: Tienen un solo usuario y están dedicado, generalmente, a una
sola función. El interfaz del SO constará básicamente de un gestor de ficheros sencillo,
utilidades que proporcionen facilidades de E/S y un intérprete de comandos también
sencillo. Sus cualidades son fiabilidad, eficacia, sencillez de uso y facilidad de
extensión.
Sistemas de tiempo real: Dan respuesta a unas entradas con un tiempo de proceso
limitado. Sus funciones principales son: interactuar con dispositivos externos (sensores,
válvulas, etc.), reaccionar de forma inmediata ante cualquier suceso externo, registrar la
información, tener noción de tratamientos prioritarios y realizar una planificación
eficiente. Su cualidad principal es la tolerancia a fallos y la disponibilidad. Los campos
de aplicación son gestión de centralitas telefónicas, pilotaje de aviones o vigilancia
médica.
Sistemas transaccionales: Sus funciones son gestionar un gran volumen de información
desde distintos y numerosos puntos de acceso, gestión de un gran número de
transacciones que se desarrollan simultáneamente. Sus cualidades son fiabilidad y
disponibilidad. Ejemplos de estos sistemas los tenemos en los de reservas de plazas en
líneas aéreas, gestión de cuentas bancarias o consultas de documentos.
Sistemas time-sharing/multiprogramados: Se caracterizan por prestar servicio a un
conjunto de usuarios simultáneamente, dividiendo el tiempo de máquina en "quantums"
para cada usuario (a diferencia de los sistemas multiprogramados en el que el
procesamiento es concurrente). El SO es el encargado de conmutar entre los diversos
procesos.
Sistemas multiprocesador: Se caracterizan por la existencia de varios procesadores
centrales compartiendo a veces memoria y periféricos en la ejecución de instrucciones
en paralelo. Sus funciones son las mismas que las de los sistemas timesharing/multiprogramados.
Según la arquitectura del computador
Sistemas monolíticos: Están diseñados como un conjunto de rutinas compiladas por
separado, que pueden llamarse entre sí y que se montan para formar el SO, que será la
rutina principal. Como ejemplos tenemos DOS y UNIX. El principal problema de los
sistemas monolíticos es su diseño poco apropiado para sistemas operativos grandes, son
difíciles de especificar, codificar, probar y depurar.
Sistemas por niveles o capas: Se introdujeron para mejorar los monolíticos. Estos
sistemas están diseñados como una jerarquía de niveles, en la que cada nivel hace uso
de las facilidades que le proporcionan el hardware y los niveles inferiores a él. Están
constituidos por una serie de módulos pequeños y fáciles de manejar. Un ejemplo de
este tipo de SO es MINIX (véase [3]). La principal ventaja de este tipo de sistema es su
facilidad de mantenimiento. La principal dificultad es elegir las funciones que deben de
asignarse a cada nivel.
Tipología de los sistemas de información
La tarea de los SI consiste en procesar la entrada, mantener archivos de datos en
relación con la empresa y producir información, informes y otras salidas.
Estos sistemas están constituidos por otros subsistemas que incluyen el hardware,
software y almacenamiento de datos para los archivos y bases de datos.
Llamaremos aplicación de un sistema de información al conjunto formado por equipos,
programas, archivos y procedimientos. Por lo tanto, los sistemas de información podrán
tener aplicaciones de compras, contabilidad, ventas, etc.
Los analistas, a la hora de diseñar los sistemas de información se ayudan de
organigramas que describen las relaciones de los componentes de una empresa. Sin
embargo, existen otros datos que no pueden reflejarse utilizando dichos organigramas,
pero que un analista tendrá que tener en cuenta. Algunos de estos datos son:
¿Qué interacciones existen entre el personal y los departamentos, pero que no aparecen
en los organigramas?
¿En qué otros departamentos y componentes de la empresa se encuentra una de
pendencia específica?
¿Cuáles son los individuos y elementos del sistema más importantes para alcanzar con
éxito los trabajos?
¿Cómo circulan la información y las instrucciones entre los componentes de la empresa,
y cómo interactúan las diferentes áreas con las demás?
En las empresas, los analistas desarrollan dos tipos diferentes de sistemas de
información:
Los sistemas de procesamiento de transacciones que se ocupan de tareas rutinarias que
es necesario efectuar periódicamente.
Los sistemas de información para la gestión que hacen referencia a la parte de los SI que
no se dedica al procesamiento y tratamiento de transacciones, sino a los niveles
operativo, táctico y estratégico de la dirección. Son llamados también Sistemas de
decisiones administrativas se utilizan para dar apoyo directo a los gerentes responsables
de la toma de decisiones de la empresa. Les ayudan proporcionándoles información
importante que servirá de entrada al proceso de decisión.
Los sistemas de apoyo para la toma de decisiones son un tipo de sistemas de decisiones
administrativas: apoyan las decisiones que están menos estructuradas y que no es
rutinaria.
Sistemas de apoyo para la toma de decisiones
Los Sistemas de Apoyo de Decisiones son usados por los directivos para realizar
análisis de los datos de la empresa, y tomar las mejores decisiones. Proporcionan bases
de datos y herramientas de análisis y modelado.
El propósito de estos sistemas es ayudar a la administración para que marque tendencias,
señale problemas y tome decisiones inteligentes. El origen de estos sistemas es anterior,
incluso, a la existencia de computadores, y la idea básica es recolectar datos
operacionales del negocio, y reducirlos a una forma que pudiera ser usada para analizar
el comportamiento del mismo y modificarlo inteligentemente.
En la década de los setenta las propias empresas construyeron varios sistemas
personalizados de apoyo para la toma de decisiones. Fueron implantados usando
generadores de informes como RPG, o productos de recuperación de datos como Focus,
Datatrieve y NOMAD. Con estos sistemas los gerentes de la empresa formulaban
consultas sin requerir ayuda del departamento de procesamiento de datos.
Las bases de datos para el apoyo de toma de decisiones tienen características especiales:
generalmente son sólo de lectura. Otras características destacables de dichas bases son:
No preocupa la integridad.
Tienden a ser grandes.
Están muy indexadas.
Contienen a menudo redundancias controladas
La redundancia es controlada cuando es controlada por el SGBD y está oculta a los
usuarios. Hay dos tipos de estas redundancias:
Mediante el mantenimiento de réplicas de los datos.
Mediante el mantenimiento de datos derivados, muy frecuentes en las tablas resumen o
columnas derivadas calculadas.
Las tablas resumen son tablas que guardan totales (sumas, promedios, etc.) de los
valores que están en otras tablas.
Preparación de datos
Los datos en los sistemas de apoyo para la toma de decisiones deben de ser extraídos de
diversas fuentes, limpiados, transformados y consolidados, así como cargados en la base
de datos de apoyo. Además, serán actualizados periódicamente:
La extracción es el proceso de capturar datos de las bases de datos operacionales
(tratadas más adelante) o de otras fuentes.
La limpieza incluye el llenado de valores faltantes, la corrección de errores tipográficos,
etc. Los datos que son erróneos y que no pueden ser limpiados serán reemplazados.
La transformación y consolidación puede involucrar la división o la combinación de los
registros fuente. Llamamos consolidación al proceso mediante el cual se mezclan varias
fuentes de datos.
Las operaciones de carga incluyen: el movimiento de los datos transformados y
consolidados hacia la base de datos de apoyo para la toma de decisiones; la verificación
de su integridad; y la construcción de cualquier índice necesario.
La actualización se refiere a que la mayoría de las bases de datos de apoyo de decisiones
requiere periódicamente: una carga parcial, y a menudo la eliminación de la base y una
carga completa.
Los almacenes de datos operacionales son un tipo especial de bases de datos. Están
orientados a un tema: los datos en cuestión tienen que ver con alguna área temática
(como por ejemplo: clientes o productos). Son a menudo áreas transitorias para la
reorganización física de los datos operacionales extraídos o para apoyar la toma de
decisiones operacionales.
Data warehouses y data marts
Los sistemas de apoyo para la toma de decisiones tienen requerimientos de rendimiento
variables, cargas de trabajo impredecibles, y una utilización errática. Sin embargo, a
pesar de estas diferencias con respecto a los sistemas operacionales, los datos de apoyo
para la toma de decisiones necesitan ser recolectados a partir de los operacionales, y
mantenidos en un almacén de datos propio en una plataforma independiente. A dichos
almacenes se les conoce como data warehouse.
Un almacén data warehouse es un tipo especial de base de datos. Surgieron por dos
razones: la necesidad de proporcionar una única fuente de datos limpia y consistente
para datos de apoyo de toma de decisiones; y la necesidad de hacerlo sin afectar a los
sistemas operacionales.
Pronto se hizo evidente que los usuarios realizaban amplias operaciones de informes y
análisis de datos sobre un subconjunto relativamente pequeño de los data warehouse.
Por lo que se vio la necesidad de construir algún tipo de almacén a medida para ciertos
propósitos. Estos almacenes son los data marts.
Esquemas dimensionales
Los primeros sistemas de apoyo para la toma de decisiones mantenían generalmente un
simple archivo como historial de las transacciones de negocios a efectos de análisis.
Más tarde, por medio de exploración secuencial, se podría acceder al mismo. Sin
embargo, conforme el volumen de información aumenta, se hace necesario el mantener
desde varias perspectivas diferentes, un acceso directo a dicho archivo. Por ejemplo,
encontrar las transacciones que involucran a un producto en particular.
Se llamó multicatálogo al método de organización que soporta este tipo de acceso
directo. El archivo se convirtió en uno general que mantenía los datos de las
transacciones de negocios y tres archivos: para productos, periodos y clientes. Estos
últimos archivos se parecen a los archivos de índice, aunque las entradas pueden ser
colocadas explícitamente por el usuario, y pueden contener información suplementaria
(por ejemplo, la dirección del cliente). Bajo el punto de vista del modelo relacional, a
los archivos de datos se les llama tablas de hechos y a los de catálogo tablas de
dimensión. Al diseño general se le llama esquema dimensional.
Minería de datos
Con el término minería de datos se entiende un análisis de datos exploratorio. El
propósito es buscar patrones interesantes en los datos, que pueden usarse para
especificar la estrategia del negocio, o para identificar comportamientos fuera de lo
común. Las herramientas de minería de datos aplican técnicas estadísticas a una gran
cantidad de datos almacenados para buscar patrones.
Consideremos la siguiente tabla:
Transacción Cliente Marca de tiempo
Producto
TX1 1
D1
ZAPATOS
TX1 1
D1
CALCETINES
TX1 1
D1
CORBATAS
TX2 2
D2
CALCETINES
TX2 2
D2
CORBATAS
TX2 2
D2
CINTURONES
TX2 2
D2
CAMISAS
TX3 3
D2
ZAPATOS
TX3 3
D2
CORBATAS
TX4 2
D3
ZAPATOS
TX4 2
D3
CALCETINES
TX2 2
D3
CINTURONES
Al negocio le gustaría realizar un análisis de canasta de mercado sobre los datos de la
tabla (canasta de mercado se refiere al conjunto de productos comprados en una sola
transacción). De ese modo, espera descubrir correlaciones como: un cliente que compra
zapatos, también compra calcetines. A dicha correlación se la conoce como regla de
asociación, y puede expresarse como:
FORALL TX (ZAPATOS  TX => CALCETINES  TX)
Otra terminología en minería de datos es: llamamos población en el ejemplo, al
conjunto de todas las transacciones de ventas. El nivel de soporte es el fragmento de
población que satisface la regla. El nivel de confianza es la fracción de la población en
la que, si se cumple el antecedente, también se satisface el consecuente.
En el ejemplo, dada la regla:
FORALL TX (CALCETINES  TX => CORBATAS  TX)
La población es 4, el soporte es del 50% y la confianza es del 66.67%.
También podríamos definir otros tipos de reglas. Una regla de correlación de secuencia
podría ser usada para identificar patrones de compras a lo largo del tiempo: si un cliente
compra zapatos hoy, es probable que compre calcetines dentro de los 5 días siguientes.
BIBLIOGRAFIA
[1] James A. Senn. Análisis y Diseño de Sistemas de Información. 1988, McGraw-Hill.
[2] Date, C.J. Introducción a los Sistemas de Bases de Datos, Addison Wesley, 2001,
(7ª Edición).
[3] Mario G. Piattini y otros. Análisis y diseño detallado de aplicaciones informáticas de
gestión. RA-MA, 1996.
SISTEMAS GESTORES DE BASES DE DATOS.
Resumen
Los sistemas gestores de bases de datos (SGBD) surgieron ante la necesidad que tenían
las grandes compañías de manejar convenientemente sus datos. Existían una serie de
motivaciones que se detallan primeramente (como problemas de redundancia e
inconsistencia, difícil acceso y aislamiento de los datos, etc.), que dieron origen a dichos
sistemas.
Antes de pasar a tratar las funciones y componentes de un SGBD, estudiamos algunos
de las definiciones que se han dado de un SGBD, y las ventajas e inconvenientes de
utilizarlos en grandes compañías (que es donde realmente tiene sentido que se usen).
En cuanto a las funciones de un SGBD, quizás las más importantes sean el acceso y
modificación de los datos (que, normalmente, realizan los usuarios del sistema), aunque
hay otras como la descripción destinada a los administradores, que permiten definir los
esquemas que va a manejar el sistema.
Las componentes son muy variadas, y dependen del modelo que su utiliza.
La arquitectura de referencia es la ANSI/SPARC que propone 3 niveles bien
diferenciados para la estructura de cualquier SGBD: nivel físico, donde se manipulan
las estructuras de almacenamiento de los datos (ficheros indexados, árboles B, etc.); el
nivel conceptual, donde se ocultan los detalles del almacenamiento y se tratan las
distintas entidades que van a manejar los usuarios; y el nivel de vistas, donde sólo son
visibles diferentes vistas de la base de datos destinadas a ciertos grupos de usuarios.
Entre cada dos niveles se ha de definir las reglas de transformación de datos entre
niveles.
A continuación hacemos una descripción de un SGBD real, DB2, que se ajusta bastante
a la arquitectura ANSI/SPARC.
Por último, se relacionan distintos tipos de SGBD utilizando diferentes criterios de
clasificación.
Sistemas gestores de bases de datos
Antes de que se comenzase a emplear el término de bases de datos, las organizaciones
contaban con un gran número de archivos donde tenían almacenados los datos en muy
variados formatos, y con programas de aplicación específicos para cada archivo,
escritos en los más diversos lenguajes de programación. Lo cierto era que el panorama
era bastante desolador. La relación que hacemos a continuación muestra algunas de las
dificultades con las que se tenían que enfrentar los usuarios de dichos sistemas (que se
han dado en llamar de procesamiento de archivos):
Redundancia e inconsistencia de los datos:
Dado que los diferentes archivos tenían distintos formatos, y los programas que los
manipulaban estaban escritos en leguajes diferentes; ocurría con frecuencia que la
misma información estaba repetida en distintos archivos. Esta redundancia tenía como
consecuencia un aumento en el coste de almacenamiento y en el de acceso de los datos.
Pudiendo conducir a inconsistencias de los mismos: si se cambiaba un dato en un
archivo, los datos eran inconsistentes al no modificarlos en el resto de archivos.
Difícil acceso a los datos:
Para las operaciones no previstas solicitadas por un usuario, que consisten generalmente
en buscar unos datos que cumplan ciertas propiedades, era necesario listarlos todos y
filtrar los que no cumplían dichas propiedades, con lo que la tarea de encontrar datos se
hacía bastante tediosa.
Aislamiento de los datos:
Debido a que los datos están dispersos en varios archivos, resultaba difícil escribir
aplicaciones que recuperaran los datos adecuados.
Problemas de integridad:
Es necesario garantizar que los usuarios autorizados realicen operaciones correctas
sobre los datos. En general, decimos que los datos deben cumplir ciertas propiedades
llamadas ligaduras de integridad. Para hacerlas cumplir es necesario añadir el código
apropiado a las diferentes aplicaciones, resultando muy difícil esta adición si estas
ligaduras deben cumplirse entre elementos de datos que están en diferentes archivos.
Problemas frente a fallos del sistema:
Algunas operaciones realizadas con datos del sistema deben de ocurrir o no de manera
completa (la operación debe ser atómica), de manera que si ésta fue, por ejemplo, de
transferencia de una cantidad desde una cuenta a otra, debemos evitar las situaciones en
las que, se reste la cantidad del saldo de la primera cuenta sin que haya aumentado en la
misma cantidad el saldo de la segunda cuenta. Esto es difícil de controlar en un sistema
tradicional de procesamiento de archivos. La dificultad reside, sobre todo, en garantizar
que las operaciones serán deshechas si hay un fallo. A este tipo de operaciones se las
denominará más adelante transacciones.
Problemas en el acceso concurrente:
Muchos sistemas permiten el acceso simultáneo de múltiples usuarios para actualizar
los datos, de manera que pueden darse situaciones en que los datos sean inconsistentes.
Así podrían dos usuarios intentar a la vez retirar 100 € y 200 € de una cuenta que tenga
1000 €. De manera que si las operaciones pueden realizarse de forma simultánea, ambos
usuarios ven un saldo de 1000 €, por lo que la primera operación daría un saldo de 900
€, que podría actualizarse después de que se realizase completamente la segunda
operación, resultado que el saldo final es de 900 €. El proceso de supervisión que
evitaría estos errores, resultará bastante más difícil de implementar, si se pueden acceder
a los datos desde muchos programas de aplicación diferentes.
Problemas de seguridad:
No todos los usuarios deben de tener acceso a todo tipo de información. Como las
aplicaciones se añadían cubriendo diferentes necesidades conforme van apareciendo, y
para distintos tipos de usuarios, es difícil controlar las ligaduras de seguridad.
Para salvar la mayor parte de estos inconvenientes que hemos apuntado, surgieron los
Sistemas de Gestión de Bases de Datos (DBMS, en inglés).
El primer objetivo de cualquier sistema de gestión de bases de datos es proporcionar un
entorno práctico y eficiente para la recuperación y almacenamiento de los datos.
La importancia de la información en las organizaciones, ha conducido al desarrollo de
una gran cantidad de conceptos y técnicas para la gestión eficiente de los datos. De todo
ello nos vamos a ocupar en el resto de apartados del presente tema.
Conceptos de base de datos
A continuación, se muestran algunas de las definiciones clásicas de bases de datos en
orden cronológico (subrayamos los conceptos más relevantes que introdujeron cada una
de ellas):
Colección de datos interrelacionados almacenados en un conjunto sin redundancias
perjudiciales o innecesarias; su finalidad es servir a una aplicación o más, de la mejor
manera posible; los datos se almacenan de manera que resulten independientes de los
programas que los usan; se emplean métodos determinados para incluir nuevos datos y
para modificar o extraer los datos almacenados.
Conjunto de datos de la empresa memorizado por una computadora, que es utilizado por
numerosas personas, y cuya organización está regida por un modelo de datos.
Colección no redundante de datos compatibles entre diferentes sistemas de aplicación.
Conjunto de archivos maestros, organizados y administrados de una manera flexible de
modo que los archivos pueden ser fácilmente adaptados a nuevas tareas imprevisibles.
Ninguna de estas definiciones resulta completa para lo que hoy en día se entiende por
bases de datos. Una definición completa, podría ser:
"Colección de datos integrados, con redundancia controlada y con una estructura que
refleja las interacciones y restricciones existentes en el mundo real; los datos, que han
de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse
independientes de éstas, y su definición y descripción, únicas para cada tipo de datos,
han de estar almacenadas junto con los mismos. Lo procedimientos de actualización y
de recuperación, comunes y bien determinados, habrán de ser capaces de conservar la
integridad, seguridad y confidencialidad del conjunto de los datos."
Concepto de SGBD
Un SGBD se define como "el conjunto coordinado de programas, procedimientos,
lenguajes y otros recursos, que suministra, tanto a los usuarios no informáticos como a
los analistas, programadores o al administrado del sistema, los medios necesarios para
describir, recuperar y modificar los datos almacenados en la base, manteniendo su
integridad, confidencialidad y seguridad."
Ventajas de los SGBD
Como ya se ha indicado los SGBD surgieron para evitar muchos de los inconvenientes
que presentaban los sistemas de almacenamiento de archivos, sin perder de vista su
finalidad última. Esta es la relación casi completa de los problemas que ya se han
superado en gran medida:
Independencia de los datos respecto a los tratamientos y viceversa
De manera que un cambio en el tratamiento de los datos, no imponga un nuevo diseño
lógico o físico de la base de datos. Así mismo, la inclusión de nuevas informaciones,
desaparición de otras, cambios en la estructura física o en la forma de acceso, etc., no
deben obligar a alterar los programas. Esta independencia entre las estructuras de la
base de datos y los programas de aplicación, supone una gran ventaja frente al esfuerzo
de tener que reprogramar cuando se producen cambios en los datos. De esta manera, sin
costes excesivos, el sistema se adaptará a la evolución de la organización que lo esté
usando.
La característica que permite que los programas y los datos que los manejan sean
independientes se llama abstracción de datos. De manera que el usuario de la base de
datos no tiene que conocer cómo están almacenados los datos ni los detalles de cómo
están implementadas las operaciones sobre los mismos (como, en realidad, ocurría de
alguna forma con los sistemas primeros que aparecieron).
En los SGBD los detalles de la estructura y organización de cada archivo se almacenan
en el Catálogo. Los usuarios utilizan la representación conceptual de los archivos, y es
el propio sistema quien se encarga de extraer los detalles de almacenamiento de dicho
Catálogo cuando los requieran las aplicaciones escritas para el SGBD.
Coherencia de los resultados
En todos los tratamientos dentro de un SGBD se utilizan los mismos datos, por lo que
todos son coherentes y compatibles. Además, al no existir (o al menos disminuir en gran
mediada) la redundancia de los datos, desaparece el problema del enfoque clásico en el
que era necesario actualizar los archivos para evitar este tipo de problemas.
Disponibilidad de los datos para el conjunto de usuarios
Un usuario no es propietario de ningún dato, sino que todos tendrán acceso a todos los
datos (siempre que tengan las autorizaciones oportunas). De nuevo, utilizando el
Catálogo (o diccionario), los datos podrán ser difundidos y accedidos por distintos
medios informáticos.
Valor de la información
Puesto que los datos son tratados en conjunto, éstos adquieren mayor valor, que si
fuesen tratados de forma independiente.
Documentación normalizada e integrada con los datos
Tradicionalmente, la documentación de los datos era efectuada por un analista o
programador aparte de la propia base de datos. Actualmente se tiende a que la
descripción de los datos esté incluida dentro del sistema y a que sea lo más completa
posible.
Eficiencia en la recogida, validación y entrada de datos en el sistema
Al no existir apenas redundancia, los datos se recogen y validan una vez, de manera que
el proceso de almacenamiento tiene un rendimiento mucho mayor que en los sistemas
tradicionales.
Reducción del espacio de almacenamiento
De nuevo, al no haber apenas redundancia y aplicando, además, técnicas de
compactación de datos, se obtienen SGBD con una menor ocupación en disco.
Posibilidad de múltiples vistas de los datos
Los datos son manipulados por muy diferentes tipos de usuarios. Una vista puede
consistir en un subconjunto de la base de datos o en datos virtuales, derivados de los
datos almacenados pero que no están grabados físicamente en el Catálogo. Un SGBD
debe incluir la posibilidad de definir múltiples vistas.
Restricción del acceso a los usuarios autorizados
La seguridad se entiende como un mecanismo de protección de los datos. El SGBD
dispone de un subsistema de seguridad, antes de permitir el acceso a los datos por un
usuario, se encarga de revisar las restricciones de seguridad almacenadas en el Catálogo.
Inconvenientes de los SGBD
Sin embargo todas estas mejoras no iban a obtenerse sin un coste adicional. A
continuación mostramos la relación de los inconvenientes con los que habrá de
enfrentarse cualquier organización que desee implantar un SGBD:
Instalación costosa
La instalación de un SGBD implica elevados costes tanto a nivel físico (nuevas
instalaciones o aplicaciones), como a nivel lógico (sistemas operativos, programas,
compiladores, etc., que son necesarios para su uso).
Personal especializado
Sobre todo para la administración del SGBD, será necesario un personal especializado
que será difícil de encontrar, y de formar. Muchas veces, este problema es clave cuando
una organización se plantea utilizar el sistema.
Implantación larga y complicada
Las dificultades que van apareciendo a lo largo del desarrollo de la implantación de un
SGBD, llevan, casi siempre, a que se superen los plazos inicialmente previstos.
Falta de rentabilidad a corto plazo
El coste que implica tanto de personal como de equipos la implantación de un SGBD,
hace que no resulte rentable a corto plazo. Así, en instalaciones muy grandes el plazo
para que sea rentable puede ser de varios años.
Ausencia de normas
No existe un estándar, realmente, que facilite a los usuarios el manejo de los sistemas de
bases de datos. En el campo de las bases de datos relacionales, ya empieza a imponerse
un lenguaje estándar: el SQL ISO (9075).
Desfase entre teoría y práctica
Los usuarios, sobre todo directivos, tienen una resistencia a cambiar un sistema de
información basado en archivos por uno más avanzado enfocado a las bases de datos.
Además, debido al desconocimiento de las posibilidades que ofrece un SGBD, pueden
sentir cierta frustración cuando lo implantan en sus organizaciones.
Funciones
Un SGBD debe ser capaz de describir, recuperar y modificar los datos, por lo tanto, las
principales funciones que deben poderse realizar con el mismo están claras. También
hemos de incluir aquí otras funciones propias de la administración del sistema.
Función de descripción
Esta función debe de permitir al administrador especificar los elementos de los datos
que la integran, su estructura y las relaciones que existen entre ellos. Así mismo, el
administrador podrá establecer las reglas semánticas, los controles a efectuar antes de
autorizar los accesos a una base, etc. También con esta función, podrá dar las
características de tipo físico y las vistas lógicas de los usuarios.
Esta función se realiza mediante un lenguaje de descripción de datos (DDL, Data
Description Language), que será propio de cada SGBD. Con el DDL podemos definir
las tres estructuras de datos (externa, lógica e interna, como veremos al tratar la
arquitectura del sistema), especificando las características de los datos para cada uno de
estos niveles.
En el nivel interno, indicamos el espacio (volúmenes, cilindros y pistas) reservado para
la base; la longitud de los campos o elementos de los datos, su modo de representación
(binario, decimal, alfanumérico, punto fijo o flotante, etc.) Además deben definirse los
caminos de acceso: punteros, índices, etc.
Para las estructuras externa y lógica, esta función debe permitir la definición de las
entidades y su identificación, los atributos de las mismas, interrelaciones entre ellas,
autorizaciones de acceso, restricciones de integridad, etc. El SBDG se ocupará de la
función de correspondencia (mapping) de las estructuras lógicas externas y de la
relación entre la estructura externa y la interna (mediante las llamadas reglas de
transformación, como veremos al estudiar la arquitectura).
Función de acceso y modificación
Permite a los usuarios (informáticos o no), buscar, añadir, suprimir o modificar los
datos de la misma.
Esta función se llevará a cabo mediante el lenguaje de manipulación de datos (DML,
Data Manipulation Language). Muchas veces se trata de un conjunto de instrucciones
que son admitidas por un lenguaje de programación, y otras de un lenguaje desarrollado
especialmente para el SGBD. La mayoría de los SGBD contienen ambos tipos de
lenguajes.
Función de utilización
Esta función reúne a todos los interfaces que necesitan los diferentes usuarios para
comunicarse con la base, proporcionando una serie de procedimientos al administrador.
Algunas de las operaciones que realiza esta función son: cambiar la capacidad de los
archivos, obtener estadísticas de utilización, cargar archivos, etc. Otras operaciones
están relacionadas, principalmente, con la seguridad física (copias de seguridad,
rearranque en caso de caída del sistema, etc.) y de protección frente a accesos no
autorizados.
Componentes
Un sistema de bases de datos se divide en módulos que se encargan de cada una de las
funciones del sistema completo. Algunas de éstas, incluso, puede asumirlas el propio
intérprete de mandatos del sistema operativo.
Hay que distinguir entre componentes de procesamiento de consultas y componentes de
gestión de almacenamiento.
Componentes de procesamiento de consultas
El compilador de DDL
Procesa las definiciones de esquemas, especificadas en el lenguaje DDL, y almacena
estos esquemas en el Catálogo.
A menudo, el DDL lo constituyen dos subconjuntos de instrucciones: un lenguaje de
definición del almacenamiento de los datos (DSDL: Data Strorage Definition Language),
que permite especificar características físicas de la base de datos (volúmenes y archivos
donde van a ser almacenados los datos, etc.), y un lenguaje de control de datos (DCL:
Data Control Language), encargado del control y seguridad de los datos (privilegios,
modos de acceso, etc.)
El procesador de la base de datos en tiempo de ejecución
Se encarga de los accesos a la base de datos durante la ejecución, recibiendo peticiones
del usuario. Cuando haya que acceder al disco, éste componente llamará al gestor de
datos almacenados. Para las consultas, se dispone de un componente, el compilador de
consultas, que será invocado ante las peticiones del usuario. Éste último, analiza la
sintaxis y el contenido de las consultas, generando llamadas al procesador en tiempo de
ejecución para atender a la solicitud (optimizándolas, como veremos más adelante en el
tema 36).
El procesador precompilador
Extrae órdenes en DML para convertirlas en código objeto para el acceso a la base de
datos. El código objeto y el resto del programa escrito en el lenguaje anfitrión (lenguaje
de propósito general que puede utilizarse para programar aplicaciones del SGBD), se
enlazan, formando una transacción programada, cuyo código ejecutable incluye
llamadas al procesador en tiempo de ejecución.
El compilador VDL
Procesa las definiciones de las distintas vistas de los usuarios especificadas en un
lenguaje VDL (View Definition Languague), y las almacena en el Catálogo.
Componentes de gestión de almacenamiento
El gestor de datos almacenados
Las bases de datos y el Catálogo se suelen almacenar en disco. El acceso al disco lo
controla el propio sistema operativo. En un SGBD el acceso se hace con un componente
esencial: el gestor de datos almacenados, que realiza las funciones de extracción y
almacenamiento de las bases de datos y el Catálogo en disco. También controla otros
aspectos de la transferencia de datos, como el manejo de áreas de almacenamiento
intermedio (buffers) en la memoria principal.
El gestor de seguridad e integridad
Comprueba que se satisfagan las ligaduras de integridad y seguridad de los usuarios
para acceder a los datos. Aunque a veces se confunden, son dos conceptos bien distintos:
mientras que la seguridad significa proteger los datos ante usuarios no autorizados
(infiltrados); la integridad significa protegerlos de los autorizados.
El gestor de transacciones
Que asegura que la base de datos quede en un estado consistente a pesar de los fallos del
sistema, y que las ejecuciones de transacciones concurrentes ocurran sin conflictos.
Interfaces de los SGBD
Dentro del apartado de componentes de un SGBD merece una mención los llamados
interfaces amables con el usuario que se presentan con muy diversas formas:
Interfaces basadas en menús
Presentan opciones (menús) que guían al usuario para formular solicitudes
Interfaces gráficas
Presentan los esquemas en forma gráfica pudiendo el usuario especificar una consulta
manipulando el diagrama.
Interfaces basadas en formas
Se presentan al usuario formas para que rellene los espacios vacíos. Suelen ser
transacciones programadas.
Interfaces en lenguaje natural
Permiten interpretar frases en lenguaje natural trasladándolas a consultas de alto nivel.
Generalmente el sistema mantiene un diálogo con el usuario para esclarecer las
solicitudes.
Interfaces para usuarios paramétricos
Son un conjunto de operaciones específicas para realizarlas repetitivamente.
Generalmente se suelen programar las teclas de funciones del teclado para que el
usuario tenga que escribir lo mínimo posible.
Arquitecturas de referencia y operacionales
Entendemos por arquitectura de referencia a la llamada arquitectura de tres esquemas,
propuesta por el llamado Grupo de Estudios en Sistemas de Administración de Bases de
Datos, que definió el estándar conocido como: arquitectura de referencia ANSI/SPARC
(American National Standard Institute / Standards Planning And Requirements
Comitee). Las arquitecturas operacionales son las arquitecturas concretas de SGBD
reales (en el siguiente apartado nos ocuparemos de detallar el SGBD: DB2, como
ejemplo de arquitectura operacional).
Es probable que los sistemas "pequeños" no manejen todos los aspectos de la
arquitectura de referencia. Sin embargo, los SGBD comerciales más conocidos se
ajustan bastante al estándar.
Arquitectura ANSI/SPARC
Hemos de distinguir tres niveles en toda arquitectura ANSI/SPARC:
Nivel físico o de implementación: Los esquemas internos describen la estructura física
de almacenamiento de la base de datos. Este nivel emplea un modelo físico de los datos
y describe todos los detalles para su almacenamiento, así como los medios de acceso a
los datos.
Nivel conceptual o lógico: describe la estructura de la base de datos para una comunidad
de usuarios. el esquema conceptual oculta los detalles de las estructuras físicas de
almacenamiento, y se concentra en describir entidades, tipos de datos, vínculos
(relaciones o dependencias entre datos), operaciones de usuarios y restricciones.
Nivel externo o de vistas: Incluye esquemas externos o vistas de usuario. Cada esquema
externo describe la parte de la base de datos que interesa a un determinado grupo de
usuarios, ocultando a dicho grupo el resto de la base de datos.
La mayoría de los SGBD no distinguen totalmente entre los tres niveles. Así, algunos
incluyen detalles del nivel físico en los esquemas conceptuales. Los esquemas externos
se especifican con el mismo modelo de datos que los del nivel conceptual. Algunos
SGBD permiten utilizar distintos modelos de datos a nivel conceptual y a nivel externo.
Los esquemas no son más que descripciones de los datos. Los verdaderos datos sólo
están en el nivel físico.
Transformaciones
La arquitectura también comprende ciertas transformaciones que determinan la
correspondencia entre las distintas informaciones que manejan los tres niveles
apuntados.
El SGBD debe transformar una petición expresada a nivel externo en su equivalente a
nivel conceptual, y ésta en su equivalente a nivel físico:
La transformación conceptual/interna define la correspondencia entre la vista
conceptual y la base de datos almacenada a nivel interno.
Es posible que en un momento dado sea necesario modificar el esquema interno por la
necesidad de reorganizar ciertos archivos físicos (por ejemplo, crear nuevos archivos de
índices), para así mejorar las operaciones de obtención o modificación. Si la base de
datos aún contiene los mismos datos, no será necesario cambiar los esquemas
(La imagen representa un esquema de las componentes de un SGBD (tomada de [2]))
conceptuales. La independencia física respecto a los datos se refiere a la separación
entre las aplicaciones y la estructura física almacenada, y resuelta más fácil de conseguir
que la independencia lógica.
La transformación externa/conceptual define la correspondencia entre una vista externa
en particular y la vista conceptual. Así por ejemplo, los campos en uno u otro nivel
pueden tener diferentes tipos de datos; los nombres de los registros y campos pueden ser
cambiados en un nivel, sin que se afecten los del otro; varios campos conceptuales
pueden ser combinados en un sólo registro externo; etc.
Podemos cambiar el esquema conceptual para ampliar o reducir la base de datos. Esto
no debe afectar a las vistas que se refieran al resto de datos que no han sido modificados.
Sólo será necesario modificar la definición de la vista y las correspondencias. Los
programas de aplicación que hagan referencias a los elementos del esquema externo,
deberán funcionar igual que antes después de una reorganización lógica del esquema
conceptual. Además, las restricciones podrán modificarse en el esquema conceptual sin
afectar a los esquemas externos.
(Arquitectura ANSI/SPARC (imagen tomada de [2]). SDL es equivalente a DDL)
Por lo tanto, las transformaciones de tipo conceptual/interna son fundamentales para la
independencia física de los datos, y las transformaciones de tipo externa/conceptual son
fundamentales para la independencia lógica de los datos.
Arquitectura operacional: DB2
DB2 es una abreviatura de Database 2. Originalmente fue un sistema relacional de IBM
para el sistema operativo VMS.
Las bases de datos DB2 se pueden utilizar desde programas de aplicación escritos en
COBOL o PL/I (entre otros). Como sublenguaje de datos se tiene el SQL.
Procesamiento de consultas en DB2
Todos los datos se perciben como tablas. Las tablas son de dos tipos: tablas base, que
son los esquemas conceptuales; y vistas, que son tablas virtuales.
Las consultas se hacen en SQL, por lo tanto SQL es también un lenguaje autocontenido
en DB2. Los principales componentes del flujo de la aplicación SQL son:
El precompilador: genera dos tipos de salidas: el programa fuente original donde las
instrucciones SQL son reemplazadas por llamadas en el lenguaje anfitrión (módulo
fuente modificado); y módulos de solicitud a la base de datos (llamados DBRM) que
son instrucciones SQL en forma de árbol sintáctico, que se usan de entrada para el
siguiente proceso.
El enlazador: se utiliza tanto en consultas en forma de aplicaciones ya programadas,
como en consultas ad hoc. En las primeras, se analizan y se optimizan los distintos
DBRM, se compilan produciendo un plan de aplicación. Si la aplicación (como es de
esperar) se ejecuta muchas veces, con este código objeto (obtenido una sola vez), se
amortiza el coste de haber programado la aplicación.
También el enlazador toma el módulo fuente modificado, lo compila y enlaza para
producir el módulo de carga.
El supervisor de la aplicación: con él se controla la ejecución. Al ejecutarse el módulo
de carga el supervisor obtendrá del plan de aplicación la información necesaria, para
solicitar que el gestor de datos almacenados tenga acceso real a la base de datos.
Gestor de datos almacenados: maneja la base de datos física. Este componente actualiza
los índices si es necesario.
Durante el procesamiento de las consultas también se realizan algunas otras funciones,
entre las que destacamos:
La optimización que se realiza por el enlazador consultando en el Catálogo la
información sobre los índices, de manera que la consulta se realizará de forma más
eficiente.
La comprobación de autorización, de la que se ocupa el enlazador, que comprueba si el
usuario está autorizado para llevar a cabo las operaciones incluidas en los módulos
DBRM.
Definición de los datos en DB2
Para crear, eliminar o actualizar las tablas base, los índices y las vistas, disponemos de
las instrucciones correspondientes en SQL.
Por ejemplo, con CREATE TABLE crearemos una tabla, y con ALTER TABLE,
actualizaremos una tabla.
DB2 maneja el concepto de valores nulos, a menos que se explicite el valor NOT NULL.
Manipulación de los datos en DB2
Los datos se pueden manipular mediante un gran número de instrucciones presentes en
SQL. Un ejemplo de consulta sencilla (el esquema conceptual está en la página
siguiente):
SELECT
NSS
FROM
TRABAJA_EN
WHERE
HORAS>40 AND NUMP = 5;
que se corresponde con la consulta: lista el número de la Seguridad Social de los
empleados que trabajaron más de 40 horas en el proyecto 5.
Procesamiento de vistas en DB2
Una vista es una tabla derivada de tablas base o de otras vistas. Las vistas se usan para
referirnos a una tabla (la vista) que se refiere muy a menudo; o que no tiene realidad
física. Así, en vez de combinar las tablas EMPLEADO, TRABAJA_EN y PROYECTO,
cada vez que necesitemos datos de todas ellas juntas, creamos una vista que sea el
resultado de dicha combinación, y que contenga solo los atributos que deseamos obtener
con frecuencia, cumpliéndose ciertas condiciones. Las tablas de entrada se llaman tablas
de definición de la vista:
CREATE VIEW
TRABAJA_EN1 AS SELECT NOMBREE, APELLIDO,
NOMBREP, HORAS
FROM EMPLEADO, PROYECTO, TRABAJA_EN WHERE
EMPLEADO.NSS=TRABAJA_EN.NSS AND NUMP=NUMEROP;
La siguiente consulta:
EMPLEADO
NOMBREE
APELLIDO
NSS
FECHAN
DIRECCION
ND
SUPERNSS
SEXO
SUELDO
DEPARTAMENTO
NOMBRED
NUMEROD
NSSGTE
FECHAINICGTE
DEPT_LOCALIZACION
NUMEROD
LOCALIZACIOND
(Esquema conceptual de la base de datos
COMPAÑIA)
PROYECTO
NUMEROP
LOCALIZACIONP
NUMD
NOMBREP
TRABAJA_EN
NSS
NUMP
DEPENDIENTE
HORAS
(Esquema conceptual de la base de datos
COMPAÑIA)
NOMBRE_DEPEND
PARENTESCO
NSS
FECHAN
SEXO
SELECT
NOMBREE, APELLIDO, NOMBREP
FROM TRABAJA_EN1
WHERE
NOMBREP=’PROYECTO1’;
obtiene la restricción con las columnas indicadas y para el nombre de proyecto indicado.
También puede utilizarse la vista para crear tablas a las que tendrán acceso cierto grupo
de usuarios (mientras que a las tablas base no). De manera, que limitamos los campos, o
les cambiamos los nombres, o combinamos diversas tablas, etc.
Almacenamiento de datos en DB2
DB2 llama espacio de tablas al almacenamiento de las tablas de datos y espacio de
índices al almacenamiento de índices. El segundo se diferencia del primero, entre otras
características, porque se crea automáticamente. Los índices en DB2 son árboles B+.
Características internas de DB2
Seguridad y autorización
Las vistas pueden servir para ocultar datos confidenciales a los usuarios no autorizados.
DB2 tiene un subsistema de autorización que da privilegios específicos a ciertos
usuarios (órdenes GRANT (otorgar) y REVOQUE (denegar). Para que DB2 reconozca
los usuarios legítimos interviene un identificador de autorización llamado AUTHID,
asignado por los administradores del sistema (se verán más detalles en temas siguientes).
Procesamiento de transacciones
DB2 admite, como ya sabemos, instrucciones escritas en un sublenguaje de PL/I. Uno
de los mandatos de dicho sublenguaje es COMMIT (confirmación), que señala que una
transacción se ha llevado a efecto. Este mandato se colocará después de las operaciones
que determinan la transacción. Al ejecutarse se ordena al gestor de transacciones que
confirme la modificación de los datos, haciendo que dicha modificación sea permanente,
dejando de esta manera a la base de datos en un estado consistente (detallaremos más
esta problemática en el tema 42).
Tipos de sistemas
Existen varios criterios de clasificación de los SGBD:
Modelo de datos en el que están basados
Relacionales
Las características más destacables de estos sistemas son:
Los datos son percibidos por el usuario como tablas.
Los operadores disponibles para el usuario son operadores que generan nuevas tablas a
partir de las anteriores. Así, la operación de seleccionar (restringir) obtiene una tabla en
la que sólo aparecen un subconjunto de filas de la tabla sobre la que se opera.
En este tipo de sistemas, la palabra relación se entiende en términos matemáticos, ya
que una relación se define matemáticamente mediante tuplas, y la tuplas son la forma
más usual de expresar los datos que se encuentran en la misma fila de una tabla.
Los sistemas que se basan en el modelo relacional, son los dominantes del mercado
actual de las bases de datos. La mayor parte de la investigación en bases de datos de los
últimos 30 años, se ha basado en este modelo.
Jerárquicos
En estos sistemas, los datos son representados mediante un conjunto de estructuras de
árbol (jerarquías), y los operadores incluyen operadores para apuntadores de recorrido;
es decir, los apuntadores que permiten recorrer el árbol hacia arriba o hacia abajo (en las
relacionales no existen tales apuntadores).
En red
Los datos son representados mediante un conjunto de estructuras de grafo (red), y los
operadores incluyen operadores para apuntadores de recorrido; es decir, los apuntadores
que permiten recorrer el grafo.
Ambos tipos de sistemas: Jerárquicos y en red, se consideran obsoletos (fueron los
primeros que aparecieron cronológicamente). Sin embargo, algunos SGBD comerciales
(como IMS de IBM), son todavía muy utilizados por grandes compañías.
Orientadas a objeto
Por último, incluimos en esta relación a los sistemas de bases de datos orientadas a
objeto. Tienen su origen en los lenguajes de programación orientados a objetos. La idea
fundamental que subyace en estos sistemas es aumentar el nivel de abstracción. El
usuario (cliente), ha de pensar en objetos que contienen operaciones asociadas a los
mismos (de creación, acceso y modificación), en vez de en registros y funciones aparte
que los manipulan. Otra idea interesante subyacente, es la de que unos objetos pueden
ser colecciones de otros (un departamento contiene objetos empleado); así como el
llamado mecanismo de la herencia por el que los subtipos (subclases) heredan atributos
y métodos de sus supertipos (superclases).
Número de sitios en que se encuentra distribuida la base de datos
Centralizados
Generalmente son multiusuarios (soportan más de un usuario accediendo de forma
concurrente al sistema), pero el sistema y la base de datos residen totalmente en un
único sitio.
Distribuidos
Son, por definición, multiusuarios. Los datos están en dispersos en varias bases de datos,
son administrados por varios SGBD, implantados en varias máquinas distintas con
distintos sistemas operativos, y conectadas por varias redes de comunicación.
A su vez, los distribuidos se clasifican en:
Homogéneos: Si el software del sistema es el mismo en todos los sitios.
Heterogéneos: Es la tendencia actual. Requiere el desarrollo de aplicaciones que
permitan comunicar a los distintos sistemas.
La arquitectura (distribución física, en este contexto), de la mayoría de los sistemas
distribuidos recibe el nombre de cliente-servidor.
Enfoque dado a los datos
Tradicional
Los datos representan hechos ciertos, y están recogidos en forma de objetos
almacenados u objetos virtuales (vistas).
Temporales
Contienen datos históricos en vez de datos actuales, es decir, los datos sólo serán
insertados y nunca actualizados o eliminados (a diferencia de los datos instantáneos o
normales, que se actualizan o borran al dejar de ser ciertos). En una base de datos
temporal todos los datos tienen una marca de tiempo. Así, las relaciones serán
temporales, incluyendo cada tupla una marca de tiempo.
Orientados a la lógica
Son capaces, aplicando axiomas deductivos o reglas de inferencia, de deducir o inferir
hechos adicionales a partir de hechos dados en la base de datos.
Estadísticas
Tienen que ver con cuestiones relacionadas con la seguridad de los datos. Permiten
consultas que proporcionan información general (la media de edad de los empleados),
pero no proporcionan información individual (la edad de un empleado).
Bibliografía
[1] Abraham Silberschatz y otros, Fundamentos de bases de datos, Mc Graw Hill, 1998
[2] Date, C.J. Introducción a los Sistemas de Bases de Datos, Addison Wesley, 2001,
(7ª Edición)
[3] Elmasri-Navathe. Fundamentos de Sistemas de Bases de Datos, Addison Wesley,
2000 (2ª Edición).
[4] Georges Gardarin. Bases de datos. Paraninfo, 1990 (2ª edición).