Está en la página 1de 22

Introduccin a los Sistemas de Bases de Datos.

INTRODUCCIN A LOS SISTEMAS DE BASES DE DATOS.


Evolucin de los sistemas de bases de datos.
Uno de los usos ms frecuentes de los ordenadores es el de almacenamiento masivo de datos. Aqu es importante hacer distincin entre datos e informacin. Cuando nos referimos a datos, estamos hablando de un texto, un nmero o un conjunto arbitrariamente grande de ambos. En el momento en que hablamos de informacin, nos referimos a datos que pueden ser relacionados entre s, de forma ms o menos inteligente, con el objetivo de sacar alguna conclusin que nos permita tomar decisiones importantes en nuestra empresa u organizacin. El ordenador en s no es inteligente, lo que pasa es que es capaz de hacer millones de operaciones simples en muy poco tiempo, con lo que es posible procesar un enorme nmero de datos para extraer informacin. Cmo extraer informacin de los datos? Hay muchas formas: obtener estadsticas sobre destinos hoteleros preferidos, obtener movimientos tursticos segn la procedencia, emitir facturas en una agencia de viajes, enviar cartas a nuestros mejores clientes, etc. Para poder realizar todas estas operaciones es necesario almacenar de alguna forma datos sobre los clientes, los paquetes de viajes, las reservas, informacin estadstica, etc. segn la informacin que se desee obtener. Tradicionalmente, antes del uso de ordenadores, la informacin se extraa tras un minucioso examen de los datos almacenados en fichas de cartn que se guardaban en los cajones de grandes ficheros en una oficina, lo cual era muy costoso debido al tiempo requerido, o bien a la poca exactitud de los resultados obtenidos, que haca tomar decisiones poco acertadas. Con la llegada de los ordenadores, y los dispositivos de almacenamiento electrnico, discos duros, tambores magnticos, fichas perforadas, cintas magnticas, etc., aparece el concepto de fichero electrnico. Un fichero electrnico es igual que un fichero con cajones y fichas de cartn en su interior, slo que estn almacenados sobre una superficie magntica (con el consiguiente ahorro de espacio), y son gestionados a travs de un ordenador (con el consiguiente ahorro en velocidad a la hora de acceder), lo que posibilita su examen de forma veloz a travs de la mquina. Normalmente, los datos necesarios no se almacenan en un slo fichero, sino que para extraer una determinada informacin, es necesario consultar ficheros de distinto tipo: ficheros de clientes, de pedidos, de proveedores, de ofertas, de facturas, de albaranes, etc. P.ej., para realizar un pedido de comestibles en un hotel, sera necesario consultar un fichero de existencias o stock, y el fichero de proveedores, realizar un pedido, y dejar constancia del mismo en el fichero de pedidos, para que, una vez recibido el pedido, nos cercioremos de que lo que se ha recibido es aquello que se pidi. Este fue un gran paso en lo que respecta al almacenamiento y gestin de los datos. No obstante, a medida que pas el tiempo, se observ que la informacin extrada de estos ficheros era a menudo contradictoria y propensa a errores de coordinacin (incoherentes): aparecen albaranes con nmeros de clientes que no existen en el fichero de clientes, cada vez que es necesario indicar un proveedor en la ficha de pedidos hay que poner su nombre y direccin, con lo cual un mismo proveedor puede aparecer con varias direcciones distintas por error, etc. Para solucionar este problema, interviene de nuevo la capacidad de los ordenadores para hacer 1

Introduccin a los Sistemas de Bases de Datos.

rpidamente muchas cosas simples. Se opt por hacer que el ordenador controlase la concordancia entre los datos, y para ello se dio a los datos una estructura distinta, ya no basada en ficheros como tales, sino basada en listas o tablas de fichas (llamadas tuplas o lneas), y en cada una de las cuales no se encontraba toda la informacin, sino que era necesario relacionar datos de varias tablas para obtener la informacin deseada. Aparecen as las bases de datos. La evolucin de la informtica ha pasado por numerosas formas de abordar los problemas mediante programas, en funcin de la potencia de las mquinas en cada poca, y de la experiencia de los informticos que ha ido aumentando a lo largo de los aos. De esta forma, aparecieron las bases de datos jerrquicas y en red, cuyas caractersticas veremos ms adelante. Posteriormente las bases de datos relacionales, que son las que nosotros estudiaremos, sustituyeron rpidamente a estas dos, ya que las relacionales se basan en estudios matemticos que aseguran la eficiencia de las operaciones que permite realizar, as como su correctitud y completitud, y definen claramente la forma en que deben abordarse los problemas. Actualmente, las bases de datos relacionales son las ms usadas a nivel profesional, aunque para aplicaciones avanzadas y en los ambientes acadmicos tambin tienen bastante importancia las bases de datos orientadas a objetos (especialmente para trabajos sobre Internet), y las bases de datos deductivas (para trabajos en Inteligencia Artificial). Ver el punto 2.1 de OBJETOS: Conceptos, mtodos y herramientas. (Valduriez).

Objetivos a cubrir por una base de datos.


Los objetivos que debe cubrir una base de datos son: - Evitar la redundancia e inconsistencia en los datos. No slo se debe aprovechar la enorme capacidad de los ordenadores para almacenar grandes cmulos de informacin. stos pueden emplearse en controlar que los datos existentes sean consistentes entre s, y que no haya informacin contradictoria entre los datos almacenados. Por otro lado, es el usuario quien tiene que decidir qu se almacena en la base de datos y qu no. Evidentemente slo deben almacenarse aquellos datos que se necesitan para algo, aquello que nos ser til en nuestro trabajo. El usuario es quien debe decidir adems en que forma se almacenan los datos: si un nmero de telfono se almacenar como un nmero, o como una tira de letras (lo cual permitira guardar el guin que separa el prefijo del nmero en s), etc. Como veremos, existen numerosas reglas que el diseador de bases de datos debe tener en cuenta a la hora de realizar un diseo eficiente y depurado. Evitar redundancias (datos o informacin repetida) en los datos almacenados es un objetivo prioritario ya que con ello se consigue: a) No desperdiciar capacidad de almacenamiento (cinta, disco, etc.). b) Evitar la extraccin de una misma informacin por dos caminos distintos, con lo que la informacin extrada puede ser contradictoria. - Facilitar el acceso a los datos. En los sistemas antiguos, los datos almacenados en ficheros electrnicos slo podan

Introduccin a los Sistemas de Bases de Datos.

ser accedidos a travs de programas de ordenador que realizaban alguna tarea especfica muy concreta. Para cada tipo de informacin que se necesitaba, era necesario crear un programa que la extrajera de los datos de los ficheros; de esta manera, si un empleado de contabilidad deseaba saber los clientes de Ronda que haban comprado ms de un milln de pesetas en el ao 1.996, deba presentar dicha necesidad al departamento de proceso de datos, que deba crear un programa para atender tal requerimiento. Evidentemente, esta forma de trabajo es lenta, y tiene un cuello de botella en el centro de proceso de datos, con el agravante de que da lugar a una mirada de programas distintos, cada uno para atender una necesidad particular. Adems, si por cualquier causa, cambia la estructura de los datos (p.ej., se decide que en lugar de almacenar al completo el nombre y apellidos de un cliente, se guardar por un lado el nombre, y por otro los apellidos), algunos de los programas ya hechos no servirn, porque fueron creados en base a una estructura determinada, que ahora se ha visto alterada. Para evitar todos estos problemas, se inserta entre el nivel a que se hallan los datos, y las aplicaciones, un programa auxiliar de mxima importancia: es el Sistema Gestor de Bases de Datos (S.G.B.D.), cuyas mltiples funciones iremos viendo a lo largo de la asignatura. Una de estas funciones es la de suministrar un lenguaje que permita consultar fcilmente la base de datos sin necesidad de hacer un programa para cada consulta; bastar con formular la consulta segn este lenguaje simple, para obtener un resultado ms o menos inmediato fruto de las gestiones realizadas por el S.G.B.D. sobre los datos. - Facilitar la creacin de programas que trabajen sobre los datos. Como se ha indicado anteriormente, los datos pueden estar repartidos en mltiples tablas o en mltiples ficheros; incluso puede haber varias bases de datos de cuyo conjunto sea necesario extraer informacin. Es ms, cada base de datos puede estar creada con un sistema distinto (es algo as como si en cada base de datos la ficha de cartn que guarda los datos de un cliente tuviera los datos cambiados de sitio, o incluso distintos datos). De esta forma, es difcil crear aplicaciones que trabajen sobre los datos. De nuevo, esto se soluciona con un S.G.B.D. que aisla al creador de aplicaciones de este caos de datos, y le da una visin uniforme de los datos, facilitando de esta manera la programacin de aplicaciones complejas. - Permitir el acceso concurrente. Un ordenador es una mquina que slo es capaz de hacer una cosa cada vez: leer de memoria, escribir en ella, realizar un clculo, etc.; en definitiva cosas muy simples. Sin embargo, en la mayora de los trabajos se requiere que varias personas puedan trabajar a la vez, quizs aparentemente no con la misma mquina (cada persona tendr un teclado y un monitor distinto, por supuesto; es lo que se llama un terminal), pero s sobre los mismos datos; pinsese si no en un programa de reserva de billetes de avin de una compaa determinada. En este caso los datos sobre reservas se almacenan una sola vez en un ordenador central, que gestiona todas las operaciones efectuadas sobre cada terminal de usuario. As, cada usuario podr efectuar peticiones sobre el ordenador central en el momento en que lo necesite, y la central deber responderle en un tiempo prudencial (no debe hacer esperar innecesariamente). Dado que varias personas trabajan a la vez, es posible que el ordenador central reciba peticiones de acceso sobre los datos de forma simultnea: es lo que 3

