Вы находитесь на странице: 1из 15

ARCHIVOS Y BASES DE DATOS

Un ordenador nos servira de poco si perdiera toda la informacin al desconectarlo de la red


elctrica o su capacidad de almacenamiento estuviera limitada a la memoria RAM de que se
dispusiera.
Un elemento fundamental en todo computador es el almacenamiento secundario, que guarda
informacin an cuando no reciba suministro elctrico y cuya capacidad es muy superior a la de la
memoria principal del ordenador.
En este tema vamos a ver cmo se organiza la informacin dentro del almacenamiento
secundario, as como nuevas estructuras de datos y sistemas software que permiten el tratamiento
eficiente y organizado de grandes cantidades de informacin.

SISTEMA DE ARCHIVOS.

Conceptos bsicos de los archivos.


Un archivo o fichero es un conjunto de informacin sobre el mismo tema, tratada como una
unidad de almacenamiento y organizada de forma estructurada para la bsqueda de un dato
individual. Un archivo est compuesto de registros homogneos que contienen informacin sobre el
tema. As, por ejemplo, los datos de nmina de personal de una empresa (tema) se pueden
almacenar en un archivo, en el que cada registro contendra los campos o datos de nmina de cada
empleado.
El concepto de archivo surge de la necesidad, en los sistemas operativos, de almacenar la
informacin. Los archivos pueden contener programas, datos o algn otro elemento que el usuario
desee. El sistema operativo debe proporcionar operaciones para crear, destruir, leer y escribir
archivos. Estos conceptos se vern con ms detalle en el tema dedicado a los sistemas operativos.
La figura 4.1. muestra tres organizaciones comunes de un archivo. La primera organizacin
(fig. 4.1.a.) es una simple secuencia de bytes. Los archivos en el sistema operativo UNIX se
estructuran de esta manera. La segunda (fig. 4.1.b.) es una sucesin de registros de tamao fijo. En
esta organizacin pueden leerse o escribirse registros arbitrarios, pero no pueden insertarse o
suprimirse registros en la mitad de un archivo. La tercera organizacin es un rbol de bloques de
disco, donde cada nodo contiene n registros con clave. Si se inserta un registro a un bloque que est
repleto, ste se divide en dos, los cuales se suman al rbol en su secuencia alfabtica correcta. Este
mtodo se aplica sobre todo en macrocomputadoras donde se llama ISAM (mtodo de acceso
secuencial indexado).

Archivos y Bases de Datos

Fig. 4.1. Tres organizaciones de archivos.


Todos los sistemas operativos aspiran a la independencia del dispositivo, es decir, hacer
que el acceso sea el mismo sin importar dnde est el archivo. Algunos sistemas operativos tienen
mayor independencia del dispositivo que otros. En UNIX, por ejemplo, los discos forman parte del
rbol de ficheros, en MS-DOS, en cambio, el usuario debe especificar explcitamente en qu
dispositivo est cada archivo.
Las operaciones disponibles con archivos difieren ligeramente de un sistema operativo a otro.
Siempre se proporcionan la lectura y escritura de bytes (o registros) en forma secuencial. El acceso
al azar se puede obtener o bien realizando una operacin en la que se especifique el nmero (o
clave) del registro que se leer o escribir, o bien, primero se realiza una operacin para situar la
"posicin actual del archivo" en un lugar determinado y posteriormente se realizan las operaciones
de lectura o escritura que se deseen, las cuales actuarn a partir de la nueva posicin actual del
archivo. Los archivos orientados a registros suelen tener operaciones para insertar y suprimir
registros.

Tipos de archivos.
La mayora de los sistemas operativos tienen tres tipos bsicos de archivos: regulares,
directorios y archivos especiales. Los archivos especiales se utilizan (como hace UNIX) para modelar
dispositivos de disco y terminales. Los archivos regulares se subdividen en tipos distintos en base a
su uso. Los tipos diferentes se distinguen por medio de nombres que terminan con extensiones de
archivo distintas. Por ejemplo:
XXX.PAS:
XXX.TCL:
XXX.DOC:
XXX.OBJ:
XXX.EXE:
XXX.TXT:
XXX.BAT:

programa fuente en lenguaje PASCAL.


programa fuente en lenguaje TCL-TK.
documento escrito con el procesador de textos WORD.
archivo objeto (salida del compilador an no linkada).
programa binario ejecutable.
archivo de texto ASCII.
archivo de procesamiento de comandos por lotes.

En algunos sistemas las extensiones son simplemente un convencionalismo, el sistema


operativo mismo no las utiliza para nada. En otros sistemas, el sistema operativo refuerza
rgidamente las reglas que se relacionan con la nominacin. Por ejemplo, no ejecutar un archivo a
menos que ste termine en .EXE.

