UNIDAD DE TRABAJO N 1: Introduccin. Ventajas de la utilizacin de bases de datos.
Objetivo de la Unidad de Trabajo: Introducir el tema de las bases de datos.
1.- Sistemas de ficheros 1.1. -Sistema tradicional de Ficheros.- Un sistema de ficheros es un conjunto de programas que prestan servicio a los usuarios finales. Cada programa define y maneja sus propios datos. Los sistemas de ficheros surgieron al tratar de informatizar el manejo de los archivadores manuales con objeto de proporcionar un acceso ms eficiente a los datos. 1.2.- Problemas de Sistemas de Ficheros.- A raz de la duplicacin de datos! los sistemas de ficheros presentan una serie de inconvenientes" 1.2.1.- Separacin y aislamiento de los datos. Cuando los datos se separan en distintos ficheros! es ms complicado acceder a ellos! ya que el programador de aplicaciones debe sincronizar el procesamiento de los distintos ficheros implicados para asegurar que se e#traen los datos correctos. 1.2.2.- Duplicacin de datos. La redundancia de datos e#istente en los sistemas de ficheros hace que se desperdicie espacio de almacenamiento y lo que es ms importante" puede llevar a que se pierda la consistencia de los datos. $e produce una inconsistencia cuando copias de los mismos datos no coinciden. 1.2.3.- Dependencia de datos. %a que la estructura fsica de los datos &la definicin de los ficheros y de los registros' se encuentra codificada en los programas de aplicacin! cualquier cambio en dicha estructura es difcil de realizar. (l programador debe identificar todos los programas afectados por este cambio! modificarlos y volverlos a probar! lo que cuesta mucho tiempo y est sujeto a que se produzcan errores. A este problema! tan caracterstico de los sistemas de ficheros! se le denomina tambi)n falta de independencia de datos lgica-fsica. 1.2.4.- Formatos de ficheros incompatibles. %a que la estructura de los ficheros se define en los programas de aplicacin! es completamente dependiente del lenguaje de programacin. La incompatibilidad entre ficheros generados por distintos lenguajes hace que los ficheros sean difciles de procesar de modo conjunto. 1.2.5.- onsultas fi!as y proliferacin de pro"ramas de aplicacin. *esde el punto de vista de los usuarios finales! los sistemas de ficheros fueron un gran avance comparados a los sistemas manuales. A consecuencia de esto! creci la necesidad de realizar distintos tipos de consultas de datos. $in embargo! los sistemas de ficheros son muy dependientes del programador de aplicaciones" cualquier consulta o informe que se quiera realizar debe ser programado por )l. (n algunas organizaciones se conformaron con fijar el tipo de consultas e informes! siendo imposible realizar otro tipo de consultas que no se hubieran tenido en cuenta a la hora de escribir los programas de aplicacin. (n otras organizaciones hubo una proliferacin de programas de aplicacin para resolver todo tipo de consultas! hasta el punto de desbordar al departamento de proceso de datos! que no daba abasto para validar! mantener y documentar dichos programas. 2.- Base de Datos 2.1.- #$u% son las bases de datos& Una base de datos es un +almac)n, que nos permite guardar grandes cantidades de informacin de forma organizada para que luego podamos encontrar y utilizar fcilmente. A continuacin te presentamos una gua que te e#plicar el concepto y caractersticas de las bases de datos. (l t)rmino de bases de datos fue escuchado por primera vez en -./0! en un simposio celebrado en California! U$A. 1Una base de datos se puede definir como un conjunto de informacin relacionada que se encuentra agrupada estructurada. *esde el punto de vista informtico" 1La base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Cada base de datos se compone de una o ms tablas que guarda un conjunto de datos. Cada tabla tiene una o ms columnas y filas. Las columnas guardan una parte de la informacin sobre cada elemento que queramos guardar en la tabla! cada fila de la tabla conforma un registro. 2.2.- Definicin de base de datos $e define una base de datos como una serie de datos organizados y relacionados entre s! los cuales son recolectados y e#plotados por los sistemas de informacin de una empresa o negocio en particular. 2.3.- 'b!eti(os y aracter)sticas (ntre las principales caractersticas de los sistemas de base de datos podemos mencionar" 2ndependencia lgica y fsica de los datos. Abstraccin de la informacin. 3edundancia mnima. Acceso concurrente por parte de m4ltiples usuarios. 2ntegridad de los datos. Consultas complejas optimizadas. $eguridad de acceso y auditoria. 3espaldo y recuperacin. Acceso a trav)s de lenguajes de programacin estndar. 5iempo de recuperacin 2.3.1.- Abstraccin de la informacin. Los $67* ahorran a los usuarios detalles acerca del almacenamiento fsico de los datos. *a lo mismo si una base de datos ocupa uno o cientos de archivos! este hecho se hace transparente al usuario. As! se definen varios niveles de abstraccin. 2.3.2.- Independencia lgica y fsica de los datos. La independencia de los datos consiste en la capacidad de modificar el esquema &fsico o lgico' de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. 2.3.3.- !edundancia mnima. Un buen dise8o de una base de datos lograr evitar la aparicin de informacin repetida o redundante. *e entrada! lo ideal es lograr una redundancia nula9 no obstante! en algunos casos la complejidad de los clculos hace necesaria la aparicin de redundancias. 2.3.".- #onsistencia. (n aquellos casos en los que no se ha logrado esta redundancia nula! ser necesario vigilar que aquella informacin que aparece repetida se actualice de forma coherente! es decir! que todos los datos repetidos se actualicen de forma simultnea. 2.3.$.- Seguridad de acceso a la auditoria. La informacin almacenada en una base de datos puede llegar a tener un gran valor. Los $67* deben garantizar que esta informacin se encuentra segura frente a usuarios malintencionados! que intenten leer informacin privilegiada9 frente a ataques que deseen manipular o destruir la informacin9 o simplemente ante las torpezas de alg4n usuario autorizado pero despistado. :ormalmente! los $67* disponen de un complejo sistema de permisos a usuarios y grupos de usuarios! que permiten otorgar diversas categoras de permisos. 2.3.%.- Integridad de datos. $e trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. (s decir! se trata de proteger los datos ante fallos de hard;are! datos introducidos por usuarios descuidados! o cualquier otra circunstancia capaz de corromper la informacin almacenada. 2.3.&.- !espaldo y recuperacin. Los $67* deben proporcionar una forma eficiente de realizar copias de respaldo de la informacin almacenada en ellos! y de restaurar a partir de estas copias los datos que se hayan podido perder. 2.3.'.- #ontrol de la concurrencia. (n la mayora de entornos &e#cepto quizs el dom)stico'! lo ms habitual es que sean muchas las personas que acceden a una base de datos! bien para recuperar informacin! bien para almacenarla. % es tambi)n frecuente que dichos accesos se realicen de forma simultnea. As pues! un $67* debe controlar este acceso concurrente a la informacin! que podra derivar en inconsistencias. 2.3.(.- )iempo de respuesta. Lgicamente! es deseable minimizar el tiempo que el $67* tarda en darnos la informacin solicitada y en almacenar los cambios realizados. 2.4.- *enta!as de las bases de datos 2.".1.- #ontrol sobre la redundancia de datos* Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. (sto hace que se desperdicie espacio de almacenamiento! adems de provocar la falta de consistencia de datos. (n los sistemas de bases de datos todos estos ficheros estn integrados! por lo que no se almacenan varias copias de los mismos datos. $in embargo! en una base de datos no se puede eliminar la redundancia completamente! ya que en ocasiones es necesaria para modelar las relaciones entre los datos. 2.".2.- #onsistencia de datos* (liminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. $i un dato est almacenado una sola vez! cualquier actualizacin se debe realizar slo una vez! y est disponible para todos los usuarios inmediatamente. $i un dato est duplicado y el sistema conoce esta redundancia! el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes. 2.".3.- #omparticin de datos* (n los sistemas de ficheros! los ficheros pertenecen a las personas o a los departamentos que los utilizan. <ero en los sistemas de bases de datos! la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que est)n autorizados. 2.".".- +antenimiento de est,ndares* 6racias a la integracin es ms fcil respetar los estndares necesarios! tanto los establecidos a nivel de la empresa como los nacionales e internacionales. (stos estndares pueden establecerse sobre el formato de los datos para facilitar su intercambio! pueden ser estndares de documentacin! procedimientos de actualizacin y tambi)n reglas de acceso. 2.".$.- +e-ora en la integridad de datos* La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. :ormalmente! la integridad se e#presa mediante restricciones o reglas que no se pueden violar. (stas restricciones se pueden aplicar tanto a los datos! como a sus relaciones! y es el $67* quien se debe encargar de mantenerlas. 2.".%.- +e-ora en la seguridad* La seguridad de la base de datos es la proteccin de la base de datos frente a usuarios no autorizados. $in unas buenas medidas de seguridad! la integracin de datos en los sistemas de bases de datos hace que )stos sean ms vulnerables que en los sistemas de ficheros. 2.".&.- +e-ora en la accesibilidad a los datos* =uchos $67* proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos! sin que sea necesario que un programador escriba una aplicacin que realice tal tarea. 2.".'.- +e-ora en la producti.idad* (l $67* proporciona muchas de las funciones estndar que el programador necesita escribir en un sistema de ficheros. A nivel bsico! el $67* proporciona todas las rutinas de manejo de ficheros tpicas de los programas de aplicacin. (l hecho de disponer de estas funciones permite al programador centrarse mejor en la funcin especfica requerida por los usuarios! sin tener que preocuparse de los detalles de implementacin de bajo nivel. 2.".(.- +e-ora en el mantenimiento* (n los sistemas de ficheros! las descripciones de los datos se encuentran inmersas en los programas de aplicacin que los manejan. (sto hace que los programas sean dependientes de los datos! de modo que un cambio en su estructura! o un cambio en el modo en que se almacena en disco! requiere cambios importantes en los programas cuyos datos se ven afectados. $in embargo! los $67* separan las descripciones de los datos de las aplicaciones. (sto es lo que se conoce como independencia de datos! gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos. 2.".1/.- Aumento de la concurrencia* (n algunos sistemas de ficheros! si hay varios usuarios que pueden acceder simultneamente a un mismo fichero! es posible que el acceso interfiera entre ellos de modo que se pierda informacin o se pierda la integridad. La mayora de los $67* gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo. 2.".11.- +e-ora en los ser.icios de copias de seguridad* =uchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada da! y si se produce alg4n fallo! utilizar estas copias para restaurarlos. (n este caso! todo el trabajo realizado sobre los datos desde que se hizo la 4ltima copia de seguridad se pierde y se tiene que volver a realizar. $in embargo! los $67* actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo. 2.5.-Des(enta!as de las bases de datos 2.$.1.- #omple-idad* Los $67* son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. (s preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos. 2.$.2.- #oste del e0uipamiento adicional* 5anto el $67*! como la propia base de datos! pueden hacer que sea necesario adquirir ms espacio de almacenamiento. Adems! para alcanzar las prestaciones deseadas! es posible que sea necesario adquirir una mquina ms grande o una mquina que se dedique solamente al $67*. 5odo esto har que la implantacin de un sistema de bases de datos sea ms cara. 2.$.3.- 1ulnerable a los fallos* (l hecho de que todo est) centralizado en el $67* hace que el sistema sea ms vulnerable ante los fallos que puedan producirse. (s por ello que deben tenerse copias de seguridad &7ac>up'. 3.- 2a Ar0uitectura De 3na Base De Datos *istintos :iveles de un $7* Los $7* pueden ser estudiados desde 0 niveles distintos" 3.1.- +i(el F)sico. (s el nivel real de los datos almacenados. (s decir cmo se almacenan los datos! ya sea en registros! o como sea. (ste nivel es usado por muy pocas personas que deben estar cualificadas para ello. (ste nivel lleva asociada una representacin de los datos! que es lo que denominamos (squema ?sico. 3.2.- +i(el onceptual. (s el correspondiente a una visin de la base de datos desde el punto de visto del mundo real. (s decir tratamos con la entidad u objeto representado! sin importarnos como est representado o almacenado. (ste nivel lleva asociado el (squema Conceptual. 3.3.- +i(el *isin. $on partes del esquema conceptual. (l nivel conceptual presenta toda la base de datos! mientras que los usuarios por lo general slo tienen acceso a peque8as parcelas de )sta. (l nivel visin es el encargado de dividir estas parcelas. Un ejemplo sera el caso del empleado que no tiene porqu) tener acceso al sueldo de sus compa8eros o de sus superiores. (l esquema asociado a )ste nivel es el (squema de @isin. ".- +odelos de bases de datos Adems de la clasificacin por la funcin de las bases de datos! )stas tambi)n se pueden clasificar de acuerdo a su modelo de administracin de datos. Un modelo de datos es bsicamente una AdescripcinA de algo conocido como contenedor de datos &algo en donde se guarda la informacin'! as como de los m)todos para almacenar y recuperar informacin de esos contenedores. Los modelos de datos no son cosas fsicas" son abstracciones que permiten la implementacin de un sistema eficiente de base de datos9 por lo general se refieren a algoritmos! y conceptos matemticos. Algunos modelos con frecuencia utilizados en las bases de datos" 4.1.- ,ases de datos !er-r.uicas. Bstas son bases de datos que! como su nombre indica! almacenan su informacin en una estructura jerrquica. (n este modelo los datos se organizan en una forma similar a un rbol &visto al rev)s'! en donde un nodo padre de informacin puede tener varios hijos. (l nodo que no tiene padres es llamado raz! y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerrquicas son especialmente 4tiles en el caso de aplicaciones que manejan un gran volumen de informacin y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. 4.2.- ,ase de datos de red. Bste es un modelo ligeramente distinto del jerrquico9 su diferencia fundamental es la modificacin del concepto de nodo" se permite que un mismo nodo tenga varios padres &posibilidad no permitida en el modelo jerrquico'. ?ue una gran mejora con respecto al modelo jerrquico! ya que ofreca una solucin eficiente al problema de redundancia de datos9 pero! aun as! la dificultad que significa administrar la informacin en una base de datos de red ha significado que sea un modelo utilizado en su mayora por programadores ms que por usuarios finales. 4.3.- /odelo relacional. (ste modelo se est empleando con ms frecuencia en la prctica! debido a las ventajas que ofrece sobre los dos modelos anteriores! entre ellas! el rpido entendimiento por parte de usuarios que no tienen conocimientos profundos sobre $istemas de 7ases de *atos. Bste es el modelo ms utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. 5ras ser postulados sus fundamentos en -.CD por (dgar ?ran> Codd! de los laboratorios 27= en $an Eos) &California'! no tard en consolidarse como un nuevo paradigma en los modelos de base de datos. $u idea fundamental es el uso de ArelacionesA. (stas relaciones podran considerarse en forma lgica como conjuntos de datos llamados AtuplasA. <ese a que )sta es la teora de las bases de datos relacionales creadas por (dgar ?ran> Codd! la mayora de las veces se conceptualiza de una manera ms fcil de imaginar. (sto es pensando en cada relacin como si fuese una tabla que est compuesta por registros &las filas de una tabla'! que representaran las tuplas! y campos &las columnas de una tabla'. (n este modelo! el lugar y la forma en que se almacenen los datos no tienen relevancia &a diferencia de otros modelos como el jerrquico y el de red'. (sto tiene la considerable ventaja de que es ms fcil de entender y de utilizar para un usuario espordico de la base de datos. La informacin puede ser recuperada o almacenada mediante AconsultasA que ofrecen una amplia fle#ibilidad y poder para administrar la informacin. $.-BAS4S D4 DA)5S DIS)!IB3IDAS. Las bases de datos distribuidas se estn utilizando cada vez ms en la misma medida en que se usan las arquitecturas de cliente1servidor y group;are. Los principales problemas que se generan por el uso de la tecnologa de bases de datos distribuidas son en lo referente a duplicidad de datos y a su integridad al momento de realizar actualizaciones a los mismos. Adems! el control de la informacin puede constituir una desventaja! debido a que se encuentra diseminada en diferentes localidades geogrficas. UNIDAD DE TRABAJO N 2 : Bases de datos relacionales. Objetivo de la Unidad de Trabajo: Analizar las caractersticas de las bases de datos relacionales. %.- Bases de Datos !elacionales
0.1.- 1ntecedentes 2istricos.- para la gestin de una base de datos es un modelo de datos basado en la lgica de predicado y en la teora de conjuntos. (s el modelo ms utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. 5ras ser postuladas sus bases en -.CD por (dgar ?ran> Codd! de los laboratorios 27= en $an Eos) &California'! no tard en consolidarse como un nuevo paradigma en los modelos de base de datos. $u idea fundamental es el uso de FrelacionesG. (stas relaciones podran considerarse en forma lgica como conjuntos de datos llamados FtuplasG. <ese a que )sta es la teora de las bases de datos relacionales creadas por (dgar ?ran> Codd! la mayora de las veces se conceptualiza de una manera ms fcil de imaginar! esto es! pensando en cada relacin como si fuese una tabla que est compuestas por registros &cada fila de la tabla sera un registro'! que representaran las tuplas! y campos &las columnas de una tabla'. 0.2.- Fundamentos.- Una base de datos relacional es una base de datos en donde todos los datos visibles al usuario estn organizados estrictamente como tablas de valores! y en donde todas las operaciones de la base de datos operan sobre estas tablas. (stas bases de datos son percibidas por los usuarios como una coleccin de relaciones normalizadas de diversos grados que varan con el tiempo. (l modelo relacional representa un sistema de bases de datos en un nivel de abstraccin un tanto alejado de los detalles de la mquina subyacente! de la misma manera como! por ejemplo! un lenguaje del tipo de <LH- &<LH- <rogramming Language - &Lenguaje de programacin uno' -./I *ise8ado para combinar las principales virtudes del ?J353A:! CJ7JL y AL6JL! se trata de un lenguaje de programacin complejo. Compilado y estructurado! es capaz de gestionar errores y de procesar multitareas! y se emplea en entornos acad)micos y de investigacin.' 3epresenta un sistema de programacin con un nivel de abstraccin un tanto alejado de los detalles de la mquina subyacente. *e hecho! el modelo relacional puede considerarse como un lenguaje de programacin ms bien abstracto! orientado de manera especfica hacia las aplicaciones de bases de datos. K*ate! -..0L Una base de datos relacional es un conjunto de una o ms tablas estructuradas en registros &lneas' y campos &columnas'! que se vinculan entre s por un campo en com4n! en ambos casos posee las mismas caractersticas como por ejemplo el nombre de campo! tipo y longitud9 a este campo generalmente se le denomina 2*! identificador o clave. A esta manera de construir bases de datos se le denomina modelo relacional. Las bases de datos relacionales pasan por un proceso al que se le conoce como normalizacin de una base de datos! el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera ptima. (ntre las ventajas de este modelo estn" -. 6arantiza herramientas para evitar la duplicidad de registros! a trav)s de campos claves o llaves. M. 6arantiza la integridad referencial" As al eliminar un registro elimina todos los registros relacionados dependientes. 0. ?avorece la normalizacin por ser ms comprensible y aplicable. 0.3.- aracter)sticas.- Caractersticas principales de los NNarchivosOO relacionales" Cada NNarchivoOO contiene solo un tipo de registros Los campos no tienen un orden especfico! de izquierda a derecha Los registros no tienen un orden especfico! de arriba hacia abajo Cada campo tiene un solo valor Los registros poseen un campo identificador 4nico &o combinacin de campos' llamado clave primaria As! todos los datos en una base de datos relacional se representan de una y solo una manera! a saber! por su valor e#plcito &esta se denomina en ocasiones NNprincipio bsico del modelo relacionalOO'. (n particular! las cone#iones lgicas dentro de una relacin y entre las relaciones se representan mediante esos valores9 no e#isten NNligasOO o apuntadores visibles para el usuario! ni ordenamientos visibles para el usuario! ni grupos repetitivos visibles para el usuario! etc. Actualmente algunos de los manejadores de bases de datos! utilizan un sistema de b4squeda con algoritmos de rboles b. <ero las b4squedas que se pueden realizar con estos algoritmos son slo para memoria principal. Los algoritmos implementados para realizar b4squedas con listas salteadas o por bloques &skip lists' son eficientes para realizar b4squedas en memoria secundaria. Como tienen varios niveles en cada nodo de la lista! nos permite dar saltos ms largos al realizar las b4squedas! esto provoca que las sean ms rpidas. 0.4.- 3abla.- (n las bases de datos! se refiere al tipo de modelamiento de datos! donde se guardan los datos recolectados por un programa. $u estructura general se asemeja a la vista general de un programa de Poja de clculo. Las tablas se componen de dos estructuras" 0.4.1.- ampo o atributos " Corresponde al nombre de la columna. *ebe ser 4nico y adems de tener un tipo de dato asociado. Un Atributo es cualquier caracterstica que describe a una entidad. 0.4.2.- 4e"istro o tuplas 5 Corresponde a cada fila que compone la tabla. All se componen los datos y los registros. (ventualmente pueden ser nulos en sus almacenamientos. (n la definicin de cada campo! debe e#istir un nombre 4nico! con su tipo de dato correspondiente. (sto es 4til a la hora de manejar varios campos en la tabla! ya que cada nombre de campo debe ser distinto entre s. A los campos se les puede asignar! adems! propiedades especiales que afectan a los registros insertados. (l campo puede ser definido como ndice o auto incrementable! lo cual permite que los datos de ese campo cambien solos o sea el principal indicar a la hora de ordenar los datos contenidos. Cada tabla creada debe tener un nombre 4nico en la cada 7ase de *atos! haci)ndola accesible mediante su nombre o su sinnimo &dependiendo del tipo de base de datos elegida'. La estructura de las tablas viene dado por la forma de un archivo plano! los cuales en un inicio se componan de un modo similar 0.5.- Dominio.- (s una coleccin de equipos definidos por el administrador de una red! que comparten una base de datos de directorios com4n. Un dominio proporciona acceso a las cuentas de usuario centralizadas y a cuentas de grupos mantenidas por el administrador de dominio. Cada dominio posee un 4nico nombre. 0.0.- ardinalidad.- La Cardinalidad de una relacin representa el n4mero de ocurrencias que se puede dar en una relacin. <ueden ser de tres tipos9 0.6. la(e.- La clave de una entidad es un atributo o conjunto de atributos de dicha entidad! que son capaces de identificar unvocamente una ocurrencia de una entidad. (s decir! si conocemos el valor de dicho atributo! seremos a que ocurrencia de entidad! entre todas las posibles! hace referencia. (sto implica que los valores de los atributos claves no se pueden repetir para dos ocurrencias de la misma entidad. Q=atricula =arca =odelo Color 0.7. 1sociacin de 4elaciones.- Una relacin representa! como su propio nombre lo indica! una correspondencia entre dos entidades. $i tenemos automvil y persona! podemos tener una relacin entre ellas. *icha relacin puede estar establecida en ambos sentidos" Una persona posee un automvil Un automvil pertenece a una persona.
0.8. 4e"las de inte"ridad.-
Una vez definida la estructura de datos del modelo relacional! pasamos a estudiar las reglas de integridad que los datos almacenados en dicha estructura deben cumplir para garantizar que son correctos. Al definir cada atributo sobre un dominio se impone una restriccin sobre el conjunto de valores permitidos para cada atributo. A este tipo de restricciones se les denomina restricciones de dominios. Pay adems dos reglas de integridad muy importantes que son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias &las reglas se deben cumplir todo el tiempo'. (stas reglas son la regla de integridad de entidades y la regla de integridad referencial. Antes de definirlas! es preciso conocer el concepto de nulo. 0.19. +ulos.- Autom.il Cuando en una tupla un atributo es desconocido! se dice que es nulo. Un nulo no representa el valor cero ni la cadena vaca! )stos son valores que tienen significado. (l nulo implica ausencia de informacin! bien porque al insertar la tupla se desconoca el valor del atributo! o bien porque para dicha tupla el atributo no tiene sentido. %a que los nulos no son valores! deben tratarse de modo diferente! lo que causa problemas de implementacin. *e hecho! no todos los $67* relacionales soportan los nulos. 0.11. 4e"la de inte"ridad de entidades.- La primera regla de integridad se aplica a las claves primarias de las relaciones base" ninguno de los atributos que componen la clave primaria puede ser nulo. <or definicin! una clave primaria es un identificador irreducible que se utiliza para identificar de modo 4nico las tuplas. Rue es irreducible significa que ning4n subconjunto de la clave primaria sirve para identificar las tuplas de modo 4nico. $i se permite que parte de la clave primaria sea nula! se est diciendo que no todos sus atributos son necesarios para distinguir las tuplas! con lo que se contradice la irreductibilidad. :tese que esta regla slo se aplica a las relaciones base y a las claves primarias! no a las claves alternativas. 0.12.- 4e"la de inte"ridad referencial.- La segunda regla de integridad se aplica a las claves ajenas" si en una relacin hay alguna clave ajena, sus valores deben coincidir con valores de la clave primaria a la que hace referencia, o bien, deben ser completamente nulos. La regla de integridad referencial se enmarca en t)rminos de estados de la base de datos" indica lo que es un estado ilegal! pero no dice cmo puede evitarse. La cuestin es Squ) hacer si estando en un estado legal! llega una peticin para realizar una operacin que conduce a un estado ilegalT (#isten dos opciones" rechazar la operacin! o bien aceptar la operacin y realizar operaciones adicionales compensatorias que conduzcan a un estado legal. <or lo tanto! para cada clave ajena de la base de datos habr que contestar a tres preguntas" Regla de los nulos S5iene sentido que la clave ajena acepte nulosT Regla de borrado SRu) ocurre si se intenta borrar la tupla referenciada por la clave ajenaT o Restringir no se permite borrar la tupla referenciada. o !ropagar se borra la tupla referenciada y se propaga el borrado a las tuplas que la referencian mediante la clave ajena. o "nular se borra la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave ajena &slo si acepta nulos'. Regla de modificacin SRu) ocurre si se intenta modificar el valor de la clave primaria de la tupla referenciada por la clave ajenaT o Restringir no se permite modificar el valor de la clave primaria de la tupla referenciada. o !ropagar se modifica el valor de la clave primaria de la tupla referenciada y se propaga la modificacin a las tuplas que la referencian mediante la clave ajena. o "nular se modifica la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave ajena &slo si acepta nulos'. 0.13. 4e"las de ne"ocio.- Adems de las dos reglas de integridad anteriores! los usuarios o los administradores de la base de datos pueden imponer ciertas restricciones especficas sobre los datos! denominadas reglas de negocio. <or ejemplo! si en una oficina de la empresa inmobiliaria slo puede haber hasta veinte empleados! el $67* debe dar la posibilidad al usuario de definir una regla al respecto y debe hacerla respetar. (n este caso! no debera permitir dar de alta un empleado en una oficina que ya tiene los veinte permitidos. Poy en da a4n e#isten $67* relacionales que no permiten definir este tipo de restricciones ni las hacen respetar. UNIDAD DE TRABAJO N 3 : Optimizacin del diseo de bases de datos relacionales. Objetivo de la Unidad de Trabajo: Ampliar los conocimientos sobre la optimizacin de las relaciones de la base de datos. '. 2engua-es relacionales La tercera parte de un modelo de datos es la de la manipulacin. $on varios los lenguajes utilizados por los $67* relacionales para manejar las relaciones. Algunos de ellos son procedurales! lo que quiere decir que el usuario dice al sistema e#actamente cmo debe manipular los datos. Jtros son no procedurales! que significa que el usuario dice qu) datos necesita! en lugar de decir cmo deben obtenerse. (n este apartado se presentan el lgebra relacional y el clculo relacional! definidos por Codd como la base de los lenguajes relacionales. $e puede decir que el lgebra es un lenguaje procedural &de alto nivel'! mientras que el clculo relacional es un lenguaje no procedural. $in embargo! ambos lenguajes son equivalentes" para cada e#presin del lgebra! se puede encontrar una e#presin equivalente en el clculo! y viceversa. (l lgebra relacional &o el clculo relacional' se utilizan para medir la potencia de los lenguajes relacionales. $i un lenguaje permite obtener cualquier relacin que se pueda derivar mediante el lgebra relacional! se dice que es relacionalmente completo. La mayora de los lenguajes relacionales son relacionalmente completos! pero tienen ms potencia que el lgebra o el clculo porque se les han a8adido operadores especiales. 5anto el lgebra como el clculo son lenguajes formales no muy NNamigablesA. <ero se deben estudiar porque sirven para ilustrar las operaciones bsicas que todo lenguaje de manejo datos debe ofrecer. Adems! han sido la base para otros lenguajes relacionales de manejo de datos de ms alto nivel. 7.1. :l"ebra relacional (l lgebra relacional es un lenguaje formal con una serie de operadores que trabajan sobre una o varias relaciones para obtener otra relacin resultado! sin que cambien las relaciones originales. 5anto los operandos como los resultados son relaciones! por lo que la salida de una operacin puede ser la entrada de otra operacin. (sto permite anidar e#presiones del lgebra! del mismo modo que se pueden anidar las e#presiones aritm)ticas. A esta propiedad se le denomina clausura" las relaciones son cerradas bajo el lgebra! del mismo modo que los n4meros son cerrados bajo las operaciones aritm)ticas. (n este apartado se presentan los operadores del lgebra relacional de un modo informal. Las definiciones formales pueden encontrarse en la bibliografa que se comenta al final del captulo. <rimero se describen los ocho operadores originalmente propuestos por Codd y despu)s se estudian algunos operadores adicionales que a8aden potencia al lenguaje. *e los ocho operadores! slo hay cinco que son fundamentales" restriccin! proyeccin! producto cartesiano! unin y diferencia! que permiten realizar la mayora de las operaciones de obtencin de datos. Los operadores no fundamentales son la concatenacin #join$! la interseccin y la divisin! que se pueden e#presar a partir de los cinco operadores fundamentales. La restriccin y la proyeccin son operaciones unarias porque operan sobre una sola relacin. (l resto de las operaciones son binarias porque trabajan sobre pares de relaciones. (n las definiciones que se presentan a continuacin! se supone que 3 y $ son dos relaciones cuyos atributos son AU&a ! a ! ...! a ' y 7U&b ! b ! ...! b ' respectivamente. !estriccin " 3 VP(3( condicin La restriccin! tambi)n denominada seleccin! opera sobre una sola relacin 3 y da como resultado otra relacin cuyas tuplas son las tuplas de 3 que satisfacen la condicin especificada. (sta condicin es una comparacin en la que aparece al menos un atributo de 3! o una combinacin booleana de varias de estas comparaciones. 4-emplo ".1 Jbtener todos los empleados con un salario anual superior a -W.DDD euros. <LA:52LLA VP(3( salarioX-WDDD (num :ombre Apellido *ireccin 5el)fono <uesto ?echaYnac $alario *:2 Jnum (LM- Amelia <astor =agallanes! -W ./I MZI W/D *irector -MH-DH/M 0DDDD 0.I0MM-M( JW Castelln (60C <edro Cubedo 7ayarri! -- ./I W0W /.D $upervisor MIH0HWC -ZDDD 0ZC///M0[ J0 @illarreal (A. 3ita 3enau Casalduch! 0M ./I MWC WWD $upervisor -.HWH/D -ZDDD 0.M00-.D? JC Castelln (6W Eulio <rats =elilla! M0 ./I WMI W.D *irector -.H-MHWD MIDDD MW/II0D.[ J0 @illarreal (LI- Carlos 7aeza Perrero! W- ./I MIC MWD $upervisor M.HMH/C -ZDDD 0.WWM-005 JW Castelln 4-emplo ".2 Jbtener todos los inmuebles de Castelln con un alquiler mensual de hasta 0WD euros. 2:=U(7L( VP(3( poblacinUNCastellnO A:* alquiler\U0WD 2num Calle Area <oblacin 5ipo Pab Alquiler <num 2L.I 3iu (bre! MI 3onda $ur Castelln <iso I 0WD <ZC 26I $orell! W 6rao Castelln <iso 0 0DD <ID 260/ Alicante!- $egorbe <iso 0 0MW <.0 6royeccin " 3Ka ! ...! a L La proyeccin opera sobre una sola relacin 3 y da como resultado otra relacin que contiene un subconjunto vertical de 3! e#trayendo los valores de los atributos especificados y eliminando duplicados. 4-emplo ".3 Jbtener un listado de empleados mostrando su n4mero! nombre! apellido y salario. <LA:52LLA Kenum!nombre!apellido!salarioL (num :ombre Apellido $alario (LM- Amelia <astor 0DDDD (60C <edro Cubedo -ZDDD (6-I Luis Collado -MDDD (A. 3ita 3enau -ZDDD (6W Eulio <rats MIDDD (LI- Carlos 7aeza -ZDDD 4-emplo "." Jbtener los distintos puestos que pueden ocupar los empleados. <LA:52LLA KpuestoL <uesto *irector $upervisor Administ. 6roducto cartesiano " 3 52=($ $ (l producto cartesiano obtiene una relacin cuyas tuplas estn formadas por la concatenacin de todas las tuplas de 3 con todas las tuplas de $. La restriccin y la proyeccin son operaciones que permiten e#traer informacin de una sola relacin. Pabr casos en que sea necesario combinar la informacin de varias relaciones. (l producto cartesiano NNmultiplicaA dos relaciones! definiendo una nueva relacin que tiene todos los pares posibles de tuplas de las dos relaciones. $i la relacin 3 tiene tuplas y atributos y la relacin $ tiene tuplas y atributos! la relacin resultado tendr tuplas y atributos. %a que es posible que haya atributos con el mismo nombre en las dos relaciones! el nombre de la relacin se antepondr al del atributo en este caso para que los nombres de los atributos sigan siendo 4nicos en la relacin resultado. 4-emplo ".$ Jbtener los nombres de los inquilinos y los comentarios que )stos han realizado cuando han visto alg4n inmueble. 2:RU2L2:JKqnum!nombre!apellidoL 52=($ @2$25AKqnum!inum!comentarioL 2:RU2L2:J.Rnum :ombre Apellido @2$25A.Rnum 2num Comentario RC/ Euan ?elip RW/ 2A-I muy peque8o RC/ Euan ?elip RC/ 26I muy lejos RC/ Euan ?elip RW/ 26I RC/ Euan ?elip R/M 2A-I no tiene saln RC/ Euan ?elip RW/ 260/ RW/ Ana 6rangel RW/ 2A-I muy peque8o RW/ Ana 6rangel RC/ 26I muy lejos RW/ Ana 6rangel RW/ 26I RW/ Ana 6rangel R/M 2A-I no tiene saln RW/ Ana 6rangel RW/ 260/ RCI (lena Abaso RW/ 2A-I muy peque8o RCI (lena Abaso RC/ 26I muy lejos RCI (lena Abaso RW/ 26I RCI (lena Abaso R/M 2A-I no tiene saln RCI (lena Abaso RW/ 260/ R/M Alicia =ori RW/ 2A-I muy peque8o R/M Alicia =ori RC/ 26I muy lejos R/M Alicia =ori RW/ 26I R/M Alicia =ori R/M 2A-I no tiene saln R/M Alicia =ori RW/ 260/ Como se puede observar! la relacin resultado contiene ms informacin de la que se necesita. <or ejemplo! la primera tupla tiene distintos n4meros de inquilino" el comentario realizado en la visita no corresponde al inquilino cuyo nombre y apellido se muestra. <ara obtener el listado que se pide en el ejemplo! es necesario realizar una restriccin para quedarse solamente con las tuplas en donde 2:RU2L2:J.Rnum U @2$25A.Rnum. &2:RU2L2:JKqnum!nombre!apellidoL 52=($ @2$25AKqnum!inum!comentarioL' VP(3( inquilino.qnumUvisita.qnum (l resultado de esta operacin se muestra a continuacin. 2:RU2L2:J.Rnum :ombre Apellido @2$25A.Rnum 2num Comentario RC/ Euan ?elip RC/ 26I muy lejos RW/ Ana 6rangel RW/ 2A-I muy peque8o RW/ Ana 6rangel RW/ 26I RW/ Ana 6rangel RW/ 260/ R/M Alicia =ori R/M 2A-I no tiene saln La combinacin del producto cartesiano y la restriccin del modo en que se acaba de realizar! se puede reducir a la operacin de concatenacin & join' que se presenta ms adelante. 3nin " 3 U:2J: $ La unin de dos relaciones 3 y $! con y tuplas respectivamente! es otra relacin que tiene como mucho tuplas siendo )stas las tuplas que se encuentran en 3 o en $ o en ambas relaciones a la vez. <ara poder realizar esta operacin! 3 y $ deben ser compatibles para la unin. $e dice que dos relaciones son compatibles para la unin si ambas tienen la misma cabecera! es decir! si tienen el mismo n4mero de atributos y )stos se encuentran definidos sobre los mismos dominios. (n muchas ocasiones ser necesario realizar proyecciones para hacer que dos relaciones sean compatibles para la unin. 4-emplo ".% Jbtener un listado de las reas en las que hay oficinas o inmuebles para alquilar. J?2C2:AKreaL U:2J: 2:=U(7L(KreaL Area Centro 6rao 3onda $ur 3afalafena Diferencia " 3 =2:U$ $ La diferencia obtiene una relacin que tiene las tuplas que se encuentran en 3 y no se encuentran en $. <ara realizar esta operacin! 3 y $ deben ser compatibles para la unin. 4-emplo ".& Jbtener un listado de todas las poblaciones en donde hay una oficina y no hay inmuebles para alquilar. J?2C2:AKpoblacinL =2:U$ 2:=U(7L(KpoblacinL <oblacin @illarreal #oncatenacin 78oin9 " 3 EJ2: $ La concatenacin de dos relaciones 3 y $ obtiene como resultado una relacin cuyas tuplas son todas las tuplas de 3 concatenadas con todas las tuplas de $ que en los atributos comunes &que se llaman igual' tienen los mismos valores. (stos atributos comunes aparecen una sola vez en el resultado. 4-emplo ".' Jbtener los nombres y los comentarios que los inquilinos han realizado cuando han visto alg4n inmueble. 2:RU2L2:J EJ2: @2$25A (sta e#presin obtiene el mismo resultado que la e#presin final del ejemplo I.W! ya que la concatenacin es! en realidad! un producto cartesiano y una restriccin de igualdad sobre los atributos comunes. #oncatenacin e:terna 75uter--oin9 " 3 EJ2: $ &]' La concatenacin e#terna es una concatenacin en la que las tuplas de 3 que no tienen valores en com4n con ninguna tupla de $! tambi)n aparecen en el resultado. 4-emplo ".( Jbtener un listado de todos los inmuebles y las visitas que han tenido. 2:=U(7L( EJ2: @2$25A &]' 2num Calle <oblacin Rnum ?echa Comentario 2A-I (nmedio! -MZ Castelln RW/ MIH--H.. muy peque8o 2A-I (nmedio! -MZ Castelln R/M -IH--H.. no tiene saln 2L.I 3iu (bre! MI Castelln 26I $orell! W Castelln RC/ MDH-DH.. muy lejos 26I $orell! W Castelln RW/ M/H--H.. 260/ Alicante!- $egorbe RW/ MZH-DH.. 26M- $an ?rancisco! -D @inaroz 26-/ Capuchinos! -. Castelln La e#presin $ &]' EJ2: 3 es equivalente a 3 EJ2: $ &]'. Cuando en ambas relaciones hay tuplas que no se pueden concatenar y se desea que en el resultado aparezcan tambi)n todas estas tuplas &tanto las de una relacin como las de la otra'! se utiliza la concatenacin e%terna completa" 3 &]' EJ2: $ &]' Interseccin " 3 2:5(3$(C5 $ La interseccin obtiene como resultado una relacin que contiene las tuplas de 3 que tambi)n se encuentran en $. <ara realizar esta operacin! 3 y $ deben ser compatibles para la unin. La interseccin se puede e#presar en t)rminos de diferencias" 3 2:5(3$(C5 $ U 3 =2:U$ &3 =2:U$ $' Di.isin " 3 *2@2*(7% $ $uponiendo que la cabecera de 3 es el conjunto de atributos A y que la cabecera de $ es el conjunto de atributos 7! tales que 7 es un subconjunto de A! y si C U A 1 7 &los atributos de 3 que no estn en $'! la divisin obtiene una relacin cuya cabecera es el conjunto de atributos C y que contiene las tuplas de 3 que estn acompa8adas de todas las tuplas de $. 4-emplo ".1/ Jbtener los inquilinos que han visitado todos los inmuebles de tres habitaciones. @2$25AKqnum!inumL *2@2*(7% &2:=U(7L( VP(3( habU0'KinumL Rnum RW/ Adems de las operaciones que Codd incluy en el lgebra relacional! otros autores han aportado otras operaciones para dar ms potencia al lenguaje. (s de especial inter)s la agrupacin! tambi)n denominada resumen! que a8ade capacidad computacional al lgebra. Agrupacin " $U==A32^( 3 63JU<7%&a !...!a ' A** clculo A$ atributo (sta operacin agrupa las tuplas de 3 que tienen los mismos valores en los atributos especificados y realiza un clculo sobre los grupos obtenidos. La relacin resultado tiene como cabecera los atributos por los que se ha agrupado y el clculo realizado! al que se da el nombre especificado en atributo. Los clculos que se pueden realizar sobre los grupos de filas son" suma de los valores de un atributo & $U=&a ''! media de los valores de un atributo & A@6&a ''! m#imo y mnimo de los valores de un atributo & =A[&a '! =2:&a '' y n4mero de tuplas en el grupo & CJU:5&Q''. La relacin resultado tendr tantas filas como grupos se hayan obtenido. 4-emplo ".11 Jbtener el salario total que se gasta en los empleados de cada oficina. $U==A32^( <LA:52LLA 63JU<7%&oficina' A** $U=&salario' A$ salarioYtotal Jficina $alarioYtotal JW IZDDD J0 WIDDD JC -ZDDD 7.2. -lculo relacional.- (l lgebra relacional y el clculo relacional son formalismos diferentes que representan distintos estilos de e#presin del manejo de datos en el mbito del modelo relacional. (l lgebra relacional proporciona una serie de operaciones que se pueden usar para decir al sistema cmo construir la relacin deseada a partir de las relaciones de la base de datos. (l clculo relacional proporciona una notacin para formular la definicin de la relacin deseada en t)rminos de las relaciones de la base de datos. (l clculo relacional toma su nombre del c&lculo de predicados! que es una rama de la lgica. Pay dos tipos de clculo relacional! el orientado a tuplas! propuesto por Codd! y el orientado a dominios! propuesto por otros autores. (l estudio del clculo relacional se har mediante definiciones informales. Las definiciones formales se pueden encontrar en la bibliografa que se comenta al final del captulo. (n el clculo de predicados &lgica de primer orden'! un predicado es una funcin con argumentos que se puede evaluar a verdadero o falso. Cuando los argumentos se sustituyen por valores! la funcin lleva a una e#presin denominada proposicin! que puede ser verdadera o falsa. <or ejemplo! las frases NCarlos 7aeza es un miembro de la plantillaO y NCarlos 7aeza gana ms que Amelia <astorO son proposiciones! ya que se puede determinar si son verdaderas o falsas. (n el primer caso! la funcin Nes un miembro de la plantillaO tiene un argumento &Carlos 7aeza' y en el segundo caso! la funcin Ngana ms queO tiene dos argumentos &Carlos 7aeza y Amelia <astor'. $i un predicado tiene una variable! como en N # es un miembro de la plantillaO! esta variable debe tener un rango asociado. Cuando la variable se sustituye por alguno de los valores de su rango! la proposicin puede ser cierta9 para otros valores puede ser falsa. <or ejemplo! si el rango de # es el conjunto de todas las personas y reemplazamos # por Carlos 7aeza! la proposicin NCarlos 7aeza es un miembro de la plantillaO es cierta. <ero si reemplazamos # por el nombre de una persona que no es miembro de la plantilla! la proposicin es falsa. $i ? es un predicado! la siguiente e#presin corresponde al conjunto de todos los valores de # para los que ? es cierto" # VP(3( ?&#' Los predicados se pueden conectar mediante A:*! J3 y :J5 para formar predicados compuestos. '.2.1. #,lculo orientado a tuplas.1 (n el clculo relacional orientado a tuplas! lo que interesa es encontrar tuplas para las que se cumple cierto predicado. (l clculo orientado a tuplas se basa en el uso de variables tupla. Una variable tupla es una variable cuyo rango de valores son las tuplas de una relacin. <or ejemplo! para especificar el rango de la variable tupla <[ sobre la relacin <LA:52LLA se utiliza la siguiente e#presin" 3A:6( J? <[ 2$ <LA:52LLA <ara e#presar la consulta Nobtener todas las tuplas <[ para las que ?&<[' es ciertoO! se escribe la siguiente e#presin" <[ VP(3( ?&<[' donde ? es lo que se denomina una frmula bien formada #fbf$. <or ejemplo! para e#presar la consulta Nobtener todos los datos de los empleados que ganan ms de -D.DDD eurosO se puede escribir" 3A:6( J? <[ 2$ <LA:52LLA <[ VP(3( <[.salario X -DDDD <[.salario se refiere al valor del atributo salario para la tupla <[. <ara que se muestren solamente algunos atributos! por ejemplo! apellido y salario! en lugar de todos los atributos de la relacin! se escribe" 3A:6( J? <[ 2$ <LA:52LLA <[.apellido! <[.salario VP(3( <[.salario X -DDDD Pay dos cuantificadores que se utilizan en las frmulas bien formadas para decir a cuntas instancias se aplica el predicado. (l cuantificador e%istencial &Ne#isteO' se utiliza en las frmulas bien formadas que deben ser ciertas para al menos una instancia. 3A:6( J? J[ 2$ J?2C2:A J[ &J[.onum U <[.onum A:* J[.poblacin U NCastellnO' (sta frmula bien formada dice que Ne#iste una oficina que tiene el mismo n4mero que el n4mero de oficina de la tupla que ahora se encuentra en la variable de <LA:52LLA! <[! y que est en CastellnO. (l cuantificador universal &Npara todoO' se utiliza en las frmulas bien formadas que deben ser ciertas para todas las instancias. <[ &<[.poblacin NCastellnO' (sta frmula bien formada dice que Npara todas las tuplas de <LA:52LLA! la poblacin no es CastellnO. Utilizando las reglas de las operaciones lgicas! esta frmula bien formada se puede escribir tambi)n del siguiente modo" :J5 <[ &<[.poblacin NCastellnO' que dice que Nno hay ning4n miembro de la plantilla cuya poblacin sea CastellnO. Las variables tupla que no estn cuantificadas por o se denominan variables libres. $i estn cuantificadas! se denominan variables ligadas. (l clculo! al igual que cualquier lenguaje! tiene una sinta#is que permite construir e#presiones vlidas. <ara que una e#presin no sea ambigua y tenga sentido! debe seguir esta sinta#is" $i es una frmula bien formada 1ria &un predicado con argumentos' y son constantes o variables! entonces es tambi)n una frmula bien formada. $i y son constantes o variables del mismo dominio y es un operador de comparacin & '! (ntonces es una frmula bien formada. $i y son frmulas bien formadas! tambi)n lo son su conjuncin "'( ! su disyuncin )R y la negacin ')* . Adems! si es una frmula bien formada que tiene una variable libre ! entonces y tambi)n son frmulas bien formadas. 4-emplo ".12 Jbtener un listado de los empleados que llevan inmuebles de Almazora. 3A:6( J? <[ 2$ <LA:52LLA 3A:6( J? 2[ 2$ 2:=U(7L( <[ VP(3( 2[ &2[.enum <[.enum A:* 2[.poblacin U NAlmazoraO' (sta peticin se puede escribir en t)rminos del clculo" Nun miembro de la plantilla debe salir en el listado si e#iste una tupla en 2:=U(7L( que tenga asignado a ese empleado y que est) en Almazora & poblacin'O. :tese que formulando la consulta de este modo no se indica la estrategia a seguir para ejecutarla! por lo que el $67* tiene libertad para decidir qu) operaciones hacer y en qu) orden. (n el lgebra relacional se hubiera formulado as" NPacer una restriccin sobre 2:=U(7L( para quedarse con las tuplas que tienen como poblacin Almazora! y hacer despu)s una concatenacin con <LA:52LLA. 4-emplo ".13 Jbtener las oficinas cuyos empleados &todos' nacieron de -./W en adelante. 3A:6( J? <[ 2$ <LA:52LLA 3A:6( J? J[ 2$ J?2C2:A J[ VP(3( <[ &<[.onum J[.onum J3 <[.fechaYnac XU N-H-H/WO' La e#presin anterior es equivalente a esta otra" J[ VP(3( :J5 <[ &<[.onum J[.onum A:* <[.fechaYnac \ N-H-H/WO' '.2.2. #,lculo orientado a dominios.1 (n el clculo relacional orientado a dominios las variables toman sus valores en dominios! en lugar de tomar valores de tuplas de relaciones. Jtra diferencia con el clculo orientado a tuplas es que en el clculo orientado a dominios hay un tipo de comparacin adicional! a la que se denomina ser miembro de. (sta condicin tiene la forma" 3&a "v ! a "v ! ...' donde los a son atributos de la relacin 3 y los v son variables dominio o constantes. La condicin se eval4a a verdadero si e#iste alguna tupla en 3 que tiene los valores especificados en los atributos especificados. <or ejemplo! la siguiente condicin" <LA:52LLA&puesto"N$upervisorO! onum"NJ0O' se evaluar a verdadero si hay alg4n empleado que sea supervisor en la oficina J0. % la condicin <LA:52LLA&puesto"p#! onum"o#' ser cierta si hay alguna tupla en <LA:52LLA que tenga en puesto el valor actual de la variable dominio p# y que tenga en onum el valor actual de la variable dominio o#. 4-emplo ".1" Jbtener los apellidos de los empleados que no siendo directores! tienen un salario mayor de -D.DDD euros. a# VP(3( p# s# &p# N*irectorO A:* s# X -DDDD A:* <LA:52LLA&apellido"a#! puesto"p#! salario"s#'' 7.3. 'tros len"ua!es.- Aunque el clculo relacional es difcil de entender y de usar! tiene una propiedad muy atractiva" es un lenguaje no procedural. (sto ha hecho que se busquen t)cnicas no procedurales algo ms sencillas! resultando en dos nuevas categoras de lenguajes relacionales" orientados a transformaciones y grficos. Los lenguajes orientados a transformaciones son lenguajes no procedurales que utilizan relaciones para transformar los datos de entrada en la salida deseada. (stos lenguajes tienen estructuras que son fciles de utilizar y que permiten e#presar lo que se desea en t)rminos de lo que se conoce. Uno de estos lenguajes es $RL &$tructured Ruery Language'. Los lenguajes gr&ficos visualizan en pantalla una fila vaca de cada una de las tablas que indica el usuario. (l usuario rellena estas filas con un NejemploO de lo que desea y el sistema devuelve los datos que siguen tal ejemplo. Uno de estos lenguajes es R7( &Ruery1by1(#ample'. Jtra categora son los lenguajes de cuarta generacin #+,-$! que permiten dise8ar una aplicacin a medida utilizando un conjunto limitado de rdenes en un entorno amigable &normalmente un entorno de men4s'. Algunos sistemas aceptan cierto lenguaje natural! una versin restringida del idioma ingl)s! al que algunos llaman lenguaje de quinta generacin #.,-$! aunque todava se encuentra en desarrollo. Clasificacin de los sistemas de gestin de bases de datos (l criterio principal que se utiliza para clasificar los $67* es el modelo lgico en que se basan. Los modelos lgicos empleados con mayor frecuencia en los $67* comerciales actuales son el relacional! el de red y el jerrquico. Algunos $67* ms modernos se basan en modelos orientados a objetos. (l modelo relacional se basa en el concepto matemtico denominado NNrelacinA! que grficamente se puede representar como una tabla. (n el modelo relacional! los datos y las relaciones e#istentes entre los datos se representan mediante estas relaciones matemticas! cada una con un nombre que es 4nico y con un conjunto de columnas. (n el modelo relacional la base de datos es percibida por el usuario como un conjunto de tablas. (sta percepcin es slo a nivel lgico &en los niveles e#terno y conceptual de la arquitectura de tres niveles'! ya que a nivel fsico puede estar implementada mediante distintas estructuras de almacenamiento. (n el modelo de red los datos se representan como colecciones de registros y las relaciones entre los datos se representan mediante conjuntos! que son punteros en la implementacin fsica. Los registros se organizan como un grafo" los registros son los nodos y los arcos son los conjuntos. (l $67* de red ms popular es el sistema 2*=$. (l modelo jer&rquico es un tipo de modelo de red con algunas restricciones. *e nuevo los datos se representan como colecciones de registros y las relaciones entre los datos se representan mediante conjuntos. $in embargo! en el modelo jerrquico cada nodo puede tener un solo padre. Una base de datos jerrquica puede representarse mediante un rbol" los registros son los nodos! tambi)n denominados segmentos! y los arcos son los conjuntos. (l $67* jerrquico ms importante es el sistema 2=$. La mayora de los $67* comerciales actuales estn basados en el modelo relacional! mientras que los sistemas ms antiguos estaban basados en el modelo de red o el modelo jerrquico. (stos dos 4ltimos modelos requieren que el usuario tenga conocimiento de la estructura fsica de la base de datos a la que se accede! mientras que el modelo relacional proporciona una mayor independencia de datos. $e dice que el modelo relacional es declarativo &se especifica qu) datos se han de obtener' y los modelos de red y jerrquico son navegacionales &se especifica cmo se deben obtener los datos'. (l modelo orientado a objetos define una base de datos en t)rminos de objetos! sus propiedades y sus operaciones. Los objetos con la misma estructura y comportamiento pertenecen a una clase! y las clases se organizan en jerarquas o grafos acclicos. Las operaciones de cada clase se especifican en t)rminos de procedimientos predefinidos denominados m)todos. Algunos $67* relacionales e#istentes en el mercado han estado e#tendiendo sus modelos para incorporar conceptos orientados a objetos. A estos $67* se les conoce como sistemas objeto-relacionales Un segundo criterio para clasificar los $67* es el n4mero de usuarios a los que da servicio el sistema. Los sistemas monousuario slo atienden a un usuario a la vez! y su principal uso se da en los ordenadores personales. Los sistemas multiusuario! entre los que se encuentran la mayor parte de los $67*! atienden a varios usuarios al mismo tiempo. Un tercer criterio es el n4mero de sitios en los que est distribuida la base de datos. Casi todos los $67* son centralizados" sus datos se almacenan en un solo computador. Los $67* centralizados pueden atender a varios usuarios! pero el $67* y la base de datos en s residen por completo en una sola mquina. (n los $67* distribuidos la base de datos real y el propio soft;are del $67* pueden estar distribuidos en varios sitios conectados por una red. Los $67* distribuidos homog/neos utilizan el mismo $67* en m4ltiples sitios. Una tendencia reciente consiste en crear soft;are para tener acceso a varias bases de datos autnomas pree#istentes almacenadas en $67* distribuidos heterog/neos. (sto da lugar a los $67* federados o sistemas multibase de datos en los que los $67* participantes tienen cierto grado de autonoma local. =uchos $67* distribuidos emplean una arquitectura cliente1servidor. Un cuarto criterio es el coste del $67*. La mayor parte de los paquetes de $67* cuestan entre -D.DDD y -DD.DDD euros. Los sistemas monousuario ms econmicos para microcomputadores cuestan entre -DD y 0.DDD euros. (n el otro e#tremo! los paquetes ms completos cuestan ms de -DD.DDD euros. <or 4ltimo! los $67* pueden ser de propsito general o de propsito especfico. Cuando el rendimiento es fundamental! se puede dise8ar y construir un $67* de propsito especial para una aplicacin especfica! y este sistema no sirve para otras aplicaciones. =uchos sistemas de reservas de lneas a)reas son $67* de propsito especial y pertenecen a la categora de sistemas de procesamiento de transacciones en lnea &JL5<'! que deben atender un gran n4mero de transacciones concurrentes sin imponer e#cesivos retrasos. ?unciones de los sistemas de gestin de bases de datos Codd! el creador del modelo relacional! ha establecido una lista con los ocho servicios que debe ofrecer todo $67*. -. Un $67* debe proporcionar a los usuarios la capacidad de almacenar datos en la base de datos! acceder a ellos y actualizarlos. (sta es la funcin fundamental de un $67* y por supuesto! el $67* debe ocultar al usuario la estructura fsica interna &la organizacin de los ficheros y las estructuras de almacenamiento'. M. Un $67* debe proporcionar un catlogo en el que se almacenen las descripciones de los datos y que sea accesible por los usuarios. (ste catlogo es lo que se denomina diccionario de datos y contiene informacin que describe los datos de la base de datos &metadatos'. :ormalmente! un diccionario de datos almacena" o :ombre! tipo y tama8o de los datos. o :ombre de las relaciones entre los datos. o 3estricciones de integridad sobre los datos. o :ombre de los usuarios autorizados a acceder a la base de datos. o (squemas e#ternos! conceptuales e internos! y correspondencia entre los esquemas. o (stadsticas de utilizacin! tales como la frecuencia de las transacciones y el n4mero de accesos realizados a los objetos de la base de datos. Algunos de los beneficios que reporta el diccionario de datos son los siguientes" o La informacin sobre los datos se puede almacenar de un modo centralizado. (sto ayuda a mantener el control sobre los datos! como un recurso que son. o (l significado de los datos se puede definir! lo que ayudar a los usuarios a entender el propsito de los mismos. o La comunicacin se simplifica ya que se almacena el significado e#acto. (l diccionario de datos tambi)n puede identificar al usuario o usuarios que poseen los datos o que los acceden. o Las redundancias y las inconsistencias se pueden identificar ms fcilmente ya que los datos estn centralizados. o $e puede tener un historial de los cambios realizados sobre la base de datos. o (l impacto que puede producir un cambio se puede determinar antes de que sea implementado! ya que el diccionario de datos mantiene informacin sobre cada tipo de dato! todas sus relaciones y todos sus usuarios. o $e puede hacer respetar la seguridad. o $e puede garantizar la integridad. o $e puede proporcionar informacin para auditoras. 0. Un $67* debe proporcionar un mecanismo que garantice que todas las actualizaciones correspondientes a una determinada transaccin se realicen! o que no se realice ninguna. Una transaccin es un conjunto de acciones que cambian el contenido de la base de datos. Una transaccin en el sistema informtico de la empresa inmobiliaria sera dar de alta a un empleado o eliminar un inmueble. Una transaccin un poco ms complicada sera eliminar un empleado y reasignar sus inmuebles a otro empleado. (n este caso hay que realizar varios cambios sobre la base de datos. $i la transaccin falla durante su realizacin! por ejemplo porque falla el hard;are! la base de datos quedar en un estado inconsistente. Algunos de los cambios se habrn hecho y otros no! por lo tanto! los cambios realizados debern ser deshechos para devolver la base de datos a un estado consistente. I. Un $67* debe proporcionar un mecanismo que asegure que la base de datos se actualice correctamente cuando varios usuarios la estn actualizando concurrentemente. Uno de los principales objetivos de los $67* es el permitir que varios usuarios tengan acceso concurrente a los datos que comparten. (l acceso concurrente es relativamente fcil de gestionar si todos los usuarios se dedican a leer datos! ya que no pueden interferir unos con otros. $in embargo! cuando dos o ms usuarios estn accediendo a la base de datos y al menos uno de ellos est actualizando datos! pueden interferir de modo que se produzcan inconsistencias en la base de datos. (l $67* se debe encargar de que estas interferencias no se produzcan en el acceso simultneo. W. Un $67* debe proporcionar un mecanismo capaz de recuperar la base de datos en caso de que ocurra alg4n suceso que la da8e. Como se ha comentado antes! cuando el sistema falla en medio de una transaccin! la base de datos se debe devolver a un estado consistente. (ste fallo puede ser a causa de un fallo en alg4n dispositivo hard;are o un error del soft;are! que hagan que el $67* aborte! o puede ser a causa de que el usuario detecte un error durante la transaccin y la aborte antes de que finalice. (n todos estos casos! el $67* debe proporcionar un mecanismo capaz de recuperar la base de datos llevndola a un estado consistente. /. Un $67* debe proporcionar un mecanismo que garantice que slo los usuarios autorizados pueden acceder a la base de datos. La proteccin debe ser contra accesos no autorizados! tanto intencionados como accidentales. C. Un $67* debe ser capaz de integrarse con alg4n soft;are de comunicacin. =uchos usuarios acceden a la base de datos desde terminales. (n ocasiones estos terminales se encuentran conectados directamente a la mquina sobre la que funciona el $67*. (n otras ocasiones los terminales estn en lugares remotos! por lo que la comunicacin con la mquina que alberga al $67* se debe hacer a trav)s de una red. (n cualquiera de los dos casos! el $67* recibe peticiones en forma de mensajes y responde de modo similar. 5odas estas transmisiones de mensajes las maneja el gestor de comunicaciones de datos. Aunque este gestor no forma parte del $67*! es necesario que el $67* se pueda integrar con )l para que el sistema sea comercialmente viable. Z. Un $67* debe proporcionar los medios necesarios para garantizar que tanto los datos de la base de datos! como los cambios que se realizan sobre estos datos! sigan ciertas reglas. La integridad de la base de datos requiere la validez y consistencia de los datos almacenados. $e puede considerar como otro modo de proteger la base de datos! pero adems de tener que ver con la seguridad! tiene otras implicaciones. La integridad se ocupa de la calidad de los datos. :ormalmente se e#presa mediante restricciones! que son una serie de reglas que la base de datos no puede violar. <or ejemplo! se puede establecer la restriccin de que cada empleado no puede tener asignados ms de diez inmuebles. (n este caso sera deseable que el $67* controlara que no se sobrepase este lmite cada vez que se asigne un inmueble a un empleado. Adems! de estos ocho servicios! es razonable esperar que los $67* proporcionen un par de servicios ms" -. Un $67* debe permitir que se mantenga la independencia entre los programas y la estructura de la base de datos. La independencia de datos se alcanza mediante las vistas o subesquemas. La independencia de datos fsica es ms fcil de alcanzar! de hecho hay varios tipos de cambios que se pueden realizar sobre la estructura fsica de la base de datos sin afectar a las vistas. $in embargo! lograr una completa independencia de datos lgica es ms difcil. A8adir una nueva entidad! un atributo o una relacin puede ser sencillo! pero no es tan sencillo eliminarlos. M. Un $67* debe proporcionar una serie de herramientas que permitan administrar la base de datos de modo efectivo. Algunas herramientas trabajan a nivel e#terno! por lo que habrn sido producidas por el administrador de la base de datos. Las herramientas que trabajan a nivel interno deben ser proporcionadas por el distribuidor del $67*. Algunas de ellas son" o Perramientas para importar y e#portar datos. o Perramientas para monitorizar el uso y el funcionamiento de la base de datos. o <rogramas de anlisis estadstico para e#aminar las prestaciones o las estadsticas de utilizacin. o Perramientas para reorganizacin de ndices. o Perramientas para aprovechar el espacio dejado en el almacenamiento fsico por los registros borrados y que consoliden el espacio liberado para reutilizarlo cuando sea necesario. Componentes de un sistema de gestin de bases de datos Los $67* son paquetes de soft;are muy complejos y sofisticados que deben proporcionar los servicios comentados en la seccin anterior. :o se puede generalizar sobre los elementos que componen un $67* ya que varan mucho unos de otros. $in embargo! es muy 4til conocer sus componentes y cmo se relacionan cuando se trata de comprender lo que es un sistema de bases de datos. Un $67* tiene varios mdulos! cada uno de los cuales realiza una funcin especfica. (l sistema operativo proporciona servicios bsicos al $67*! que es construido sobre )l. (l procesador de consultas es el componente principal de un $67*. 5ransforma las consultas en un conjunto de instrucciones de bajo nivel que se dirigen al gestor de la base de datos. (l gestor de la base de datos es el interface con los programas de aplicacin y las consultas de los usuarios. (l gestor de la base de datos acepta consultas y e#amina los esquemas e#terno y conceptual para determinar qu) registros se requieren para satisfacer la peticin. (ntonces el gestor de la base de datos realiza una llamada al gestor de ficheros para ejecutar la peticin. (l gestor de ficheros maneja los ficheros en disco en donde se almacena la base de datos. (ste gestor establece y mantiene la lista de estructuras e ndices definidos en el esquema interno. $i se utilizan ficheros dispersos! llama a la funcin de dispersin para generar la direccin de los registros. <ero el gestor de ficheros no realiza directamente la entrada y salida de datos. Lo que hace es pasar la peticin a los m)todos de acceso del sistema operativo que se encargan de leer o escribir los datos en el buffer del sistema. (l preprocesador del -0( convierte las sentencias del L=* embebidas en los programas de aplicacin! en llamadas a funciones estndar escritas en el lenguaje anfitrin. (l preprocesador del L=* debe trabajar con el procesador de consultas para generar el cdigo apropiado. (l compilador del -(( convierte las sentencias del L** en un conjunto de tablas que contienen metadatos. (stas tablas se almacenan en el diccionario de datos. (l gestor del diccionario controla los accesos al diccionario de datos y se encarga de mantenerlo. La mayora de los componentes del $67* acceden al diccionario de datos. Los principales componentes del gestor de la base de datos son los siguientes" 1ontrol de autorizacin. (ste mdulo comprueba que el usuario tiene los permisos necesarios para llevar a cabo la operacin que solicita. !rocesador de comandos. Una vez que el sistema ha comprobado los permisos del usuario! se pasa el control al procesador de comandos. 1ontrol de la integridad. Cuando una operacin cambia los datos de la base de datos! este mdulo debe comprobar que la operacin a realizar satisface todas las restricciones de integridad necesarias. )ptimizador de consultas. (ste mdulo determina la estrategia ptima para la ejecucin de las consultas. ,estor de transacciones. (ste mdulo realiza el procesamiento de las transacciones. !lanificador #scheduler$. (ste mdulo es el responsable de asegurar que las operaciones que se realizan concurrentemente sobre la base de datos tienen lugar sin conflictos. ,estor de recuperacin. (ste mdulo garantiza que la base de datos permanece en un estado consistente en caso de que se produzca alg4n fallo. ,estor de buffers. (ste mdulo es el responsable de transferir los datos entre memoria principal y los dispositivos de almacenamiento secundario. A este mdulo tambi)n se le denomina gestor de datos. Arquitectura de los sistemas de bases de datos Pay tres caractersticas importantes inherentes a los sistemas de bases de datos" la separacin entre los programas de aplicacin y los datos! el manejo de m4ltiples vistas por parte de los usuarios y el uso de un catlogo para almacenar el esquema de la base de datos. (n -.CW! el comit) A:$21$<A3C &American :ational $tandard 2nstitute 1 $tandards <lanning and 3equirements Committee' propuso una arquitectura de tres niveles para los sistemas de bases de datos! que resulta muy 4til a la hora de conseguir estas tres caractersticas. (l objetivo de la arquitectura de tres niveles es el de separar los programas de aplicacin de la base de datos fsica. (n esta arquitectura! el esquema de una base de datos se define en tres niveles de abstraccin distintos" -. (n el nivel interno se describe la estructura fsica de la base de datos mediante un esquema interno. (ste esquema se especifica mediante un modelo fsico y describe todos los detalles para el almacenamiento de la base de datos! as como los m)todos de acceso. M. (n el nivel conceptual se describe la estructura de toda la base de datos para una comunidad de usuarios &todos los de una empresa u organizacin'! mediante un esquema conceptual. (ste esquema oculta los detalles de las estructuras de almacenamiento y se concentra en describir entidades! atributos! relaciones! operaciones de los usuarios y restricciones. (n este nivel se puede utilizar un modelo conceptual o un modelo lgico para especificar el esquema. 0. (n el nivel e%terno se describen varios esquemas e%ternos o vistas de usuario. Cada esquema e#terno describe la parte de la base de datos que interesa a un grupo de usuarios determinado y oculta a ese grupo el resto de la base de datos. (n este nivel se puede utilizar un modelo conceptual o un modelo lgico para especificar los esquemas. La mayora de los $67* no distinguen del todo los tres niveles. Algunos incluyen detalles del nivel fsico en el esquema conceptual. (n casi todos los $67* que se manejan vistas de usuario! los esquemas e#ternos se especifican con el mismo modelo de datos que describe la informacin a nivel conceptual! aunque en algunos se pueden utilizar diferentes modelos de datos en los niveles conceptual y e#terno. Pay que destacar que los tres esquemas no son ms que descripciones de los mismos datos pero con distintos niveles de abstraccin. Los 4nicos datos que e#isten realmente estn a nivel fsico! almacenados en un dispositivo como puede ser un disco. (n un $67* basado en la arquitectura de tres niveles! cada grupo de usuarios hace referencia e#clusivamente a su propio esquema e#terno. <or lo tanto! el $67* debe transformar cualquier peticin e#presada en t)rminos de un esquema e#terno a una peticin e#presada en t)rminos del esquema conceptual! y luego! a una peticin en el esquema interno! que se procesar sobre la base de datos almacenada. $i la peticin es de una obtencin &consulta' de datos! ser preciso modificar el formato de la informacin e#trada de la base de datos almacenada! para que coincida con la vista e#terna del usuario. (l proceso de transformar peticiones y resultados de un nivel a otro se denomina correspondencia o transformacin. (stas correspondencias pueden requerir bastante tiempo! por lo que algunos $67* no cuentan con vistas e#ternas. La arquitectura de tres niveles es 4til para e#plicar el concepto de independencia de datos que podemos definir como la capacidad para modificar el esquema en un nivel del sistema sin tener que modificar el esquema del nivel inmediato superior. $e pueden definir dos tipos de independencia de datos" La independencia lgica es la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas e#ternos ni los programas de aplicacin. $e puede modificar el esquema conceptual para ampliar la base de datos o para reducirla. $i! por ejemplo! se reduce la base de datos eliminando una entidad! los esquemas e#ternos que no se refieran a ella no debern verse afectados. La independencia fsica es la capacidad de modificar el esquema interno sin tener que alterar el esquema conceptual &o los e#ternos'. <or ejemplo! puede ser necesario reorganizar ciertos ficheros fsicos con el fin de mejorar el rendimiento de las operaciones de consulta o de actualizacin de datos. *ado que la independencia fsica se refiere slo a la separacin entre las aplicaciones y las estructuras fsicas de almacenamiento! es ms fcil de conseguir que la independencia lgica. (n los $67* que tienen la arquitectura de varios niveles es necesario ampliar el catlogo o diccionario! de modo que incluya informacin sobre cmo establecer la correspondencia entre las peticiones de los usuarios y los datos! entre los diversos niveles. (l $67* utiliza una serie de procedimientos adicionales para realizar estas correspondencias haciendo referencia a la informacin de correspondencia que se encuentra en el catlogo. La independencia de datos se consigue porque al modificarse el esquema en alg4n nivel! el esquema del nivel inmediato superior permanece sin cambios! slo se modifica la correspondencia entre los dos niveles. :o es preciso modificar los programas de aplicacin que hacen referencia al esquema del nivel superior. <or lo tanto! la arquitectura de tres niveles puede facilitar la obtencin de la verdadera independencia de datos! tanto fsica como lgica. $in embargo! los dos niveles de correspondencia implican un gasto e#tra durante la ejecucin de una consulta o de un programa! lo cual reduce la eficiencia del $67*. (s por esto que muy pocos $67* han implementado esta arquitectura completa. Lenguajes de los sistemas de gestin de bases de datos Los $67* deben ofrecer lenguajes e interfaces apropiadas para cada tipo de usuario" administradores de la base de datos! dise8adores! programadores de aplicaciones y usuarios finales. Lenguaje de definicin de datos Una vez finalizado el dise8o de una base de datos y escogido un $67* para su implementacin! el primer paso consiste en especificar el esquema conceptual y el esquema interno de la base de datos! y la correspondencia entre ambos. (n muchos $67* no se mantiene una separacin estricta de niveles! por lo que el administrador de la base de datos y los dise8adores utilizan el mismo lenguaje para definir ambos esquemas! es el lenguaje de definicin de datos &L**'. (l $67* posee un compilador de L** cuya funcin consiste en procesar las sentencias del lenguaje para identificar las descripciones de los distintos elementos de los esquemas y almacenar la descripcin del esquema en el catlogo o diccionario de datos. $e dice que el diccionario contiene metadatos" describe los objetos de la base de datos. Cuando en un $67* hay una clara separacin entre los niveles conceptual e interno! el L** slo sirve para especificar el esquema conceptual. <ara especificar el esquema interno se utiliza un lenguaje de definicin de almacenamiento &L*A'. Las correspondencias entre ambos esquemas se pueden especificar en cualquiera de los dos lenguajes. <ara tener una verdadera arquitectura de tres niveles sera necesario disponer de un tercer lenguaje! el lenguaje de definicin de vistas &L*@'! que se utilizara para especificar las vistas de los usuarios y su correspondencia con el esquema conceptual. Lenguaje de manejo de datos Una vez creados los esquemas de la base de datos! los usuarios necesitan un lenguaje que les permita manipular los datos de la base de datos" realizar consultas! inserciones! eliminaciones y modificaciones. (ste lenguaje es el que se denomina lenguaje de manejo de datos &L=*'. Pay dos tipos de L=*" los procedurales y los no procedurales. Con un -0( procedural el usuario &normalmente ser un programador' especifica qu) datos se necesitan y cmo hay que obtenerlos. (sto quiere decir que el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la informacin requerida. (stos lenguajes acceden a un registro! lo procesan y basndose en los resultados obtenidos! acceden a otro registro! que tambi)n deben procesar. As se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un L=* procedural deben estar embebidas en un lenguaje de alto nivel! ya que se necesitan sus estructuras &bucles! condicionales! etc.' para obtener y procesar cada registro individual. A este lenguaje se le denomina lenguaje anfitrin. Las bases de datos jerrquicas y de red utilizan L=* procedurales. Un -0( no procedural se puede utilizar de manera independiente para especificar operaciones complejas sobre la base de datos de forma concisa. (n muchos $67* se pueden introducir interactivamente instrucciones del L=* desde un terminal o bien embeberlas en un lenguaje de programacin de alto nivel. Los L=* no procedurales permiten especificar los datos a obtener en una consulta o los datos que se deben actualizar! mediante una sola y sencilla sentencia. (l usuario o programador especifica qu) datos quiere obtener sin decir cmo se debe acceder a ellos. (l $67* traduce las sentencias del L=* en uno o varios procedimientos que manipulan los conjuntos de registros necesarios. (sto libera al usuario de tener que conocer cul es la estructura fsica de los datos y qu) algoritmos se deben utilizar para acceder a ellos. A los L=* no procedurales tambi)n se les denomina declarativos. Las bases de datos relacionales utilizan L=* no procedurales! como $RL &$tructured Ruery Language' o R7( &Ruery17y1(#ample'. Los lenguajes no procedurales son ms fciles de aprender y de usar que los procedurales! y el usuario debe realizar menos trabajo! siendo el $67* quien hace la mayor parte. La parte de los L=* no procedurales que realiza la obtencin de datos es lo que se denomina un lenguaje de consultas. (n general! las rdenes tanto de obtencin como de actualizacin de datos de un L=* no procedural se pueden utilizar interactivamente! por lo que al conjunto completo de sentencias del L=* se le denomina lenguaje de consultas! aunque es t)cnicamente incorrecto. Lenguajes de cuarta generacin :o e#iste consenso sobre lo que es un lenguaje de cuarta generacin &I6L'. Lo que en un lenguaje de tercera generacin &06L' como CJ7JL requiere cientos de lneas de cdigo! tan solo necesita diez o veinte lneas en un I6L. Comparado con un 06L! que es procedural! un I6L es un lenguaje no procedural" el usuario define qu) se debe hacer! no cmo debe hacerse. Los I6L se apoyan en unas herramientas de mucho ms alto nivel denominadas herramientas de cuarta generacin. (l usuario no debe definir los pasos a seguir en un programa para realizar una determinada tarea! tan slo debe definir una serie de parmetros que estas herramientas utilizarn para generar un programa de aplicacin. $e dice que los I6L pueden mejorar la productividad de los programadores en un factor de -D! aunque se limita el tipo de problemas que pueden resolver. Los I6L abarcan" Lenguajes de presentacin! como lenguajes de consultas y generadores de informes. Lenguajes especializados! como hojas de clculo y lenguajes de bases de datos. 6eneradores de aplicaciones que definen! insertan! actualizan y obtienen datos de la base de datos. Lenguajes de muy alto nivel que se utilizan para generar el cdigo de la aplicacin. Los lenguajes $RL y R7( son ejemplos de I6L. Pay otros tipos de I6L" Un generador de formularios es una herramienta interactiva que permite crear rpidamente formularios de pantalla para introducir o visualizar datos. Los generadores de formularios permiten que el usuario defina el aspecto de la pantalla! qu) informacin se debe visualizar y en qu) lugar de la pantalla debe visualizarse. Algunos generadores de formularios permiten la creacin de atributos derivados utilizando operadores aritm)ticos y tambi)n permiten especificar controles para la validacin de los datos de entrada. Un generador de informes es una herramienta para crear informes a partir de los datos almacenados en la base de datos. $e parece a un lenguaje de consultas en que permite al usuario hacer preguntas sobre la base de datos y obtener informacin de ella para un informe. $in embargo! en el generador de informes se tiene un mayor control sobre el aspecto de la salida. $e puede dejar que el generador determine automticamente el aspecto de la salida o se puede dise8ar )sta para que tenga el aspecto que desee el usuario final. Un generador de gr&ficos es una herramienta para obtener datos de la base de datos y visualizarlos en un grfico mostrando tendencias y relaciones entre datos. :ormalmente se pueden dise8ar distintos tipos de grficos" barras! lneas! etc. Un generador de aplicaciones es una herramienta para crear programas que hagan de interface entre el usuario y la base de datos. (l uso de un generador de aplicaciones puede reducir el tiempo que se necesita para dise8ar un programa de aplicacin. Los generadores de aplicaciones constan de procedimientos que realizan las funciones fundamentales que se utilizan en la mayora de los programas. (stos procedimientos estn escritos en un lenguaje de programacin de alto nivel y forman una librera de funciones entre las que escoger. (l usuario especifica qu) debe hacer el programa y el generador de aplicaciones es quien determina cmo realizar la tarea.