You are on page 1of 50

DEPARTAMENTO DE INGENIERA EN

SISTEMAS COMPUTACIONALES

G.IT18.103

Fundamentos Agosto

de Bases de
Datos
Ing. Luis Armando Garca
2017
Eliseo

En este curso se pretende dar a conocer la evolucin que han


tenido los archivos a travs del tiempo, hasta convertirse en
Bases de datos, dando antecedentes de los primeros sistemas
de informacin con un enfoque meramente terico con
ejemplos de sistemas comerciales. En la aplicacin prctica el
participante tendr conceptos firmes de los distintos modelos de
bases de datos existentes y podr evaluar alternativas eficientes
para la implementacin de sistemas de informacin.

1
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

El siguiente material es solamente de apoyo para la asignatura de Fundamentos de


Bases de Datos, que se imparte en la Facultad de Ingeniera Arturo Narro Siller, en la
Universidad Autnoma de Tamaulipas.

Es importante mencionar, que la informacin aqu utilizada es totalmente extrada


del libro de Fundamentos de Bases de Datos, creado por Henry Korth y Abraham
Silberchatz.

Academia de Tratamiento de Informacin


Pgina

Tampico, Tamps, Enero del 2016

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Contenido

1. INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS ............................................. 5


1. 1 Introduccin ............................................................................................................................. 5
1.2 Diferencias entre el manejo de Archivos y el uso de Base de Datos ........................................ 5
1.3 Ventajas en el uso de sistemas de base de datos ....................................................................... 6
1.4 Problemas de concurrencia, integridad y seguridad en el manejo de base de datos ............... 7
1.5 Abstraccin y Sus Niveles ......................................................................................................... 9
1.6 Instancias ................................................................................................................................ 11
1.7 Esquemas................................................................................................................................. 11
1.8 Modelos de Datos .................................................................................................................... 11
1.9 Lenguajes de Bases de Datos .................................................................................................. 12
Lenguaje de definicin de datos (Data Definition Language (DDL)) ...................................... 12
Lenguajes de Manipulacin de Datos (Data Manipulation Language (DML)) ........................ 13
1.10 Independencia de Datos ........................................................................................................ 13
Independencia Fsica de Datos: ................................................................................................ 14
Independencia lgica de datos: ................................................................................................. 14
1.11 Definicin de Manejador de Bases de Datos y sus responsabilidades ................................. 14
1.12 Definicin De Administrador De Bases De Datos y Sus Responsabilidades. ....................... 15
1.13 Definicin de usuarios de Bases de Datos ............................................................................ 15
2. MODELO ENTIDAD-RELACIN E-R .................................................................................. 17
2.1 Introduccin al Modelo de Datos Entidad Relacin. ........................................................... 17
2.2 Definicin de Entidades y Relaciones. .................................................................................... 17
2.3. Como se crean las Relaciones. ............................................................................................... 18
3
Pgina

2.4 Restricciones de asignacin (MAPPING). .............................................................................. 19


2.5 Manejo de Atributos y Superclaves. ........................................................................................ 24

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

2.6.- Uso de Diagramas Entidad Relacin................................................................................ 25


2.7 Procedimiento para Reducir Diagramas E R a Tablas. ...................................................... 27
3. MODELO RELACIONAL ....................................................................................................... 33
3.1 Introduccin al modelo Relacional ......................................................................................... 33
3.2. Estructura de las Base de Datos Relacionales....................................................................... 34
3.3 Diseo de Base de Datos Relacionales. .................................................................................. 34
3.4 Lenguajes de Consultas........................................................................................................... 35
3.4.1 lgebra Relacional ........................................................................................................... 40
3.4.2 Operaciones Fundamentales del Algebra Relacional ...................................................... 40

4
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

1. INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

1. 1 Introduccin

Un sistema de gestin de base de datos (DBMS Data Base Management System)


consiste en una coleccin de datos interrelacionados y un conjunto de programas para
acceder a esos datos. La coleccin de datos, normalmente denominada base de datos,
contiene informacin acerca de una empresa determinada. El objetivo primordial de un
DBMS es proporcionar un entorno que sea a la vez conveniente y eficiente para hacer
utilizado al extraer y almacenar informacin de la base de datos.

Los sistemas de base de datos estn diseados para gestionar grandes bloques de
informacin. La gestin de datos implica tanto la definicin de estructura de
almacenamiento como la provisin de mecanismos para la gestin de la informacin.
Adems, los sistemas de base deben mantener la seguridad de informacin almacenada,
pese a cadas del sistema o intentos de acceso no autorizados, y si los datos van hacer
utilizados por varios usuarios el sistema debe evitar posible resultado anmalo.

1.2 Diferencias entre el manejo de Archivos y el uso de Base de Datos

Considrese parte de una empresa bancaria que guarda informacin sobre todos sus
clientes y las cuentas de ahorros en archivos permanentes en el banco. Adems, esta
empresa bancaria cuenta con un sistema que permite a los ejecutivos del banco el manejo
5

