You are on page 1of 74

ANTOLOGIA

FUNDAMENTOS DE
BASE DE DATOS









Chvez Snchez Cesar





Contenido
1.- Sistemas Gestores de Bases De Datos .................................................................................. 4
1.1 Objetivo de las Bases de Datos ......................................................................................... 4
1.2 reas de Aplicacin de los Sistemas de Bases de Datos ................................................... 4
1.3 Modelos de datos ....................................................................................................................... 5
1.4 Arquitectura del Sistema Gestor de Bases de datos ........................................................... 8
1.5 Niveles de abstraccin ............................................................................................................ 10
1.6 Tipos de usuarios ..................................................................................................................... 11
1.7 Tipos de lenguajes ................................................................................................................... 12
2.1 El proceso de diseo.......................................................................................................... 14
2.2 Modelo Entidad-Relacin .................................................................................................. 14
2.3 Restricciones. ...................................................................................................................... 16
2.4 Diagramas E-R. .................................................................................................................. 18
2.5 Diseo de diagramas E-R. ................................................................................................ 19
2.6 Conjunto de Entidades Dbiles. ....................................................................................... 21
2.7 Modelo E-R Extendido. ...................................................................................................... 22
2.8 Otros aspectos del diseo se base de datos. ................................................................ 24
2.9 La notacin E-R con UML. ................................................................................................ 26
3.- Modelo relacional ...................................................................................................................... 27
3.1 Estructura bsica. ............................................................................................................... 28
3.2 Esquema de las bases de datos ...................................................................................... 29
3.3 Claves ................................................................................................................................... 32
3.4 Lenguajes de consulta. ...................................................................................................... 33
4.- Diseo de Bases De Datos Relacionales. ............................................................................ 37
4.1 Caractersticas del diseo relacional. ................................................................................... 37
4.2 Dominios atmicos y la primera forma normal. ................................................................... 38
4.3 Dependencias funcionales. .................................................................................................... 39
4.4 Segunda formal normal........................................................................................................... 40
4.5 Tercera forma normal. ............................................................................................................. 41
4.6 Forma normal Boyce-Codd. ................................................................................................... 42
4.7 Algoritmos de descomposicin. ............................................................................................. 43
4.8 Forma normales superiores. .................................................................................................. 43

4.9 Integracin de las bases de datos. ....................................................................................... 44
5.- Algebra relacional ..................................................................................................................... 44
5.1 Operaciones fundamentales del algebra relacional ........................................................... 45
5.2 Otras operaciones del algebra relacional............................................................................. 46
5.3 Algebra relacional extendida .................................................................................................. 49
5.4 Valores nulos ............................................................................................................................ 49
5.5 Operaciones de modificaciones a la base de datos ........................................................... 50
6.- Lenguaje SQL ........................................................................................................................... 51
6.1 introduccin. ............................................................................................................................. 51
6.2 Definicin de datos. ................................................................................................................. 52
6.3 Estructura bsica de las consultas. ...................................................................................... 55
6.4 Operaciones sobre conjuntos. ............................................................................................... 56
6.5 Funciones de agregacin. ...................................................................................................... 57
6.6 Valores nulos. ........................................................................................................................... 59
6.7 Consultas Anidadas. ............................................................................................................... 61
6.8 Consultas complejas. .............................................................................................................. 62
6.9 Vistas. ........................................................................................................................................ 63
6.10 Modificaciones en las Bases de Datos. ............................................................................. 63
7.- Bases De Datos Orientadas a Objetos. ................................................................................ 65
7.1 Visin General. ......................................................................................................................... 65
7.2 Tipos de datos complejos. ...................................................................................................... 66
7.3 Tipos estructurados y herencia en SQL. .............................................................................. 66
7.4 Operaciones sobre conjuntos. ............................................................................................... 69
7.5 Tipos de arreglo: multiconjuntos en SQL. ............................................................................ 71
7.6 Identidad de los objetos y tipos de referencia en SQL. ..................................................... 72
7.7 Implementacin de las caractersticas O-R. ........................................................................ 73





1.- Sistemas Gestores de Bases De Datos
1.1 Objetivo de las Bases de Datos

Un sistema gestor de bases de datos (SGBD) consiste en una coleccin de datos
interrelacionados y un conjunto de programas para acceder a dichos datos. La
coleccin de datos, normalmente denominada base de datos, contiene informacin
relevante para una empresa. El objetivo principal de un SGBD es proporcionar una
forma de almacenar y recuperar la informacin de una base de datos de manera
que sea tanto prctica como eficiente.
Los sistemas de bases de datos se disean para gestionar grandes cantidades de
informacin. La gestin de los datos implica tanto la definicin de estructuras para
almacenar la informacin como la provisin de mecanismos para la manipulacin
de la informacin. Tambin deben proporcionar la fiabilidad de la informacin
almacenada, a pesar de las cadas del sistema o los intentos de acceso sin
autorizacin. Si los datos van a ser compartidos entre diversos usuarios, el
sistema debe evitar posibles resultados anmalos.

1.2 reas de Aplicacin de los Sistemas de Bases de
Datos

Las bases de datos son ampliamente usadas. Las siguientes son algunas de sus
aplicaciones ms representativas:

Banca. Para informacin de los clientes, cuentas y prstamos, y transacciones
bancarias.

Lneas areas. Para reservas e informacin de planificacin. Las lneas areas
fueron de los primeros en usar las bases de datos de forma distribuida
geogrficamente (los terminales situados en todo el mundo accedan al sistema de
bases de datos centralizado a travs de las lneas telefnicas y otras redes de
datos).

Universidades. Para informacin de los estudiantes, matrculas de las
asignaturas y cursos.

Transacciones de tarjetas de crdito. Para compras con tarjeta de crdito y
generacin mensual de extractos

.
Telecomunicaciones. Para guardar un registro de las llamadas realizadas,
generacin mensual de facturas, manteniendo el saldo de las tarjetas telefnicas
de prepago y para almacenar informacin sobre las redes de comunicaciones.

Finanzas. Para almacenar informacin sobre grandes empresas, ventas y
compras de documentos formales financieros, como bolsa y bonos.

Ventas. Para informacin de clientes, productos y compras.

Produccin. Para la gestin de la cadena de produccin y para el seguimiento de
la produccin de elementos en las factoras, inventarios de elementos en
almacenes y pedidos de elementos.

Recursos humanos. Para informacin sobre los empleados, salarios, impuestos y
beneficios, y para la generacin de las nminas.

1.3 Modelos de datos

