You are on page 1of 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

B1G1T05 - SISTEMAS DE GESTIN DE BASES DE DATOS RELACIONALES.

1. ANTECEDENTES HISTORICOS ................................................................................................................................... 3


1.1 LAS BASES DE DATOS JERARQUICAS ................................................................................................................. 3
1.2 LAS BASES DE DATOS EN RED .............................................................................................................................. 3
1.3 LAS BASES DE DATOS RELACIONALES .............................................................................................................. 4
2. SISTEMAS DE GESTION DE BASES DE DATOS (SGBD) ........................................................................................ 5
2.1 CARACTERSTICAS DE UN SGBD.......................................................................................................................... 6
2.2. NIVELES DE ABSTRACCIN: INTERNO, CONCEPTUAL Y EXTERNO ............................................................ 7
2.3. LENGUAJES DE LOS SGBD...................................................................................................................................... 9
2.3.1 LENGUAJE DE DEFINICIN DE DATOS (LDD) O DATA DEFINITION LANGUAGE (DDL) ...................... 9
2.3.2 LENGUAJE DE MANIPULACIN DE DATOS (LMD) O DATA MANIPULATION LANGUAGE (DML) ...... 10
2.3.3 LENGUAJE DE CONTROL DE DATOS (LCD) O DATA CONTROL LANGUAGE (DCL).............................. 11
2.4. ESTRUCTURA DE UN SGBD.................................................................................................................................. 11
3. SGBD RELACIONALES (SGBD-R).............................................................................................................................. 14
3.1 EL MODELO RELACIONAL ................................................................................................................................... 14
3.2 CARACTERSTICAS DE LOS SGBD-R .................................................................................................................. 14
3.2.1 ESTRUCTURAS DE DATOS: RELACIONES Y CLAVES.................................................................................. 14
3.2.2 OPERADORES ASOCIADOS ............................................................................................................................ 16
3.2.3 ASPECTOS SEMNTICOS ................................................................................................................................ 17
4. SGBDS ORIENTADOS A OBJETOS (SGBD-OO) ...................................................................................................... 18
4.1 EL MODELO DE ORIENTACIN A OBJETOS...................................................................................................... 18
4.2 CARACTERSTICAS DE LOS SGBD-OO............................................................................................................... 19
4.2.1 DEFINICIN ..................................................................................................................................................... 20
4.2.2 CARACTERSTICAS .......................................................................................................................................... 20
4.2.3 LENGUAJES DE DEFINICIN, ESPECIFICACIN Y CONSULTA ............................................................... 20
4.2.4 VENTAJAS E INCONVENIENTES..................................................................................................................... 21
5. LENGUAJES DE INTERROGACION DE BASES DE DATOS ................................................................................ 22
5.1 EL LGEBRA RELACIONAL ................................................................................................................................. 22
5.1.1 OPERACIONES FUNDAMENTALES................................................................................................................ 22
5.1.1.1 LA OPERACIN SELECCIN....................................................................................................................................... 23
5.1.1.2 LA OPERACIN PROYECCIN ................................................................................................................................... 23
5.1.1.3 COMPOSICIN DE OPERACIONES RELACIONALES .............................................................................................. 23
5.1.1.4 LA OPERACIN UNIN ................................................................................................................................................ 23
5.1.1.5 LA OPERACIN DIFERENCIA DE CONJUNTOS....................................................................................................... 24
5.1.1.6 LA OPERACIN PRODUCTO CARTESIANO ............................................................................................................. 24
5.1.1.7 LA OPERACIN RENOMBRAMIENTO....................................................................................................................... 25
5.1.2 OTRAS OPERACIONES DERIVADAS .............................................................................................................. 25
5.1.2.1 LA OPERACIN INTERSECCIN DE CONJUNTOS.................................................................................................. 25
5.1.2.2 LA OPERACIN UNIN NATURAL ............................................................................................................................ 25
5.1.2.3 LA OPERACIN ASIGNACIN .................................................................................................................................... 26
5.2 EL CLCULO RELACIONAL DE TUPLAS ........................................................................................................... 26
5.3 EL CLCULO RELACIONAL DE DOMINIOS....................................................................................................... 27
6. EL LENGUAJE SQL (STRUCTURED QUERY LANGUAGE)................................................................................. 27
6.1 LENGUAJE DE DEFINICIN DE DATOS (DDL) .................................................................................................. 28
6.1.1 TIPOS BSICOS DE DATOS............................................................................................................................. 28
6.1.2 CREACIN Y BORRADO DE BASES DE DATOS............................................................................................ 29
6.1.3 CREACIN, MODIFICACIN Y BORRADO DE TABLAS .............................................................................. 29
6.1.4 DEFINICIN DE VISTAS.................................................................................................................................. 29
6.1.5 CREACIN Y BORRADO DE NDICES............................................................................................................ 30

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