de estos archivos; entre las aplicaciones que se encuentran podemos mencionar:


Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Un programa para hacer cargos o abonos en una cuenta,


Un programa para aadir una nueva cuenta,
Un programa para obtener el saldo de una cuenta,
Un programa para generar estados de cuenta mensuales.

Estos programas de aplicacin, los han escrito programadores de sistemas en


respuesta a las necesidades de la organizacin bancaria. Segn surge la necesidad, se
aaden nuevos programas de aplicacin. Por ejemplo, supngase que una nueva ley de
Gobierno permite al Banco de Ahorros ofrecer cuentas de cheques gratuitas.

Como resultado, se crea nuevos archivos permanentes que contienen informacin


acerca de todas las cuentas de cheques que mantiene el banco, y que puede ser necesario
escribir nuevos programas de aplicacin al sistema.

El tpico sistema de procesamiento de archivos descrito anteriormente, est apoyado


por un sistema operativo convencional. Los registros permanentes se almacenan en varios
archivos, y se escriben un nmero de diferentes programas de aplicacin para extraer
registros y aadir registros a archivos apropiados. Este sistema tiene un nmero de
desventajas importantes.

1.3 Ventajas en el uso de sistemas de base de datos

Redundancia e inconsistencia en los datos,


6

Dificultad para tener acceso a los datos,


Pgina

Aislamiento de los datos,

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Anomalas en el acceso concurrente,


Problemas de seguridad,
Problemas de integridad.

1.4 Problemas de concurrencia, integridad y seguridad en el manejo de base de datos

La informacin almacenada en la base de datos debe estar protegida contra accesos


no autorizados, destruccin o alteracin con fines indebidos e introduccin accidental de
inconsistencias. Hasta ahora hemos considerado solamente como prevenir la perdida
accidental de la integridad de la informacin. En este apartado examinaremos las formas en
las que se producen el mal uso de la informacin o que estas se vuelven consistentes de
forma intencionada.

El mal uso que se haga de la base de datos puede ser intencionado (con fines
indebidos) o accidental. La prdida accidental de la consistencia de los datos puede deberse
a:

Cadas durante el proceso de las transacciones.


Anomalas por acceso concurrente a la base de datos,
Anomalas que resultan de la distribucin de los datos entre varias
computadoras.

Un error lgico que se presenta cotidianamente es la suposicin de que las


7
transacciones respetan las protecciones de consistencia de la base de datos.
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Es ms fcil prevenir la perdida accidental de la consistencia de los datos que


prevenir el acceso mal intencionado a la base de datos. Algunas de las formas de acceso
indebido son las siguientes:

Lectura de datos sin autorizacin (robo de informacin)


Modificacin de datos sin autorizacin
Destruccin no autorizada de los datos

No es posible proteger de manera absoluta a la base de datos contra un manejo


indebido, pero puede hacerse que el coste para el autor sea tan alto que frene prcticamente
todos los intentos de acceder a la base de datos sin autorizacin debida. El termino
seguridad de la base de datos normalmente se refiere a la proteccin contra el acceso mal
intencionado mientras que integridad se refiere a la proteccin contra una perdida
accidental de consistencia. En la prctica, la lnea que separa la seguridad de la integridad
no siempre est bien definida. Aqu, si utilizaremos el trmino seguridad para referirnos
tanto a la seguridad como a la integridad en los casos en que la distincin entre estos dos
conceptos no sea esencial.

Para proteger a la base de datos es necesario adoptar medidas de seguridad en varios


niveles:

1.- Fsico. La localidad o localidades que contienen a los sistemas de


computadoras deben protegerse fsicamente contra la penetracin armada o
clandestina de intrusos.
8
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

2.- Humano. Debe tenerse mucho cuidado al conceder autorizacin a los


usuarios, para reducir la posibilidad de que un usuario autorizado permita el
acceso a un intruso a cambio de sobornos u otros favores.

3.- Sistema Operativo. Aunque el sistema de Base de Datos este bien


protegido, si no se protege adecuadamente el Sistema Operativo, esto puede
servir para obtener acceso sin autorizacin a la base de datos. Dado que casi
todos los sistemas de base de datos permiten acceso remoto a travs de
terminales o redes, la seguridad a nivel software dentro del sistema
operativo, es tan importante como la seguridad fsica.

4.- Sistema de Base de Datos. Puede darse el caso de que algunos usuarios
estn autorizados solo para tener acceso a una porcin limitada de una base
de datos. Es posible tambin que algunos usuarios se les permitan tener
consultas, pero se les prohbe modificar la base de datos. El sistema de base
de datos tiene la responsabilidad de garantizar que no se violen estas
restricciones.

1.5 Abstraccin y Sus Niveles

Un sistema de gestin de base de datos es una coleccin de archivos


interrelacionados y un conjunto de programas que permiten a los usuarios acceder y
modificar estos archivos. Un objetivo importante de un sistema de base de datos es
proporcionar a los usuarios una versin abstracta de los datos. Es decir, el sistema esconde
ciertos detalles de cmo se almacenan y mantienen los datos. Sin embargo, para que el
9