Fundamentos de Informtica

Archivos y Bases de Datos


Otras posibles clasificaciones de los archivos, atendiendo a diversos criterios, son las
siguientes:

Segn la longitud de los registros.


Los registros que componen un archivo pueden o no tener todos la misma longitud. Esto
puede ser debido a la existencia de campos de longitud variable o por haber campos que se repiten
un nmero variable de veces (o por ambas cosas). Por lo que respecta a la longitud de sus registros,
los archivos pueden ser de uno de los siguientes tipos :
Longitud fija. Todos los registros tienen la misma longitud.
Longitud variable. El sistema reserva una palabra al comienzo de cada registro para anotar
su longitud.
Delimitados. El sistema incluye un carcter especial, para indicar el final del registro. En este
caso se dice que el archivo es de tipo texto.
Indefinido. En este caso el sistema operativo no realiza ninguna gestin sobre la longitud de
los registros del archivo. El programa de usuario es el que se encarga de localizar el principio y el
final de cada registro.

Segn el uso que se hace de ellos.


Dentro de una aplicacin informtica se pueden utilizar los archivos para realizar funciones
diversas. Conocer la funcin que va a desempear un archivo es fundamental para su organizacin.
Podemos establecer una clasificacin de los archivos atendiendo a la funcin que desempean :
Un archivo permanente contiene informacin relevante para una aplicacin, es decir, los
datos necesarios para el funcionamiento de la misma. Su vida es larga y normalmente no puede
generarse de forma inmediata a partir de otros archivos.
Un archivo temporal contiene informacin que es relevante para un determinado proceso o
programa, pero no para el conjunto de la aplicacin. Se genera a partir de los datos de los archivos
permanentes o para actualizar stos, y su vida es generalmente muy corta.
Dentro de los archivos permanentes, podemos distinguir:
Archivos maestros. Un archivo maestro contiene el estado actual de los datos susceptibles de
ser modificados en la aplicacin. En general, todos los procesos estn orientados a actualizar el
archivo maestro o a obtener resultados de l. Ej : el archivo de clientes de un banco, en el los
registros contienen informacin de identificacin de clientes, su saldo, etc.
Archivos constantes. Un archivo constante es aquel que contiene datos fijos para la
aplicacin. En l no son frecuentes las modificaciones, normalmente se accede slo para consultar
datos.
Ej: el archivo que contenga los intereses para los distintos tipos de cuentas bancarias.
Archivos histricos. Un archivo histrico es aquel que contiene datos que fueron actuales en
tiempos anteriores. Se conservan para poder reconstruir situaciones anteriores. En algunos casos
puede estar formado simplemente por los registros borrados del archivo maestro. Ej: Un fichero que
contenga los datos de los clientes que se han dado de baja en una entidad bancaria.
Los archivos temporales se pueden clasificar en:

Fundamentos de Informtica

Archivos y Bases de Datos


Archivos intermedios. Se utilizan para almacenar resultados de un programa que han de ser
utilizados por otro, dentro de una misma aplicacin.
Archivos de maniobras. Se utilizan para almacenar los datos propios de un programa que no
se pueden conservar en memoria principal por falta de espacio. Se encuentran normalmente en
programas de clculo numrico, compiladores y editores. Su vida es siempre menor que el tiempo de
ejecucin del programa.
Archivos de resultados. Se utilizan para almacenar datos elaborados que van a ser
transferidos a un dispositivo de salida, por ejemplo un archivo de impresin, que contiene datos que
van a ser transferidos a una impresora.

Direccin fsica y direccin lgica.


