Antologías para Bases de Datos Corporativas · SISTEMAS COMPUTACIONALES 3443 a 1 G.IT18.103...
Transcript of Antologías para Bases de Datos Corporativas · SISTEMAS COMPUTACIONALES 3443 a 1 G.IT18.103...
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
G.IT18.103
Fundamentos de Bases de Datos Ing. Luis Armando García Eliseo
Agosto
2017 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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
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
Tampico, Tamps, Enero del 2016
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
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
2.4 Restricciones de asignación (MAPPING). .............................................................................. 19
2.5 Manejo de Atributos y Superclaves. ........................................................................................ 24
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
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
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina5
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
de estos archivos; entre las aplicaciones que se encuentran podemos mencionar:
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina6
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,
Dificultad para tener acceso a los datos,
Aislamiento de los datos,
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina7
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
transacciones respetan las protecciones de consistencia de la base de datos.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina8
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina9
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
sistema sea manejable los datos se deben extraer eficientemente. Este requerimiento ha
llevado al diseño de estructura de datos complejos para la representación de los datos en la
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
0
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
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
1
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:
Entidad-relación
Orientado a objetos
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
2
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
llamado diccionario de datos ó directorio.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
3
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
de datos:
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
4
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
Implantación de la seguridad
Copia de seguridad y recuperación
Control de concurrencia
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
5
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
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
6
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
7
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
atributo es una función que asigna un conjunto de entidades a un dominio.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
8
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.
El conjunto de relaciones Empl-Telf, que indica la asociación entre los empleados y
los teléfonos que tienen.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina1
9
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:
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
0
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
1
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
2
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
3
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
4
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
débil transacción, ya que para cada cuenta un número de transacción identifica de forma
única una única transacción.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
5
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
6
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)
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
7
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
8
Ejemplo de un Diagrama Entidad – Relación (Proceso Renta de Videos)
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina2
9
Tomando como referencia el ejemplo anterior, ahora reduciéndolo a tablas, quedaría
de la siguiente manera:
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
2
Es recomendable que realices cuando menos tres ejercicios mas, para dominar este
procedimiento.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
3
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
4
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
5
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
procedimental.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
6
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
Red Wood 222 Lindsay 700
Brighton 217 Green 750
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
7
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
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
8
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
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina3
9
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
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
0
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
1
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)
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
2
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.
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.
Ejemplo 3:
Encontrar toda la información de los clientes
π calle (ciudad_cliente = “Brooklyn”) (cliente)
Π nombre_sucursal (activo 500,000 ۸ activo≤ 750,000 ۸ciudad_sucursal “Brooklyn“ ) (sucursales)
Π nombre_cliente, calle, ciudad_cliente (cliente)
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
3
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.
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_cliente, calle ( calle = “Main” ۷ “calle = Spring”) (cliente)
nombre_sucursal( activo >750,000 ۸ ciudad_sucursal = “Palo Alto” ۷ ciudad_sucursal = “Rye” ۷ ciudad_sucursal = “Brooklyn” ) (sucursal)
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
4
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
sucursal Perryrigde
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
5
(prestamo)
nombre_cliente ( nombre_sucursal = “Perryridge ”)
U
(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” )
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
6
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.
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
7
(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 ) }
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
8
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 )
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina4
9
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:
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
Pág
ina5
0
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 “ }