sistema sea manejable los datos se deben extraer eficientemente. Este requerimiento ha
Pgina

llevado al diseo de estructura de datos complejos para la representacin de los datos en la

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

base de datos. Puesto que muchos usuarios de sistemas de base de datos no tienen
experiencia en computadores, se les esconde la complejidad a travs de diversos niveles de
abstraccin para simplificar su interaccin con el sistema. Estos niveles son:

Nivel Fsico.- Es el nivel ms bajo de abstraccin describe como se almacena


realmente los datos. En el nivel fsico se describen en detalle las estructuras de datos
complejos del nivel bajo.

Nivel Conceptual.- Describe el siguiente nivel ms alto de abstraccin. Se definen


que datos son realmente almacenados en la base de datos y las relaciones que existen entre
los datos.

Nivel De Visin.- Es el nivel ms alto de abstraccin, describe solo parte de la base


de datos completa. El sistema puede proporcionar muchas visiones para la misma base de
datos.

Visin Visin Visin Visin

Nivel Conceptual

Nivel Fsico 10
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

1.6 Instancias

Las bases de datos cambian a lo largo del tiempo segn se aaden y se suprime
informacin. A la coleccin de la informacin almacenada en la base de datos en un
determinado momento en el tiempo se llama instancia de la base de datos.

1.7 Esquemas

El diseo global de la base de datos se llama esquema. Los esquemas se cambian


muy raras veces nunca.

Los sistemas de bases de datos tienen varios esquemas, divididos de acuerdo con los
niveles de abstraccin. En el nivel ms bajo esta el esquema fsico, el esquema conceptual
es el siguiente nivel; y en el nivel ms alto un sub esquema. En general, los sistemas de
base de datos soportan un esquema fsico, un esquema conceptual y varios sub esquemas.

1.8 Modelos de Datos

Un modelo de datos es un conjunto de herramientas conceptuales que permiten


definir datos, restricciones de consistencia, semntica asociada a los datos y relaciones
entre los mismos. Tres de los ms extensamente conocidos son:

Modelos Lgicos Orientados a Objetos.- Estos modelos se caracterizan por


describir datos en los niveles conceptuales y de visin. Los ms conocidos son seis: 11
Entidad-relacin
Pgina

Orientado a objetos

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Semntico
Funcional
Binario
Infolgico de datos.

Modelo Lgico Orientado a Registros.- Estos modelos se utilizan para describir


datos en los niveles fsico y conceptual

Relacional
Red
Jerrquico

Modelo Fsico de Datos.- Este modelo se utiliza para describir datos en el nivel
ms bajo.
Memoria de elementos
Modelo unificador

1.9 Lenguajes de Bases de Datos

Lenguaje de definicin de datos (Data Definition Language (DDL))


Un esquema de base de datos se especifica por medio de un conjunto de
definiciones, estas ltimas se expresan mediante un lenguaje especial llamado lenguaje de
definicin de datos (Data Definition Language (DDL)). El resultado de la compilacin de
sentencias de DDL es un conjunto de tablas las cuales se almacenan en un archivo especial
12

llamado diccionario de datos directorio.


Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Un directorio de datos, es un archivo que contiene meta datos, es decir, datos sobre
datos. Este archivo se consulta antes de leer modificar los datos reales en el sistema de
base de datos.

Lenguajes de Manipulacin de Datos (Data Manipulation Language (DML))

Un lenguaje de manipulacin de datos, es un lenguaje que capacita a los usuarios a


acceder modificar los datos segn estn organizados por el modelo de datos adecuados.
Existen bsicamente dos tipos:

Procedimentales: Los DML procedimentales requieren que el usuario


especifique que datos se necesitan y como obtenerlos.

No Procedimentales: Los DML no procedimentales requieren que el usuario


especifique que datos se necesitan sin especificar como obtenerlos.

Los DML no procedimentales normalmente son ms sencillos de aprender y usar


que los procedimentales. Sin embargo, puesto que el usuario no tiene que especificar cmo
conseguir los datos, estos lenguajes pueden generar cdigo que no sea tan eficiente como
producido por el lenguaje procedimental.

1.10 Independencia de Datos

La capacidad de modificar el esquema en un nivel sin afectar la definicin de un


esquema de nivel superior se llama independencia de datos. Hay 2 niveles de independencia
13
de datos:
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Independencia Fsica de Datos:

Es la capacidad de modificar el esquema fsico sin provocar que se vuelva a escribir


los programas de aplicacin. En algunas ocasiones son necesarias las modificaciones en el
nivel fsico para mejorar el funcionamiento.

Independencia lgica de datos:

La capacidad de modificar el esquema conceptual sin provocar que se vuelvan a


escribir los programas de aplicacin. Las modificaciones en el nivel conceptual son
necesarias siempre que se altera la estructura lgica de las bases de datos.

La independencia lgica de datos es ms difcil de lograr que la independencia


fsica, ya que los programas de aplicacin estn fuertemente ligados a la estructura lgica
de los datos a los que se accede.