Modelo Entidad-Relacin
El modelo de datos entidad-relacin (E-R) est basado en una percepcin del
mundo real que consta de una coleccin de objetos bsicos, llamados entidades, y
de relaciones entre estos objetos. Una entidad es una cosa u objeto en el
mundo real que es distinguible de otros objetos. Por ejemplo, cada persona es una
entidad, y las cuentas bancarias pueden ser consideradas entidades. Las
entidades se describen en una base de datos mediante un conjunto de atributos.
Un atributo extra, id-cliente, se usa para identificar unvocamente a los clientes
(dado que puede ser posible que haya dos clientes con el mismo nombre,
direccin y ciudad. Se debe asignar un identificador nico de cliente a cada
cliente.
Una relacin es una asociacin entre varias entidades. Por ejemplo, una relacin
impositor asocia un cliente con cada cuenta que tiene. El conjunto de todas las
entidades del mismo tipo, y el conjunto de todas las relaciones del mismo tipo, se
denominan respectivamente conjunto de entidades y conjunto de relaciones. La
estructura lgica general de una base de datos se puede expresar grficamente
mediante un diagrama ER, que consta de los siguientes componentes:
Rectngulos, que representan conjuntos de entidades.
Elipses, que representan atributos.

Rombos, que representan relaciones entre conjuntos de entidades.
Lneas, que unen los atributos con los conjuntos de entidades y los conjuntos de
entidades con las relaciones.
Cada componente se etiqueta con la entidad o relacin que representa.




El diagrama E-R indica que hay dos conjuntos de entidades cliente y cuenta, con
los atributos descritos anteriormente. El diagrama tambin muestra la relacin
impositor entre cliente y cuenta. Adems de entidades y relaciones, el modelo E-R
representa ciertas restricciones que los contenidos de la base de datos deben
cumplir. Una restriccin importante es la correspondencia de cardinalidades, que
expresa el nmero de entidades con las que otra entidad se puede asociar a
travs de un conjunto de relaciones. Por ejemplo, si cada cuenta puede pertenecer
slo a un cliente, el modelo puede expresar esta restriccin.
Modelo Relacional
En el modelo relacional se utiliza un grupo de tablas para representar los datos y
las relaciones entre ellos. Cada tabla est compuesta por varias columnas, y cada
columna tiene un nombre nico. En la Figura 1.3 se presenta un ejemplo de base
de datos relacional consistente en tres tablas: la primera muestra los clientes de
un banco, la segunda, las cuentas, y la tercera, las cuentas que pertenecen a cada
cliente.

Fig. 1 Ejemplo diagrama E-R






El modelo relacional es un ejemplo de un modelo basado en registros. Los
modelos basados en registros se denominan as porque la base de datos se
estructura en registros de formato fijo de varios tipos. Cada tabla contiene
registros de un tipo particular. Cada tipo de registro define un nmero fijo de
campos, o atributos. Las columnas de la tabla corresponden a los atributos del tipo
de registro. No es difcil ver cmo se pueden almacenar las tablas en archivos.
El modelo relacional oculta tales detalles de implementacin de bajo nivel a los
desarrolladores de bases de datos y usuarios. El modelo de datos relacional es el
modelo de datos ms ampliamente usado, y una amplia mayora de sistemas de
bases de datos actuales se basan en el modelo relacional. El modelo relacional se
encuentra a un nivel de abstraccin inferior al modelo de datos E-R. Los diseos
Fig. 2 Ejemplo de base de datos Relacional

de bases de datos a menudo se realizan en el modelo E-R, y despus se traducen
al modelo relacional.

Otros Modelos de Datos
El modelo de datos orientado a objetos es otro modelo de datos que est
recibiendo una atencin creciente. El modelo orientado a objetos se puede
observar como una extensin del modelo E-R con las nociones de encapsulacin,
mtodos (funciones) e identidad de objeto.
El modelo de datos relacional orientado a objetos combina las caractersticas del
modelo de datos orientado a objetos y el modelo de datos relacional.
Los modelos de datos semiestructurados permiten la especificacin de datos
donde los elementos de datos individuales del mismo tipo pueden tener diferentes
conjuntos de atributos. Esto es diferente de los modelos de datos mencionados
anteriormente, en los que cada elemento de datos de un tipo particular debe tener
el mismo conjunto de atributos.
Histricamente, otros dos modelos de datos, el modelo de datos de red y el
modelo de datos jerrquico, precedieron al modelo de datos relacional. Estos
modelos estuvieron ligados fuertemente a la implementacin subyacente y
complicaban la tarea del modelado de datos.
1.4 Arquitectura del Sistema Gestor de Bases de datos

Un sistema de bases de datos se divide en mdulos que se encargan de cada una
de las responsabilidades del sistema completo. Los componentes funcionales de
un sistema de bases de datos se pueden dividir a grandes espacio de
almacenamiento.
Gestor de almacenamiento
Un gestor de almacenamiento es un mdulo de programa que proporciona la
interfaz entre los datos de bajo nivel en la base de datos y los programas de
aplicacin y consultas emitidas al sistema. El gestor de almacenamiento es
responsable de la interaccin con el gestor de archivos. Los datos en bruto se
almacenan en disco usando un sistema de archivos, que est disponible
habitualmente en un sistema operativo convencional. El gestor de almacenamiento
traduce las diferentes instrucciones LMD a rdenes de un sistema de archivos de

bajo nivel. As, el gestor de almacenamiento es responsable del almacenamiento,
recuperacin y actualizacin de los datos en la base de datos.
Los componentes del gestor de almacenamiento incluyen:
Gestor de autorizacin e integridad, que comprueba que se satisfagan las
restricciones de integridad y la autorizacin de los usuarios para acceder a
los datos.
Gestor de transacciones, que asegura que la base de datos quede en un
estado consistente (correcto) a pesar de los fallos del sistema, y que las
ejecuciones de transacciones concurrentes ocurran si conflictos.
Gestor de archivos, que gestiona la reserva de espacio de almacenamiento
de disco y las estructuras de datos usadas para representar la informacin
almacenada en disco.
Gestor de memoria intermedia, que es responsable de traer los datos del
disco de almacenamiento a memoria principal y decidir qu datos tratar en
memoria cach. El gestor de memoria intermedia es una parte crtica del
sistema de bases de datos, ya que permite que la base de datos maneje
tamaos de datos que son mucho mayores que el tamao de la memoria
principal.
El gestor de almacenamiento implementa varias estructuras de datos como parte
de la implementacin fsica del sistema:
Archivos de datos, que almacenan la base de datos en s.
Diccionario de datos, que almacena metadatos acerca de la estructura de la
base de datos, en particular, el esquema de la base de datos.
ndices, que proporcionan acceso rpido a elementos de datos que tienen
valores particulares.
Procesador de consultas
Los componentes del procesador de consultas incluyen:
Intrprete del LDD, que interpreta las instrucciones del LDD y registra las
definiciones en el diccionario de datos.
Compilador del LMD, que traduce las instrucciones del LMD en un lenguaje
de consultas a un plan de evaluacin que consiste en instrucciones de bajo
nivel que entiende el motor de evaluacin de consultas.
Una consulta se puede traducir habitualmente en varios planes de ejecucin
alternativos que proporcionan el mismo resultado. El compilador del LMD tambin

realiza optimizacin de consultas, es decir, elige el plan de evaluacin de menor
coste de entre todas las alternativas.
Motor de evaluacin de consultas, que ejecuta las instrucciones de bajo
nivel generadas por el compilador del LMD.





1.5 Niveles de abstraccin

Fig.3 Estructura del Sistema

Para que el sistema sea til debe recuperar los datos eficientemente. Esta
preocupacin ha conducido al diseo de estructuras de datos complejas para la
representacin de los datos en la base de datos. Como muchos usuarios de
sistemas de bases de datos no estn familiarizados con computadores, los
desarrolladores esconden la complejidad a los usuarios a travs de varios niveles
de abstraccin para simplificar la interaccin de los usuarios con el sistema:
o Nivel fsico: El nivel ms bajo de abstraccin describe cmo se almacenan
realmente los datos. En el nivel fsico se describen en detalle las
estructuras de datos complejas de bajo nivel.
o Nivel lgico: El siguiente nivel ms alto de abstraccin describe qu datos
se almacenan en la base de datos y qu relaciones existen entre esos
datos. La base de datos completa se describe as en trminos de un
nmero pequeo de estructuras relativamente simples. Aunque la
implementacin de estructuras simples en el nivel lgico puede involucrar
estructuras complejas del nivel fsico, los usuarios del nivel lgico no
necesitan preocuparse de esta complejidad. Los administradores de bases
de datos, que deben decidir la informacin que se mantiene en la base de
datos, usan el nivel lgico de abstraccin.
o Nivel de vistas: El nivel ms alto de abstraccin describe slo parte de la
base de datos completa.
A pesar del uso de estructuras ms simples en el nivel lgico, queda algo de
complejidad, debido a la variedad de informacin almacenada en una gran base
de datos. Muchos usuarios del sistema de base de datos no necesitan toda esta
informacin. En su lugar, tales usuarios necesitan acceder slo a una parte de la
base de datos. Para que su interaccin con el sistema se simplifique, se define la
abstraccin del nivel de vistas. El sistema puede proporcionar muchas vistas para
la misma base de datos.


1.6 Tipos de usuarios

Un objetivo principal de un sistema de bases de datos es recuperar informacin y
almacenar nueva informacin en la base de datos. Las personas que trabajan con
una base de datos se pueden catalogar como usuarios de bases de datos o como
administradores de bases de datos.

Hay cuatro tipos diferentes de usuarios de un sistema de base de datos,
diferenciados por la forma en que ellos esperan interactuar con el sistema. Se han
diseado diferentes tipos de interfaces de usuario para diferentes tipos de
usuarios.
Usuarios normales. Son usuarios no sofisticados que interactan con el
sistema mediante la invocacin de alguno de los programas de aplicacin
permanentes que se ha escrito previamente. La interfaz de usuario normal
para los usuarios normales es una interfaz de formularios, donde el usuario
puede rellenar los campos apropiados del formulario. Los usuarios
normales pueden tambin simplemente leer informes generados de la base
de datos.
Programadores de aplicaciones. Son profesionales informticos que
escriben programas de aplicacin. Los programadores de aplicaciones
pueden elegir entre muchas herramientas para desarrollar interfaces de
usuario. Las herramientas de desarrollo rpido de aplicaciones (DRA)
son herramientas que permiten al programador de aplicaciones construir
formularios e informes sin escribir un programa.

Usuarios sofisticados. Interactan con el sistema sin programas escritos.
En su lugar, ellos forman sus consultas en un lenguaje de consulta de
bases de datos. Cada una de estas consultas se enva al procesador de
consultas, cuya funcin es transformar instrucciones LMD a instrucciones
que el gestor de almacenamiento entienda. Los analistas que envan las
consultas para explorar los datos en la base de datos entran en esta
categora.

Usuarios especializados. Son usuarios sofisticados que escriben
aplicaciones de bases de datos especializadas que no son adecuadas en el
marco de procesamiento de datos tradicional. Entre estas aplicaciones
estn los sistemas de diseo asistido por computador, sistemas de bases
de conocimientos y sistemas expertos, sistemas que almacenan los datos
con tipos de datos complejos (por ejemplo, datos grficos y datos de audio)
y sistemas de modelado del entorno.

1.7 Tipos de lenguajes

Un sistema de bases de datos proporciona un lenguaje de definicin de datos para
especificar el esquema de la base de datos y un lenguaje de manipulacin de
datos para expresar las consultas a la base de datos y las modificaciones.




Lenguaje de definicin de datos

Un esquema de base de datos se especifica mediante un conjunto de definiciones
expresadas mediante un lenguaje especial llamado lenguaje de definicin de datos
(LDD).

Un diccionario de datos contiene metadatos, es decir, datos acerca de los datos.
El esquema de una tabla es un ejemplo de metadatos. Un sistema de base de
datos consulta el diccionario de datos antes de leer o modificar los datos reales.
Especificamos el almacenamiento y los mtodos de acceso usados por el sistema
de bases de datos por un conjunto de instrucciones en un tipo especial de LDD
denominado lenguaje de almacenamiento y definicin de datos. Estas
instrucciones definen los detalles de implementacin de los esquemas de base de
datos, que se ocultan usualmente a los usuarios.
Los valores de datos almacenados en la base de datos deben satisfacer ciertas
restricciones de consistencia.
Por ejemplo, supngase que el saldo de una cuenta no debe caer por debajo de
100 . El LDD proporciona facilidades para especificar tales restricciones. Los
sistemas de bases de datos comprueban estas restricciones cada vez que se
actualiza la base de datos.

Lenguaje de manipulacin de datos
La manipulacin de datos es:

La recuperacin de informacin almacenada en la base de datos.
La insercin de informacin nueva en la base de datos.
El borrado de informacin de la base de datos.
La modificacin de informacin almacenada en la base de datos.

Un lenguaje de manipulacin de datos (LMD) es un lenguaje que permite a los
usuarios acceder o manipular los datos organizados mediante el modelo de datos
apropiado. Hay dos tipos bsicamente:

LMDs procedimentales. Requieren que el usuario especifique qu datos
se necesitan y cmo obtener esos datos.

LMDs declarativos (tambin conocidos como LMDs no procedimentales).
Requieren que el usuario especifique qu datos se necesitan sin especificar
cmo obtener esos datos. Los LMDs declarativos son ms fciles de
aprender y usar que los LMDs procedimentales. Sin embargo, como el
usuario no especifica cmo conseguir los datos, el sistema de bases de
datos tiene que determinar un medio eficiente de acceder a los datos. El
componente LMD del lenguaje SQL es no procedimental.




2.- Diseo de bases de datos y el Modelo E-R
2.1 El proceso de diseo

Determinar el propsito de la base de datos
Determinar las tablas necesarias Cuando ya conozca claramente el propsito de la
base de datos, puede dividir la informacin en temas distintos. Cada tema ser
una tabla de la base de datos.
Determinar los campos necesarios Tiene que decidir la informacin que desea
incluir en cada tabla. Cada categora de informacin de una tabla se denomina
campo y se muestra en forma de columna al examinar la tabla.
Determinar las relaciones Observe cada tabla y decida cmo se relacionan sus
datos con los de las tablas restantes. Agregue campos a las tablas o cree tablas
nuevas para clarificar las relaciones, si es necesario.

Perfeccionar el diseo Busque errores en el diseo. Cree las tablas y agregue
algunos registros de datos de ejemplo. Vea si puede obtener los resultados que
desea de sus tablas. Haga los ajustes necesarios al diseo.
No se preocupe si se equivoca o si olvida algunos aspectos en el diseo inicial.
Piense en l como en un borrador que podr mejorar posteriormente. Pruebe con
datos de ejemplo y con prototipos de los formularios e informes. Con Visual
FoxPro resulta sencillo modificar el diseo de la base de datos durante su
creacin. Sin embargo, es mucho ms difcil modificar las tablas cuando ya estn
llenas de datos y se han generado formularios e informes. Por este motivo, debe
asegurarse de tener un diseo slido antes de llegar demasiado lejos en la
programacin de una aplicacin.



2.2 Modelo Entidad-Relacin

EL modelo de datos entidad-relacin (E-R) est basado en una percepcin del
mundo real consistente en objetos bsicos llamados entidades y de relaciones
entre estos objetos.
Se desarroll para facilitar el diseo de bases de datos permitiendo la
especificacin de un esquema de la empresa que representa la estructura lgica
completa de una base de datos. El modelo de datos E-R es uno de los diferentes
modelos de datos semnticos; el aspecto semntico del modelo yace en la
representacin del significado de los datos.

El modelo E-R es extremadamente til para hacer corresponder los significados e
interacciones de las empresas del mundo real con un esquema conceptual.

Debido a esta utilidad, muchas herramientas de diseo de bases de datos se
basan en los conceptos del modelo E-R.


Entidad.

Una entidad es una cosa u objeto en el mundo real que es distinguible de
todos los dems objetos. Por ejemplo, cada persona en un desarrollo es una
entidad. Una entidad tiene un conjunto de propiedades, y los valores para algn
conjunto de propiedades pueden identificar una entidad de forma unvoca. Por
ejemplo, el D.N.I. 67.789.901 identifica unvocamente una persona particular en la
empresa.

Anlogamente, se puede pensar en los prstamos bancarios como entidades, y
un nmero de prstamo P-15 en la sucursal de Castellana identifica unvocamente
una entidad de prstamo. Una entidad puede ser concreta, como una persona o
un libro, o puede ser abstracta, como un prstamo, unas vacaciones o un
concepto. Un conjunto de entidades es un conjunto de entidades del mismo tipo
que comparten las mismas propiedades, o atributos. El conjunto de todas las
personas que son clientes en un banco dado, por ejemplo, se pueden definir como
el conjunto de entidades cliente.

Anlogamente, el conjunto de entidades prstamo podra representar el conjunto
de todos los prstamos concedidos por un banco particular. Las entidades
individuales que constituyen un conjunto se llaman la extensin del conjunto de
entidades. As, todos los clientes de un banco son la extensin del conjunto de
entidades cliente.

Los conjuntos de entidades no son necesariamente disjuntos. Por ejemplo, es
posible definir el conjunto de entidades de todos los empleados de un banco
(empleado) y el conjunto de entidades de todos los clientes del banco (cliente).
Una entidad persona puede ser una entidad empleado, una entidad cliente, ambas
cosas, o ninguna.
Una entidad se representa mediante un conjunto de atributos. Los atributos
describen propiedades que posee cada miembro de un conjunto de entidades. La
designacin de un atributo para un conjunto de entidades expresa que la base de
datos almacena informacin similar concerniente a cada entidad del conjunto de
entidades; sin embargo, cada entidad puede tener su propio valor para cada
atributo.

Posibles atributos del conjunto de entidades cliente son id-cliente, nombre-cliente,
calle-cliente y ciudad-cliente. En la vida real, habra ms atributos, tales como el
nmero de la calle, el nmero del portal, la provincia, el cdigo postal, y la
comunidad autnoma, pero no se incluyen en el ejemplo simple. Posibles atributos
del conjunto de entidades prstamo son nmero-prstamo e importe.
Cada entidad tiene un valor para cada uno de sus atributos. Por ejemplo, una
entidad cliente en concreto puede tener el valor 32.112.312 para id-cliente, el valor

Santos para nombre-cliente, el valor Mayor para callecliente y el valor Peguerinos
para ciudad-cliente. El atributo id-cliente se usa para identificar unvocamente a los
clientes, dado que no hay ms de un cliente con el mismo nombre, calle y ciudad.
En los Estados Unidos, muchas empresas encuentran conveniente usar el nmero
seguridad-social de una persona1 como un atributo cuyo valor identifica
unvocamente a la persona.

En general la empresa tendra que crear y asignar un identificador a cada cliente.
Para cada atributo hay un conjunto de valores permitidos, llamados el dominio, o
el conjunto de valores, de ese atributo. El dominio del atributo nombrecliente
podra ser el conjunto de todas las cadenas de texto de una cierta longitud.
Anlogamente, el dominio del atributo nmero-prstamo podra ser el conjunto de
todas las cadenas de la forma P-n, donde n es un entero positivo. Una base de
datos incluye as una coleccin de conjuntos de entidades, cada una de las cuales
contiene un nmero de entidades del mismo tipo.

Relacin.

Una relacin es una asociacin entre diferentes entidades. Por ejemplo, se puede
definir una relacin que asocie al cliente Lpez con el prstamo P-15. Esta
relacin especifica que Lpez es un cliente con el prstamo nmero P-15. Un
conjunto de relaciones es un conjunto de relaciones del mismo tipo. Formalmente
es una relacin matemtica con n > = 2 de conjuntos de entidades (posiblemente
no distintos). Si E1, E2,, En son conjuntos de entidades, entonces un conjunto
de relaciones R es un subconjunto de: {(e1, e2,,en) | e1 E1, e2 E2,,en
En} donde (e1,e2,en) es una relacin.

Considrense las dos entidades cliente y prstamo. Se define el conjunto de
relaciones prestatario para denotar la asociacin entre clientes y prstamos
bancarios que los clientes tengan.
Como otro ejemplo, considrense los dos conjuntos de entidades prstamo y
sucursal. Se puede definir el conjunto de relaciones sucursal-prstamo para
denotar la asociacin entre un prstamo y la sucursal en que se mantiene ese
prstamo.

La asociacin entre conjuntos de entidades se conoce como participacin; es
decir, los conjuntos de entidades E1, E2,, En participan en el conjunto de
relaciones R. Un ejemplar de relacin en un esquema E-R representa que existe
una asociacin entre las entidades denominadas en la empresa del mundo real
que se modela.

2.3 Restricciones.


Un esquema de desarrollo puede definir ciertas restricciones a las que los
contenidos de la bases de datos se deben adaptar. A continuacin se describen
los dos tipos de restricciones ms importantes de restricciones.

Restricciones de dominio

Las restricciones de dominio especifican que el valor de cada atributo A debe ser
un valor atmico del dominio dom (A) para ese atributo. Los tipos de datos
asociados a los dominios por lo general incluyen los tipos de datos numricos
estndar de los nmeros enteros (como entero- corto, entero, entero-largo) y
reales (flotante y flotante de doble precisin). Tambin disponemos de caracteres,
cadenas de longitud fija y cadenas de longitud variable, as como tipos de datos de
fecha, hora, marca de tiempo y dinero. Otros dominios posibles se pueden
describir mediante un intervalo de valores de un tipo de datos o como un tipo de
datos enumerado en el que se listan explcitamente todos los valores posibles.


Restriccin de Valores Nulos

Para determinado atributos, los valores nulos pueden ser inapropiados.
Considrese una tupla en la relacin cliente la que nombre-cliente es un valor
vaci. Una tupla de este tipo da una calle y una ciudad para un cliente annimo y,
por tanto, no contiene informacin til. En casos como ste, deseamos prohibir los
valores nulos, restringiendo el dominio de ciudad-cliente para que excluya los
valores nulos.

El SQL estndar permite que la declaracin del dominio de un atributo incluya la
especificacin not null. Esto prohbe la insercin de un valor nulo para este
atributo. Cualquier modificacin de la base de datos que causara que se insertase
un valor nulo en un dominio not null genera un diagnstico de error.

Hay muchas situaciones en las que la prohibicin de valores nulos es deseable.
Un caso particular en el que es esencial prohibir los valores nulos es en la clave
primaria de un esquema de relacin


Restriccin de clave

Es una de las restricciones estndar que con frecuencia aparecen en las
aplicaciones de bases de datos. Estas restricciones se manejan de formas
ligeramente distintas en los diversos modelos de datos. En el modelo E-R, una
clave es un atributo de un tipo de entidades que debe tener un valor nico para
cada entidad que pertenezca a dicho tipo en cualquier momento especfico. As el
valor del atributo clave puede servir para identificar de manera nica cada entidad.
Los atributos claves deben ser mono valuados, pero pueden ser simples o
compuestos.


Un tipo de entidades normal puede tener una o ms claves; un tipo de entidades
dbil no tiene clave, pero casi siempre tiene una clave parcial cuyos valores
identifican de manera nica las entidades dbiles que estn relacionadas a la
misma entidad propietario a travs de un vnculo identificador.

En general, un esquema de relacin pude tener ms de una clave. En tal caso,
cada una de ellas se denomina clave candidata. Por ejemplo en una relacin
COCHE tiene dos claves candidatas: NumMatrcula y NumSerieMotor. Es comn
designar a una de las claves candidata como clave primaria de la relacin. sta es
la clave candidata cuyos valores sirven para identificar las tuplas en la relacin.


Restriccin de asercin

Una Tcnica ms formal para representar restricciones explcitas es con un
lenguaje de especificacin de restricciones, que suele basarse en alguna variacin
del clculo relacional. Este enfoque declarativo establece una separacin clara
entre la base de restricciones (en la que las restricciones se almacenan en una
forma codificada apropiada) y el subsistema de control de integridad del SGBD
(que tiene acceso a la base de restricciones para aplicar estas ltimas
correctamente a las transacciones afectadas).

Cuando se usa esta tcnica, las restricciones suelen llamarse aserciones. Se ha
sugerido el uso de esta estrategia con SGBD relacinales. El subsistema de
control de integridad compila las aserciones, que entonces se almacenan en el
catlogo del SGBD, donde el subsistema de control de integridad puede
consultarlas e imponerlas automticamente. Esta estrategia es muy atractiva
desde el punto de vista de los usuarios y programadores por su flexibilidad.


Restriccin de Integridad
Una fuente de restricciones de integridad son los conjuntos de entidades dbiles.
El esquema de relaciones para un conjunto de entidades dbil debe incluir la clave
esquema de relaciones de entidades de la cual depende. As, pues, el esquema
de relaciones para cada conjunto de entidades dbil incluye una clave exterior que
conduce a una restriccin de integridad referencial.

2.4 Diagramas E-R.


Denominado por sus siglas como: E-R; Este modelo representa a la realidad a
travs de un Esquema grfico empleando los terminologa de Entidades, que son
objetos que existen y son los elementos principales que se identifican en el
problema a resolver con el diagramado y se distinguen de otros por sus

caractersticas particulares denominadas Atributos, el enlace que rige la unin de
las entidades est representada por la relacin del modelo.

En un DER, cada entidad se representa mediante un rectngulo, cada relacin
mediante un rombo y cada dominio (conjunto donde toma valores el atributo)
mediante un crculo. Mediante lneas se conectan las entidades con las relaciones,
igual que las entidades con los dominios, representando a los atributos. Los
Atributos Llaves se representan subrayando el correspondiente conjunto de
valores.

En ocasiones, una entidad no puede ser identificada nicamente por el valor de
sus propios atributos. En estos casos, se utilizan conjuntamente las relaciones con
los atributos para lograr la requerida identificacin unvoca. Estas entidades
reciben el nombre de entidades dbiles y se representan en el DER con un doble
rectngulo.

El MER restringe las relaciones a usar para identificar las entidades dbiles a
relaciones binarias del tipo 1: N. As, por ejemplo, una ocurrencia de "trabajador"
puede tener N ocurrencias "persona-dependiente" asociadas, donde adems, la
existencia de las ocurrencias en la segunda entidad depende de la existencia de
una ocurrencia que le corresponda en la primera entidad. Por ejemplo, en el
modelo habr personas dependientes de un trabajador slo si ese trabajador
existe. Para indicar esa dependencia en la existencia se usa una saeta en el DER.

La llave de una entidad dbil se forma combinando la llave de la entidad regular
que la determina con algn otro atributo que defina unvocamente cada entidad
dbil asociada a una entidad regular dada. (Una entidad se denomina regular si no
es dbil).

En una relacin, la llave es la combinacin de las llaves de todas las entidades
asociadas. Para cada relacin se determina su tipo (simple o complejo) y en el
DER se escribe el tipo de correspondencia. Por ejemplo, una empresa puede
tener varios (n) trabajadores asociados y un trabajador pertenece a una sola
empresa (1). En la relacin Trabajador-Mquina-Pieza, un trabajador puede
trabajar en n mquinas, produciendo p piezas, o una pieza puede ser producida
por m trabajadores en n mquinas. Aqu, m, n y p no identifican un nmero
especfico, sino solamente el tipo de correspondencia que se establece en la
relacin.
2.5 Diseo de diagramas E-R.

Diagrama Entidad - Relacin.

Es la representacin grfica del Modelo Entidad-Relacin y permite ilustrar la
estructura de la base de datos del negocio modelado.

Escribe Johnson "los diagramas ER constituyen una notacin para documentar un
diseo tentativo de bases de datos. Los analistas los utilizan para facilitar el
proceso de diseo".

Componentes y Diagrama E-R

Entidad Fuerte: Una Entidad fuerte (tambin conocida como entidad regular) es
aquella que s puede ser identificada unvoca-mente. En los casos en que se
requiera, se puede dar que una entidad fuerte "preste" algunos de sus Atributos a
una entidad dbil para que, esta ltima, se pueda identificar.

Entidad dbil: Es aquella que no puede existir sin participar en la relacin, es decir,
aquella que no puede ser unvocamente identificada solamente por sus atributos
como Clave.

Conjunto de entidades Dbiles. Es aquel conjunto de entidades que no tiene
atributos que puedan identificar una entidad en forma nica, o sea que no poseen
atributos para conformar la llave primaria; por lo tanto dependen de una entidad
fuerte.

Conjunto de entidades Fuerte. Conjunto de entidades que posee una clave
primaria.

Relaciones: Una entidad se relaciona con otra entidad. Toda relacin debe de
llevar una cardinalidad. Una relacin entre dos entidades siempre se va a dar por
medio de un rombo. Cada entidad deber tener sus elementos.

Atributos: Caractersticas o propiedades asociadas al conjunto de entidades o
relaciones y que toman valor en una entidad en particular.
Los posibles valores puede tomar un atributo para un conjunto de entidades se
denomina dominio.

Los atributos se pueden clasificar en:

- Simples o atmicos: Son aquellos que no contienen otros atributos
- Compuestos: Son los que incluyen otros atributos simples. Ejemplo: direccin
(Se puede dividir en calle, nmero, ciudad).
- Mono valorados o Univalorados: Atributo que toma un solo valor, para una
entidad en particular.
- Multivalorados: Atributo que para una misma entidad puede tomar muchos
valores.
- Derivados o calculados: Son aquellos atributos cuyos valores se pueden
conseguir con operaciones sobre valores de otros atributos.
- Nulos: Son aquellos atributos para los cuales en algn momento no existe o no
se conoce su valor.


Los diagramas son simples y claros, cualidades que pueden ser responsables del
amplio uso del modelo E-R. Tal diagrama consta de los siguientes componentes
principales:

Rectngulos: Representan conjuntos de entidades.
Elipses: Representan atributos.
Robos: Representan relaciones.
Lneas: Unen atributos a conjuntos de entidades y conjuntos de relaciones-
Elipses Dobles: Representan atributos multivalorados.
Elipses Discontinuas: Denotan atributos derivados
Rectngulos Dobles: Representan conjuntos de entidades dbiles.


2.6 Conjunto de Entidades Dbiles.

ENTIDADES DBILES.

Un conjunto de entidades dbiles es aquel que no tiene suficientes atributos para
formar una clave primaria. Un conjunto que s tiene una clave primaria se
denomina conjunto de entidades fuertes.

Cada conjunto de entidades dbiles debe estar asociada con un conjunto de
entidades llamado conjunto de entidades identificadoras o propietarias.
As, el conjunto de entidades dbiles depende existencialmente del conjunto de
entidades identificadoras. La relacin que asocia el conjunto de entidades dbiles
con el conjunto de entidades identificadoras se denomina relacin identificadora.
La relacin identificadora es varios a uno del conjunto de entidades dbiles al
conjunto de entidades identificadoras y la participacin del conjunto de entidades
dbiles en la relacin es total.

Aunque un conjunto de entidades dbiles no tiene clave primaria, deben hacerse
distinguir todas aquellas entidades del conjunto de entidades que dependen de
una entidad fuerte particular. El discriminante de un conjunto de entidades dbiles
es un conjunto de atributos que permiten esta distincin.

La clave primaria de un conjunto de entidades dbiles se forma con la clave
primaria del conjunto de entidades identificadoras, ms el discriminante del
conjunto de entidades dbiles.

El Discriminante: Es un conjunto de atributos que permite que esta distincin se
haga. Por ejemplo; el discriminante del conjunto de entidades dbiles pago es el
atributo nmero-pago, ya que, para cada prstamo, un nmero de pago identifica
de forma nica cada pago para ese prstamo. El discriminante de un conjunto de
entidades dbiles se denomina la clave parcial del conjunto de entidades.

La clave primaria de un conjunto de entidades dbiles se forma con la clave
primaria del conjunto de entidades identificadoras, ms el discriminante del
conjunto de entidades dbiles. Un conjunto de entidades dbiles puede participar
en relaciones distintas de relaciones identificadoras.

En algunos casos, el diseador de la base de datos puede elegir expresar un
conjunto de entidades dbiles como un atributo compuesto multivalorado del
conjunto de entidades propietarias. Un conjunto de entidades dbiles se puede
modelar ms adecuadamente como un atributo si slo participa en la relacin
identificadora y si tiene pocos atributos.

En pocas palabras podemos decir que:
CONJUNTO DE ENTIDADES DBILES: Es aquel conjunto de entidades que no
tiene atributos que puedan identificar una entidad en forma nica, o sea que no
poseen atributos para conformar la llave primaria; por lo tanto dependen de una
entidad fuerte.
Un conjunto de entidades dbiles se indica en los diagramas E-R mediante un
rectngulo dibujado con una lnea doble y la correspondiente relacin de
identificacin mediante un rombo dibujado con lnea doble.

2.7 Modelo E-R Extendido.

El Modelo Entidad-Relacin Extendido incluye todos los conceptos del Entidad-
Relacin e incorpora los conceptos de Subclase y superclase con los conceptos
asociados de Especializacin y Generalizacin.

Subclases, Superclases y Especializacin:

En el modelo Entidad-Relacin, una entidad agrupa un conjunto de ocurrencias de
entidad del mismo tipo. En muchos casos, estas ocurrencias se pueden agrupar a
su vez en otros subconjuntos que tienen un significado propio para los propsitos
de la Base de Datos y, por tanto, deberan representarse de forma explcita.

Una generalizacin se define como una entidad llamada superclase la cual
contiene los aspectos ms generales de una aplicacin y pueden existir tantas
superclases como se requiera. Si esas existen se les conoce tambin con el
nombre de entidades fuertes.

La especializacin se define como el conjunto de entidades que tienen
caractersticas ms particulares de la aplicacin y para estas existan deber de
ocurrir una instancia de la superclase pero no necesariamente ocurrirn
ocurrencias de las subclases (entidades dbiles).


En el modelo entidad-relacin extendido, una entidad agrupa un conjunto de
ocurrencias de entidad del mismo tipo, en muchos casos esas ocurrencias tienen
un significado propio para la base de datos y se debern de representar de otra
manera. Por ejemplo, la entidad empleado puede a su vez subdividirse en docente
y no docente y cada una de estas subdivisiones se le llamaran subclase.

Las subclases debern de pertenecer a una superclase y podremos tener las
relaciones clase/subclase que en el ejemplo anterior las relacionemos con
empleado/docente y empleado/no docente.

Debido a que una subclase es a su vez parte de una superclase, la superclase
tendr sus atributos especficos as como los atributos correspondientes a la
superclase a la cual pertenece. Si esto existe en un diagrama se dice entonces
que existe una herencia. De la misma manera en que se heredan los atributos, las
subclases heredarn las relaciones que contenga la superclase.

El proceso por el cual se definen las diferentes subclases de una superclase se le
conoce con el nombre de especializacin, y la forma de denotar ser la siguiente:
se pondr un circulo y dentro del circulo la letra "d", y el circulo deber de estar
entre la superclase y la subclase. Este crculo podr unir a ms de dos subclases
y la letra "d" significa desunin.

La desunin significa que cada subclase es completamente independiente de las
otras y que una instancia de la superclase podr tener solamente una ocurrencia
de una subclase.

Generalizacin:
Se da cuando se tienen varias entidades con caractersticas comunes y pueden
crearse una entidad superior que tenga la informacin general de la aplicacin. En
otras palabras la generalizacin es el proceso inverso de la especializacin.
Restriccin de desunin:
Las restricciones de desunin especfica que las subclases de la especializacin
deben de estar separadas. Esto significa que una ocurrencia de la subclase puede
ser miembro de como mximo una de las subclases de la especializacin si esta
ocurre se denota la desunin con una letra "d", si la desunin esta desunida por el
usuario, entonces el predicado deber estar entre el circulo y la entidad.

Si las subclases no son desunidas, entonces se dice que cada superclase puede
pertenecer a ms de una subclase y si esto existe se representa mediante la Letra
"o" en el crculo y se llamara restriccin de totalidad la cual puede ser parcial y
total.

Existen a su vez cuatro tipos de especializaciones que son las siguientes:

Desunin total o especializacin total: que significa que cada superclase debe
de pertenecer a una sola subclase. Si eso existe se denota con lnea doble antes
del crculo.


Desunin parcial o especializacin parcial: Significa que una superclase no
pertenece a una subclase. Si esto existe se denota con lnea sencilla antes del
crculo.

Unin o solapamiento total: Significa que las superclases pertenecen a todas las
subclases y se denota con doble lnea antes del crculo.

Solapamiento parcial: Significa que la superclase no va a pertenecer a todas las
subclases en un momento dado y se denota con una lnea antes del crculo.




Reglas de insercin y borrado para la generalizacin y especializacin:

Borrar una dupla de la superclase, implica el borrado automtico en todos las
subclases a las que pertenezcan.
Insertar una dupla en la superclase, implica que tiene que ser obligatoriamente
insertada en todas las subclases definidas por predicado si este existe.
Insertar una dupla en la superclase, implica la insercin obligatoria en al menos
una de las subclases siempre y cuando exista una especializacin total.

Red de especializacin: Significa cuando una subclase puede tener ms de una
superclase.

Cardinalidad:
Se define como la forma en la cual se van a poder relacionar las entidades,
existiendo cuatros tipos que son los siguientes:

De 1 a 1: Significa que la entidad A va a estar relacionada nicamente con una
entidad B.

1 a muchos (N): Significa que cada instancia en la entidad en A puede tener ms
de una correspondencia en la entidad B.

N a 1: Significa que cada instancia de A va a tener una instancia en B.

M a N: Significa que una instancia en A puede tener varias instancias en B y
varias ocurrencias en B pueden tener varias ocurrencias en A.

2.8 Otros aspectos del diseo se base de datos.

Dominio:

A veces es conveniente aadir informacin sobre el dominio de un atributo, los
dominios se representan mediante hexgonos, con la descripcin del dominio en
su interior.

Diagrama:
Un diagrama E-R consiste en representar mediante estas figuras un modelo
completo del problema, proceso o realidad a describir, de forma que se definan
tanto las entidades que lo componen, como las interrelaciones que existen entre
ellas. La idea es simple, aparentemente, pero a la hora de construir modelos sobre
realidad es concreta cuando surgen los problemas. La realidad es siempre
compleja. Las entidades tienen muchos atributos diferentes, de los cuales
debemos aprender a elegir slo los que necesitemos. Lo mismo cabe decir de las
interrelaciones.


Interrelacin:
Es la asociacin o conexin entre conjuntos de entidades. Tengamos los dos
conjuntos: de personas y de vehculos.

Grado:
Nmero de conjuntos de entidades que intervienen en una interrelacin. De este
modo, en la anterior interrelacin intervienen dos entidades, por lo que diremos
que es de grado 2 o binaria. Tambin existen interrelaciones de grado Pero las
ms frecuentes son las interrelaciones binarias. Podemos establecer una
interrelacin ternaria (de grado tres). Existen adems tres tipos distintos de
interrelaciones binarias, dependiendo del nmero de entidades del primer conjunto
de entidades y del segundo. As hablaremos de interrelaciones 1:1 (uno a uno),
1:N (uno a muchos) y N:M (muchos a muchos).

Clave:
Es un conjunto de atributos que identifican de forma unvoca una entidad. Es muy
importante poder identificar claramente cada entidad y cada interrelacin. Esto es
necesario para poder referirnos a cada elemento de un conjunto de entidades o
interrelaciones, ya sea para consultarlo, modificarlo o borrarlo. No deben existir
ambigedades en ese sentido.

Claves candidatas:
Una caracterstica que debemos buscar siempre en las claves es que contengan
el nmero mnimo de atributos, siempre que mantengan su funcin. Diremos que
una clave es mnima cuando si se elimina cualquiera de los atributos que la
componen, deja de ser clave. Si en una entidad existe ms de una de estas claves
mnimas, cada una de ellas es una Clave candidata.

Claves de interrelaciones:
Para identificar interrelaciones el proceso es similar, aunque ms simple.
Tengamos en cuenta que para definir una interrelacin usaremos las claves
primarias de las entidades interrelacionadas. De este modo, el identificador de una

interrelacin es el conjunto de las claves primarias de cada una de las entidades
interrelacionadas.

Sper clave:
Es un subconjunto de atributos que permite distinguir unvocamente cada una de
las entidades de un conjunto de entidades. Si se aade un atributo al anterior
subconjunto, el resultado seguir siendo una sper clave.

Clave primaria (Llave Primaria):
Es la clave candidata escogida por el diseador. Atributo o conjunto de atributos
que permiten identificar en forma nica una tupla en la tabla (una entidad en un
conjunto de entidades) y ningn subconjunto de ella posee esta propiedad.

Llave fornea:
Es un atributo que es llave primaria en otra entidad con la cual se relaciona. Las
llaves forneas son en ltimas las que permiten relacionar las tablas en las bases
de datos.

Las llaves primarias se subrayan en el diagrama E-R.
Claves (Llaves): Atributos que identifican una entidad dentro de un conjunto de
entidades.




2.9 La notacin E-R con UML.


El Lenguaje Unicado de Modelado prescribe un conjunto de notaciones y
diagramas estndar para modelar sistemas orientados a objetos, y describe la
semntica esencial de lo que estos diagramas y smbolos signican. Mientras que
ha habido muchas notaciones y mtodos usados para el diseo orientado a
objetos, ahora los modeladores slo tienen que aprender una nica notacin.

UML se puede usar para modelar distintos tipos de sistemas: sistemas de
software, sistemas de hardware, y organizaciones del mundo real. UML ofrece
nueve diagramas en los cuales modelar sistemas.

Diagramas de Casos de Uso para modelar los procesos business.
Diagramas de Secuencia para modelar el paso de mensajes entre objetos.
Diagramas de Colaboracin para modelar interacciones entre objetos.
Diagramas de Estado para modelar el comportamiento de los objetos en el
sistema.

Diagramas de Actividad para modelar el comportamiento de los Casos de Uso,
objetos u operaciones.
Diagramas de Clases para modelar la estructura esttica de las clases en el
sistema.
Diagramas de Objetos para modelar la estructura esttica de los objetos en el
sistema.
Diagramas de Componentes para modelar componentes.
Diagramas de Implementacin para modelar la distribucin del sistema.

UML es una consolidacin de muchas de las notaciones y conceptos ms usados
orientados a objetos.
Empez como una consolidacin del trabajo de Grade Booch, James Rumbaugh,
e Ivar Jacobson, creadores de tres de las metodologas orientadas a objetos ms
populares.
En 1996, el Object Management Group (OMG), un pilar estndar para la
comunidad del diseo orientado a objetos, public una peticin con propsito de
una meta modelo orientado a objetos de semntica y notacin estndares. UML,
en su versin 1.0, fue propuesto como una respuesta a esta peticin en enero de
1997. Hubo otras cinco propuestas rivales. Durante el transcurso de 1997, los seis
promotores de las propuestas, unieron su trabajo y presentaron al OMG un
documento revisado de UML, El OMG llama a este documento OMG UML versin
1.1. El OMG est actualmente en proceso de mejorar una edicin tcnica de esta
especicacin, prevista su nalizacin para el 1 de abril de 1999.

UML ofrece notacin y semntica estndar:

UML preescribe una notacin estndar y semnticas esenciales para el modelado
de un sistema orientado a objetos. Previamente, un diseo orientado a objetos
podra haber sido modelado con cualquiera de la docena de metodologas
populares, causando a los revisores tener que aprender las semnticas y
notaciones de la metodologa empleada antes que intentar entender el diseo en
s.

3.- Modelo relacional

La ventaja del modelo relacional es que los datos se almacenan, al menos
conceptualmente, de un modo en que los usuarios entienden con mayor facilidad.
Los datos se almacenan como tablas y las relaciones entre las filas y las tablas
son visibles en los datos. Este enfoque permite a los usuarios obtener informacin

de la base de datos sin asistencia de sistemas profesionales de administracin de
informacin.
Las caractersticas ms importantes de los modelos relacionales son:
Es importante saber que las entradas en la tabla tienen un solo valor (son
atmicos); no se admiten valores mltiples, por lo tanto la interseccin de un
rengln con una columna tiene un solo valor, nunca un conjunto de valores.
Todas las entradas de cualquier columna son de un solo tipo. Por ejemplo, una
columna puede contener nombres de clientes, y en otra puede tener fechas de
nacimiento. Cada columna posee un nombre nico, el orden de las comunas no es
de importancia para la tabla, las columnas de una tabla se conocen como
atributos. Cada atributo tiene un dominio, que es una descripcin fsica y lgica de
valores permitidos.
No existen 2 filas en la tabla que sean idnticas.
La informacin en las bases de datos son representados como datos explcitos, no
existen apuntadores o ligas entre las tablas.
En el enfoque relacional es sustancialmente distinto de otros enfoques en
trminos de sus estructuras lgicas y del modo de las operaciones de
entrada/salida. En el enfoque relacional, los datos se organizan en tablas llamadas
relaciones, cada una de las cuales se implanta como un archivo. En terminologa
relacional una fila en una relacin representa un registro o una entidad; Cada
columna en una relacin representa un campo o un atributo.
As, una relacin se compone de una coleccin de entidades(o registros) cuyos
propietarios estn descritos por cierto nmero de atributos predeterminados
implantados como campos.
3.1 Estructura bsica.

La arquitectura relacional se puede expresar en trminos de tres niveles de
abstraccin: nivel interno, conceptual y de visin.
La arquitectura relacional consta de los siguientes componentes:
Modelo relacional de datos:

En el nivel conceptual, el modelo relacional de datos est representado por una
coleccin de relaciones almacenadas. Cada registro de tipo conceptual en un
modelo relacional de datos se implanta como un archivo almacenado distinto.
Submodelo de datos:
Los esquemas externos de un sistema relacional se llaman submodelos
relacionales de datos; cada uno consta de uno a ms escenarios (vistas) para
describir los datos requeridos por una aplicacin dada. Un escenario puede incluir
datos de una o ms tablas de datos. Cada programa de aplicacin est provisto de
un buffer ("rea de trabajo de usuario") donde el DBMS puede depositar los datos
recuperados de la base para su procesamiento, o puede guardar temporalmente
sus salidas antes de que el DBMS las escriba en la base de datos.
Esquema de almacenamiento:
En el nivel interno, cada tabla base se implanta como un archivo almacenado.
Para las recuperaciones sobre las claves principal o secundaria se pueden
establecer uno o ms ndices para accesar un archivo almacenado.
Sublenguaje de datos:
Es un lenguaje de manejo de datos para el sistema relacional, el lgebra relacional
y clculo relacional, ambos lenguajes son "relacionalmente completos", esto es,
cualquier relacin que pueda derivarse de una o ms tablas de datos, tambin se
puede derivar con u solo comando del Sublenguaje. Por tanto, el modo de
operacin de entrada/Salida en un sistema relacional se puede procesar en la
forma: una tabla a la vez en lugar de: un registro a la vez; en otras palabras, se
puede recuperar una tabla en vez de un solo registro con la ejecucin de un
comando del Sublenguaje de datos.
3.2 Esquema de las bases de datos

Es un esquema relacional en el que hay lneas que enlazan las claves principales
con las claves secundarias para representar mejor las relaciones. A veces se
representa en forma de nodos de grafos y otras se complementa el clsico.
Ejemplo:


ESQUEMAS RELACIONALES DERIVADOS DEL MODELO ENTIDAD/RELACIN
Hay quien los llama esquemas entidad/relacin relacionales. De hecho es una
mezcla entre los esquemas relacionales y los entidad/relacin. Hoy en da se
utiliza mucho, en especial por las herramientas CASE de creacin de diseos de
bases de datos.
Las tablas se representan en forma de rectngulo que contiene una fila por cada
atributo y una fila inicial para la cabecera en la que aparece el nombre de la tabla.
Despus aparecen lneas que muestran la relacin entre las claves y su
cardinalidad.
Uno de los ms utilizados actualmente es ste:

Las cardinalidades se pueden mostrar en otros formatos, pero siempre se
mostrarn en este tipo de esquemas. En este caso el inicio de la lnea (en la clave
principal) se considera cardinalidad 1 y en el extremo podemos tener un final de
lnea sin smbolos (cardinalidad 1,1), acabado en varias ramas (cardinalidad 1, n)
o con un crculo (cardinalidad mnima de 0)
Se ha hecho muy popular la forma de presentar esquemas relacionales del
programa Microsoft Access.
Ejemplo:


Es otra forma muy clara de representar relaciones y cardinalidades (aunque tiene
problemas para representar relaciones de dos o ms atributos).
Sin duda los esquemas ms completos son los que reflejan no slo las
cardinalidades sino tambin todas las restricciones (e incluso los tipos de datos,
aunque esto ya es una competencia del esquema interno). Vase el esquema de
la Ilustracin 11. En ese esquema los smbolos funcionan de esta forma:

Adems los campos que estn el final de una flecha son claves secundarias.


El programa Visio de Microsoft (y algunos otros ms), representan las
restricciones con letras:


En este caso los smbolos PK significan Primary Key (clave principal), FK es
Foreign Key (clave secundaria, los nmeros sirven para distinguir unas claves de
otras) y UK es Unique (unicidad).
3.3 Claves

CLAVE CANDIDATA
Conjunto de atributos que identifican unvocamente cada tupla de la relacin. Es
decir columnas cuyos valores no se repiten en ninguna otra tupla de esa tabla.
Toda tabla en el modelo relacional debe tener al menos una clave candidata
(puede incluso haber ms)
CLAVE PRIMARIA
Clave candidata que se escoge como identificador de las tuplas. Se elige como
primaria la candidata que identifique mejor a cada tupla en el contexto de la base
de datos.
Por ejemplo un campo con el DNI sera clave candidata de una tabla de clientes,
si esa tabla tiene un campo de cdigo de cliente, ste sera mejor candidato (y por
lo tanto clave principal) porque es mejor identificador para ese contexto.
CLAVE ALTERNATIVA
Cualquier clave candidata que no sea primaria.
CLAVE EXTERNA, AJENA O SECUNDARIA
Son los datos de atributos de una tabla cuyos valores estn relacionados con
atributos de otra tabla. Por ejemplo en la tabla equipos tenemos estos datos:
Equipo N Equipo
Real Madrid 1
F.C. Barcelona 2

Athletic Bilbao 3
En la tabla anterior la clave principal es el atributo n equipo. En otra tabla
tenemos:
N Jugador Jugador N Equipo
1 Karanka 3
2 Ronaldinho 2
3 Ral 1
4 Beckham 1
El atributo N Equipo sirve para relacionar el Jugador con el equipo al que
pertenece. Ese campo en la tabla de jugadores es una clave secundaria.
3.4 Lenguajes de consulta.

Lenguajes de consulta formales.
Los lenguajes de consultas:
Son los lenguajes en el que los usuarios solicitan informacin de la base de datos.
Estos lenguajes son generalmente de ms alto nivel que los lenguajes de
programacin. Los lenguajes de consulta pueden clasificarse como
procedimentales y no procedimentales;
En el lenguaje del tipo procedimental el usuario da las instrucciones al sistema
para que realice una secuencia de operaciones en la base de datos para calcular
el resultado deseado.
En el lenguaje no procedimental, el usuario describe la informacin deseada sin
dar un procedimiento especfico para obtener dicha informacin.
El lgebra relacional es un lenguaje de consulta formal procedimental, el lgebra
relacional define operadores que funcionan sobre las tablas (de una manera
similar a los operadores +,-, etc. del lgebra comn) para llegar al resultado
deseado. El lgebra relacional es difcil de utilizar, debido en parte a que es
procedimental, esto es, al utilizar el lgebra relacional no slo debemos saber lo
que queremos, tambin cmo obtenerlo.

En el proceso de bases de datos comerciales el lgebra relacional se utiliza de
manera poco frecuente. Aunque unos cuantos productos exitosos DBMS s tienen
opciones del lgebra relacional, stas son poco utilizadas en vista de su
complejidad.
El lgebra relacional toma dos o ms tablas como entrada producen una nueva
tabla como resultado de la serie de operaciones. Las operaciones fundamentales
en el lgebra relacional son seleccionar, proyectar, producto cartesiano,
renombrar, unin y diferencia de conjuntos. Adems de las operaciones
fundamentales existen otras operaciones como son: interseccin de conjuntos,
producto natural, divisin y asignacin.

** Operaciones fundamentales **
Las operaciones seleccionar, proyectar y renombrar, son denominadas
operaciones unitarias ya que operan sobre una tabla. Las otras operaciones
operan sobre pares de relaciones y, por tanto se llaman operaciones binarias.
* La operacin seleccionar.
Esta operacin selecciona tuplas (filas) que satisfacen una instruccin (condicin)
dada de una tabla. Se representa por medio de parntesis.
(nombre_tabla WHERE condicin);
La oracin de la instruccin despus de la clusula WHERE puede incluir
condiciones de igualdad como =,=,<,>,>=,<=,adems que se puede hacer una
oracin ms compleja usando los conectores y (^) y o (v).
* La operacin Proyectar.
Consiste en identificar las columnas (atributos en el modelo E-R) que nos interesa
conocer. Se representa por medio de corchetes. Si este se omite indicara que se
desea obtener todas las columnas de la tabla en cuestin.
(nombre_tabla WHERE condicin) [Nombre_atributo];

* La operacin Producto cartesiano.
Consiste en multiplicar todas las tuplas entre tablas, obteniendo como resultado
una tabla que contiene todas las columnas de ambas tablas. Se especifica con la
orden TIMES.

Nombre_tabla TIMES Nombre_tabla;
* La operacin Join.
Consiste en obtener el producto (multiplicacin) de todas las tuplas de una tabla
con las de la otra, para posteriormente evaluar aquellas cuyo campo en comn
sea igual generando como resultado una nueva tabla que tiene como tuplas
(renglones) que cumplen con la condicin establecida. Se representa con la orden
JOIN.
La orden Join es colocada entre las dos tablas a multiplicar despus de que la
primera especifica la operacin de seleccin y proyeccin.
(Tabla)[atributo] JOIN (Tabla)[Atributo];
* La operacin Divide.
Toma dos relaciones, una binaria y la otra unaria, construye una relacin formada
por todos los valores de un atributo de la relacin binaria que concuerdan (en el
otro atributo) con todos los valores de la relacin unaria. Se representa con la
orden DIVIDEBY.
NomTablaBin DIVIDEBY NomTablaUna
* La operacin Diferencia.
Construye una relacin formada por todas las tuplas (filas) de la primera relacin
que no aparezcan en la segunda de las dos relaciones especificadas. Se
representa con la orden MINUS.
Nom_tablaA MINUS NomTablaB;
* La operacin Unin.
Construye una relacin formada por todas las tuplas de la primera relacin y todas
las tuplas de la segunda relacin. El requisito es que ambas relaciones sean del
mismo tipo.
Nom_TablaA UNION Nom_tablaB
* La operacin interseccin.
Construye una nueva tabla compuesta por todas las tuplas que estn en la
primera y segunda tabla.
Nom_TablaA INTERSEC Nom_tablaB

Ejemplos:
Para ejemplificar las notaciones anteriores consideremos el ejemplo
ALUMNO - cursa - MATERIA, que tienen los siguientes atributos:
NControl NControl Clave
NombreA Clave NombreM
Especialidad Calif Crditos
Direccin
Representando en tablas a los atributos quedaran de la siguiente forma:
Tabla alumno:
NControl NombreA Especialidad Direccin
Tabla cursa:
NControl Clave Calif
Tabla materia:
Clave NombreM Crditos

1.- Obtener el nombre de todos los alumnos que estn inscritos en la Institucin.
(Alumno) [NombreA];
2.- Obtener el nombre de los alumnos que cursan la materia Base de datos 1 cuya
clave es SCB9333
(Alumno) JOIN (Cursa where Clave='SCB9333') [NombreA];
3.- Obtener los nombres de los alumnos de la especialidad de Ing. Sistemas que
cursan la materia Base de datos 2.
((Alumno)[especialidad,NombreA,NControl]
JOIN (Cursa) where especialidad = 'ISC')[Clave,NombreA])
JOIN (Materia where NombreM='BD2')[NombreA];