Por lo general, un fichero utilizado por un usuario desde un lenguaje de alto nivel, no es
manejado directamente por el propio programa, sino por el sistema operativo o por el software
especfico del computador para la gestin de archivos. Dicho software se encargar de realizar los
accesos necesarios al dispositivo donde se encuentra ubicado el archivo y transferir la informacin
solicitada del archivo al programa o a la inversa. Esto facilita que los programas sean portables, ya
que en ellos no se hace referencia a la forma especfica de gestionar la informacin sobre el
soporte, que puede ser diferente de un sistema a otro. As, un programa que utilice archivos y escrito
en algn lenguaje para un determinado computador, puede ser trasladado a otro computador con
relativa facilidad, aunque la memoria masiva est estructurada fsicamente de otra forma.
El sistema operativo transporta, cada vez que accede al dispositivo, una cantidad fija de
informacin (bloque o registro fsico) que depende de las caractersticas hardware o fsicas de ste.
En un bloque puede haber varios registros del archivo o puede que un registro ocupe varios bloques.
En el diseo de archivos un factor que debe ser tenido en cuenta es la longitud de bloque o el factor
de blocaje, que se define como el nmero de registros del archivo que entran en un bloque. Cuanto
mayor sea ste, menor ser el nmero de accesos al dispositivo necesarios para el procesamiento
del archivo.
La direccin lgica de un registro es la posicin relativa que ocupa en el archivo, mientras
que la direccin fsica es la posicin real o efectiva donde se encuentra dicho registro en el soporte
de informacin (direccin hardware). En el archivo los registros aparecen al usuario en secuencia
lgica, es decir, ordenados linealmente. Por ejemplo, un archivo de nminas puede estar ordenado
alfabticamente por el apellido de los trabajadores. No obstante el orden de los archivos en el disco
puede no tener ninguna relacin con la informacin que contiene.
El sistema operativo, ha de realizar la transformacin de la direccin lgica usada en los
programas, en la direccin fsica con la que se direcciona el soporte.
Desde un programa se accede a un archivo para leer, modificar o escribir en uno de sus
registros. Al leer se transfiere de bloque en bloque la informacin del archivo a un rea de memoria
principal asociada a las entradas/salidas del archivo (a esta zona se le denomina buffer), desde aqu
la informacin es procesable por el programa. De la misma forma el programa puede transferir
informacin desde esta zona al archivo, modificando su contenido.

Almacenamiento de archivos.
Si un archivo consta de una sucesin de bloques, el sistema de archivo debe contar con
alguna manera de llevar el control de los bloques de cada archivo. La forma ms evidente (el
almacenamiento consecutivo de los bloques) suele no ser viable porque los archivos pueden crecer.
De hecho, fue precisamente este problema el que llev a dividir los archivos en bloques.

Fundamentos de Informtica

Archivos y Bases de Datos


Un mtodo que resulta adecuado consiste en almacenar los bloques de archivo como una
lista enlazada. Cada bloque del disco de 1024 bytes (por ejemplo) contiene 1022 bytes de datos y un
apuntador de 2 bytes al siguiente bloque de la cadena. Sin embargo, este mtodo tiene dos
desventajas. Primero, el nmero de bytes de datos en un bloque ya no es una potencia de 2, lo que
con frecuencia es una molestia. Segundo y ms grave, el acceso al azar es costoso de implementar.
Si un programa hace la localizacin del byte 32768 y despus inicia la lectura, el sistema operativo
tiene que hallar su camino a travs de 32768/1022 o 32 bloques para hallar los datos que se
necesitan. Tener que leer 33 bloques del disco para hacer la localizacin es ineficiente.
Pese a ello, la idea de representar un archivo como una lista enlazada puede salvarse si se
conservan los apuntadores en la memoria. La figura 4.2. muestra el esquema de asignacin que
utiliza MS-DOS. En este ejemplo, se tienen tres archivos, A, con bloques 6, 8, 4 y 2; B con bloques 5,
9 y 12; y C con bloques 10, 3 y 13.

Fig. 4.2. Esquema de asignacin de lista enlazada de MS-DOS.

En asociacin con cada disco hay una tabla llamada tabla de asignacin de archivos
(FAT). Tiene una entrada por cada bloque del disco. La entrada del directorio de cada archivo da el
nmero del primer bloque del archivo. Esa ranura en la FAT contiene el nmero del bloque del
siguiente bloque. El archivo A comienza en el bloque 6, de modo que la entrada 6 de la FAT contiene
el nmero del siguiente bloque del archivo A, que es 8; la entrada 8 de la FAT contiene el siguiente
nmero de bloque, 4; la entrada 4 apunta a la 2 y la 2 se marca como fin del archivo.
El principal problema de la FAT es que los apuntadores de todos los archivos del disco en su
totalidad se combinan al azar en la misma tabla. Esto quiere decir que toda la FAT se necesita en
potencia, aun si slo se abre un archivo. Un mtodo ms adecuado sera conservar las listas de
bloques de diferentes archivos en lugares distintos. Esto es lo que UNIX hace.
En asociacin con cada archivo de UNIX hay una tabla pequea (en el disco) llamada i-nodo
como se muestra en la figura 4.3. El i-nodo contiene informacin sobre el archivo y de proteccin,
adems de la informacin necesaria para localizar los bloques del archivo. Los elementos
importantes son los 10 nmeros de bloques del disco y los 3 nmeros de bloque indirectos. Para
archivos de menos de 10 bloques de longitud, todas las direcciones del disco se conservan
justamente en el i-nodo, hacindolos fciles de hallar.

Fundamentos de Informtica

Archivos y Bases de Datos

Fig. 4.3. Estructura de un i-nodo.