6.1.6 DEFINICIN DE CLAVES REFERENCIALES................................................................................................. 30


6.2 LENGUAJE DE MANIPULACIN DE DATOS (DML).......................................................................................... 31
6.2.1 INSERCIN, ACTUALIZACIN Y BORRADO DE FILAS ............................................................................... 31
6.2.2 OPERACIONES DE CONSULTA ...................................................................................................................... 31
6.3 LENGUAJE DE CONTROL DE DATOS (DCL)....................................................................................................... 33
6.3.1 CONTROL DE ACCESO A LOS DATOS ........................................................................................................... 33
6.3.2 CONTROL DE INTEGRIDAD ........................................................................................................................... 34
7. ESTANDARES DE CONECTIVIDAD: ODBC Y JDBC ............................................................................................. 34
7.1 ODBC......................................................................................................................................................................... 35
7.2 JDBC .......................................................................................................................................................................... 36
8. CONCLUSIN ................................................................................................................................................................. 37
9. BIBLIOGRAFA .............................................................................................................................................................. 38
10. ESQUEMA RESUMEN ............................................................................................................................................ 39

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:

Primera generacin: sistema jerrquico y sistema de red.


Requieren complejos programas de aplicacin.
La independencia de datos es mnima.
No tienen un fundamento terico.
Segunda generacin: modelo relacional.
Lenguaje de consultas estructurado: SQL.
Desarrollo de SGBD relacionales comerciales.
Limitada capacidad para modelar datos.
Tercera generacin: modelo orientado a objetos y modelo relacional extendido.

Veamos ahora con ms detalle la historia de cada uno de estos modelos, soportados en diferentes SGBD.

1.1 LAS BASES DE DATOS JERARQUICAS

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.

1.2 LAS BASES DE DATOS EN RED

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.

1.3 LAS BASES DE DATOS RELACIONALES

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:

INGRES de la Universidad de Berkeley (1973-1975)


System R de IBM (1974-1977)
System 2000 de la Universidad de Austin en Texas
El proyecto Scrates de la Universidad de Grenoble en Francia
ADABAS de la Universidad tcnica de Darmstadt en Alemania.

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

Ya la primera estandarizacin de SQL, provoc la desaparicin de su ms inmediato competidor, QUEL. Sin


embargo, QBE ha sobrevivido hasta nuestros das gracias a las interfaces de usuario amigables y porque supone
un primer contacto ms intuitivo y rpido con las bases de datos relacinales.

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.

2. SISTEMAS DE GESTION DE BASES DE DATOS (SGBD)


En un sistema de base de datos debe existir una capa intermedia entre los datos almacenados en la base de
datos, las aplicaciones y los usuarios del mismo. Se trata del Sistema de Gestin de la Base de Datos (SGBD).
Acta de intermediario entre los usuarios y aplicaciones y los datos proporcionado medios para describir,
almacenar y manipular los datos y proporciona herramientas al administrador para gestionar el sistema, entre
ellas las herramientas de desarrollo de aplicaciones, generador de informes, lenguajes especficos de acceso a
los datos, como SQL (Structured Query Language) o QBE (Query By Example) (en bases de datos relacionales).

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

2.1 CARACTERSTICAS DE UN SGBD

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:

Mantener la independencia entre los programas y la estructura de la base de datos. As se simplifica el


