Escolar Documentos
Profissional Documentos
Cultura Documentos
..
Es un conjunto de elementos
interrelacionados formando un
todo, que buscan alcanzar un
conjunto de objetivos.
Sistemas
naturales
Sistema planetario solar
Clasificaci
n de
Sistemas
Entrada
de datos
Procesamiento
clasificacin
ordenamiento
clculos
retroalimentacin
ACCIONISTAS
Salida de la
informacin
COMPETIDORES
CLIENTES
PRECISA
OPORTUNA
SIGNIFICATIVA
COHERENTE
SEGURA
Referenciales
Datos
Hardware
Software
Administrador
Usuarios
Directos
Estructurados
No estructurados ( texto, video, sonido )
CPU
Dispositivos perifricos
Sistema Operativo
Sistemas de gestin de Bases de Datos (SGBD)
Control de Comunicaciones
Aplicaciones especficas
Area de datos
Area Informtica
Informticos
No informticos
MENOR
MAYOR
Cantidad de
informacin
procesada y
generada
Cantidad de
informacin
utilizada en la
toma de
decisiones
MENOR
nombre cliente
2056
juan prez
Aplicacin 1
DatosCuentaCorriente
SISTEMA
DE
ARCHIVOS
Archivo de Ahorros
Num. Cliente
2056
Datos de Ahorros
nombre cliente
juan prez
redundancia
Aplicacin 3
Aplicacin 2
Archivo de prestamos
inconsistencia
Num. Cliente
2056
nombre cliente
juan prez
Datos de Prestamos
........ ........ ....... .......
Aplicacin 1
Archivo de Clientes
Num. Cliente
nombre cliente
2056
Archivo de
Cuentas
Corrientes
juan prez
Datos de
cuentas
corrientes
Archivo de
Cuentas de
Ahorros
Aplicacin 2
Datos de
cuentas de
ahorros
Datos de
Cuentas
Corrientes
Datos de
Cuentas de
Ahorros
Datos de
Prestamos
Archivo de
Prstamos
Datos de
prstamos
ENFOQUE
DE BASES
DE DATOS
Aplicacin 3
Riesgo de inconsistencias
Costos elevados
Es muy costoso hacer cambios a las aplicaciones, un
cambio trivial provoca una reaccin en cadena de otros
cambios. Adems el almacenamiento redundante
incrementa los costos.
En
Eningls
ingls:: DBMS
DBMS ((database
databasemanagement
managementsystem
system ))
Poder especificar
los tipos de
datos, las
estructuras y las
restricciones
Poder guardar
los datos en
algn medio de
almacenamiento
controlado por el
SGBD
Poder usar
funciones para
consultar o
actualizar la base
de datos y
generar informes
Diccionario de
Datos
Sistema de
gestin de
Base de datos
Base de datos
Control de Concurrencia
Un SGBD incluye software de control de concurrencia
( gestor de transacciones ) para asegurar que cuando
varios usuarios intenten actualizar los mismos datos, lo
hagan de manera controlada.
Control de Redundancia
Queda minimizada o controlada la repeticin del mismo
dato en diferentes archivos. De esta forma ya no se
desperdicia espacio de almacenamiento ni se producen
inconsistencias.
Restricciones de integridad
El SGBD debe ofrecer recursos para definir y hacer
cumplir ciertas restricciones de integridad sobre los
datos. Veamos algunos ejemplos : definir un tipo de dato,
las edades de colegiales ( 13 a 17 ), que un valor sea
nico ( cdigo de trabajador ), etc
Respaldo y Recuperacin
Todo SGBD debe contar con un subsistema de respaldo y
recuperacin, a fin de enfrentar exitosamente fallas de
hardware o de software. La idea es que despus de una
caida, se restaure la base de datos al estado en el que
estaba.
ELEMENTO
DE ESQUEMA
ESTUDIANTE
codEstud
nombre
ciclo
espec
nomCur
cred
depto
CURSO
codCurs
REQUISITOS
codCurs
CodCursRequisito
NOTAS
codCurs
codEstud
parc
trab
fin
PROFESOR
codProf
codCurs
nomProf
fechIngre
Tambin
Tambin conocido
conocidocomo
como
estado
estado de
dela
labase
basede
dedatos
datos
Es el conjunto de registros almacenados en la
base de datos, en un instante dado.
Las bases de datos cambian a lo largo del
tiempo, segn se aade o elimina informacin.
Una instancia de BD se puede comparar por
analoga a los datos colocados en arreglos ya
declarados en algn lenguaje de programacin.
CURSO
ESTUDIANTE
codEstud
nombre
ciclo
100
Ana
Contabilidad
150
Alex
Sistemas
250
Ins
Contabilidad
350
Max
Sistemas
REQUISITOS
codCurs
CodCursRequisito
S200
M100
S310
S200
M100
espec
codCurs
nomCur
cred
depto
M100
Matemtica I
S200
Algoritmos I
S310
Algoritmos II
NOTAS
codCurs
codEstud
parc
trab
fin
S200
350
11
16
13
S310
100
06
17
12
M100
250
17
13
18
PROFESOR
codProf
codCurs
nomProf
fechIngre
P100
S200
Prado
22/01/90
P200
M100
Horna
14/01/93
Usuarios finales
NIVEL
EXTERNO
NIVEL
CONCEPTUAL
NIVEL
INTERNO
Vista
Externa 1
Vista
Externa 2
...
Vista
Externa n
Correspondencia
externa/conceptual
ESQUEMA CONCEPTUAL
Correspondencia
conceptual/ interna
ESQUEMA INTERNO
BD ALMACENADA
Niveles de abstraccion
NIVEL EXTERNO Es conocido como el nivel de vistas de usuario.
Cada vista de usuario se conoce como subesquema o esquema
externo, donde cada uno de ellos describe alguna parte de la base
de datos. Oculta al usuario toda la base de datos restante.
NIVEL CONCEPTUAL
A este nivel se tiene el esquema de la base
de datos, que describe la estructura de toda la base de datos. El
esquema conceptual oculta los detalles de las estructuras fsicas
de almacenamiento y se concentra en describir entidades, tipos
de datos, relaciones, operaciones y restricciones
NIVEL INTERNO o FISICO
Data
manipulation
language
Programadores
Escriben aplicaciones, donde incrustan comandos DML para
interactuar con el sistema
Usuarios normales
Interactan con el sistema mediante el uso de aplicaciones que
han sido escritos por informticos.
Usuarios sofisticados
Interactan con el sistema creando consultas con un lenguaje
de consulta, las cuales entran al procesador de consultas que
transforma las instrucciones DML, para ser entendidas por el
gestor de almacenamiento.
Usuarios
normales
Programadores
de aplicaciones
Usuarios
sofisticados
Administrador de
Base de Datos
Interfaces de
aplicaciones
Programas de
aplicacion
Consulta
Esquema de
base de datos
Precompilador
del DML
Cdigo objeto
de las
aplicaciones
compilador
del DML
Interprete
del DDL
Motor de evaluacin de
consultas
Gestor de
transacciones
Usuarios
Procesador
de
Consultas
Gestor de
almacenamiento
Gestor de archivos
Archivos de datos
estadstica
indices
Diccionario de datos
Sistema
de gestin
de base de
datos
CONCEPTOS PRINCIPALES
ENTIDA
Es una cosa u objeto del mundo real que es
D distinguible de todos los dems objetos ( de un grupo de
alumnos, un alumno es una entidad )
RELACIONES
pertenece a
departamento
ATRIBUTOS
Tipo de entidades
Tipo de entidades dbil
Relacin
Atributo
Atributo clave
Atributo multivaluado
Atributo compuesto
Atributo derivado
E1
E1
E2
E2
Participacin total de E2 en R
Cardinalidad 1:N para E1:E2 en R
CLIENTE
CLIENTE
coloca
coloca
Es colocada
ORDEN DE
COMPRA
ORDEN DE
COMPRA
CONCEPTOS PRINCIPALES
ENTIDA
Es una cosa u objeto del mundo real que es
distinguible de todos los dems objetos ( Ejemplo : de un
D
grupo de alumnos, un alumno es una entidad )
ATRIBUTOS
TIPO DE ENTIDADES
TIPOS DE
RELACIONE
S
pertenece a
departamento
CLASIFICACION DE
ENTIDADES :
TANGIBLES
Cliente, articulo, factura
CONCEPTUALES
Centro de costo
EVENTOS
Sesion tecnica, averia de equipo, etc
Tipo de entidades
Tipo de entidades dbil
Relacin
Atributo
Atributo clave
Clave parcial
( Corresponde a
una entidad dbil )
Atributo multivaluado
Atributo compuesto
Atributo derivado
E1
E2
R
1
E1
(min , max)
Participacin total de E2 en R
E2
1. Simples o compuestos
2. Monovaluados o Multivaluados
3. Almacenados o Derivados
Atributo Simple
Son atributos que se visualizan o conceptualizan como un solo
valor. Ejemplo :
direccin
CLIENTE
Atributo Compuesto
Son atributos que se han dividido en componentes mas
pequeos. Por ejemplo el atributo direccin de una entidad
cliente, se puede subdividir en domicilio, ciudad y pais :
Direccion = Angamos 1535-201, Lima, Per
Domicilio = Angamos 1535-201
Direccin
Ciudad = Lima
Pas = Per
Atributo Compuesto
ciudad
domicilio
pais
direccin
CLIENTE
Atributo Compuesto
Estos atributos pueden formar una jerarqua
Direccin
Domicilio
calle
numero
Ciudad
departamento
Pas
Atributo Monovaluado
Estos atributos tienen un solo valor. Por ejemplo el
atributo edad :
edad
ALUMNO
Atributo Multivaluado
Es el caso en que un atributo puede tener un conjunto de
valores para la misma entidad. Por ejemplo el atributo
aficiones, asi una persona podra tener mas de una aficin :
rugby, filatelia, lectura.
aficin
FUNCIONARIO
area
Atributo Almacenado
Es el que mantiene sus valores almacenados en algn medio
persistente. Por ejemplo el atributo fechaNacimiento
fechaNacimiento
FUNCIONARIO
Si se desea trabajar
con este valor,
simplemente se le
extrae directamente
de su medio de
almacenamiento
Atributo Derivado
Es el que se obtiene en forma indirecta, normalmente a partir
de algn atributo almacenado. Por ejemplo el atributo edad ,
se puede obtener a partir del atributo fechaNacimiento y de la
fecha actual ( obtenible del S.O ).
edad
ALUMNO
EMPLEADO
CLIENTE
MEDICO
coloca
ORDEN DE
COMPRA
trata
PACIENTE
da
recibo
RELACION
SIMPLE
MULTIRELACION
PROFESOR
coloca
dicta
ORDEN DE
COMPRA
GRADO 2
CURSO
GRADO 3
AULA
compra
ARTICULO
compra
ARTICULO
Pertenece
a
DEPARTAMENTO
trabajador
Pertenece
a
patrn
DEPARTAMENTO
EMPLEADO
Pertenece
a
supervisado
supervisor
supervisin
DEPARTAMENTO
EMPLEADO
Pertenece
a
DEPARTAMENTO
( de DER a IZQ )
A un Departamento pertenecen muchos empleados
1. RAZON DE CARDINALIDAD
2. RESTRICCION DE PARTICIPACION
(1,1)
(1,N)
(M,N)
EMPLEADO
dirige
DEPARTAMENTO
visita
CLIENTE
ALUMNO
matricularse
CURSO
ORDEN
tiene
ARTICULO
EMPLEADO
dirige
DEPARTAMENTO
(1,1)
EMPLEADO
Pertenece a
DEPARTAMENTO
(1,N)
ORDEN
tiene
ARTICULO
(M,N)
1. TOTAL
2. PARCIAL
Pertenece
a
DEPARTAMENTO
EMPLEADO
DEPARTAMENTO
PROFESOR
tiene
OFICINA
IDENTIFICAR ENTIDADES
Primero identificar tipos de entidades, para ello buscar objetos sustantivos
o importantes, tal que a la organizacin le sera til almacenar informacin
sobre ellos. Entonces dar nombre a los tipos de entidades
Cuales son los atributos que identificaran a estas entidades ?
Identificar el atributo clave
VENDEDOR
Atributos
Atributo
clave
codVend
nombre
apellido
fechNac
codVend
CLIENTE
codClien
nombre
apellido
fono
fax
interes
codClien
CONSULTOR
codConsul
nombre
apellido
fechNac
especiald
codConsul
SESION
numSesion
fecha
codClien
codConsul
numSesion
codClien
Trabaja
con
CLIENTE
VENDEDOR - CONSULTOR
VENDEDOR
accesa
CONSULTOR
CONSULTOR- CLIENTE
CONSULTOR
informa
CLIENTE
CLIENTE - SESION
CLIENTE
asiste
SESION
CONSULTOR - SESION
CONSULTOR
asiste
SESION
DEFINIR CARDINALIDAD
1
VENDEDOR
VENDEDOR
CLIENTE
CONSULTOR
accesa
CONSULTOR
asiste
CLIENTE
CONSULTOR
informa
asiste
Trabaja
con
CLIENTE
SESION
SESION
DEFINIR PARTICIPACION
1
VENDEDOR
M
VENDEDOR
accesa
CONSULTOR
CLIENTE
CONSULTOR
asiste
CLIENTE
CONSULTOR
informa
asiste
Trabaja
con
CLIENTE
SESION
SESION
CONSTRUIR DE DIAGRAMA
ENTIDAD - RELACION
VENDEDOR
CLIENTE
accesa
1
asiste
informa
CONSULTOR
Trabaja
con
asiste
SESION
Notacin Martin
AUTOR
escribe
LIBRO
Trabaja
con
Edita y
produce
EDITOR
imprime
Entrega
original
IMPRENTA
Notacin Martin
EJEMPLO :
Cuando obtenemos un prstamo de una entidad crediticia, nos
comprometemos a pagarlo mediante una secuencia de pagos. De aqu
podemos notar que aparecen dos entidades : prstamo y pago .
Consideremos que los atributos son :
prstamo
importe
numPago
fechaPrest
posee
fechaPago
pago
( mn , max )
Consiste en asociar un par de nmeros enteros (mn, mx) a cada
participacin de un tipo de entidades E en un tipo de relaciones R,
donde : 0 <= mn <= mx >= 1
INTERPRETACION :
1. Los nmeros significan que, para cada entidad e de E, e debe
participar en por lo menos mn y cuando mas en mx ejemplares de
relaciones de R en todo momento ( cardinalidad ).
2. Cuando mn = 0 , implica participacin parcial y cuando mn > 0 implica
participacin Total.
( mn , mx )
Cardinalidad : Un empleado dirige 0 UN Departamento ( UNO a UNO )
Participacin : No todo empleado dirige un Departamento
(0,1)
EMPLEADO
dirige
(1,1)
( PARCIAL )
DEPARTAMENTO
( UNO a UNO )
( TOTAL )
empleado
(0,N)
posee
(1,1)
hijos
fechNac
nombre
sexo
NOMBRE :
DNI :
FONO :
DIRECCION :
SEXO :
FECHA INSCRIPCION :
NOMBRE EMPRESA :
RUC :
DIRECCION :
Fecha
Hora
Doctor
CMP
Especialidad
Diagnstico
Notacin Martin
PACIENTE
tiene
pertenece
codigo
nombre
direc
fono
dni
sexo
fechInsc
ATENCION
fecha
hora
diagnostico
EMPRESA
nombre
direc
ruc
hacer
DOCTOR
nombre
cmp
especialidad
MULTINACIONAL
Una gran multinacional en el Per es duea de varios bancos, los cuales
poseen muchas sucursales. La informacin relevante de los bancos es
nmero de banco, nombre y direccin. Para las sucursales el nmero de
la sucursal y la direccin.
Las sucursales son responsables de crear todas las nuevas cuentas o
brindar los prstamos que requieran los clientes.
Es importante para la organizacin almacenar los nmeros de cuenta ,
los saldos y el tipo de cuenta ( ahorro, cta corriente, plazo ) . Igualmente
informacin sobre el nm. de prstamo, importe y la fecha del prstamo.
Los prstamos se pagan en cuotas para lo cual se almacena el nm. de
cuota, el monto y la fecha de pago.
Los clientes pueden tener varias cuentas o pedir los prestamos que
necesiten. Los datos del cliente son cdigo, nombre, direccin y
telfono.
Construya el DER
HOTEL 4 ESTRELLAS
Lima Beach es un hotel de cuatro estrellas que tiene una clientela muy
seleccionada, y gracias a la calidad del servicio que brinda, cuenta con
una gran demanda. Por esta razn los clientes nicamente pueden
acceder a l, mediante reservaciones previas que son admitidas por un
empleado recepcionista, quien ingresa la reservacin a una
computadora, donde se registra adems del nombre del cliente, su
direccin y telfono, lo cual sirve para que en el futuro, el Hotel enve
tarjetas por onomstico o navidad, asi como folletines publicitarios.
Gran parte del negocio consiste en reservaciones que efectan algunas
empresas para reuniones de trabajo que por lo general duran todo un fin
de semana, pero el ingreso principal proviene de reservaciones que
realizan las personas naturales.
El promedio de ocupacin diaria del Hotel esta en un 80%, lo cual es
bastante bueno para este tipo de negocio y ello se debe al esmero en la
atencin de los clientes, pues se tiene una dotacin de empleados de
limpieza, donde cada empleado no atiende mas de 10 habitaciones.
HOTEL 4 ESTRELLAS
Se sabe tambin que tanto el recepcionista como los empleados de
limpieza reciben un porcentaje de los ingresos producidos por los
clientes.
Por otro lado el Hotel otorga un 20% de descuento cuando la reservacin
es hecha por una empresa y de 10% de descuento cuando la reservacin
es hecha por una persona natural por dos o mas habitaciones, lo cual se
hace efectivo ante la presentacin de la factura correspondiente.
Construya el DER
Los primeros en asociar una estructura de datos con una relacin fueron
los investigadores R.E. Levein y M.E. Maron por el ao de 1967.
Pero es Eddgar F. Codd quien en Junio de 1970 publica en el volmen 13,
nmero 6 de la revista cientfica Communications of the ACM, el artculo A
Relational Model of Data for Large Shared Data banks. Este artculo origin
que se empezaran a disear y desarrollar sistemas basados en la teora del
modelo Relacional.
El primero de los prototipos fue el PRTV (Peterlee Relational Test Vehicle )
desarrollado por el centro Cientfico de Peterlee, pero estaba muy sesgado a
problemas urbanos y de salud. El segundo prototipo se le llam XRM
( Extended Relational Memory) y fue de IBM. En 1978 se desarrollo el
Q.B.E., Query By Example. El prototipo base y mas completo fue el famoso
Sistema R, desarrollado por IBM (1980) y luego muchos ms. Ante esta
jungla de productos, Codd decidi establecer una referencia de 12 reglas
para sealar cuando un SGBD cumple con el modelo relacional o no. Hasta
la fecha no existe ningn SGBD que cumpla con todas las reglas.
Conceptos :
ATRIBUTO
codEstud nombre ciclo
TABLA
( relacin )
espec
100
Ana
Contabilidad
150
Alex
Sistemas
250
Ins
Contabilidad
350
Max
Sistemas
Tabla : ESTUDIANTE
Ciclo = 1 al 10
( DOMINIO )
TUPLA
( ocurrencia )
DOMINIO
R ( A1 , A2 , A3 , . . . . , An )
Donde :
( A1 , A2 , A3 , . . . . , An )
GRADO
dom( A i )
Ejemplo :
nombre del esquema de relacin
Atributos
CLIENTE
Grado = 5
Atributo A 1 = codCli ,
Atributo A 2 = nombre ,
Atributo A 3 = ruc ,
Dom ( A 1 ) = Conjunto de
nmeros de
5 dgitos
Dom ( A 2 ) = Conjunto de
nombres de
clientes
Dom ( A 3 ) = Conjunto de
nmeros de
8 dgitos
Una relacin
R ( A1 , A2
, . . . , An)
es denotado por : r ( R )
Una relacin r ( R ) es un conjunto de n-tuplas en un instante dado :
( filas )
t1
t2
t3
t4
espec
100
Ana
Contabilidad
150
Alex
Sistemas
250
Ins
Contabilidad
350
Max
Sistemas
relacin
Es una
instancia de
un esquema
de relacin
ESQUEMAS
DE RELACION
Para
normalizacin
De Integridad Referencial
De Dependencias de los datos ( funcionales y
multivaluadas)
SUPER CLAVE
De un esquema de relacin
No son superclaves :
{ nombre }
{ nombre, sexo }
conjuntos de
atributos
CLAVE
De un esquema de relacin
No es clave
{ codigo, nombre }
No es clave
No es clave
{ nombre, fechNac }
Es una clave
{ codigo }
Es una clave
CLAVE CANDIDATA
Es toda clave que se puede encontrar en un esquema de
relacin.
Por ejemplo, en el esquema de relacin anterior,
ESTUDIANTE ( codigo, nombre, direc, sexo, fechNac )
Son claves candidatas :
{ nombre, fechNac }
{ codigo }
CLAVE PRIMARIA
Es la clave candidata que se elige por que sus valores
sirven para identificar inequvocamente a las tuplas de la
relacin.
Por ejemplo, en el esquema de relacin anterior,
ESTUDIANTE ( codigo , nombre, direc, sexo, fechNac )
Especificando
clave primaria
Clave PRIMARIA
DEPARTAMENTO ( numDep , nombre, codJefe , fechIniJefe)
( FK ) Foreign Key
Clave FORANEA
Clave FORANEA
R1
EMPLEADO
codEm
nom
fechNac
direc
sexo suel
100
Tovar
15-07-57
Lomas 234
5400
400
300
Silva
07-03-65
Grau 935
4500
200
400
Sierra
22-10-67
Rosas 732
7200
700
150
Castro
12-11-72
America 912
2800
200
200
Rios
04-04-70
Vicus 138
700
Sillars
12-11-72
America 912
9800
nulo
600
Nieto
25-08-73
Flores 1731
4600
400
8700
codSuper nDep
700
Clave PRIMARIA
R2
numDep
nom
DEPARTAMENTO
codJefefe
fechIniJefe
Administracin
200
07-06-95
Ingeniera
400
11-07-92
Gerencia
700
14-10-90
EMPLEADO
codEm
nom
fechNac
direc
100
Tovar
15-07-57
Lomas 234
5400
400
300
Silva
07-03-65
Grau 935
4500
200
400
Sierra
22-10-67
Rosas 732
7200
700
150
Castro
12-11-72
America 912
2800
200
200
Rios
04-04-70
Vicus 138
600
Nieto
25-08-73
Flores 1731
700
Sillars
12-11-72
America 912
HIJOS
codEm
nomHjo
sexo
fechana
100
Norma
10-05-97
400
Cesar
11-08-93
100
Marco
07-11-95
600
Sofa
05-03-98
150
Alicia
25-05-86
sexo suel
codSuper nDep
8700
700
4600
400
9800
nulo
DEPARTAMENTO
numDep
nom
codJefefe
fechIniJefe
Ingeniera
400
11-07-92
Administracin
200
07-06-95
Gerencia
700
14-10-90
LUGARES_DEPA
TRABAJA_EN
cEmp
nProy
horas
300
70
100
40
400
38
nPry
600
45
150
200
nDep
lugarDep
Trujillo
Cuzco
Tacna
PROYECTO
nomPry
Lugar
nDepa
Reorga III
Trujillo
60
TurboDiesel
Tacna
50
Camisea II
Cuzco
EMPLEADO
codEm
nom
fechNac
direc
sexo
suel
codSuper
1.
FK hace referencia a su
propia relacin. Ver lmina
anterior.
2.
3.
nDep
2
DEPARTAMENTO
numDep
nom
codJefefe
fechIniJefe
LUGARES_DEPA
nDep
lugarDep
PROYECTO
nPry
nomPry
Lugar
TRABAJA_EN
cEmp
HIJOS
codEm
nomHjo
sexo
fechana
nProy
horas
nDepa
union
Interseccion
diferencia
Select
Project
Join
LA OPERACIN SELECT
Sirve para seleccionar un
subconjunto de las tuplas de una
relacin que satisfacen una
condicin de seleccin.
condicin
( NOMBRE RELACION )
nom
fechNac
direc
sexo suel
100
Tovar
15-07-57
Lomas 234
5400
400
300
Silva
07-03-65
Grau 935
4500
200
400
Sierra
22-10-67
Rosas 732
7200
700
150
Castro
12-11-72
America 912
2800
200
200
Rios
04-04-70
Vicus 138
600
Nieto
25-08-73
Flores 1731
700
Sillars
12-11-72
America 912
8700
codSuper nDep
700
4600
400
9800
nulo
codEm
nom
150
Castro
fechNac
12-11-72
direc
America 912
(EMPLEADO)
sexo suel
F
2800
codSuper nDep
200
nom
fechNac
direc
sexo suel
codSuper nDep
100
Tovar
15-07-57
Lomas 234
5400
400
300
Silva
07-03-65
Grau 935
4500
200
400
Sierra
22-10-67
Rosas 732
7200
700
150
Castro
12-11-72
America 912
2800
200
200
Rios
04-04-70
Vicus 138
600
Nieto
25-08-73
Flores 1731
700
Sillars
12-11-72
America 912
8700
700
4600
400
9800
nulo
nDep = 4
codEm
nom
fechNac
direc
300
Silva
07-03-65
Grau 935
150
Castro
12-11-72
200
Rios
04-04-70
sexo suel
(EMPLEADO)
codSuper nDep
4500
200
America 912
2800
200
Vicus 138
8700
700
nDep = 4
(EMPLEADO)
codEm
nom
fechNac
direc
sexo suel
300
Silva
07-03-65
Grau 935
150
Castro
12-11-72
200
Rios
04-04-70
codSuper nDep
4500
200
America 912
2800
200
Vicus 138
sexo suel
8700
700
codEm
nom
fechNac
direc
codSuper nDep
300
Silva
07-03-65
Grau 935
4500
200
200
Rios
04-04-70
Vicus 138
8700
700
(EMPLEADO)
codEm
nom
fechNac
direc
sexo suel
codSuper nDep
300
Silva
07-03-65
Grau 935
4500
200
200
Rios
04-04-70
Vicus 138
8700
700
nom
fechNac
direc
300
Silva
07-03-65
Grau 935
150
Castro
12-11-72
200
Rios
700
Sillars
sexo suel
(EMPLEADO)
codSuper nDep
4500
200
America 912
2800
200
04-04-70
Vicus 138
12-11-72
America 912
8700
2800
700
nulo
4
1
LA OPERACIN PROJECT
Permite seleccionar los atributos que se indiquen de una relacin. Genera
un listado con las columnas sealadas. Se puede combinar con el Select
Lista de atributos
( NOMBRE RELACION )
( EMPLEADO )
codEm
nom
100
Tovar
300
Silva
400
Sierra
150
Castro
200
Rios
600
Nieto
700
Sillars
(EMPLEADO)
codEm
nom
fechNac
direc
sexo suel
100
Tovar
15-07-57
Lomas 234
5400
400
400
Sierra
22-10-67
Rosas 732
7200
700
200
Rios
04-04-70
Vicus 138
700
700
Sillars
12-11-72
America 912
codEm
nom
suel
100
Tovar
5400
400
Sierra
7200
200
Rios
8700
700
Sillars
9800
8700
9800
codSuper nDep
nulo
LA OPERACIN JOIN
Permite combinar dos relaciones para formar una tercera, aplicando el
vinculo que existe entre dos relaciones por las claves fornea y primaria.
Existen diversos tipos de JOIN en los SGBD comerciales. Aqu veremos
dos tipos :
EQUI JOIN
NATURAL JOIN
EQUI JOIN
Al combinar dos relaciones R1 y R2 , concatena todos los atributos
de R1 y R2 , quedando repetidas las columnas de vnculo ( foreign
key / primary key ) , que como sabemos, poseen el mismo dominio.
NOTACION :
Igualdad de atributos
del vnculo
EQUI JOIN
Obtener los datos de proyectos y los nombres de los departamentos
responsables :
DEPARTAMENTO
Primary Key
SOLUCION :
PROYECTO
numDep
nDepa = numdep
nom
nomPry
Lugar
Ingeniera
400
11-07-92
Administracin
200
07-06-95
Gerencia
700
14-10-90
DEPARTAMENTO
Reorga III
Trujillo
TurboDiesel
Tacna
Camisea II
Cuzco
5
nPry
Foreign Key
RESULTADO
nDepa
fechIniJefe
PROYECTO
nPry
codJefefe
nomPry
Lugar
nDepa
numDep
Reorga III
Trujillo
TurboDiesel
Tacna
Camisea II
Cuzco
nom
codJefefe
fechIniJefe
Administracin
200
07-06-95
Ingeniera
400
11-07-92
Ingeniera
400
11-07-92
Nmero de departamento
esta repetido
EJERCICIO :
Repetir el ejercicio anterior, para mostrar nicamente el nombre del
proyecto y el departamento responsable :
nomPry, nom
nomPry, nDepa
nomPry
(PROYECTO )
nDepa = numDep
(DEPARTAMENTO)
numDep, nom
nDepa
numDep
nom
Reorga III
Ingeniera
TurboDiesel
Administracin
Camisea II
Gerencia
nomPry
nDepa
numDep
nom
Reorga III
Administracin
TurboDiesel
Ingeniera
Camisea II
Ingeniera
nomPry
nom
Reorga III
Administracin
TurboDiesel
Ingeniera
Camisea II
Ingeniera
nomPry, nom
nomPry, nDepa
DEPA_nd_nom
U_proy_dep
(PROYECTO )
nDepa = numDep
(DEPARTAMENTO)
numDep, nom
U_proy_dep
PROY_np_nd
DEPA_nd_nom
U_proy_dep
Nomp_Nomdep
nomPry, nDepa
(PROYECTO )
(DEPARTAMENTO)
numDep, nom
PROY_np_nd
nomPry, nom
nDepa = numDep
U_proy_dep
DEPA_nd_nom
NATURAL JOIN
Permite deshacerse del segundo atributo repetido en una condicin
de equi join. Es decir se busca eliminar los atributos superfluos.
NOTACION :
Atributo1 , atributo2
EJERCICIO :
Obtener los datos de proyectos y los nombres de los departamentos
responsables :
DEPARTAMENTO
numDep
PROYECTO
nDepa , numdep
nomPry
Lugar
Reorga III
Trujillo
TurboDiesel
Tacna
Camisea II
Cuzco
codJefefe
fechIniJefe
Ingeniera
400
11-07-92
Administracin
200
07-06-95
Gerencia
700
14-10-90
DEPARTAMENTO
PROYECTO
nPry
nom
RESULTADO
nDepa
nPry
nomPry
Lugar
nDepa
nom
Reorga III
Trujillo
Administracin
200
07-06-95
TurboDiesel
Tacna
Ingeniera
400
11-07-92
Camisea II
Cuzco
Ingeniera
400
11-07-92
Nmero de departamento
no esta repetido
codJefefe
fechIniJefe
La Operacin UNION
El resultado de esta operacin, denotada por R U T , es una relacin
que incluye todas las tuplas que estn en R o en T o en ambas. Las tuplas
repetidas se eliminan.
Notacin :
EJERCICIO :
TRABAJADOR
Cod
sueldo
nDpto
100
1500
400
2000
200
1800
700
1500
300
1800
(TRABAJADOR)
sueldo =1500
(TRABAJADOR)
sueldo = 1800
Cod
sueldo
nDpto
Cod
sueldo
nDpto
100
1500
200
1800
700
1500
300
1800
Cod
sueldo
nDpto
100
1500
700
1500
200
1800
300
1800
La Operacin INTERSECCION
U
Notacin :
TRABAJADOR
(TRABAJADOR)
sueldo >=1500
Cod
sueldo
nDpto
100
1200
400
2000
200
1800
700
1500
300
1300
EJERCICIO :
(TRABAJADOR)
Cod
sueldo
nDpto
Cod
sueldo
nDpto
400
2000
100
1200
200
1800
200
1800
700
1500
700
1500
300
1300
Cod
sueldo
nDpto
200
1800
700
1500
La Operacin DIFERENCIA
El resultado de esta operacin, denotada por R - T , es una relacin que
incluye todas las tuplas que estn en R pero no en T.
Notacin :
TRABAJADOR
Cod
sueldo
nDpto
100
1200
400
2000
200
1800
700
1500
300
1900
(TRABAJADOR)
Cod
sueldo
nDpto
400
2000
200
1800
300
1900
EJERCICIO :
nDpto = 5
Cod
sueldo
nDpto
400
2000
200
1800
(TRABAJADOR)
Cod
sueldo
nDpto
100
1200
700
1500
300
1900
RESUMEN DE EJERCICIOS :
EMPLEADO
codEm
nome
fechNac
direc
sexo suel
100
Tovar
15-07-57
Lomas 234
5400
400
300
Silva
07-03-65
Grau 935
4500
200
400
Sierra
22-10-67
Rosas 732
7200
700
150
Castro
12-11-72
America 912
2800
200
200
Rios
04-04-70
Vicus 138
600
Nieto
25-08-73
Flores 1731
700
Sillars
12-11-72
America 912
8700
codSuper nDep
700
4600
400
9800
nulo
DEPARTAMENTO
numDep
nomd
codJefefe
fechIniJefe
Ingeniera
400
11-07-92
Administracin
200
07-06-95
Gerencia
700
14-10-90
LUGARES_DEPA
TRABAJA_EN
cEmp
HIJOS
codEm
nomHjo
sexo
fechana
100
Norma
10-05-97
400
Cesar
11-08-93
100
Marco
07-11-95
600
Sofa
05-03-98
150
Alicia
25-05-86
nDep
lugarDep
nProy
horas
Trujillo
300
70
Cuzco
100
40
Tacna
400
38
600
45
150
60
nPry
200
50
PROYECTO
nomPry
Lugar
nDepa
Reorga III
Trujillo
TurboDiesel
Tacna
Camisea II
Cuzco
RESUMEN DE EJERCICIOS :
Obtener el nombre, direccin y el nombre de departamento de los
empleados que trabajan en el departamento Ingeniera
Solucin :
Notamos que el vnculo entre empleado y departamento es el nmero
de departamento. Por tanto podramos proyectar la relacin
empleados para obtener nombre, direccin con nmero de
departamento y proyectar tambin la relacin departamento para
obtener nombre de departamento con nmero de departamento, y
luego unirlos con un join natural y finalmente seleccionar a los que
trabajan en el departamento de Ingeniera
DAT_EMP
DAT_DEPT
nomd, numDep
(EMPLEADO )
(DEPARTAMENTO )
EMP_DEPT
DATEMP
ndep, numDep
DATDEPT
En el join natural, se
pierde el atributo
numdep
nomd = Ingeniera
EMP_DEPT
Seleccionando a
los que trabajan en
el departamento de
Ingeniera
nome
direc
nomd
Tovar
Lomas 234
Ingeniera
Sierra
Rosas 732
Ingeniera
Nieto
Flores 1731
Ingeniera
EJERCICIO :
Para cada proyecto cuyo lugar de ubicacin es Trujillo, dar el nmero
de proyecto, nmero de departamento que lo administra, el nombre del
jefe de ese departamento, su direccin y fecha de nacimiento.
EJERCICIO :
Obtener como datos, los nombres de los empleados y los nombres de
todos los proyectos donde trabajen, que estn controlados por el
departamento 5.
EJEMPLO :
Obtener todos los empleados cuyo sueldo sea mayor a
los 3,000 soles
SOLUCION :
{ t / EMPLEADO( t ) and t.SUELDO > 3000 }
La expresin EMPLEADO( t ) especifica que la relacin asociada
la variable de tupla t , es EMPLEADO.
Por tanto se obtendr el conjunto de tuplas t de EMPLEADO
que satisfagan la condicin t . SUELDO > 3000.
EJEMPLO :
Obtener todos los empleados cuyo sueldo sea mayor a
los 3,000 soles, pero considerar solo los atributos cdigo
y nombre.
SOLUCION :
barra
{ t.CODIGO , t.NOMBRE / EMPLEADO( t ) and t.SUELDO > 3000 }
Se obtendr el conjunto de tuplas t con las columnas
codigo y nombre de la relacin EMPLEADO, tal que
satisfagan la condicin t . SUELDO > 3000.
Cuantificador existencial :
Se llama as por que una expresin tal como : (
t ) ( COND )
Es TRUE si existe alguna tupla t que haga que COND sea TRUE
EJEMPLO :
Obtener el nombre y la direccin de todos los empleados que
trabajan en el departamento de Ingeniera
d ) ( DEPARTAMENTO( d ) and
d.NOMDEP = Ingeniera and
d.NUMDEP = t.NDEP
)
)
Como el join del
algebra relacional
EJERCICIO
suel
Un empleado esta
asignado a un
departamento
pat
nom
empleado
mat
numdepa
code
esta
asignado
En un departamento
estn asignados
muchos empleados
nomd
lugares
departamento
Un departamento
esta distribuido
en varios lugares
pat
nome
sex
fechNac
suel
mat
nom
empleado
numdepa
code
1
un cierto
empleado
lo dirige
esta
asignado
dirige
nomd
lugares
departamento
1
fechIni
pat
nome
sex
fechNac
suel
mat
nom
empleado
numdepa
code
esta
asignado
nomd
lugares
departamento
1
dirige
fechIni
Un empleado
puede trabajar en
varios proyectos
M
Trabaja
en
proyecto
lugar
horas
nomp
nump
pat
nome
sex
fechNac
suel
mat
nom
empleado
numdepa
code
esta
asignado
lugares
departamento
1
dirige
nomd
controla
fechIni
M
Trabaja
en
Cada departamento
controla varios
proyectos
proyecto
lugar
horas
nomp
nump
pat
nome
sex
fechNac
suel
mat
nom
empleado
supervisado
supervisin
esta
asignado
supervisor
numdepa
code
quien es el supervisor de
cada empleado. Se genera
aqu una relacin recursiva.
Ya que un empleado puede
ser supervisor o
supervisado
1
controla
fechIni
lugares
departamento
1
dirige
nomd
M
Trabaja
en
N
N
proyecto
lugar
horas
nomp
nump
pat
nome
sex
fechNac
suel
mat
nom
numdepa
code
empleado
esta
asignado
1
supervisin
controla
fechIni
N
M
1
los hijos que
tienen los
empleados
dirige
supervisado
N
N
Trabaja
en
tiene
lugares
departamento
supervisor
nomd
proyecto
lugar
horas
nomp
hijo
fechaNac
apemat
HIJO depende
existencialmente de
empleado, por tanto es
tipo de entidad dbil
sexo
nump
Clave parcial
departamento
1
dirige
fechIni
esta
asignado
lado N
departamento
controla
proyecto
Trabaja
en
proyecto
horas
Siempre es posible transformar las relaciones 1:1 o 1:N de manera similar a como se
hace con las relaciones M:N. Esto es til cuando hay pocos ejemplares de relaciones, a fin de
evitar valores nulos en las claves forneas. As la clave primaria de la relacin vinculo ser la
clave fornea de solo una de las relaciones entidad participantes.
En el caso de una relacin 1:N , esta ser la relacin entidad del lado N
En el caso de una relacin 1:1 se eligir la relacin entidad con participacin total ( si existe )
nome
pat
mat
suel
sex
DEPARTAMENTO
numdepa
nomd
codJefefe
fechIniJefe
LUGARES_DEPA
nDep
lugarDep
PROYECTO
nump
nomp
lugar
LABORA_EN
cEmp
nProy
HIJO
code
apemat
sexo
fechanac
horas
nDepa
EJEMPLO :
Un grupo de proveedores suministran repuestos a los
proyectos de una compaa que se dedica a la generacin
de energa elctrica.
cant
ruc
nom
codProv
PROVEEDOR
numProy
suministrar
codRep
nomProy
PROYECTO
descrip
REPUESTO
Integridad
Referencial :
PROVEEDOR
codProve nom
ruc
codProve
numProy
numProy
SUMINISTRAR
codRep
cant
PROYECTO
nomProy
codRep
REPUESTO
descrip
4500
ING
E
NIE
R
IA
AN
JU
EJEMPLO :
El significado del esquema de relacin empleado es sencillo :
cada tupla representa a un empleado, con valores para su
cdigo, nombre, fecha de nacimiento, sexo, sueldo y para el
numero de departamento al que pertenece ( nDep ). El
atributo nDep es una clave fornea que representa un vnculo
implcito entre empleado y departamento, es decir un
empleado pertenece a un departamento.
EMPLEADO
codEm
nom
fechNac
direc
sexo
suel
nDep
DEPARTAMENTO
numDep
nom
codJefefe
fechIniJefe
nom
fechNac
direc
suel
nDep nomDep
codJefe
100
Soler Ana
10-06-65
Flores 129
3400
Ingeniera
800
200
Alva Juan
19-03-67
Valles 722
6200
Ingeniera
800
250
Jobe Alan
11-09-69
Mar 1824
3600
Ventas
900
300
Vall Kate
05-02-75
Jan 181
2400
Ventas
900
800
Com Ivan
15-03-72
Grau 485
7600
Ingeniera
999
900
Kori Rony
07-12-59
Lomas 18
7200
Ventas
999
999
Pita Ins
25-03-72
Liz 1151
9500
Gerencia
999
Datos del
empleado
Datos del
departamento
nom
fechNac
direc
suel
nDep nomDep
codJefe
100
Soler Ana
10-06-65
Flores 129
3400
Ingeniera
800
200
Alva Juan
19-03-67
Valles 722
6200
Ingeniera
800
250
Jobe Alan
11-09-69
Mar 1824
3600
Ventas
900
300
Vall Kate
05-02-75
Jan 181
2400
Ventas
900
800
Com Ivan
15-03-72
Grau 485
7600
Ingeniera
999
900
Kori Rony
07-12-59
Lomas 18
7200
Ventas
999
999
Pita Ins
25-03-72
Liz 1151
9500
Gerencia
999
350
More Ann
15-11-75
Onda 156
3500
Ventas
800
mal
EMPLEADO
nom
fechNac
direc
suel
nDep nomDep
codJefe
100
Soler Ana
10-06-65
Flores 129
3400
Ingeniera
800
200
Alva Juan
19-03-67
Valles 722
6200
Ingeniera
800
250
Jobe Alan
11-09-69
Mar 1824
3600
Ventas
900
300
Vall Kate
05-02-75
Jan 181
2400
Ventas
900
800
Com Ivan
15-03-72
Grau 485
7600
Ingeniera
999
900
Kori Rony
07-12-59
Lomas 18
7200
Ventas
999
999
Pita Ins
25-03-72
Liz 1151
9500
Gerencia
999
nulos
Finanzas
950
Nuevo
departamento
nom
fechNac
direc
suel
nDep nomDep
codJefe
100
Soler Ana
10-06-65
Flores 129
3400
Ingeniera
800
200
Alva Juan
19-03-67
Valles 722
6200
Ingeniera
800
250
Jobe Alan
11-09-69
Mar 1824
3600
Ventas
Ventas
900
300
Vall Kate
05-02-75
Jan 181
2400
Ventas
900
800
Com Ivan
15-03-72
Grau 485
7600
Ingeniera
999
900
Kori Rony
07-12-59
Lomas 18
7200
Ventas
Ventas
999
999
Pita Ins
25-03-72
Liz 1151
9500
Gerencia
999
codEm
nom
fechNac
direc
suel
nDep nomDep
codJefe
100
Soler Ana
10-06-65
Flores 129
3400
Ingeniera
800
200
Alva Juan
19-03-67
Valles 722
6200
Ingeniera
800
800
Com Ivan
15-03-72
Grau 485
7600
Ingeniera
999
999
Pita Ins
25-03-72
Liz 1151
9500
Gerencia
999
nom
Soler Ana
fechNac
10-06-65
direc
suel
Flores 129
nDep nomDep
3400
Ingeniera
codJefe
950
800
Nos veramos obligados a actualizar todas las tuplas de todos los empleados
del departamento de Ingeniera. De lo contrario la base de datos se tornara
inconsistente.
SOLUCION A LAS ANOMALIAS : Descomponer la relacin, separando la
parte que es responsable de la generacin de las anomalas. En este ejemplo
seran los atributos del departamento que pasaran a formar una nueva
relacin :
EMPLEADO
codEm
nom
fechNac
direc
suel
nDep
DEPARTAMENTO
numDep
nomDep
codJefefe
Asegurarse de crear
el vnculo necesario :
FK - PK
EJEMPLO :
DEPARTAMENTO
Para este
ejemplo el
esquema
departamento
no esta en
1FN
numDep
nomDep
numDep
nomDep
codJefefe
lugaresDep
Grupo
repetitivo
lugaresDep
Ingeniera
400
Tacna
Ingeniera
400
Cuzco
Administracin
200
Trujillo
LA SOLUCION :
Es eliminar de la relacin departamento el atributo lugaresDep ( grupo
repetitivo) que viola la 1FN y colocarlo en otra relacin aparte que
llamaramos lugares_depa . Esta nueva relacin tendra como atributos : la
clave primaria de la relacin departamento ( para asegurar el vnculo entre
estas dos relaciones ) y lugarDep ( contiene los nombres de los lugares )
La clave primaria de esta nueva relacin es la combinacin :
{ numDep , lugarDep }
numDep
LUGARES_DEPA
numDep
lugarDep
DEPARTAMENTO
numDep
nomDep
LUGARES_DEPA
codJefefe
lugarDep
Trujillo
Tacna
Cuzco
DEPARTAMENTO
numDep
nomDep
Ingeniera
Administracin
codJefefe
400
200
EJEMPLO :
Se tiene el esquema OBRERO. Cada obrero puede tener mas de un oficio,
as, el obrero Jorge Huaman es carpintero, albail y pintor y posee 3, 8 y 2
aos de experiencia en esos oficios.
Esto quiere decir que los atributos oficio y aosExp forman una unidad
multivaluada, con lo que se esta violando la 1FN
Dicho de otro modo {oficio, aosExp} ocurren varias veces en una tupla. De
esta forma la tupla ya no es plana.
Grupo
OBRERO
repetitivo
codObr
nom
fechNac direc
jornal codJefe oficio aosExp
OBRERO
codObr
nom
fechNac
direc
jornal
codJefe oficio
aosExp
300
Huaman Jorge
10-05-67
Surco
25
800
carpintero
300
Huaman Jorge
10-05-67
Surco
25
800
albail
300
Huaman Jorge
10-05-67
Surco
25
800
pintor
350
Sulca Amrico
22-11-70
Comas
30
900
electrnico
SOLUCION :
Es eliminar el grupo repetitivo {oficio, aosExp} de la relacin obrero, que
viola la 1FN y colocarlo en otra relacin aparte que llamaramos
habilidades . Esta nueva relacin tendra como atributos : la clave primaria
codObr de la relacin obrero ( para asegurar el vnculo entre estas dos
relaciones ) , adems de oficio y aosExp.
La clave primaria de la nueva relacin habilidades estara conformada por :
{ codObr , oficio }
HABILIDADES
codObr
oficio
aosExp
OBRERO
codObr
nom
fechNac
direc
jornal
codJefe
Y los subconjuntos
que X determina Y
que X implica Y
implicante
implicado
EJEMPLO :
Tenemos la relacin :
LIBRO ( cod_Lib, titulo, editorial )
Cod_Lib
Cod_Lector
determina
Titulo , editorial
Fech_prestamo , fecha_devol
nombre , direc , fono
EJEMPLO :
EMP_PROY
codEmp
numProy
Se lee :
codEmp
nomEmp
numProy
{ nomProy , lugarProy }
EJEMPLO :
EMP_DEPTO
codEmp
nomEmp
numDep
{ nomDep , codJefe }
EJEMPLO :
CURSO
TEXTOBASE
Canales Julio
Algoritmos II
Cairo
Canales Julio
Base de Datos
Korth
Arias Freud
Visual Basic
Joyanes
Pacheco Rosa
Leng. Prog I
Vasquez
RESPUESTA :
El hecho de que Canales julio dicta Algoritmos II as como Base de Datos
nos lleva a concluir que profesor no determina funcionalmente curso
EJEMPLO :
EMPLE-PROY
codEmp
numProy
Conocida
tambin
como TOTAL
Una simple dependencia funcional se define as :
X ( X1 , X2 )
x1
x2
EJEMPLO :
EMP_PROY
codEmp
numProy
codEmp
nomEmp
numProy
{ nomProy , lugarProy }
horas
EJEMPLO :
PRESTAR
codLib codLector titulo
fechPrest
fechPrest
EJEMPLO :
PROGRAM
EMP_PROY
codEmp
Atributo
PRIMO
numProy
Atributo
PRIMO
Atributos
NO
PRIMOS
EJEMPLO :
EMP_PROY
codEmp
numProy
horas nomEmp
nomEmp nomProy
Clave primaria
Dependencia funcional parcial
lugarProy
NOTA:: elelnico
nicoatributo
atributono
no
NOTA
primoque
quetiene
tienedependencia
dependencia
primo
funcionalcompleta
completaes
eshoras
horas
funcional
EMP_PROY
codEmp
numProy
Clave primaria
EMP_PROY
codEmp
numProy
lugarProy
lugarProy
Clave primaria
EMP_PROY
codEmp
numProy
lugarProy
lugarProy
SOLUCION :
Como el esquema de relacin no esta en 2FN, debemos normalizar a varias
relaciones en 2FN en las que los atributos no primos originales presenten una
dependencia funcional total respecto a las nuevas claves primarias formadas :
EMP_PROY
codEmp
numProy
lugarProy
solucin
Identificadas las dependencias, estn
definidas las nuevas relaciones
EMPLE
codEmp
nomEmp
HORAS_TRAB
codEmp
numProy
PROYEC
horas
numProy numProy
lugarProy
EJERCICIO :
Una empresa comercializadora posee varias sucursales en diversas ciudades del
pas. Donde cada sucursal es identificada por su cdigo de sucursal.
Cada sucursal tiene su staff de empleados, a los cuales se les reconoce por un
cdigo de empleado en la sucursal , el cual siempre empieza con el nmero 100.
Lo que significa que para distinguir a un empleado de otro es necesario conocer el
cdigo de la sucursal y el cdigo que el empleado tenga en la sucursal. Es
importante registrar el DNI , la hora de ingreso al trabajo y el nombre de la
sucursal.
Entonces se pide normalizar el siguiente esquema de relacin :
EMPLEADO
codigoDeSucursal
Clave primaria
Atributo
primo
( Clave candidata )
Atributos
no primos
SOLUCION :
Aqu de hecho estn combinados datos de sucursal y datos de empleado.
Descartando el atributo primo DNI, por que presenta la propiedad de unicidad (
clave candidata ) , nos centraremos en los atributos no primos : sueldo,
horaIngre y nomSucursal.
Datos de sucursal
: horaIngre , nomSucursal
horaIngre nomSucursal
sueldo
En consecuencia :
EMPLEADO
codigoDeSucursal
C es funcionalmente dependiente de A
Tenemos as una
dependencia
funcional transitiva
Grficamente :
Ejercicio :
Se sabe que los libros para ser comercializados estn codificados
con un nmero nico conocido como ISBN. Cada cdigo
corresponde a alguna Editorial. Se entiende que cada Editorial tiene
un nico pas de procedencia. Esta situacin puede expresarse en
el siguiente esquema :
Editorial
Pas
Ejercicio :
En una empresa laboran empleados debidamente codificados. Los
empleados tiene un sueldo bsico de 2000 y trabajan para un solo
proyecto que presenta una fecha de finalizacin y se identifica por
su nmero. Se tiene entonces el siguiente esquema, identifique si
existe alguna dependencia transitiva :
EMPLEPROY ( CodEmp,
CodEmp nomEmp, sueldo, numProy, fecha Fin )
Solucin :
El cdigo del empleado determina un nico proyecto y un proyecto tiene
una nica fecha de finalizacin
EMPLEPROY ( CodEmp,
CodEmp nomEmp, sueldo, numProy, fechaFin )
fechaFin
CodEmp
numProy
fechaFin
Ejemplo :
Normalizar el siguiente esquema de relacin :
EMPLEPROY
CodEmp nomEmp
sueldo
numProy
fechaFin
Esta en 1FN
por que no
hay grupos
repetitivos
Esta en 2FN
pues no existe
clave
compuesta
Pero la
dependencia
transitiva viola
la 3FN
EMPLEADO
codEmp
nomEmp
sueldo nProy
PROYECTO
numProy
As,
As,ya
yaesta
estaen
en1FN
1FNpor
porque
queno
nohay
hay
grupos
gruposrepetitivos,
repetitivos,en
en2FN
2FNporque
porqueno
no
existen
existendependencias
dependenciasparciales
parcialessobre
sobre
claves
clavescompuestas,
compuestas,yyen
en3FN
3FNpor
porque
que
no
noexisten
existentransitividades.
transitividades.
fechaFin
Ejercicio :
En una empresa un empleado trabaja para un solo
departamento. Vea entonces el siguiente esquema de
relacin y proceda a normalizarlo :
EMP_DEP
CodEmp nomEmp direc numDep nomDep codJef
Esta en 1FN
por que no
hay grupos
repetitivos
Esta en 2FN
pues no existe
clave
compuesta
Pero las
dependencias
transitivas
violan la 3FN
nomEmp
direc
nDep
DEPARTAMENTO
numDep
As,
As,ya
yaesta
estaen
en1FN
1FNpor
porque
queno
nohay
hay
grupos
gruposrepetitivos,
repetitivos,en
en2FN
2FNporque
porque
no
noexisten
existendependencias
dependenciasparciales
parciales
sobre
sobreclaves
clavescompuestas,
compuestas,yyen
en3FN
3FN
por
porque
queno
noexisten
existentransitividades.
transitividades.
nomDep codJef
D
C
E
D
F
E
B
A
G
C D
C
C D
C
B D
C
A
La primera dependencia :
La segunda dependencia :
La tercera dependencia :
SOLUCION :
EJEMPLO :
Proyecto
administrador Articulo
cantUsada
P1
Castro
Martillo 10
P1
Castro
Taladro 20
P2
Garcia
Taladro 30
P2
Garcia
Sierra
P3
Meneses Martillo 15
22
proyecto
Administrador
SOLUCION :
{proyecto, articulo}
cantUsada
Es una superclave
SUBCLASES
EJEMPLO :
El conjunto de subclases
{ SECRETARIA, INGENIERO, TECNICO }
es una especializacin de la superclase :
EMPLEADO
SECRETARIA
TECNICO
INGENIERO
GERENTE
indica direccin
del vnculo
EMP_ASAL
EMP_CONT
Atributo
especifico
EMPLEADO
RAPIDEZ DE
TECLEO
SECRETARIA
PagoHora
NIVEL
TECNICO
ESPECI
INGENIERO
CREDCARD
GERENTE
SUELDO
EMP_ASAL
EMP_CONT
NOMBRE
NSS
DIREC
EMPLEADO
RAPIDEZ DE
TECLEO
PagoHora
NIVEL
SECRETARIA
TECNICO
Tipo de
vnculo
especfico
ESPECI
INGENIERO
CREDCARD
GERENTE
dirige
PROYECTO
SUELDO
EMP_ASAL
EMP_CONT
placa
velocMax
precio
color
AUTO
numPasjeros
placa
tonelaje
precio
color
CAMION
numEjes
placa
precio
color
VEHICULO
tonelaje
numEjes
velocMax
AUTO
numPasjeros
CAMION
NSS
NOMBRE
DIREC
TIPOTRAB
EMPLEADO
RAPIDEZ DE
TECLEO
tipoTrab =
Secretaria
SECRETARIA
tipoTrab =
Ingeniero
tipoTrab =
Tcnico
NIVEL
TECNICO
ESPECI
INGENIERO
NOMBRE
NSS
DIREC
TIPOTRABAJO
EMPLEADO
tipoTrabajo
RAPIDEZ DE
TECLEO
SECRETARIA
NIVEL
TECNICO
ESPECI
INGENIERO
SECRETARIA
NIVEL
TECNICO
ESPECI
INGENIERO
descrip
COMPONENTE
O
numDibuj
Fecha
Fabricacin
COMPONENTE_FABRICADO
numLote
proveedor
Precio
Lista
COMPONENTE_COMPRADO
NSS
EMPLEADO
RAPIDEZ
DE TECLEO
SECRETARIA
NIVEL
TECNICO
ESPECI
INGENIERO
DIREC
SUELDO
EMP_ASAL
PagoHora
EMP_CONT
NSS
DIREC
EMPLEADO
RAPIDEZ
DE TECLEO
SECRETARIA
NIVEL
TECNICO
ESPECI
INGENIERO
SUELDO
EMP_ASAL
PagoHora
EMP_CONT
JERARQUIA DE ESPECIALIZACION :
Tiene la restriccin de que toda subclase participa como tal en
un vinculo clase/subclase. Como es obvio tambin existirn
jerarquas de Generalizacin.
RETICULA DE ESPECIALIZACION :
Aqu una subclase puede ser subclase en mas de un vinculo
clase/subclase. Como es obvio tambin existirn retculas de
Generalizacin.
sexo
nomb
dni
fechNac
PERSONA
JERARQUIA DE
ESPECIALIZACION :
Tiene la restriccin de
que toda subClase
participa como tal en un
vinculo clase/subClase.
especialidad
numCarnet
sueldo
EMPLEADO
EX-ALUMNO
ESTUDIANTE
fechIngre
cargo
grados
categ
grado
OFICINISTA
PROFESOR
fecha
especialidad
ESTUD POST
GRADO
Ttulo_Prof
ESTUD PRE
GRADO
sexo
nomb
dni
fechNac
PERSONA
RETICULA DE
ESPECIALIZACION :
especialidad
numCarnet
sueldo
EMPLEADO
EX-ALUMNO
grados
cargo
grado
OFICINISTA
horas
PROFESOR
categ
Proyecto
ESTUDIANTE
fechIngre
fecha
especialidad
ESTUD POST
GRADO
ESTUDIANTE
ASISTENTE
d
ASISTENTE_INVESTIGADOR
curso
Ttulo_Prof
ASISTENTE_PROF
ESTUD PRE
GRADO
Herencia
Mltiple
NOMBRE
NSS
Herencia Mltiple
DIREC
RETICULA DE
ESPECIALIZACION
EMPLEADO
RAPIDEZ
DE TECLEO
PagoHora
ESPECI
SECRETARIA
TECNICO
SUELDO
NIVEL
INGENIERO
GERENTE
EMP_ASAL
EMP_CONT
GERENTE_DE_INGENIERIA
Una categora nos permite crear subclases que posean dos o mas
superclases, tal que esta subclase o categora pueda ser en un momento dado
cualquiera de las superclases.
Para indicar una categora se usa un crculo con la letra U dentro.
Una categora es un subconjunto de la unin de sus superclases.
Por ejemplo modelar el escenario donde un vehiculo pueda ser propiedad de
una persona, un banco o una compaa.
PERSONA
BANCO
U
Dueo es una
subclase de la
unin persona,
banco y
compaa
DUEO
COMPAIA
Esto expresa :
Una persona puede poseer un vehculo
Un banco puede poseer un vehculo
Una compaa puede poseer un vehculo
posee
VEHICULO
BANCO
COMPAIA
DUEO
posee
VEHICULO
U
AUTO
Especializacin
o generalizacin
INGENIERO
GERENTE
EMP_ASAL
GERENTE DE
INGENIERIA
CAMION
Ejercicio :
persona
tipo
d
profesor
estudiante
1
asesora
Tipo=3
N
matricula
Estud_post
N
1
Ong_subvenc
pertenece
Seccin actual
apoya
dirige
Sem=2000-1
Prof_invest
sem
Seccin
dicta
N
tiene
departamento
1
gestiona
curso
NOMBRE
NSS
DIREC
TIPOTRAB
EMPLEADO
empleado(nss,
nss nombre, direc)
secretaria(nss,
nss rapidezdeTecleo)
tecnico(nss,
nss nivel)
secretaria
RAPIDEZ
DE TECLEO
SECRETARIA
ingeniero(nss,
nss especi)
tecnico
ingeniero
NIVEL
TECNICO
ESPECI
INGENIERO
Subclases definidas
por predicado
placa
precio
codVehi
generalizacin
VEHICULO
d
numPasajeros
AUTO
veloMax
tonelaje
CAMION
Eliminando la
generalizacin
numEjes
NOMBRE
NSS
DIREC
TIPOTRAB
EMPLEADO
Usando el
atributo de tipo
TIPOTRAB
d
RAPIDEZ
DE TECLEO
SECRETARIA
NIVEL
TECNICO
ESPECI
INGENIERO
empleado(nss,
nss nombre, direc, tipoTrab, rapidezdeTecleo, nivel, especi)
numComp
descrip
COMPONENTE
Usando campos
booleanos
O
numDibuj
Fecha
Fabricacin
COMPONENTE_FABRICADO
numLote
proveedor
Precio
Lista
COMPONENTE_COMPRADO
componente(numComp,
numComp descrip, flag_F, numDibuj, fechFabricacion,
flag_C, proveedor, precioLista)