You are on page 1of 39

A)

B)
C)
D)
E)

NOMBRE DE LA ASIGNATURA: Fundamentos de bases de datos


CARRERA: Ingeniera en Sistemas Computacionales
CLAVE DE LA ASIGNATURA: SCM-0412
HORAS TEORA-HORAS PRACTICA-CRDITOS: 3-2-8
OBJETIVO(S) GENERAL(ES) DEL CURSO:
El estudiante comprender los fundamentos tericos bsicos para
modelar, disear y consultar bases de datos.
F) TEMARIO
UNIDAD I. INTRODUCCIN A LOS SISTEMAS DE BASES DE DATOS
1.1
Sistemas de informacin y bases de datos.
1.1.1 Concepto de Sistema de informacin.
1.1.2 Concepto de base de datos.
1.2
Sistemas de informacin para la gestin y para la ayuda en
la toma de decisiones.
1.3
Sistemas de bases de datos y sus aplicaciones.
1.4
Sistemas de bases de datos frente a los sistemas de
archivos.
1.5
Los distintos niveles de abstraccin de una base de datos.
1.6
Usuarios y administradores de la base de datos.
1.7
Componentes de los sistemas de bases de datos.
1.8
Arquitectura de los sistemas de bases de datos.
UNIDAD II. MODELO ENTIDAD RELACIN
2.1 Conceptos bsicos.
2.1.1 Entidad
2.1.2 Relacin
2.2 Diagramas entidad-relacin (ER).
2.3 Diseo de un esquema de base de datos.
2.4 Lenguaje de Modelado Unificado UML (Modelo Conceptual).
UNIDAD III. MODELO RELACIONAL
3.1 El modelo relacional.
3.2 Algebra relacional.
UNIDAD IV. INTRODUCCIN A SQL.
4.1 Introduccin.
4.2 Estructura bsica (SELECT, WHERE)
4.3 Funciones de agregacin (GROUP, BY, HAVING)
4.4 Consultas sobre mltiples tablas.
4.4.1 Subconsultas.
4..4.2 Operadores JOIN.
4.5 Manipulacin de la base de datos (INSERT, UPDATE, DELETE).
UNIDAD V. DISEO DE BASES DE DATOS RELACIONALES

5.1 Diseo de esquemas relacionales de bases de datos.


5.1.1 Dependencias funcionales.
5.1.2 Anomalas.
5.1.3 Descomposicin.
5.1.4 Formas normales.
5.2 Modelo ER y la normalizacin.
5.3 Reduccin de un esquema ER a tablas.
5.4 Anlisis de un caso prctico.
UNIDAD VI. BASES DE DATOS RELACIONALES ORIENTADAS A OBJETOS
6.1 Relaciones anidadas.
6.2 Tipos complejos.
6.3 Herencia.
6.4 Tipos de referencia.
6.5 Consultas con tipos complejos.
6.6 Comparacin entre las bases de datos orientadas a objetos y a las
bases de datos
relacionales orientadas a objetos.
UNIDAD VII. XML
7.1 Antecedentes
7.2 Estructura de los datos XML.
7.3 Esquema de los documentos XML.
7.3.1 Definicin de tipos de documento (DTD).
7.3.2 Esquemas de XML.
7.4 Consulta y transformacin.
7.4.1 Xpath.
7.4.2 Xquery.
7.4.3 XSLT.
7.5 Almacenamiento de datos XML.
7.6 Aplicaciones.
G) FUENTES DE INFORMACION
1. Silberschatz. Korth. Sudarshan. Fundamentos de bases de datos 4ta.
Edicin. Mc Graw Hill.
2. Adoracin de Miguel Mario Piattini. Fundamentos y modelos de base de
datos. Adoracin de Miguel Mario Piattini.
3. C.J. Date. Introduccin a los sistemas de bases de datos 7ma. Edicin.
Pretince Hall.
4. Jeffrey D. Ullman, Jennifer Widom. Introduccin a los sistemas de
bases de datos. Prentice Hall.
UNIDAD I. INTRODUCCION A LOS SISTEMAS DE INFORMACION

1.1
Sistemas de informacin y bases de datos
1.1.1 Concepto de Sistema de informacin.
Un sistema de informacin se puede definir tcnicamente como un
conjunto de componentes relacionados que recolectan (o recuperan),
procesan, almacenan y distribuyen informacin para apoyar la toma
de decisiones y el control de una organizacin.
Actividades de un Sistema de Informacin.
Hay tres actividades en un sistema de informacin que producen la
informacin que esas organizaciones necesitan para tomar
decisiones, controlar operaciones, analizar problemas y crear nuevos
productos o servicios que son:
a) Entrada: captura o recolecta datos en bruto tanto del interior de la
organizacin como de su entorno externo.
b) Procesamiento: Convierte esa entrada en datos de una forma ms
significativa.
c) Salida: Transfiere la informacin procesada a la gente que usar o
a las actividades para las que se utilizar.
Los sistemas de informacin tambin requieren retroalimentacin,
que es la salida que se devuelve al personal adecuado de la
organizacin para ayudarle a evaluar o corregir la etapa de entrada.
Factores del entorno de un Sistema de Informacin
Un sistema de informacin contiene informacin sobre una
organizacin y su entorno. Dentro de este entorno figuran clientes,
proveedores, competidores, accionistas y agencias reguladoras que

interactan con la organizacin y sus sistemas de informacin.

1.1.2 Concepto de base de datos


Son muy numerosas las definiciones de base de datos, y si se
analizan detenidamente, se suele observar en casi todas ellas
coincidencias en ciertos elementos; aunque tambin se detecta la
falta de otros fundamentales, o al menos muy importantes, que son
caractersticos de las bases de datos y que marcan la diferencia entre
este concepto y el de ficheros. A continuacin se tienen distintas
definiciones de base de datos.
-Coleccin de datos interrelacionados almacenados en conjunto sin
redundancias perjudiciales o innecesarias; su finalidad es servir a una
aplicacin o ms de la mejor manera posible; los datos se almacenan
de modo que resulten independientes de los programas que los usen;
se emplean mtodos bien determinados para incluir nuevos datos y
para modificar y extraer los datos almacenados.
(Martin 1975).
-Coleccin o depsito de datos, donde los datos estn lgicamente
relacionados entre s, tienen una definicin y descripcin comunes y
estn estructurados de una forma particular. Una base de datos es
tambin un modelo del mundo real y, como tal, debe poder servir
para toda una gama de usos y aplicaciones.
(Conference des Statisticiens Europens, 1977).

-Conjunto de datos de la empresa memorizado en un ordenador, que


es utilizado por numerosas personas y cuya organizacin est regida
por un modelo de datos.
(Flory, 1982).
-Conjunto estructurado de datos registrados sobre soportes
accesibles por ordenador para satisfacer simultneamente a varios
usuarios de forma selectiva y en un tiempo oportuno.
(Delobel, 1982).
-Coleccin no redundante de datos que son compartidos por
diferentes sistemas de aplicacin.
(Howe, 1983).
-Coleccin integrada y generalizada de datos, estructurada
atendiendo a las relaciones naturales de modo que suministre todos
los caminos de acceso necesarios a cada unidad de datos con objeto
de poder atender todas las necesidades de los diferentes usuarios.
(Deen, 1985).
-Conjunto de ficheros maestros, organizados y administrados de una
manera flexible de modo que los ficheros puedan ser fcilmente
adaptados a nuevas tareas imprevisibles.
(Frank, 1988).
-Coleccin de datos interrelacionados.
(Elsmari y navathe, 1989).
Haciendo un anlisis de las anteriormente expuestas definiciones de
base de datos se tiene lo siguiente:
o En primer lugar, y en esto coinciden todas las definiciones, una base
de datos es un conjunto, coleccin o depsito de datos almacenados
en un soporte informtico no voltil.
o Los datos estn lgicamente relacionados entre s.
o La redundancia de los datos debe ser controlada de forma que no
existan duplicidades perjudiciales ni innecesarias.
o Las bases de datos pretenden servir al conjunto de la organizacin,
manejando los datos como otro recurso que viene a aadirse a los ya
tradicionales.
o Las bases de datos han de atender a mltiples usuarios y a
diferentes aplicaciones, en contraposicin a los sistemas de ficheros,
en los que cada fichero est diseado para responder a las
necesidades de una determinada aplicacin.
o Otro aspecto importante de las bases de datos es la independencia,
tanto fsica como lgica, entre datos y tratamientos. Esta
independencia, objetivo fundamental de las bases de datos, es una

caracterstica esencial que distingue las bases de datos de los


