Está en la página 1de 50

DEPARTAMENTO DE INGENIERÍA EN

SISTEMAS COMPUTACIONALES

G.IT18.103

Fundamentos Agosto

de Bases de
Datos
Ing. Luis Armando García
2017
Eliseo

En este curso se pretende dar a conocer la evolución que han


tenido los archivos a través del tiempo, hasta convertirse en
Bases de datos, dando antecedentes de los primeros sistemas
de información con un enfoque meramente teórico con
ejemplos de sistemas comerciales. En la aplicación práctica el
participante tendrá conceptos firmes de los distintos modelos de
bases de datos existentes y podrá evaluar alternativas eficientes
para la implementación de sistemas de información.

1
Página

3443
DEPARTAMENTO DE INGENIERÍA 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 Ingeniería “Arturo Narro Siller”, en la
Universidad Autónoma de Tamaulipas.

Es importante mencionar, que la información aquí utilizada es totalmente extraída


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

Academia de Tratamiento de Información


Página

Tampico, Tamps, Enero del 2016

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Contenido

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


1. 1 Introducción ............................................................................................................................. 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 Abstracción 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 definición de datos (Data Definition Language (DDL)) ...................................... 12
Lenguajes de Manipulación de Datos (Data Manipulation Language (DML)) ........................ 13
1.10 Independencia de Datos ........................................................................................................ 13
Independencia Física de Datos: ................................................................................................ 14
Independencia lógica de datos: ................................................................................................. 14
1.11 Definición de Manejador de Bases de Datos y sus responsabilidades ................................. 14
1.12 Definición De Administrador De Bases De Datos y Sus Responsabilidades. ....................... 15
1.13 Definición de usuarios de Bases de Datos ............................................................................ 15
2. MODELO ENTIDAD-RELACIÓN E-R .................................................................................. 17
2.1 Introducción al Modelo de Datos Entidad – Relación. ........................................................... 17
2.2 Definición de Entidades y Relaciones. .................................................................................... 17
2.3. Como se crean las Relaciones. ............................................................................................... 18
3
Página

2.4 Restricciones de asignación (MAPPING). .............................................................................. 19


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

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

2.6.- Uso de Diagramas Entidad – Relación................................................................................ 25


2.7 Procedimiento para Reducir Diagramas E – R a Tablas. ...................................................... 27
3. MODELO RELACIONAL ....................................................................................................... 33
3.1 Introducción al modelo Relacional ......................................................................................... 33
3.2. Estructura de las Base de Datos Relacionales....................................................................... 34
3.3 Diseño 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
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

1. INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

1. 1 Introducción

Un sistema de gestión de base de datos (DBMS Data Base Management System)


consiste en una colección de datos interrelacionados y un conjunto de programas para
acceder a esos datos. La colección de datos, normalmente denominada base de datos,
contiene información 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 información de la base de datos.

Los sistemas de base de datos están diseñados para gestionar grandes bloques de
información. La gestión de datos implica tanto la definición de estructura de
almacenamiento como la provisión de mecanismos para la gestión de la información.
Además, los sistemas de base deben mantener la seguridad de información almacenada,
pese a caídas del sistema o intentos de acceso no autorizados, y si los datos van hacer
utilizados por varios usuarios el sistema debe evitar posible resultado anómalo.

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

Considérese parte de una empresa bancaria que guarda información sobre todos sus
clientes y las cuentas de ahorros en archivos permanentes en el banco. Además, 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:


Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

 Un programa para hacer cargos o abonos en una cuenta,


 Un programa para añadir una nueva cuenta,
 Un programa para obtener el saldo de una cuenta,
 Un programa para generar estados de cuenta mensuales.

Estos programas de aplicación, los han escrito programadores de sistemas en


respuesta a las necesidades de la organización bancaria. Según surge la necesidad, se
añaden nuevos programas de aplicación. Por ejemplo, supóngase 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 información


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

El típico 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 número de diferentes programas de aplicación para extraer
registros y añadir registros a archivos apropiados. Este sistema tiene un número 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,


Página

 Aislamiento de los datos,

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

 Anomalías 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 información almacenada en la base de datos debe estar protegida contra accesos


no autorizados, destrucción o alteración con fines indebidos e introducción accidental de
inconsistencias. Hasta ahora hemos considerado solamente como prevenir la perdida
accidental de la integridad de la información. En este apartado examinaremos las formas en
las que se producen el mal uso de la información 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 pérdida accidental de la consistencia de los datos puede deberse
a:

 Caídas durante el proceso de las transacciones.


 Anomalías por acceso concurrente a la base de datos,
 Anomalías que resultan de la distribución de los datos entre varias