Introduccin a los Sistemas de Bases de Datos.

se llama acceso concurrente. Para observar los problemas que puede producir el acceso concurrente, supongamos que el ordenador central es un escribiente al que cada usuario le dicta la ficha que debe tomar y lo que debe hacer sobre ella: consultar un dato de la misma, modificar algn campo, destruir la ficha o tomar una ficha en blanco e insertar datos en ella. Si no hubiese requerimientos de tiempo por parte de cada usuario, no habra problema, pues al escribiente le bastara con atender las peticiones por riguroso orden de llegada. Sin embargo, para dar la sensacin de que el escribiente atiende a todo el mundo por igual, este hace uso de una tcnica llamada tiempo compartido, o sea, reparte cada minuto de su tiempo en partes iguales, una para cada usuario que le ha hecho una peticin. De esta forma, pueden aparecer problemas en los accesos concurrentes a los datos. P.ej., qu pasa si un usuario pide que se elimine la ficha del cliente Hotel Miramar, mientras que otro dice que se le modifique el apartado de correos?. Si hacemos primero la eliminacin, cmo modificar una ficha que no existe?! Este problema se ve agravado enormemente en el momento en que se introduce el concepto de transaccin. Una transaccin es un conjunto de operaciones sobre los datos que debe ser tratada como una nica operacin: o se hace entera, o no se hace. Un ejemplo de transaccin puede ser: Incrementar en un 2'8% el crdito mximo dado a cada cliente. Si tenemos varios miles de clientes, sta es una operacin que puede durar bastante tiempo, y mientras se produce puede que sea necesario atender otras peticiones. Por la estructura propia de la transaccin (o se ejecuta al completo, o no se hace nada), es necesario hacer uso de copias de cada ficha de cliente afectado (de manera que si se produce algn problema, se destruyen todas las copias, pero los originales quedan intactos). Qu ocurre si mientras se gestionan las copias de las fichas aparece una peticin de cambiar el crdito mximo del cliente Bar Juamig? Se le aumenta tambin el 2'8%, se pone el nuevo valor, o se deja como estaba? Todo esto debe ser gestionado tambin por el S.G.B.D., que debe asegurar que el resultado final debe ser consistente, y debe informar al usuario afectado si se ha producido algn error en la transaccin que intent realizar. - Controlar la seguridad en los accesos a los datos. En los antiguos sistemas de fichas de cartn, los ficheros ms importantes se hallaban fuera del alcance de la mayora de los usuarios, y slo podan tener acceso algunos privilegiados. Este mtodo de seguridad tomaba muchas formas, segn el grado de seguridad con que se quera dotar a esos datos: puertas con cerrojo, tarjetas magnticas, guardas de seguridad con porras disuasorias, e incluso encriptacin de los datos ms importantes, al ms puro estilo del agente 007. Cuando se trabaja con ficheros electrnicos, el ordenador que los almacena, como se indic en el apartado anterior, suele recibir peticiones de otros terminales, con lo que el acceso a los datos no est restringido slo a los que tocan el ordenador directamente, pudiendo ser utilizado desde un terminal remoto situado, posiblemente, en cualquier parte del mundo. Por tanto los mtodos de seguridad tradicionales no son suficientes (aunque siguen siendo necesarios con objeto de, p.ej., evitar la destruccin malintencionada del ordenador central por parte de algn saboteador industrial, o por algn hecho fortuito), y es necesario recurrir a medios electrnicos de proteccin que impidan acceder a los datos ms importantes, excepto 4

Introduccin a los Sistemas de Bases de Datos.

a aquellas personas que estn autorizadas. P.ej., el departamento de pedidos no tiene porqu tener acceso a las nminas del personal de la empresa, datos que estarn restringidos al personal contable de la misma. Para conseguir esto, se asignan una serie de prioridades a cada usuario, as como un nivel de seguridad a cada tipo de dato, de manera que cada usuario slo puede acceder a los datos de nivel inferior o igual a su prioridad. Adems, existe un registro electrnico que toma nota de los accesos a los datos de mayor nivel, dejando as constancia de la fecha, hora y usuario que efectu el acceso, o intent un acceso frustrado. Todo esto es llevado a cabo por el S.G.B.D. y debe ser inspeccionado regularmente por el departamento de proceso de datos, en busca de intentos de violacin del sistema. - Asegurar la integridad de la base de datos. Este es uno de los aspectos ms importantes, y que hacen uso intensivo de la capacidad de los ordenadores para procesar la informacin. Los datos deben poseer unas caractersticas determinadas en funcin de lo que se pretende hacer con ellos, y del rea de trabajo en que se desarrolla la empresa. Nos referimos a caractersticas que hacen que los datos almacenados representen una informacin coherente para el usuario que los maneja. Es lo que se llama la Integridad de la base de datos. P.ej., se debe impedir que en el NIF de un cliente se coloque su Nombre, o que su N de telfono aparezca vaco, o incluso cosas ms complejas que relacionen varios ficheros, como p.ej. que haya un pedido pendiente a proveedor, y dicho proveedor no exista en el fichero de proveedores, o que haya una reserva de viaje en un vuelo que no existe, o incluso que el nmero de reservas en un vuelo a Bangkok supere el overbooking mximo permitido (el 10%). Todas estas son restricciones de integridad que el S.G.B.D. debe mantener en la base de datos, permitiendo, eso s, en los casos en que sea necesario, una situacin momentnea de falta de integridad, como p.ej. insertar una reserva por parte de un cliente inexistente, siempre y cuando el usuario asegure que va a dar de alta en breve a dicho cliente. Ver Silberschatz, captulo 1.

Definicin de base de datos.


Existen numerosas definiciones de lo que es una base de datos, y de lo que es un S.G.B.D. De hecho, a menudo se confunden ambos trminos dada la relacin biunvoca existente entre ambos. La definicin ms aceptada dice algo as como: En esencia, una base de datos no es ms que una coleccin de informacin que existe a lo largo de un perodo de tiempo, a menudo de varios aos. Ms claramente, el trmino base de datos se refiere a una coleccin de datos gestionada por un Sistema Gestor de Bases de Datos, S.G.B.D., o simplemente Sistema de Bases de Datos. Ver Ullman: A first course in database systems. Silberschatz extiende un poco ms el concepto de base de datos, incluyendo en el trmino a los programas para acceder a estos datos, aunque no deja claro si son slo los programas componentes del S.G.B.D., o incluye tambin a los programas de aplicacin, hecho que, otros autores,

Introduccin a los Sistemas de Bases de Datos.