ficheros y que ha tenido una enorme influencia en la arquitectura de
los SGBD.
o La definicin o descripcin del conjunto de datos contenidos en la
base (lo que se denomina estructura o esquema de la base de datos)
deben ser nicas y estar integradas con los mismos datos. En los
sistemas basados en ficheros, los datos se encuentran almacenados
en ficheros, mientras su descripcin (muy somera) est separada de
los mismos, formando parte de los programas, para lo cual se precisa
que los lenguajes faciliten medios para la descripcin de los datos.
Suele haber, adems, una documentacin adicional, habitualmente
en soporte de papel, en general insuficiente y desactualizada. Este
tipo de organizacin da origen a infinidad de problemas, ya que a
veces no se sabe cul es la descripcin de un determinado fichero,
bien por prdida de la misma, bien porque no se ha actualizado
debidamente la correspondiente documentacin y tampoco se
conoce exactamente el programa que lo trataba. En las bases de
datos, la descripcin, y en algunos casos tambin una definicin y
documentacin completas (metadatos), se almacenan junto con los
datos, de modo que stos estn autodocumentados, y cualquier
cambio que se produzca en dicha documentacin se ha de reflejar y
quedar recogido en el sistema, con todas las ventajas que de este
hecho se derivan.
o La actualizacin y recuperacin de los datos debe realizarse
mediante procesos bien determinados, incluidos en el SGBD, el cual
ha de proporcionar tambin instrumentos que faciliten el
mantenimiento de la seguridad (confidencialidad, disponibilidad e
integridad) del conjunto de datos.
El concepto de base de datos ha ido cambiando y configurndose a
lo largo del tiempo; en la actualidad, y de acuerdo con estas
caractersticas que se acaban de analizar, se puede definir la base de
datos como se muestra a continuacin.
Coleccin o depsito de datos integrados, almacenados en
soporte secundario (no voltil) y con redundancia controlada.
Los datos, que han de ser compartidos por diferentes
usuarios y aplicaciones, deben mantenerse independientes de
ellos, y su definicin (estructura de la base de datos) nica y
almacenada junto con los datos, se ha de apoyar en un
modelo de datos, el cual ha de permitir captar las

interrelaciones
existentes
en
el
mundo
real.
Los
procedimientos de actualizacin y recuperacin, comunes y
bien determinados, facilitarn la seguridad del conjunto de
datos.
El Sistema de Gestin de Bases de Datos (SGBD) es el conjunto
de programas que permiten la implantacin, acceso y mantenimiento
de la base de datos. El SGBD, junto con la base de datos y con los
usuarios, constituyen el Sistema de Base de Datos.
1.2 Sistemas de informacin para la gestin y para la ayuda
en la toma de decisiones
La aplicacin de los ordenadores en las empresas e instituciones
comenz con el tratamiento administrativo de sus datos
operacionales; es decir, los que son necesarios para llevar a cabo las
tareas de rutina (nmina, contabilidad, etc.).
Sin embargo, la
potencia de estas mquinas no poda permitir que se les confinase en
este campo, excesivamente limitado para sus posibilidades reales, y
el ordenador empez a intervenir en otros niveles de la empresa,
ayudando a la sistematizacin de las funciones de direccin y
constituyendo un elemento activo en el proceso de toma de
decisiones. Surgen as sistemas de informacin basados en el
ordenador, que tienen como principal objetivo mejorar el proceso de
informacin de la empresa logrando su mxima eficacia.
En toda organizacin se suele distinguir tres niveles de gestin
(operacional, tctico y estratgico), por lo que el SI estar compuesto
por tres subsistemas estructurados jerrquicamente y que se
corresponden con cada uno de estos tres niveles. En el plano
operacional, los usuarios necesitan datos puntuales (elementales)
que describan los sucesos que, de una forma u otra, caracterizan las
actividades de la organizacin, por lo que este subsistema de
informacin ser muy voluminoso. De l, mediante un proceso de
elaboracin adecuado (en general de agregacin), se podrn obtener
los datos necesarios (junto con los aportados desde el exterior) para
el funcionamiento de los otros dos subsistemas, cuyos usuarios
tienen unas exigencias muy distintas, y para los que tal volumen de
informacin no solamente sera inadecuado, sino peor an,
inoperante y contraproducente.

Los tres niveles de gestin se encuentran representados en la


siguiente figura, donde se puede observar que, mientras la
informacin se transmite en sentido ascendente, las rdenes y planes
se mueven en sentido descendente.

NIVEL ESTRATEGICO
-Elaboracin de planes
-Objetivos generales

NIVEL TACTICO
-Control de gestin
-Objetivos especficos

NIVEL OPERACIONAL
-Tareas administrativas

Ordenes y Planes

Informacin

Niveles de gestin de las organizaciones


A continuacin se presenta una tabla en donde se muestran las
caractersticas de la informacin que se necesita en los distintos tipos
de procesos que tienen lugar en las organizaciones. Se trata
fundamentalmente de dos clases de informacin, una a nivel
totalmente desagregado (microdatos), necesaria para los procesos
que se suelen denominar administrativos, como son las tareas diarias
y de rutina que corresponden al plano operacional, y otra de ayuda a
la decisin (tanto a nivel tctico como estratgico), que exige
prestaciones muy diferentes, en la que muchos datos han de estar
agregados (macrodatos) y cuya elaboracin es bastante ms
compleja.

TIPOS
DE
PROCE
SO
F
O
R
M
A
L
I
Z
A
B
L
E
S

REPETITIVOS

EXCEPCIONALES

TAREAS
ADMINISTRATIVAS

TAREAS ADMINISTRATIVAS DE
EXCEPCION

Caractersticas:
datos voluminosos
propios, elementales y
homogneos
pocas interrelaciones y
simples
muchas
salidas
normalizadas
procesos sencillos y
peridicos
predomina
el
tratamiento secuencial

Caractersticas:
datos no muy voluminosos
propios, elementales, as
como
agregados
y
homogneos
muchas interrelaciones
pocas salidas normalizadas
procesos complejos
pero
estructurados
tratamiento no secuencial y,
en general, interactivos
(Ejemplo: estadsticas, modelos,

y por lotes
(Ejemplo:
factura)

gestin de personal, etc.)


nmina,

NO
F
O
R
M
A
L
I
Z
A
B
L
E
S

AYUDA A LA DECISION
Caractersticas:
Datos muy poco voluminosos
Propios y ajenos
Agregados
y
muy
heterogneos
Muchas
interrelaciones
complejas
Pocas
salidas,
con
informacin
significativa,
oportuna
y
fcil
de
interpretar
Procesos
de
difcil
o
imposible estructuracin
Tratamiento no secuencial e
interactivo
(Ejemplo: creacin de una
nueva unidad de produccin)
Tipologa de los procesos de gestin

En un principio se atendieron las necesidades de informacin propias


del nivel administrativo, desarrollando aplicaciones distintas y
especficas que facilitaran cada una de las tareas de rutina. La
informacin para la ayuda a la decisin, en esta primera etapa, se
sola elaborar manualmente o, a veces, por programas diseados ad
hoc para resolver necesidades concretas y puntuales. Posteriormente,
y ante los graves problemas a que daba lugar este planteamiento, se
vio la necesidad de buscar nuevas soluciones, surgiendo la idea de
utilizar una base de datos comn que incorporara, sin redundancias
indeseables, la informacin necesaria para las distintas funciones.
Con este enfoque se trata de disponer de un SI integrado capaz de
dar respuesta tanto a las necesidades de gestin como de decisin.

1.3Sistemas de bases de datos y sus aplicaciones

Las bases de datos se usan ampliamente. Algunas de sus aplicaciones


representativas son:
Banca: para informacin de los clientes, cuentas, prstamos y
transacciones bancarias.
Lneas areas: para reservas e informacin de horarios. Las lneas
areas fueron de las primeras en usar las bases de datos de forma
distribuida geogrficamente.
Universidades: para informacin de los estudiantes, matrculas en
las asignaturas y cursos.
Transacciones de tarjetas de crdito: para compras con tarjeta de
crdito y la generacin de los extractos mensuales.
Telecomunicaciones: para guardar un registro de las llamadas
realizadas, generar las facturas mensuales, mantener el saldo de las
tarjetas telefnicas de prepago y apara almacenar informacin sobre
las redes de comunicaciones.
Finanzas: para almacenar informacin sobre compaas tenedoras,
ventas y compras de productos financieros, como acciones y bonos;
tambin para almacenar datos del mercado en tiempo real para
permitir a los clientes la compraventa en lnea y a la compaa la
compraventa automtica.
Ventas: para informacin de clientes, productos y compras.
Comercio en lnea: para los datos de ventas ya mencionados y para
el seguimiento de los pedidos Web, generacin de listas de
recomendaciones y mantenimiento de evaluaciones de productos en
lnea.
Produccin: para la gestin de la cadena de proveedores y para el
seguimiento de la produccin de artculos en las factoras,
inventarios en los almacenes y pedidos.
Recursos humanos: para informacin sobre los empleados, salarios,
impuestos sobre los sueldos y prestaciones sociales, y para la
generacin de las nminas.
Como muestra la lista, las bases de datos forman una parte esencial de
casi todas las empresas actuales.
Durante las ltimas cuatro dcadas del siglo veinte, el uso de las bases
de datos creci en todas las empresas. En los primeros das, muy pocas
personas interactuaban directamente con los sistemas de bases de
datos, aunque sin darse cuenta, s interactuaban indirectamente con
informes impresos como los extractos de las tarjetas de crdito, o