computadoras.

Un error lógico que se presenta cotidianamente es la suposición de que las


7
transacciones respetan las protecciones de consistencia de la base de datos.
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Es más fácil 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 autorización (robo de información)


 Modificación de datos sin autorización
 Destrucción 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 prácticamente
todos los intentos de acceder a la base de datos sin autorización debida. El termino
seguridad de la base de datos normalmente se refiere a la protección contra el acceso mal
intencionado mientras que integridad se refiere a la protección contra una perdida
accidental de consistencia. En la práctica, la línea que separa la seguridad de la integridad
no siempre está bien definida. Aquí, si utilizaremos el término seguridad para referirnos
tanto a la seguridad como a la integridad en los casos en que la distinción entre estos dos
conceptos no sea esencial.

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


niveles:

1.- Físico. La localidad o localidades que contienen a los sistemas de


computadoras deben protegerse físicamente contra la penetración armada o
clandestina de intrusos.
8
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

2.- Humano. Debe tenerse mucho cuidado al conceder autorización 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 autorización a la base de datos. Dado que casi
todos los sistemas de base de datos permiten acceso remoto a través de
terminales o redes, la seguridad a nivel software dentro del sistema
operativo, es tan importante como la seguridad física.

4.- Sistema de Base de Datos. Puede darse el caso de que algunos usuarios
estén autorizados solo para tener acceso a una porción limitada de una base
de datos. Es posible también que algunos usuarios se les permitan tener
consultas, pero se les prohíbe modificar la base de datos. El sistema de base
de datos tiene la responsabilidad de garantizar que no se violen estas
restricciones.

1.5 Abstracción y Sus Niveles

Un sistema de gestión de base de datos es una colección 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 versión abstracta de los datos. Es decir, el sistema esconde
ciertos detalles de cómo se almacenan y mantienen los datos. Sin embargo, para que el
9

sistema sea manejable los datos se deben extraer eficientemente. Este requerimiento ha
Página

llevado al diseño de estructura de datos complejos para la representación de los datos en la

3443
DEPARTAMENTO DE INGENIERÍA 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 través de diversos niveles de
abstracción para simplificar su interacción con el sistema. Estos niveles son:

Nivel Físico.- Es el nivel más bajo de abstracción describe como se almacena


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

Nivel Conceptual.- Describe el siguiente nivel más alto de abstracción. Se definen


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

Nivel De Visión.- Es el nivel más alto de abstracción, describe solo parte de la base
de datos completa. El sistema puede proporcionar muchas visiones para la misma base de
datos.

Visión Visión Visión Visión

Nivel Conceptual

Nivel Físico 10
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

1.6 Instancias

Las bases de datos cambian a lo largo del tiempo según se añaden y se suprime
información. A la colección de la información 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 diseño 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 abstracción. En el nivel más bajo esta el esquema físico, el esquema conceptual
es el siguiente nivel; y en el nivel más alto un sub esquema. En general, los sistemas de
base de datos soportan un esquema físico, 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, semántica asociada a los datos y relaciones
entre los mismos. Tres de los más extensamente conocidos son:

Modelos Lógicos Orientados a Objetos.- Estos modelos se caracterizan por


describir datos en los niveles conceptuales y de visión. Los más conocidos son seis: 11
 Entidad-relación
Página

 Orientado a objetos

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

 Semántico
 Funcional
 Binario
 Infológico de datos.

Modelo Lógico Orientado a Registros.- Estos modelos se utilizan para describir


datos en los niveles físico y conceptual

 Relacional
 Red
 Jerárquico

Modelo Físico de Datos.- Este modelo se utiliza para describir datos en el nivel
más bajo.
 Memoria de elementos
 Modelo unificador

1.9 Lenguajes de Bases de Datos

Lenguaje de definición 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
definición de datos (Data Definition Language (DDL)). El resultado de la compilación de
sentencias de DDL es un conjunto de tablas las cuales se almacenan en un archivo especial
12

llamado diccionario de datos ó directorio.


Página

3443
DEPARTAMENTO DE INGENIERÍA 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 Manipulación de Datos (Data Manipulation Language (DML))

Un lenguaje de manipulación de datos, es un lenguaje que capacita a los usuarios a