como Julio Carmona, dan por sentado, aunque con mucha menos rigurosidad. Nosotros consideraremos como base de datos a la coleccin de datos junto con el S.G.B.D. Idealmente, el S.G.B.D. debe poseer una serie de caractersticas indispensables para satisfacer a los usuarios: - Debe poseer un lenguaje de definicin de datos que permita fcilmente la creacin de nuevas bases de datos, as como la modificacin de su estructura. - Debe poseer un lenguaje de manipulacin de datos, que permita la insercin, eliminacin, modificacin y consulta de los datos de la base, de la forma ms eficiente y conveniente posible. - Debe permitir el almacenamiento de enormes cantidades de datos (miles de millones de caracteres), sin que el usuario perciba una degradacin en cuanto al rendimiento global del sistema. - Debe permitir la gestin segura de los datos, con respecto a accesos no autorizados, y a accidentes producidos por los dispositivos mecnicos o electrnicos que soportan los datos almacenados. - Debe permitir el acceso simultneo por parte de varios usuarios, impidiendo adems, que dichos accesos concurrentes den lugar a datos corruptos o inconsistentes. - Debe suministrar independencia fsica de los datos, que asegure que, sea cual sea la estructura de los datos en los dispositivos electromecnicos de almacenamiento, el usuario y las aplicaciones los percibirn siempre de manera uniforme y til. Estas caractersticas dan lugar a otra definicin de base de datos, quizs ms orientada a la moda actual en informtica: el diseo orientado a objetos, que consiste en hacer programas viendo el mundo como un conjunto de objetos que se relacionan entre s para conseguir un objetivo comn. Segn esta visin, podemos considerar una base de datos como una organizacin coherente de datos permanentes, y accesibles para usuarios concurrentes. Esta definicin lleva implcito el concepto de S.G.B.D., ya que es ste quien se debe encargar de almacenar los datos (y por tanto de hacerlos permanentes y no voltiles), de gestionar su integridad (y por tanto de que sean coherentes), y de controlar a los mltiples usuarios (permitiendo as la concurrencia). La forma en que las distintas bases de datos comerciales y acadmicas abordan estas caractersticas difieren enormemente, no slo por las tcnicas utilizadas sino tambin por las aproximaciones o paradigmas con que se han desarrollado. Aunque en el tema 2 haremos un breve estudio de los tipos de bases de datos, nos centraremos exclusivamente en el tipo ms extendido: las bases de datos relacionales, ya que tienen un formalismo subyacente que las hace muy potentes. Adems, fueron desarrolladas hace ya bastantes aos, y han evolucionado lo suficiente como para suministrar poderosas herramientas que hacen fcil su gestin. De hecho, todas las caractersticas que hemos visto que debe poseer un S.G.B.D., son suministradas a travs de entornos e interfaces amigables y comprensibles que permiten un rpido aprendizaje de todas las funciones propias de una base de datos. En contraposicin, otro tipo de bases de datos, como las Orientadas a objetos, requieren que casi todas las funciones de creacin de base de datos, manipulacin, etc., se efecten a travs de programas, lo cual requiere un profundo conocimiento de las tcnicas de programacin, impropio de 6

Introduccin a los Sistemas de Bases de Datos.

una carrera como la de Turismo. Por otro lado, sistemas igual de evolucionados, como el jerrquico o en red, han cado en desuso, y su aprendizaje supone un esfuerzo que aporta ms bien poco al estudiante que debe enfrentarse de inmediato ante un mundo de datos bsicamente relacional.

Componentes de un sistema de base de datos.


Hasta ahora hemos visto una idea general de lo que es una base de datos, y la necesidad de que exista un gestor central que separe los datos en s de los usuarios, y que facilite una serie de tareas, as como se asegure de que se cumplen determinados requisitos indispensables para el buen funcionamiento del sistema. Ahora vamos a desmenuzar un poco ms el concepto de base de datos, y vamos describir sus componentes bsicos, justificando adems la necesidad de cada uno de ellos.

Datos.
Efectivamente, una base de datos no tiene sentido sino est compuesta por datos. Lo que no est tan claro es la forma en que estos datos se deben disponer, qu datos se deben almacenar, y cmo los debe entender la mquina. La disposicin de los datos depende del mbito de aplicacin concreto en que se enmarque la base de datos. No es lo mismo una base de datos que almacene un dibujo vectorial de monumentos histricos que una base de datos para almacenar las reservas de clientes en un hotel. Lo que vara fundamentalmente en uno y otro caso, es la forma en que los datos se relacionan entre s, y el tipo de accesos a la informacin que va a realizar el usuario. Adems, los datos deben disponerse de manera que las consultas sean lo ms eficiente posible, evitando a la vez la existencia de datos duplicados que pueden dar al traste con la coherencia de la base de datos. De esta forma, no slo se consideran datos aquellos que el usuario desea almacenar, sino toda estructura de apoyo que el sistema necesite para hacer ms eficiente una consulta. P.ej., supongamos que trabajamos en un hotel cuya base de datos posee un fichero con todas las agencias de viajes que contratan nuestros servicios de alojamiento en alguno de sus paquetes de viajes. Supongamos que para facilitar los accesos ms comunes tenemos las fichas de tales agencias ordenadas por nombre. Qu ocurre si queremos acceder a todas las agencias de Egipto para mandarles una carta felicitndolas por el ao nuevo musulmn?. Resulta inaceptable que miremos una por una todas las agencias de nuestro fichero, ya que esto nos llevara un tiempo desorbitado. La solucin informtica a este problema consiste en crear un fichero aparte cuyas fichas contienen slo dos campos: Pas de la agencia, y Nombre de la agencia. Las fichas de este fichero estarn ordenadas por Pas, y dentro de cada pas, por orden alfabtico del Nombre de la agencia. Para acceder a las agencias de Egipto, no accedemos al fichero principal, sino que nos dirigimos a este fichero auxiliar ordenado por pas, y de ah podemos averiguar directamente cules son los nombres de las agencias de Egipto. A continuacin nos vamos al fichero principal, accediendo slo a las fichas cuyos nombres hemos extrado anteriormente del auxiliar y de estas extraemos la direccin, lo que permite, finalmente, el envo de las cartas. El fichero auxiliar es lo que se llama un ndice del fichero 7

Introduccin a los Sistemas de Bases de Datos.

principal. La gran ventaja de este mtodo, es que el mantenimiento del fichero auxiliar, cuando trabajamos con un ordenador, lo realiza automticamente el sistema, lo que nos ahorra la tarea de tener que escribir explcitamente una ficha auxiliar cada vez que se inserta una nueva agencia en el fichero principal. De esta forma se obtiene una gran eficiencia en las consultas, sin que el usuario tenga que trabajar ms: el ordenador trabaja por nosotros. Pues bien, este fichero aparte, creado con el nico objetivo de facilitar el acceso a la informacin, tambin lo consideramos datos, aunque deban ser gestionados automticamente, e incluso algunos usuarios no tengan ni la menor idea de su existencia. Por otro lado, es muy importante decidir qu datos son los que se van a almacenar. A menudo ocurre que en una base de datos se almacenan las facturas con una antigedad inferior a x aos. El nmero de aos que se desea almacenar una factura electrnicamente puede ser una decisin crucial dependiendo de la capacidad de almacenamiento de nuestra mquina y del volumen de facturas que se expidan anualmente. Adems, si casi no se necesita acceder a dicha informacin histrica, puede ser ms interesante destruir electrnicamente esa informacin, y almacenarla exclusivamente en papel, con lo que el ahorro de espacio en disco puede contrarrestar el esfuerzo de hacer las consultas manualmente. Contrariamente, cuando se crea la base de datos, pueden parecer innecesarios ciertos datos de un cliente, como p.ej. Fecha de nacimiento. Posteriormente, si trabajamos en una agencia de viajes, y creamos un paquete de viajes de aventura por la selva del Amazonas, puede interesarnos promocionarlo slo a aquellos clientes menores de 35 aos, con lo que nos damos cuenta de que habra sido buena idea almacenar la fecha de nacimiento. Aunque el S.G.B.D. nos permite modificar la estructura de la base de datos para almacenar este nuevo campo, introducirlo para todos los clientes es una tarea ardua y fatigosa. Por ltimo, tambin es interesante, por cuestiones de seguridad y aprovechamiento de los recursos del ordenador, decidir en qu formato se van a almacenar los datos: si se van a almacenar encriptados para que nadie los pueda copiar, o si se van a codificar o a comprimir de alguna forma para hacer que ocupen menos espacio. Existe toda una teora sobre compresin y codificacin de datos, que puede hacer que, dependiendo de las caractersticas de los datos a almacenar, se requiera mucha menos memoria de la necesaria siguiendo los mtodos convencionales de almacenamiento.