1.11 Definicin de Manejador de Bases de Datos y sus responsabilidades

Un manejador de base de datos es un modulo de programa que proporciona la


interfaz entre los datos de bajo nivel almacenados en la base de datos y los programas de
aplicacin y consultas hechas del sistema. Entre sus responsabilidades estn:

Interaccin con el gestor de archivos


Implantacin de la integridad
14
Implantacin de la seguridad

Pgina

Copia de seguridad y recuperacin


Control de concurrencia

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

1.12 Definicin De Administrador De Bases De Datos y Sus Responsabilidades.

Una de las razones principales para tener un sistema de gestin de base de datos es
tener el control central de los datos y de los programas que acceden a estos. La persona que
tiene dicho control central se llama Administrador de la Base de Datos (Data Base
Administrator [DBA]). Las siguientes funciones son responsabilidad del administrador:

Definicin de esquema
Definicin de la estructura de almacenamiento y del mtodo de acceso
Modificacin del esquema y de la organizacin fsica
Concesin de autorizacin para el acceso a los datos
Especificacin de las restricciones de integridad

1.13 Definicin de usuarios de Bases de Datos

Hay 4 tipos distintos de usuarios, que se diferencian en la manera que esperan


interactuar con el sistema. Estos son los siguientes:

Programadores de aplicacin: Profesionales en computacin que


interactan con el sistema invocando sentencias en DML escritas en un
lenguaje principal como son Pascal, C, PL1. A los programas que resultan se
les conoce como: programas de aplicacin
15
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Usuarios Sofisticados: Los usuarios sofisticados interactan con el sistema


sin escribir programas. En cambio, sus consultas son sometidas a un
procesador de consultas que descomponen las instrucciones DML en
sentencias que entiende la computadora.

Usuarios especializados: Estos usuarios no encajan en el marco tradicional


del procesamiento de archivos ya que interactan con sistemas de diseo
asistido por computadora, sistemas expertos sistemas basados en
conocimientos - almacenan datos como audio, vdeo, grficas, etc.

Usuarios Ingenuos: Estos usuarios interactan con el sistema invocando


programas de aplicacin escritos con anterioridad.

16
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

2. MODELO ENTIDAD-RELACIN E-R

2.1 Introduccin al Modelo de Datos Entidad Relacin.

Un modelo de datos entidad relacin se basa en la percepcin de un mundo real,


que consiste en un conjunto de objetos bsicos llamados entidades y relaciones entre estos
objetos. Se desarrollo para facilitar el diseo de base de datos permitiendo la especificacin
de un esquema empresarial. Este esquema representa la estructura lgica global de la base
de datos.

2.2 Definicin de Entidades y Relaciones.

Una entidad es un objeto que existe y es distinguible de otros objetos. Una entidad
puede ser concreta, tal como una persona o un libro, o puede ser abstracta, como un da
festivo o un concepto.

Un conjunto de entidades es un conjunto de entidades del mismo tipo, el conjunto


de todas las personas que tienen una cuenta en un banco, por ejemplo, puede definirse
como el conjunto de entidades cliente.

Los conjuntos de entidades no necesitan ser distintos.

Una entidad est representada por un conjunto de atributos. Para cada atributo hay
un conjunto de valores permitidos, llamado dominio de ese atributo. Formalmente, un
17
atributo es una funcin que asigna un conjunto de entidades a un dominio.
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Una relacin es una asociacin entre varias entidades.

Un conjunto de relaciones son un conjunto de relaciones del mismo tipo,


formalmente es una relacin matemtica de n >= 2 conjunto de entidades. Si E1, E2, E3,. . .,
En son conjuntos de entidades, entonces un conjunto de relaciones R es un subconjunto de

R {(e1, e2,. . ., en) e1 E1, e2 E2,. . ., en En)}

En donde (e1, e2,. . ., en) es una relacin.

2.3. Como se crean las Relaciones.

Puesto que la nocin de conjunto de entidades y conjunto de relaciones no es


precisa, es posible definir un conjunto de entidades y sus relaciones de varias formas
diferentes. La principal diferencia est en la forma que tratamos los diversos atributos.

Considere el conjunto de entidades empleado como atributos: nombre_empleado y


nmero_telfono. Se puede argumentar fcilmente que un telfono es una entidad en s
mismo con atributos nmero_telfono y situacin (la oficina donde est colocado el
telfono). Si tomamos este punto de vista, el conjunto de entidades empleado debe de
definirse como sigue:

El conjunto de entidades Empleado con atributo nombre_empleado.

El conjunto de entidades Telfono con atributos nmero_telfono y situacin.


18
Pgina

El conjunto de relaciones Empl-Telf, que indica la asociacin entre los empleados y


los telfonos que tienen.

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Surge entonces una pregunta natural: Qu constituye un atributo, y que constituye


un conjunto de entidades? Desgraciadamente, no hay una respuesta sencilla.

LA DISTINCION DEPENDE PRINCIPALMENTE DE LA ESTRUCTURA DE


