introducciona a los sistemas de base de datos

Upload: shabedekam

Post on 31-May-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    1/22

    Introduccin a los Sistemas de Bases de Datos.

    1

    INTRODUCCIN A LOS SISTEMAS DEBASES 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, estamoshablando de un texto, un nmero o un conjunto arbitrariamente grande de ambos. En el momento enque hablamos de informacin, nos referimos a datos que pueden ser relacionados entre s, de formams o menos inteligente, con el objetivo de sacar alguna conclusin que nos permita tomar decisionesimportantes 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 datospara extraer informacin. Cmo extraer informacin de los datos? Hay muchas formas: obtenerestadsticas 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 datossobre los clientes, los paquetes de viajes, las reservas, informacin estadstica, etc. segn la informacinque se desee obtener.

    Tradicionalmente, antes del uso de ordenadores, la informacin se extraa tras un minuciosoexamen de los datos almacenados en fichas de cartn que se guardaban en los cajones de grandesficheros en una oficina, lo cual era muy costoso debido al tiempo requerido, o bien a la poca exactitudde los resultados obtenidos, que haca tomar decisiones poco acertadas.

    Con la llegada de los ordenadores, y los dispositivos de almacenamiento electrnico, discosduros, tambores magnticos, fichas perforadas, cintas magnticas, etc., aparece el concepto de ficheroelectrnico. 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 deacceder), 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 extraeruna determinada informacin, es necesario consultar ficheros de distinto tipo: ficheros de clientes, depedidos, de proveedores, de ofertas, de facturas, de albaranes, etc. P.ej., para realizar un pedido decomestibles en un hotel, sera necesario consultar un fichero de existencias o stock, y el fichero deproveedores, realizar un pedido, y dejar constancia del mismo en el fichero de pedidos, para que, unavez 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. Noobstante, a medida que pas el tiempo, se observ que la informacin extrada de estos ficheros eraa menudo contradictoria y propensa a errores de coordinacin (incoherentes): aparecen albaranes connmeros de clientes que no existen en el fichero de clientes, cada vez que es necesario indicar unproveedor en la ficha de pedidos hay que poner su nombre y direccin, con lo cual un mismoproveedor puede aparecer con varias direcciones distintas por error, etc.

    Para solucionar este problema, interviene de nuevo la capacidad de los ordenadores para hacer

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    2/22

    Introduccin a los Sistemas de Bases de Datos.

    2

    rpidamente muchas cosas simples. Se opt por hacer que el ordenador controlase la concordanciaentre los datos, y para ello se dio a los datos una estructura distinta, ya no basada en ficheros comotales, sino basada en listas o tablas de fichas (llamadas tuplas o lneas), y en cada una de las cuales nose encontraba toda la informacin, sino que era necesario relacionar datos de varias tablas para obtenerla informacin deseada. Aparecen as las bases de datos.

    La evolucin de la informtica ha pasado por numerosas formas de abordar los problemasmediante programas, en funcin de la potencia de las mquinas en cada poca, y de la experiencia delos informticos que ha ido aumentando a lo largo de los aos. De esta forma, aparecieron las basesde datos jerrquicas y en red, cuyas caractersticas veremos ms adelante. Posteriormente las basesde 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 operacionesque permite realizar, as como su correctitud y completitud, y definen claramente la forma en que debenabordarse los problemas.

    Actualmente, las bases de datos relacionales son las ms usadas a nivel profesional, aunquepara aplicaciones avanzadas y en los ambientes acadmicos tambin tienen bastante importancia lasbases de datos orientadas a objetos (especialmente para trabajos sobre Internet), y las bases de datosdeductivas (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 almacenargrandes cmulos de informacin. stos pueden emplearse en controlar que los datos existentessean consistentes entre s, y que no haya informacin contradictoria entre los datosalmacenados.

    Por otro lado, es el usuario quien tiene que decidir qu se almacena en la base de datosy 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 queforma se almacenan los datos: si un nmero de telfono se almacenar como un nmero, ocomo una tira de letras (lo cual permitira guardar el guin que separa el prefijo del nmero ens), etc. Como veremos, existen numerosas reglas que el diseador de bases de datos debetener en cuenta a la hora de realizar un diseo eficiente y depurado. Evitar redundancias (datoso informacin repetida) en los datos almacenados es un objetivo prioritario ya que con ello seconsigue:

    a) No desperdiciar capacidad de almacenamiento (cinta, disco, etc.).b) Evitar la extraccin de una misma informacin por dos caminos distintos, con lo quela informacin extrada puede ser contradictoria.

    - Facilitar el acceso a los datos.En los sistemas antiguos, los datos almacenados en ficheros electrnicos slo podan

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    3/22

    Introduccin a los Sistemas de Bases de Datos.

    3

    ser accedidos a travs de programas de ordenador que realizaban alguna tarea especfica muyconcreta. Para cada tipo de informacin que se necesitaba, era necesario crear un programaque la extrajera de los datos de los ficheros; de esta manera, si un empleado de contabilidaddeseaba saber los clientes de Ronda que haban comprado ms de un milln de pesetas en elao 1.996, deba presentar dicha necesidad al departamento de proceso de datos, que debacrear un programa para atender tal requerimiento.

    Evidentemente, esta forma de trabajo es lenta, y tiene un cuello de botella en el centrode 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 laestructura de los datos (p.ej., se decide que en lugar de almacenar al completo el nombre yapellidos de un cliente, se guardar por un lado el nombre, y por otro los apellidos), algunosde los programas ya hechos no servirn, porque fueron creados en base a una estructuradeterminada, 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 Basesde Datos (S.G.B.D.), cuyas mltiples funciones iremos viendo a lo largo de la asignatura. Unade estas funciones es la de suministrar un lenguaje que permita consultar fcilmente la base dedatos sin necesidad de hacer un programa para cada consulta; bastar con formular la consultasegn este lenguaje simple, para obtener un resultado ms o menos inmediato fruto de lasgestiones 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 mltiplestablas o en mltiples ficheros; incluso puede haber varias bases de datos de cuyo conjunto seanecesario extraer informacin. Es ms, cada base de datos puede estar creada con un sistemadistinto (es algo as como si en cada base de datos la ficha de cartn que guarda los datos deun 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 deaplicaciones complejas.- Permitir el acceso concurrente.

    Un ordenador es una mquina que slo es capaz de hacer una cosa cada vez: leer dememoria, 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, quizsaparentemente 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 noen un programa de reserva de billetes de avin de una compaa determinada. En este caso losdatos sobre reservas se almacenan una sola vez en un ordenador central, que gestiona todaslas operaciones efectuadas sobre cada terminal de usuario.

    As, cada usuario podr efectuar peticiones sobre el ordenador central en el momentoen que lo necesite, y la central deber responderle en un tiempo prudencial (no debe haceresperar innecesariamente). Dado que varias personas trabajan a la vez, es posible que elordenador central reciba peticiones de acceso sobre los datos de forma simultnea: es lo que

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    4/22

    Introduccin a los Sistemas de Bases de Datos.

    4

    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 tomary lo que debe hacer sobre ella: consultar un dato de la misma, modificar algn campo, destruirla 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. Sinembargo, para dar la sensacin de que el escribiente atiende a todo el mundo por igual, estehace uso de una tcnica llamada tiempo compartido, o sea, reparte cada minuto de su tiempoen 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, mientrasque 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 elconcepto de transaccin. Una transaccin es un conjunto de operaciones sobre los datos quedebe ser tratada como una nica operacin: o se hace entera, o no se hace. Un ejemplo detransaccin puede ser: Incrementar en un 2'8% el crdito mximo dado a cada cliente. Sitenemos varios miles de clientes, sta es una operacin que puede durar bastante tiempo, ymientras se produce puede que sea necesario atender otras peticiones. Por la estructura propiade la transaccin (o se ejecuta al completo, o no se hace nada), es necesario hacer uso decopias de cada ficha de cliente afectado (de manera que si se produce algn problema, sedestruyen todas las copias, pero los originales quedan intactos). Qu ocurre si mientras segestionan las copias de las fichas aparece una peticin de cambiar el crdito mximo del clienteBar 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 resultadofinal debe ser consistente, y debe informar al usuario afectado si se ha producido algn erroren 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 hallabanfuera del alcance de la mayora de los usuarios, y slo podan tener acceso algunosprivilegiados. Este mtodo de seguridad tomaba muchas formas, segn el grado de seguridadcon que se quera dotar a esos datos: puertas con cerrojo, tarjetas magnticas, guardas deseguridad con porras disuasorias, e incluso encriptacin de los datos ms importantes, al mspuro estilo del agente 007.

    Cuando se trabaja con ficheros electrnicos, el ordenador que los almacena, como seindic en el apartado anterior, suele recibir peticiones de otros terminales, con lo que el accesoa los datos no est restringido slo a los que tocan el ordenador directamente, pudiendo serutilizado desde un terminal remoto situado, posiblemente, en cualquier parte del mundo. Portanto los mtodos de seguridad tradicionales no son suficientes (aunque siguen siendonecesarios con objeto de, p.ej., evitar la destruccin malintencionada del ordenador central porparte de algn saboteador industrial, o por algn hecho fortuito), y es necesario recurrir amedios electrnicos de proteccin que impidan acceder a los datos ms importantes, excepto

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    5/22

    Introduccin a los Sistemas de Bases de Datos.

    5

    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 losdatos de nivel inferior o igual a su prioridad. Adems, existe un registro electrnico que tomanota de los accesos a los datos de mayor nivel, dejando as constancia de la fecha, hora yusuario 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 regularmentepor 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 lacapacidad de los ordenadores para procesar la informacin.

    Los datos deben poseer unas caractersticas determinadas en funcin de lo que sepretende hacer con ellos, y del rea de trabajo en que se desarrolla la empresa. Nos referimosa caractersticas que hacen que los datos almacenados representen una informacin coherentepara 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 Nde 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 elfichero de proveedores, o que haya una reserva de viaje en un vuelo que no existe, o inclusoque 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 basede datos, permitiendo, eso s, en los casos en que sea necesario, una situacin momentnea defalta de integridad, como p.ej. insertar una reserva por parte de un cliente inexistente, siemprey 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. Dehecho, 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 deun perodo de tiempo, a menudo de varios aos. Ms claramente, el trmino base de datos se refierea una coleccin de datos gestionada por un Sistema Gestor de Bases de Datos, S.G.B.D., osimplemente 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 alos programas para acceder a estos datos, aunque no deja claro si son slo los programascomponentes del S.G.B.D., o incluye tambin a los programas de aplicacin, hecho que, otros autores,

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    6/22

    Introduccin a los Sistemas de Bases de Datos.

    6

    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 nuevasbases 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 convenienteposible.- Debe permitir el almacenamiento de enormes cantidades de datos (miles de millones decaracteres), sin que el usuario perciba una degradacin en cuanto al rendimiento global delsistema.- Debe permitir la gestin segura de los datos, con respecto a accesos no autorizados, y aaccidentes producidos por los dispositivos mecnicos o electrnicos que soportan los datosalmacenados.- Debe permitir el acceso simultneo por parte de varios usuarios, impidiendo adems, quedichos accesos concurrentes den lugar a datos corruptos o inconsistentes.- Debe suministrar independencia fsica de los datos, que asegure que, sea cual sea laestructura de los datos en los dispositivos electromecnicos de almacenamiento, el usuario ylas aplicaciones los percibirn siempre de manera uniforme y til.

    Estas caractersticas dan lugar a otra definicin de base de datos, quizs ms orientada a lamoda actual en informtica: el diseo orientado a objetos, que consiste en hacer programas viendo elmundo 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 datospermanentes, y accesibles para usuarios concurrentes. Esta definicin lleva implcito el concepto deS.G.B.D., ya que es ste quien se debe encargar de almacenar los datos (y por tanto de hacerlospermanentes y no voltiles), de gestionar su integridad (y por tanto de que sean coherentes), y decontrolar a los mltiples usuarios (permitiendo as la concurrencia).

    La forma en que las distintas bases de datos comerciales y acadmicas abordan estascaractersticas difieren enormemente, no slo por las tcnicas utilizadas sino tambin por lasaproximaciones o paradigmas con que se han desarrollado. Aunque en el tema 2 haremos un breveestudio de los tipos de bases de datos, nos centraremos exclusivamente en el tipo ms extendido: lasbases 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 parasuministrar poderosas herramientas que hacen fcil su gestin. De hecho, todas las caractersticas quehemos visto que debe poseer un S.G.B.D., son suministradas a travs de entornos e interfacesamigables y comprensibles que permiten un rpido aprendizaje de todas las funciones propias de unabase de datos.

    En contraposicin, otro tipo de bases de datos, como las Orientadas a objetos, requieren quecasi todas las funciones de creacin de base de datos, manipulacin, etc., se efecten a travs deprogramas, lo cual requiere un profundo conocimiento de las tcnicas de programacin, impropio de

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    7/22

    Introduccin a los Sistemas de Bases de Datos.

    7

    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 debeenfrentarse 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 deque 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 buenfuncionamiento del sistema.

    Ahora vamos a desmenuzar un poco ms el concepto de base de datos, y vamos describir suscomponentes 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 noest tan claro es la forma en que estos datos se deben disponer, qu datos se deben almacenar, y cmolos debe entender la mquina.

    La disposicin de los datos depende del mbito de aplicacin concreto en que se enmarquela base de datos. No es lo mismo una base de datos que almacene un dibujo vectorial de monumentoshistricos que una base de datos para almacenar las reservas de clientes en un hotel. Lo que varafundamentalmente en uno y otro caso, es la forma en que los datos se relacionan entre s, y el tipo deaccesos 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 labase 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 agenciasde 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 agenciasordenadas por nombre. Qu ocurre si queremos acceder a todas las agencias de Egipto paramandarles una carta felicitndolas por el ao nuevo musulmn?. Resulta inaceptable que miremos unapor 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 fichascontienen slo dos campos: Pas de la agencia, y Nombre de la agencia. Las fichas de este ficheroestarn 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 estefichero auxiliar ordenado por pas, y de ah podemos averiguar directamente cules son los nombresde las agencias de Egipto. A continuacin nos vamos al fichero principal, accediendo slo a las fichascuyos nombres hemos extrado anteriormente del auxiliar y de estas extraemos la direccin, lo quepermite, finalmente, el envo de las cartas. El fichero auxiliar es lo que se llama un ndice del fichero

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    8/22

    Introduccin a los Sistemas de Bases de Datos.

    8

    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 tenerque escribir explcitamente una ficha auxiliar cada vez que se inserta una nueva agencia en el ficheroprincipal. De esta forma se obtiene una gran eficiencia en las consultas, sin que el usuario tenga quetrabajar ms: el ordenador trabaja por nosotros.

    Pues bien, este fichero aparte, creado con el nico objetivo de facilitar el acceso a lainformacin, tambin lo consideramos datos, aunque deban ser gestionados automticamente, e inclusoalgunos 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 menudoocurre que en una base de datos se almacenan las facturas con una antigedad inferior a x aos. Elnmero de aos que se desea almacenar una factura electrnicamente puede ser una decisin crucialdependiendo de la capacidad de almacenamiento de nuestra mquina y del volumen de facturas quese expidan anualmente.

    Adems, si casi no se necesita acceder a dicha informacin histrica, puede ser ms interesantedestruir electrnicamente esa informacin, y almacenarla exclusivamente en papel, con lo que el ahorrode espacio en disco puede contrarrestar el esfuerzo de hacer las consultas manualmente.

    Contrariamente, cuando se crea la base de datos, pueden parecer innecesarios ciertos datosde 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 interesarnospromocionarlo slo a aquellos clientes menores de 35 aos, con lo que nos damos cuenta de quehabra sido buena idea almacenar la fecha de nacimiento. Aunque el S.G.B.D. nos permite modificarla estructura de la base de datos para almacenar este nuevo campo, introducirlo para todos los clienteses una tarea ardua y fatigosa.

    Por ltimo, tambin es interesante, por cuestiones de seguridad y aprovechamiento de losrecursos del ordenador, decidir en qu formato se van a almacenar los datos: si se van a almacenarencriptados para que nadie los pueda copiar, o si se van a codificar o a comprimir de alguna formapara 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 lanecesaria siguiendo los mtodos convencionales de almacenamiento.

    Metadatos.

    La evolucin de las bases de datos, ha hecho que los informticos se den cuenta dedeterminados 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 desechaporque se compra un sistema mejor, o se instala una nueva base de datos, la estructura de la base dedatos (o sea, los datos que se deciden almacenar, y la estructura con que se almacenan) cambia a

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    9/22

    Introduccin a los Sistemas de Bases de Datos.

    9

    medida que cambian las necesidades sobre la informacin a obtener de la base de datos, de maneraque puede ser necesario introducir nuevas fichas, nuevos campos en fichas ya existentes, eliminarcampos, modificar lo que se almacena en determinados campos, e incluso reestructurar la base dedatos entera, creando ficheros de apoyo, etc.Dado que la base de datos que solucione unas necesidades concretas puede adoptar muchasformas posibles, es muy interesante el poseer algn lugar que indique al personal encargado demantener la base de datos, cul es el objetivo de cada dato particular almacenado en la base, as comoen qu aplicaciones es utilizado, y con qu propsito, si es un dato fundamental, o si puede ser omitidopor el que introduce los datos, etc.

    De esta forma, antes de modificar el esquema o estructura de la base de datos, el departamentode proceso de datos debe consultar esta informacin sobre los datos de la base, con cuidado para nocometer 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 llamanmetadatos. Es ms, estos metadatos se almacenan como otra base de datos propiamente dicha, ypuede 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 importanciadestacada en todas las caractersticas que debe poseer una base de datos.

    Segn Silberschatz, podemos considerar un S.G.B.D. como un programa que proporcionala interfaz entre los datos de bajo nivel almacenados en la base de datos, y los programas de aplicaciny consultas hechos al sistema.

    Ya hemos indicado las caractersticas propias de una base de datos, la mayora de las cualesrecae 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 unprograma. El Sistema Operativo es el programa principal que se encarga de controlar que elordenador funciona bien, entre otras cosas permitiendo el acceso a los dispositivos de entraday de salida, como el teclado, el ratn, el monitor, y los dispositivos de almacenamiento: el discoduro, las disqueteras, el CD-ROM, las cintas magnticas, etc.

    As, para asegurar que no pasan cosas raras, el nico que puede tocar estosdispositivos es el Sistema Operativo (S.O.). Dado que el S.G.B.D. necesita almacenar datosen 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 quedesee recuperar algn dato de estos dispositivos.- Mantener la integridad. Como ya se ha dicho, debe mantener las restricciones de integridadpropias de la aplicacin concreta que sea. P.ej., evitar que la edad de un cliente supere los 90aos.- Mantener la seguridad. Evitar accesos fraudulentos a los datos, as como la extraccin deinformacin codificada.- Permitir las copias de seguridad. Dado que un ordenador no es un sistema infalible, y puede

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    10/22

    Introduccin a los Sistemas de Bases de Datos.

    10

    romperse por causas propias (fallo de un circuito), o ajenas (aumento de la tensin en la redelctrica), es posible que los datos almacenados por l lleguen a corromperse con laconsiguiente 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 losdatos a un dispositivo auxiliar de almacenamiento, pensado precisamente para guardar fielcopia del contenido de la base de datos en un momento determinado. Si los datos originalesse destruyen, bastar volcar la copia sobre el disco duro del ordenador central, con lo que lolsdatos volvern a tomar la misma forma que cuando se efectu la copia. De esta manera, paraque 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 deseguridad que se acaba de volcar.- Controlar la concurrencia. Como ya se explic anteriormente, debe permitirse el accesosimultneo a los datos por parte de varios usuarios, lo que conlleva numerosos problemas decoherencia y coordinacin. el S.G.B.D. debe controlar que la informacin representada porlos datos al final de cada acceso de usuario siga siendo consistente.- Suministrar mecanismos que faciliten la interaccin con la base de datos. Estos mecanismossuelen 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 esquemade los datos, las aplicaciones deben sufrir las mnimas modificaciones imprescindibles. P.ej.,si las aplicaciones antiguas estn pensadas para trabajar sobre nmeros de telfono expresadosmediante dgitos, qu ocurre si se decide cambiar todos llos nmeros a formato textual? Eneste caso, debe haber un mecanismo que oculte a las aplicaciones antiguas el nuevo formatode los nmeros de telfono, y le haga vez el formato antiguo; en definitiva, debe haber algo quesuministre a las aplicaciones antiguas una visin ligeramente distinta de lo que hay realmentealmacenado en la base de datos.

    Usuarios de la base de datos. El administrador.

    Hasta ahora, hemos entendido como usuarios a aquellos individuos que esperanobtener algn resultado de la base de datos. Sin embargo, tambin podemos considerar usuario a todapersona encargada del mantenimiento y puesta a punto de los datos. De esta forma, podemos dividira los usuarios en dos grandes grupos:

    a) Administrador. Es aquella persona o conjunto de personas encargada (exclusivamente, enla 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 porel tipo de fichas que almacena, el formato que toman cada una de ellas, as como sus caractersticasy reglas para ser rellenadas.

    El administrador es, pues, quien decide qu se va a almacenar, y cmo. La informacin delesquema debe ser almacenada como metadatos, o sea, informacin sobre el formato de los datosalmacenados.- Definicin de la estructura de almacenamiento y de los mtodos de acceso. Indicamos anteriormenteque el S.G.B.D. interactuaba con el S.O. para poder acceder a los datos guardados sobre los

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    11/22

    Introduccin a los Sistemas de Bases de Datos.

    11

    dispositivos de almacenamiento, o sea en los ficheros. Pues bien, estos ficheros estn a su vezestructurados en base a unidades ms pequeas con el objetivo de facilitar al S.O. el acceso a losdatos. Es tarea del administrador el decidir las caractersticas de estas unidades mnimas dealmacenamiento a fin de agilizar la recuperacin de los datos, y de mejorar los accesos en funcin delas 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 lanecesidad de mantener estructuras de apoyo que hagan ms fcil la recuperacin de determinadosdatos. Cuando hablamos de estructuras de apoyo, nos referimos a los ndices que veamos en un puntoanterior. Creando los ndics apropiados, la velocidad de determinadas consultas puede aumentarvertiginosamente, 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 puedeproducir 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 dependedel del fichero original, por lo que la creacin de excesivos ndices puede requerir una cantidad dememoria 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 basede datos evoluciona para adecuarse a las condiciones cambiantes del mercado, es necesario adecuardicha base de datos a las necesidades cambiantes que se producen. De esta forma, debe ser posiblealterar el esquema de los datos, as como la forma de almacenamiento para hacer que las nuevasnecesidades sean satisfechas de forma eficiente.

    Asimismo, es interesante que las aplicaciones antiguas sigan funcionando con un mnimo demodificaciones, por lo que es de desear que, a pesar de dichas modificaciones, las aplicacionesantiguas tengan una visin alterada de los datos, pero adecuada a su forma de funcionamiento. Porsupuesto, estas visiones, o vistas, deben ser coherentes con los datos almacenados en el esquemanuevo, y no tergiversar el contenido de los datos.- Concesin de permisos y privilegios para el acceso a los datos. Asignacin de prioridades a losdatos. Para gestionar la seguridad en la base de datos, hemos comentado la necesidad de que los datosdispongan de una serie de niveles de importancia, de manera que slo puedan ser accedidos por losusuarios con un privilegio superior o igual a dicho nivel. Pues bien, es el administrador quien se encargade 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 slopuede acceder al sistema mediante una contrasea particular.- Especificacin de restricciones de integridad. Los datos almacenados en la base de datos guardanuna relacin entre s, en funcin de las necesidades que pretenden cubrir, de manera que la informacinque se pueda extraer de ellos sea til y coherente. Esta coherencia viene determinada por un conjuntode reglas o restricciones que los datos deben poseer; p.ej. ningn cliente debe tener pendientes de pagofacturas cuyo montante supere el crdito mximo permitido. El administrador debe indicar estasrestricciones de integridad, as como modificarlas o flexibilizarlas a medida que evolucionan lasnecesidades 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

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    12/22

    Introduccin a los Sistemas de Bases de Datos.

    12

    simplemente como usuarios, aunque tambin podemos distinguir distintos tipos entre ellos:b.1) Programadores de aplicaciones. suelen formar parte del departamento de proceso dedatos. 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 estosprogramas 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 estaforma el S.G.B.D. suministra los datos, y el lenguaje convencional (tambin llamado anfitrinporque 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 usodirectamente del lenguaje que proporciona el S.G.B.D. En posteriores captulo estudiaremosel SQL como principal lenguaje de manipulacin y definicin de datos. El administrador debetener cuidado con la prioridad que asigna a estos usuarios, ya que al tocar directamente sobrela base de datos, pueden alterar su estructura si disponen de contraseas de alta prioridad, osi 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 queexiste. 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. Eladministrador debe prestar especial atencin a que este tipo de usurios no acceda directamentea 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 elS.G.B.D. de que dispone, y sacar el mximo partido posible de ellos. En general, se pueden tenerniveles de acceso clasificados por:- Las fichas o tuplas a que se tiene acceso. En una empresa grande y ampliamente informatizada, cadausuario debe poder acceder exclusivamente a los datos que competen a su tarea. El departamento decontabilidad no tiene porqu acceder a la informacin sobre reservas de alojamiento, aunque s a laspeticiones de tintorera, para hacer los cargos correspondientes a cada cliente. A su vez, elrecepcionista, sl acceder a las reservas efectuadas, y podr abrir una factura de alojamiento en laque se irn insertando por parte de cada seccin del hotel los cargos de los servicios prestados alcliente, pero no podr tener en ningn momento acceso a las nminas, ya que ello es responsabilidadde la habilitacin.

    De esta forma vemos que cada usuario slo debe tener acceso a un tipo de informacin, o loque es lo mismo, a un tipo de fichas determinado. Por tanto, debe existir un mecanismo de seguridadque 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, laseccin de contabilidad tendr acceso a las facturas a clientes, pero no podr modificarlas, sino tanslo consultarlas a efectos contables para generar el balance de cada mes. Por otro lado, las diferentessecciones de cafetera, restaurante, tintorera, sauna, joyera, etc. s que deben poder acceder a lasfacturas de los clientes para realizar en ella los cargos pertinentes. Sin embargo, no podrn crear

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    13/22

    Introduccin a los Sistemas de Bases de Datos.

    13

    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 puedeconsultar facturas de clientes; la recepcin puede crear y modificar, as como cerrar una factura; latintorera 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 encuatro 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 comentadoanteriormente, los metadatos almacenados en el diccionario de datos y que almacenan informacinsobre la estructura de la base de datos, son gestionados, a su vez, como si de una base de datosespecial 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: prdidade informacin, corrupcin en los datos, falta de integridad, etc. Por ello, es necesaria la existencia deprioridades o privilegios especiales que slo permitan el acceso al personal que compone laadministracin 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 quehaga fcil la comunicacin, y que permita al usuario centrarse en el problema que desea solucionar, msque en la forma de expresarlo con las tcnicas que se le suministran. La mejor forma de alcanzar esteobjetivo, es darle un lenguaje parecido al lenguaje natural, que le permita expresar de forma sencillalos requerimientos. en funcin de estos requerimientos, podemos tener, fundamentalmente dos tiposde lenguajes para comunicarnos con el S.G.B.D.:- Lenguaje de definicin de datos (LDD). Este lenguaje es utilizado en exclusiva por el administradorde 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 creacinde nuevas bases de datos. La creacin de esquemas y su modificacin, la creacin y supresin dendices, la especificacin de unidades de almacenamiento en los ficheros, as como la asignacin yprivacin de prioridades se realizan a travs de este lenguaje. Adems permite la creacin yrecuperacin de copias de seguridad, as como la importacin de datos desde sistemas antiguos, y laexportacin 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 losusuarios directos para efectuar sus operaciones sobre la base de datos. Como se indic, estasoperaciones son bsicamente de insercin, eliminacin,modificacin y consulta de datos, aunquetambin 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 interfazagradable y fcil de usar.

    Los programadores de aplicaciones emplean el LMD dentro de un lenguaje de programacinqueles da potencia expresiva, o sea permite sacar cosas por pantalla de una forma agradabla, facilitarlas operaciones de los usuarios indirectos, etc. Para ello, el LMD que emplean se extiende de diferentesformas para poderse integrar fcilmente en el lenguaje anfitrin, ya que ambos, LMD y lenguaje

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    14/22

    Tipos de Bases de Datos.

    14

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

    Modelo relacional.

    En este apartado tan slo daremos unas nociones iniciales sobre este modelo, ya que todonuestro 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 lastablas son un concepto simple e intuitivo, existe una correspondencia directa entre el conceptoinformtico de una tabla, y el concepto matemtico de relacin, lo cual es una gran ventaja, puespermite efectuar formalizaciones de una forma estricta mediante las herramientas matemticasasociadas, 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 losmatemticos, sino que dispondremos de unas herramientas fciles de manejar que nos permitirninteractuar 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 lasrestricciones propias del modelo jerrquico o en red. P.ej., si necesitamos disear una base de datospara una agencia de alquiler de coches, necesitaremos una tabla en la que se guarde informacin sobrelos coches, como puede verse en la figura.

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    15/22

    Tipos de Bases de Datos.

    15

    Marca Modelo Color Matrcula SituacinLamborghi.

    FerrariSbrro R.

    De Tomaso

    Pontiac

    Austin M.

    Jaguar

    Diablo 630

    F-40Decade

    Pantera

    Trans-Am

    S3'40

    Destructor

    Amarillo

    RojoBlanco

    Blanco

    Negro

    Marrn

    Verde

    MA-2663-BC

    MA-8870-BCVD-870-GTH

    ML-7890-B

    KNIGHT

    CA-5647-AB

    AD-768-TTY

    En renta

    En taller

    Disponible

    En renta

    En renta

    Disponible

    Disponible

    Figura 7 Ejemplo de tabla relacional.

    Apellidos Nombre D.N.I. EdadGonzlez ArandaBeato ApstolCampos OrtegaRuz Rojo

    JavierAntonioAdrianoJuan

    75836934288367468266535883667228

    27433635

    Figura 8 Tabla de clientes de la agenciade alquiler de coches.

    Matrcula D.N.I.

    MA-2663-BCML-7890-B

    AD-768-TTY758369348366722875836934

    AD-768-TTY82665358

    Figura 9 Tabla que relaciona loscoches en renta con los clientesque se responsabilizan de ellos.

    De esta forma, vemos que cada tablaest compuesta por filas, tambin llamadastuplas o registros, cada uno de los cualesposee una serie de campos en los que sealmacenan los datos bsicos. El esquema deuna tabla nos indica los nombres de cada unode los campos que contiene, as como el tipode informacin que debe contener.

    Una tabla es para nosotros un conjuntode registros; por tanto, los registros no puedenrepetirse.

    Para poder acceder a un registroconcreto, 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 sele llama clave del registro. La figura siguiente ilustra una tabla de clientes.

    En el modelo anterior disponamos delos conjuntos para asociar informacin entre s;cmo nos las apaamos para indicar ahoraqu cliente se hace responsable de cada cochealquilado? Fcilmente, a travs de una nuevatabla que relaciona los clientes con los coches.Para ello dado que cada registro quedaidentificado por su clave, nos basta con incluiren esta nueva tabla a las claves de ambastablas, en lugar de todos sus campos. As, podemos obtener una nueva tabla de alquileres que contengala 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 sepuede responsabilizar de ms de un coche, o sea, puede alquilar ms de un coche, pues vemos queJavier Gonzlez Aranda ha alquilado tanto el Lamborghini como el Jaguar. Pero, a su vez, ms de unapersona puede hacerse cargo de un coche: Javier Gonzlez Aranda y Adriano Campos Ortegacomparten el alquiler del Jaguar.

    De esta forma, el modelo relacional solucionael problema que se planteaba en el caso de las listasde embarque mediante enlaces artificiosos, y losoluciona de una manera intuitiva a travs de lastablas, y eliminando el concepto de conjunto.

    Este mtodo de expresar los datos facilitaadems las consultas, que se realizan ahora a travsde estas tablas especiales que relacionan a otrastablas. P.ej., si queremos saber los coches que haalquilado Gonzlez Aranda, basta con buscar su claveen la tabla de clientes (75836934), y a continuacin ver que matrculas tiene asociadas en la tabla dealquileres (MA-2663-BC, y AD-768-TTY); a continuacin, buscamos en la tabla de coches cuales

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    16/22

    Tipos de Bases de Datos.

    16

    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, elmodelo Entidad-Relacin, que estudiaremos en el captulo siguiente, tiene grandes similitudes con elmodelo relacional, siendo esta otra gran ventaja del modelo relacional, esto es, se pueden expresar lasrelaciones entre los datos a travs de diagramas fciles de comprender y de modificar, y,posteriormente, pasar el resultado a un esquema relacional.

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    17/22

    El modelo relacional.

    17

    JuanAntonio

    Pedro

    CocineroBotones100

    200500700

    1200

    Nombre Oficio Sueldo- Juan Cocinero 100- Pedro Botones 700- Juan Cocinero 200- Pedro Cocinero 700- Juan Cocinero 1200

    Esto es una relacin.Dado que se trata de un conjuntono puede haber elementosrepetidos.

    Nombre

    Oficio

    Sueldo

    EL MODELO RELACIONALEn 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 lasaplicaciones 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, mantieneinformacin sobre las propias caractersticas de la base de datos (metadatos), que facilitan lasmodificaciones, disminuyendo los problemas ocasionados en las aplicaciones ya desarrolladas. Por otrolado, incorpora mecanismos de consulta muy potentes, totalmente independientes del S.G.B.D., eincluso de la organizacin fsica de los datos; el propio S.G.B.D. es el encargado de optimizar estaspreguntas 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 losdatos, aunque posteriormente stos puedan ser almacenados de mltiples formas para aprovecharcaractersticas fsicas concretas de la mquina sobre la que se implante la base de datos realmente. Esalgo 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 caractersticasfsicas del recinto, podremos disponer los libros de una forma u otra para hacer ms cmoda y fcil suconsulta 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 entrarpara nada en cmo los almacena fsicamente cada ordenador, o cada S.G.B.D.

    Estructura general.

    El nombre de modelorelacional viene de la estrecha relacin que existe entre el elementobsico de este modelo, y el concepto matemtico de relacin. Podemos decir que una relacin R sobrelos conjuntos D1, D2, .., Dn, se define como:

    R f D1 D2 ... Dndonde los conjuntos D1, D2, .., Dn pueden ser

    cualesquiera, e incluso estar repetidos.Los conjuntos pueden sercualesquiera, aunque en el momento en que setrabaja con ordenadores, hay que imponerciertas restricciones de discretizacin.

    Si nos fijamos en el dibujo adjunto,podemos ver que una de estas relaciones no esms que una lista de lneas, donde cada lneaest dividida en trozos.

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    18/22

    El modelo relacional.

    18

    Nombre: JuanOficio: CocineroSueldo: 100

    Nombre: PedroOficio: BotonesSueldo: 700Nombre: JuanOficio: Cocinero

    Sueldo: 200Nombre: PedroOficio: CocineroSueldo: 700

    Nombre: JuanOficio: CocineroSueldo: 1200

    Para observar bien el porqu ha surgido el mtodo relacional, pensemos en cmoalmacenaramos 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 foliosecuencialmente; si el folio se acaba, cogemos otro, y hacemos la misma operacin, de forma que, alfinal, la lista est escrita o almacenada en varios folios. Este mtodo, que es el ms directo, tiene elproblema 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 nuevosfolios a mediada que las pginas se vayan llenando. No obstante, este mtodo slo es adecuado si laslneas no estn ordenadas segn un criterio. Si las lneas ya estn ordenadas, y deseamos introducir unanueva, cmo lo hacemos?, escribiendo una lnea por enmedio con letra ms pequea?, o bienescribiendo de nuevo todas las lneas, pero esta vez con la que se desea insertar? Est claro queninguna 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 ala 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 enuna ficha de cartn. Si se desea insertar una nueva ficha basta con rellenarla y meterla en su posicinadecuada. De la misma forma se puede proceder a la hora de eliminar alguna ficha.

    Pues bien, este ltimo mtodo es elque, a grandes rasgos, intenta utilizar el modelorelacional. El modelo relacional representa laslistas de lneas mediante registros o fichas cadauna de las cuales puede ser manejadaindividualmente y con independencia de lasdems. No obstante, a efectos de facilitar lavisualizacin, puede ser posible ver todas laslneas juntas como si de una lista se tratase.Ver figura.

    De esta manera, tendremos variostipos de fichas: fichas de clientes, deproveedores, de facturas, de albaranes, de reservas, de empleados, de apuntes contables, etc., cadauna de las cuales podemos almacenar en un cajn o en un fichero independiente. De cada tipo de fichatendremos 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 rellenaen concreto (p.ej. una ficha de clientes), y una ficha concreta, rellena con unos datos concretos (la fichade Juan el Cocinero).

    Pues bien, el modelo relacional plasma en un ordenador este mismo esquema, aprovechandolas enormes caractersticas de computacin y almacenamiento de las mquinas actuales.

    Concepto de tabla. Dominios y atributos.

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    19/22

    El modelo relacional.

    19

    Nombre PrecioCdigo Men15231734122107

    Solomillo a la pimientaFondue NechatelMigas con chocolateAjo blanco con uvasPaella valencianaMono a la cantonesaSopa de aleta de tiburn

    1000150085085011007500525

    NoNoS S S NoS

    PLATOS

    Una tabla en el modelo relacional viene a ser como una de las listas descritas anteriormente.Unatabla 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, cadacolumna tiene asignado un nombre nico, e indica que los temes almacenados en esa columnadeben pertenecer a un conjunto de valores concreto: Nmeros, Letras, Frases, etc.

    Cada lnea (excepto la primera) recibe el nombre detupla , y almacena temes concretos para cadacolumna.

    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, enel que el orden de las columnas es fundamental.

    En la figura aparece una tabla dePlatos. Toda tabla debe poseer al menos laprimera lnea, que identifica el nombre de lacolumna. En este caso, nuestra tabla o relacincontiene las columnas Cdigo, Nombre,Precio y Men (que indica si ese platopertenece o no a las opciones del men delda).

    Elgrado de esta tabla es el nmero decampos que posee, en nuestro caso 4. Lacardinalidad es el nmero de tuplas concretasque almacena: 7. Ntese que el grado de unatabla 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 lasituacin real que represente la tabla y puede variar en el tiempo; p.ej., la lista de platos puede cambiartodos 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 columnaidentifica los nombres de campo oatributos de que consta cada tabla. En otras palabras, cada tuplaest 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 tablaPlatos, el atributoPrecio tendr como cometido almacenar el valor en pesetas con el que ese platose vende al pblico. A menudo suele ser necesario aadir una pequea descripcin a cada atributo queaclare 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 mismoaclarara 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 serGerente . Para evitar este tipo de situaciones anmalas en la medida de lo posible, obligaremos a que

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    20/22

    El modelo relacional.

    20

    cada atributo slo pueda tomar los valores pertenecientes a un conjunto de valores previamenteestablecido, o sea, un atributo tiene asociado undominio de valores. En el caso anterior se tiene queel atributoPrecio slo puede tomar valores numricos, mientras que el Nombre slo puede contenerfrases textuales.Los dominios a que puede pertenecer un atributo, suelen depender de los que proporcione elS.G.B.D. que empleemos. Suelen ser comunes dominios como:Texto,Texto,Nmero entero, NmeroNmero entero, Nmerodecimal, Fecha, Hora, S/Nodecimal, Fecha, Hora, S/No, etc.

    Por otro lado, un dominio como pueda serNmeroNmeroenteroentero, es un dominio cuyo conjunto devalores es infinito, y dado que trabajamos con ordenadores, es imprescindible poner un lmite quepermita almacenar un valor concreto debido a las limitaciones de memoria, y sobre todo al hecho deque toda tupla debe poseer el mismo tamao. Tomemos como ejemplo el Nombre delPlato, que esevidentemente del tipoTextoTexto; las limitaciones del ordenador nos impiden almacenar nombresilimitadamente largos, como puedan ser Magret de pato al vinagre de grosella con guarnicin de higosmalagueos al vino moscatel Pedro Ximnez. Es necesario, por tanto, establecer una cota al nmeromximo de letras que podemos teclear, por lo que el dominio del atributo Nombre puede serTextoTextode 20 caracteresde 20 caracteres.

    As, la estructura completa de la tablaPlatos quedara como sigue:

    Platos:Cdigo. Nmero entero.Nmero entero.

    Nmero con el que el plato aparece en la carta.Nombre. Texto de 20 caracteres.Texto de 20 caracteres.

    Nombre del plato.Precio.Nmero decimal simple.Nmero decimal simple.

    Precio del plato. no incluye I.V.A. ni descuentos, etc.Men. S/No.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 undominio por defecto, o estableciendo una jerarqua de dominios. P.ej., Microsoft Access toma comodominio por defecto elTextoTexto, y en concretode 50 caracteresde 50 caracteres. Se pueden cambiar los dominios a unocualquiera dentro de las siguientes posibilidades:TextTexto, Numrico, Fecha/Hora, Moneda, S/No,o, Numrico, Fecha/Hora, Moneda, S/No,Memo,Memo,Autonumrico, Objeto OLE,Autonumrico, Objeto OLE, oHipervnculoHipervnculo. A su vez, cada uno de estos tipos se puededividir en otras clases, una de las cuales es la que se toma por defecto; p.ej. el tipoNumricoNumrico tiene asu vez los subtipos:Byte,Byte,Entero, Entero largo, SimpleEntero, Entero largo, Simple yDoble.Doble. Si slo escogemosNumricoNumrico, pordefecto se toma el subtipoEnteroEnterolargolargo, que permite guardar nmeros enteros (sin parte decimal) desdeel -2.147.483.648 hasta el 2.147.483.647. Si el subtipo por defecto no es el que se quiere puedeespecificarse otro.

    Independientemente del dominio a que pertenezca un atributo, cualquier atributo puede tomarun valor especial que designa la ausencia de dato; es el valor NULO (en ingls NULL o NIL) . Cuando,

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    21/22

    El modelo relacional.

    21

    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 sucasa), podemos asociar a dicho atributo este valor especial, comn a cualquier dominio. El equivalenteen nuestro smil de las fichas de cartn sera dejar ese hueco en blanco. Hay que hacer notar ladiferencia entre el valor NULO, y el valor espacios en blanco; el ordenador considera un espacioen blanco como cualquier otro carcter, por lo que a efectos computacionales, la introduccin decaracteres espacios en blanco es distinta al concepto de ausencia de informacin. Los espaciosen blanco s son datos, y pertenecen al dominioTextoTexto.

    Restricciones.

    En el apartado anterior observamos que cada atributo est obligado a tomar un valorperteneciente a un dominio concreto, siendo imposible el que guarde otro distinto. Esto supone unarestriccin 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 modelorelacional, as como los conceptos implicados. Por ltimo veremos las posibilidades que tiene el usuariopara 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, comopuedan ser Empleados, Clientes, etc., e incluso considera las relaciones entre estos objetos comoobjetos en s mismos. Para ello, designa cada tipo de objetos por un conjunto de atributos que son losque darn la forma particular a cada objeto. Volvamos al caso de nuestra tabla dePlatos.

    Para representar a unPlato, hemos escogido los atributos:Cdigo, Nombre, Precio yMen .Un plato concreto puede ser p.ej., (17, Migas con chocolate, 850, S). Este plato concreto, comocualquier otro objeto distinguible del mundo real posee unas caractersticas que lo distinguen de losdems de su mismo tipo, tal y como lo hace el ADN de una persona. El ADN conforma la esencia oclave de toda persona. Es ms, todo objeto posee algo concreto que lo hace diferente; incluso puedeposeer ms de una cosa por la que se le puede diferenciar: una persona puede distinguirse tambin porsu 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 unatupla concreta mediante su posicin entre las dems, y necesitamos alguna forma de seleccionar unatupla concreta. La forma de hacerlo es mediante una clave.

    Unaclave es un atributo o conjunto de atributos cuyo valor es nico y diferente para cadatupla.

  • 8/14/2019 Introducciona a los Sistemas de Base de Datos

    22/22

    El modelo relacional.

    22

    Cada tabla puede poseer ms de una clave. P.ej., en nuestro caso de la tablaPlatos , la clavepuede ser tanto el atributoCdigo , como el atributo Nombre . Tenemos dos claves potenciales,tambin llamadasclaves candidatas .

    De entre todas las claves candidatas, el administrador, cuando define la tabla, debe decidir culde ellas va a ser laclave principal o clave primaria , mientras que el resto de las claves pasan adenominarseclaves alternativas o claves alternas . La distincin entre clave principal y clavesalternativas, es slo a efectos de acceso interno a los datos, y para que el S.G.B.D. adopte ciertasdecisiones sobre cmo almacenar esos datos en los sistemas de almacenamiento masivos.

    Por otro lado, la clave de una tabla debe serpropia , o sea, ninguno de los atributos que laforman debe ser superfluo. Siguiendo con la tabla dePlatos , si tomamos el grupo de atributos(Cdigo, Precio ), vemos que posee todas las caractersticas necesarias para considerarlo como unaclave candidata. sin embargo, el atributoCdigo por s slo ya es una clave candidata, con lo cual elhecho de aadir el atributoPrecio y crear una clave nueva, no aporta informacin de identificacin,ya que el resto de los atributos (elCdigo en este caso) identifica por s slo a una tupla de la tabla dePlatos . As pues, el atributoPrecio es superfluo en el grupo de atributos (Cdigo, Precio ), con lo quedicho 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 atributosrestantes siguen poseyendo las propiedades de clave, el atributo eliminado es superfluo, por lo que elgrupo de atributos de partida no es clave propia.

    Ms adelante veremos como esta situacin se deriva del hecho de que el valor del atributo quesobra (el superfluo) viene determinado por los valores de los otros atributos (la clave propia), en lo quese ha dado en llamardependencia funcional .

    El concepto declave es tan importante, que da lugar a una serie de restricciones fundamentalessobre la base de datos. Son laregla de identificacin nica y laregla de integridad referencial .

    Regla de identificacin nica.

    Esta restriccin ya fue estudiada en el tema de los diagramas E-R. En esencia, los conceptosde 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 unarelacin 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 ningunode los atributos que la componen es superfluo, no podemos dejar de lado el valor de ninguno de ellospara identificar unvocamente a una tupla. O sea, el que todos los atributos de la tabla sean necesariosest en contradiccin con que alguno de ellos pueda carecer de valor. Ningn atributo de la clavepuede ser vaco porque en tal caso no sera una caracterstica identificativa propia del objeto a quepertenece.