En el lgebra relacional no solo debemos saber lo que queremos sino tambin
como obtenerlo, al realizar las consultas debemos especificar el nombre de la
tabla a utilizar en caso de que deseemos realizar una operacin con un atributo
que las otras tablas no tienen debemos "arrastrar" dicho atributo para poder
utilizarlo, como lo es en el caso anterior, en donde requerimos el nombre del
alumno que solamente lo tiene la tabla alumno, pro tambin deseamos que se
cumpla la condicin NombreM=BD2, como no podemos relacionar directamente a
ambas tablas empleamos la tabla cursa de donde obtenemos la clave de las
materias y mantenemos el nombre del alumno (NombreA) finalmente con la orden
JOIN se combinan las tablas por el campo comn que tienen que es clave as que
obtenemos una tabla con todas las materias que cursan los alumnos de ISC, de
donde seleccionamos solo aquella que se llame BD2 con la orden Join obtenemos
esta nueva tabla de donde por ltimo proyectamos el atributo NombreA que
hemos venido "arrastrando".

4.- Diseo de Bases De Datos Relacionales.
4.1 Caractersticas del diseo relacional.

Modelo propuesto por Codd en los Laboratorios de IBM California. Se trata de un
modelo lgico que establece una estructura sobre los datos. El modelo de diseo
relacional viene de la estrecha relacin que existe entre el elemento bsico y el
concepto matemtico de relacin.
Donde una relacin R sobre conjuntos D1, D2, D3,.... DN se define como:
R D1 X D2 X D3,.. As los conjuntos pueden ser cuales quieran, incluso repetidos.
Caractersticas del diseo relacional
Generar un conjunto de esquemas de relaciones que permitan almacenar la
informacin con un mnimo de redundancia, que facilite la recuperacin de la
informacin.
Diseo de esquemas con una forma normal adecuada.
Informacin adicional que proporciona una serie de limitantes que se denominan
dependencias de los datos.