Metadatos.
La evolucin de las bases de datos, ha hecho que los informticos se den cuenta de determinados problemas, y que los hayan ido subsanando a medida que perfeccionaban sus productos. Uno de los problemas que se producan consiste en la propia evolucin de la base de datos. Desde el momento en que se crea una base de datos, hasta el momento en que se desecha porque se compra un sistema mejor, o se instala una nueva base de datos, la estructura de la base de datos (o sea, los datos que se deciden almacenar, y la estructura con que se almacenan) cambia a

Introduccin a los Sistemas de Bases de Datos.

medida que cambian las necesidades sobre la informacin a obtener de la base de datos, de manera que puede ser necesario introducir nuevas fichas, nuevos campos en fichas ya existentes, eliminar campos, modificar lo que se almacena en determinados campos, e incluso reestructurar la base de datos entera, creando ficheros de apoyo, etc. Dado que la base de datos que solucione unas necesidades concretas puede adoptar muchas formas posibles, es muy interesante el poseer algn lugar que indique al personal encargado de mantener la base de datos, cul es el objetivo de cada dato particular almacenado en la base, as como en qu aplicaciones es utilizado, y con qu propsito, si es un dato fundamental, o si puede ser omitido por el que introduce los datos, etc. De esta forma, antes de modificar el esquema o estructura de la base de datos, el departamento de proceso de datos debe consultar esta informacin sobre los datos de la base, con cuidado para no cometer errores graves que repercutan sobre el buen funcionamiento de todo el sistema. Esta informacin que el sistema guarda sobre los datos almacenados, es lo que se llaman metadatos. Es ms, estos metadatos se almacenan como otra base de datos propiamente dicha, y puede ser gestionada y consultada como tal. Estos metadatos suelen conformar lo que se da en llamar diccionario de datos.

El sistema gestor de bases de datos.


El sistema gestor de bases de datos (S.G.B.D.) ha sido ya introducido, y su importancia destacada en todas las caractersticas que debe poseer una base de datos. Segn Silberschatz, podemos considerar un S.G.B.D. como un programa que proporciona la interfaz entre los datos de bajo nivel almacenados en la base de datos, y los programas de aplicacin y consultas hechos al sistema. Ya hemos indicado las caractersticas propias de una base de datos, la mayora de las cuales recae precisamente sobre el S.G.B.D. Para dejarlas ms patentes, las reunimos y ampliamos aqu: - Interactuar con el Sistema Operativo. Como se ha indicado, el S.G.B.D. no es ms que un programa. El Sistema Operativo es el programa principal que se encarga de controlar que el ordenador funciona bien, entre otras cosas permitiendo el acceso a los dispositivos de entrada y de salida, como el teclado, el ratn, el monitor, y los dispositivos de almacenamiento: el disco duro, las disqueteras, el CD-ROM, las cintas magnticas, etc. As, para asegurar que no pasan cosas raras, el nico que puede tocar estos dispositivos es el Sistema Operativo (S.O.). Dado que el S.G.B.D. necesita almacenar datos en el disco duro, p.ej., debe interactur con el S.O. para poder acceder al disco duro y que all se almacenen los datos que se quieren. Igualmente debe contactar con el S.O. siempre que desee recuperar algn dato de estos dispositivos. - Mantener la integridad. Como ya se ha dicho, debe mantener las restricciones de integridad propias de la aplicacin concreta que sea. P.ej., evitar que la edad de un cliente supere los 90 aos. - Mantener la seguridad. Evitar accesos fraudulentos a los datos, as como la extraccin de informacin codificada. - Permitir las copias de seguridad. Dado que un ordenador no es un sistema infalible, y puede

Introduccin a los Sistemas de Bases de Datos.

romperse por causas propias (fallo de un circuito), o ajenas (aumento de la tensin en la red elctrica), es posible que los datos almacenados por l lleguen a corromperse con la consiguiente prdida de informacin y los problemas que ello puede acarrear a la empresa. Para evitar estos desagradables resultados, es buena idea el efectuar una copia de los datos a un dispositivo auxiliar de almacenamiento, pensado precisamente para guardar fiel copia del contenido de la base de datos en un momento determinado. Si los datos originales se destruyen, bastar volcar la copia sobre el disco duro del ordenador central, con lo que lols datos volvern a tomar la misma forma que cuando se efectu la copia. De esta manera, para que la base de datos recupere la forma que tena en el momento en que qued destruda, bastar con efectuar los cambios que se hicieron en el tiempo transcurrido desde la copia de seguridad que se acaba de volcar. - Controlar la concurrencia. Como ya se explic anteriormente, debe permitirse el acceso simultneo a los datos por parte de varios usuarios, lo que conlleva numerosos problemas de coherencia y coordinacin. el S.G.B.D. debe controlar que la informacin representada por los datos al final de cada acceso de usuario siga siendo consistente. - Suministrar mecanismos que faciliten la interaccin con la base de datos. Estos mecanismos suelen venir dados en forma de lenguajes de manipulacin y definicin de datos. Adems, suministran indepencia de los datos, en el sentido de que, a pesar de la evolucin del esquema de los datos, las aplicaciones deben sufrir las mnimas modificaciones imprescindibles. P.ej., si las aplicaciones antiguas estn pensadas para trabajar sobre nmeros de telfono expresados mediante dgitos, qu ocurre si se decide cambiar todos llos nmeros a formato textual? En este caso, debe haber un mecanismo que oculte a las aplicaciones antiguas el nuevo formato de los nmeros de telfono, y le haga vez el formato antiguo; en definitiva, debe haber algo que suministre a las aplicaciones antiguas una visin ligeramente distinta de lo que hay realmente almacenado en la base de datos.

Usuarios de la base de datos. El administrador.


Hasta ahora, hemos entendido como usuarios a aquellos individuos que esperan obtener algn resultado de la base de datos. Sin embargo, tambin podemos considerar usuario a toda persona encargada del mantenimiento y puesta a punto de los datos. De esta forma, podemos dividir a los usuarios en dos grandes grupos: a) Administrador. Es aquella persona o conjunto de personas encargada (exclusivamente, en la mayora de los casos) del control global de la base de datos. Sus tareas son: - Definicin del esquema: Como se ha indicado, el esquema de una base de datos est compuesto por el tipo de fichas que almacena, el formato que toman cada una de ellas, as como sus caractersticas y reglas para ser rellenadas. El administrador es, pues, quien decide qu se va a almacenar, y cmo. La informacin del esquema debe ser almacenada como metadatos, o sea, informacin sobre el formato de los datos almacenados. - Definicin de la estructura de almacenamiento y de los mtodos de acceso. Indicamos anteriormente que el S.G.B.D. interactuaba con el S.O. para poder acceder a los datos guardados sobre los

10

Introduccin a los Sistemas de Bases de Datos.