mediante agentes como los cajeros de los bancos y los agentes de


reservas de las lneas areas. Despus vinieron los cajeros automticos
y permitieron a los usuarios interactuar directamente con las bases de
datos. Las interfaces telefnicas con las computadoras (sistemas de
respuesta vocal interactiva) tambin permitieron a los usuarios tratar
directamente con las bases de datos la persona que llamaba poda
marcar un nmero y pulsar las teclas del telfono para introducir
informacin o para seleccionar opciones alternativas, para conocer las
horas de llegada o salida de los vuelos, por ejemplo, o para matricularse
de asignaturas en una universidad.
La revolucin de Internet a finales de los aos noventa aument
significativamente el acceso directo de los usuarios a las bases de datos.
Las organizaciones convirtieron muchas de sus interfaces telefnicas a
las bases de datos en interfaces Web, y dejaron disponibles en lnea
muchos servicios. Por ejemplo, cuando se accede a una librera en lnea
y se busca en una coleccin de libros o de msica, se est accediendo a
datos almacenados en una base de datos. Cuando se realiza un pedido
en lnea, el pedido se almacena en una base de datos. Cuan do se
accede al sitio Web de un banco y se consultan el estado de la cuenta y
los movimientos, la informacin se recupera del sistema de bases de
datos del banco. Cuando se accede a un sitio Web, puede que se
recupere informacin personal de una base de datos para seleccionar los
anuncios que se deben mostrar. Ms an, los datos sobre los accesos
Web pueden almacenarse en una base de datos.
As, aunque las interfaces de usuario ocultan detalles del acceso a las
bases de datos, y la mayora de la gente ni siquiera es consciente de
que estn interactuando con una base de datos, el acceso a las bases de
datos forma actualmente una parte esencial de la vida de casi todas las
personas.
La importancia de los sistemas de bases de datos se puede juzgar de
otra forma actualmente, los fabricantes de sistemas de bases de datos
como Oracle estn entre las mayores compaas de software del mundo,
y los sistemas de bases de datos forman una parte importante de la
lnea de productos de compaas ms diversificadas como Microsoft e
IBM.
1.4 Sistemas de bases de datos frente a los sistemas de
archivos

Si se hablara de sistemas en los que existe una proliferacin de ficheros,


especficos cada uno de ellos de una determinada aplicacin, se tendra
que, los datos se recogen varias veces y se encuentran repetidos en los
distintos archivos. Esta redundancia, adems de malgastar recursos,
origina a menudo divergencias en los resultados.
D1
f1

T1

R1

f2

T2

R2

f3

T3

R3

D2
D3
D4
D5

F6
f4

T4

R4

D6
f5

T5

R5

D7
DATOS
FICHEROS
TRATAMIENTOS
RESULTADOSOrganizacin clsica: Sistemas orientados al proceso
Los sistemas informticos de este tipo han sido llamados a veces
sistemas orientados hacia el proceso, debido a que en ellos se pone el
nfasis en los tratamientos que reciben los datos, los cuales se
almacenen en ficheros diseados para una determinada aplicacin. Las
aplicaciones se analizan e implantan con entera independencia unas de
otras, y los datos no se suelen transferir entre ellas, sino que se duplican
siempre que los correspondientes trabajos los necesitan.
Este planteamiento produce, adems de una ocupacin intil de
memoria secundaria, un aumento de los tiempos de proceso, al repetirse
los mismos controles y operaciones en los distintos ficheros. Pero ms
grave todava son las inconsistencias que a menudo se presentan en
estos sistemas, debido a que la actualizacin de los mismos datos,
cuando se encuentran en ms de un fichero, no se suele realizar de
forma simultnea en todos ellos.

Por otra parte, la dependencia de los datos respecto al soporte fsico y a


los programas da lugar a una falta de flexibilidad y de adaptabilidad
frente a los cambios que repercute muy negativamente en el
rendimiento de conjunto del sistema informtico.
Los problemas son an ms acusados cuando se presentan demandas
inesperadas de informacin o cuando los directivos pretenden tener un
verdadero sistema de informacin orientado a la toma de decisiones, lo
que es inalcanzable con estas aplicaciones diseadas de forma estanca,
que las hace totalmente inoperantes fuera del contexto para el que
fueron concebidas.
De este anlisis se deduce claramente la necesidad de una gestin ms
racional del conjunto de datos, surgiendo as un nuevo enfoque que se
apoya sobre una base de datos, en la cual los datos son recogidos y
almacenados una sola vez, con independencia de los tratamientos.

D
1
D
2

DEPURACION

ACTUALIZACI
ON

D
3
D
4
D
5

DEPURACIO
N

R2

B.D.

ALMACENAMI
ENTO

DATOS
CREACION Y ACTUALIZACION
TRATAMIENTOS
RESULTADOS

R1

TRATAMIENT
O

R3

RECUPERACION Y

Organizacin en B.D.: Sistemas orientados a los datos

Se ve por tanto, que la solucin de los problemas asociados al


tratamiento de los datos en los sistemas tradicionales lleva a un cambio
radical en el enfoque del sistema de informacin, en el cual los datos se
organizan y se mantienen en un conjunto estructurado que no est
diseado para una aplicacin concreta, sino que, por el contrario, tiende

a satisfacer las necesidades de informacin de toda la organizacin;


necesidades cuya diversidad se ve acentuada en el transcurso del
tiempo.
Estos sistemas orientados hacia los datos van sustituyendo a los
sistemas orientados hacia el proceso que, por su poca fiabilidad, falta de
adecuacin a la realidad y mal asegurada confidencialidad, han ido
perdiendo de forma progresiva la confianza de los usuarios.
Ventajas e inconvenientes de las bases de de datos frente a los
ficheros clsicos
Las bases de datos, surgidas como respuesta al nuevo planteamiento de
los sistemas orientados hacia los datos para mejorar la calidad de las
prestaciones de los sistemas informticos y aumentar su rendimiento,
presentan una multitud de ventajas frente a los sistemas clsicos de
ficheros.
Se debe, sin embargo, sealar, para que nadie se sienta defraudado por
el fracaso de algn proyecto de este tipo, que las bases de datos no son
la panacea universal que soluciona todos los problemas que la
informacin plantea a las empresas. Las bases de datos son un
instrumento, que supone un distinto enfoque en la gestin de datos, y su
xito o su fracaso estar condicionado por el uso que de ellas sepamos
hacer, no slo los tcnicos, sino tambin los directivos.
Las ventajas de los sistemas de bases de datos son, entre otras, las
siguientes:

A) Independencia de los datos respecto a los tratamientos y


viceversa
La mutua independencia de datos y tratamientos lleva a que un cambio
de estos ltimos no imponga un nuevo diseo de la base de datos. Por
otra parte, la inclusin de nuevas informaciones, desaparicin de otras,
cambios en la estructura fsica o en los caminos de acceso, etc., no
deben obligar a alterar los programas. Esta independencia de los
tratamientos frente a la estructura de la base de datos, supone una
considerable ventaja, al evitar el importante esfuerzo que origina la
reprogramacin de las aplicaciones cuando se producen cambios en los
datos.

La flexibilidad que proporciona la independencia de los datos y