mantenimiento de las aplicaciones que acceden a la base de datos. Aunque esta independencia nunca es
absoluta, los SGBD, principalmente los relacionales, van respondiendo cada vez mejor a esta exigencia.
Asegurar la coherencia de los datos. En lo posible, no debe existir redundancia de datos, los datos deben
estar almacenados una sola vez en la base de datos.
Permitir a los usuarios almacenar datos, acceder a ellos y actualizarlos. Adems, el SGBD debe hacerlo
de forma transparente al usuario, ocultando la estructura fsica interna de los datos y la forma de
almacenarlos.
Contener un catlogo accesible por los usuarios en el que se almacenen las descripciones de los datos
de forma centralizada. Este catlogo se denomina diccionario de datos y permite identificar y eliminar las
redundancias y las inconsistencias.
Garantizar que todas las actualizaciones correspondientes a una determinada transaccin se realicen, o
que no se realice ninguna. Una transaccin es un conjunto de acciones que cambian el contenido de la
base de datos. Si la transaccin falla durante su realizacin, la base de datos quedar en un estado
inconsistente. Algunos de los cambios se habrn hecho y otros no, por lo tanto, los cambios realizados
debern ser deshechos para devolver la base de datos a un estado consistente.
Permitir que varios usuarios tengan acceso al mismo tiempo a los datos. Cuando dos o ms usuarios
acceden a la base de datos y al menos uno de ellos est actualizando datos, el SGBD deber gestionar el
acceso concurrente, impidiendo que haya datos corruptos o inconsistentes. Aqu el SGBD puede permitir
la simultaneidad de accesos mediante el manejo eficiente de los bloqueos de la bases de datos.
Garantizar la recuperacin de la base de datos en caso de que algn suceso la dae. El fallo puede ser
debido a una avera en algn dispositivo hardware o un error del software, que hagan que el SGBD
aborte, o puede ser debido a que el usuario detecte un error durante la transaccin y la aborte antes de
que finalice. En todos estos casos, el SGBD debe proporcionar un mecanismo capaz de recuperar la
base de datos llevndola a un estado consistente.
Garantizar la seguridad de la base de datos. Esto es, slo los usuarios autorizados pueden acceder a la
base de datos, permitiendo diferentes niveles de acceso. La proteccin debe ser contra accesos no
autorizados, tanto intencionados como accidentales.
Garantizar la integridad de la base de datos. Esto requiere la validez y consistencia de los datos
almacenados. Normalmente se expresa mediante restricciones, que son una serie de reglas que la base
de datos no puede violar.
Mantener la disponibilidad continua. La base de datos debe estar siempre disponible para su acceso. El
SGBD debe proporcionar utilidades de administracin, mantenimiento y gestin que puedan realizarse sin
detener el funcionamiento de la base de datos.
Proporcionar herramientas de administracin de la base de datos. Estas herramientas permiten entre
otras funcionalidades: importar y exportar datos, monitorizar el funcionamiento y obtener estadsticas de
utilizacin de la base de datos, reorganizar ndices y optimizar el espacio liberado para reutilizarlo.
Integrarse con algn software gestor de comunicaciones. Muchos usuarios acceden a la base de datos
desde terminales remotos, por lo que la comunicacin con la mquina que alberga al SGBD se debe
hacer a travs de una red. Todas estas transmisiones de mensajes las maneja el gestor de
comunicaciones de datos. Aunque este gestor no forma parte del SGBD, es necesario que el SGBD se
pueda integrar con l.

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.

2.2. NIVELES DE ABSTRACCIN: INTERNO, CONCEPTUAL Y EXTERNO

Se puede observar en los Sistemas de Informacin la existencia de dos niveles distintos:

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.

La siguiente figura, muestra los tres niveles de abstraccin mencionados.

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

2.3. LENGUAJES DE LOS SGBD

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.

2.3.1 LENGUAJE DE DEFINICIN DE DATOS (LDD) O DATA DEFINITION LANGUAGE (DDL)

El lenguaje de definicin de datos est orientado a la definicin, descripcin y mantenimiento de la estructura de


la base de datos. Permite al administrador definir los datos con facilidad y precisin, especificando sus distintas
estructuras. Debe tener facilidad para describir la estructura del esquema conceptual, hacer las especificaciones
relativas al esquema fsico, y declarar las estructuras del esquema externo, requeridas por las aplicaciones.

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.

EL DDL permite especificar:

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

Formato de representacin (binario, decimal, ...)


Modo de acceso (punteros, ndices, ...)

2.3.2 LENGUAJE DE MANIPULACIN DE DATOS (LMD) O DATA MANIPULATION LANGUAGE (DML)

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:

DML procedural. El programador especifica qu datos se necesitan y cmo obtenerlos. Se deben


especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para
obtener la informacin requerida. Estos lenguajes acceden a un registro, lo procesan y basndose en los
resultados obtenidos, acceden a otro registro, que tambin deben procesar. As se va accediendo a
registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un DML
procedural deben estar embebidas en un lenguaje de alto nivel. Como ya hemos comentado este es el
lenguaje conocido como lenguaje anfitrin.
DML no procedural. El usuario o programador especifica qu datos quiere obtener sin decir cmo se debe
acceder a ellos. El SGBD traduce las sentencias del DML en uno o varios procedimientos que manipulan
los conjuntos de registros necesarios. Esto libera al usuario de tener que conocer cul es la estructura
fsica de los datos y qu algoritmos se deben utilizar para acceder a ellos. A los DML no procedurales
tambin se les denomina lenguajes declarativos.

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.