Cuando un archivo crece hasta ms de 10 bloques de disco, se adquiere un bloque de disco
libre y se coloca el apuntador indirecto hacia l. Este bloque se utiliza para contener apuntadores de
los bloques del disco. Con un tamao de bloque de 1K y direcciones de disco de 32 bits, el bloque
indirecto puede contener 256 direcciones del disco. Este esquema basta para archivos de hasta 266
bloques (10 en el i-nodo y 256 en el bloque indirecto individual).
Despus de 266 bloques, el apuntador doble indirecto se utiliza para apuntar a un bloque del
disco de hasta 256 apuntadores, slo que estos apuntadores no apuntan a bloques de datos, sino
que apuntan a 256 bloques indirectos individuales. El bloque indirecto doble basta para archivos de
hasta 266 + 2562 = 65802 bloques. Para archivos de ms de 64M, se utiliza el apuntador triple
indirecto para apunta a un bloque que contiene apuntadores a 256 bloques indirectos dobles.

Fundamentos de Informtica

Archivos y Bases de Datos


Los archivos que sobrepasan los 16 gigabytes no se pueden manejar (con tamao de bloque
de 1K). El tamao de la FAT de un disco de 16 gigabytes es poco agradable de contemplar. La fuerza
del esquema de UNIX es que los bloques indirectos se utilizan slo cuando se necesitan. Para
archivos menores de 10K, no se necesitan bloques indirectos.

Directorios.
Para llevar el control de los archivos, el sistema operativo normalmente proporciona
directorios, los cuales, en muchos sistemas, son archivos. Un directorio suele contener varias
entradas, una por archivo, como se muestra en la figura 4.4. La manera ms simple consiste en que
el sistema conserve un solo directorio que contenga todos los archivos de todos los usuarios. Si hay
muchos usuarios y stos eligen los mismos nombres de archivos, los conflictos y la confusin
volvern el sistema rpidamente impracticable.

Fig. 4.4. Entradas de un directorio.


Una mejora consiste en tener un directorio por usuario. Este diseo elimina conflictos de
nombre entre los usuarios, pero no es muy satisfactorio para usuarios con muchos archivos. Es muy
comn que los usuarios quieran agrupar sus archivos en formas lgicas. Lo que se necesita es una
jerarqua general, es decir, un rbol de directorios. Con este mtodo, cada usuario puede tener
tantos directorios como se necesiten de manera que los archivos se puedan agrupar en formas
naturales. Este mtodo se muestra en la figura 4.5.

Fig. 4.5. rbol de directorios.

Cuando tenemos esta organizacin, se necesita contar con alguna manera de especificar los
nombres de los archivos. Comnmente se emplean dos mtodos. En el primero, a cada archivo se le
da un nombre de ruta absoluta, que consta de la ruta que va del directorio raz al archivo. Por
ejemplo, la ruta /opt/gnu/gcc significa que el directorio raz contiene un subdirectorio opt, el cual a su
vez contiene un subdirectorio gnu, que contiene el archivo gcc. Los nombres de ruta absoluta
siempre comienzan en el directorio raz y son nicos.

Fundamentos de Informtica

Archivos y Bases de Datos


El otro tipo de nombre es el nombre de ruta relativa. Este se utiliza junto con el concepto de
directorio actual. Un usuario puede designar un directorio como el directorio actual, en cuyo caso
todos los nombres de ruta que no comienzan en el directorio raz se toman en relacin al directorio
actual. Por ejemplo, si el directorio actual es /opt/gnu, entonces el archivo cuya ruta absoluta es
/opt/gun/gcc puede referenciarse simplemente como gcc.

Estructura del directorio.


Antes de que un archivo se pueda leer, se debe abrir. Cuando un archivo se abre, el sistema
operativo utiliza el nombre de ruta proporcionado por el usuario para localizar los bloques del disco,
de manera que pueda leer y escribir el archivo ms adelante.
Consideremos algunos ejemplos de sistemas con rbol de directorios. La figura 4.6. muestra
una entrada del directorio de MS-DOS.
Bytes

8
Nombre
del
archivo

3
1
10
Extensi Atributos Reserva
n
do

2
2
Tiemp Fech
o
a

2
4
Primer
Tama
nmero
o
de bloque

Fig. 4.6. Entrada del directorio de MS-DOS.


Tiene 32 bytes de largo y contiene el nombre del archivo y el primer nmero de bloque, entre
otros elementos. El primer nmero de bloque se puede utilizar como ndice en la FAT, para hallar el
segundo nmero de bloque y as sucesivamente. De esta forma se pueden hallar todos los bloques
de un archivo dado. Los directorios de MS-DOS son archivos y pueden contener un nmero arbitrario
de entradas, salvo el directorio raz que es de tamao fijo.
La estructura del directorio que usa UNIX es extremadamente simple, como se muestra en la figura
4.7. Cada entrada contiene un nombre de archivo y su nmero de i-nodo. Toda la informacin
referente al tipo, tamao, tiempos, propietario y bloques del disco est contenida en el i-nodo (fig.
4.4). Todos los directorios de UNIX son archivos y pueden contener, en forma arbitraria, muchas de
estas entradas de 16 bytes.