programas es muy importante para conseguir sin excesivos costes la
continua adaptacin del sistema de informacin a la evolucin de las
organizaciones. Aunque en la prctica dicha independencia nunca es
absoluta, los sistemas de gestin de bases de datos actuales van
respondiendo cada vez mejor a las exigencias de los usuarios relativas a
la independencia y flexibilidad de los datos.
B) Coherencia de los resultados
Debido a que la informacin de la base de datos se recoge y almacena
una sola vez, en los tratamientos se utilizan los mismos datos, por lo que
los resultados de todos ellos son coherentes y perfectamente
comparables. Adems, al no existir (o al menos disminuir en gran
medida) la redundancia en los datos, desaparece el problema que se
presentaba en el enfoque clsico de que el cambio de un dato obligaba a
actualizar una serie de ficheros. De esta forma se elimina tambin el
inconveniente de las divergencias en los resultados debidas a
actualizaciones no simultneas en todos los ficheros.
C) Mejor disponibilidad de los datos para el conjunto de los
usuarios
Cuando se aplica la metodologa de bases de datos, cada usuario ya no
es propietario de los datos, puesto que stos se comparten entre el
conjunto de aplicaciones, existiendo una mejor disponibilidad de los
datos para todos los que tienen necesidad de ellos, siempre que estn
autorizados para su acceso. Hay tambin una mayor transparencia
respecto a la informacin existente, ya que todos los datos que se
encuentran en la base se deben relacionar en un catlogo o diccionario
que puede ser ampliamente difundido y accedido por medios
informticos.
D) Mayor valor informativo
Puesto que la base de datos ha de ser reflejado del mundo real, en ella
se recogen las interrelaciones entre los datos, por lo que el valor
informativo del conjunto es superior a la suma del valor informativo de
los elementos individuales que lo constituyen; es decir, acta el efecto
de sinergia.
E) Mejor y ms normalizada documentacin de la informacin, la
cual est integrada con los datos

En el enfoque clsico los datos se encuentran separados de su contenido


semntico; los primeros se almacenan en ficheros y su descripcin se
hace mediante un lenguaje de programacin que se encuentra en los
programas. La documentacin de los datos, realizada por el analista o
programador, es en general insuficiente, y a veces incluso inexistente.
Adems, por lo comn, la estandarizacin brilla por su ausencia. Este
problema se atena en gran medida en las bases de datos, ya que en la
misma base se incluyen no slo los datos, sino tambin la semntica de
los mismos.
F) Mayor eficiencia recogida, validacin e introduccin de los
datos en el sistema
Al no existir apenas redundancias, los datos se recogen y validan una
sola vez, aumentando as el rendimiento de todo el proceso previo al
almacenamiento.
G) Reduccin del espacio de almacenamiento
La desaparicin (o disminucin) de las redundancias, as como la
aplicacin de tcnicas de compactacin, lleva en los sistemas de bases
de datos a una menor ocupacin de almacenamiento secundario. Se ha
de tener presente, sin embargo, que los elementos del sistema
(diccionario, referencias, punteros, ficheros invertidos, etc.) ocupan
bastante espacio.

Como se ha sealado anteriormente, las bases de datos no slo


presentan ventajas, sino que tambin tienen posibles inconvenientes
que es necesario valorar antes de tomar una decisin relativa a un
cambio de orientacin del SI. Entre estos inconvenientes es preciso
destacar:
A) Instalacin costosa
La implantacin de un sistema de bases de datos puede llevar consigo
un coste elevado, tanto en equipo fsico (nuevas instalaciones o
ampliaciones), como el lgico (sistemas operativos, programas,
compiladores, etc. Necesario para su uso), adems del mismo coste de
adquisicin y mantenimiento del SGBD.
B) Personal especializado

Los conocimientos, que resultan imprescindibles para una utilizacin


correcta y eficaz y sobre todo para el diseo y administracin de las
bases de datos, implican una necesidad de personal especializado.
C) Implantacin larga y difcil
Debido a las causas apuntadas anteriormente, la implantacin de una
base de datos puede convertirse en una tarea larga y laboriosa. Las
dificultades que van apareciendo a lo largo de su desarrollo llevan en
general a que se superen ampliamente los plazos inicialmente previstos.

D) Falta de rentabilidad a corto plazo


La implantacin de un sistema de bases de datos, tanto por coste en
personal y en equipos como por el tiempo que tarda en estar operativo,
no resulta rentable a corto plazo, sino a medio o incluso, a largo plazo.
E) Escasa estandarizacin
Un problema muy importante que se pone de manifiesto en el momento
de la creacin de una base de datos, es la falta de estandarizacin que
facilite a los usuarios el manejo de los sistemas de bases de datos.
Empieza, sin embargo, a observarse ya una preocupacin por este tema,
y van apareciendo estndares, tanto de iure como de facto, sobre todo
en el campo de las bases de datos relacionales (SQL), y actualmente
tambin en las bases de datos orientadas al objeto (ODMG-93 y SQL3).

Existe un evidente riesgo de frustracin por parte de los directivos y


usuarios de sistemas de bases de datos que puede hacer olvidar las
grandes posibilidades reales que estos sistemas nos ofrecen. Las bases
de datos no constituyen nicamente una nueva tecnologa, ms o menos
avanzada, pero tecnologa al fin y al cabo, sino que nacen de una
concepcin distinta del SI, por lo que han de tener una influencia
decisiva en las estructuras y organizacin de su entorno. Si esto no se
tiene bien presente, muchas de las posibles ventajas de las bases de
datos no se harn realidad y, en cambio, se acentuarn sus
inconvenientes y problemas.
1.5 Los distintos niveles de abstraccin de una base de datos.

Se puede observar en los SI la existencia de dos estructuras distintas, la


lgica (vista del usuario) y la fsica (forma en que se encuentran los
datos en el almacenamiento). En las bases de datos aparece un nuevo
nivel de abstraccin que se ha denominado de diversas maneras: nivel
conceptual, lgico global, etc. Esta estructura intermedia pretende una
representacin global de los datos que se interponga entre las
estructuras lgica y fsica de la arquitectura a dos niveles, siendo
independiente, tanto del equipo como de cada usuario en particular.

B C

ESTRUCTURA

LOGICA

DE

USUARIO
- esquema externo-

ESTRUCTURA LOGICA
GLOBAL
-esquema conceptual-

A
B
D

ESTRUCTURA FISICA
-esquema interno-

G
E

Las tres estructuras de los sistemas de bases de datos

La estructura lgica de usuario o esquema externo es la visin que tiene


de la base de datos cada usuario en particular; la estructura lgica
global (tambin denominada esquema conceptual) responde al enfoque
del conjunto de las empresas y la estructura fsica (o esquema interno)
es la forma en que se organizan los datos en el almacenamiento fsico.
La estructura de una base datos en estos tres niveles de abstraccin
tiene como principal objetivo conseguir la independencia entre datos y
aplicaciones.
ESTRUCTURA LOGICA DE USUARIO: ESQUEMA EXTERNO
Debido a que un esquema externo es la visin que de la base de datos
tiene un usuario en particular, en l debern encontrarse reflejados slo
aquellos datos e interrelaciones que necesite el correspondiente usuario.
Tambin habrn de especificarse las restricciones de uso, como puede
ser el derecho a insertar o borrar determinados datos o el acceso a los
mismos, etc. Asimismo, y aunque esto no sea lo ms conveniente, ya
que indica una dependencia fsico-lgica, puede que parezcan en este
nivel los caminos de acceso a los datos, hecho que depender en gran
medida del modelo de datos en el que se apoya el correspondiente
SGBD; en el modelo relacional los caminos de acceso slo se encuentran
en el nivel interno, no siendo nunca visibles por los usuarios.
Habr tantos esquemas externos como exijan las diferentes
aplicaciones. Un mismo esquema externo podr ser utilizado por varias
aplicaciones.
ESTRUCTURA LOGICA GLOBAL: ESQUEMA CONCEPTUAL
En el esquema conceptual, por ser la visin global de los datos, deber
incluirse la descripcin de todos los datos e interrelaciones entre stos,
as como las restricciones de integridad y de confidencialidad. La
estabilidad de estos conceptos disminuye en el orden en que se han
citado. As, las restricciones de confidencialidad sern menos estables
que las de integridad, y stas, a su vez, sern menos estables que las
interrelaciones o que los datos. Por esta razn, algunos autores
proponen que este esquema se divida en varios, uno para cada
concepto, de modo que, por ejemplo, un cambio en las restricciones no
lleve consigo a una nueva definicin de todo el esquema.
ESTRUCTURA FISICA: ESQUEMA INTERNO

Aunque el contenido del esquema interno depende mucho de cada


