Professional Documents
Culture Documents
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 1 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 2 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
1. ANTECEDENTES HISTORICOS
Se suele hablar de tres generaciones en la historia de las bases de datos, son:
Veamos ahora con ms detalle la historia de cada uno de estos modelos, soportados en diferentes SGBD.
A finales de los 60, coincidiendo en el tiempo con el desarrollo de los sistemas gestores de archivos, IBM y North
American Aviation desarrollan el modelo jerrquico. Con la finalidad de resolver problemas de diseo
aeroespacial y de produccin se desarrolla Information Management System (IMS) con su lenguaje DL/1. Fue el
primer sistema de gestin de bases de datos comercial basado en el modelo jerrquico. Aparece IMS DB/DC
(Database/Data Communication), el primer sistema de base de datos de gran escala.
Sobre 1969, IMS dio como resultado un sistema de gestin de base de datos de tipo jerrquico de propsito
general: el IMS/1 de IBM que constituye la primera familia de sistemas de gestin de bases de datos. American
Airlines e IBM desarrollan SABRE, el primer sistema que proporciona acceso a datos compartidos por mltiples
usuarios a travs de una red de comunicacin.
A mitad de los sesenta, se desarroll IDS (Integrated Data Store), de General Electric. Este trabajo fue dirigido por
uno de los pioneros en los sistemas de bases de datos, Charles Bachman. IDS era un nuevo tipo de sistema de
bases de datos conocido como estructura en red, que produjo un gran efecto sobre los sistemas de informacin
de aquella generacin. El sistema en red se desarroll, en parte, para satisfacer la necesidad de representar
relaciones ms complejas entre datos que las que se podan modelar con los sistemas jerrquicos, y, en parte,
para imponer un estndar de bases de datos.
Para ayudar a establecer dicho estndar, CODASYL (Conference on Data Systems Languages), formado por el
gobierno de EEUU y representantes del mundo empresarial, organiza el grupo DBTG (Data Base Task Group),
para definir especificaciones estndar que permitan la creacin y el manejo de bases de datos. El DBTG present
su informe final en 1971 y aunque no fue formalmente aceptado por ANSI (American National Standards Institute),
muchos sistemas se desarrollaron segn la propuesta del DBTG. Estos sistemas se conocen como sistemas en
red, sistemas CODASYL o DBTG.
Los modelos jerrquico y de red constituyen la primera generacin de los sistemas de bases de datos, pero
presentan algunos de los siguientes inconvenientes: no tienen un fundamento terico, la independencia de datos
es mnima y es necesario escribir complejos programas de aplicacin para cualquier consulta de datos, por simple
que sea.
En la dcada de los 70 la tecnologa de bases de datos experimenta un rpido crecimiento. Algunos sistemas,
desarrollados a lo largo de los aos 70, que siguen las propuestas de CODASYL son: DMS-1.100 de UNIVAC,
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 3 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
DMS-170 de CDC, IDMS de DF Goodrich, DBMA-11 de DIGITAL, etc. Sin embargo ninguna de estas
implementaciones desarroll completamente las propuestas de CODASYL.
El modelo de datos en red siempre tuvo pretensiones de generalizacin y estandarizacin, mientras que la familia
de sistemas jerrquicos est constituida por una serie de sistemas de gestin de bases de datos de los que
posteriormente se obtuvo la abstraccin del modelo de datos jerrquico. Ambos tipos de SGBD eran accesibles
desde un lenguaje de programacin, usualmente Cobol, usando un interfaz de bajo nivel. Esto hacia que la
creacin de una aplicacin, el mantenimiento de la base de datos, as como el ajuste y el desarrollo fuesen
controlables, pero an a costa de una gran inversin de tiempo.
Hasta 1980 los modelos de red y jerrquico fueron populares. Cullinet, una empresa fundada por Bachman, fue la
mayor empresa de software y con ms rpido crecimiento en el mundo, en aquellos aos.
A pesar del xito del modelo de datos en red, muchos diseadores de software reconocieron que la interfaz de
programacin para navegacin por los registros era de demasiado bajo nivel.
En 1970 E.F. Codd, basndose en el lgebra y la teora de conjuntos, propone un nuevo modelo de datos llamado
modelo relacional. Sugiere que todos los datos de la base de datos se podran representar como una estructura
tabular (tablas con columnas y filas, que denomin relaciones) y que esas relaciones se podran acceder con un
lenguaje no procedimental (declarativo). En este tipo de lenguajes, en lugar de escribir algoritmos para acceder a
los datos, slo se necesita un predicado que identifica los registros o combinacin de registros deseados. Es ms,
este nuevo modelo integraba los lenguajes de definicin, navegacin y manipulacin en un solo lenguaje
unificado.
El modelo relacional encontr inicialmente una gran oposicin debido a que requera ms recursos informticos
que los SGBD existentes en la poca y sus implementaciones no estaban lo suficientemente refinadas como para
competir con el resto de modelos y, por tanto, resultaban demasiado lentos.
Los SGBD relacionales no fueron prcticos hasta la dcada de los ochenta en que se desarrollaron computadores
ms rpidos y a menor precio.
Los programadores se debieron adaptar a una nueva forma de pensar en el tratamiento de los datos. Hasta ahora
los programadores estaban acostumbrados a procesar los datos registro en registro, en lugar de procesar
simultneamente los datos.
Se desarrollaron proyectos de investigacin que dieron lugar a algunos prototipos entre los que destacan:
Durante este periodo se desarrollaron diversos lenguajes de consulta: SQUARE, SEQUEL (SQL), QBE y QUEL.
De fundamental importancia es el lenguaje SQL, que fue el resultado de la convergencia de muchos de los
prototipos desarrollados en la poca.
El trabajo de investigacin en IBM conducido por Ted (E.F.) Codd, Raymond Boyce y Don Chamberlin y el trabajo
en la Universidad de Berkeley conducido por Michael Stonebraker, dieron como resultado SQL. Se estandariz
por primera vez en 1986 por el comit ANSI X3H2 como estndar de ANSI, que fue denominado SQL-86. ANSI
public un estndar extendido en 1989, SQL-89. La siguiente versin del estndar fue SQL-92 y la ms reciente
SQL-99.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 4 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Posteriormente a los prototipos aparecieron numerosos sistemas relacionales comerciales, tales como: INGRES
de RTI (1980), SQL/DS de IBM (1981), ORACLE de RSI (1981), DB2 de IBM (1983), RDB de DIGITAL (1983),
etc.
En la dcada de los 80 se desarrolla SQL Server en Sybase para sistemas UNIX y posteriormente se transport a
sistemas Windows NT. Desde 1994 Microsoft ha lanzado nuevas versiones de este producto de bases de datos
independientemente de Sybase, que dejo de usar el nombre SQL Server a finales de los 90.
El modelo de datos relacional ha proporcionado beneficios inesperados adems del aumento de productividad y
facilidad de uso. Es muy adecuado para el enfoque cliente/servidor, el procesamiento paralelo y las interfaces
grficas de usuario.
El modelo relacional constituye la segunda generacin de los sistemas de bases de datos. Hoy en da, existen
cientos de SGBD relacionales, tanto para ordenadores personales como para sistemas multiusuario, aunque
muchos no son completamente fieles al modelo relacional.
El modelo relacional tambin tiene sus fallos, siendo uno de ellos su limitada capacidad para modelar los datos.
En 1976, Chen present el modelo entidad-relacin, que es la tcnica ms utilizada en el diseo de bases de
datos. En 1979, Codd intent subsanar algunas de las deficiencias de su modelo relacional con una versin
extendida denominada RM/T (1979) y posteriormente RM/V2 (1990).
Como respuesta a la creciente complejidad de las aplicaciones que requieren bases de datos, han surgido un
nuevo modelo: el modelo de datos orientado a objetos. Esta evolucin representa la tercera generacin de los
sistemas de bases de datos.
Un SGBD se puede definir como un conjunto coordinado de programas, procedimientos, lenguajes, etc. que
suministra, tanto a los usuarios no informticos como a los analistas, programadores o el administrador, los
medios necesarios para describir, recuperar y manipular los datos almacenados en la base de datos,
manteniendo su integridad, confidencialidad y seguridad.
El objetivo primordial de un SGBD es proporcionar un entorno conveniente y eficiente para extraer, almacenar y
manipular informacin de la base de datos. EL SGBD gestiona de forma centralizada todas las peticiones de
acceso a la base de datos, por lo que este paquete funciona como interfaz entre los usuarios y la base de datos.
Adems, el SGBD gestiona la estructura fsica de los datos y su almacenamiento. Por lo tanto, el SGBD libera al
usuario de conocer exactamente la organizacin fsica de los datos y de crear algoritmos para almacenar,
actualizar o consultar dicha informacin que est contenida en la bases de datos.
Todos los SGBD no presentan la misma funcionalidad, depende de cada producto y del modelo de datos que
implanten. Los sistemas ms grandes son conjuntos de programas complejos y sofisticados. Los SGBD estn en
continua evolucin, tratando de satisfacer los requerimientos de todo tipo de usuarios.
Veamos a continuacin las principales funciones o caractersticas que debe proporcionar un SGBD.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 5 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
En general todos los SGBD presentan unas caractersticas comunes. Estas fueron ya definidas por Codd y
posteriormente revisadas en funcin de las nuevas necesidades detectadas con la generalizacin del uso de las
bases de datos.
Idealmente, el SGBD debe poseer una serie de caractersticas indispensables para satisfacer a los usuarios, tales
como:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 6 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Garantizar la escalabilidad y elevada capacidad de proceso. El SGBD debe aprovechar todos los
recursos de mquina disponibles en cada momento, aumentado su capacidad de proceso, conforme
disponga de ms recursos.
Poseer un lenguaje de definicin de datos que permita fcilmente la creacin de nuevas bases de datos,
as como la modificacin de su estructura.
Poseer un lenguaje de manipulacin de datos, que permita la insercin, eliminacin, modificacin y
consulta de los datos de la base, de la forma ms eficiente y conveniente posible.
Permitir el almacenamiento de enormes cantidades de datos (miles de millones de caracteres), sin que el
usuario perciba una degradacin en cuanto al rendimiento global del sistema. Para ello el SGBD debe
utilizar: ndices, particin de tablas, etc.
La forma en que las distintas bases de datos comerciales y acadmicas abordan estas caractersticas difieren
enormemente, no slo por las tcnicas utilizadas sino tambin por las aproximaciones o paradigmas con que se
han desarrollado. En este tema nos centraremos exclusivamente en el tipo ms extendido: las bases de datos
relacionales, ya que tienen un formalismo subyacente que las hace muy potentes. Adems, fueron desarrolladas
hace ya bastantes aos, y han evolucionado lo suficiente como para suministrar poderosas herramientas que
hacen fcil su gestin. De hecho, todas las caractersticas que hemos visto que debe poseer un SGBD, son
suministradas a travs de entornos e interfaces amigables y comprensibles que permiten un rpido aprendizaje
de todas las funciones propias de una base de datos.
En contraposicin, otro tipo de bases de datos, como las Orientadas a objetos, requieren que casi todas las
funciones de creacin de base de datos, manipulacin, etc., se efecten a travs de programas, lo cual requiere
un profundo conocimiento de las tcnicas de programacin.
Por otro lado, sistemas igual de evolucionados, como el jerrquico o en red, han cado en desuso, y su
aprendizaje supone un esfuerzo que aporta ms bien poco al diseador que debe enfrentarse de inmediato ante
un mundo de datos bsicamente relacional.
Un nivel lgico o externo, que es la vista que tiene el usuario del sistema.
Un nivel fsico o interno, que es la forma en la que los datos estn almacenados.
En las bases de datos aparece un nuevo nivel de abstraccin llamado: nivel conceptual. Este nivel intermedio
pretende una representacin global de los datos que se interponga entre el nivel lgico y el fsico, y que sea
independiente tanto del equipo, como de cada usuario en particular.
Como se ha comentado en el apartado anterior, una de las caractersticas ms importantes de los SGBD es la
independencia entre programas y datos.
Segn ANSI (American National Standard Institute), la independencia de los datos es la capacidad de un sistema
para permitir que las referencias a los datos almacenados, especialmente en los programas y en sus descriptores
de los datos, estn aislados de los cambios y de los diferentes usos en el entorno de los datos, como pueden ser
la forma de almacenar dichos datos, el modo de compartirlos con otros programas y como se reorganizan para
mejorar el rendimiento del sistema de bases de datos.
Para asegurar esta independencia entre los datos y las aplicaciones es necesario separar la representacin fsica
y lgica de los datos, distincin que fue reconocida oficialmente en 1978, cuando el comit ANSI/X3/SPARC
propuso una arquitectura en 3 niveles: nivel interno, nivel conceptual y nivel externo:
Nivel interno: Es la representacin del nivel ms bajo de abstraccin, en ste se describe en detalle la
estructura fsica de la base de datos: dispositivos de almacenamiento fsico, estrategias de acceso,
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 7 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
ndices, etc. Ningn usuario necesita conocer este nivel, su organizacin y conocimiento est reservado a
los administradores de la base de datos.
Nivel conceptual: El siguiente nivel de abstraccin, describe que datos son almacenados realmente en
la base de datos y las relaciones que existen entre los mismos, describe la base de datos completa en
trminos de su estructura de diseo. El nivel conceptual de abstraccin lo usan los administradores de
bases de datos, quienes deben decidir qu informacin se va a guardar en la base de datos. En el nivel
conceptual la base de datos aparece como una coleccin de registros lgicos, sin descriptores de
almacenamiento. En realidad los archivos conceptuales no existen fsicamente. La transformacin de
registros conceptuales a registros fsicos para el almacenamiento se lleva a cabo por el sistema y es
transparente al usuario. Consta de las siguientes definiciones:
Definicin de los datos: Se describen las caractersticas y tipos de campo de todos los elementos
direccionables en la base de datos.
Relaciones entre datos: Se definen las relaciones entre datos para enlazar tipos de registros
relacionados para el procesamiento de archivos mltiples.
Nivel externo: Nivel ms alto de abstraccin, es lo que el usuario final puede visualizar del sistema
terminado, describe slo una parte de la base de datos al usuario acreditado para verla. El sistema puede
proporcionar muchas visiones para la misma base de datos.
La arquitectura de tres niveles es til para explicar el concepto de independencia de datos que podemos definir
como la capacidad para modificar el esquema en un nivel del sistema sin modificar el esquema del nivel superior.
Se pueden definir dos tipos de independencia de datos:
La independencia lgica permite modificar el esquema conceptual sin tener que alterar los esquemas
externos ni los programas de aplicacin.
La independencia fsica permite modificar el esquema interno sin alterar el esquema conceptual (o los
externos). Por ejemplo, permite cambiar el disco en que se almacenan parte de los ficheros fsicos con el
fin de mejorar el rendimiento de las operaciones de consulta o aumentar la capacidad de almacenamiento
de datos. La independencia fsica es ms fcil de conseguir que la independencia lgica.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 8 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Para proporcionar a los usuarios las diferentes facilidades, los SGBD deben ofrecer lenguajes especializados e
interfaces apropiadas para cada tipo de usuario: administradores de la base de datos, diseadores,
programadores de aplicaciones y usuarios finales.
La interaccin del usuario con la base de datos debe efectuarse a travs de alguna tcnica que haga fcil la
comunicacin, y que permita al usuario centrarse en el problema que desea solucionar, ms que en la forma de
expresarlo. La mejor forma de alcanzar este objetivo, es darle un lenguaje parecido al lenguaje natural, que le
permita expresar de forma sencilla los requerimientos.
Los lenguajes que interactan con los SGBD, se pueden clasificar en dos grandes grupos:
Unos orientados hacia la funcin: Son los lenguajes de definicin, manipulacin y control.
Otros orientados a los diferentes tipos de usuarios o de procesos.
Dentro del segundo grupo se encuentran los lenguajes de programacin a los que estn habituados los usuarios
informticos: programadores, analistas, etc. A este tipo de lenguajes se les conoce como lenguaje anfitrin. A
las sentencias de manipulacin de los lenguajes de las bases de datos que son utilizadas en estos lenguajes se
les conoce como lenguaje husped.
Los SGBD pueden admitir varios lenguajes de tipo anfitrin para manipulacin de datos, como: Cobol,
Ensamblador, Fortran, PL/I, Basic, Pascal, C, etc.
Ahora nos vamos a centrar en los lenguajes del primer grupo, orientados hacia la funcin.
Para el caso concreto de los SGBD relacionales, se utiliza como estndar el SQL, para crear las bases de datos a
partir del esquema relacional. Mediante el DDL del SQL se crean tablas, columnas con los dominios
correspondientes, ndices, claves, las restricciones de integridad, etc.
El SGBD posee un compilador de DDL cuya funcin consiste en procesar las sentencias del lenguaje para
identificar las descripciones de los distintos elementos de los esquemas y almacenarlas generalmente en una
base de datos especial que contiene los metadatos.
Esta base de datos especial, es comnmente llamada diccionario de datos o catlogo del SGBD. Dicho catlogo
es el que se consulta, para obtener la estructura de la base de datos, toda vez que se quiere leer, modificar o
eliminar los datos de la base de datos.
Elementos de datos
Estructura de datos
Relaciones entre datos
Reglas de integridad
Vistas lgicas
Espacio reservado para la base de datos
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 9 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
El lenguaje de consulta y manipulacin de datos sirve para obtener, insertar, eliminar y modificar los datos de la
base de datos.
Al igual que el programador necesita el LMD como lenguaje husped dentro de un lenguaje anfitrin que maneja,
el usuario no informtico necesita de un instrumento para comunicarse con la base de datos. Este instrumento
suele ser un LMD autocontenido, que da facilidades a los usuarios con pocos conocimientos de programacin a
acceder y manipular los datos en modo interactivo.
El lenguaje de manipulacin de datos SQL, puede actuar al mismo tiempo como husped y como autocontenido,
cumpliendo la propiedad dual (Codd 1990).
En una primera clasificacin de los LMD, hay dos tipos lenguajes segn su definicin:
El lenguaje DML no procedural ms conocido es el SQL. Los lenguajes no procedurales son ms fciles de
utilizar y conocer que los procedurales porque el SGBD oculta al usuario los detalles sobre cmo se ha realizado
la operacin solicitada.
En una segunda clasificacin de los LMD, hay dos tipos de lenguajes segn como recuperan la informacin:
Navegacionales: Recuperan o actualizan los datos registro a registro, debiendo el programador indicar el
camino que se ha de recorrer, a travs de la estructura definida, hasta llegar al registro buscado. Se
utilizan estos lenguajes en base de datos en red y jerrquicas.
No navegacionales: Actan sobre un conjunto de registros. Una nica sentencia puede dar lugar a
recuperar o actualizar todos los registros que cumplan una determinada condicin. El SQL es de este
tipo.
En el caso del SQL, asociado al LMD se suele encontrar un mdulo optimizador que se ocupa de analizar la
peticin contra la base de datos y decidir el mejor camino de acceso con el fin de acelerar la ejecucin. Para la
toma de decisiones, el optimizador necesita de la informacin contenida en el catlogo o diccionario del SGBD.
Recuperacin de Informacin.
Insercin de nueva Informacin.
Eliminacin de informacin existente.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 10 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
EL lenguaje de Control de Datos sirve para trabajar en un entorno multiusuario, donde es muy importante la
proteccin y la seguridad de los datos y la comparticin de datos por parte de usuarios.
Los SGBD son paquetes de software muy complejos que deben proporcionar los servicios comentados
anteriormente. Los elementos que componen un SGBD varan mucho unos de otros. El sistema operativo
proporciona servicios bsicos al SGBD, que es construido sobre l.
El compilador del DDL. Chequea la sintaxis de las sentencias del DDL y actualiza las tablas del
diccionario de datos o catlogo que contienen los metadatos.
El precompilador del DML. Convierte las sentencias del DML embebidas en el lenguaje anfitrin, en
sentencias listas para su procesamiento por parte del compilador de lenguaje anfitrin y adems extrae
dichas sentencia DML para que puedan ser procesadas de forma independiente por el compilador del
DML.
El compilador del DML. Chequea la sintaxis de las sentencias del DML y se las pasa al procesador de
consultas.
El procesador de consultas. Realiza la transformacin de las consultas en un conjunto de instrucciones de
bajo nivel que se dirigen al gestor de la base de datos.
El gestor de la base de datos. Es el interfaz con los programas de aplicacin y las consultas de los
usuarios. El gestor de la base de datos acepta consultas y examina los esquemas externo y conceptual
para determinar qu registros se requieren para satisfacer la peticin. Entonces el gestor de la base de
datos realiza una llamada al gestor de ficheros para ejecutar la peticin.
Los principales componentes del gestor de la base de datos son los siguientes:
En la pgina siguiente se presenta una figura que ilustra cmo se relacionan entre s todos estos elementos.
La primera fila de esta figura son los distintos tipos de usuarios que pueden acceder al SGBD (usuarios
inexpertos, programadores de aplicaciones, usuarios sofisticados y administradores).
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 11 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
La segunda fila son los distintos mtodos de acceso a la informacin que utilizan los usuarios (interfaces de
aplicaciones, programas de aplicacin, consultas interactivas o el esquema de la base de datos).
Los usuarios inexpertos y los programadores de aplicaciones utilizan aplicaciones informticas para acceder a la
base de datos y los usuarios sofisticados y administradores acceden directamente a ella.
La primera recibe las peticiones de los cuatro tipos de usuarios y las dirige al gestor de la base de datos o
directamente al diccionario de datos. Independientemente de si las peticiones de manipulacin de datos
llegan de programas de aplicacin o de una consulta directa a la base de datos por un usuario sofisticado,
finalmente es el procesador de consultas el que las redirige al gestor de la base de datos.
La segunda es el gestor de la base de datos, que consta de los gestores de transacciones, de buffer y de
ficheros. El gestor de buffer slo se comunica con el gestor de ficheros y es este ltimo el que accede a la
estructura fsica de las base de datos.
Por ltimo tenemos la base de datos formada por los datos, sus ndices y el diccionario de datos.
Esta estructura es general y algunos de los SGBD actuales incorporan otras funciones y mdulos para dotar al
SGBD de nuevas facilidades o incrementar su eficiencia. Entre las funciones adicionales deseables en un SGBD
se encuentran las siguientes:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 12 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 13 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
El modelo de datos relacional fue presentado por Codd en 1970 y se basa en la representacin del universo del
discurso mediante el lgebra relacional. Codd, que era un experto matemtico, utiliz una terminologa
perteneciente a las matemticas, en concreto de la teora de conjuntos y de la lgica de predicados.
Est basado en un modelo matemtico con reglas y algoritmos algebraicos establecidos, lo cual permite
el desarrollo de lenguajes de acceso y manipulacin potentes y de fiabilidad demostrable.
Estructura los datos en forma de relaciones que se modelan mediante tablas bidimensionales. Estas
tablas representan tanto las entidades del universo del discurso como las relaciones entre las mismas.
Permite incorporar aspectos semnticos del universo del discurso mediante el establecimiento de reglas
de integridad. Estas reglas permiten trasladar al esquema conceptual restricciones o comportamientos de
los datos presentes en el universo del discurso que no se podran modelar exclusivamente con tablas.
Los SGBD construidos sobre el modelo relacional se caracterizan, por tanto, por las estructuras de datos, los
operadores asociados y los aspectos semnticos. A continuacin vamos a ver estos tres conceptos.
Relacin: Es un subconjunto de un producto cartesiano entre conjuntos formados por atributos. Por
ejemplo, una relacin R, definida sobre los atributos A1, A2,, An, sera un subconjunto formado por m
elementos del producto cartesiano de A1, A2,, An. En el modelo relacional se representa mediante una
tabla con m filas y n columnas. Como las tablas son esencialmente relaciones, se utilizarn los trminos
matemticos relacin y tupla, en lugar de los trminos tabla y fila. Dado que las relaciones son conjuntos
se utiliza la notacin matemtica t R, para denotar que la tupla t est en la relacin R.
Atributos: Son las columnas de la tabla. Corresponden a las propiedades de las entidades presentes en el
universo del discurso que nos interesa almacenar en la base de datos. Cada uno de estos atributos
puede tomar valores dentro de un rango determinado, que se llama dominio. Varios atributos pueden
compartir un nico dominio.
Dominio: Rango de valores aceptable para un atributo dado. Este rango depende exclusivamente del
atributo y va a condicionar los valores posibles dentro de cada celda de la tabla. Los valores que forman
el dominio deben ser homogneos, es decir, del mismo tipo y atmicos, o sea, indivisibles. Un valor de
dominio que es miembro de todos los dominios posibles, es el valor nulo, que indica que el valor es
desconocido o no existe.
Tuplas: Es el nombre que recibe cada una de las filas de la tabla. Corresponden a cada una de las
ocurrencias de la relacin que representa la tabla o, lo que es lo mismo, a cada uno de los elementos que
forman el conjunto R de la relacin. El orden en el que aparecen las tuplas es irrelevante, dado que la
relacin es un conjunto de tuplas.
Cardinalidad de la relacin: es el nmero m de tuplas de la relacin.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 14 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Una vez visto qu es una tabla o relacin, vamos a enumerar sus propiedades principales:
Todas las filas de una tabla estn compuestas por el mismo nmero y tipo de atributos que, adems,
aparecen siempre en el mismo orden.
No puede haber filas repetidas. Es decir, todas las filas de la tabla deben diferenciarse entre s al menos
en el valor de un atributo.
El orden en que aparecen las filas dentro de la tabla no es relevante.
En cada celda de la tabla slo puede aparecer un valor. Adems este valor debe estar dentro del dominio
de la columna correspondiente.
Una tabla no puede contener dos filas iguales. Esto obliga, necesariamente, a que haya uno o varios atributos
que se puedan utilizar para distinguir unas tuplas de otras. Cualquier atributo o conjunto mnimo de ellos que sirva
para este propsito se denomina clave candidata. Es decir, una clave candidata permite identificar de forma
nica una fila de una tabla.
Por conjunto mnimo se entiende aqul conjunto de atributos tal que si se elimina uno de ellos el conjunto
resultante deja de ser clave candidata. Es posible que la nica clave candidata de una relacin est formada por
todos los atributos de la misma.
A la clave candidata que el usuario escoge para identificar las tuplas de una relacin se la denomina clave
primaria. La eleccin de esta clave es decisin del usuario, aunque se suele utilizar la ms corta por razones de
eficiencia. Una propiedad fundamental de la clave primaria consiste en que, bajo ninguna circunstancia, puede
adoptar el valor nulo, ya que si as lo hiciera perdera su capacidad para identificar las tuplas de la relacin.
El resto de claves candidatas que no han sido elegidas como clave primaria reciben el nombre de claves
alternativas o secundarias.
Una relacin R1 puede incluir entre sus atributos la clave primaria de otra relacin R2. Esta clave es una clave
ajena de R1 que hace referencia a R2. La relacin R1 tambin se denomina relacin de de referencia de la
dependencia de clave ajena, y R2 se denomina la relacin referenciada de la clave ajena.
A continuacin vamos a ver un ejemplo aplicado a los conceptos anteriores. Sea un Centro de enseanza donde
los alumnos cursan asignaturas.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 15 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Cada Alumno puede estar matriculado de una o varias asignaturas y tiene una nota asignada a cada asignatura
(NotAsig).
Con la informacin anterior podemos construir un modelo basado en tres tablas. La clave primaria de cada
relacin se indica en negrita.
Tabla Alumno:
Esta tabla tiene seis atributos que son las columnas. El dominio del atributo Nombre (Nom) es el de los nombres
de personas, es decir, no puede contener una fecha, ni un nmero. Cada fila es una tupla de la relacin. Por
tanto, la Cardinalidad de esta relacin es 3 y su Grado es 6.
Las claves candidatas de esta tabla son DNI y NMat porque ambas identifican de forma inequvoca a un Alumno
(no puede haber dos alumnos con el mismo DNI, ni con el mismo nmero de matrcula). La clave primaria elegida
es DNI que, y por tanto, NMat ser una clave alternativa.
Tabla Asignatura:
En esta tabla se ve que slo hay una clave candidata, y que por tanto, ser la clave principal: CodAsig. No hay
claves alternativas.
Tabla Cursa:
Esta tabla indica la nota obtenida (NotAsig) por cada alumno en cada asignatura de las que se ha matriculado. Su
clave principal est formada por los atributos DNI de la tabla Alumno y CodAsig de la tabla Asignatura.
Los operadores asociados al modelo de datos relacional forman el lgebra relacional. Se puede demostrar
matemticamente que sta lgebra es completa, o sea, que por medio de ella se puede realizar cualquier acceso
a la base de datos.
Los operandos con los que trabaja el lgebra son relaciones del modelo relacional y los operadores bsicos son:
Unin. La unin de dos relaciones R y S (R U S) es el conjunto formado por todas las tuplas de R ms
todas las tuplas de S. Este operador slo se puede aplicar a relaciones del mismo grado y con los
mismos atributos.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 16 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Diferencia. La diferencia de dos relaciones R y S (R - S) es el conjunto formado por todas las tuplas de R
que no estn en S. Este operador slo se puede aplicar a relaciones del mismo grado y con los mismos
atributos.
Producto cartesiano. El producto cartesiano de dos relaciones R y S, de grados m y n respectivamente,
se denota R x S y es el conjunto formado por todas las posibles tuplas de m + n elementos en las que los
m primeros elementos son de R y los n restantes pertenecen a S.
Proyeccin. Si x es un subconjunto de atributos de la relacin R, entonces la proyeccin x(R) es la
relacin formada por las columnas de R correspondientes a los atributos x.
Seleccin. Si F es una frmula compuesta por operadores lgicos, aritmticos y de comparacin y sus
operandos son los valores de los atributos de una relacin R, entonces la seleccin F(R) es el conjunto
de tuplas de la relacin R que hacen verdadera la condicin establecida por la frmula F.
A partir de estos cinco operadores bsicos, es posible definir otros derivados tales como la interseccin, el
cociente y la unin natural.
Los aspectos semnticos son todos aquellos aspectos del universo del discurso que no pueden modelarse
mediante la definicin de relaciones, sino que necesitan de un nivel superior de descripcin.
Este nivel superior de descripcin del modelo se traduce, en la prctica, en el establecimiento de restricciones
adicionales a las propias del modelo relacional que ya se han mencionado (tuplas no repetidas, orden de las
columnas constante, etc.) y que tienen como fin mantener la integridad y validez de los datos almacenados as
como aumentar el grado de informacin que el esquema lgico de datos proporciona.
A continuacin describiremos las dos principales restricciones que se manejan en el modelo relacional:
Restricciones de usuario. Son restricciones a los valores del dominio de los atributos. Por ejemplo, un
atributo Fecha de nacimiento representa la fecha con dd-mm-aaaa, siendo dd el da, mm el mes y
aaaa el ao y tiene el valor 33-15-1970. Este valor del atributo sera incorrecto porque el da y el mes
estn fuera de su rango posible. Para evitar estos problemas se definen las restricciones de usuario, que
se utilizan para limitar los posibles valores que pueden tomar los atributos o las tuplas. La capacidad de
definir estas restricciones de usuario, as como su potencia y los elementos sobre los que se pueden
aplicar (dominios, atributos, tuplas, tablas, etc.) dependen del gestor de bases de datos.
Integridad referencial. Otro aspecto que se puede incluir en el modelo relacional es la denominada
integridad referencial, que se ocupa del mantenimiento de referencias entre las propias relaciones o
tablas.
Formalmente, se define la integridad referencial de la siguiente manera: Sean dos relaciones R1 (relacin que
referencia) y R2 (relacin referenciada), no necesariamente distintas entre s. Si ocurre que la relacin R1 tiene un
atributo o conjunto de atributos que es clave primaria de R2, entonces cualquier valor de dicho atributo o conjunto
de atributos en R1 debe concordar con un valor de la clave primaria de R2 o bien ser nulo.
En nuestro ejemplo del Centro de enseanza, siendo R1 la relacin Cursa y R2 la relacin Alumno, el atributo DNI
es clave primaria en la relacin Alumno (R1) y atributo en Cursa (R1). Por lo tanto, todos los valores del atributo
DNI en la relacin Cursa (R1), deben concordar con un valor de la clave primaria de Alumno (R2).
El mantenimiento de la integridad referencial supone la realizacin de alguna accin cuando se borra o modifica
una tupla en la tabla referenciada R2. Esta accin debe ser alguna de las siguientes:
Impedir la operacin de borrado o modificacin. As se asegura que una vez establecida no se puede
romper la relacin entre dos tuplas de ambas tablas.
Transmitir en cascada la modificacin. O sea, borrar o modificar en consecuencia las tuplas que hacen
referencia a la que se acaba de borrar o modificar.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 17 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Poner a nulo. Esto quiere decir que se asigna el valor nulo al atributo que ejerce de clave referencial para
mantener la integridad.
Poner valor por omisin o lanzar un procedimiento de usuario. En este caso cuando se altera el valor del
atributo referenciado, se pone como valor de la clave referencial un valor por omisin o se ejecuta un
procedimiento por el usuario que establezca algn valor que sirva para mantener la integridad referencial.
Por ejemplo, si se intenta eliminar una tupla de la relacin Alumno (R2), ser imprescindible realizar alguna de las
siguientes acciones:
A comienzos de la dcada de los 80 aparece el modelo orientado a objetos como una alternativa a la
programacin estructurada o modular. Se empezaron a crear diseos de aplicaciones de todo tipo usando una
forma de pensar orientada a los objetos, y a implantar estos diseos utilizando lenguajes orientados a objetos. Sin
embargo, el anlisis de requisitos se qued atrs. No se desarrollaron tcnicas de anlisis especficamente
orientadas a objetos.
Posteriormente se desarrollaron tcnicas de anlisis especficas para desarrollar software orientado a objetos, e
incluso como complemento de otros mtodos de anlisis. Ejemplos de estas nuevas tcnicas son los mtodos de
Coad/Yourdon, Jacobson, Booch y Rumbaugh (OMT).
El modelo de Orientacin a Objetos (OO) se basa en conceptos sencillos que aplicamos continuamente: objetos y
atributos, el todo y las partes, clases y miembros. En lugar de considerar el software desde una perspectiva
clsica de entrada/proceso/salida, como los mtodos estructurados clsicos, se basa en modelar el sistema
mediante los objetos que forman parte de l y las relaciones estticas o dinmicas entre estos objetos.
Este enfoque pretende conseguir modelos que se ajusten mejor al problema real, a partir del conocimiento del
llamado dominio del problema, evitando que influyan en el anlisis consideraciones de que estamos analizando
un sistema para implementarlo en un ordenador. Esto nos permite centrarnos en los aspectos significativos del
dominio del problema (en las caractersticas de los objetos y las relaciones que se establecen entre ellos) y este
conocimiento se convierte en la parte fundamental del anlisis del sistema software, que ser luego utilizado en el
diseo y la implementacin.
Las tcnicas orientadas a objetos se basan en organizar el software como una coleccin de objetos discretos que
incorporan tanto estructuras de datos como comportamiento. Esto contrasta con la programacin convencional,
en la que las estructuras de datos y el comportamiento estn escasamente relacionadas.
Objetos. Los datos se organizan en entidades discretas y distinguibles llamadas objetos. Estos objetos
pueden ser concretos o abstractos, pero cada objeto tiene su propia identidad, es decir, dos objetos son
distintos incluso an en el caso de que los valores de todos sus atributos coincidan. Dos automviles
pueden ser totalmente idnticos pero no por eso pierden su identidad.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 18 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Clases. Los objetos se agrupan en clases. Todos los automviles tienen una serie de atributos comunes:
longitud, anchura, altura, peso, color, etc. y un comportamiento comn: podemos abrirlos, cerrarlos,
conducirlos, etc. Una clase es una abstraccin de un conjunto de objetos individuales con caractersticas
comunes, por ejemplo la clase automviles es claramente distinta a la clase camiones. Cada uno de
estos objetos se dice que es una instancia de dicha clase. Cada instancia de una clase tiene sus propios
valores para sus atributos, pero comparte el nombre de estos atributos y las operaciones con el resto de
instancias de su clase.
Atributos. Un atributo es un dato contenido en todas las instancias de una clase. Cada atributo tiene un
valor para cada una de las instancias. Los atributos son datos, no objetos. La diferencia entre unos y
otros reside en la identidad: los objetos tienen identidad, pero los atributos no. Por ejemplo, todas las
ocurrencias del valor azul del atributo color son indistinguibles.
Herencia. El concepto de herencia se refiere a la comparticin de atributos y operaciones basada en una
relacin jerrquica entre varias clases. Una clase puede definirse de forma general y luego refinarse en
sucesivas subclases. Cada clase hereda todas las propiedades (atributos y operaciones) de su
superclase y aade sus propiedades particulares. Por ejemplo, las clases automviles y camiones
heredan todos los atributos y operaciones de la superclase vehculos.
Polimorfismo. Significa que una misma operacin puede comportarse de manera diferente en diferentes
clases. Con esto estamos diciendo que es el propio objeto el que sabe como tiene que comportarse ante
una determinada operacin. La implementacin concreta de una operacin para una clase se llama
mtodo. Gracias al polimorfismo se puede invocar a un mtodo sin conocer exactamente el objeto sobre
el que se invoca. Si suponemos que tenemos un conjunto de objetos y de entre ellos se selecciona uno,
pero no sabemos cual, si todos esos objetos tienen el mtodo mover, puedo invocar dicha operacin y,
segn el objeto que sea, invocar al mtodo adecuado. Por ejemplo, podemos tener la clase Alfil y la
clase Torre, ambas pertenecientes a la superclase PiezaAjedrez. Ambos objetos pueden tener la
operacin mover pero cada una har una tarea diferente, segn su propia definicin interna del mtodo.
Como ya hemos mencionado el modelo de orientacin a objetos aparece en los 80. Poco despus comenzaron a
surgir algunas iniciativas para construir bases de datos orientadas a objetos. No obstante, el avance era muy
lento debido en parte a la inexistencia de un estndar.
En 1991, la reunin de algunas de las empresas que estaban desarrollando estos productos, frustradas por la
falta de avance real hacia la consecucin de un estndar, tuvo como consecuencia el nacimiento de un grupo de
trabajo conocido como ODMG (Object Database Management Group). El resultado de sus primeros trabajos fue
la publicacin de la Release 1.0.
Posteriormente en Febrero de 1994, este grupo se afili al OMG (Object Management Group) y sucesivamente se
establecieron relaciones con los grupos responsables de ANSI X3H2 (SQL), X3J16 (C++) y X3J20 (SmallTalk).
Ya en 1997 se publico la Release 2.0 de ODMG. Entre las empresas y organismos pblicos que han colaborado
en la elaboracin de este estndar se encuentran Object Design, JavaSoft, UniSQL, Microsoft, Sybase, Fujitsu,
Hitachi, Lucent Technologies, Andersen Consulting, EDS, AMS y el CERN.
En aos recientes, han aparecido muchos prototipos experimentales y sistemas de bases de datos comerciales
orientados a objetos.
Entre los primeros se encuentran los sistemas ORION, OpenOODB, IRIS, ODE y el proyecto ENCORE/ObServer.
Entre los sistemas disponibles en el mercado estn: GESTONE/OPAL de ServiLogic, ONTOS de Ontologic,
Objectivity de Objectivity Inc., Versant de Versant Technologies, ObjecStore de Object Design y O2 de O2
Technology.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 19 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
4.2.1 DEFINICIN
Un Sistema de Gestin de Bases de Datos Orientado a Objetos (SGBD-OO) es bsicamente un SGBD que
integra las funcionalidades de una base de datos con las funcionalidades de un lenguaje de programacin
orientado a objetos.
4.2.2 CARACTERSTICAS
Un SGBDOO debe satisfacer dos criterios: ser un sistema orientado a objetos, y ser un sistema de gestin de
bases de datos. El primer criterio se traduce en ocho caractersticas generales: persistencia, concurrencia,
abstraccin, encapsulacin, modularidad, genericidad, jerarqua y tipos. El segundo criterio se traduce en cinco
caractersticas principales: persistencia, concurrencia, recuperacin ante fallos del sistema, gestin del
almacenamiento secundario y facilidad de consultas.
La persistencia, al igual que la concurrencia son caractersticas del SGBD-OO heredadas tanto del SGBD como
del modelo de objetos:
La persistencia en el caso del SGBD hace referencia a la conservacin de los datos despus de la
finalizacin del proceso que los cre. En el caso del modelo de objetos, se refiere no slo a la
conservacin del estado de un objeto, si no tambin a la conservacin de la clase, que debe trascender a
cualquier programa individual, de forma que todos los programas interpreten de la misma manera el
estado almacenado.
La concurrencia heredada del SGBD se refiere a la capacidad del sistema para gestionar a mltiples
usuarios interactuando concurrentemente sobre el mismo, mientras que la concurrencia heredada del
modelo de objetos hace referencia a la capacidad de distinguir a un objeto activo de otro que no lo est.
Los otros seis criterios para ser un sistema orientado a objetos se describen a continuacin:
Abstraccin. Denota las caractersticas esenciales de un objeto que lo distinguen de todos los dems
tipos de objeto, y proporciona as fronteras conceptuales ntidamente definidas respecto a la perspectiva
del observador. Una abstraccin se centra en la visin externa de un objeto.
Encapsulacin. Consiste en separar los aspectos externos del objeto, a los cuales pueden acceder otros
objetos, de los detalles internos de la implementacin del mismo, que quedan ocultos para los dems.
Esto permite modificar la implementacin de un objeto, sabiendo que no influye en el resto de la
aplicacin, modificando slo la parte oculta y dejando igual la parte externa.
Modularidad. Se basa en el concepto de fragmentacin de los programas en componentes individuales
para reducir su complejidad en algn grado, y para crear adems una serie de fronteras bien definidas y
documentadas dentro del programa, donde estas fronteras o interfaces tienen un incalculable valor cara a
la comprensin del programa.
Genericidad. Permite construir clases genricas para otras clases.
Jerarqua. Una clasificacin u ordenacin de abstracciones.
Tipos. Es un conjunto de objetos que tienen un mismo comportamiento (comparten una misma
funcionalidad) que se puede observar desde afuera.
La mayor limitacin de las bases de datos orientadas a objetos es la carencia de un estndar. ODMG adopta una
arquitectura que consta de un sistema de gestin que soporta un lenguaje de bases de datos orientado a objetos,
con una sintaxis similar a un lenguaje de programacin tambin orientado a objetos como puede ser C++, Java o
Smalltalk. El lenguaje de bases de datos es especificado mediante un lenguaje de definicin de objetos (ODL), un
lenguaje de manipulacin de objetos (OML), y un lenguaje de consulta (OQL), siendo todos ellos portables a otros
sistemas con el fin de conseguir la portabilidad de la aplicacin completa.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 20 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
En definitiva, ODMG intenta definir un SGBD-OO que integre las capacidades de las bases de datos con las
capacidades de los lenguajes de programacin, de forma que los objetos de la base de datos aparezcan como
objetos del lenguaje de programacin, intentando de esta manera eliminar la falta de correspondencia existente
entre los sistemas de tipos de ambos lenguajes.
Lenguaje de definicin de objetos (ODL). Facilita la portabilidad de los esquemas de las bases de datos.
Este ODL no es un lenguaje de programacin completo, define las propiedades y los prototipos de las
operaciones de los tipos, pero no los mtodos que implementan esas operaciones. El ODL intenta definir
tipos que puedan implementarse en diversos lenguajes de programacin; no est por tanto ligado a la
sintaxis concreta de un lenguaje de programacin particular. De esta forma un esquema especificado en
ODL puede ser soportado por cualquier SGBD-OO que sea compatible con ODMG. La sintaxis de ODL
es una extensin de la del IDL (Interface Definition Language) desarrollado por OMG como parte de
CORBA (Common Object Request Broker Architecture).
Lenguaje de manipulacin de objetos (OML). Es empleado para la elaboracin de programas que
permitan crear, modificar y borrar objetos que constituyen la base de datos. ODMG sugiere que este
lenguaje sea la extensin de un lenguaje de programacin, de forma que se pueden realizar entre otras
las siguientes operaciones sobre la base de datos:
Creacin de un objeto
Borrado de un objeto
Modificacin de un objeto
Identificacin de un objeto
Lenguaje de consulta de objetos (OQL). Presenta las siguientes caractersticas:
Tiene una sintaxis concreta al estilo SQL.
Su semntica formal puede definirse fcilmente.
Proporciona un acceso declarativo a los objetos.
Puede optimizarse fcilmente.
Las consultas pueden invocar mtodos, e inversamente los mtodos escritos en cualquier lenguaje
de programacin pueden incluir consultas.
No proporciona operadores explcitos para la modificacin, se basa en las operaciones definidas
sobre los objetos para ese fin.
Proporciona primitivas de alto nivel para tratar con conjuntos de objetos.
Flexibilidad y soporte para el manejo de tipos de datos complejos. Es sencillo describir y modificar
estructuras complejas de objetos, como por ejemplo, las partes de un motor, porque los objetos estn
formados a su vez de otros objetos y estas relaciones se describen muy fcilmente.
Manipulacin de datos complejos de forma rpida y gil. La estructura de la base de datos est dada por
referencias entre objetos.
Los objetos hacen referencia directamente a otros objetos mediante punteros. Esto hace que los SGBD-
OO pasen ms rpido del objeto A al objeto B que los SGBD-R.
El agrupamiento de los datos es ms eficiente. Esto reduce de forma radical el tiempo de recuperacin,
porque todos los datos se leen con una lectura de disco en vez de varias. Sin embargo, en un SGBD-R,
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 21 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
La inmadurez del mercado constituye una posible fuente de problemas por lo que debe analizarse con
detalle la capacidad de proporcionar soporte del proveedor antes de adoptar su producto.
La falta de estndares ampliamente extendidos en la industria orientada a objetos. La implantacin de
una nueva tecnologa requiere que los usuarios iniciales acepten cierto riesgo. No es aconsejable si se
esperan resultados a corto plazo y con un coste reducido.
Lenguajes procedurales o procedimentales: El usuario instruye al sistema para que lleve a cabo una
serie de operaciones en la base de datos para calcular el resultado deseado.
Lenguajes no procedurales o no procedimentales: El usuario describe la informacin deseada sin dar
un procedimiento concreto para obtener esa informacin.
En este epgrafe vamos a estudiar los lenguajes formales de consulta o lenguajes puros. Los tres que se
estudian no son cmodos de usar, pero a cambio sirven como base formal para lenguajes de consulta que si
resultan cmodos.
El primer lenguaje de consulta, el lgebra relacional, se estudia en detalle. El lgebra relacional forma la base del
lenguaje de consulta SQL, ampliamente usado y que tambin estudiaremos en el epgrafe siguiente. A
continuacin se proporciona una visin general de otros dos lenguajes formales: el clculo relacional de tuplas y
el clculo relacional de dominios, que son lenguajes declarativos de consulta basados en la lgica matemtica. El
clculo relacional de dominios es la base del lenguaje de consulta QBE.
El lgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman
como entrada una o dos relaciones y producen como resultado una nueva relacin.
Como ya vimos al estudiar el modelo relacional, las operaciones asociadas a este modelo de datos forman el
lgebra relacional. Se puede demostrar matemticamente que sta lgebra es completa, o sea, que por medio de
ella se puede realizar cualquier acceso a la base de datos.
Las operaciones fundamentales del lgebra relacional son: seleccin, proyeccin, unin, diferencia de conjuntos,
producto cartesiano y renombramiento. Adems de estas operaciones fundamentales hay otras operaciones que
se definen a partir de las fundamentales, tales como: interseccin de conjuntos, unin natural y asignacin.
Veamos ahora con ms detalle cada una de estas operaciones. Los ejemplos en los que nos vamos a apoyar
hacen referencia a las tablas ejemplo que aparecen en el apartado 3.2.1: Alumno, Asignatura y Cursa.
Unarias: Porque operan con una sola relacin o tabla. Son: seleccin, proyeccin y renombramiento.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 22 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Binarias: Porque operan con dos relaciones. Son: unin, diferencia de conjuntos y producto cartesiano.
La operacin seleccin selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra griega sigma
minscula () para denotar la seleccin. El predicado aparece como subndice de . La relacin de entrada es el
argumento que aparece entre parntesis a continuacin de .
Por lo tanto, la definicin formal dice: Si P es un predicado compuesto por operadores lgicos, aritmticos y de
comparacin y sus operandos son los valores de los atributos de una relacin R, entonces la seleccin P(R) es el
conjunto de tuplas de la relacin R que hacen verdadera la condicin establecida por el predicado P.
Por ejemplo para seleccionar las tuplas de la relacin Alumno en que el nombre es Ana, hay que escribir:
Nom=Ana (Alumno)
En general, se permite las comparaciones que utilizan los signos: =, , <, , > o , en el predicado de seleccin.
Adems se pueden combinar varios predicados en uno mayor utilizando las conectivas y(^) y o(v). El predicado
de seleccin puede incluir comparacin entre dos atributos.
La operacin proyeccin es una operacin unaria que dada una relacin de entrada, devuelve todos atributos de
dicha relacin que aparecen en los argumentos de dicha operacin. Dado que las relaciones son conjuntos, se
eliminan todas las filas duplicadas.
La proyeccin se denota por la letra griega pi (). Se crea una lista de atributos que se desea que aparezcan en
el resultado, como subndice de . La relacin de entrada es el argumento que aparece entre parntesis a
continuacin de .
Por lo tanto, la definicin formal dice: Si x es un subconjunto de atributos de la relacin R, entonces la proyeccin
x(R) es la relacin formada por las columnas de R correspondientes a los atributos x.
Por ejemplo, la consulta para crear una lista de todos los DNI y nmeros de matrcula de la relacin Alumno, se
escribe:
DNI,NMat (Alumno)
Es importante el hecho de que el resultado de una operacin relacional sea tambin una relacin.
En general, dado que el resultado de una operacin de lgebra relacional es del mismo tipo (relacin) que los
datos de entrada, las operaciones del lgebra relacional pueden componerse para formar una expresin del
lgebra relacional. La composicin de operaciones del lgebra relacional para formar expresiones del lgebra
relacional es igual que la composicin de operaciones aritmticas (como +, -, * y ) para formar expresiones
aritmticas.
Por ejemplo, la consulta para encontrar el DNI y nmero de matrcula de los alumnos en que el nombre es Ana,
es una expresin del lgebra relacional, que se escribe:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 23 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Consideramos una consulta para averiguar el DNI de todos los alumnos que estn en la tabla Alumnos, en la
tabla Cursa o en ambas. Se conoce la manera de obtener los DNI de cada una de las tablas:
Sin embargo, para contestar a la consulta hace falta la unin de estos dos conjuntos, es decir, hacen falta todos
los DNI que aparezcan en algunas de las dos relaciones o en ambas. Estos datos se pueden averiguar mediante
la operacin binaria unin, denotada, como en la teora de conjuntos, por U. En el resultado, dado que las
relaciones son conjuntos, se eliminan los valores duplicados. Por lo tanto, la expresin buscada es:
En general, se debe asegurar que las uniones se realicen entre relaciones compatibles, es decir, que deben
cumplir las dos condiciones siguientes:
Las dos relaciones deben ser de la misma aridad, es decir, deben tener el mismo nmero de atributos.
Los dominios de los atributos, deben ser iguales.
Por lo tanto, la definicin formal dice: La unin de dos relaciones R y S (R U S) es el conjunto formado por todas
las tuplas de R ms todas las tuplas de S. Este operador slo se puede aplicar a relaciones del mismo grado y
con los mismos atributos.
La operacin diferencia de conjuntos, denotada por -, permite buscar la tuplas que estn en una relacin pero no
en otra. La definicin formal dice: La diferencia de dos relaciones R y S (R - S) es el conjunto formado por todas
las tuplas de R que no estn en S.
Este operador, al igual que el operador unin, solo puede realizarse entre relaciones compatibles. Por lo tanto el
operador diferencia slo se puede aplicar a relaciones del mismo grado y con los mismos atributos.
Por ejemplo, la consulta para encontrar el DNI de los alumnos que estn en la tabla Alumno, pero no estn en la
tabla Cursa, al no cursar ninguna asignatura, se escribe:
La operacin producto cartesiano denotada, por un aspa (x), permite combinar informacin de cualesquiera dos
relaciones. Hay que considerar dos posibles problemas:
Si las dos relaciones de entrada tienen un atributo con el mismo nombre, se adjunta a dicho atributo el
nombre de la relacin, para as distinguir uno de otro.
Si el nombre de las dos relaciones de entrada es el mismo (producto cartesiano de una relacin consigo
misma) o si se utiliza el resultado de una expresin del lgebra relacional en un producto cartesiano, se
debe dar un nuevo nombre a una de las relaciones o a la expresin del lgebra relaciona utilizando una
operacin de renombramiento que veremos en el apartado siguiente.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 24 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
A diferencia de las relaciones de base de datos, los resultados de las expresiones del lgebra relacional no tienen
un nombre que se pueda utilizar para referirse a ellas. Resulta, por lo tanto, til ponerles nombre. La operacin
renombramiento denotado por la letra griega rho (), permite realizar esta tarea.
La definicin formal dice: Dada una expresin E del lgebra relacional, la expresin x(E), devuelve el resultado
de la expresin E con nombre x.
Las relaciones por si mismas, tambin se consideran expresiones triviales del lgebra relacional. Por lo tanto,
tambin se puede aplicar la operacin renombramiento a una relacin dada, para obtener la misma relacin con
un nombre nuevo.
Por ejemplo, vamos a dar el nombre Ana a la expresin DNI,NMat (Nom=Ana (Alumno)), se escribe:
Las operaciones fundamentales del lgebra relacional son suficientes para expresar cualquier consulta del
lgebra relacional. Sin embargo si uno se limita nicamente a las operaciones fundamentales, algunas consultas
habituales, resultan ser algo ms complejas de expresar. Por este motivo, se definen otras operaciones que no
aaden potencia al lgebra, pero que simplifican las consultas habituales.
A partir de las operaciones bsicas, es posible definir otras operaciones derivadas tales como la interseccin, la
unin natural, y la asignacin.
La operacin interseccin de conjuntos denotada por , permite buscar la tuplas que estn al tiempo en las dos
relaciones sobre las que acta.
Se observa que esta operacin no es fundamental y no aade potencia al lgebra relacional, ya que puede ser
expresada en funcin de la operacin diferencia de conjuntos, de la manera siguiente:
R S = R (R S)
Por ejemplo, la consulta para encontrar los DNI de los alumnos que estn en la tabla Alumno y que estn en la
tabla Cursa, se escribe:
Suele resultar deseable simplificar ciertas consultas que exigen producto cartesiano. Generalmente, las consultas
que implican producto cartesiano incluyen un operador seleccin sobre el resultado del producto cartesiano.
La unin natural es una operacin binaria que permite combinar ciertas selecciones y un producto cartesiano en
una sola operacin. Se denota por el smbolo de la reunin . La operacin unin natural forma un producto
cartesiano de sus dos argumentos, realiza una seleccin forzando la igualdad de los atributos que aparecen en
ambas relaciones y, finalmente elimina los atributos duplicados.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 25 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
En ocasiones resulta conveniente escribir una expresin de lgebra relacional por partes utilizando la asignacin
a una variable de relacin temporal.
La operacin asignacin, denotada por , acta de manera parecida a la asignacin de los lenguajes de
programacin.
Por ejemplo, se puede realizar una asignacin de la expresin DNI,NMat (Nom=Ana (Alumno)) a una variable de
relacin temporal, llamada temp1:
Con la operacin asignacin se puede escribir las consultas como programas secuenciales consistentes en una
serie de asignaciones seguida de una expresin cuyo valor se muestra como resultado de la consulta.
Cuando escribimos una expresin de lgebra relacional proporcionamos una serie de procedimientos que
generan la respuesta a la consulta. El clculo relacional de tuplas, en cambio, es un lenguaje de consulta no
precedimental. Describe la informacin deseada sin dar un procedimiento especfico para obtenerla.
Las consultas se expresan en el clculo relacional de tuplas como: {t P(t)}, es decir, son el conjunto de todas las
tuplas tales que el predicado P es cierto para t. Se utiliza la notacin t[A] para denotar el valor de la tupla t en el
atributo A y t R para denotar que la tupla t est en la relacin R.
Para poder hacer una definicin formal del clculo relacional de tuplas, debemos conocer los tres conceptos
siguientes:
Constructor existe de la lgica matemtica. La notacin t R(Q(t)) significa: existe una tupla t en la
relacin R tal que el predicado Q(t) es verdadero.
Implicacin denotada por , es decir P implica Q, se escribe: P Q
Constructor para todo de la lgica matemtica. La notacin t R(Q(t)) significa: Q es verdadera para
todas las tuplas t de la relacin R.
Ahora podemos dar una definicin formal del clculo relacional de tuplas.
Como ya hemos dicho, las expresiones del clculo relacional de tuplas son de la forma: {t P(t)} donde P es un
predicado o una frmula. En una formula pueden aparecer varias variables tupla. Se dice que una variable tupla
es una variable libre a menos que est cuantificada mediante o .
Las frmulas del clculo relacional de tuplas se construyen con tomos. Los tomos tienen una de las formas
siguientes:
Las frmulas se construyen a partir de los tomos utilizando las reglas siguientes:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 26 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Hay una segunda forma de clculo relacional denominada clculo relacional de dominios. Esta forma utiliza
variables de dominio que toman sus valores del dominio de un atributo, en vez de tomarlos de una tupla completa.
El clculo relacional de dominios, sin embargo, se halla estrechamente relacionado con el clculo relacional de
tuplas.
< x1, x2,, xn > R, donde R es una relacin con n atributos y x1, x2,, xn son variables de dominio o
constantes de dominio.
x y, donde x e y son variables de dominio y es un operador de comparacin (<, <=, >, >=, <>, =). Se
exige que los atributos x e y tengan dominios que puedan compararse mediante .
x c, donde x es una variable de dominio, es un operador de comparacin y c es una constante de
dominio del atributo para el que x es una variable de dominio.
Las frmulas se construyen a partir de los tomos utilizando las reglas siguientes:
Aunque el lenguaje SQL se considere un lenguaje de consultas, contiene muchas otras capacidades adems de
la consulta en base de datos. Incluye caractersticas para definir la estructura de los datos, para la modificacin
de los datos en la base de datos y para especificacin de restricciones de integridad.
El lenguaje SQL es un lenguaje de alto nivel para dialogar con los SGBD-R. Como todo lenguaje de un SGBD,
esta formado por tres componentes claramente diferenciados, segn muestra la figura:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 27 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
SQL
No se pretende proporcionar un manual de usuario completo para SQL. Por el contrario, se van a presentar las
construcciones y conceptos fundamentales de SQL. Las distintas implementaciones de SQL pueden diferenciarse
en detalles, o pueden admitir slo un subconjunto del lenguaje completo, segn el SGBDR que se utilice.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 28 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Modificacin de tablas:
Aadir un nuevo atributo:
ALTER TABLE <nombre_tabla>
ADD <def_atributo>|<def_integridad>;
Eliminacin de tablas:
DROP TABLE <nombre_tabla>;
Una vista es una estructura tabular no fsica (tabla virtual), que permite consultar y/o modificar datos de la tabla
real.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 29 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Creacin de vistas:
CREATE VIEW <nombre_vista> [(<lista_atributos>)]
AS ( <clusula SELECT> );
Las filas de la vista sern aquellas que resulten de ejecutar la consulta sobre la que est definida.
Eliminacin de vistas:
DROP VIEW <nombre_vista>;
Es el sistema el encargado de utilizar los ndices, para optimizar el acceso a los datos. el usuario slo puede crear
o eliminar ndices, pero no indicar su utilizacin.
Creacin de ndices:
CREATE [UNIQUE] INDEX <nombre_ndice>
ON <nombre_tabla> (<lista_atributos>);
Eliminacin de ndices:
DROP INDEX <nombre_ndice>;
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 30 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Insercin de filas:
Insercin de una fila:
INSERT INTO <nombre_tabla> [(<lista_de _atributos>)]
VALUES (<valor_1>, <valor_2>,...,<valor_n>);
Modificacin de filas:
UPDATE <nombre_tabla>
SET <atributo_1> = <valor_1>,
<atributo_2> = <valor_2>,
...........
<atributo_n> = <valor_n>
[WHERE <condicin>]; La modificacin afectar a todas las filas que cumplan la condicin, si se especifica sta.
Si no se especifica condicin, la modificacin afectar a todas las filas de la tabla.
Eliminacin de filas:
DELETE
FROM <nombre_tabla>
[WHERE <condicin>]; No se pueden eliminar partes de una fila. Si no aparece la clusula "WHERE" se
eliminarn todas las filas de la tabla, no eliminndose la definicin de sta en el esquema.
Sintaxis de la sentencia:
SELECT [DISTINCT] <expresin>
FROM <lista_de_tablas>
[WHERE <condicin>]
[GROUP BY <lista_de_atributos>
[HAVING <condicin_de_grupo> ]]
[ORDER BY <lista_de_atributos> [ASC/DESC] ]; donde:
Operadores: Los operadores que se pueden utilizar para expresar condiciones de fila (clusula WHERE)
o de grupo (clusula HAVING) son:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 31 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Expresiones en la clusula SELECT: No slo se pueden seleccionar atributos, sino expresiones en las
que aparezcan atributos y/o constantes y operadores aritmticos.
Funciones agregadas: Devuelven un valor nico, numrico. No se pueden combinar, con columnas que
devuelvan ms de un valor, a menos que la consulta contenga una clusula GROUP BY.
COUNT (*): contador de tuplas (totalizador)
COUNT (DISTINCT Atributo): contador de tuplas (parcial), no tiene en cuenta valores nulos ni
duplicados.
AVG(Atributo): media aritmtica de un atributo numrico
SUM(Atributo): suma de atributos o expresiones numricas
MAX(Atributo): valor mximo de un atributo o expresin numrica
MIN(Atributo): valor mnimo de un atributo o expresin numrica
Clusula GROUP BY: GROUP BY <lista_de_atributos>
Agrupa el resultado, devolviendo una nica fila por grupo.
El agrupamiento no se realiza ordenado.
Los atributos que aparezcan en GROUP BY, deben aparecer en la clusula SELECT.
Clusula HAVING: HAVING <condicin_de_grupo>
Siempre va acompaada de la clusula GROUP BY.
Especifica una condicin de grupo.
Clusula ORDER BY: ORDER BY <lista_de_atributos> [ASC | DESC]
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 32 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Este lenguaje se preocupa principalmente del control de acceso a los datos (seguridad) y del control de la
integridad de los datos.
Niveles de acceso soportados por los SGBDR: Se establecen privilegios de acceso por los niveles
siguientes:
Base de Datos.
Tabla.
Atributo.
Tupla.
Concesin de Privilegios: Permite dar a los usuarios el acceso completo o restringido a la base de datos:
GRANT <privilegio_de_acceso>
[ON <lista_de_objetos>]
TO <lista_de_usuarios>
[WITH GRANT OPTION]; donde:
Nivel de Base de Datos: El SGBDR chequea los privilegios del usuario al iniciar la sesin. Los posibles
privilegios o permisos son:
CONNECT: Conectarse a la BDR.
RESOURCE: Crear objetos.
DBA: Ejecucin de comandos restrictivos. Acceso a cualquier objeto. Privilegio RESOURCE implcito.
Nivel de Tabla: Las tablas son propiedad del usuario que las cre. Los posibles privilegios o permisos
son:
DELETE: Autoriza el borrado de tuplas.
INSERT: Autoriza la insercin de nuevas tuplas.
SELECT: Permite la realizacin de consultas.
UPDATE: Permite la actualizacin de tuplas.
ALL PRIVILEGES: Concede todos los privilegios.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 33 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Nivel de Tupla: Se crea una vista con slo las tuplas permitidas. Se establecen los permisos sobre la
vista.
Este control est asociado al concepto de Transaccin. Existen dos sentencias principales:
COMMIT: Los cambios que se puedan estar realizando sobre la base de datos se hacen fijos nicamente
al completar la transaccin (COMMIT automtico) o al hacer un COMMIT explcito.
ROLLBACK: Elimina todos los cambios que se hayan podido producir en la base de datos desde la
ejecucin de la ltima instruccin COMMIT. Si se produce un error de programa o un fallo hardware el
sistema realiza un ROLLBACK automticamente.
Para acceder a la base de datos relacionales, las instrucciones del LMD del SQL necesitan ser ejecutadas desde
el lenguaje anfitrin. Hay dos maneras de hacerlo:
SQL incorporado: Extendiendo la sintaxis del lenguaje anfitrin para incorporar las llamadas del LMD
dentro del programa del lenguaje anfitrin. Usualmente, un carcter especial o una sentencia concreta
precede a las llamadas del LMD y un precompilador LMD, convierte las instrucciones LMD en llamadas
normales a procedimientos del lenguaje anfitrin.
SQL dinmico: Proporcionando una interfaz de programas de aplicacin, API (Application Program
Interface), que se deben usar para enviar tanto instrucciones LMD, como LDD, a la base de datos, y
recuperar los resultados. Existen dos estndares:
El estndar de conectividad abierta de base de datos (ODBC, Open Data Base Connectivity) definido
por Microsoft para el uso con el lenguaje C, usado comnmente.
El estndar de conectividad de Java con base de datos (JDBC, Java Data Base Connectivity) que
proporciona las caractersticas correspondientes para el lenguaje Java.
En el resto del apartado, vamos a examinar las dos normas de conexin a base de datos, ODBC y JDBC,
utilizando el lenguaje SQL.
Para comprender estas normas es necesario comprender el concepto de sesin SQL. El usuario o aplicacin se
conecta a un servidor de base de datos SQL, estableciendo una sesin. As todas las actividades del usuario o
aplicacin estn en el contexto de una sesin SQL. Adems de las ordenes normales de SQL (LMD y LDD), una
sesin tambin puede contener rdenes para comprometer el trabajo realizado hasta ese momento en la sesin
(COMMIT) o para echarlo atrs (ROLLBACK).
Las normas ODBC y JDBC, se desarrollaron para hacer de interfaz entre clientes y servidores. Cualquier cliente
que utilice interfaces ODBC o JDBC puede conectarse a cualquier servidor de base de datos que proporcione
esta interfaz.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 34 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
7.1 ODBC
Qu es ODBC?
Las aplicaciones como las interfaces grficas de usuario, los paquetes estadsticos y las hojas de clculo pueden
usar la misma API ODBC, para conectarse a cualquier servidor de base de datos compatible con ODBC.
Cada sistema de base de datos que sea compatible con ODBC proporciona una biblioteca que se debe enlazar
con el programa cliente. Cuando este programa cliente realiza una llamada a la API ODBC, el cdigo de la
biblioteca se comunica con el servidor de base de datos para realizar la accin solicitada y obtener los resultados.
ODBC se basa en las normas SQL de Interface de nivel de llamada, CLI (Call-Level Interface) desarrolladas por el
consorcio industrial X/Open y el grupo SQL Access, pero tienen varias extensiones. La API ODBC define una CLI,
una definicin de sintaxis SQL y reglas sobre las secuencias admisibles de llamadas CLI. La norma tambin
define los niveles de conformidad para CLI y la sintaxis SQL:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 35 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
El nivel central de la CLI tiene comandos para conectarse con bases de datos, para preparar y ejecutar
sentencias SQL, para devolver resultados o valores de estado y para administrar transacciones.
El nivel uno, siguiente nivel de conformidad, exige el soporte de la recuperacin de informacin de los
catlogos de los SGBD, como la informacin sobre las relaciones existentes y los tipos de sus atributos, y
otras caractersticas que superan la CLI del nivel central.
El nivel dos exige ms caractersticas, como la capacidad de enviar y recuperar arrays de valores de
parmetros y de recuperar informacin de catlogo ms detallada.
7.2 JDBC
Qu es JDBC?
Pasos que hay que realizar en un programa Java utilizando el API JDBC:
Importacin de paquetes: Estos paquetes contienen el propio JDBC y los drivers para una determinada
base de datos.
Registrar los drives de JDBC: DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); En
este caso se registra un driver para acceder a Oracle.
Abrir una conexin a la base de datos: Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@aardvark:1526:teach", user, password); Se indica el tipo de driver, nombre de host,
puerto, nombre de la base de datos, usuario y password, es decir, todo lo necesario para localizar la base
de datos y poder acceder a ella.
Crear un objeto de tipo Statement: PreparedStatement pstmt = conn.prepareStatement (x); En este caso x
es la sentencia SQL que se quiere ejecutar.
Ejecutar la query o sentencia SQL, y devolver el resultado en un objeto de tipo Result Set: ResultSet rset
= pstmt.executeQuery ();
Procesar el Result Set que nos ha devuelto la base de datos.
Cerrar los objetos creados: Resul Set y Statement.
Cerrar la conexin.
En la siguiente figura, se muestra las cuatro arquitecturas JDBC que existen actualmente:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 36 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Se reflejan, los cuatro tipos de driver con los que puede trabajar JDBC. Son:
Driver tipo 1: JDBC/ODBC bridge. Acceso a base de datos a travs del API ODBC.
Driver tipo 2: JDBC Driver (DBMS especfico). Acceso directo a una base de datos concreta.
Driver tipo 3: JDBC/native brigde. Acceso a base de datos a travs de un driver java nativo, que est
arrancado en la parte del Servidor.
Driver tipo 4: JDBC middleware. Acceso directo a varias bases de datos. Soporte de COMMIT en dos
fases para coordinar las actualizaciones en las diversas bases de datos.
8. CONCLUSIN
En este tema hemos tenido una primera aproximacin a los sistemas de gestin de bases de datos relacionales,
que son uno de los componentes fundamentales de un sistema informtico moderno. Hoy en da no se podran
concebir los sistemas de informacin sin bases de datos relacionales.
Comenzamos viendo sus antecedentes histricos, las bases de datos jerrquicas y en red como primera
generacin, hasta llegar a la segunda generacin con las bases de datos relacionales Estudiamos las
caractersticas principales de los sistemas de gestin de bases de datos (SGBD), la arquitectura de 3 niveles que
permite asegurar la independencia entre los datos y las aplicaciones y los lenguajes de los SGBD que permiten a
los distintos tipos de usuarios acceder y utilizar las bases de datos. Tambin repasamos la estructura general que
presenta un SGBD y cmo sus distintos componentes interactan entre si.
A continuacin estudiamos el modelo relacional y las caractersticas de los SGBD Relacionales (SGBD-R), tales
como las estructuras de datos, operadores y aspectos semnticos asociados al modelo. Para entender mejor el
modelo, se utilizaron ejemplos de estas caractersticas.
Hemos estudiado el modelo orientado a objetos y sus principales caractersticas. Este modelo permite construir
un nuevo tipo de SGBD orientados a objetos (SGBD-OO) que todava se encuentra en fase de maduracin, pero
que posiblemente tengan un gran desarrollo en el futuro, por sus ventajas en determinados entornos donde se
utilizan estructuras de datos complejas.
En cuanto a los lenguajes de interrogacin de bases de datos, hemos visto tres lenguajes formales. El primer
lenguaje de consulta, el lgebra relacional, se estudia en detalle. El lgebra relacional forma la base del lenguaje
de consulta SQL, ampliamente usado. A continuacin se proporciona una visin general de otros dos lenguajes
formales: el clculo relacional de tuplas y el clculo relacional de dominios, que son lenguajes declarativos de
consulta basados en la lgica matemtica. El clculo relacional de dominios es la base del lenguaje de consulta
QBE.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 37 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Los lenguajes formales proporcionan una notacin concisa para la representacin de las consultas. Sin embargo,
los sistemas de bases de datos comerciales necesitan un lenguaje de consulta cmodo para el usuario. Hemos
estudiado el lenguaje comercial que actualmente tiene mayor influencia, SQL. SQL es una combinacin de
lgebra relacional y construcciones de clculo relacional.
Finalmente se ha estudiado los dos estndares de conectividad asociados a SQL: ODBC y JDBC. El primero para
lenguaje C y el segundo para lenguaje Java.
9. BIBLIOGRAFA
De Miguel y Piattini (1999): Fundamentos y modelos de bases de datos. Ra-Ma.
A. Silberschatz, H. F. Korth y S. Sudarshan (1998): Fundamentos de Bases de Datos". Mc Graw-Hill.
C.J. Date (1993): Introduccin a los Sistemas de Bases de Datos Volumen I, Quinta Edicin. Addison-
Wesley Iberoamericana.
Rick Cattell (1997): Object Database Standard ODMG 2.0. Object Database Management Group.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 38 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
En 1970 E.F. Codd, basndose en el lgebra y la teora de conjuntos, propone un nuevo modelo de datos llamado
modelo relacional. Sugiere que todos los datos de la base de datos se podran representar como una estructura
tabular (tablas con columnas y filas, que denomin relaciones) y que esas relaciones se podran acceder con un
lenguaje no procedimental (declarativo). En este tipo de lenguajes, en lugar de escribir algoritmos para acceder a
los datos, slo se necesita un predicado que identifica los registros o combinacin de registros deseados. Es ms,
este nuevo modelo integraba los lenguajes de definicin, navegacin y manipulacin en un solo lenguaje
unificado.
El modelo de datos relacional ha proporcionado beneficios inesperados adems del aumento de productividad y
facilidad de uso. Es muy adecuado para el enfoque cliente/servidor, el procesamiento paralelo y las interfaces
grficas de usuario.
El sistema de gestin de la base de datos (SGBD) es una coleccin de numerosas rutinas de software
interrelacionadas, cada una de las cuales es responsable de una tarea especfica. El objetivo primordial de un
SGBD es proporcionar un entorno conveniente y eficiente para extraer, almacenar y manipular informacin de la
base de datos.
El SGBD gestiona centralizadamente todas las peticiones de acceso a la base de datos, por lo que este paquete
funciona como interfaz entre los usuarios y la base de datos. Adems, el SGBD gestiona la estructura fsica de los
datos y su almacenamiento.
Una de las caractersticas ms importantes de los SGBD es la independencia entre programas y datos. Para
asegurar esta independencia es necesario separar la representacin fsica y lgica de los datos, distincin que
fue reconocida oficialmente en 1978, cuando el comit ANSI/X3/SPARC propuso una arquitectura en 3 niveles:
Nivel interno: Es la representacin del nivel ms bajo de abstraccin, en ste se describe en detalle la
estructura fsica de la base de datos: dispositivos de almacenamiento fsico, estrategias de acceso,
ndices, etc.
Nivel conceptual: El siguiente nivel de abstraccin describe que datos son almacenados realmente en la
base de datos y las relaciones que existen entre los mismos, esto es, describe la base de datos completa
en trminos de su estructura de diseo.
Nivel externo: Nivel ms alto de abstraccin, es lo que el usuario final puede visualizar del sistema
terminado, describe slo una parte de la base de datos al usuario acreditado para verla.
Los SGBD deben ofrecer lenguajes e interfaces apropiadas para cada tipo de usuario: administradores de la base
de datos, diseadores, programadores de aplicaciones y usuarios finales. Estos lenguajes son bsicamente tres:
El lenguaje de definicin de datos (DDL) define y mantiene la estructura de la base de datos, es decir,
creacin, borrado y mantenimiento de bases de datos, tablas, columnas, ndices, claves, etc.
El lenguaje de consulta y manipulacin de datos (DML) sirve para obtener, insertar, eliminar y modificar
los datos de la base de datos.
El lenguaje de Control de Datos (DCL) sirve para trabajar en un entorno multiusuario, donde es
importante la proteccin y la seguridad de los datos y la comparticin de datos entre usuarios.
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 39 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
El modelo de datos relacional fue presentado por Codd en 1970, se basa en la representacin del universo del
discurso mediante el lgebra relacional.
La estructura bsica del modelo relacional es la tabla, que representa una relacin, y en la cual se distinguen los
siguientes elementos: Relacin, Atributos, Dominio, Tuplas, Cardinalidad de la relacin y Grado de la relacin.
Los operadores asociados al modelo de datos relacional forman el lgebra relacional. Se puede demostrar
matemticamente que sta lgebra es completa, o sea, que por medio de ella se puede realizar cualquier acceso
a la base de datos. Los operandos con los que trabaja el lgebra son relaciones del modelo relacional y los
operadores bsicos son: Unin, Diferencia, Producto cartesiano, Proyeccin y Seleccin.
En el nivel superior de descripcin del modelo se establecen restricciones adicionales a las propias del modelo
relacional que tienen como fin mantener la integridad y validez de los datos almacenados as como aumentar el
grado de informacin que el esquema lgico de datos proporciona. Estas restricciones son dos: Restricciones de
Usuario y de Integridad Referencial.
El modelo de Orientacin a Objetos (OO) se basa en conceptos sencillos que aplicamos continuamente: objetos y
atributos, el todo y las partes, clases y miembros. En lugar de considerar el software desde una perspectiva
clsica de entrada/proceso/salida, como los mtodos estructurados clsicos, se basa en modelar el sistema
mediante los objetos que forman parte de l y las relaciones estticas o dinmicas entre estos objetos.
Los elementos principales del enfoque orientado a objetos son: Objetos, Clases, Atributos, Herencia y
Polimorfismo.
Un SGBDOO debe satisfacer dos criterios: ser un sistema orientado a objetos, y ser un sistema de gestin de
bases de datos. El primer criterio se traduce en ocho caractersticas generales: abstraccin, encapsulacin,
modularidad, jerarqua, control de tipos, concurrencia, persistencia y genericidad. El segundo criterio se traduce
en cinco caractersticas principales: persistencia, concurrencia, recuperacin ante fallos del sistema, gestin del
almacenamiento secundario y facilidad de consultas.
ODMG define un SGBD-OO que integra las capacidades de las bases de datos con las capacidades de los
lenguajes de programacin, de forma que los objetos de la base de datos aparezcan como objetos del lenguaje
de programacin, intentando de esta manera eliminar la falta de correspondencia existente entre los sistemas de
tipos de ambos lenguajes. Sus tres lenguajes son:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 40 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
Ahora vamos a estudiar los lenguajes formales de consulta o lenguajes puros. Los tres que se estudian no son
cmodos de usar, pero a cambio sirven como base formal para lenguajes de consulta que si resultan cmodos.
El lgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman
como entrada una o dos relaciones y producen como resultado una nueva relacin.
La operacin interseccin de conjuntos denotada por , permite buscar la tuplas que estn al tiempo en
las dos relaciones sobre las que acta.
La operacin unin natural forma un producto cartesiano de sus dos argumentos, realiza una seleccin
forzando la igualdad de los atributos que aparecen en ambas relaciones y, finalmente elimina los atributos
duplicados.
La operacin asignacin, denotada por , acta de manera parecida a la asignacin de los lenguajes de
programacin.
Las consultas se expresan en el clculo relacional de tuplas como: {t P(t)}, es decir, son el conjunto de todas las
tuplas tales que el predicado P es cierto para t. Se utiliza la notacin t[A] para denotar el valor de la tupla t en el
atributo A y t R para denotar que la tupla t est en la relacin R.
Hay una segunda forma de clculo relacional denominada clculo relacional de dominios. Esta forma utiliza
variables de dominio que toman sus valores del dominio de un atributo, en vez de tomarlos de una tupla completa.
El clculo relacional de dominios, sin embargo, se halla estrechamente relacionado con el clculo relacional de
tuplas.
El lenguaje SQL es un lenguaje de alto nivel para dialogar con los SGBD-R. Como todo lenguaje de un SGBD,
esta formado por tres componentes claramente diferenciados:
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 41 de 42
www.haztefuncionario.com Material registrado. Prohibida su reproduccin.
Copia exclusiva de Jos Ignacio Mndez Yanes. Av de los Poblados 133, 7 - 3 - 28025 - Madrid - Tel. 917464968
El estndar de conectividad abierta de base de datos (ODBC, Open Data Base Connectivity) definido por
Microsoft para el uso con el lenguaje C, usado comnmente.
El estndar de conectividad de Java con base de datos (JDBC, Java Data Base Connectivity) que
proporciona las caractersticas correspondientes para el lenguaje Java.
Qu es ODBC?
Qu es JDBC?
TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 42 de 42