Bytes

2
Nmero del inodo

14
Nombre del archivo

Fig. 4.7. Entrada del directorio de UNIX.

Cuando se abre un archivo, el sistema debe tomar el nombre proporcionado y localizar sus
bloques del disco. Consideremos la forma en que se busca el nombre de ruta /opt/gnu/gcc.
Utilizaremos a UNIX como ejemplo, pero el algoritmo es bsicamente el mismo para todos los
sistemas de directorios jerrquicos. En UNIX su i-nodo est localizado en un lugar fijo del disco.
Despus busca la primera componente de la ruta, opt, en el directorio raz con el fin de hallar
el i-nodo del archivo /opt. A partir de este i-nodo el sistema localiza el directorio de /opt y busca la
siguiente componente, gnu, en l. A partir de este i-nodo puede hallar el directorio mismo y buscar
gcc. El i-nodo de este archivo se lee despus en la memoria y se guarda ah hasta que el archivo se
cierra. El proceso de bsqueda se ilustra en la figura 4.8.

Fundamentos de Informtica

Archivos y Bases de Datos

Fig 4.8. Las etapas en la bsqueda de /opt/gnu/gcc.

Los nombres de ruta relativos se buscan de la misma forma que los absolutos, slo que
comenzando desde el directorio actual y no desde el directorio raz. Todo directorio tiene entradas
para . y .. que se colocan ah cuando se crea el directorio. La entrada . tiene el nmero de i-nodo del
directorio actual y la entrada de .. tiene el nmero de i-nodo del directorio padre. Por lo tanto, un
procedimiento que busca a ../pepe/prog.pas simplemente busca a .. en el directorio de trabajo, halla
el nmero de i-nodo del directorio padre y rastrea ese directorio para encontrar pepe. No se necesita
ningn mecanismo especial para manejar estos nombres. Hasta donde concierne al sistema de
directorio, estas son simplemente cadenas ASCII ordinarias.

BASES DE DATOS.

Concepto de Base de Datos y definiciones generales.


En cualquier tipo de organizacin se dedican considerables recursos a la recoleccin,
clasificacin, procesamiento e intercambio de datos basados en procedimientos bien establecidos
con vistas a alcanzar objetivos especficos. Los finales de los sesenta fueron testigos del desarrollo
de la tecnologa de manejo de datos con las implementaciones de los sistemas de bases de datos,
los cuales fueron concebidos como un conjunto de datos y un conjunto de programas de aplicacin
utilizados para acceder a los datos y actualizarlos.
A lo largo de estos ms de treinta aos esta tecnologa ha estado continuamente
actualizndose. Los primeros sistemas estuvieron basados en el uso de archivos separados (ISAM y
VSAM). Posteriormente surgieron los sistemas manejadores de bases de datos, que son sistemas
software centralizados o distribuidos que ofrecen facilidades para la definicin de bases de datos,
seleccin de estructuras de datos y bsqueda de datos, de forma interactiva o mediante un lenguaje
de programacin. Los primeros DBMS seguan el modelo jerrquico, que organiza la informacin a
base de rboles (IMS, 2000, ...), les siguieron los sistemas basados en el modelo de red, que
organiza la informacin utilizando grafos (IDS, TOTAL, IDMS, ...). La siguiente generacin estuvo
marcada por el advenimiento de la tecnologa de las bases de datos relacionales (Codd, 1970), las
cuales se han ido implantando paulatinamente en prcticamente todos los sistemas debido sobre
todo a su sencillez conceptual.
Cuando en nuestra aplicacin estamos trabajando con archivos, podemos encontrarnos con
una serie de problemas como pueden ser los siguientes:
- Dificultad de Mantenimiento: La realizacin de actualizaciones puede resultar costosa
cuando se tiene informacin parcialmente duplicada en varios archivos; incluso pude que

Fundamentos de Informtica

Archivos y Bases de Datos