Disminuye los problemas ocasionados en las aplicaciones desarrolladas.
Incorpora mecanismos de consulta potente, independiente del SGDB.
4.2 Dominios atmicos y la primera forma normal.
Los dominios suponen una gran mejora en este modelo ya que permiten
especificar los posibles valores vlidos para un atributo. Cada dominio incorpora
su nombre y una definicin del mismo.
Ejemplos de dominio:
Direccin: 50 caracteres
Nacionalidad: Espaol, Francs, Italiano,...
Los dominios pueden ser tambin compuestos a partir de otros (ao, mes y da =
fecha).
Primera forma normal (1FN)
Una tabla se encuentra en primera forma normal si impide que un atributo de una
tupla pueda tomar ms de un valor. Por ejemplo la tabla TRABAJADOR.
TRABAJADOR
DNI Nombre Departamento
12121212A Andrs Mantenimiento
12345345G Andrea Direccin
Visualmente es una tabla, pero no una tabla relacional (lo que en terminologa de
bases de datos relacionales se llama relacin). No cumple la primera forma
normal. Lo cumplira si:


4.3 Dependencias funcionales.

Codd introdujo el concepto de dependencia funcional para caracterizar aquellas
relaciones que pueden descomponerse sin prdida de informaciones. Se puede
definir la dependencia funcional (D.F.) de la siguiente forma:
"Dados dos atributos A y B de una relacin R, se dice que B es funcionalmente
dependiente de A, si para cada valor de A existe un valor de B, y slo uno,
asociado con l.
En otros trminos, se puede decir que si dos tuplas de una relacin R tienen el
mismo valor en el atributo A deben tener el mismo valor en el atributo B. O dicho
de otro modo, si conocemos el valor de A podemos conocer el valor de B. Esto se
representa como:
DF: A B
La notacin > se lee "determina funcionalmente".
Por ejemplo, en una relacin CLIENTES (Nmero_cliente, Nombre, Telfono),
existen las siguientes dependencias funcionales:
DF: Nmero_cliente Nombre
DF: Nmero_cliente Telfono