dispositivos de almacenamiento, o sea en los ficheros. Pues bien, estos ficheros estn a su vez estructurados en base a unidades ms pequeas con el objetivo de facilitar al S.O. el acceso a los datos. Es tarea del administrador el decidir las caractersticas de estas unidades mnimas de almacenamiento a fin de agilizar la recuperacin de los datos, y de mejorar los accesos en funcin de las caractersticas propias de las consultas ms frecuentes por parte de los usuarios. Tambin en base a las consultas ms frecuentes, el administrador debe decidir sobre la necesidad de mantener estructuras de apoyo que hagan ms fcil la recuperacin de determinados datos. Cuando hablamos de estructuras de apoyo, nos referimos a los ndices que veamos en un punto anterior. Creando los ndics apropiados, la velocidad de determinadas consultas puede aumentar vertiginosamente, incrementando as la satisfaccin de los usuarios en el manejo de la base de datos. Por otro lado, veamos que los ndices son mantenidos automticamente por el sistema, lo que puede producir ralentizaciones ante algunas operaciones de insercin, eliminacin o modificacin de datos, sin que aparentemente haya motivo alguno. Adems, un ndice ocupa un espacio cuyo tamao depende del del fichero original, por lo que la creacin de excesivos ndices puede requerir una cantidad de memoria nada proporcional a los beneficios obtenidos de su utilizacin. - Modificacin del esquema y de la organizacin fsica. A medida que la empresa que utiliza la base de datos evoluciona para adecuarse a las condiciones cambiantes del mercado, es necesario adecuar dicha base de datos a las necesidades cambiantes que se producen. De esta forma, debe ser posible alterar el esquema de los datos, as como la forma de almacenamiento para hacer que las nuevas necesidades sean satisfechas de forma eficiente. Asimismo, es interesante que las aplicaciones antiguas sigan funcionando con un mnimo de modificaciones, por lo que es de desear que, a pesar de dichas modificaciones, las aplicaciones antiguas tengan una visin alterada de los datos, pero adecuada a su forma de funcionamiento. Por supuesto, estas visiones, o vistas, deben ser coherentes con los datos almacenados en el esquema nuevo, y no tergiversar el contenido de los datos. - Concesin de permisos y privilegios para el acceso a los datos. Asignacin de prioridades a los datos. Para gestionar la seguridad en la base de datos, hemos comentado la necesidad de que los datos dispongan de una serie de niveles de importancia, de manera que slo puedan ser accedidos por los usuarios con un privilegio superior o igual a dicho nivel. Pues bien, es el administrador quien se encarga de asignar dichos niveles y privilegios, en funcin de las caractersticas particulares de cada usuario. Asimismo, debe asignar inicialmente las claves de acceso a los usuarios, ya que cada uno de ellos slo puede acceder al sistema mediante una contrasea particular. - Especificacin de restricciones de integridad. Los datos almacenados en la base de datos guardan una relacin entre s, en funcin de las necesidades que pretenden cubrir, de manera que la informacin que se pueda extraer de ellos sea til y coherente. Esta coherencia viene determinada por un conjunto de reglas o restricciones que los datos deben poseer; p.ej. ningn cliente debe tener pendientes de pago facturas cuyo montante supere el crdito mximo permitido. El administrador debe indicar estas restricciones de integridad, as como modificarlas o flexibilizarlas a medida que evolucionan las necesidades de la empresa. A menudo, estas restricciones se suelen considerar incluso como parte integrante del esquema, con lo que tambin quedan reflejadas en el diccionario de datos. b) Otros usuarios. El resto del personal que interacta con la base de datos puede considerarse 11

Introduccin a los Sistemas de Bases de Datos.

simplemente como usuarios, aunque tambin podemos distinguir distintos tipos entre ellos: b.1) Programadores de aplicaciones. suelen formar parte del departamento de proceso de datos. Reciben peticiones de otros usuarios, en forma de necesidades de acceso a los datos, y se encargan de escribir los programas que satisfacen dichas necesidades. Normalmente estos programas estn escritos en un lenguaje de programacin convencional (pascal, Basic, C, etc.), en el que se insertan rdenes especiales que es capaz de comprender el S.G.B.D. De esta forma el S.G.B.D. suministra los datos, y el lenguaje convencional (tambin llamado anfitrin porque alberga las sentencias reconocidas por el S.G.B.D.) los procesa, presenta al usuario, modifica, etc. b.2) Usuarios directos. Son aquellos que interactan con la base de datos haciendo uso directamente del lenguaje que proporciona el S.G.B.D. En posteriores captulo estudiaremos el SQL como principal lenguaje de manipulacin y definicin de datos. El administrador debe tener cuidado con la prioridad que asigna a estos usuarios, ya que al tocar directamente sobre la base de datos, pueden alterar su estructura si disponen de contraseas de alta prioridad, o si por error se les ha suministrado una prioridad demasiado grande. b.3) Usuarios indirectos. Son aquellos que no saben nada de la base de datos, excepto que existe. Interaccionan con ella a travs de las aplicaciones desarrolladas por los programadores, y son incapaces de acceder a los datos directamente a travs del lenguaje del S.G.B.D. El administrador debe prestar especial atencin a que este tipo de usurios no acceda directamente a los datos por los problemas que su inexperiencia pueda acarrear.

Elementos de seguridad.
El administrador debe conocer en profundidad los elementos de seguridad que suministra el S.G.B.D. de que dispone, y sacar el mximo partido posible de ellos. En general, se pueden tener niveles de acceso clasificados por: - Las fichas o tuplas a que se tiene acceso. En una empresa grande y ampliamente informatizada, cada usuario debe poder acceder exclusivamente a los datos que competen a su tarea. El departamento de contabilidad no tiene porqu acceder a la informacin sobre reservas de alojamiento, aunque s a las peticiones de tintorera, para hacer los cargos correspondientes a cada cliente. A su vez, el recepcionista, sl acceder a las reservas efectuadas, y podr abrir una factura de alojamiento en la que se irn insertando por parte de cada seccin del hotel los cargos de los servicios prestados al cliente, pero no podr tener en ningn momento acceso a las nminas, ya que ello es responsabilidad de la habilitacin. De esta forma vemos que cada usuario slo debe tener acceso a un tipo de informacin, o lo que es lo mismo, a un tipo de fichas determinado. Por tanto, debe existir un mecanismo de seguridad que restrinja el mbito de acceso de cada usuario en funcin de sus competencias. - Las operaciones que se pueden realizar sobre las fichas o tuplas. Siguiendo con el caso anterior, la seccin de contabilidad tendr acceso a las facturas a clientes, pero no podr modificarlas, sino tan slo consultarlas a efectos contables para generar el balance de cada mes. Por otro lado, las diferentes secciones de cafetera, restaurante, tintorera, sauna, joyera, etc. s que deben poder acceder a las facturas de los clientes para realizar en ella los cargos pertinentes. Sin embargo, no podrn crear

12

Introduccin a los Sistemas de Bases de Datos.

facturas nuevas, si slo pueden atender a clientes que se alojen en el hotel. Por tanto, no slo es importante el acceder o no a los datos, sino tambin la forma en que este acceso se produce, en funcin de las caractersticas propias de la seccin: la habilitacin slo puede consultar facturas de clientes; la recepcin puede crear y modificar, as como cerrar una factura; la tintorera slo puede aadir cargos; la joyera puede crear y aadir cargos, etc. En general, las operaciones que se pueden efectuar sobre un tipo de fichas se agrupan en cuatro grandes bloques: Altas, Bajas, Modificaciones, y Consultas. - El acceso al diccionario de datos y a la estructura de la base de datos. Como se ha comentado anteriormente, los metadatos almacenados en el diccionario de datos y que almacenan informacin sobre la estructura de la base de datos, son gestionados, a su vez, como si de una base de datos especial se tratase. Sin embargo, dada su primordial importancia, su acceso debe estar muy restringido, ya que cualquier modificacin puede dar lugar a resultados desastrosos en la base de datos: prdida de informacin, corrupcin en los datos, falta de integridad, etc. Por ello, es necesaria la existencia de prioridades o privilegios especiales que slo permitan el acceso al personal que compone la administracin de la base de datos, que es el nico capacitado para modificar estos metadatos.

Lenguajes de bases de datos.


La interaccin del usuario con la base de datos debe efectuarse a travs de alguna tcnica que haga fcil la comunicacin, y que permita al usuario centrarse en el problema que desea solucionar, ms que en la forma de expresarlo con las tcnicas que se le suministran. La mejor forma de alcanzar este objetivo, es darle un lenguaje parecido al lenguaje natural, que le permita expresar de forma sencilla los requerimientos. en funcin de estos requerimientos, podemos tener, fundamentalmente dos tipos de lenguajes para comunicarnos con el S.G.B.D.: - Lenguaje de definicin de datos (LDD). Este lenguaje es utilizado en exclusiva por el administrador de la base de datos, ya que permite la construccin de frases o sentencias que le indican al S.G.B.D: las caractersticas particulares de la base de datos sobre la que se est trabajando, as como la creacin de nuevas bases de datos. La creacin de esquemas y su modificacin, la creacin y supresin de ndices, la especificacin de unidades de almacenamiento en los ficheros, as como la asignacin y privacin de prioridades se realizan a travs de este lenguaje. Adems permite la creacin y recuperacin de copias de seguridad, as como la importacin de datos desde sistemas antiguos, y la exportacin a nuevos sistemas que vayan a sustituir al actual. - Lenguaje de manipulacin de datos (LMD). El lenguaje de manipulacin de datos es el que usan los usuarios directos para efectuar sus operaciones sobre la base de datos. Como se indic, estas operaciones son bsicamente de insercin, eliminacin,modificacin y consulta de datos, aunque tambin se pueden introducir capacidades para crear visiones de los datos que faciliten otros accesos. Los usuarios directos interacciones con el S.G.B.D. a travs de este lenguaje, mediante una interfaz agradable y fcil de usar. Los programadores de aplicaciones emplean el LMD dentro de un lenguaje de programacin queles da potencia expresiva, o sea permite sacar cosas por pantalla de una forma agradabla, facilitar las operaciones de los usuarios indirectos, etc. Para ello, el LMD que emplean se extiende de diferentes formas para poderse integrar fcilmente en el lenguaje anfitrin, ya que ambos, LMD y lenguaje