La manipulacin de datos comprende las siguientes operaciones:

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

Modificacin de Informacin Almacenada.

2.3.3 LENGUAJE DE CONTROL DE DATOS (LCD) O DATA CONTROL LANGUAGE (DCL)

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.

Se encarga principalmente de tres actividades sobre la base de datos:

Control de permisos de acceso


Control de concurrencia
Control de transacciones

2.4. ESTRUCTURA DE UN SGBD

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.

Los principales mdulos del SGBD son:

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:

El gestor de transacciones. Realiza el procesamiento de las transacciones.


El gestor de buffers. Transfiere los datos entre memoria principal y los dispositivos de almacenamiento
secundario.
El gestor de ficheros: Gestiona los ficheros en disco en donde se almacena la base de datos. Este gestor
establece y mantiene la lista de estructuras e ndices definidos en el esquema interno. Para acceder a los
datos pasa la peticin a los mtodos de acceso del sistema operativo que se encargan de leer o escribir
en los ficheros fsicos que almacenan la informacin de la base de datos.

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.

El tercer bloque es el SGBD y se subdivide en dos partes:

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:

Utilidades de carga de datos (importacin y exportacin de datos) con posibilidad de conversin de


formatos de ficheros.
Copia de seguridad (backup).
Estadsticas de utilizacin.
Reorganizacin de ficheros (mejora del rendimiento).
Control del rendimiento.
Registro de transacciones.
Gestor de bloqueos.
Distribucin de procesos entre mquinas.

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

3. SGBD RELACIONALES (SGBD-R)


A continuacin vamos a estudiar los Sistemas de Gestin de Bases de Datos Relacionales (SGBD-R) y para ello
veremos antes a nivel conceptual el modelo relacional. Este modelo es fundamental porque dio origen a los
primeros sistemas comerciales de SGBD-R, que son los que hoy en da dominan el mercado de bases de datos.

3.1 EL MODELO RELACIONAL

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.

Las caractersticas principales del modelo son las siguientes:

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.

3.2 CARACTERSTICAS DE LOS SGBD-R

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.

3.2.1 ESTRUCTURAS DE DATOS: RELACIONES Y CLAVES

En la estructura bsica del modelo relacional se distinguen los siguientes elementos:

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

Grado de la relacin: Es el nmero n de atributos que intervienen en la relacin.

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.

De un Alumno tenemos los datos:

Documento Nacional de Identidad (DNI)


Nmero de matrcula (NMat)
Nombre (Nom)
Apellidos (Ape)
Direccin (Dir)
Telfono (Tel)

Cada Asignatura est descrita por los siguientes datos:

Cdigo de asignatura (CodAsig)


Nombre (NomAsig)
Nmero de crditos (NCred)

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:

DNI NMat Nom Ape Dir Tel


11000000-A 0034 Pedro Lpez Garca C/Ancha 1 910000000
12111111-B 0521 Ana Ramirez Prez Plaza Mayor 4 931000000
12001001-V 1234 Juan Gmez Benitez Av. de Burgos 9 952000000

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:

CodAsig NomAsig NCred


01 Bases de Datos 4
02 Sistemas Operativos 6
03 Ingeniera del Software 8

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:

DNI CodAsig NotAsig


11000000-A 01 Sobresaliente
12111111-B 03 Notable
12001001-V 02 Aprobado
12001001-V 03 Aprobado

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.

3.2.2 OPERADORES ASOCIADOS

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.

3.2.3 ASPECTOS SEMNTICOS

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:

Impedir el borrado de esta tupla de Alumno (R2).


Borrar todas las tuplas de Cursa (R1) cuyo valor del atributo DNI coincida con el valor del atributo DNI de
la tupla borrada en Alumno (R2).
Poner el valor nulo en todas las tuplas de Cursa (R1) cuyo valor del atributo DNI coincida con el valor del
atributo DNI de la tupla borrada en Alumno (R2).
Poner un valor por omisin o lanzar un procedimiento de usuario para modificar todas las tuplas de Cursa
(R1) cuyo valor del atributo DNI coincida con el valor del atributo DNI de la tupla borrada en Alumno (R2).

4. SGBDS ORIENTADOS A OBJETOS (SGBD-OO)

4.1 EL MODELO DE ORIENTACIN A OBJETOS

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.

Los elementos principales del enfoque orientado a objetos son:

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.

