Professional Documents
Culture Documents
SISTEMAS COMPUTACIONALES
G.IT18.103
Fundamentos Agosto
de Bases de
Datos
Ing. Luis Armando Garca
2017
Eliseo
1
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
Contenido
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
4
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
1. 1 Introduccin
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.
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
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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:
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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.
sistema sea manejable los datos se deben extraer eficientemente. Este requerimiento ha
Pgina
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 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
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.
Orientado a objetos
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
Semntico
Funcional
Binario
Infolgico de datos.
Relacional
Red
Jerrquico
Modelo Fsico de Datos.- Este modelo se utiliza para describir datos en el nivel
ms bajo.
Memoria de elementos
Modelo unificador
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.
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
16
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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.
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
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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
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
23
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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.
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
25
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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.
Una a Muchas
Muchas a Una
Muchas a Muchas
Una a Una
26
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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.
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
28
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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
33
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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.
Una tcnica mantenida consiste en disear esquemas que tengan una forma normal
adecuada.
34
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
Cliente
37
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
Prstamo
38
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
Sucursal
39
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
40
Pgina
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
Ejemplo 1:
nombre_sucursal=Perryridge (prestamo)
Ejemplo 2:
Ejemplo 3:
Seleccionar todas aquellas sucursales que manejen activos superiores a los 500,000
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
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:
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.
Ejemplo 3:
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.
Ejemplo 5:
Mostrar toda la informacin contenida en la tabla cliente omitiendo a aquellas personas que
vivan en la ciudad de Stamford
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 ()
Para que una operacin unin r U s sea vlida exigimos que se cumplan dos
condiciones:
2.- Los dominios de los atributos de R iesimo y del S iesimo deben ser el mismo.
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)
(deposito)
DIFERENCIA DE CONJUNTOS:
Ejemplo1:
Encontrar los nombres de aquellos clientes de la sucursal perryridge que tienen una
cuenta all, pero no un prstamo.
(deposito)
(prestamo)
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)
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)
( ) select *
( ) nombre=nombre_cliente = Jones
{ 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:
Algebra Relacional:
(prestamos)
3443
DEPARTAMENTO DE INGENIERA EN
SISTEMAS COMPUTACIONALES
Calculo Relacional
Ejemplo 2:
Encontrar todas aquellas sucursales que manejen activos superiores a los 500,000
Algebra Relacional
( sucursal )
Calculo Relacional
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)
^ nombre_cliente = Jones
Calculo Relacional
50
Pgina
3443