Anda di halaman 1dari 24

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.