4.2 CARACTERSTICAS DE LOS SGBD-OO

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.

4.2.3 LENGUAJES DE DEFINICIN, ESPECIFICACIN Y CONSULTA

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.

A continuacin se describen los tres 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.

4.2.4 VENTAJAS E INCONVENIENTES

Entre las principales ventajas de los SGBD-OO se encuentran:

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

los objetos de la implantacin se traducen en representaciones tabulares que generalmente se dispersan


en varias tablas.
Entre los principales inconvenientes de los SGBD-OO se encuentran:

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.

5. LENGUAJES DE INTERROGACION DE BASES DE DATOS


Un lenguaje de interrogacin o consulta es un lenguaje en el que un usuario solicita informacin de la base de
datos. Estos lenguajes suelen ser de un nivel superior que el de los lenguajes de programacin habituales. Los
lenguajes de consulta pueden clasificarse, tal como vimos al estudiar los LMD, en dos grupos:

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.

5.1 EL LGEBRA RELACIONAL

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.

5.1.1 OPERACIONES FUNDAMENTALES

Se dividen estas operaciones en dos tipos:

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.

5.1.1.1 LA OPERACIN SELECCIN

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.

5.1.1.2 LA OPERACIN PROYECCIN

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)

5.1.1.3 COMPOSICIN DE OPERACIONES RELACIONALES

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:

DNI,NMat (Nom=Ana (Alumno))

5.1.1.4 LA OPERACIN UNIN

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:

DNI (Alumno) y DNI (Cursa)

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:

DNI (Alumno) U DNI (Cursa)

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.

5.1.1.5 LA OPERACIN DIFERENCIA DE CONJUNTOS

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:

DNI (Alumno) - DNI (Cursa)

En nuestro ejemplo, el resultado sera la relacin vaca.

5.1.1.6 LA OPERACIN PRODUCTO CARTESIANO

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.

La definicin formal dice: 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 atributos en las que los m primeros
atributos son de R y los n restantes pertenecen a S.

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

5.1.1.7 LA OPERACIN RENOMBRAMIENTO

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:

Ana ( DNI,NMat (Nom=Ana (Alumno)))

5.1.2 OTRAS OPERACIONES DERIVADAS

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.

5.1.2.1 LA OPERACIN INTERSECCIN DE CONJUNTOS

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:

DNI (Alumno) DNI (Cursa)

5.1.2.2 LA OPERACIN UNIN NATURAL

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

5.1.2.3 LA OPERACIN ASIGNACIN

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:

temp1 DNI,NMat (Nom=Ana (Alumno))

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.

5.2 EL CLCULO RELACIONAL DE TUPLAS

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:

s R, donde s es una variable tupla y R es una relacin.


s[x] u[y], donde s y u son variables tuplas, x es un atributo en el que est definida s, y es un atributo en
el est definida u y es un operador de comparacin (<, <=, >, >=, <>, =). Es necesario que los atributos
x e y tengan dominios cuyos miembros puedan compararse mediante .
s[x] c, donde s es una variable tupla, x es un atributo en el que est definida s, es un operador de
comparacin y c es una constante en el dominio de atributo x.

Las frmulas se construyen a partir de los tomos utilizando las reglas siguientes:

Si P1 es una frmula, tambin lo son P1 y (P1).

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

Si P1 y P2 son frmulas, tambin lo son P1 P2, P1 P2 y P1 P2.


Si P1(s) es una frmula que contiene una variable tupla libre s, y R es una relacin:
s R(P1(s)) y s R(P1(s)) tambin son frmulas.

5.3 EL CLCULO RELACIONAL DE DOMINIOS

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.

Las expresiones del clculo relacional de dominios son de la forma:


{< x1, x2,, xn > P(x1, x2,, xn) }, donde x1, x2,, xn representan las variables de dominio, P representa una
frmula compuesta de tomos, como era el caso en el clculo relacional de tuplas.
Los tomos del clculo relacional de dominios tienen una de las formas siguientes:

< 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:

Un tomo es una frmula.


Si P1 es una frmula, tambin lo son P1 y (P1).
Si P1 y P2 son frmulas, tambin lo son P1 P2, P1 P2 y P1 P2.
Si P1(x) es una frmula en x, donde x es una variable de dominio:
x (P1(x)) y x (P1(x)) tambin son frmulas.

6. EL LENGUAJE SQL (Structured Query Language)


Los lenguajes formales descritos en el epgrafe anterior 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. Vamos a estudiar el lenguaje comercial que actualmente tiene mayor influencia, SQL.
SQL es una combinacin de lgebra relacional y construcciones de clculo relacional.

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