13

Tipos de Bases de Datos.

anfitrin deben poderse comunicar adecuadamente para que las aplicaciones resultantes sean simples de programar y de utilizar.

Modelo relacional.
En este apartado tan slo daremos unas nociones iniciales sobre este modelo, ya que todo nuestro trabajo se basar en l, y ser estudiado con mucho mayor detalle en captulos posteriores. Este modelo intenta representar la base de datos como un conjunto de tablas. Aunque las tablas son un concepto simple e intuitivo, existe una correspondencia directa entre el concepto informtico de una tabla, y el concepto matemtico de relacin, lo cual es una gran ventaja, pues permite efectuar formalizaciones de una forma estricta mediante las herramientas matemticas asociadas, como pueda ser el lgebra relacional en el mbito de las consultas. Gracias a Dios, no ser necesario enfrentarnos con todos estos formalismos propios de los matemticos, sino que dispondremos de unas herramientas fciles de manejar que nos permitirn interactuar con la base de datos. Los conceptos bsicos del modelo relacional son: - Registro: Es algo as como cada ficha de un fichero convencional. - Tabla: Es un conjunto de fichas de un mismo tipo. Con estos dos conceptos es posible crear cualquier tipo de datos, y asociarlos entre s, sin las restricciones propias del modelo jerrquico o en red. P.ej., si necesitamos disear una base de datos para una agencia de alquiler de coches, necesitaremos una tabla en la que se guarde informacin sobre los coches, como puede verse en la figura.

14

Tipos de Bases de Datos.

De esta forma, vemos que cada tabla Marca Modelo Color Matrcula Situacin est compuesta por filas, tambin llamadas Amarillo MA-2663-BC En renta Lamborghi. Diablo 630 tuplas o registros, cada uno de los cuales MA-8870-BC Disponible Rojo F-40 Ferrari posee una serie de campos en los que se Blanco VD-870-GTH Disponible Decade Sbrro R. almacenan los datos bsicos. El esquema de Blanco ML-7890-B En renta De Tomaso Pantera una tabla nos indica los nombres de cada uno de los campos que contiene, as como el tipo KNIGHT En taller Negro Trans-Am Pontiac de informacin que debe contener. Marrn CA-5647-AB Disponible Austin M. S3'40 Una tabla es para nosotros un conjunto AD-768-TTY En renta Verde Destructor Jaguar de registros; por tanto, los registros no pueden Figura 7Ejemplo de tabla relacional. repetirse. Para poder acceder a un registro concreto, es necesario hacer una consulta a travs de algn campo que identifique a dicho registro, como puede ser p.ej. el nmero de la matrcula. A este campo especial que identifica cada registro se le llama clave del registro. La figura siguiente ilustra una tabla de clientes. En el modelo anterior disponamos de Apellidos Nombre D.N.I. Edad los conjuntos para asociar informacin entre s; 75836934 27 Gonzlez Aranda Javier cmo nos las apaamos para indicar ahora 28836746 43 Antonio Beato Apstol qu cliente se hace responsable de cada coche 82665358 36 Adriano Campos Ortega alquilado? Fcilmente, a travs de una nueva 83667228 35 Juan Ruz Rojo tabla que relaciona los clientes con los coches. Para ello dado que cada registro queda Figura 8Tabla de clientes de la agencia identificado por su clave, nos basta con incluir de alquiler de coches. en esta nueva tabla a las claves de ambas tablas, en lugar de todos sus campos. As, podemos obtener una nueva tabla de alquileres que contenga la matrcula del coche, y el D.N.I. del cliente, tal como se ve en la figura siguiente. En esta ltima tabla podemos observar varias cosas interesantes. Por un lado, un cliente se puede responsabilizar de ms de un coche, o sea, puede alquilar ms de un coche, pues vemos que Javier Gonzlez Aranda ha alquilado tanto el Lamborghini como el Jaguar. Pero, a su vez, ms de una persona puede hacerse cargo de un coche: Javier Gonzlez Aranda y Adriano Campos Ortega comparten el alquiler del Jaguar. De esta forma, el modelo relacional soluciona Matrcula D.N.I. el problema que se planteaba en el caso de las listas MA-2663-BC 75836934 de embarque mediante enlaces artificiosos, y lo ML-7890-B 83667228 soluciona de una manera intuitiva a travs de las tablas, y eliminando el concepto de conjunto. AD-768-TTY 75836934 Este mtodo de expresar los datos facilita AD-768-TTY 82665358 adems las consultas, que se realizan ahora a travs Figura 9Tabla que relaciona los de estas tablas especiales que relacionan a otras coches en renta con los clientes tablas. P.ej., si queremos saber los coches que ha que se responsabilizan de ellos. alquilado Gonzlez Aranda, basta con buscar su clave en la tabla de clientes (75836934), y a continuacin ver que matrculas tiene asociadas en la tabla de alquileres (MA-2663-BC, y AD-768-TTY); a continuacin, buscamos en la tabla de coches cuales 15

Tipos de Bases de Datos.

son los coches que poseen esas claves, y obtenemos como resultado: Lamborghini y Jaguar. Por otro lado, adems de los modelos propios de base de datos existentes en la realidad, existen los llamados modelos semnticos, que permiten expresar relaciones entre los datos, independientemente del tipo de base de datos que se emplee finalmente. Uno de estos modelos, el modelo Entidad-Relacin, que estudiaremos en el captulo siguiente, tiene grandes similitudes con el modelo relacional, siendo esta otra gran ventaja del modelo relacional, esto es, se pueden expresar las relaciones entre los datos a travs de diagramas fciles de comprender y de modificar, y, posteriormente, pasar el resultado a un esquema relacional.

16

El modelo relacional.

EL MODELO RELACIONAL
En captulos anteriores hemos estudiado que existen distintos modelos segn los cuales la informacin puede ser almacenada y relacionada entre s. Actualmente, para la mayora de las aplicaciones de gestin que utilizan bases de datos, el modelo ms empleado es el modelo relacional, por su gran versatilidad, potencia y por los formalismos matemticos sobre los que se basa. Este modelo permite representar la informacin del mundo real de una manera intuitiva, introduciendo conceptos cotidianos y fciles de entender por cualquier inexperto. Asimismo, mantiene informacin sobre las propias caractersticas de la base de datos (metadatos), que facilitan las modificaciones, disminuyendo los problemas ocasionados en las aplicaciones ya desarrolladas. Por otro lado, incorpora mecanismos de consulta muy potentes, totalmente independientes del S.G.B.D., e incluso de la organizacin fsica de los datos; el propio S.G.B.D. es el encargado de optimizar estas preguntas en formato estndar, a sus caractersticas propias de almacenamiento. El modelo relacional fue propuesto por E.F. Codd en los laboratorios de IBM en California. Se trata de un modelo lgico [Irene Luque Ruiz- Ed. Ra-ma], que establece una estructura sobre los datos, aunque posteriormente stos puedan ser almacenados de mltiples formas para aprovechar caractersticas fsicas concretas de la mquina sobre la que se implante la base de datos realmente. Es algo as como guardar unos libros en una biblioteca; dependiendo del nmero de salas de la biblioteca, del tamao y forma de cada una de ellas, su nmero de estanteras, y en definitiva, de las caractersticas fsicas del recinto, podremos disponer los libros de una forma u otra para hacer ms cmoda y fcil su consulta y acceso. Los libros son los mismos, pero pueden ubicarse de muy distintas formas. Vamos a estudiar entonces, las caractersticas concretas de este modelo de datos, sin entrar para nada en cmo los almacena fsicamente cada ordenador, o cada S.G.B.D.