acceder ó modificar los datos según estén organizados por el modelo de datos adecuados.
Existen básicamente 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 más sencillos de aprender y usar


que los procedimentales. Sin embargo, puesto que el usuario no tiene que especificar cómo
conseguir los datos, estos lenguajes pueden generar código 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 definición de un


esquema de nivel superior se llama independencia de datos. Hay 2 niveles de independencia
13
de datos:
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Independencia Física de Datos:

Es la capacidad de modificar el esquema físico sin provocar que se vuelva a escribir


los programas de aplicación. En algunas ocasiones son necesarias las modificaciones en el
nivel físico para mejorar el funcionamiento.

Independencia lógica de datos:

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


escribir los programas de aplicación. Las modificaciones en el nivel conceptual son
necesarias siempre que se altera la estructura lógica de las bases de datos.

La independencia lógica de datos es más difícil de lograr que la independencia


física, ya que los programas de aplicación están fuertemente ligados a la estructura lógica
de los datos a los que se accede.

1.11 Definición 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
aplicación y consultas hechas del sistema. Entre sus responsabilidades están:

 Interacción con el gestor de archivos


 Implantación de la integridad
14
 Implantación de la seguridad

Página

Copia de seguridad y recuperación


 Control de concurrencia

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

1.12 Definición De Administrador De Bases De Datos y Sus Responsabilidades.

Una de las razones principales para tener un sistema de gestión 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:

 Definición de esquema
 Definición de la estructura de almacenamiento y del método de acceso
 Modificación del esquema y de la organización física
 Concesión de autorización para el acceso a los datos
 Especificación de las restricciones de integridad

1.13 Definición 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 aplicación: Profesionales en computación que


interactúan 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 aplicación
15
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Usuarios Sofisticados: Los usuarios sofisticados interactúan 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 interactúan con sistemas de diseño
asistido por computadora, sistemas expertos ó sistemas basados en
conocimientos - almacenan datos como audio, vídeo, gráficas, etc.

Usuarios Ingenuos: Estos usuarios interactúan con el sistema invocando


programas de aplicación escritos con anterioridad.

16
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

2. MODELO ENTIDAD-RELACIÓN E-R

2.1 Introducción al Modelo de Datos Entidad – Relación.

Un modelo de datos entidad – relación se basa en la percepción de un mundo real,


que consiste en un conjunto de objetos básicos llamados entidades y relaciones entre estos
objetos. Se desarrollo para facilitar el diseño de base de datos permitiendo la especificación
de un esquema empresarial. Este esquema representa la estructura lógica global de la base
de datos.

2.2 Definición 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 día
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 función que asigna un conjunto de entidades a un dominio.
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Una relación es una asociación entre varias entidades.

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


formalmente es una relación matemática 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 relación.

2.3. Como se crean las Relaciones.

Puesto que la noción 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


número_teléfono. Se puede argumentar fácilmente que un teléfono es una entidad en sí
mismo con atributos número_teléfono y situación (la oficina donde está colocado el
teléfono). 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 Teléfono con atributos número_teléfono y situación.


18
Página

El conjunto de relaciones Empl-Telf, que indica la asociación entre los empleados y


los teléfonos que tienen.

3443
DEPARTAMENTO DE INGENIERÍA 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 asignación (MAPPING).

Una planificación entidad – relación de una empresa puede definir ciertas


restricciones a las cuales deben ajustarse los contenidos de una Base de Datos. Una
restricción importante es la de las cardinalidades de asignación que expresan el número 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 asignación debe ser una de las siguientes:

19
Página

3443
DEPARTAMENTO DE INGENIERÍA 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
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Una a Muchas: Una entidad en A esta asociada con un número cualesquiera de


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

21
Página

3443
DEPARTAMENTO DE INGENIERÍA 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 número cualquiera de entidades
en A.

22
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Muchas a Muchas: Una entidad en A esta asociada con un número cualesquiera de


entidades en B. Una entidad en B está asociada con un número cualesquiera de entidades en
A.

23
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

2.5 Manejo de Atributos y Superclaves.

Es importante especificar cómo 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 términos de
sus atributos. El concepto de superclave es un conjunto de uno o más 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. Análogamente, la combinación 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 podrían tener el mismo nombre.

Usaremos el termino clave primaria para denotar una clave candidata que elija el
diseñador 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 débil. Un conjunto de entidades primarias que tienen una clave primaria se
denomina conjunto de entidades fuerte.

El discriminador de un conjunto de entidades débil es un conjunto de atributos que


