Por los problemas que
planteaban los antiguos sistemas de información
mecanizados por ordenador
basados en archivo convencional, se intentó
desarrollar un nuevo
enfoque a la gestión de los datos que garantizara
lo máximo posible la
independencia de las aplicaciones frente a los
datos, la integridad y la
seguridad de los mismos.
Apareció el concepto de
base de datos y el software que lo manejaba:
los sistemas de gestión de
bases de datos. Se verá en este tema cual es
la estructura de un SGBD y
la funcionalidad que ofrece, y qué los hace
una opción mucho más
apetecible a la hora de manejar grandes
volúmenes de datos. En
general, se ofrecerá una visión introductoria de
qué es un SGBD, cómo
funciona y para qué sirve.
La parte final aborda,
superficialmente, los problemas de independencia,
integridad y seguridad de
los datos.
Dada la creciente importancia
del concepto, se introduce la arquitectura
cliente-servidor como una
visión distinta del acceso a los SGBD.
BD1 2006-2007
142
VIII1. técnicas de base de datos
En un principio, los
problemas de los sistemas basados en fichero
convencional se solventaban
fácilmente, o ni siquiera existían, dada la
poca envergadura de los
sistemas de información que se mecanizaban.
Pero, a medida que los
avances en un campo tan inestable como éste
fueron aumentando las
prestaciones y capacidades de las herramientas
de proceso de datos, los
programas se hacían más extensos y
complejos, manejaban una
mucho mayor cantidad de datos, y
necesitaban que cada vez
más usuarios compartieran los mismos
datos.
Lo que antes era un mínimo
contratiempo se convirtió en un
interminable quebradero de
cabeza: mala o nula planificación y la
pobreza de los modelos de
datos utilizados provocaron que cada vez
fuera más difícil el
mantenimiento, a unos mínimos niveles de
rendimiento y fiabilidad,
de las aplicaciones existentes.
Las técnicas de Bases
de Datos surgen al intentar superar la
situación descrita. El
objetivo prioritario es unificar toda la información
del
sistema para evitar redundancias, sin perder las distintas
perspectivas
que de la misma tienen los usuarios. Los datos se
organizan y se mantienen
en un conjunto estructurado que no está
diseñado para una
aplicación concreta, sino que tiende a satisfacer las
necesidades de información
de toda la organización. Es decir, se
separa lo que es el
sistema de información en sí, de lo que son las
aplicaciones que pretenden
explotar los datos almacenados en él. No
obstante, la consecución
de este objetivo crea nuevos problemas y
agrava otros ya
existentes: independencia, concurrencia, privacidad,
etc.
En un sistema de bases
de datos podemos identificar someramente los
siguientes componentes:
• Datos
• Hardware
• Software: programas de
gestión de bases de datos y de
aplicación, utilidades,
etc.
• Usuarios: programadores de
aplicación, usuarios finales,
administrador de la Base
de Datos (DBA).
Entre las herramientas de
software desarrolladas para crear y gestionar
una base de datos, sin
duda, la más importante es el Sistema de
Gestión
de Bases de Datos (SGBD). Este “programa” es el encargado
de poner a disposición de
los distintos usuarios las técnicas de bases
de datos.
• Descripción centralizada
de los datos: si todos se encuentran en
un mismo lugar al que
acceden las aplicaciones, ya no es
necesaria la replicación.
• Posibilidad de definir
vistas parciales de dichos datos para los
diferentes
usuarios: estas vistas parciales estarán compuestas
por los datos y relaciones
de interés para una aplicación o
introducción
al modelo EER
143
conjunto de aplicaciones
en concreto. Pensemos que un
empleado de Contabilidad
no tiene porqué conocer el estado
civil de otro empleado
pero este dato si le puede interesar a otro
de Personal.
Por otra parte, los
objetivos de un SGBD son:
• Independencia de datos:
los programas de aplicación deben
verse afectados lo menos
posible por cambios efectuados en
datos que no usan.
• Integridad de los
datos: la información almacenada en la BD
debe cumplir ciertos
requisitos de calidad; para ello hace falta,
en el momento de
introducirse los valores de los datos, que
éstos se almacenen
debidamente, y que posteriormente no se
deterioren (en sí mismos,
en sus interrelaciones y en su
accesibilidad).
• Seguridad de los
datos: a la información almacenada en la BD
sólo pueden acceder las
personas autorizadas y de la forma
autorizada.
Podemos dar una primera
definición de Base de Datos:
“Colección de datos
estructurados según un modelo que
refleje las
relaciones y restricciones existentes en el
mundo real. Los datos
han de ser compartidos por
diferentes usuarios y
aplicaciones, y deben mantenerse
independientes de
éstas; su definición y descripción han
de ser únicas,
estando almacenadas junto con los
mismos. Los
tratamientos habrán de conservar la
integridad y
seguridad de los datos.”
Podemos decir, de una
manera muy general, que la base de datos es el
conjunto de información, y
el sistema de gestión de bases de datos el
encargado de mantener las
virtudes que se proponen en la definición.
VIII2. arquitectura de un sistema
de gestión de bases de datos
Un SGBD no es, ni más ni
menos, que un programa de ordenador que
maneja Bases de Datos. Como
tal, tiene unas características comunes
que se encuentran,
implementadas de una forma o de otra, en todos los
productos comerciales
disponibles en el mercado. Nuestra pretensión
es dar una visión general
de esas características sin centrarnos en
producto alguno.
El hecho fundamental que
justifica la utilización de un SGBD es que, si
antes los programas
llamaban directamente al sistema operativo para
manejar sus ficheros,
ahora es el SGDB es el encargado de facilitar los
servicios de acceso de las
aplicaciones a los datos.
BD1 2006-2007
144
Los programas piden al
SGBD ciertos datos de la BD y éste, con la
información y herramientas
de que dispone, las convierte en
operaciones de acceso a
los distintos ficheros de la BD, operaciones
que son ejecutadas por los
métodos de acceso; entendemos por tales
el conjunto de rutinas del
Sistema Operativo que gestionan al nivel más
próximo al hardware el
acceso a los ficheros.
Como se observa, el SGBD
introduce un nuevo nivel de independencia
entre los usuarios y el
hardware que no existe en un sistema clásico en
el que los programas se
comunican directamente con los métodos de
acceso.
Uno de los objetivos de
las BD es la independencia de datos. Para
alcanzar dicho objetivo se
han hecho distintas propuestas para definir
la estructura ideal de un
SGBD. El grupo ANSI/SPARC34 (1977)
propuso una arquitectura a
tres niveles, donde se distinguen tres
esquemas de BD:
• Esquema Conceptual (EC)
• Esquema Interno (EI)
• Esquemas Externos (EE)
El EC es la descripción
del sistema de información (objetos e
interrelaciones) con
independencia del SGBD que se vaya a utilizar; el
EI es la descripción del
EC en términos de representación física (la
forma de almacenarlo en el
ordenador), y los EE son las vistas
parciales (subconjuntos
del conjunto global de información) que tienen
los distintos usuarios.
Sin embargo, se
encontraron con que no disponían de un Modelo
Conceptual general y
accesible desde cualquier SGBD que nos permita
definir el esquema
conceptual. Generalmente, los modelos de datos
soportados por los SGBD
comerciales suelen ser demasiado pobres
34American National Standard Institute /
System Planing And Requeriment Committee.
APLICACIONES SGBD SO
BD
ESQUEMA
CONCEPTUAL
ESQUEMA
INTERNO
descripciones
parciales
descripción de datos
del S.I.
representación física
• usuarios
• objetos/conceptos
• interrelaciones
• restricciones semánticas
• registros
• modos de acceso
• tamaño de las páginas
independencia
lógica
independencia
física
ESQUEMAS
EXTERNOS
introducción
al modelo EER
145
semánticamente35, por lo
que se prefiere realizar la descripción del
sistema de información en
algún modelo más expresivo para luego
“traducirlo” a un SGBD
concreto.
La intención es disponer
de una primera descripción lo más completa
posible e independiente de
las herramientas que se vayan a utilizar
para gestionarlo, incluso
con la posibilidad de que no se vaya a
mecanizar mediante un
ordenador.
Por esta razón muchos
autores prefieren distinguir dos esquemas en
lugar del EC propuesto por
ANSI/SPARC, lo que la convierte en una
arquitectura a cuatro
niveles:
• Esquema Conceptual: visión
desde un punto de vista
organizativo,
independiente del SGBD que se utilice, e incluso
de la utilización o no de
sistemas de bases de datos. En este
esquema se describe la
información de la organización (objetos
y relaciones) desde un
punto de vista no informático.
• Esquema Lógico: visión
expresada en términos de un SGBD
concreto, o mejor dicho,
de un modelo de datos soportado por
un SGBD. En este esquema
lógico se representan las entidades
y relaciones de acuerdo a
las características de dicho modelo,
sin entrar todavía en
detalles de representación física.
• Esquema Interno (o
Esquema Físico): descripción de la
representación en la
memoria externa del ordenador de los
datos del esquema lógico,
sus interrelaciones y los instrumentos
para acceder a ellos.
• Esquemas Externos: cada
uno de ellos describe los datos y
relaciones entre ellos de
interés para una aplicación dada. Estos
esquemas pueden verse como
subconjuntos del Modelo Lógico
de la BD36.
35Por
ejemplo, en la asignatura Bases de Datos 2 se utiliza el modelo
Entidad-Relación
Extendido para el esquema
conceptual y el modelo relacional para el esquema lógico.
36 Por evitar
una posible asociación de ideas con algo ya visto, las vistas tienen cierto
parecido conceptual con los
esquemas externos, en el sentido de que muestran una
porción de la totalidad del
sistema de información, pero un usuario de un determinado
esquema externo, dentro de
su visión limitada, puede utilizar o no vistas sobre sus datos
particulares. De hecho, un
esquema externo, en su equivalente relacional, es un
conjunto de varias vistas.
BD1 2006-2007
146
Un buen SGBD debe
permitir:
• Que se puedan describir
los distintos esquemas de la BD, y en
cada uno los aspectos que
interesen de los datos y sus
interrelaciones.
• Lo que finalmente hemos
llamado Esquema Conceptual se
define exteriormente al
SGBD en términos de un cierto modelo
de datos, realizándose
manualmente la transformación entre el
Esquema Conceptual y el Lógico.
• Existen distintos modelos
para el diseño del EC como el
Entidad-Relación, RM/T,
Modelo Semántico General, etc...
• Que se puedan establecer
las correspondencias entre los
esquemas, es decir,
indicar que tal dato o relación en un
esquema se puede traducir
a su correspondiente en otro.
• En la siguiente tabla
tenemos un ejemplo ilustrativo de dos
esquemas externos, uno
escrito en PL/I y el otro en COBOL,
que el SGBD ha de saber
transformar, primero al
correspondiente esquema
lógico y, después, al interno.
esquemas EXTERNOS
(PL/I)
DCL 1 EMPP,
2 #EMP CHAR(6),
2 SAL FIXED BIN(31);
(COBOL)
01 EMPC.
02 EMPNO PIC X(6).
02 DEPTNO PIC X(4).
esquema LÓGICO
EMPLEADO
NÚMERO_EMPLEADO CARACTER(6)
NÚMERO_DEPARTAMENTO CARACTER(4)
SALARIO NUMÉRICO(5)
esquema INTERNO
STORED_EMP LENGTH=20
PREFIX TYPE=BYTE(6), OFFSET=0
EMP# TYPE=BYTE(6), OFFSET=6, INDEX=EMPX
DEPT# TYPE=BYTE(4), OFFSET=12
PAY TYPE=FULLWORD, OFFSET=16
• Aislar los esquemas de
manera que no se vean afectados por
cambios efectuados en
otros. A este requisito se le conoce
EE
EI
S.I. EL
ind. lógica
ind. física
SGBD
APLICACIÓN
≡ EC
introducción
al modelo EER
147
como independencia de
datos, y podemos establecer dos tipos
distintos según afecten a
unos esquemas u otros:
• Independencia Lógica (entre
esquema lógico y esquemas
externos): los esquemas
externos y los programas de aplicación
que se basan en ellos no
deben verse afectados por
modificaciones del EL
referente a datos o relaciones que no
usan.
• Si es suprimido un dato
del EL no deberán verse afectados los
EE que no lo incluyan en
su definición; ni los programas de
aplicación que no lo usen,
independientemente de que dicho
dato aparezca en su
esquema externo asociado. En cambio
deberán modificarse
aquellos EE en los que aparezca el dato
suprimido, y compilados de
nuevo los programas que lo utilicen
directamente.
•
• Independencia Física (entre
esquema lógico y esquema
interno): el EL no debe
verse afectado por cambios en el EI
referente a modos de
acceso, tamaño de páginas, etc...
El SGBD dispone de la definición
de cada uno de estos esquemas para
satisfacer las peticiones
de los programas. Se muestra en este
momento una posible
interacción entre el SGBD, el Sistema Operativo
y los programas de
aplicación a la hora de atender una petición de
acceso a los datos.
EJEMPLO
• El programa de aplicación
A hace una llamada al SGBD.
• El SGBD obtiene el EE
utilizado por A y examina la
descripción de los datos
solicitados.
• El SGBD obtiene el EL y
realiza la correspondiente
transformación entre EE y
EL.
• El SGBD examina la
descripción física (EI) de la BD.
• El SGBD emite una orden al
SO indicando los que debe
leer.
• El SO interacciona con el
almacén físico en el que se
encuentran los datos.
• Los datos se transfieren
desde la memoria externa a las
memorias intermedias del
sistema.
• Comparando el EL y el EE
del programa A el SGBD deduce
los datos pedidos por el
programa de aplicación. El SGBD
ejecuta todas las
transformaciones necesarias.
• El SGBD transfiere los
datos desde las memorias
intermedias al área de
trabajo del programa de aplicación.
• El SGBD suministra al
programa información de estado
sobre el resultado de su
petición, incluyendo cualquier
posible indicación de
error.
BD1 2006-2007
148
• El programa de aplicación
puede ahora operar con los datos
pedidos que ya se
encuentran en su área de trabajo.
Además de estas
operaciones, el SGBD se ocupa de los controles de
privacidad
e integridad que hayan sido previstos tanto en el esquema
lógico como en el esquema
externo. Asimismo recoge información para
la posible reconstrucción
de la base de datos en caso de fallo.
Conviene hacer una
aclaración en este punto. La mayoría de los SGBD
comerciales trabajan como
si únicamente tuvieran un esquema: el
lógico. La percepción del
usuario es que sólo tiene que definir la
estructura de la base de
datos en función del modelo de datos que
soporta el programa,
siendo totalmente transparente para él la
organización que utiliza a
nivel físico de los datos. Únicamente en
sistemas muy grandes, el
administrador de la base de datos ha de
tomar decisiones sobre
cómo se deben guardar los datos en los
sistemas de almacenamiento
de la máquina, generalmente para
aumentar el rendimiento
del sistema.
VIII3. el administrador de la bd
Dentro de la Organización,
el encargado de controlar los aspectos
técnicos del sistema de
información mecanizado es el administrador de
la base de datos (DBA). En
resumen, es el encargado de definir la base
de datos dentro del SGBD y
de optimizar su rendimiento, al mismo
tiempo que da soporte a las
necesidades específicas de cada usuario.
Las funciones de un
administrador de la BD son:
• Definir el esquema lógico (suponiendo
la arquitectura a cuatro
niveles) Partiendo el
esquema conceptual que describe el
sistema de información, el
DBA transformará dicho esquema en
el esquema lógico que
manejará el SGBD a utilizar. Al realizar
esta transformación,
tomará las decisiones oportunas bajo
criterios de optimización
de la eficiencia del sistema final. Debe,
así mismo, especificar las
correspondencias a establecer entre
los esquemas conceptual y
lógico.
• Definir el esquema interno. El DBA
debe decidir cuál será la
forma en que se
almacenarán físicamente los datos, y
establecer, al igual que
antes, las debidas correspondencias
entre esquemas.
• Definir los esquemas
externos. Atendiendo a las necesidades
de los usuarios, el DBA
debe asegurar que toda la información
necesaria está disponible
y accesible por aquellos que la
precisan, y debe crear (o
asesorar en su creación) los
esquemas externos de cada
aplicación que definirán las partes
del sistema de información
a las que accederán. Además, el
DBA será el encargado de
suministrar asesoramiento técnico
para el diseño de
aplicaciones, formación de usuarios y
programadores, etc.
• Definir las reglas de
integridad y seguridad. Se encargará de
definir aquellas reglas de
integridad que actúan sobre los datos
y las operaciones en
términos que entienda el SGBD. Los
permisos otorgados a los
usuarios sobre los datos, y la política
de transferencia de
permisos entre ellos es, también,
responsabilidad del DBA.
• Especificar los mecanismos
de recuperación y copias de
seguridad.
El sistema de base de datos e un elemento crítico en
el funcionamiento de la
Organización, y el DBA debe especificar
los procedimientos
adecuados para la realización de copias de
seguridad periódicas y
recuperación de datos ante eventuales
daños en parte o en todo
el sistema de información
almacenado.
• Verificar el rendimiento
del sistema y atender a los cambios en
los requerimientos.
• Como parte muy importante
de sus funciones, el DBA debe
vigilar que el sistema de
información no se degrade, por la
continua manipulación y
actualización de sus datos, hasta el
punto de afectar a los
tiempos de respuesta o la sobreocupación
de memoria secundaria. Se
responsabilizará de las
reorganizaciones
necesarias, a cualquier nivel, que permitan
mantener o mejorar el
rendimiento de todo el sistema, incluido la
renovación del hardware y
el software si fuera necesario.
VIII4. componentes y funciones de
un SGBD
Ya se han mencionado, de
una forma u otra, cuales son las funciones
de un SGBD:
• Descripción de los
distintos esquemas de la base de datos.
• Manipulación de la
base de datos: recuperación y actualización
de la información.
BD1 2006-2007
150
• Gestión:
lenguajes huésped, lenguajes conversacionales,
utilidades para el
administrador de la BD, etc.
Dicho de otra manera, el
SGBD debe dar soporte a los siguientes
conceptos:
• Definición de datos
• Manipulación de datos
• Seguridad e Integridad de
los datos
• Recuperación de datos y
concurrencia
• Diccionario de datos
• Rendimiento
A fin de cumplir con
dichas funciones el SGBD debe proporcionar las
herramientas adecuadas:
• Lenguajes de definición de
esquemas (DDL)
Con ellos podremos definir
los distintos esquemas con los que va a
trabajar el SGBD (excepto,
seguramente, el EC).
• Lenguajes de manipulación
de datos (DML)
Con ellos podremos
insertar, eliminar, modificar y consultar la
información almacenada en
la base de datos.
Decimos que estos
lenguajes son autosuficientes si disponen de un
traductor propio, y de
tipo huésped si no disponen de estructuras de
control como if-then-else,
bucles, etc. En estos últimos, las
instrucciones de acceso a
la BD del SGBD deben ser intercaladas entre
las de un programa escrito
en algún lenguaje de programación. Estas
instrucciones son
traducidas por un precompilador que genera un
programa en el lenguaje
anfitrión puro (por ejemplo: COBOL, C, etc.);
posteriormente, en el
montaje, se añadirán las rutinas de librería que
permitirán al programa,
finalmente, manejar la BD.
• Controles de seguridad e
integridad de los datos.
El SGBD debe supervisar
todas las peticiones de acceso y rechazar
aquellas que violen las
reglas de integridad y seguridad definidas para
el sistema de información
representado en la BD.
Se deben establecer los
métodos de control de acceso concurrente a la
BD (varios usuarios que
intentan acceder al mismo dato en el mismo
período de tiempo) y la
forma de recuperar la BD ante catástrofes
(cortes de luz, fallos de
hardware, …), transacciones no completadas,
etc.
• Diccionario de datos
Información adicional
sobre la definición de datos (datos sobre los
datos), también conocida
como metadatos, que puede incluir los
propios esquemas de BD,
referencias cruzadas sobre qué datos utiliza
qué programa, reports de
cada usuario, terminales conectadas, etc., y
que se utiliza
fundamentalmente como documentación del análisis y
diseño. Esta información
no la utilizaría el usuario final y es mantenida
bajo la responsabilidad
del administrador de la BD.
• Utilidades.
• Módulos de
reestructuración de la BD, a nivel físico. Son
programas que obtienen
copias secuenciales de la BD y la
reorganizan cambiando
detalles de caminos de acceso, tamaño
de las páginas, etc.
introducción
al modelo EER
151
• Módulos de impresión
(generadores de informes).
• Generadores de Prototipos,
con los que poder simular el
funcionamiento de la BD
conocido su diseño, generalmente con
la intención de consultar
a los usuarios finales sobre la calidad
del diseño; con prototipos
sucesivos se puede ir afinando los
requerimientos del sistema
hasta obtener una versión definitiva
que se pueda optimizar en
eficiencia. Actualmente, los sistemas
de gestión se acompañan de
lenguajes de cuarta generación
(4GL) y generadores
automáticos de aplicaciones.
• Módulos para la obtención
de estadísticas.
Haciendo uso de todo ello
correctamente podremos alcanzar los
objetivos perseguidos por
las técnicas de bases de datos:
independencia,
integridad y seguridad de datos. Profundizaremos un
poco más en estos
conceptos a continuación.
VIII5. independencia, integridad y
seguridad
Independencia
de datos.
Entendemos por
independencia de datos el hecho de que los
programas y esquemas no se
vean afectados por cambios en datos
que no usan.
En este punto es
conveniente aclarar dos conceptos que influyen
decisivamente en el grado
de independencia: granularidad de los
esquemas externos y
ligadura.
Granularidad
de los esquemas externos
Es el grado de detalle de
definición de los esquemas externos en
función del esquema
lógico. Los más usuales son:
• de registro completo.
• de campo de registro.
Se dice que la
granularidad es más fina en el segundo caso que en el
primero, y cuanto más fina
sea mayor grado de independencia de datos
conseguiremos.
Es evidente que si la
granularidad es fina, un determinado esquema
externo puede precisar de
la definición de un único campo y, por tanto,
modificaciones en el resto
de campos del mismo registro no le
afectarán; si la
granularidad es a nivel de registro completo, aún sin
BD1 2006-2007
152
utilizar todos los campos,
debería incluir la definición del registro y sería
modificado en cualquier
alteración del mismo en el esquema lógico.
Ligadura
Se entiende por ligadura
el momento en que se transforman los
esquemas externos usados
por las aplicaciones en términos de
esquema interno.
Una definición de dato de
un EE, en el momento de la ligadura, se
transforma en una longitud
y una posición dentro de un registro,
términos en los que se
expresa el EI. No obstante, puesto que se hace
necesaria una primera
transformación entre EE y esquema lógico, y de
éste al EI, se diferencia
entre ligadura lógica y ligadura física.
El momento en que se
produce la ligadura desaparece la
independencia de datos
puesto que el esquema externo ya ha sido
traducido al más bajo
nivel. Por eso, si el momento de la ligadura se
produce cuando se compilan
los programas, cualquier alteración en el
esquema interno provocará
la recompilación, aunque tal modificación
se haya producido en un
dato que no usen.
Podemos decir, por
entendernos, que al realizar la ligadura en el
momento de la compilación,
los esquemas externos “desaparecen”,
puesto que en cada
ejecución del programa se parte ya de los datos
físicos de almacenamiento.
Si, por el contrario, es
en cada acceso a la base de datos cuando se
realiza la ligadura, cada
vez se realizará una nueva traducción del
esquema externo en esquema
interno. Eso implica que, si el cambio en
el EL o EI no le afecta
directamente, no habrá necesidad de modificar
su correspondiente EE.
No obstante, cuanto más
tardía sea la ligadura (por ejemplo, en cada
acceso) la eficiencia será
menor puesto que continuamente estaremos
haciendo uso de las
correspondencias entre esquemas.
Se consideran cuatro
momentos en los que puede tener lugar la
ligadura, siendo el último
el más tardío y el que garantiza una mayor
independencia de datos:
• en la compilación
• en el montaje (link)
• al iniciarse la ejecución
del programa
• en cada acceso a la BD.
La independencia de datos,
resumiendo, es mayor cuanto más fina sea
la granularidad de los
esquemas externos y cuanto más tardío el
momento de la ligadura. La
tendencia de los SGBD actuales es
apoyarse en la
granularidad a nivel de campo y la ligadura al comienzo
de la ejecución del
programa.
introducción
al modelo EER
153
integridad
de datos
La integridad de datos
atiende a la calidad de la información
almacenada en los
siguientes aspectos:
• los valores de los datos
han de ser correctos.
• las ocurrencias de los
datos (los valores en un instante
determinado) han de estar
debidamente interrelacionados.
• no se deben producir
interferencias en las lecturas y escrituras
concurrentes, del tipo de
actualizaciones incorrectas, bloqueos
activos o mortales, etc.
Se distinguen dos
aproximaciones a este problema: optimista y
pesimista. La
primera da por supuesto que tales problemas se
presentan muy de cuando en
cuando, así que la solución más eficiente
es solucionarlos cuando
han ocurrido. Dichos problemas pueden venir
de deterioros de la BD por
catástrofes, interrupciones en procesos de
actualización,
actualizaciones indebidas por fallo humano, etc. De
hecho, la táctica es
llevar un registro, más o menos actualizado, de los
estados sucesivos de la
base de datos o de las últimas transacciones
efectuadas para devolver a
la base de datos a un estado anterior que
se sabía correcto, y
volver a comenzar desde ese punto.
La segunda identifica las
situaciones que pueden provocar un conflicto
y retrasa su ejecución
hasta que tal posibilidad desaparece.
Así, pues, tenemos:
• técnicas preventivas:
verificación de las restricciones
semánticas, controlar la
consistencia de las copias redundantes,
y control de los accesos
concurrentes, generalmente por el
método de reservas (evitar
que un programa acceda al dato
mientras lo está modificando
y/o consultando otro).
• técnicas curativas: fichero
dietario con el que deshacer o
rehacer todas las
actualizaciones realizadas por transacciones
durante un tiempo
determinado, copias de seguridad o volcados
de la BD completa en un
momento en que todas las
transacciones efectuadas
han sido confirmadas, toma de puntos
de control, ...
Seguridad
de los datos
Se refiere a la
posibilidad, por parte de los usuarios, de realizar
determinado tipo de
operaciones sobre los datos de la BD, y sólo a
aquellos usuarios que
estén autorizados. Se utilizan técnicas tales
como la identificación del
usuario (login y password), determinación de
permisos de lectura,
escritura, etc., gestión de autorizaciones
transferibles de un
segundo usuario a un tercero, etc.
BD1 2006-2007
154
VIII6. arquitectura cliente-servidor
Aparte de la arquitectura
a cuatro niveles (o a tres) mencionada
anteriormente, se puede
dar otra visión de un SGBD frente a las
aplicaciones que deben
atacarle para acceder a una determinada base
de datos. La arquitectura
cliente-servidor ofrece una visión simplificada
de un SGBD, de tal forma
que considera únicamente dos partes:
• El servidor (o
frontend), que es en realidad el propio SGBD y
mantiene todas las
características antes apuntadas (esquemas
para cada nivel de
arquitectura, lenguajes de manipulación y
definición de datos,
etc.), es el encargado de satisfacer todas
las peticiones de acceso y
recuperación de datos de sus bases
de datos.
• Los clientes (o
backend) son las aplicaciones que realizan
dichas peticiones. Estas
aplicaciones pueden ser las
desarrolladas para un
usuario en particular o las propias
herramientas suministradas
por la empresa vendedora del
SGBD o por terceras
compañías que fabrican software para ese
SGBD: lenguajes de
consulta, generadores de prototipos,
generadores de informes,
interfaces de usuario, etc.
La utilidad de esta visión
de alto nivel de un SGBD está en el
procesamiento distribuido
de la BD. Dentro del procesamiento
distribuido de BD, la
arquitectura cliente-servidor permite que el
servidor atienda varias
peticiones simultáneamente, y el cliente podrá
acceder a varios
servidores al mismo tiempo; estos servidores no
tienen porque mantener el
mismo SGBD, ni tan siquiera el mismo
modelo de datos
subyacente. Tan sólo es necesario establecer los
correspondientes
protocolos para que clientes y servidores se puedan
entender.
El cliente, además, es
capaz de procesar en su máquina la información
que le ha proporcionado el
servidor, de tal manera que ese trabajo ya
no lo tiene que realizar
la máquina remota, favoreciendo los tiempos de
respuesta a través de la
red. De hecho, uno de los objetivos de esta
arquitectura es descargar
al servidor de trabajo.
servidor 2
Pensemos en aplicaciones
desarrolladas para la red internet: es el
cliente el que se encarga
del procesamiento de la información para su
visualización dentro del
explorador, el interfaz del usuario frente a la
red. El servidor lo único
que hace es proporcionar respuesta a las
peticiones del cliente,
suministrar los datos tan sólo, y éste último se
responsabiliza de las
tareas gráficas de presentación de los datos en la
pantalla de su ordenador.
El único requisito es que existan unos
protocolos definidos para
la comunicación entre el cliente y el servidor.
Así se asegura que los
datos que van de uno a otro sean entendidos
por quien los recibe. De
esta forma, el cliente puede trabajar con un
sistema operativo distinto
del servidor, no tener software alguno de
gestión de bases de datos,
y todo ello sin que el usuario necesite más
conocimiento que el manejo
de su programa de acceso a la red.
En definitiva, se puede
ver como un nivel más de independencia de las
aplicaciones frente al
hardware y la representación física de los datos.
No hay comentarios:
Publicar un comentario