stos tengan organizacin diferente. Si al tener que actualizar un determinado dato, no se
actualiza en todos los lugares donde se encuentra se producen inconsistencias.
- Redundancia: Este problema consiste en tener datos que no aportan informacin, ya que
se pueden deducir de otros. El caso trivial de redundancia es tener el mismo dato
almacenado en varios sitios.
- Rigidez de bsqueda: Al archivo se le va a dar una determinada organizacin de acuerdo
con los tipos de accesos que se crean ms frecuentes, pero puede ocurrir que se necesiten
otros modos de acceso y sean difciles de llevar a cabo sobre la organizacin ya existente.
- Dependencia con los programas: Las relaciones entre los datos almacenados en los
ficheros no estn patentes en stos. Es el programa que los utiliza el que se encarga de ello;
recibe una cadena de caracteres y la informacin de dnde comienza un campo, donde
acaba, su tipo, etc..., est controlada y es inherente al programa; cualquier cambio en la
estructura del archivo implicara una modificacin de los programas que los tratan.
- Confidencialidad y seguridad: La confidencialidad de los datos consiste en evitar la consulta
de stos a determinados usuarios. Otro aspecto que debe garantizarse es la seguridad de los
datos almacenados de forma que stos no puedan ser modificados por personas no
autorizadas.
Para resolver estos problemas surgen las bases de datos. A continuacin detallamos algunos
conceptos importantes.
Una Base de Datos es un conjunto de datos y sus relaciones (datos interrelacionados),
almacenados con la mnima redundancia y de manera que se pueda acceder a ellos eficientemente
por parte de varias aplicaciones y usuarios. Una base de datos se concibe como un fondo
informatizado de informacin, donde cualquier elemento de cualquier organizacin puede acceder a
esta informacin independientemente de dnde proceda la informacin y cul vaya a ser su uso.
Sistema de Base de Datos: es el sistema que se ocupa de mantener la informacin y hacer
que est disponible para el usuario. Consta de cuatro elementos:
- Datos: deben almacenarse de manera integrada (recoger toda la informacin con la mnima
redundancia) y deben ser compartidos (accesibles a todas las aplicaciones).
- Hardware: est formado por los dispositivos donde reside la base de datos (ordenadores,
discos, ...). Si los datos residen en varios ordenadores interconectados se dice que la base de
datos es distribuida (el hecho de ser distribuida debe ser transparente a los usuarios).
- Software: es el Sistema Manejador de la Base de Datos (DBMS). Se utiliza para definir,
mantener y manipular la base de datos.
- Usuarios: se pueden considerar tres tipos distintos de usuarios del sistema de base de
datos:
- Usuario terminal: emplea la base de datos para un uso no informtico de la
informacin. Suele realizar consultas y las modificaciones que hacen estn a nivel de
dato pero nunca de estructuras ms grandes.
- Programador de aplicaciones: disea y gestiona los programas que utilizan datos de
la base de datos. S se hace un uso informtico de los datos. Tambin se trabaja a
nivel de dato.
- Administrador/es de la base de datos: es el encargado de disear la estructura de
datos que soporta la base de datos. Trabaja a nivel de informacin.
Las ventajas principales del uso de bases de datos son:
Fundamentos de Informtica

10

Archivos y Bases de Datos

- Compacidad: no se van a duplicar los ficheros.


- Rapidez: al utilizar estructuras ordenadas y bien diseadas.
- Facilidad de trabajo: reusabilidad de los datos que estn en todo momento a disposicin.
- Actualizacin: al no estar los datos duplicados se pueden actualizar con facilidad.
- Menor redundancia.
- Eliminacin de inconsistencias: consecuencia de lo anterior.
- Comparticin de datos.
- Seguridad y chequeo de errores.

El administrador de la base de datos (DBA).


El administrador de la base de datos (DBA) es la persona que est encargada del control
general del sistema de base de datos. Entre sus muchas funciones estn:
- decidir el contenido de la informacin en la base de datos: debe identificar las entidades y la
informacin importante. Tiene que realizar el esquema conceptual, a este proceso se le
denomina diseo lgico. A partir de un estudio de las necesidades de la empresa, obtiene
items, atributos y relaciones entre items. El esquema conceptual se escribe utilizando el DDL.
- decidir la estructura de almacenamiento y la estrategia de acceso: decide cmo se
almacenan los datos y define su representacin interna. A esta fase se le denomina diseo
fsico de la base de datos. Tambin tiene que decidir la correspondencia conceptual/interna.
- conexin con los usuarios: debe disear los esquemas externos y las correspondencias
externa/conceptual que sean necesarias, tanto para usuarios terminales como para
programadores de aplicaciones.
- definir aspectos de seguridad e integridad: control de acceso e integridad de la informacin.
- definir procedimientos de copias de respaldo (backups) y recuperacin: se suelen tener
copias de seguridad de la base de datos de manera que si se produce alguna prdida
importante de informacin se pueda recuperar el sistema a partir de la ltima copia.
- control de transacciones (unidades de programa cuya ejecucin debe ser atmica).
- optimizacin del rendimiento de la base de datos: es responsable de que la base de datos
funcione de la mejor forma posible, realizando para ello los ajustes que vayan siendo
necesarios.
Para realizar todas estas funciones, el DBA dispone de una serie de herramientas software y
estructuras de informacin acerca de la base (ej: diccionario de datos, procedimientos estadsiticos
de medida de rendimiento, ...).