As pues para comenzar el proceso de normalizacin tenemos que estudiar las
propiedades de todos los atributos de la relacin y analizar cmo estn
relacionados entre s, buscando las posibles dependencias funcionales que
existan. Otro de los pasos previos al proceso de normalizacin es decidir cul es
la clave primaria de la relacin.
Claves de una relacin
La clave de una relacin es el conjunto mnimo de atributos que nos permite
diferenciar cada fila de una relacin de todas las dems. Si la clave est formada
por ms de un atributo se le llama clave compuesta.
En una relacin puede que ms de un conjunto de atributos puedan ser elegidos
como clave. A estos atributos se les llama claves candidatas y a la clave candidata
elegida como clave de la relacin se le llama clave primaria y al resto de claves
candidatas se les llama claves secundarias o alternativas.

Una notacin comn que se usa para representar el esquema de una relacin,
como la del ejemplo, es: Cliente (numero_cliente, nombre, direccin, telfono)
Cliente es el nombre de la tabla.
nmero_ cliente, nombre, direccin y telfono son los atributos (columnas)
nmero_cliente, es el nombre de la clave.
Tambin se puede decir que un atributo o conjunto de atributos X es clave, si se
cumple:
1. X Al, A2,..., An
2. No existe ningn atributo o conjunto de atributos Y, contenido en X, tal que Y
Al, A2,..., An
En otras palabras, una clave es un conjunto mnimo de atributos que determina a
todos los dems.
4.4 Segunda formal normal.
Ocurre si una tabla est en primera forma normal y adems cada atributo que no
sea clave, depende de forma funcional completa respecto de cualquiera de las
claves. Toda la clave principal debe hacer dependientes al resto de atributos, si
hay atributos que depende slo de parte de la clave, entonces esa parte de la
clave y esos atributos formarn otra tabla.
Ejemplo:

Suponiendo que el DNI y el nmero de curso formen una clave principal para esta
tabla, slo la nota tiene dependencia funcional completa. El nombre y los apellidos
dependen de forma completa del DNI.


4.5 Tercera forma normal.

Ocurre cuando una tabla est en 2FN y adems ningn atributo que no sea clave
depende transitivamente de las claves de la tabla. Es decir no ocurre cuando
algn atributo depende funcionalmente de atributos que no son clave.

La Provincia depende funcionalmente del cdigo de provincia, lo que hace que no
est en 3FN. El arreglo sera:




4.6 Forma normal Boyce-Codd.

Ocurre si una tabla est en tercera forma normal y adems todo determinante es
una clave candidata.
Ejemplo:


En las formas de Boyce-Codd hay que tener cuidado al descomponer ya que se
podra perderse informacin por una mala descomposicin.