LA EMPRESA QUE SE ESTA MODELANDO Y DE LA SEMANTICA ASOCIADA
CON EL ATRIBUTO EN CUESTION.

2.4 Restricciones de asignacin (MAPPING).

Una planificacin entidad relacin de una empresa puede definir ciertas


restricciones a las cuales deben ajustarse los contenidos de una Base de Datos. Una
restriccin importante es la de las cardinalidades de asignacin que expresan el nmero de
entidades con las que puede asociarse otra entidad mediante un conjunto de relaciones.

Para un conjunto binario de relaciones entre los conjuntos de entidades A y B la


cardinalidad de asignacin debe ser una de las siguientes:

19
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Una a Una: Una entidad en A esta asociada a lo sumo con una entidad en B, una
entidad en B est asociada a los sumo con una entidad en A.

20
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Una a Muchas: Una entidad en A esta asociada con un nmero cualesquiera de


entidades en B. Una entidad en B sin embargo puede estar asociada a lo sumo con una
entidad en A.

21
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Muchas a Una: Una entidad en A esta asociada a lo sumo con una entidad en B.
Una entidad en B sin embargo puede estar asociada con un nmero cualquiera de entidades
en A.

22
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Muchas a Muchas: Una entidad en A esta asociada con un nmero cualesquiera de


entidades en B. Una entidad en B est asociada con un nmero cualesquiera de entidades en
A.

23
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

2.5 Manejo de Atributos y Superclaves.

Es importante especificar cmo se distinguen las entidades y las relaciones.


Conceptualmente, las entidades individuales y las relaciones son distintas pero, desde la
perspectiva de una base de datos, la diferencia entre ellos debe expresarse en trminos de
sus atributos. El concepto de superclave es un conjunto de uno o ms atributos que
considerados conjuntamente nos permiten identificar de forma nica a una entidad en el
conjunto de entidades. Por ejemplo; el atributo seguridad social del conjunto de entidades
cliente, es suficiente para distinguir una entidad cliente de otra. As, seguridad social es una
superclave. Anlogamente, la combinacin del nombre cliente y seguridad social es una
superclase para el conjunto de entidades cliente. El atributo nombre_cliente no es una
superclave, ya que varias personas podran tener el mismo nombre.

Usaremos el termino clave primaria para denotar una clave candidata que elija el
diseador de la base de datos como el medio principal de identificar entidades dentro de
un conjunto de entidades.

Es posible que un conjunto de entidades no tenga atributos suficientes para formar


una clave primaria. Un conjunto de entidades de este tipo se denomina conjunto de
entidades dbil. Un conjunto de entidades primarias que tienen una clave primaria se
denomina conjunto de entidades fuerte.

El discriminador de un conjunto de entidades dbil es un conjunto de atributos que


permite que se haga esa distincin. Por ejemplo, el discriminador del conjunto de entidades
24
dbil transaccin, ya que para cada cuenta un nmero de transaccin identifica de forma
nica una nica transaccin.
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

2.6.- Uso de Diagramas Entidad Relacin.

Como vimos la estructura lgica global de un Base de Datos puede representarse


por medio de un diagrama entidad relacin. Un diagrama de este tipo consta de los
siguientes componentes:

Rectngulos: Que representan conjunto de entidades.

Elipses: Que representan atributos.

Rombos: Que representan conjuntos de relaciones.

Lneas: Que enlazan atributos a conjuntos de entidades y conjunto de entidades o conjunto


de enlaces.

25
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Considere la siguiente figura que consta de dos conjuntos de entidades cliente y


cuenta, relacionados mediante un conjunto ordinario de relaciones cuentacli. Los atributos
asociados a clientes son: nombre_de_cliente, seguro_social, calle y cuidad_cliente. Los
atributos asociados con cuenta son: nmero_cuenta y saldo.

El conjunto de relaciones cuentacli puede ser muchas a muchas, una a muchas y una
a una. Para distinguir entre estas, dibujaremos bien una lnea con direccin (--------) o
bien una lnea sin direccin (------------) entre los conjuntos de relacin y el conjunto de
entidades de relacin.

Por lo tanto tendremos:

Una a Muchas

Muchas a Una

Muchas a Muchas

Una a Una

SUGERENCIA: Mencionar y Realizar Ejemplos (cuatros cuando menos)

26
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

2.7 Procedimiento para Reducir Diagramas E R a Tablas.

Una de las ventajas de utilizar las bases de datos es su fcil interpretacin, y uno de
los modelos que permite llevar a cabo esta operacin es el modelo relacional; este ltimo
representa a los atributos en cada una de las columnas y las entidades son representadas por
cada una de las filas que conforman estas tablas.

Para poder transformar un diagrama entidad relacin a tablas se efectan los


siguientes pasos:

1. Se crearn tantas tablas como conjuntos de entidades y conjuntos de


relaciones que existan.

2. Cada tabla recibir el nombre del conjunto de entidades o relaciones


existentes.

3. Cada tabla tendr tantas columnas como atributos contengan el conjunto


de entidades o relaciones que representa.