DDL DML DCL


CREATE SELECT GRANT
ALTER INSERT REVOKE
DROP UPDATE COMMIT
DELETE ROLLBACK

Destacamos algunas de las caractersticas principales del lenguaje SQL:

Utilizado por todo tipo de usuarios:


Administradores de BDR.
Programadores.
Usuarios Finales.
Lenguaje no procedimental: Se especifica QU se quiere obtener, sin decir CMO.
Permite especificar cualquier consulta.

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.

6.1 LENGUAJE DE DEFINICIN DE DATOS (DDL)

6.1.1 TIPOS BSICOS DE DATOS

Datos Alfanumricos o Cadenas de Caracteres:


CHAR(longitud), donde: longitud = nmero mximo de caracteres del campo
VARCHAR(longitud)
Datos Numricos:
SMALLINT , INTEGER
DECIMAL DECIMAL(precisin, decimal), donde: precisin = nmero de dgitos del nmero y
decimal = nmero de dgitos decimales del n decimal
REAL
FLOAT
Datos tipo fecha y tiempo:
DATE: Se puede elegir entre varios formatos.
TIME: Tambin tiene diferentes formatos.
TIMESTAMP: Su valor es: fecha + tiempo + nanosegundos.

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

6.1.2 CREACIN Y BORRADO DE BASES DE DATOS

Creacin de una Base de Datos: CREATE DATABASE nombre_base_datos;


Borrado de la Base de Datos: DROP DATABASE nombre_base_datos;

6.1.3 CREACIN, MODIFICACIN Y BORRADO DE TABLAS

Creacin de tablas (formato bsico):


CREATE TABLE nombre_tabla
(<definicin_atributo_1> [NOT NULL] [CHECK Condicion],
<definicin_atributo_2> [NOT NULL] [CHECK Condicion],
.....................
<definicin_atributo_n> [NOT NULL] [CHECK Condicion],
[ PRIMARY KEY (ListadeAtributos) ] ); donde:

definicin_atributo = nombre_atributo tipo_dato (tamao)


NOT NULL: no se permiten valores nulos en la columna
ListadeAtributos: uno o ms atributos separados por comas

Modificacin de tablas:
Aadir un nuevo atributo:
ALTER TABLE <nombre_tabla>
ADD <def_atributo>|<def_integridad>;

Modificar un atributo ya existente:


ALTER TABLE <nombre_tabla>
ALTER <Atributo> TYPE <Nuevo_tipo>;

Borrar un atributo ya existente:


ALTER TABLE <nombre_tabla>
DROP <Atributo>;

Eliminacin de tablas:
DROP TABLE <nombre_tabla>;

6.1.4 DEFINICIN DE VISTAS

Una vista es una estructura tabular no fsica (tabla virtual), que permite consultar y/o modificar datos de la tabla
real.

Las principales caractersticas de las vistas son:

Se utilizan como si fuesen tablas reales.


No contienen datos propios.
No tienen asociada estructura fsica.

Las ventajas del uso de vistas son:

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

Menor complejidad en consultas: Permiten obtener igual informacin de forma ms simple.


Aumento confidencialidad: Permiten acceder slo a ciertos datos de las tablas reales.

Las vistas se pueden crear y borrar con las siguientes sentencias:

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>;

6.1.5 CREACIN Y BORRADO DE NDICES

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>;

6.1.6 DEFINICIN DE CLAVES REFERENCIALES

En la creacin de la tabla (formato completo):