Estructura general.
El nombre de modelo relacional viene de la estrecha relacin que existe entre el elemento bsico de este modelo, y el concepto matemtico de relacin. Podemos decir que una relacin R sobre los conjuntos D1, D2, .., Dn, se define como: R f D1 D2 ... Dn donde los conjuntos D1, D2, .., Dn pueden ser Nombre cualesquiera, e incluso estar repetidos. Juan Los conjuntos pueden ser Nombre Oficio Sueldo Antonio cualesquiera, aunque en el momento en que se - Juan Cocinero 100 Pedro Oficio Pedro Botones 700 trabaja con ordenadores, hay que imponer - Juan Cocinero 200 ciertas restricciones de discretizacin. - Pedro Cocinero 700 Cocinero Si nos fijamos en el dibujo adjunto, podemos ver que una de estas relaciones no es ms que una lista de lneas, donde cada lnea est dividida en trozos.
100 200 500 700 1200 Botones - Juan Cocinero 1200
Esto es una relacin.
Dado que se trata de un conjunto no puede haber elementos repetidos.

Sueldo

17

El modelo relacional.

Para observar bien el porqu ha surgido el mtodo relacional, pensemos en cmo almacenaramos las lneas de la lista anterior, si los ordenadores no existiesen. Para almacenar estas lneas, tendramos que emplear papel, de manera que en un folio escribiramos todas las lneas de la lista, empezando por la primera y continuando en el folio secuencialmente; si el folio se acaba, cogemos otro, y hacemos la misma operacin, de forma que, al final, la lista est escrita o almacenada en varios folios. Este mtodo, que es el ms directo, tiene el problema de qu ocurre cuando se desean introducir nuevas lneas. Inicialmente, la tarea parece fcil, pues nos basta con seguir escribiendo lneas tras la ltima lnea de la ltima pgina, e ir tomando nuevos folios a mediada que las pginas se vayan llenando. No obstante, este mtodo slo es adecuado si las lneas no estn ordenadas segn un criterio. Si las lneas ya estn ordenadas, y deseamos introducir una nueva, cmo lo hacemos?, escribiendo una lnea por enmedio con letra ms pequea?, o bien escribiendo de nuevo todas las lneas, pero esta vez con la que se desea insertar? Est claro que ninguna de estas posibilidades es una solucin factible. Otra posibilidad de registrar esas lneas es utilizando una ficha de cartn para cada una de ellas. Cada ficha de cartn ser parecida a las que el alumno rellena para el profesor de cada asignatura a la que asiste, con la variante de que en lugar de poner el nombre, apellidos, direccin, etc. del alumno, se pondr la informacin que nos interese guardar. de esta manera cada lnea queda almacenada en una ficha de cartn. Si se desea insertar una nueva ficha basta con rellenarla y meterla en su posicin adecuada. De la misma forma se puede proceder a la hora de eliminar alguna ficha. Pues bien, este ltimo mtodo es el Nombre: Juan que, a grandes rasgos, intenta utilizar el modelo Oficio: Cocinero relacional. El modelo relacional representa las Sueldo: 100 listas de lneas mediante registros o fichas cada Nombre: Pedro Oficio: Botones Nombre: Juan una de las cuales puede ser manejada Sueldo: 700Oficio: Cocinero individualmente y con independencia de las Sueldo: 200 dems. No obstante, a efectos de facilitar la Nombre: Pedro Oficio: Cocinero visualizacin, puede ser posible ver todas las Sueldo: 700 lneas juntas como si de una lista se tratase. Nombre: Juan Oficio: Cocinero Ver figura. Sueldo: 1200 De esta manera, tendremos varios tipos de fichas: fichas de clientes, de proveedores, de facturas, de albaranes, de reservas, de empleados, de apuntes contables, etc., cada una de las cuales podemos almacenar en un cajn o en un fichero independiente. De cada tipo de ficha tendremos un montn de fichas rellenas: 100 200 clientes, 4 5 proveedores, miles de facturas, etc. Por tanto, es interesante distinguir entre un tipo de ficha, que no hace referencia a ninguna ficha rellena en concreto (p.ej. una ficha de clientes), y una ficha concreta, rellena con unos datos concretos (la ficha de Juan el Cocinero). Pues bien, el modelo relacional plasma en un ordenador este mismo esquema, aprovechando las enormes caractersticas de computacin y almacenamiento de las mquinas actuales.

Concepto de tabla. Dominios y atributos.

18

El modelo relacional.

Una tabla en el modelo relacional viene a ser como una de las listas descritas anteriormente. Una tabla o relacin es una matriz rectangular que almacena lneas con una estructura concreta: La primera lnea de una tabla, es una cabecera que indica el nombre de cada columna. O sea, cada columna tiene asignado un nombre nico, e indica que los temes almacenados en esa columna deben pertenecer a un conjunto de valores concreto: Nmeros, Letras, Frases, etc. Cada lnea (excepto la primera) recibe el nombre de tupla, y almacena temes concretos para cada columna. Todas las filas deben ser diferentes entre s. El orden de las filas y de las columnas carece de importancia a efectos del S.G.B.D. Este hecho es el que verdaderamente diferencia las tablas relacionales del concepto matemtico de relacin, en el que el orden de las columnas es fundamental. En la figura aparece una tabla de PLATOS Platos. Toda tabla debe poseer al menos la Cdigo Nombre Precio Men primera lnea, que identifica el nombre de la 15 Solomillo a la pimienta 1000 No columna. En este caso, nuestra tabla o relacin 23 Fondue Nechatel 1500 No contiene las columnas Cdigo, Nombre, Precio y Men (que indica si ese plato 17 Migas con chocolate 850 S pertenece o no a las opciones del men del 34 Ajo blanco con uvas 850 S da). 12 Paella valenciana 1100 S El grado de esta tabla es el nmero de 21 Mono a la cantonesa 7500 No campos que posee, en nuestro caso 4. La 07 Sopa de aleta de tiburn 525 S cardinalidad es el nmero de tuplas concretas que almacena: 7. Ntese que el grado de una tabla es independiente del momento en que observemos la tabla (el nmero de columnas es invariable, y queda definido en el momento en que se crea la tabla), mientras que la cardinalidad depende de la situacin real que represente la tabla y puede variar en el tiempo; p.ej., la lista de platos puede cambiar todos los meses, o segn la estacin del ao, para adecuarse a los gustos propios de cada una de ellas. La primera fila de una tabla es la ms importante, ya que nos da su estructura. Esta columna identifica los nombres de campo o atributos de que consta cada tabla. En otras palabras, cada tupla est formada por un conjunto de informacin estructurada en elementos ms simples llamados atributos. El nombre del atributo debe describir el significado de la informacin que representa. En la tabla Platos, el atributo Precio tendr como cometido almacenar el valor en pesetas con el que ese plato se vende al pblico. A menudo suele ser necesario aadir una pequea descripcin a cada atributo que aclare su naturaleza: el precio lleva I.V.A. o no? En el atributo Men no est claro que es lo que se almacena. Una descripcin del mismo aclarara ms las cosas: Indica si el cliente puede pedir este plato o no en el men del da. Por otro lado, est claro que un atributo en una tupla no puede tomar un valor cualquiera, p.ej., no tiene sentido que en el precio del Ajo blanco con uvas se guarde una palabra como pueda ser Gerente. Para evitar este tipo de situaciones anmalas en la medida de lo posible, obligaremos a que 19

El modelo relacional.