4. Cada columna recibir el nombre del atributo que represente en el


conjunto de entidades o relaciones.
27
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Ejemplo de un Diagrama Entidad Relacin (Proceso Renta de Videos)

28
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Tomando como referencia el ejemplo anterior, ahora reducindolo a tablas, quedara


de la siguiente manera:

29
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

30
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

31
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Es recomendable que realices cuando menos tres ejercicios mas, para dominar este
procedimiento. 32
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

3. MODELO RELACIONAL

3.1 Introduccin al modelo Relacional

Desde una perspectiva histrica, el modelo de datos relacional es relativamente


nuevo. Los primeros sistemas de base de datos estaban basados en el modelo de red o en el
modelo de datos jerrquico. Estos dos primeros modelos estn ms ntimamente ligados a
la implementacin de la base de datos que el modelo relacional.

En los aos siguientes a la introduccin del modelo relacional se ha desarrollado


una teora esencial para las base de datos relacinales.

Esta teora ayuda al diseo de base de datos relacionales y al procesamiento


eficiente de solicitudes de informacin a la base de datos por parte de los usuarios.

El modelo Relacional se ha establecido como el principal modelo de datos para


aplicaciones comerciales del procesamiento de datos.

Su xito en este campo ha llevado a su aplicacin fuera de procesamiento de datos


en sistemas para diseo asistido por computadora y otros entornos.

33
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

3.2. Estructura de las Base de Datos Relacionales.

Una base de datos relacional consiste en una coleccin de tablas, a cada una de las
cuales se asigna un nombre nico. Cada tabla tiene una estructura similar en la presentada
de la unidad anterior. Una fila de una tabla representa una relacin entre un conjunto de
valores. Puesto que una tabla es una coleccin de dichas relaciones, hay una estrecha
correspondencia entre el concepto de tabla y el concepto matemtico de relacin, del cual
forma su nombre el modelo de datos relacional.

3.3 Diseo de Base de Datos Relacionales.

En general, el objetivo del diseo de una Base de Datos Relacional, es construir un


conjunto de esquemas de relaciones que nos permiten almacenar informacin sin
redundancia innecesaria, pero a la vez nos permita recuperar informacin fcilmente.

Una tcnica mantenida consiste en disear esquemas que tengan una forma normal
adecuada.

Para determinar si un esquema de relaciones tiene una de las formas normales


necesitaremos informacin adicional sobre la empresa del mundo real que vamos a modelar
con la base de datos. En este captulo definimos formas normales usando dependencias
funcionales y usando otros tipos de dependencia de datos.

34
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Peligros En El Diseo De Base De Datos Relacional.

Antes de empezar el tratamiento de formas normales y dependencia de datos,


estudiaremos los defectos que puede tener una base de datos mal diseada. Entre las
propiedades indeseables que un mal diseo puede tener estn:

a).- Repeticin de informacin

b).- Incapacidad para representar cierta informacin.

c).- Perdida de informacin.

3.4 Lenguajes de Consultas

Lenguajes de consulta es un lenguaje en el que un usuario solicita informacin de la


base de datos. Estos lenguajes son normalmente de ms alto nivel que los lenguajes
estndar de programacin.

Los lenguajes de consulta pueden clasificarse en lenguajes PROCEDIMENTALES


y lenguajes NO PROCEDIMENTALES. La mayor parte de los sistemas comerciales de
base de datos relacionales ofrecen un lenguaje de consulta que incluye elementos de los dos
enfoques.

En este captulo examinaremos dos lenguajes PUROS: El lgebra relacional que es


un lenguaje procedimental y el Clculo relacional de dominios que es un lenguaje No
35
procedimental.
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Estos lenguajes de consulta son concisos y formales, a falta de azcar sintctico


de los lenguajes comerciales, pero lo ilustran las tcnicas fundamentales para extraer datos
de la base de datos. Inicialmente nos interesaremos nicamente por las consultas.

Un lenguaje de manipulacin de datos completo incluye no solo un lenguaje de


consulta sino tambin un lenguaje para la modificacin de la base de datos. Dichos
lenguajes incluyen rdenes para insertar y borrar tuplas, as como rdenes para modificar
partes de tuplas.

Para ejemplificar mejor estos conceptos, utilizaremos las siguientes tablas como
referencia, y es recomendable que al mismo tiempo existan en el manejador de bases de
datos que el lector domine.

Deposito

Nombre _ sucursal Numero _ cuenta Nombre _ cliente Saldo

Down Town 101 Johnson 500

Mianus 215 Smith 700

Perry ridge 102 Hayes 400

Sand Hill 305 Tuner 350

Perry ridge 201 Williams 900


36
Red Wood 222 Lindsay 700
Pgina

Brighton 217 Green 750

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Cliente

Nombre _ cliente Calle Ciudad _ cliente

Jones Main Harrison

Smith North Rye

Hayes Main Harrison

Curry North Rye

Lindsay Park Pittsfield

Tuner Putnam Stanford

Williams Nassau Princeton

Adams Spring Pittsfield

Johnson Alma Palo alto