SGBD, podemos distinguir tres clases de aspectos de aspectos que
deben especificarse en l.
a) Estrategia de almacenamiento
En este apartado se incluye la asignacin de espacios de
almacenamiento para el conjunto de datos. Tambin deber indicarse la
estrategia de emplazamiento de los datos que ha sido utilizada para
optimizar tiempos de respuesta y espacio de memoria secundaria; por
ltimo debern aparecer aspectos como el tratamiento de los
desbordamientos, etc.
b) Caminos de acceso
Se incluye en los caminos de acceso la especificacin de claves, as
como la de ndices y punteros.
c) Miscelnea
Adems de los aspectos citados, habra que incluir, en el esquema
interno, otros varios, como tcnicas de compresin de datos, de
criptografiado, la correspondencia entre esquemas internos y esquema
conceptual, tcnicas de ajuste o afinamiento (tunning), optimizacin,
etc.
El administrador de la base de datos habr de especificar:
Dispositivos de memoria: Tamao de la pgina, nmero de pginas
asignadas a cada rea de almacenamiento, tamao de las reas de
entrada/salida (buffers), etc.
Correspondencia entre esquemas (mapping): Por omisin, se suele
suponer que existe una correspondencia uno a uno entre los registros
del esquema conceptual y los registros almacenados; en caso contrario,
el administrador debe indicar la relacin existente entre ellos.
Organizaciones fsicas: Para mejorar la recuperacin y los tiempos de
acceso, el sistema debe dar facilidades para que el administrador defina
el tipo de organizacin (dispersin-hashing-agrupamientos, ndices, etc.)
que considere ms adecuada a fin de lograr la mxima eficiencia;
dependiendo del SGBD podr tambin definir punteros entre registros,
privilegiando as determinados caminos de acceso.
1.6 Usuarios y administradores de la base de datos
La base de datos, como depsito nico de datos para toda la
organizacin, debe ser capaz de integrar los distintos subsistemas y
aplicaciones atendiendo a las necesidades de los usuarios de los tres
niveles de la organizacin (operacional, tctico y estratgico), siendo el

SGBD el que suministra la interfaz entre en conjunto de los datos y los


usuarios.
FIG. PAG 36
NIVEL ESTRATEGICO
Elaboracin de planes

Base

Objetivos generales

NIVEL TACTICO

Control de gestin

Objetivos especficos

NIVEL OPERACIONAL

Comn
De
Datos

Tareas administrativas

rdenes y planes
Informacin
Los distintos tipos de usuarios de una base de datos pueden clasificarse
en usuarios informticos y usuarios finales.
A) Usuarios informticos
Tienen a su cargo las tareas de creacin y mantenimiento de la base de
datos, as como la realizacin de los procedimientos y programas que
necesiten los usuarios finales. Entre ellos se puede distinguir:
A1) Diseadores
Tienen la responsabilidad de identificar los datos que han de estar
contenidos en la base de datos, de acuerdo con las necesidades que les
manifiesten los usuarios, as como determinar las estructuras ms
apropiadas para conseguir satisfacer estas necesidades.
Segn la fase en que intervengan los diseadores, es posible distinguir:
Diseadores lgicos:
Deben ser capaces de determinar qu tipos de datos han de estar
contenidos en la base y conseguir plasmar el punto de vista del conjunto
de usuarios en las estructuras lgicas ms adecuadas para stos. Para
ello, deben mantener constantes entrevistas con los usuarios (incluida la
direccin) a fin de que la base de datos represente lo ms fielmente
posible el mundo real que se trata de recoger. Es decir, los diseadores
lgicos deben perseguir un objetivo de eficacia de la base de datos.

Eficacia: Grado en que se cumplen los objetivos del sistema; es, en


cierto modo, una medida referida a las relaciones externas del sistema
con otro del que forma parte integrante.
Diseadores fsicos:
Su objetivo es transformar las estructuras lgicas en estructuras fsicas
que proporcionen la mayor eficiencia de cara a la mquina, minimizando
el tiempo de respuesta y el consumo de recursos, es decir, optimizar el
ratio coste/beneficio. Muchas veces esta funcin es asumida por el
administrador.
A2) Administradores
El uso compartido de recursos, propio de una base de datos, obliga a la
existencia de un administrador, cuya misin es la vigilancia y gestin de
los datos. El principal recurso en una base de datos son los datos, y el
administrador debe velar para que stos no se destruyan ni se
contaminen, perdiendo su confidencialidad, disponibilidad e integridad.
Por ello, el administrador debe impedir consultas o actualizaciones no
autorizadas y proteger la base de datos contra fallos del equipo
ecolgico o fsico. Ser el responsable, por tanto, de establecer el
sistema de autorizaciones de acceso y deber coordinar y controlar su
uso.
Tambin el administrador tendr a su cargo la gestin de otros recursos
distintos de los datos, como pueden ser el SGBD y otras herramientas
relacionadas con el mismo. Deber ocuparse del buen funcionamiento
de todo el sistema, sin que se produzcan paradas y de modo que se
proporcionen los tiempos adecuados de respuesta.
En muchas organizaciones es la misma persona o grupo de personas las
que tienen a su cargo las funciones de diseo y de administracin,
aunque se trata de papeles muy distintos que convendra diferenciar
claramente.
A3) Analistas y programadores
Los analistas y programadores tienen a su cargo el anlisis y la
programacin de las tareas que no pueden ser llevadas a cabo por los
usuarios finales, para lo cual han de desarrollar distintos procedimientos
y programas que ponen a disposicin de los usuarios finales a fin de
facilitarles su trabajo.
B) Usuarios finales

Los usuarios finales son aquellos que tienen que acceder a los datos
porque los necesitan para llevar a cabo su actividad. A diferencia de los
usuarios informticos, su inters suele estar concentrado en el contenido
de la base de datos, es decir, en los datos. Existen tambin distintas
clases de usuarios finales.
B1) Habituales
Suelen hacer consultas y/o actualizaciones en la base de datos como
parte habitual de su trabajo. Utilizan en general mens previamente
preparados por analistas y/o programadores, de forma que se facilite su
interrelacin en el ordenador. En otros casos pueden usar lenguajes
sencillos para el acceso a la base de datos, as como paquetes de
programas.
Es preciso distinguir, dentro de este grupo, a los operadores de entrada
de datos, cuya labor consiste en actualizar la base de datos para lo que
se les prepara mens de actualizacin, aunque con la diferencia
respecto a otros usuarios habituales de que tienen exigencias muy
estrictas respecto a los tiempos de respuesta, adems de no estar
interesados en la informacin contenida en la base de datos.
B2) Espordicos
Es un tipo de usuarios muy parecido al anterior en la medida en que
necesitan el ordenador a fin de que les preste una ayuda en su trabajo,
pero en cambio no lo utilizan habitualmente porque el tipo de actividad
que realizan no lo exige. Son, por tanto, usuarios a los que se les tiene
que suministrar herramientas sencillas y, en general, potentes, ya que
en bastantes casos as lo exige la clase de tareas que han de llevar a
cabo; tareas que, en muchas ocasiones, no son fcilmente formalizables,
por lo que no pueden ser atendidas por medio de mens.

En resumen, se puede decir que la finalidad de un SGBD es establecer


las adecuadas interfaces entre los diferentes tipos de usuarios y la base
de datos.
1.7 Componentes de los sistemas de bases de datos
Concepto y principales funciones de un SGBD
Se puede definir el Sistema de Gestin de la Base de Datos (SGBD)
como un conjunto coordinado de programas, procedimientos, lenguajes,

etc. que suministra a los distintos tipos de usuarios los medios


necesarios para describir y manipular los datos almacenados en la base,
garantizando su seguridad.
Si se tiene en cuenta que, en una base de datos existe una gran
variedad de usuarios, con necesidades diversas y variables a lo largo del
tiempo, los cuales son susceptibles a trabajar simultneamente con
subconjuntos de esta coleccin de datos, se pone de manifiesto que es
imprescindible dotar al sistema de la adecuada flexibilidad para que
pueda atender las exigencias de todos los usuarios y para que sea capaz
de responder a los posibles cambios a un coste no excesivo. Es decir, el
SGBD ha de estar diseado de forma que las ventajas que se han
sealado como propias de las bases de datos constituyan una realidad.
Las operaciones tpicas que debe realizar un SGBD pueden resumirse en
aquellas que afectan a la totalidad de los datos (o a todos los registros
de un determinado tipo) y las que tienen lugar sobre registros concretos.
A)

B)

SOBRE EL CONJUNTO DE LA BASE


Creacin
Reestructuracin
Consulta a la totalidad
SOBRE REGISTROS CONCRETOS
Insercin
Borrado
Actualizacin
Modificacin
Consulta selectiva

Las funciones esenciales de un SGBD


manipulacin y control (o utilizacin).

son

las

de

descripcin,

La funcin de definicin (tambin llamada de descripcin) debe permitir