cada atributo slo pueda tomar los valores pertenecientes a un conjunto de valores previamente establecido, o sea, un atributo tiene asociado un dominio de valores. En el caso anterior se tiene que el atributo Precio slo puede tomar valores numricos, mientras que el Nombre slo puede contener frases textuales. Los dominios a que puede pertenecer un atributo, suelen depender de los que proporcione el S.G.B.D. que empleemos. Suelen ser comunes dominios como: Texto, Nmero entero, Nmero S/No etc. decimal, Fecha, Hora, S/No, Por otro lado, un dominio como pueda ser Nmero entero entero, es un dominio cuyo conjunto de valores es infinito, y dado que trabajamos con ordenadores, es imprescindible poner un lmite que permita almacenar un valor concreto debido a las limitaciones de memoria, y sobre todo al hecho de que toda tupla debe poseer el mismo tamao. Tomemos como ejemplo el Nombre del Plato, que es evidentemente del tipo Texto Texto; las limitaciones del ordenador nos impiden almacenar nombres ilimitadamente largos, como puedan ser Magret de pato al vinagre de grosella con guarnicin de higos malagueos al vino moscatel Pedro Ximnez. Es necesario, por tanto, establecer una cota al nmero mximo de letras que podemos teclear, por lo que el dominio del atributo Nombre puede ser Texto caracteres de 20 caracteres. As, la estructura completa de la tabla Platos quedara como sigue: Platos: Nmero entero. Cdigo. Nmero con el que el plato aparece en la carta. Texto de 20 caracteres. Nombre. Nombre del plato. Precio. Nmero decimal simple. Precio del plato. no incluye I.V.A. ni descuentos, etc. Men. S/No. Indica si ese plato puede ser consumido dentro del precio del men del da. La informacin anterior son los metadatos que definen la estructura de la tabla. Algunos S.G.B.D. simplifican la tarea de indicar el dominio de un atributo, asignando un dominio por defecto, o estableciendo una jerarqua de dominios. P.ej., Microsoft Access toma como dominio por defecto el Texto Texto, y en concreto de 50 caracteres caracteres. Se pueden cambiar los dominios a uno cualquiera dentro de las siguientes posibilidades: Texto, Numrico, Fecha/Hora, Moneda, S/No, Memo, Autonumrico, Objeto OLE, o Hipervnculo Hipervnculo. A su vez, cada uno de estos tipos se puede dividir en otras clases, una de las cuales es la que se toma por defecto; p.ej. el tipo Numrico tiene a su vez los subtipos: Byte, Entero, Entero largo, Simple y Doble. Si slo escogemos Numrico Numrico, por defecto se toma el subtipo Entero largo largo, que permite guardar nmeros enteros (sin parte decimal) desde el -2.147.483.648 hasta el 2.147.483.647. Si el subtipo por defecto no es el que se quiere puede especificarse otro. Independientemente del dominio a que pertenezca un atributo, cualquier atributo puede tomar un valor especial que designa la ausencia de dato; es el valor NULO (en ingls NULL o NIL). Cuando, 20

El modelo relacional.

por cualquier circunstancia, se desconoce el valor de un atributo, como p.ej. la direccin de un cliente, o bien ese atributo carece de sentido (el atributo Telfono de un empleado que no tiene telfono en su casa), podemos asociar a dicho atributo este valor especial, comn a cualquier dominio. El equivalente en nuestro smil de las fichas de cartn sera dejar ese hueco en blanco. Hay que hacer notar la diferencia entre el valor NULO, y el valor espacios en blanco; el ordenador considera un espacio en blanco como cualquier otro carcter, por lo que a efectos computacionales, la introduccin de caracteres espacios en blanco es distinta al concepto de ausencia de informacin. Los espacios en blanco s son datos, y pertenecen al dominio Texto Texto.

Restricciones.
En el apartado anterior observamos que cada atributo est obligado a tomar un valor perteneciente a un dominio concreto, siendo imposible el que guarde otro distinto. Esto supone una restriccin sobre los atributos Otras restricciones ya comentadas son: La imposibilidad de repetir tuplas en una misma tabla. La imposibilidad de establecer un orden en las tuplas, aunque algunos S.G.B.D. relajen un poco esta restriccin. En este apartado vamos a introducir otras restricciones ms importantes que posee el modelo relacional, as como los conceptos implicados. Por ltimo veremos las posibilidades que tiene el usuario para definir restricciones en funcin de las caractersticas propias de su trabajo.

Reglas fundamentales. Claves.


El modelo relacional intenta representar con una tabla a un tipo de objetos de la vida real, como puedan ser Empleados, Clientes, etc., e incluso considera las relaciones entre estos objetos como objetos en s mismos. Para ello, designa cada tipo de objetos por un conjunto de atributos que son los que darn la forma particular a cada objeto. Volvamos al caso de nuestra tabla de Platos. Para representar a un Plato, hemos escogido los atributos: Cdigo, Nombre, Precio y Men. Un plato concreto puede ser p.ej., (17, Migas con chocolate, 850, S). Este plato concreto, como cualquier otro objeto distinguible del mundo real posee unas caractersticas que lo distinguen de los dems de su mismo tipo, tal y como lo hace el ADN de una persona. El ADN conforma la esencia o clave de toda persona. Es ms, todo objeto posee algo concreto que lo hace diferente; incluso puede poseer ms de una cosa por la que se le puede diferenciar: una persona puede distinguirse tambin por su nacionalidad y su D.N.I., lo que conforma otra clave de esa persona. Como en una tabla, las tuplas pueden estar en cualquier orden, no podemos referenciar una tupla concreta mediante su posicin entre las dems, y necesitamos alguna forma de seleccionar una tupla concreta. La forma de hacerlo es mediante una clave. Una clave es un atributo o conjunto de atributos cuyo valor es nico y diferente para cada tupla. 21

El modelo relacional.

Cada tabla puede poseer ms de una clave. P.ej., en nuestro caso de la tabla Platos, la clave puede ser tanto el atributo Cdigo, como el atributo Nombre. Tenemos dos claves potenciales, tambin llamadas claves candidatas . De entre todas las claves candidatas, el administrador, cuando define la tabla, debe decidir cul de ellas va a ser la clave principal o clave primaria, mientras que el resto de las claves pasan a denominarse claves alternativas o claves alternas . La distincin entre clave principal y claves alternativas, es slo a efectos de acceso interno a los datos, y para que el S.G.B.D. adopte ciertas decisiones sobre cmo almacenar esos datos en los sistemas de almacenamiento masivos. Por otro lado, la clave de una tabla debe ser propia, o sea, ninguno de los atributos que la forman debe ser superfluo. Siguiendo con la tabla de Platos , si tomamos el grupo de atributos (Cdigo, Precio), vemos que posee todas las caractersticas necesarias para considerarlo como una clave candidata. sin embargo, el atributo Cdigo por s slo ya es una clave candidata, con lo cual el hecho de aadir el atributo Precio y crear una clave nueva, no aporta informacin de identificacin, ya que el resto de los atributos (el Cdigo en este caso) identifica por s slo a una tupla de la tabla de Platos. As pues, el atributo Precio es superfluo en el grupo de atributos ( Cdigo, Precio), con lo que dicho grupo no es una clave candidata. Para distinguir cuando un grupo de atributos es clave o no, basta con probar con ir eliminando uno a uno cada uno de los atributos del grupo; si los atributos restantes siguen poseyendo las propiedades de clave, el atributo eliminado es superfluo, por lo que el grupo de atributos de partida no es clave propia. Ms adelante veremos como esta situacin se deriva del hecho de que el valor del atributo que sobra (el superfluo) viene determinado por los valores de los otros atributos (la clave propia), en lo que se ha dado en llamar dependencia funcional. El concepto de clave es tan importante, que da lugar a una serie de restricciones fundamentales sobre la base de datos. Son la regla de identificacin nica y la regla de integridad referencial. Regla de identificacin nica. Esta restriccin ya fue estudiada en el tema de los diagramas E-R. En esencia, los conceptos de clave de una entidad en el diagrama E-R, y de clave de una tabla coinciden plenamente. As pues, al igual que en aquel momento, podemos enunciar esta regla de la misma forma: En ninguna tupla de una tabla, ninguno de los atributos que formen parte de la clave primaria de una relacin podr tomar un valor nulo. El valor de la clave ser nico para cada tupla de la tabla. Esta regla nos dice que una vez escogida la clave primaria de una tabla, y dado que ninguno de los atributos que la componen es superfluo, no podemos dejar de lado el valor de ninguno de ellos para identificar unvocamente a una tupla. O sea, el que todos los atributos de la tabla sean necesarios est en contradiccin con que alguno de ellos pueda carecer de valor. Ningn atributo de la clave puede ser vaco porque en tal caso no sera una caracterstica identificativa propia del objeto a que pertenece.

22

También podría gustarte