Green SandHill Wood side

Brooks Senatur Brooklyn

Green Wainut Stanford

37
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Prstamo

Nombre _ sucursal Nmero _ prstamo Nombre _ cliente Cantidad

Downtown 7 Jones 1000

Red wood 23 Smith 2000

Perry ridge 13 Hayes 1500

Down town 14 Jackson 1500

Mianus 93 Curry 500

Pound hill 11 Turner 900

Down hall 29 Williams 1200

North town 16 Adams 1300

Down town 18 Johnson 2000

Perry ridge 25 Glen 2500

Brighton 10 Brooks 1200

38
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Sucursal

Nombre _ sucursal Activos Ciudad _ sucursal

Downtown 9,000,000 Brooklyn

Redwood 2,100,000 Palo alto

Perry ridge 1,700,000 Horse neck

Mianus 400,000 Horse neck

Pound Hill 8,000,000 Horse neck

Pownall 300,000 Perry ridge

North town 3,700,000 Rye

Brighton 7,100,000 Brooklyn

39
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

3.4.1 lgebra Relacional

Es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones


que toman una o dos relaciones como entrada y producen una nueva relacin como
resultado.

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: la interseccin de
conjuntos, producto natural y asignacin. Estas operaciones se definirn en trminos de
las operaciones fundamentales.

3.4.2 Operaciones Fundamentales del Algebra Relacional

Las operaciones seleccionar, proyectar y renombrar se llaman operaciones


unitarias, ya que operan sobre una relacin.

Las otras tres operaciones producto cartesiano, unin y diferencia de conjuntos


operan sobre pares de relaciones y por tanto, se llaman operaciones binarias.

40
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Operacin Seleccionar ():

La operacin seleccionar selecciona tuplas que satisface un predicado dado. Usamos


la letra griega sigma ( ) para indicar la seleccin. El predicado aparece como subndice de
sigma p.

Ejemplo 1:

Seleccionar aquellas tuplas de la relacin prstamo en las que la sucursal es


Perryridge

nombre_sucursal=Perryridge (prestamo)

Ejemplo 2:

Seleccionar de la relacin cliente todas aquellas personas que vivan en la calle


Main

calle =Main (cliente)

Ejemplo 3:

Seleccionar todas aquellas sucursales que manejen activos superiores a los 500,000

activo = 500,000 (sucursal)


41
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Operacin Proyectar ():

La operacin proyectar trabaja de manera similar a la operacin seleccionar. Es una


operacin unitaria. La diferencia estriba en que esta operacin indica cuales son los
atributos que se esperan en la salida.

La operacin proyectar se indica con la letra griega (), como subndice y separado
por comas se indican los atributos que se desean en la salida; por lo general se ve asociada
de manera implcita con la operacin seleccionar. La relacin argumento se indica entre
parntesis.

Ejemplo 1:

Encontrar las calles de aquellos clientes que radiquen en la ciudad de Brooklyn.


calle (ciudad_cliente = Brooklyn) (cliente)

Ejemplo 2:

Encontrar los nombres de aquellas sucursales que manejen activos entre los 500,000
y los 750,000 siempre y cuando no estn localizados en la ciudad de Brooklyn.

nombre_sucursal (activo 500,000 activo 750,000 ciudad_sucursal Brooklyn ) (sucursales)

Ejemplo 3:

Encontrar toda la informacin de los clientes

nombre_cliente, calle, ciudad_cliente (cliente)


42
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Ejemplo 4:

Seleccionar el nombre del cliente y la calle de todas aquellas personas que vivan en la calle
Main o en la calle Spring.

nombre_cliente, calle ( calle = Main calle = Spring) (cliente)

Ejemplo 5:

Mostrar toda la informacin contenida en la tabla cliente omitiendo a aquellas personas que
vivan en la ciudad de Stamford

nombre_cliente, calle, ciudad_cliente ( calle Stamford) (cliente)

Ejemplo 6:

Mostrar los nombres de aquellas sucursales que manejen activos superiores a los 750,000
ubicadas en la ciudad de Palo Alto, Brooklyn, Rye.

nombre_sucursal( activo >750,000 ciudad_sucursal = Palo Alto ciudad_sucursal = Rye ciudad_sucursal = Brooklyn ) (sucursal)

43 Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Operacin Renombrar ()

A diferencia de las relaciones de la base de datos los resultados de las expresiones


de lgebra relacional no tienen un nombre que se pueda utilizar para referirse a ellas.

Resulta til poder ponerles nombre; el operador renombramiento, denotado por la


letra griega rho minscula () permite realizar esta tarea. Dada una expresin E del lgebra
relacional, la expresin x (E) devuelve el resultado de la expresin E con el nombre de x.

Las relaciones r por s mismas se consideran expresiones (triviales) del lgebra


relacional. Por tanto tambin se puede aplicar la operacin renombramiento a una relacin r
para obtener la misma relacin con un nombre nuevo.

OPERACIN UNION DE CONJUNTOS:

Para que una operacin unin r U s sea vlida exigimos que se cumplan dos
condiciones:

