Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Antología de Fundamentos de Base de Datos PDF
Antología de Fundamentos de Base de Datos PDF
SISTEMAS COMPUTACIONALES
G.IT18.103
Fundamentos Agosto
de Bases de
Datos
Ing. Luis Armando García
2017
Eliseo
1
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
Contenido
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
4
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
1. 1 Introducción
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.
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
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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:
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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.
sistema sea manejable los datos se deben extraer eficientemente. Este requerimiento ha
Página
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 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.
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
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.
Orientado a objetos
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
Semántico
Funcional
Binario
Infológico de datos.
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
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.
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
16
Página
3443
DEPARTAMENTO DE INGENIERÍA 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 día
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 función que asigna un conjunto de entidades a un dominio.
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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.
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
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
23
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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.
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
25
Página
3443
DEPARTAMENTO DE INGENIERÍA 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 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.
Una a Muchas
Muchas a Una
Muchas a Muchas
Una a Una
26
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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.
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
28
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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
33
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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.
Una técnica mantenida consiste en diseñar esquemas que tengan una forma normal
adecuada.
34
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
3443
DEPARTAMENTO DE INGENIERÍA 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 INGENIERÍA EN
SISTEMAS COMPUTACIONALES
Cliente
37
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
Préstamo
38
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
Sucursal
39
Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
40
Página
3443
DEPARTAMENTO DE INGENIERÍA 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 INGENIERÍA EN
SISTEMAS COMPUTACIONALES
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:
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:
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.
Ejemplo 5:
Mostrar toda la información 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 Página
3443
DEPARTAMENTO DE INGENIERÍA EN
SISTEMAS COMPUTACIONALES
Para que una operación unión r U s sea válida 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 préstamo, una cuenta o ambos en la
44
sucursal Perryrigde
Página
3443
DEPARTAMENTO DE INGENIERÍA 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 préstamo.
(deposito)
(prestamo)
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)
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)
( ) select *
( ) nombre=nombre_cliente = “Jones”
{ 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:
Algebra Relacional:
(prestamos)
3443
DEPARTAMENTO DE INGENIERÍA 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
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)
^ nombre_cliente = “Jones “
Calculo Relacional
50
Página
3443