al diseador de la base especificar los elementos de datos que la
integran, su estructura y las relaciones que existen entre ellos, las reglas
de integridad semntica, etc., as como las caractersticas de tipo fsico y
las vistas lgicas de los usuarios.
En lo que respecta a la funcin de manipulacin, una vez descrita la
base de datos, es preciso cargar los datos en las estructuras
previamente creadas, con lo que la base de datos estar ya dispuesta
para su utilizacin. Los usuarios tendrn necesidad de recuperar la
informacin (consultar la base de datos), o bien de actualizarla porque
se hayan producido cambios en los datos.

La funcin de control rene todas las interfaces que necesitan los


diferentes usuarios para comunicarse con la base y proporciona un
conjunto de procedimientos para el administrador.
A continuacin, se presenta un cuadro con las funciones esenciales de
un SGBD.
DESCRIPCION
Permite describir:
- Los elementos de datos con
o Su estructura
o Sus interrelaciones
o Sus validaciones
A tres niveles:
-

Externo
Lgico Global
Interno

Mediante un Lenguaje de Definicin de Datos (LDD)


MANIPULACION
Permite:

Buscar
Aadir
Suprimir
Modificar

datos de la base

Mediante un Lenguaje de Manipulacin de Datos (LMD)


Lo cual supone:
-

Definir un criterio de seleccin (responsabilidad del


usuario)
Definir la estructura externa a recuperar (responsabilidad
del usuario)
Acceder a la estructura fsica (responsabilidad del
sistema)

CONTROL
- Rene las interfaces de los usuarios

- Suministra procedimientos para el administrador

UNIDAD III. MODELO RELACIONAL


3.1 El modelo relacional

El modelo relacional es hoy en da el principal modelo de datos para las


aplicaciones comerciales de procesamiento de datos. Ha conseguido esa
posicin destacada debido a su simplicidad, lo cual facilita el trabajo del
programador en comparacin con los modelos anteriores, como de red y
jerrquico.
3.1.1 La estructura de las bases de datos relacionales
Una base de datos relacional consiste en un conjunto de tablas, a cada
una de las cuales se le asigna un nombre exclusivo. Cada fila de la tabla
representa una relacin entre un conjunto de valores. De manera
informal, cada tabla es un conjunto de entidades, y cada fila es una
entidad. Dado que cada tabla es un conjunto de tales relaciones, hay
una fuerte correspondencia entre el concepto de tabla y el concepto
matemtico de relacin, del que toma su nombre el modelo de datos
relacional. A continuacin se introduce el concepto de relacin.
Estructura bsica
Considrese la tabla cuenta de la figura 3.1. Tiene tres cabeceras de
columna: nmero_cuenta, nombre_sucursal y saldo. Siguiendo la
terminologa del modelo relacional, se puede hacer referencia a estas
cabeceras como atributos. Para cada atributo hay un conjunto de
valores permitidos, denominados dominio de ese atributo. Para el
atributo nombre_sucursal, por ejemplo, el domino es el conjunto de
todos los nombres de sucursal. Supngase que D 1 denota el conjunto de
todos los nmeros de cuenta, D2 el conjunto de todos los nombres de
sucursal y D3 el conjunto de todos los saldos. Todas las filas de cuenta
deben consistir en una tupla (v1,v2,v3), donde v1 es un nmero de cuenta
(es decir, v1 est en el dominio D 1), v2 es un nombre de sucursal (v 2 en
D2) y v3 es un saldo (v3 en D3). En general, cuenta slo contendr un
subconjunto de conjuntos de todas las filas posibles. Por tanto, cuenta
ser un subconjunto de
D1 X D2 X D3
nmero_cue
nta
C-101
C-102
C-201
C-215
C-217
C-222
C-305

nombre_sucu
rsal
Centro
Navacerrada
Galapagar
Becerril
Galapagar
Moralzarzal
Collado
Mediano

sald
o
500
400
900
700
750
700
350

Figura 3.1 La relacin cuenta.


En general, una tabla de n atributos debe ser un subconjunto de
D1 X D2 X. . . Dn-1 X Dn
Los matemticos definen las relaciones como subconjuntos del
producto cartesiano de la lista de dominios. Esta definicin corresponde
de manera casi exacta con la definicin de tabla dada anteriormente. La
nica diferencia es que aqu se han asignado nombres de los atributos,
mientras que los matemticos slo usan nombres numricos, usando
el entero 1 para denotar el atributo cuyo dominio aparece en primer
lugar de la lista de dominios, 2 para el atributo cuyo dominio aparece en
segundo lugar, etc. Como las tablas son, esencialmente, relaciones, se
usarn los trminos matemticos relacin y tupla en lugar de los
trminos tabla y fila. Una variable tupla es una variable que representa
una tupla; en otras palabras, una variable tupla es una variable cuyo
dominio es el conjunto de todas las tuplas.
En la relacin cuenta de la figura 3.1 hay siete tuplas. Supngase que la
variable tupla t hace referencia a la primera tupla de la relacin. Se usa
la notacin t[nmero_cuenta] para denotar el valor de t en el atributo
nmero_cuenta.
Por
tanto,
t[nmero_cuenta]=C-101
y
t[nombre_sucursal]=Centro. De manera alternativa, se puede escribir
t[1] para denotar el valor de la tupla en el primer atributo
nmero_cuenta, t[2] para denotar nombre_sucursal, etc. Dado que las
relaciones son conjuntos de tuplas, se usa la notacin matemtica t r
para denotar que la tupla t est en la relacin r.
El orden en que aparecen las tuplas en cada relacin es irrelevante,
dado que una relacin es un conjunto de tuplas, por tanto, no importa si
las tuplas de una relacin aparecen ordenadas, como en la figura 3.1, o
desordenadas como en la figura 3.2; las relaciones de las dos figuras son
la misma, ya que los dos contienen el mismo conjunto de tuplas.

nmero_cue
nta
C-101
C-215
C-102
C-305
C-201
C-222
C-217

nombre_sucu
rsal
Centro
Becerril
Navacerrada
Collado
Mediano
Galapagar
Moralzarzal
Galapagar

sald
o
500
700
400
350
900
700
750

Figura 3.2 La relacin cuenta con las tuplas desordenadas.

Se exige que, para todas las relaciones r, los dominios de todos los
atributos de r sean atmicos. Un dominio es atmico si los elementos
del dominio se consideran unidades indivisibles. Por ejemplo, el conjunto
de los enteros es un dominio atmico, pero el conjunto de todos los
conjuntos de enteros es un dominio no atmico. La diferencia es que no
se suele considerar que los enteros tengan partes constituyentes, pero s
se considera que los conjuntos de enteros las tienen; por ejemplo, los
enteros que forman cada conjunto. Lo importante no es lo que sea el
propio dominio, sino la manera en que se usan los elementos del
dominio en la base de datos. El dominio de todos los enteros sera no
atmico si se considerara que cada entero es una lista ordenada de
cifras. En todos los ejemplos se supondr que los dominios son atmicos.
Es posible que varios atributos tengan el mismo dominio. Por ejemplo,
supngase la relacin cliente con los tres atributos nombre_cliente,
calle_cliente y ciudad_cliente y una relacin empleado con el atributo
nombre_empleado. Es posible que los atributos nombre_cliente y
nombre_empleado tengan el mismo dominio, el conjunto de todos los
nombres de persona, que en el nivel fsico es el conjunto de todas las
cadenas de caracteres. Los dominios de saldo y nombre_sucursal, por
otra parte, deberan ser distintos. Quiz sea menos evidente si
nombre_cliente y nombre_sucursal deberan tener el mismo dominio. En
el nivel fsico, tanto los nombres de los clientes como los nombres de las
sucursales son cadenas de caracteres. Sin embargo, en el nivel lgico
puede que se desee que nombre_cliente y nombre_sucursal tengan
dominios diferentes.
Un valor de dominio que es miembro de todos los dominios posibles es
el valor nulo, que indica que el valor es desconocido o no existe. Por
ejemplo, supngase que se incluye el atributo nmero_telfono, o que
su nmero de telfono no figure en la gua. Entonces habr que recurrir
a los valores nulos para indicar que el valor es desconocido o no existe.
Ms adelante se ver que los valores nulos crean algunas dificultades
cuando se tiene acceso a la base de datos o se la actualiza y que, por
tanto, deben eliminarse si es posible. Se supondr inicialmente que no
hay valores nulos.
Esquema de la base de datos

Cuando se habla de bases de datos se debe diferenciar entre el