CREATE TABLE nombre_tabla
( nombre_columna tipo_columna [NOT NULL] [DEFAULT Valor]
[CHECK Condicion ],
............................................................................ ,
nombre_columna tipo_columna [NOT NULL] [DEFAULT Valor]
[CHECK Condicion ],
[PRIMARY KEY (lista_de_columnas)] ,
[FOREIGN KEY (lista_de_columnas)
REFERENCES nombre_de_tabla (lista_de_columnas)
ON UPDATE [NO ACTION | SET DEFAULT | SET NULL |
CASCADE]
ON DELETE [NO ACTION | SET DEFAULT | SET NULL |
CASCADE]
FOREIGN KEY ..... );

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

6.2 LENGUAJE DE MANIPULACIN DE DATOS (DML)

6.2.1 INSERCIN, ACTUALIZACIN Y BORRADO DE FILAS

Insercin de filas:
Insercin de una fila:
INSERT INTO <nombre_tabla> [(<lista_de _atributos>)]
VALUES (<valor_1>, <valor_2>,...,<valor_n>);

Insercin de varias filas:


INSERT INTO <nombre_tabla> [(<lista_de_atributos>)]
( <clusula SELECT> ); La clusula "SELECT" especifica una consulta cuyo resultado (filas) se insertar en la
tabla especificada.

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.

6.2.2 OPERACIONES DE CONSULTA

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:

SELECT: especifica la informacin que se desea obtener.


DISTINCT: elimina los valores repetidos.
FROM: indica las tablas o vistas en las que se encuentran los atributos implicados en la consulta.
WHERE: especifica la condicin de bsqueda.
GROUP BY: permite agrupar el resultado.
HAVING: especifica una condicin de grupo.
ORDER BY: permite ordenar el resultado.

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

De comparacin: <, <=, >, >=, <>, =


Lgicos: AND, OR, NOT
BETWEEN ... AND ...: establece una comparacin dentro de un intervalo cerrado. Tambin se puede
utilizar NOT BETWEEN.
LIKE: establece una comparacin entre cadenas de caracteres, empleando los siguientes comodines:
'%': sustituye a una cadena de caracteres cualquiera y '_': sustituye a un nico carcter cualquiera.
Tambin se puede utilizar NOT LIKE.
IN: comprueba la pertenencia de un valor a un conjunto dado.
IS NULL: comprueba si un valor determinado es nulo (NULL). Tambin se puede utilizar IS NOT
NULL.
Cuantificadores: ANY (alguno), ALL (todos)
Existencial: EXISTS, Indica la existencia o no de un conjunto. Tambin se puede utilizar NOT
EXISTS.

Reglas de Evaluacin de Operadores: El Orden de Evaluacin es el siguiente:


Operadores de Relacin: BETWEEN, IN, LIKE, IS, NULL y despus NOT, AND, OR.
Se pueden utilizar parntesis para establecer el orden de evaluacin deseado por el usuario.

Consultas con UNION, DIFERENCIA e INTERSECCIN:


Unin de conjuntos: operador UNION.
Diferencia de conjuntos: operador MINUS.
Interseccin de conjuntos: operador INTERSECT.

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

El resultado de la consulta se ordena en base a los atributos que se indiquen en la lista.


Los atributos de ordenacin deben aparecer en SELECT.

6.3 LENGUAJE DE CONTROL DE DATOS (DCL)

Este lenguaje se preocupa principalmente del control de acceso a los datos (seguridad) y del control de la
integridad de los datos.

6.3.1 CONTROL DE ACCESO A 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:

<privilegio_de_acceso>: CONNECT, RESOURCE, DBA, ALL PRIVILEGES, SELECT, UPDATE,


INSERT, DELETE.
WITH GRANT OPTION concede permiso para que el usuario a su vez, conceda esos permisos a
otros usuarios.

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.

Niveles Atributo y Tupla: Se implantan a travs de la definicin de vistas.


Nivel de Atributo: Se crea una vista sin condiciones. Se establecen los permisos sobre la vista.

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.

Revocacin de privilegios: Se utiliza para anular privilegios ya concedidos a los usuarios:


REVOKE <privilegio_de_acceso>
[ON <lista_de_objetos>]
TO <lista_de_usuarios> ;

6.3.2 CONTROL DE INTEGRIDAD

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.

7. ESTANDARES DE CONECTIVIDAD: ODBC Y JDBC


Los programas de aplicacin son programas que se usan para interaccionar con la base de datos. Como ya se
coment, estos programas se escriben usualmente en un lenguaje anfitrin, tal como Cobol, C, C++ o Java.

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?

ODBC son las siglas de Open Database Connectivity.


Es un interface estndar de programas de aplicacin (API) para acceso a base de datos.
Impulsado por SQL Access Group, principalmente por Microsoft, desde 1992.
Usando sentencias ODBC en un programa, se puede acceder a las tablas de diferentes bases de datos,
tales como: Access, dBase, DB2, etc.
Permite a los programas utilizar sentencias SQL que acceden a las bases de datos, sin tener que conocer
los interfaces propietarios de dichas bases de datos.
ODBC maneja la sentencia SQL requerida y la convierte en una peticin a la base de datos.
No soporta el COMMIT en dos fases, para coordinar el acceso simultaneo a varias bases de datos

ODBC presenta una arquitectura de cuatro niveles:

La aplicacin propiamente dicha.


ODBC driver manager: Mdulo separado por cada base de datos a la que se quiere acceder. A este
mdulo es al que se conecta dinmicamente la aplicacin.
Driver DBMS/OS/Network: es un controlador que hace transparente el gestor de base de datos, el
sistema operativo y los protocolos de red.
El propio servidor de datos o fuente de datos.

Esta arquitectura, es la que muestra la figura:

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?

JDBC son las siglas de Java Database Connectivity.


Es un Java API, para conectar programas escritos en Java a datos almacenados en SGBDR.
Consiste en un conjunto de clases e interfaces escritos en el lenguaje de programacin Java.
Suministra un API estndar para los programadores, haciendo posible desarrollar aplicaciones con
acceso a bases de datos usando un puro Java API.
Este estndar es definido por Sun Microsystems, y permitiendo a los diversos suministradores de base de
datos, implementar y extender dicho estndar con sus propios JDBC drivers.
JDBC establece una conexin con la base de datos, enva las sentencias SQL y procesa los resultados.
Con un pequeo programa puente se puede utilizar el interface JDBC, para acceder a las bases de
datos a travs de ODBC.

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

10. ESQUEMA RESUMEN


El modelo relacional constituye la segunda generacin de los sistemas de bases de datos.

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.

Los principales mdulos del SGBD son:

El compilador del DDL (Data Definition Language).


El precompilador del DML (Data Manipulation Language).
El compilador del DML (Data Manipulation Language).
El procesador de consultas.

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 gestor de la base de datos.

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:

Lenguaje de definicin de datos (ODL).


Lenguaje de manipulacin de datos (OML).
Lenguaje de consulta de datos (OQL).

Entre las principales ventajas de los SGBD-OO se encuentran:

Flexibilidad y soporte para el manejo de tipos de datos complejos.


Manipulacin de datos complejos de forma rpida y gil.
Los objetos hacen referencia directamente a otros objetos mediante punteros.
El agrupamiento de los datos es ms eficiente.

Entre las principales desventajas de los SGBD-OO se encuentran:

La inmadurez del mercado constituye una posible fuente de problemas.


La falta de estndares ampliamente extendidos en la industria orientada a objetos.

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.

Operaciones fundamentales del lgebra relacional:

Unarias: Porque operan con una sola relacin o tabla. Son:


Seleccin: 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.
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.
Renombramiento: Dada una expresin E del lgebra relacional, la expresin x(E), devuelve el
resultado de la expresin E con nombre x
Binarias: Porque operan con dos relaciones. 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.
Diferencia de conjuntos: 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.
Producto cartesiano: La definicin formal dice: 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 atributos en las que los m primeros atributos son de R y los n restantes pertenecen a S.

Otras operaciones derivadas de las fundamentales:

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:

Lenguaje de definicin de datos: CREATE, ALTER Y DROP.


Lenguaje de manipulacin de datos: INSERT, UPDATE, DELETE Y SELECT.
Lenguaje de control de datos: GRANT, REVOKE, COMMIT Y ROLLBACK.

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

Existen dos estndares de conectividad para SQL:

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?

ODBC son las siglas de Open Database Connectivity.


Es un interface estndar de programas de aplicacin (API) para acceso a base de datos.
Impulsado por SQL Access Group, principalmente por Microsoft, desde 1992.
Usando sentencias ODBC en un programa, se puede acceder a las tablas de diferentes bases de datos,
tales como: Access, dBase, DB2, etc.
Permite a los programas utilizar sentencias SQL que acceden a las bases de datos, sin tener que conocer
los interfaces propietarios de dichas bases de datos.
ODBC maneja la sentencia SQL requerida y la convierte en una peticin a la base de datos.
No soporta el COMMIT en dos fases, para coordinar el acceso simultaneo a varias bases de datos

Qu es JDBC?

JDBC son las siglas de Java Database Connectivity.


Es un Java API, para conectar programas escritos en Java a datos almacenados en SGBDR.
Consiste en un conjunto de clases e interfaces escritos en el lenguaje de programacin Java.
Suministra un API estndar para los programadores, haciendo posible desarrollar aplicaciones con
acceso a bases de datos usando un puro Java API.
Este estndar es definido por Sun Microsystems, y permitiendo a los diversos suministradores de base de
datos, implementar y extender dicho estndar con sus propios JDBC drivers.
JDBC establece una conexin con la base de datos, enva las sentencias SQL y procesa los resultados.
Con un pequeo programa puente se puede utilizar el interface JDBC, para acceder a las bases de
datos a travs de ODBC.

TEMARIO-TICB-feb04 B1G1T05
Actualizado en febrero de 2004 Pgina 42 de 42

You might also like