4.7 Algoritmos de descomposicin.
La palabra algoritmo se deriva del latn (algorithm). Que se refiere al conjunto finito
de instrucciones para llevar a cabo una tarea. El cual es simplemente la manera
de resolver un problema. Y cuya descomposicin consiste en dividir el problema
en subproblemas ms simples, con el fin de encontrar una solucin.
Veamos el siguiente ejemplo para entenderlo mejor.
Ejemplo de descomposicin en FNBC
Dada una dependencia
R = (nombre-sucursal, ciudad-sucursal, activos, nombre-cliente, numero-
prestamos, cantidad)
F = {nombre-sucursal, activos ciudad-sucursal numero-prstamo, cantidad
nombre-sucursal}
Clave = {numero-prstamo, nombre-cliente}
Descomposicin
R1 = (nombre-sucursal, ciudad-sucursal, activos)
R2 = (nombre-sucursal, nombre-cliente, numero-prstamo, cantidad)
R3 = (nombre-sucursal, numero-prstamo, cantidad)
R4 = (nombre-cliente, numero-prstamo)
Descomposicin final
R1, R3, R4
4.8 Forma normales superiores.
Otras formas normales
Existen otras formas normales que es deseable que se den en una relacin:
Cuarta Forma Normal (4FN)
Una tabla se encuentra en 4FN si, y slo si, para cada una de su dependencias
mltiples no funcionales X->->Y, siendo X una sper-clave que, X es o una clave
candidata o un conjunto de claves primarias.

Quinta Forma Normal (5FN)
Una tabla se encuentra en 5FN si:
La tabla est en 4FN
No existen relaciones de dependencias no triviales que no siguen los criterios de
las claves. Una tabla que se encuentra en la 4FN se dice que est en la 5FN si, y
slo si, cada relacin de dependencia se encuentra definida por las claves
candidatas.

4.9 Integracin de las bases de datos.

El trmino integridad de datos se refiere a la correccin y completitud de los datos
en una base de datos. Cuando los contenidos se modifican con sentencias
INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede
perderse de muchas maneras diferentes. Pueden aadirse datos no vlidos a la
base de datos, tales como un pedido que especifica un producto no existente.
Pueden modificarse datos existentes tomando un valor incorrecto, como por
ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la
base de datos pueden perderse debido a un error del sistema o a un fallo en el
suministro de energa. Los cambios pueden ser aplicados parcialmente, como por
ejemplo si se aade un pedido de un producto sin ajustar la cantidad disponible
para vender.
Una de las funciones importantes de un DBMS relacional es preservar la
integridad de sus datos almacenados en la mayor medida posible.

5.- Algebra relacional

El lgebra relacional es un conjunto de operaciones que describen paso a paso
como computar una respuesta sobre las relaciones, tal y como stas son definidas
en el modelo relacional. Denominada de tipo procedimental, a diferencia del
Clculo relacional que es de tipo declarativo.

Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como
una representacin intermedia de una consulta a una base de datos y, debido a
sus propiedades algebraicas, sirven para obtener una versin ms optimizada y
eficiente de dicha consulta.
El lgebra relacional es un lenguaje terico con operaciones que se aplican a una
o ms relaciones, con el fin de definir otra relacin, sin modificar las relaciones
originales.
5.1 Operaciones fundamentales del algebra relacional
El conjunto de operaciones para manipular las tuplas de las relaciones o tablas y
el resultado de cada operacin es una nueva relacin que podemos manipular
posteriormente.
Operaciones:
Seleccionar
Proyectar
Producto cartesiano
Unin
Diferencia
Cada operador del lgebra acepta una o dos relaciones y retorna una relacin
como resultado. y son operadores unarios, el resto de los operadores son
binarios. Las operaciones bsicas del lgebra relacional son:
Seleccin (): Permite seleccionar un subconjunto de tuplas de una relacin (R),
todas aquellas que cumplan la(s) condicin(es) P, esto es:

Ejemplo:

Selecciona todas las tuplas que contengan Gmez como apellido en la relacin
Alumnos.
Una condicin puede ser una combinacin booleana, donde se pueden usar
operadores como: , combinndolos con operadores: .
Selecciona los atributos Apellido, Semestre y Numero_Control de la relacin
Alumnos, mostrados como un subconjunto de la relacinAlumnos.
Producto cartesiano (x): El producto cartesiano de dos relaciones se escribe
como:

,

Y entrega una relacin, cuyo esquema corresponde a una combinacin de todas
las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a
los de R seguidos por los de S. Ejemplo:

Muestra una nueva relacin, cuyo esquema contiene cada una de las tuplas de la
relacin Alumnos junto con las tuplas de la relacin Maestros, mostrando primero
los atributos de la relacin Alumnos seguidos por las tuplas de la relacin
Maestros.
Unin ( ): Produce el conjunto de todas las tuplas que pertenecen ya sea a R o a
S o a Ambas. Al igual que en teora de conjuntos el smbolo representa aqu la
unin de dos relaciones.

R y S deben ser uniones compatibles.
Diferencia (-): La diferencia de dos relaciones, R y S denotada por:

Entrega todas aquellas tuplas que estn en R, pero no en S. R y S deben ser
uniones compatibles.
Estas operaciones son fundamentales en el sentido en que (1) todas las dems
operaciones pueden ser expresadas como una combinacin de stas y (2)
ninguna de estas operaciones pueden ser omitidas sin que con ello se pierda
informacin.
5.2 Otras operaciones del algebra relacional
Interseccin (): La operacin de interseccin permite identificar filas que son
comunes en dos relaciones. Supongamos que tenemos una tabla de empleados y
otra tabla con los asistentes que han realizado un curso de ingls (los asistentes
pueden ser empleados o gente de la calle). Queremos crear una figura virtual en la
tabla denominada "Empleados que hablan Ingls", esta figura podemos crearla
realizando una interseccin de empleados y curso de ingls, los elementos que
existan en ambas tablas sern aquellos empleados que han asistido al curso.
La interseccin de dos relaciones se puede especificar en funcin de otros
operadores bsicos:

La interseccin, como en Teora de conjuntos, corresponde al conjunto de todas
las tuplas que estn en R y en S, siendo R y S uniones compatibles.

Reunin o JOIN(|x|): La reunin se utiliza para recuperar datos a travs de varias
tablas conectadas unas con otras mediante clusulas JOIN, en cualquiera de sus
tres variantes INNER, LEFT, RIGHT. La operacin reunin se puede combinar con
las operaciones seleccin y proyeccin.
Un ejemplo de reunin es conseguir los pedidos que nos han realizado los clientes
nacionales cuyo importe supere 15.000 unidades de producto, generando un
informe con el nombre del cliente y el cdigo del pedido. En este caso se da por
supuesto que la tabla clientes es diferente a la tabla pedidos y que hay que
conectar ambas mediante, en este caso, un INNER JOIN.
Divisin: La operacin divisin es la contraria a la operacin producto y quizs
sea la ms compleja de explicar, por tanto comenzar directamente con un
ejemplo. Una determinada empresa posee una tabla de comerciales, otra tabla de
productos y otra con las ventas de los comerciales. Queremos averiguar que
comerciales han vendido todo tipo de producto.
Lo primero que hacemos es extraer en una tabla todos los cdigos de todos los
productos, a esta tabla la denominamos
A.Tabla
ACdigo Producto
1035
2241
2249
2518
En una segunda tabla extraemos, de la tabla de ventas, el cdigo del producto y el
comercial que lo ha vendido, lo hacemos con una proyeccin y evitamos traer
valores duplicados. El resultado podra ser el siguiente:
Tabla B
Cdigo Comercial Cdigo Producto
10 2241
23 2518
23 1035
39 2518
37 2518
10 2249
23 2249
23 2241
Si dividimos la tabla B entre la tabla A obtendremos como resultado una tercera
tabla que:
1. Los campos que contiene son aquellos de la tabla B que no existen
en la tabla A. En este caso el campo Cdigo Comercial es el nico de la tabla B
que no existe en la tabla A.

2. Un registro se encuentra en la tabla resultado si y slo si est
asociado en la tabla B con cada fila de la tabla ATabla Resultado Cdigo Por qu
el resultado es 23? El comercial 23 es el nico de la tabla B que tiene asociados
todos los posibles cdigos de producto de la tabla A.

5.3 Algebra relacional extendida
Las operaciones bsicas del lgebra relacional se han ampliado de varias
maneras. Una ampliacin sencilla es permitir operaciones aritmticas como parte
de la proyeccin. Una ampliacin importante es permitir operaciones de
agregacin, como el clculo de la suma delos elementos de un conjunto, o su
media. Otra ampliacin importante es la operacin reunin externa, que permite a
las expresiones del lgebra relacional trabajar con los valores nulos que modelan
la informacin que falta.
Proyeccin generalizada
La operacin proyeccin generalizada ampla la operacin proyeccin permitiendo
que se utilicen funciones aritmticas en la lista de proyeccin. La operacin
proyeccin generalizada tiene la forma: F1 ,F2,..., Fn
(E) donde E es cualquier expresin del lgebra relacional y F1, F2, . . . , Fn son
expresiones aritmticas. De forma trivial, la expresin aritmtica puede ser
simplemente un atributo o una constante.
Funciones de agregacin
Las funciones de agregacin son funciones que toman una coleccin de valores y
devuelven como resultado un nico valor. Las funciones de agregacin ms
habituales son sum (Suma), avg (Media aritmtica), count (nmero de elementos),
min y max (Mnimo y mximo, respectivamente).
Reunin externa
La operacin reunin externa es una ampliacin de la operacin reunin para
trabajar con la informacin que falta. Esta operacin tiene tres formas diferentes:
reunin externa por la izquierda, denotada por |X, reunin externa por la derecha,
denotada por X| y reunin externa completa, denotada por X.
La reunin externa por la izquierda (|X) toma todas las tuplas de la relacin de la
izquierda que no coincidan con ninguna tupla de la relacin de la derecha, las
rellena con valores nulos en todos los dems atributos de la relacin de la derecha
y las aade al resultado de la reunin natural. La reunin externa por la derecha
(X|) es simtrica de la reunin externa por la izquierda. La reunin externa
completa (X) realiza estas dos operaciones, rellenando las tuplas de la relacin de
la izquierda que no coincidan con ninguna tupla de la relacin de la derecha y las
tuplas de la relacin de la derecha que no coincidan con ninguna tupla de la
relacin de la izquierda, y aadindolas al resultado de la reunin
5.4 Valores nulos
A menudo hay varias formas de tratar los valores nulos. Las operaciones y las
comparaciones con valores nulos se deberan evitar siempre que sea posible.
Dado que el valor especial nulo indica valor desconocido o no existente,

cualquier operacin aritmtica que incluya valores nulos devolver un valor nulo.
De manera similar, cualquier comparacin (como <, _, >, _ y, /) que incluya un
valor nulo se evala al nuevo valor lgico desconocido. Las operaciones lgicas
tratan los valores desconocidos tal y como se muestra en la siguiente tabla.
A la hora de efectuar operaciones en el lgebra relacional que impliquen valores
nulos, hay que tener en cuenta que las operaciones de proyeccin, unin,
interseccin y diferencia tratan los valores nulos como cualquier otro valor al
eliminar duplicados. Si dos tuplas del resultado de alguna de estas operaciones
son exactamente iguales, y ambos tienen nulos en los mismos campos, se tratan
como duplicados.
La decisin es un tanto arbitraria porque sin saber cul es el valor real no se sabe
si los dos valores nulos son duplicados o no. Para las funciones de agregacin,
hay que tener en cuenta que cuando hay nulos en los atributos agregados, la
operacin borra los valores nulos del resultado antes de aplicar la agregacin. Si el
multiconjunto resultante est vaco, el resultado agregado ser nulo. Obsrvese
que el tratamiento de los valores nulos aqu es diferente que en las expresiones
aritmticas ordinarias.

5.5 Operaciones de modificaciones a la base de datos
En este apartado se abordar la manera de insertar, borrar o modificar informacin
de la base de datos.
Borrado
Las solicitudes de borrado se expresan bsicamente igual que las consultas. Sin
embargo, en lugar de mostrar las tuplas al usuario, se eliminan de la base de
datos las tuplas seleccionadas. Slo se pueden borrar tuplas enteras; no se
pueden borrar valores de atributos concretos. En el lgebra relacional los borrados
se expresan mediante E, donde r es una relacin y E es una consulta del
lgebra relacional.
Insercin
Para insertar datos en una relacin hay que especificar la tupla que se va a
insertar o escribir una consulta cuyo resultado sea un conjunto de tuplas que

vayan a insertarse. El valor de los atributos de las tuplas insertadas deben ser
miembros del dominio de cada atributo y las tuplas insertadas deben ser de la
clase correcta. En el lgebra relacional las inserciones se expresan mediante r
donde r es una relacin y E es una consulta del lgebra relacional.
Actualizacin
Puede que, en algunas situaciones, se desee modificar un valor de una tupla sin
modificar todos los valores de la tupla. Se puede utilizar el operador proyeccin
generalizada para realizar esta tarea:
F1, F2, ..., Fn
(r), donde cada Fi es o bien el
i-simo atributo de r, si el i-simo atributo no est actualizado, o una expresin que
slo implique constantes y los atributos de r, y que del nuevo valor del atributo.
Si se desea seleccionar varias tuplas de r y slo actualizar esas mismas tuplas, se
puede utilizar la expresin siguiente, donde P denota la condicin de seleccin que
escoge las tuplas que hay que actualizar:


6.- Lenguaje SQL
6.1 introduccin.
El lenguaje SQL
SQL es una herramienta para organizar, gestionar y recuperar datos almacenados
en una base de datos informtica. El nombre "SQL" es una abreviatura de
StructuredQueryLanguaje (Lenguaje de consultas estructurado).
Como su propio nombre indica, SQL es un lenguaje informtico que se puede
utilizar para interaccionar con una base de datos y ms concretamente con un tipo
especifico llamado base de datos relacional.
SQL es a la vez un lenguaje fcil de aprender y una herramienta completa para
gestionar datos. Las peticiones sobre los datos se expresan mediante sentencias,
que deben escribirse de acuerdo con unas reglas sintcticas y semnticas de este
lenguaje.
Su aprendizaje no solo sirve para esta aplicacin sino, tambin, para todas las
existentes en el mercado que soporten este lenguaje ya que es un lenguaje
estndar por haberse visto consolidado por el Instituto Americano de Normas
(ANSI) y por la Organizacin de Estndares Internacional (ISO).