permite que se haga esa distinción. Por ejemplo, el discriminador del conjunto de entidades
24
débil transacción, ya que para cada cuenta un número de transacción identifica de forma
única una única transacción.
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

2.6.- Uso de Diagramas Entidad – Relación.

Como vimos la estructura lógica global de un Base de Datos puede representarse


por medio de un diagrama entidad – relación. Un diagrama de este tipo consta de los
siguientes componentes:

Rectángulos: Que representan conjunto de entidades.

Elipses: Que representan atributos.

Rombos: Que representan conjuntos de relaciones.

Líneas: Que enlazan atributos a conjuntos de entidades y conjunto de entidades o conjunto


de enlaces.

25
Página

3443
DEPARTAMENTO DE INGENIERÍA 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: número_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 línea con dirección (--------) o
bien una línea sin dirección (------------) entre los conjuntos de relación y el conjunto de
entidades de relación.

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
Página

3443
DEPARTAMENTO DE INGENIERÍA 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 fácil interpretación, y uno de
los modelos que permite llevar a cabo esta operación 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 relación a tablas se efectúan los


siguientes pasos:

1. Se crearán 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
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Ejemplo de un Diagrama Entidad – Relación (Proceso Renta de Videos)

28
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Tomando como referencia el ejemplo anterior, ahora reduciéndolo a tablas, quedaría


de la siguiente manera:

29
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

30
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

31
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

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

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

3. MODELO RELACIONAL

3.1 Introducción al modelo Relacional

Desde una perspectiva histórica, 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 jerárquico. Estos dos primeros modelos están más íntimamente ligados a
la implementación de la base de datos que el modelo relacional.

En los años siguientes a la introducción del modelo relacional se ha desarrollado


una teoría esencial para las base de datos relaciónales.

Esta teoría ayuda al diseño de base de datos relacionales y al procesamiento


eficiente de solicitudes de información 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 aplicación fuera de procesamiento de datos


en sistemas para diseño asistido por computadora y otros entornos.

33
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

3.2. Estructura de las Base de Datos Relacionales.

Una base de datos relacional consiste en una colección 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 relación entre un conjunto de
valores. Puesto que una tabla es una colección de dichas relaciones, hay una estrecha
correspondencia entre el concepto de tabla y el concepto matemático de relación, del cual
forma su nombre el modelo de datos relacional.

3.3 Diseño de Base de Datos Relacionales.

En general, el objetivo del diseño de una Base de Datos Relacional, es construir un


conjunto de esquemas de relaciones que nos permiten almacenar información sin
redundancia innecesaria, pero a la vez nos permita recuperar información fácilmente.

Una técnica mantenida consiste en diseñar esquemas que tengan una forma normal
adecuada.

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


necesitaremos información adicional sobre la empresa del mundo real que vamos a modelar
con la base de datos. En este capítulo definimos formas normales usando dependencias
funcionales y usando otros tipos de dependencia de datos.

34
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Peligros En El Diseño 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 diseñada. Entre las
propiedades indeseables que un mal diseño puede tener están:

a).- Repetición de información

b).- Incapacidad para representar cierta información.

c).- Perdida de información.

3.4 Lenguajes de Consultas

Lenguajes de consulta es un lenguaje en el que un usuario solicita información de la


base de datos. Estos lenguajes son normalmente de más alto nivel que los lenguajes
estándar de programación.

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 capítulo examinaremos dos lenguajes PUROS: El álgebra relacional que es


un lenguaje procedimental y el Cálculo relacional de dominios que es un lenguaje No
35
procedimental.
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Estos lenguajes de consulta son concisos y formales, a falta de “azúcar sintáctico”


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

Un lenguaje de manipulación de datos completo incluye no solo un lenguaje de


consulta sino también un lenguaje para la modificación 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
Página

Brighton 217 Green 750

3443
DEPARTAMENTO DE INGENIERÍA 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
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Préstamo

Nombre _ sucursal Número _ préstamo 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
Página

3443
DEPARTAMENTO DE INGENIERÍA 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
Página

3443
DEPARTAMENTO DE INGENIERÍA 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 relación como
resultado.

Las operaciones fundamentales en el álgebra relacional son: seleccionar, proyectar,


producto cartesiano, renombrar, unión y diferencia de conjuntos además de las
operaciones fundamentales existen otras operaciones como son: la intersección de
conjuntos, producto natural y asignación. Estas operaciones se definirán en términos 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 relación.