1.- Las relaciones R y S deben tener el mismo nmero de atributos.

2.- Los dominios de los atributos de R iesimo y del S iesimo deben ser el mismo.

Considere ahora una consulta que podra plantearse por un departamento de


publicidad de un banco.

Ejemplo 1:

Encontrar a todas las personas que tienen un prstamo, una cuenta o ambos en la
44
sucursal Perryrigde
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

(prestamo)

nombre_cliente ( nombre_sucursal = Perryridge )

(deposito)

nombre_cliente ( nombre_sucursal = Perryridge )

DIFERENCIA DE CONJUNTOS:

La operacin diferencia de conjuntos, representada por el smbolo (-), nos permite


encontrar aquellas tuplas que estn en una relacin pero no en otra. La expresin r-s da
como resultado una relacin que contiene aquellas tuplas que estn en r pero no en s.

Ejemplo1:

Encontrar los nombres de aquellos clientes de la sucursal perryridge que tienen una
cuenta all, pero no un prstamo.

(deposito)

nombre_cliente ( ciudad_cliente = Perryridge )

(prestamo)

nombre_cliente ( nombre_cliente = perryridge )


45
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

PRODUCTO CARTESIANO:

Las operaciones que hemos tratado hasta este punto nos permiten extraer
informacin nicamente de una relacin cada vez. Todava no hemos podido combinar
varias relaciones.

Una operacin que nos permite hacer esto, es la operacin producto cartesiano,
representada por una cruz. Esta operacin es una operacin binaria. Usaremos notacin
infija, para operaciones binarias y as, escribimos el producto cartesiano de las relaciones r1
y r2 como r1Xr2 . Recurdese que una relacin se define como un subconjunto de un
producto cartesiano de un conjunto de dominios. Partiendo de esta definicin ya
deberamos tener una intuicin de la definicin de la operacin producto cartesiano del
lgebra relacional.

Ejemplo 1:

Encontrar el nombre de la calle y la ciudad, as como los nmeros de prstamo de todas las

prestaciones que ha obtenido el cliente Jones superiores a los 500 e inferiores de 1000.

(cliente X prestamo)

calle,ciudad_cliente,numero prestamo ( nombre_cliente = Jones ^ cantidad 500 ^


cantidad<= 1000 )

Ejemplo 2:

Encontrar todas las operaciones de depsitos y prstamo efectuado por el cliente Jones.
46
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

(depositos X prestamo)

nombre_cliente, nombre_sucursal, numero_cuenta, saldo ( nombre_cliente = Jones )


U nombre_cliente, nombre_sucursal, numero_prestamo, cantidad ( nombre_cliente =
Jones )

( ) select *

( x ) from deposito, prestamo

( ) nombre=nombre_cliente = Jones

CALCULO RELACIONAL DE TUPLAS:

Cuando escribimos una expresin, el lgebra relacional, damos una secuencia de


procedimientos que generan la respuesta a nuestra consulta. El clculo relacional de tuplas,
en cambio es un lenguaje de consultas no procedimental. Describe la informacin deseada
sin dar un procedimiento especifico para obtener esa informacin.

Una consulta de calculo relacional de tuplas se expresa como:

{ t |t p (t ) }
47
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

es decir, el conjunto de todas las tuplas t, tal que el predicado p, es verdadero para t.
Siguiendo la notacin anterior, usamos t A para representar el valor la tupla t en el atributo
A y usamos t pertenece a r para indicar que la tupla t esta en la relacin r.

t [A] representa el valor de la tupla t en el atributo t [A], t para indicar que la tupla t esta en
la relacin r.

Antes de dar una definicin formal del calculo relacional de tuplas volvemos algunas de las
consultas para las cuales se escribieron expresiones en lgebra relacional.

Ejemplo 1:

Encontrar el nombre de la sucursal, el numero de prstamo, el nombre del cliente y la


cantidad para prestamos mayores de 1200.

Algebra Relacional:

(prestamos)

nombre_sucursal, numero_prestamo, nombre_cliente, cantidad( cantidad >1200 ) 48


Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Calculo Relacional

{ t | t prestamo ^ t[cantidad ] > 1200 }

Ejemplo 2:

Encontrar todas aquellas sucursales que manejen activos superiores a los 500,000

Algebra Relacional

( sucursal )

activo > 500,000

Calculo Relacional

{ t | t sucursal ^ [ activo ] > 500,000 }

Ejemplo 3:
49
Pgina

3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES

Encontrar todos los prestamos que haya solicitado Jones superiores a los 300 inferiores a
los 1000 no efectuado en Perryridge.

Algebra Relacional

( prestamo)

cantidad > 300 ^ cantidad >= 1000 ^ nombre_sucursal Perryridge


^ nombre_cliente = Jones

Calculo Relacional

{ t | t prestamos t [ cantidad ] 500 ^ t [ cantidad ] >= 1000 ^ t [ nombre_sucursal ]


Perryridge ^ t [ nombre_cliente ] = Jones }

50
Pgina

3443

You might also like