esquema de la base de datos, que es el diseo lgico de la misma, y
el ejemplar de la base de datos, que es una instantnea de los datos
de la misma en un momento dado.
El concepto de relacin se corresponde con el concepto de variable de
los lenguajes de programacin. El concepto de esquema de la relacin
se corresponde con el concepto de definicin de tipos de los lenguajes
de programacin.
Resulta conveniente dar nombre a los esquemas de las relaciones, igual
que se dan nombres a las definiciones de los tipos en los lenguajes de
programacin. Se adopta el convenio de usar nombres en minsculas
para las relaciones y nombres que comiencen por una letra mayscula
para los esquemas de relaciones. Siguiendo esta notacin se usar
Esquema_cuenta para denotar el esquema de la relacin cuenta. Por
tanto,
Esquema_cuenta = (nmero_cuenta, nombre_sucursal, saldo)
Se denota el hecho de que cuenta es una relacin de Esquema_cuenta
mediante
cuenta(Esquema_cuenta)
En general, los esquemas de las relaciones consisten en una lista de los
atributos y de sus dominios correspondientes. La definicin exacta del
dominio de cada atributo no ser relevante hasta que se estudie el
lenguaje SQL.
El concepto de ejemplar de la relacin se corresponde con el
concepto de valor de una variable en los lenguajes de programacin. El
valor de una variable dada puede cambiar en el tiempo; de manera
parecida, el contenido del ejemplar de una relacin puede cambiar con
el tiempo cuando la relacin se actualiza. Sin embargo, se suele decir
simplemente relacin cuando realmente se quiere decir ejemplar de
la relacin.
Como ejemplo de ejemplar de una relacin, considrese la relacin
sucursal de la figura 3.3. El esquema de la relacin es

nombre_sucursal ciudad_sucurs
al
Becerril
Aluche
Centro

Arganzuela

activos
400.00
0
9.000.0

Collado Mediano
Galapagar
Moralzarzal
Navacerrada
Navas de la
Asuncion
Segovia

00
Aluche
8.000.0
00
Arganzuela
7.100.0
00
La Granja
2.100.0
00
Aluche
1.700.0
00
Alcal
de 300.00
Henares
0
Cerceda
3.700.0
00

Figura 3.3 La relacin sucursal.


Obsrvese que el atributo nombre_sucursal aparece tanto en
Esquema_sucursal como en Esquema_cuenta. Esta duplicidad no es una
coincidencia. Ms bien, usar atributos comunes en los esquemas de las
relaciones es una manera de relacionar las tuplas de relaciones
diferentes. Por ejemplo, supngase que se desea obtener informacin
sobre todas las cuentas abiertas en sucursales ubicadas en Arganzuela.
Primero se busca en la relacin sucursal para encontrar los nombres de
todas las sucursales situadas en Arganzuela. A continuacin y para cada
una de ellas, se examina la relacin cuenta para encontrar la
informacin sobre las cuentas abiertas en esa sucursal.
Siguiendo con el ejemplo bancario, se necesita una relacin que
describa informacin sobre los clientes. El esquema de la relacin es:
Esquema_cliente = (nombre_cliente, calle_cliente, ciudad_cliente)
La figura 3.4 muestra un ejemplo de la relacin cliente
(Esquema_cliente). Obsrvese que se ha omitido el atributo id_cliente,
ya que por el momento se consideran esquemas de relacin pequeos.
Se da por supuesto que el nombre de cliente identifica unvocamente a
cada cliente obviamente, puede que esto no sea cierto en el mundo
real, pero la suposicin hace los ejemplos ms sencillos de entender. En
una base de datos del mundo real, id_cliente (que podra ser
nmero_seguridad_social o un identificador generado por el banco)
servir para identificar unvocamente a los clientes.
Tambin se necesita una relacin que describa la asociacin entre los
clientes y las cuentas. El esquema de la relacin que describe esta
asociacin es:

Esquema_impositor = (nombre_cliente, nmero_cuenta)

nombre_cliente

calle_cliente

Abril
Amo

Preciados
Embajadores

Badorrey
Fernndez
Gmez
Gonzlez
Lpez
Prez
Rodrguez
Ruprez
Santos
Valdivieso

Delicias
Jazmn
Carretas
Arenal
Mayor
Carretas
Yeseras
Ramblas
Mayor
Goya

Ciudad_cli
ente
Valsan
Arganzuel
a
Valsan
Len
Cerceda
La Granja
Peregrinos
Cerceda
Cdiz
Len
Peregrinos
Vigo

Figura 3.4 La relacin cliente.

nombre_client
e
Abril
Gmez
Gonzlez
Gonzlez
Lpez
Ruprez
Santos

nmero_cuenta
C-305
C-215
C-101
C-201
C-102
C-222
C-217

Figura. 3.5 La relacin impositor.


La
figura
3.5
muestra
impositor(Esquema_impositor).

un

ejemplo

de

la

relacin

Puede parecer que para este ejemplo se podra tener slo un esquema
de relacin, en vez de tener varios. Es decir, puede resultar ms sencillo
para el usuario pensar en trminos de un nico esquema de relacin, en
lugar de varios esquemas. Supngase que slo se usara una relacin
para el ejemplo, con el esquema

(nombre_sucursal, ciudad_sucursal, activos, nombre_cliente,


calle_cliente, ciudad_cliente, nmero_cuenta, saldo)
Obsrvese que si un cliente tiene varias cuentas, hay que repetir su
direccin una vez por cada cuenta. Es decir, hay que repetir varias veces
parte de la informacin. Esta repeticin malgasta espacio, pero se evita
mediante el empleo de varias relaciones mostradas anteriormente.
Adems, si una sucursal no tiene ninguna cuenta (por ejemplo, una
sucursal recin abierta que todava no tiene clientes), no se puede
construir una tupla completa en la relacin nica anterior, dado que
todava no hay ningn dato disponible referente a cliente ni a cuenta.
Para representar las tuplas incompletas hay que usar valores nulos que
indiquen que ese valor es desconocido o no existe. Por tanto, en el
ejemplo presente, los valores de nombre_cliente, calle_cliente, etc.,
deben ser nulos. Al emplear varias relaciones se puede representar la
informacin de las sucursales del banco sin clientes sin necesidad de
valores nulos. Se usa simplemente una tupla en Esquema_sucursal para
representar la informacin de la sucursal, y slo se crean tuplas en los
otros esquemas cuando est disponible la informacin correspondiente.
Se incluyen dos relaciones ms para describir para describir los datos de
los prstamos concedidos en las diferentes sucursales del banco.
Esquema_prstamo
importe)