Las otras tres operaciones producto cartesiano, unión y diferencia de conjuntos


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

40
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Operación Seleccionar (σ):

La operación seleccionar selecciona tuplas que satisface un predicado dado. Usamos


la letra griega sigma ( ) para indicar la selección. El predicado aparece como subíndice de
sigma p.

Ejemplo 1:

Seleccionar aquellas tuplas de la relación préstamo en las que la sucursal es


“Perryridge”

 nombre_sucursal=”Perryridge” (prestamo)

Ejemplo 2:

Seleccionar de la relación 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
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Operación Proyectar (π):

La operación proyectar trabaja de manera similar a la operación seleccionar. Es una


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

La operación proyectar se indica con la letra griega (), como subíndice y separado
por comas se indican los atributos que se desean en la salida; por lo general se ve asociada
de manera implícita con la operación seleccionar. La relación argumento se indica entre
paréntesis.

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 estén localizados en la ciudad de Brooklyn.

Π nombre_sucursal (activo  500,000 ۸ activo≤ 750,000 ۸ciudad_sucursal  “Brooklyn“ ) (sucursales)

Ejemplo 3:

Encontrar toda la información de los clientes

Π nombre_cliente, calle, ciudad_cliente (cliente)


42
Página

3443
DEPARTAMENTO DE INGENIERÍA 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 información 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 Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

Operación 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 minúscula (ρ) permite realizar esta tarea. Dada una expresión E del álgebra
relacional, la expresión ρ x (E) devuelve el resultado de la expresión E con el nombre de x.

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


relacional. Por tanto también se puede aplicar la operación renombramiento a una relación r
para obtener la misma relación con un nombre nuevo.

OPERACIÓN UNION DE CONJUNTOS:

Para que una operación unión r U s sea válida exigimos que se cumplan dos
condiciones:

1.- Las relaciones R y S deben tener el mismo número de atributos.

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

Considere ahora una consulta que podría plantearse por un departamento de


publicidad de un banco.

Ejemplo 1:

Encontrar a todas las personas que tienen un préstamo, una cuenta o ambos en la
44
sucursal Perryrigde
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

(prestamo)

 nombre_cliente ( nombre_sucursal = “Perryridge ”)

(deposito)

 nombre_cliente ( nombre_sucursal = “Perryridge ”)

DIFERENCIA DE CONJUNTOS:

La operación diferencia de conjuntos, representada por el símbolo (-), nos permite


encontrar aquellas tuplas que están en una relación pero no en otra. La expresión r-s da
como resultado una relación que contiene aquellas tuplas que están 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 préstamo.

(deposito)

 nombre_cliente ( ciudad_cliente = “Perryridge” )

(prestamo)

 nombre_cliente ( nombre_cliente = “perryridge” )


45
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

PRODUCTO CARTESIANO:

Las operaciones que hemos tratado hasta este punto nos permiten extraer
información únicamente de una relación cada vez. Todavía no hemos podido combinar
varias relaciones.

Una operación que nos permite hacer esto, es la operación producto cartesiano,
representada por una cruz. Esta operación es una operación binaria. Usaremos notación
infija, para operaciones binarias y así, escribimos el producto cartesiano de las relaciones r1
y r2 como r1Xr2 . Recuérdese que una relación se define como un subconjunto de un
producto cartesiano de un conjunto de dominios. Partiendo de esta definición ya
deberíamos tener una intuición de la definición de la operación producto cartesiano del
álgebra relacional.

Ejemplo 1:

Encontrar el nombre de la calle y la ciudad, así como los números de préstamo 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 depósitos y préstamo efectuado por el cliente Jones.
46
Página

3443
DEPARTAMENTO DE INGENIERÍA 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 expresión, el álgebra relacional, damos una secuencia de


procedimientos que generan la respuesta a nuestra consulta. El cálculo relacional de tuplas,
en cambio es un lenguaje de consultas no procedimental. Describe la información deseada
sin dar un procedimiento especifico para obtener esa información.

Una consulta de calculo relacional de tuplas se expresa como:

{ t |t  p (t ) }
47
Página

3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES

es decir, el conjunto de todas las tuplas t, tal que el predicado p, es verdadero para t.
Siguiendo la notación 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 relación 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 relación r.

Antes de dar una definición 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 préstamo, 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


Página

3443
DEPARTAMENTO DE INGENIERÍA 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
Página

3443
DEPARTAMENTO DE INGENIERÍA 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
Página

3443

También podría gustarte