El sistema de gestin de la base de datos (DBMS).


El DBMS es el software que maneja todos los accesos a la base de datos. Desde el punto de
vista de un usuario el DBMS se estructura en:
- Lenguaje de manejo de la base de datos (por ejemplo SQL).
- Lenguaje anfitrin (C, COBOL, ...).
- Rutinas: que permiten realizar actividades como:
- definicin de usuarios.
- establecimiento de controles de integridad.
- recuperacin de fallos.

Fundamentos de Informtica

11

Archivos y Bases de Datos


- anlisis de la utilizacin de la base de datos.
- modificacin de estructuras.
- Utilidades de apoyo: que estarn asociadas al DSL como:
- diseadores de pantallas.
- mdulos de generacin de informes.
- entornos de programacin en DSL.

Bases de Datos Relacionales.


En este tipo de bases de datos (las ms utilizadas actualmente) los tems (objetos del mundo)
y las conexiones (relaciones entre esos objetos) se representan por tablas, o mejor dicho, por unas
tablas especiales llamadas relaciones.
A las filas de estas tablas se les llaman tuplas y a las columnas atributos. Un concepto
importante es el de dominio, que denomina el conjunto de valores que puede tomar un determinado
atributo.
Toda la informacin, tanto entidades como conexiones, se representa de manera uniforme, lo
que implica uniformidad en los operadores (insercin, borrado y actualizacin).
La figura 4.9 muestra un ejemplo de una base de datos relacional para la gestin de un taller
mecnico.
Relacin Mecnicos:
M#
Nombre
M1
Luis
M2
Antonio
M3
Javier
Relacin Trabajos:
M#
Matrcula
M1
J-1234-X
M1
GR-5522-Y
M3
J-4321-G

Status
3
2
4

Puesto
Chapa
Neumticos
Chapa

Nm_Horas
2
2
3.5

Fig. 4.9. Ejemplo de base de datos relacional.


Los conceptos fundamentales a tener en cuenta en las bases de datos relacionales son el de
llave primaria y llave externa.
Llamamos llave candidata de una relacin (o simplemente llave) al atributo o conjunto de
atributos que tienen la propiedad de identificar unvocamente a una tupla dentro de la relacin.
Las llaves constituyen el mecanismo de direccionamiento a nivel de tuplas bsico en un
sistema relacional, es decir, es el nico modo, garantizado por el sistema, de localizar alguna tupla
especfica.
Ejemplo: Relacin de Mecnicos:
M#
Nombre
M1
Luis
M2
Antonio
M3
Javier

Fundamentos de Informtica

Status
3
2
4

Puesto
Chapa
Neumticos
Chapa

12

Archivos y Bases de Datos