(nmero_prstamo,

nombre_sucursal,

Esquema_prestatario = (nombre_cliente, nmero_prstamo)


Las figuras 3.6 y 3.7, respectivamente, muestran las relaciones de
ejemplo
prstamo
(Esquema_prstamo)
y
prestatario(Esquema_prestatario).
Obsrvese que la relacin ya puede contener informacin sobre clientes
que no tengan ni cuenta ni prstamo en el banco. La entidad bancaria
aqu descrita servir como ejemplo principal en este apartado. Cuando
sea necesario, habr que introducir ms esquemas de relaciones para
ilustrar casos concretos.
Claves
Es necesario disponer de un modo de especificar la manera en que las
tuplas de una relacin dada se distingan entre s. Esto se expresa en
trminos de sus atributos. Es decir, los valores de los atributos de una
tupla deben ser tales que puedan identificarla

nmero_prs

nombre_suc

Impo

tamo
P-11
P-14
P-14
P-16
P-17
P-23
P-93

ursal
Collado
Mediano
Centro
Navacerrad
a
Navacerrad
a
Centro
Moralzarzal
Becerril

rte
900
1.500
1.500
1.300
1.000
2.000
500

Figura 3.6 La relacin Prstamo.

unvocamente. En otras palabras, no se permite que dos tuplas de una


misma relacin tengan exactamente los mismos valores en todos sus
atributos.
Una superclave es un conjunto de uno o varios atributos que,
considerados conjuntamente, permiten identificar de manera unvoca
una tupla de la relacin. Por ejemplo, el atributo id_cliente de la relacin
cliente es suficiente para distinguir una tupla cliente de otra. Por tanto,
id_cliente es una superclave. De manera parecida, la combinacin de
nombre_cliente e id_cliente constituyen una superclave para la relacin
cliente. El atributo nombre_cliente de cliente no es una superclave, ya
que es posible que varias personas se llamen igual.
El concepto de superclave no es suficiente para nuestros propsitos, ya
que, como se ha podido ver, las superclaves pueden contener atributos
innecesarios. Si C es una superclave, entonces tambin lo es cualquier
superconjunto de C. A menudo resultan interesantes superclaves para la
que ninguno de sus subconjuntos constituya una superclave. Esas
superclaves mnimas se denominan claves candidatas.
Es posible que varios conjuntos diferentes de atributos puedan ejercer
como claves candidatas. Supngase que una combinacin de
nombre_cliente y de calle_cliente sea suficiente para distinguir entre los
miembros de la relacin cliente. Entonces, tanto {id_cliente} como
{nombre_cliente, calle_cliente} son claves candidatas. Aunque los
atributos id_cliente y nombre_cliente en conjunto pueden diferenciar las
tuplas cliente, su combinacin no forma una clave candidata, ya que el
atributo id_cliente por s solo ya lo es.

Se usar el trmino clave primaria para denotar una clave candidata


que ha elegido el diseador de la base de datos como medio principal
para la identificacin de tuplas de una relacin. Las claves (sean
primarias, candidatas o superclaves) son propiedad de toda la relacin,
no de cada una de las tuplas. Ninguna pareja de tuplas de la relacin
puede tener simultneamente el mismo valor de los atributos de la
clave. La seleccin de una clave representa una restriccin de la
empresa del mundo real que se est modelando.
Las claves candidatas deben escogerse con cuidado. Como se ha
indicado, el nombre de una persona evidentemente no es suficiente, ya
que puede haber mucha gente con el mismo nombre. En estados Unidos
el atributo nmero de la seguridad social de cada persona sera clave
candidata. Dado que los residentes extranjeros no suelen tener nmero
de la seguridad social, las empresas internacionales deben generar sus
propios identificadores unvocos. Una alternativa es usar como clave
alguna combinacin exclusiva de otros atributos.

nombre_
cliente
Fernnd
ez
Gmez
Gmez
Lpez
Prez
Santos
Sotoca
Valdivies
o

nmero_
prstamo
P-16
P-11
P-23
P-15
P-93
P-17
P-14
P-17

Figura 3.7 La relacin prestatario.


La clave primaria debe escogerse de manera que los valores de sus
atributos no se modifiquen nunca, o muy rara vez. Por ejemplo, el campo
domicilio de una persona no debe formar parte de la clave primaria, ya
que es probable que se modifique. Por otra parte, est garantizado que
los nmeros de la seguridad social no cambian nunca. Los
identificadores exclusivos generados por las empresas no suelen
cambiar, salvo si se produce una fusin entre dos de ellas; en este caso,
puede que el mismo identificador haya sido emitido por ambas
empresas, y puede ser necesaria una reasignacin de identificadores
para garantizar que sean nicos.

Formalmente, sea R el esquema de una relacin. Si se dice que un


subconjunto C de R es una superclave de R, se restringe la consideracin
a las relaciones r(R) en las que no hay dos tuplas diferentes que tengan
los mismos valores en todos los atributos de C. Es decir, si t1 y t2 estn
en r y t1 t2, entonces t1[C] t2[C].
El esquema de una relacin, por ejemplo r1, puede incluir entre sus
atributos la clave primaria de otro esquema de relacin, por ejemplo r2.
Este atributo se denomina clave externa de r1, que hace referencia a r2.
La relacin r1 tambin se denomina relacin referenciante de la
dependencia de la clave externa y r2 se denomina relacin
referenciada de la clave externa. Por ejemplo, el atributo
nombre_sucursal de Esquema_cuenta es una clave externa de
Esquema_cuenta que hace referencia a Esquema_sucursal, ya que
nombre_sucursal es la clave primaria de Esquema_sucursal.
Es costumbre relacionar los atributos de la clave primaria de un
esquema de relacin antes que el resto de los atributos; por ejemplo, el
atributo nombre_sucursal de Esquema_sucursal se relaciona en primer
lugar, ya que es la clave primaria.
El esquema de la base de datos, junto con las dependencias de clave
primaria y externa, se puede mostrar grficamente mediante
diagramas de esquema. La figura 3.8 muestra el diagrama de
esquema del ejemplo bancario. Cada relacin aparece como un cuadro
con los atributos relacionados en su interior y el nombre de la relacin
sobre l. Si hay atributos de la clave primaria, una lnea horizontal cruza
el cuadro con los atributos de clave primaria por encima de ella y sobre
fondo gris. Las dependencias de clave externa aparecen como flechas
desde los atributos de clave externa de la relacin referenciante a la
clave primaria de la relacin referenciada.
Muchos sistemas de bases de datos proporcionan herramientas de
diseo con una interfaz grfica de usuario para la creacin de los
diagramas de esquema.
Lenguajes de consultas
Un lenguaje de consultas es un lenguaje en el que los usuarios solicitan
informacin de la base de datos. Estos lenguajes suelen ser de un nivel
superior que el de los lenguajes de programacin habituales. Los
lenguajes de consulta pueden clasificarse como procedimentales o no
procedimentales. En los lenguajes procedimentales el usuario indica
al sistema que lleve a cabo una serie de operaciones en la base de datos
para calcular el resultado deseado. En los lenguaje no procedimentales
el usuario describe la informacin deseada sin dar un procedimiento
concreto para obtener esa informacin.

La mayor parte de los sistemas comerciales de bases de datos


relacionales ofrecen un lenguaje de consultas que incluye elementos de
los enfoques procedimental y no procedimental.
Existen varios lenguajes de consultas puros: el lgebra relacional es
procedimental, mientras que el clculo relacional de tuplas y el clculo
relacional de dominios no lo son. Estos lenguajes de consultas son
rgidos y formales, y carecen del azcar sintctico de los lenguajes
comerciales, pero ilustran las tcnicas fundamentales para la extraccin
de datos de las bases de datos.
Las operaciones fundamentales del lgebra relacional son seleccin,
proyeccin, unin, diferencia de conjuntos, producto cartesiano y
renombramiento. Adems de las operaciones fundamentales hay otras
operaciones por ejemplo, interseccin de conjuntos, reunin neutral,
divisin y asignacin. Estas operaciones se definirn en trminos de las
operaciones fundamentales.

UNIDAD IV. INTRODUCCION A SQL


El lgebra relacional proporciona una notacin concisa y formal para la
representacin de las consultas. Sin embargo, los sistemas de bases de
datos comerciales necesitan un lenguaje de consulta ms cmodo para
el usuario.
SQL es el lenguaje de consultas distribuido comercialmente de ms
influencia. SQL usa una combinacin de constructores del lgebra
relacional y el clculo relacional.
Aunque se haga referencia al lenguaje SQL como lenguaje de
consultas, puede hacer mucho ms que consultar las bases de
datos. Usando SQL es posible adems definir la estructura de los
datos, modificar los datos de la base de datos y especificar
restricciones de seguridad.
4.1 Introduccin
IBM desarroll la versin original de SQL, originalmente denominado
Sequel, como parte del proyecto System R a principios de 1970. El
lenguaje Sequel ha evolucionado desde entonces y su nombre ha
pasado a se SQL (Structured Query Language, lenguaje estructurado
de consultas). Hoy en da, numerosos productos son compatibles con

el lenguaje SQL y se ha establecido como el lenguaje estndar para


las bases de datos relacionales.
En 1986, ANSI (American National Standards Institute, Instituto
nacional americano de normalizacin) e ISO (International Standards
Organization, Organizacin internacional de normalizacin) publicaron
una norma SQL, denominada SQL-86. En 1989 ANSI public una
extensin de la norma para SQL denominada SQL-89. La siguiente
versin de la norma fue SQL-92 seguida de SQL-1999; la versin ms
reciente es SQL:2003. Las notas bibliogrficas proporcionan
referencias a esas normas.

Lenguaje de definicin de datos (LDD). El LDD de SQL


proporciona comandos para la definicin de esquemas de
relacin, borrado de relaciones y modificacin de los esquemas
de relacin.
Lenguaje interactivo de manipulacin de datos (LMD). El
LMD de SQL incluye un lenguaje de consultas basado tanto en
el lgebra relacional como en el clculo relacional de tuplas.
Tambin contiene comandos para insertar, borrar y modificar
tuplas.
Integridad. El LDD de SQL incluye comandos para especificar
las restricciones de integridad que deben cumplir los datos
almacenados en la base de datos. Las actualizaciones que
violan las restricciones de integridad se rechazan.
Definicin de vistas. El LDD de SQL incluye comandos para la
definicin de vistas.
Control de transacciones. SQL incluye comandos para
especificar el comienzo y el final de las transacciones.
SQL incorporado y SQL dinmico. SQL incorporado y SQL
dinmico definen cmo se pueden incorporar instrucciones de
SQL en lenguajes de programacin de propsito general como
C, c++, Java, PL/I, Cobol, Pascal y Fortran.
Autorizacin. El LDD de SQL incluye comandos para
especificar los derechos de acceso a las relaciones y las vistas.

You might also like