6.2 Definicin de datos.
Componentes del SQL
El lenguaje SQL est compuesto por comandos, clusulas, operadores y
funciones de agregado. Estos elementos se combinan en las instrucciones para
crear, actualizar y manipular las bases de datos.
Comandos
Existen dos tipos de comandos SQL:
DLL que permiten crear y definir nuevas bases de datos, campos e ndices.
DML que permiten generar consultas para ordenar, filtrar y extraer datos de la
base de datos.

Clusulas.
Las clusulas son condiciones de modificacin utilizadas para definir los datos que
desea seleccionar o manipular.


Operadores lgicos.

Operadores de Comparacin



Orden de ejecucin de los comandos.
Dada una sentencia SQL de seleccin que incluye todas las posibles clusulas, el
orden de ejecucin de las mismas es el siguiente:
1. Clusula FROM
2. Clusula WHERE
3. Clusula GROUP BY
4. Clusula HAVING
5. Clusula SELECT
6. Clusula ORDER BY

Sintaxis Sql


6.3 Estructura bsica de las consultas.

Consulta de datos.
El proceso ms importante que podemos llevar a cabo en una base de datos es la
consulta de los datos. De nada servira una base de datos si no pudiramos
consultarla. Es adems la operacin que efectuaremos con mayor frecuencia.
Para consultar la informacin SQL pone a nuestra disposicin la sentencia
SELECT.
La sentencia SELECT
La sentencia SELECT nos permite consultar los datos almacenados en una tabla
de la base de datos.
El formato de la sentencia select es:
SELECT [ALL | DISTINCT]
<nombre_campo> [{, <nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista> [{, <nombre_tabla>|<nombre_vista>}]
[WHERE <condicin> [{AND|OR <condicion>}]]
[GROUP BY <nombre_campo> [{, <nombre_campo >}]]
[HAVING <condicion> [{AND|OR <condicion>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
[{, <nombre_campo>|<indice_campo> [ASC | DESC]}]]
Donde las partes que cada una de sentencia nos describe lo siguiente:


6.4 Operaciones sobre conjuntos.
Las operaciones aplicables tanto a un conjunto como a una tabla son las
siguientes: Unin, Interseccin, diferencia y diferencia simtrica como se observa
en la tabla a continuacin:


6.5 Funciones de agregacin.
Clusula GROUP BY
La clusula GROUP BY especifica una consulta sumaria. En vez de producir una
fila de resultados por cada fila de datos de la base de datos, una consulta sumaria
agrupa todas las filas similares y luego produce una fila sumaria de resultados
para cada grupo.
Seguido de la clusula GROUP BY se especifican los nombres de uno o ms
campos cuyos resultados se desean agrupados.
Tiene la forma:
GROUP BY expresin_columna
Expresin_columna debe coincidir con la expresin de columna utilizada en la
clusula SELECT. Puede ser uno o ms nombres de campo de una tabla,
separados por coma o una o ms expresiones separadas por comas. El siguiente
ejemplo nos dice cuantos alumnos estn matriculados en cada grupo en el ao
1999:
SELECT GRUPO, COUNT (*) FROM MATRICUL WHERE ANNO = 1999 GROUP
BY GRUPO
Esta sentencia nos devolver una fila por cada grupo de alumnos. Cada una de
ellas contendr el grupo y el n de alumnos en l.
Clusula GROUP BY
La clusula GROUP BY especifica una consulta sumaria. En vez de producir una
fila de resultados por cada fila de datos de la base de datos, una consulta sumaria

agrupa todas las filas similares y luego produce una fila sumaria de resultados
para cada grupo.
Seguido de la clusula GROUP BY se especifican los nombres de uno o ms
campos cuyos resultados se desean agrupados.
Tiene la forma:

GROUP BY expresin_columna
Expresin_columna debe coincidir con la expresin de columna utilizada en la
clusula SELECT. Puede ser uno o ms nombres de campo de una tabla,
separados por coma o una o ms expresiones separadas por comas. El siguiente
ejemplo nos dice cuantos alumnos estn matriculados en cada grupo en el ao
1999:
SELECT GRUPO, COUNT (*) FROM MATRICUL WHERE ANNO = 1999 GROUP
BY GRUPO
Esta sentencia nos devolver una fila por cada grupo de alumnos. Cada una de
ellas contendr el grupo y el n de alumnos en l.

Clusula HAVING
La clusula HAVING dice a SQL que incluya solo ciertos grupos producidos por la
clusula GROUP BY en los resultados de la consulta. Al igual que la clusula
WHERE, utiliza una condicin de bsqueda para especificar los grupos deseados.
En otras palabras, especifica la condicin que deben de cumplir los grupos. Slo
es vlida si previamente se ha especificado la clusula GROUP BY.
La clusula HAVING tiene la forma:
HAVING expresin1 operador expresin2
Expresin1 y expresin2 pueden ser nombres de campos, valores constantes o
expresiones y estas no deben coincidir con una expresin de columna en la
clusula SELECT. Operador es un operador relacional que une las dos
expresiones.
La sentencia siguiente nos mostrar el nmero de alumnos en cada grupo de 1995
cuyo nmero de integrantes supera los 30:

SELECT GRUPO, COUNT (*) FROM MATRICUL WHERE ANNO = 1995 GROUP
BY GRUPO HAVING COUNT (*) > 30
6.6 Valores nulos.
"null" significa "dato desconocido" o "valor inexistente". No es lo mismo que un
valor "0", una cadena vaca o una cadena literal "null".
Puede desconocerse o no existir el dato correspondiente a algn campo de un
registro. Este campo puede contener valores nulos. En contraposicin, tenemos
campos que no pueden estar vacos jams.
Por ejemplo. Tenemos la tabla "libros". El campo "titulo" no debera estar vaco
nunca, igualmente el campo "autor". Para ello, al crear la tabla, debemos
especificar que dichos campos no admitan valores nulos:
Create table libros (
Titulo varchar (30) not null,
Autor varchar (20) not null,
Editorial varchar (15) null,
Precio float);
Para especifcar que un campo no admita valores nulos, debemos colocar "not
null" luego de la definicin del campo. En el ejemplo anterior, los campos
"editorial" y "precio" si admiten valores nulos.
Cuando colocamos "null" estamos diciendo que admite valores nulos (caso del
campo "editorial"); por defecto, es decir, si no lo aclaramos, los campos permiten
valores nulos (caso del campo "precio").
Si ingresamos los datos de un libro, para el cual an no hemos definido el precio
podemos colocar "null" para mostrar que no tiene precio:
Insert into libros (titulo, autor, editorial, precio)
Values ('El aleph, Borges,Emece, null);
El valor "null" no es una cadena de caracteres, no se coloca entre comillas.
Entonces, si un campo acepta valores nulos, podemos ingresar "null" cuando no
conocemos el valor.

De la misma manera se puede colocar tambin "null" en el campo "editorial" si se
desconoce el nombre de la editorial a la cual pertenece el libro que vamos a
ingresar:
Insert into libros (titulo, autor, editorial, precio)
Values ('Alicia en el pas', 'Lewis Carroll', null, 25);
Si intentamos ingresar el valor "null" en campos que no admiten valores nulos
(como "titulo" o "autor"), SQL no lo permite, muestra un mensaje y la insercin no
se realiza; por ejemplo:
Insert into libros (titulo, autor, editorial, precio)
Values (null, 'Borges', 'Siglo XXI', 25);
Para ver cules campos admiten valores nulos y cules no, podemos emplear el
procedimiento almacenado "sp_columns" junto al nombre de la tabla.
Nos muestra mucha informacin, en la columna "IS_NULLABLE" vemos que
muestra "NO" en los campos que no permiten valores nulos y "YES" en los
campos que si los permiten.
Para recuperar los registros que contengan el valor "null" en algn campo, no
podemos utilizar los operadores relacionales vistos anteriormente: = (igual) y <>
(distinto); debemos utilizar los operadores "is null" (es igual a null) y "is not null"
(no es null):
Select * from libros
Where precio is null;
La sentencia anterior tendr una salida diferente a la siguiente:
Select * from libros
Where precio=0;
Con la primera sentencia se vera que los libros cuyo precio es igual a "null"
(desconocido); con la segunda, los libros cuyo precio es 0. Igualmente para
campos de tipo cadena, las siguientes sentencias "select" no retornan los mismos
registros:
Select * from libros where editorial is null;
Select * from libros where editorial='';


Con la primera sentencia se tienen los libros cuya editorial es igual a "null", con la
segunda, los libros cuya editorial guarda una cadena vaca.
6.7 Consultas Anidadas.

SELECT anidadas
Pueden existir consultas a la Base de Datos que requieran una restriccin que sea
el resultado de otra consulta.
Por ejemplo: Deseamos saber cuntas materias posee el ltimo curso de unos
determinados estudios. Mediante COUNT (Materia) puedo saber cuntas pero la
condicin del ltimo curso solo se puede saber despus de ejecutar una sentencia
con MAX (Curso) del fichero PLANES
Cuando esto se produce podemos actuar de dos formas:
La primera efectuando la consulta que genera la restriccin y posteriormente,
realizar la sentencia con el resultado de la restriccin calculada:
SELECT MAX (CURSO) FROM PLANES WHERE ESTUDIO = '@Estudio
Si, por ejemplo, el valor mximo nos devuelve 3, entonces realizaramos la
sentencia definitiva con:
SELECT COUNT (MATERIA) FROM PLANES WHERE ESTUDIO = '@Estudio'
AND CURSO = 3
La segunda forma es ms compleja pero mucho ms prctica. La sentencia que
genera la restriccin compleja se anida dentro de la principal encerrndola entre
parntesis:
SELECT COUNT (MATERIA) FROM PLANES WHERE ESTUDIO = '@Estudio'
AND CURSO = (SELECT MAX (CURSO) FROM PLANES WHERE ESTUDIO =
'@Estudio')
Las sentencias SELECT anidadas se utilizan con mucha frecuencia a la hora de
Actualizar o Borrar registros de una tabla que requieran condiciones o
restricciones en las que estn implicadas otras tablas distintas de la que se va a
actualizar o borrar.


6.8 Consultas complejas.

Qu es una subconsultas?
Una subconsulta es una consulta encerrada entre parntesis

CONSULTAS COMPLEJAS: SUBCONSULTAS

Si la informacin que se est buscando est incluida en una tabla y la condicin de
bsqueda de esta informacin requiere acceder a otras tablas, entonces (EN
ALGUNOS CASOS) se pueden utilizar las subconsultas para expresar este tipo de
condiciones.
EJEMPLO: El mismo ejemplo anterior: Obtener los nombres de los ciclistas
pertenecientes al equipo dirigido por lvaro Pino. Tenamos usando igualdades:
SELECT C.nombre FROM Ciclista C, Equipo E
WHERE C.nomeq = E.nomeq
AND E.director = lvaro Pino;
Usando subconsultas:
SELECT C.nombre FROM Ciclista C
WHERE C.nomeq = (SELECT E.nomeq FROM Equipo E
WHERE E.director = lvaro Pino);
Esto es posible porque la informacin que se requiere, nombre del ciclista, no est
en la tabla de la subconsulta (Equipo) y porque la subconsulta retorna un nico
valor.
PREDICADOS QUE ACEPTAN SUBCONSULTAS:
Las subconsultas pueden aparecer en las condiciones de bsqueda como
argumentos de los predicados siguientes:
Predicados de comparacin (=, <>, >, <, >=, <=).

IN: comprueba que un valor pertenece a una coleccin dada mediante una
subconsulta.
MATCH: comprueba si un valor es idntico a algn valor de una coleccin.
predicados de comparacin cuantificados (ANY y ALL): permiten compararun
valor con un conjunto de valores.
EXISTS: equivalente al cuantificador existencial, comprueba si una subconsulta
devuelve alguna fila.
UNIQUE: equivalente a las tuplas no se repiten, comprueba si una subconsulta
devuelve filas no repetidas.
6.9 Vistas.
Una vista en SQL es el resultado de una consulta de varias tablas que aparece
como una sola tabla.
Formato:
CREATE [OR REPLACE] VIEW NOMBREVISTA
[(COLUMNA [, COLUMNA])]
AS CONSULTA;
AS CONSULTA= Determina las columnas y las tablas que aparecern en la vista.
[OR REPLACE]= Crea de nuevo la vista si ya exista.
Para consultar la vista creada, USER_VIEWS:
SELECT VIEW_NAME FROM
6.10 Modificaciones en las Bases de Datos.

El comando SELECT permite ver un grupo de registros de una o ms tablas. Con
SQL tambin pueden aadirse o modificarse lneas:
UPDATE: Cambia valores almacenados en tablas.
INSERT: Aade lneas a una tabla.
DELETE: Borra lneas a una tabla.

Actualizacin de datos en la tabla
Para actualizar o cambiar un valor. Se debe actualizar, en la tabla, el. El comando
UPDATE se escribe seguido por la tabla donde realizara el cambio y para indicar
la actualizacin, se escribe Set seguido por el cambio, y finalmente la condicin
(opcional) en la que se indican las lneas que se van a modificar:
Por ejemplo al modificar un salario de un empleado.
UPDATE EMP
SET SAL=SAL+100
WHERE JOB='CLERCK';
Headers (); PrintAll; un mensaje confirmar que la actualizacin ha tenido lugar.
Instalar nuevos registros en una tabla
El comando INSERT se ha utilizado hasta ahora para introducir lneas de
informacin, pero una lnea cada vez. Sin embargo, puede usarse este comando
para aadir un conjunto de lneas desde una tabla hacia otra. Puede hacerse esto
utilizando una bsqueda para definir el conjunto de lneas que se van a insertar en
la tabla.
Supngase que en la base de datos se tiene una tercera tabla llamada Promocin,
con algunas de las columnas de la tabla DEPT y se desea introducir en ella
informacin de todos los vendedores que tengan de comisin una cifra superior al
25% de su salario, copiando la informacin desde la tabla EMP:
INSERT INTO PROMOCION (ENAME, JOB, SAL, COMM)
SELECT ENAME, JOB, SAL, COMM
FROM EMP
WHERE COMM > 0.25 * SAL;

Borrado de registros de una tabla
Para borrar se emplea la orden Delete y se puede utilizar con where para
determinar los registros que se quieren borrar. As por ejemplo, para borrar el
departamento 40 se hara lo siguiente:
DELETE FROM DEPT WHERE DEPTNO=40;

Las condiciones para todos esos comandos demuestran como SQL emplea la
misma sintaxis tanto para las bsquedas como para la manipulacin de la
informacin. En los comandos SELECT, UPDATE, INSERT y DELETE, la
condicin con WHERE es opcional.

7.- Bases De Datos Orientadas a Objetos.
7.1 Visin General.

Proporcionar una visin abstracta de los datos (se ocultan los detalles de cmo se
almacenan y mantienen los datos).
Las BDOO proporcionan una visin abstracta de los datos, de esta manera
representa la evolucin de las Bases de Datos para soportar el anlisis, diseo y
programacin Orientada a Objetos.

Ests permiten el desarrollo y mantenimiento de aplicaciones complejas ya que se
puede utilizar un mismo modelo conceptual y as aplicarlo al anlisis, diseo y
programacin, esto reduce el problema entre los diferentes modelos a travs de
todo el ciclo de vida, con un costo significativamente menor.
Como cualquier base de datos programable, una base de datos orientada a
objetos (BDOO) da un ambiente para el desarrollo de aplicaciones con un depsito
persistente listo para su explotacin.
Permiten que el mismo modelo conceptual se aplique al anlisis, diseo,
programacin, definicin y acceso a la base de datos. Esto reduce el problema del
operador de traduccin entre los diferentes modelos a travs de todo el ciclo de
vida. El modelo conceptual debe ser la base de las herramientas CASE totalmente
integradas, las cuales ayudan a generar la estructura de datos y los mtodos.
As las BDOO ofrecen un mejor rendimiento de la mquina que las bases de datos
por relacin, para aplicaciones clases con estructuras complejas de datos. Sin
embargo, las BDOO coexistirn con las bases de datos por relacin como una
forma de estructura de datos dentro de una BDOO.


7.2 Tipos de datos complejos.

Los elementos de datos bsicos son registros bastante pequeos cuyos campos
son atmicos. En los ltimos aos, ha crecido la demanda de formas de abordar
tipos de datos ms complejos. Considrense por ejemplo, las direcciones.
Mientras que una direccin completa se puede considerar como un elemento de
datos atmico del tipo cadena de caracteres, esa forma de verlo esconde detalles
como la calle, la poblacin y el cdigo postal que pueden ser interesantes para las
consultas. Por otra parte, si una direccin se representa dividindola en sus
componentes, la escritura de las consultas sera ms complicada.
Como ejemplo adicional, considrense los atributos multivalorados del modelo E-
R. Esos atributos resultan naturales, por ejemplo, para la representacin de
nmeros de telfono, ya que las personas pueden tener ms de un telfono.
Con sistemas de tipos complejos se pueden representar directamente conceptos
del modelo E-R, como los atributos compuestos, los atributos multivalorados, la
generalizacin y la especializacin, sin necesidad de una compleja traduccin al
modelo relacional.

7.3 Tipos estructurados y herencia en SQL.

El sistema de SQL consista en un conjunto bastante sencillo de tipos
predefinidos. SQL: 1999 aadi un sistema de tipos extenso a SQL, lo que permite
los tipos estructurados y la herencia de tipos.
Los tipos estructurados permiten representar directamente los atributos
compuestos de los diagramas E-R. Por ejemplo, se puede definir el siguiente tipo
estructurado para representar el atributo compuesto nombre con los atributos
componentes nombre pila y apellidos:
Create type Nombre as
(nombre_pila varchar (20),
Apellidos varchar (20))
Final

De manera parecida, el tipo estructurado siguiente puede usarse para representar
el atributo compuesto direccin:
Create type Direccion as
(Calle varchar (20),
Ciudad varchar (20),
codigo_postal varchar (9))
Not final
En SQL estos tipos se denominan tipos definidos por el usuario. La especificacin
final indica que no se puede crear subtipos de nombre, mientras que la
especificacin not final de direccin indica que se pueden crear subtipos de
direccin. Ahora se pueden usar estos tipos para crear atributos compuestos en
las relaciones, con slo declarar que un atributo es de uno de estos tipos. Por
ejemplo, se puede crear una tabla cliente de la siguiente manera.
Create table cliente (
Nombre_name,
Direccin Direccion,
fecha_nacimiento date)
O bien, realizando una estructura ms del tipo Cliente y generar la tabla a partir
de ella:
Create type TipoCliente as
(Nombre_name,
Direccion Direccion,
fecha_nacimiento date)
Not final
Create table cliente of TipoCliente
En SQL se usan funciones constructoras para crear valores de los tipos
estructurados. Las funciones con el mismo nombre que un tipo estructurado son
funciones constructoras de ese tipo estructurado. Por ejemplo, se puede declarar
una funcin constructora para el tipo Nombre de esta manera:

Create function Nombre (nombre_pila varchar (20), apellidos varchar (20))
Returns Nombre
Begin
Set self.nombre_pila = nombre_pila;
Set self.apellidos = apellidos;
End
De manera predeterminada, cada tipo estructurado tiene una funcin sin
argumentos que configura los atributos con sus valores predeterminados.
Cualquier otra funcin constructora hay que crearla de manera especifca.
La instruccin siguiente ilustra la manera de crear una nueva tupla de la relacin
Cliente. Se da por supuesto que se ha definido una funcin constructora para
Direccin, igual que la funcin constructora que se defini para Nombre.
Insert into Cliente
Values
(New Nombre (Martn, Gmez),
New Direccion (Calle Mayor 20, Madrid, 28045),
Date 22-8-1960)
Herencia de tipos
Supngase que se tiene la siguiente definicin de tipo para las personas:
Create type Persona
(Nombre varchar (20),
Direccion varchar (20))
Puede que se desee almacenar en la base de datos informacin adicional sobre
las personas que son estudiantes y sobre las que son profesores. Dado que los
estudiantes y los profesores tambin son personas, se puede usar la herencia
para definir en SQL los tipos estudiante y profesor:
Create type Estudiante

Under Persona
(Grado varchar (20),
Departamento varchar (20))
Create type Profesor
Under Persona
(Sueldo Integer,
Departamento varchar (20))

7.4 Operaciones sobre conjuntos.

Las subtablas de SQL se corresponden con el concepto de especializacin /
generalizacin de E-R Por ejemplo, supngase que se define la tabla personas de
la siguiente manera:
Create table personas of Persona
A continuacin se puede definir las tablas estudiantes y profesores como
subtablas de personas, de la manera siguiente:
Create table estudiantes of Estudiante
Under personas
Create table profesores of Profesor
Under personas
Los tipos de las subtablas deben ser subtipos del tipo de la tabla madre. Por
tanto, todos los atributos presentes en personas tambin estn presentes en las
subtablas.
Adems, cuando se declaran estudiantes y profesores como subtablas de
personas, todas las tuplas presentes en estudiantes y profesores pasan a estar
tambin presentes de manera implcita en personas. Por tanto, si una consulta usa
la tabla personas, no slo encuentra tuplas directamente insertadas en esa tabla,
sino tambin tuplas insertadas en sus subtablas, es decir, estudiantes y

profesores. No obstante, esa consulta slo puede tener acceso a los atributos que
estn presentes en personas.
SQL permite hallar tuplas que se encuentran en personas pero no en sus
subtablas usando en las consultas only personas en lugar de personas. La
palabra clave only tambin puede usarse en las sentencias delete y update.
Sin la palabra clave only, la instruccin delete aplicada a una supertabla, como
personas, tambin borra las tuplas que se insertaron originalmente en las
subtablas (como estudiantes); por ejemplo, la instruccin:

Delete from personas where P.
Borrar todas las tuplas de la tabla personas, as como de sus subtablas
estudiantes y profesores, que satisfagan P. Si se aade la palabra clave only a la
instruccin anterior, las tuplas que se insertaron en las subtablas no se ven
afectadas, aunque satisfagan las condiciones de la clusula where.
SQL soporta dos tipos de conjuntos: arrays y multiconjuntos; los tipos array se
aadieron en SQL: 1999, mientras que los tipos multiconjuntos se agregaronen
SQL: 2003. Un multiconjunto es un conjunto no ordenado, en el que cada
elemento puede aparecer varias veces.
Supngase que se desea registrar informacin sobre libros, incluido un conjunto
de palabras clave para cada libro. Supngase tambin que se deseara almacenar
el nombre de los autores de un libro en forma de array; a diferencia de los
elementos de los multiconjuntos, los elementos de los arrays estn ordenados, de
modo que se puede distinguir el primer autor del segundo autor, etc.
El ejemplo siguiente ilustra la manera en que se puede definir en SQL estos
atributos como arrays y como multiconjuntos.
Create type Editor as
(Nombre varchar (20),
Sucursal varchar (20))
Create type Libro as
(Titulo varchar (20),
array_autores varchar (20) array [10],

fecha_publicacion date,
Editor_Edit,conjunto_palabras_clave varchar (20) multiset)
Create table libros of Libro

7.5 Tipos de arreglo: multiconjuntos en SQL.

SQL soporta dos tipos de conjuntos: arrays y multiconjuntos; los tipos array se
aadieron en SQL: 1999, mientras que los tipos multiconjuntos se agregaron en
SQL: 2003.Un multiconjunto es un conjunto no ordenado, en el que cada elemento
puede aparecer varias veces.
Supngase que se desea registrar informacin sobre libros, incluido un conjunto
de palabras clave para cada libro. Supngase tambin que se deseara almacenar
el nombre de los autores de un libro en forma de array; a diferencia de los
elementos de los multiconjuntos, los elementos de los arrays estn ordenados, de
modo que se puede distinguir el primer autor del segundo autor, etc. El ejemplo
siguiente ilustra la manera en que se puede definir en SQL estos atributos como
arrays y como multiconjuntos.
Create type Editor as
(Nombre varchar (20),
Sucursal varchar (20))
Create type Libro as
(Titulo varchar (20),
array_autores varchar (20) array [10],
fecha_publicacion date,
Editor_Edit,
conjunto_palabras_clave varchar (20) multiset)
Create table libros of Libro
Creacin y acceso a los valores de los conjuntos en SQL: 1999 se puede crear un
array de valores de esta manera:

Array [Silberschartz, Korth, Sudarshan]
De manera parecida, se puede crear un multiconjunto de palabras clave de la
manera siguiente:
Multiset [Silberschartz, Korth, Sudarshan]
Por lo tanto, se puede crear una tupla definido por la relacin libros como:
Insert into libros
Values
(Compiladores, array [Gmez, Santos],
New Editor (McGraw-Hill, Nueva York),
Multiset [anlisis sintctico, anlisis])
Se puede tener acceso a los elementos del array o actualizarlos especificando el
ndice del array, por ejemplo, array_autores (1).

7.6 Identidad de los objetos y tipos de referencia en SQL.

Los lenguajes orientados a objetos ofrecen la posibilidad de hacer referencia a
objetos. Los atributos de un tipo dado pueden servir de referencia para los objetos
de un tipo concreto. Por ejemplo, en SQL se pueden definir el tipo Departamento
con el campo nombre y el campo director, que es una referencia al tipo persona, y
la tabla departamentos del tipo departamento, de la manera siguiente:

Create type Departamento (
Nombre varchar (20),
Director ref (Persona) scope personas)
Create table departamentos of Departamento
En este caso, la referencia est restringida a las tuplas de la tabla personas. La
restriccin del mbito (scope) de referencia a las tuplas de una tabla es obligatoria
en SQL, y hace que las referencias se comporten como las claves externas.

La tabla a la que hace referencia debe tener un atributo que guarde el identificador
para cada tupla. Ese atributo, denominado atributo autorreferencial (self-referential
attribute), se declara aadiendo una clausula ref es a la instruccin crate table:
Create table personas of Persona
Ref is id_persona system generated
En este caso, id_persona es el nombre del atributo, no una palabra clave, y la
instruccin system generated especifica que la base de datos genera de manera
automtica el identificador. Para inicializar el atributo de referencia hay que
obtener el identificador de la tupla a la que se va a hacer referencia.

7.7 Implementacin de las caractersticas O-R.

Los sistemas de bases de datos relacionales orientados a objetos son
bsicamente extensiones de los sistemas de bases de datos relacionales ya
existentes. Las modificaciones resultan claramente necesarias en muchos niveles
del sistema de bases de datos.
Los tipos de datos complejos soportados por los sistemas relacionales orientados
a objetos se pueden traducir al sistema de tipos ms sencillo de las bases de
datos relacionales. Por ejemplo, los atributos multivalorados del modelo E-R se
corresponden con los atributos valorados como multiconjuntos del modelo
relacional orientado a objetos. Los atributos compuestos se corresponden grosso
modo con los tipos estructurados. Las jerarquas es del modelo E-R se
corresponde con la herencia de tablas del modelo relacional orientados a objetos.













BIBLIOGRAFIA

FUNDAMENTOS DE BASES DE DATOS Cuarta edicin Abraham Silberschatz,
Henry F. Korth, editorial McGRAW-HILL


http://ennowi.blogspot.mx/2012/09/23-restricciones.html
http://ennowi.blogspot.mx/2012/09/24-diagramas-e-r.html
http://ennowi.blogspot.mx/2012/09/25-diseno-de-diagramas-e-r.html
http://ennowi.blogspot.mx/2012/09/26-conjunto-de-entidades-debiles.html
http://ennowi.blogspot.mx/2012/09/27-modelo-e-r-extendido.html
http://ennowi.blogspot.mx/2012/09/28-otros-aspectos-del-diseno-se-base-de.html
http://isc.itcj.s5.com/bdd1/unidad3.htm
https://docs.google.com/a/itsjc.edu.mx/file/d/0B0unA5-
Vog2gTHJIZ0tJcVNCREU/edit?pli=1
https://docs.google.com/a/itsjc.edu.mx/file/d/0B0unA5-Vog2gcDdPXzVHQzVIeDA/edit?pli=1

You might also like