Llaves candidatas de esta relacin son:
- {M#}
- {status,puesto} si nos dicen que no puede haber dos mecnicos del mismo
puesto y con el mismo status.
Una llave candidata debe cumplir dos condiciones:
- Unicidad: no pueden existir dos tuplas con el mismo valor en todos los atributos que forman
la llave candidata.
- Minimidad: no existe ningn subconjunto de la llave que cumpla la regla de unicidad.
En el ejemplo anterior, por tanto, el conjunto {M#, Nombre}, aunque cumple la primera
propiedad de llave candidata, no cumple la propiedad de minimidad, ya que contiene al subconjunto
{M#} que es llave candidata, y por tanto no se puede considerar como tal.
Ejemplo: Relacin de Trabajos:
M#
M1
M1
M3

Matrcula
J-1234-X
GR-5522-Y
J-4321-G

Nm_Horas
2
2
3.5

En este ejemplo, ningn atributo por s mismo es llave candidata. Una llave candidata es
{Matrcula}, y adems es la ms pequea.
Llave primaria es una de las llaves candidatas. De entre todas las llaves candidatas, se elige
una como llave primaria. Al resto de llaves se les llaman llaves alternativas.
Llave externa. Dada una relacin R1, llamamos llave externa de R1, a cualquier atributo o
conjunto de atributos de R1 que sea a su vez llave primaria de otra relacin R2.
Debe existir una concordancia entre los valores de la llave externa en ambas relaciones, ya
que si no se daran problemas de integridad.
Ejemplo: si consideramos las relaciones de los dos ejemplos anteriores, el atributo
{M#} de la relacin de Trabajos es una llave externa respecto a la relacin de Mecnicos, ya
que {M#} es llave primaria de esta ltima relacin. La concordancia que debe existir entre los
valores de la llave externa se refiere al hecho de que todo valor de M# que aparezca en la
relacin de Trabajos debe existir en la relacin de Mecnicos, ya que si no estuviera,
estaramos diciendo que existe un trabajo de un mecnico inexistente, esto es, tendramos un
problema de integridad.
El dominio de los atributos de la llave externa deben coincidir en ambas relaciones. No es
necesario que la llave externa sea tambin la llave primaria de la relacin (R1), como puede
deducirse del ejemplo anterior (llave de Trabajos es {M#,Matrcula}).
Hay que tener en cuenta que R1 y R2 pueden ser la misma relacin, es decir, una relacin
podra incluir una llave externa cuyos valores (no nulos) deben concordar con los valores de la llave
primaria de esa misma relacin. Un ejemplo tpico es la relacin de Empleados, donde la llave
primaria es Num_Emp# y existe un atributo Num_Emp_Sup# en la relacin para identificar al superior
de ese empleado. Este ltimo atributo es llave externa respecto a Num_Emp#.
Las llaves externas son el mecanismo fundamental para relacionar unas tablas con otras.

Fundamentos de Informtica

13

Archivos y Bases de Datos

La arquitectura Cliente/Servidor.
En la arquitectura cliente/servidor, la aplicacin de base de datos est separada en dos
partes: la porcin cliente y la porcin servidor. El cliente ejecuta la aplicacin que accede a la
informacin de la base de datos e interactua principalmente con el usuario a travs del teclado, la
pantalla y el ratn. El servidor ejecuta el gestor de la base de datos y maneja las funciones requeridas
para el acceso concurrente a los datos compartidos de la base de datos.
Aunque la aplicacin cliente y el servidor pueden ser ejecutados en el mismo ordenador,
suele ser ms efectivo y eficiente cuando la(s) parte(s) cliente(s) y el servidor se ejecutan en
mquinas diferentes conectadas a travs de un red.
En una base de datos distribuida, un servidor podra necesitar acceder a una base de datos
situada en otro servidor. En este caso, el servidor que pide la informacin es un cliente.
El procesamiento distribuido es el uso de ms de un procesador para dividir el procesamiento
de una tarea individual. A continuacin se exponen algunos ejemplos de procesamiento distribuido:
- el cliente y el servidor estn situados en diferentes mquinas; estas mquinas se conectan a
travs de una red.

Fig. 4.10. Arquitectura cliente-servidor en red


- una nica mquina tiene ms de un procesador, y los diferentes procesadores separan la
ejecucin de un cliente de la del servidor.

Fig. 4.11. Arquitectura cliente-servidor en un solo ordenador

Fundamentos de Informtica

14

Archivos y Bases de Datos


Algunos beneficios de la arquitectura cliente/servidor son:
- la aplicacin cliente no es responsable de realizar ningn procesamiento de datos. Las
aplicaciones clientes se concentran en recoger datos de entrada de los usuarios, pedir los
datos deseados al servidor, y entonces analizar y presentar estos datos usando las
capacidades de visualizacin de la estacin de trabajo o terminal cliente.
- la aplicacin cliente puede ser diseada con independencia de la localizacin fsica de los
datos. Si los datos se mueven o distribuyen a otros servidores, la aplicacin continua su
funcionamiento con mnimas o ninguna modificacin.
- el servidor puede explotar caractersticas como la multitarea y memoria compartida de los
sistemas operativos subyacentes. Como resultado, las aplicaciones cliente obtienen un alto
grado de concurrencia, integridad de los datos y eficiencia.
- las estaciones de trabajo o terminales cliente pueden ser optimizadas para la presentacin
de los datos (con capacidades grficas, ratn, ..), mientras que el servidor puede ser
optimizado para el procesamiento y el almacenamiento de los datos (gran cantidad de
memoria y espacio de disco).
- si es necesario, el servidor puede ser ampliado (escalado). De la misma forma que el
sistema va creciendo, se pueden aadir mltiples servidores para distribuir la carga de
procesamiento distribuido a travs de la red (escalado horizontal). De forma alternativa, se
puede remplazar la mquina que soporta al servidor por una mquina de mayor capacidad
(escalado vertical). En ambos casos, todos los datos y las aplicaciones se mantienen con
pocas o ninguna modificacin (si el servidor es portable).
- en los entornos de red, los datos compartidos son almacenados en los servidores, en vez de
estar en todos los ordenadores del sistema. Esto facilita y hace ms eficiente el manejo de
los accesos concurrentes.
- en los entornos de red, las aplicaciones cliente realizan las peticiones al servidor usando
sentencias SQL. Una vez recibidas, las sentencias SQL son procesadas por el servidor, y los
resultados se devuelven a la aplicacin cliente. El trfico en la red se mantiene al mnimo, ya
que slo las peticiones y los resultados se mandan a travs de la red.

Fundamentos de Informtica

15

Вам также может понравиться