Académique Documents
Professionnel Documents
Culture Documents
Modelos de Datos
Sistemas Administradores (Gestores) de Bases de Datos (SGBDs o
DBMS's)
Modelos de Datos
Hablar del concepto lgico o fsico de Base de Datos involucra un conjunto de
pensamientos concretos que hacen posible la absorcin temtica del
significado de los datos. La abstraccin de los datos como una forma o un
comportamiento que hace posible concretar un algo, se asocia con un
esquema del conocimiento lgico, su semntica, condiciones y acciones, que
permiten la produccin de modelos por medio de los cuales se representa la
funcionalidad de un sistema.
Inicialmente el "dato" fue trabajado desde la ptica pura de su almacenamiento
a travs de los "Sistemas de Archivos"; donde cada uno de los archivos que se
creaban solo obedecan a una necesidad de almacenamiento ms que a la
utilizacin funcional del dato. Por este motivo surgen los esquemas
conceptuales que son elaborados a travs del anlisis de procesos de las
reas del negocio, los cuales involucran al "dato" como una consecuencia
lgica funcional de ellos. Pero para poder estandarizar este tratamiento se crea
el concepto del "Modelo de Datos", por medio del cual se definen un conjunto
de elementos y smbolos que permiten estandarizar traducir dicho anlisis a un
lenguaje semntico y sistemtico que dispone de reglas de control y evaluacin
del comportamiento del dato en el transcurso del tiempo, tanto en su
almacenamiento como en su utilizacin.
Estos modelos de datos, hacen posible que la lgica de un negocio pueda ser
estructurada de forma tangible a travs de un esquema fsico que representa
el almacenamiento de los datos bajo las reglas del negocio y de un sistema
gestor de base de datos que permitir la persistencia de estos a travs del
tiempo.
Los Modelos de Datos, tambin llamados modelos lgicos, se han clasificado
en dos grandes grupos debido al tratamiento de los datos: Basados en Objetos
y basados en Registros. Estos dos grupos de modelos representan dos
estados de la interpretacin de los requerimientos de usuario:
o
o
o
o
_________
DISEO CONCEPTUAL
Cuando se trabaja bajo el anlisis conceptual de una situacin, nos referimos a la
abstraccin de hechos reales de los cuales se emite un concepto o es posible hacer una
idea de ello. Para poder realizar la abstraccin de un tema en un rea especfica, a nivel
informtico, es necesario tener los requerimientos formulados por los usuarios con
respecto a este. Estos requerimientos contienen el conjunto de hechos y reglas que dan
pauta a la creacin del esquema conceptual donde por medio de este se podr realizar
una descripcin de alto nivel de la futura base de datos. Para manipular este esquema se
utiliza un modelo conceptual que proporciona un lenguaje que permite utilizar un
conjunto de smbolos (estndares) para la creacin de este.
El diseo conceptual se hace independiente al sistema gestor de base de datos (DBMS)
que utilice el usuario para la implementacin de esta.
Para modelar Conceptualmente es posible utilizar varios Modelos de Datos Un modelo
prctico para ilustrar el diseo conceptual es el modelo entidad relacin.
ENTIDADES: Una entidad es una "cosa" u "objeto" del mundo real, con existencia
independiente y distinguible de los dems objetos. Cada entidad tiene un conjunto de
propiedades y valores que la identifican de forma unvoca. Esta puede ser tanto tangible
(existencia fsica), ejemplo: Un carro, como intangible (existencia conceptual),
ejemplo: Un curso universitario.
ATRIBUTOS: Las propiedades que califican y le dan vida a la entidad se denominan
atributos. Ejemplo: la entidad persona se puede describir por las siguientes propiedades:
cdula, nombre, direccin, sexo, peso, altura, color, tipo de sangre, salario.
Cada entidad tendr un valor por cada uno de los atributos, que posteriormente ser
almacenado en la base de datos. El valor de cada atributo est enmarcado en un
conjunto de valores permitidos llamado Dominio. Ejemplo: el conjunto de valores
permitidos (dominio) para el atributo cdula pueden ser todos los enteros positivos.
Tipos de Atributos:
Simples: No divisible, es decir es un atributo atmico. Ejemplo: El atributo cdula, su
propiedad no tiene sentido dividirla, no tendr significado para la entidad, ya que la
concepcin de este es un nmero indivisible.
Compuesto: Est conformado por un conjunto de partes que en el momento de dividirlas
pueden formar otros atributos sin perder el sentido bsico de la propiedad que est
calificando la entidad. Ejemplo: los atributos nombre, direccin pueden estar
conformados en su naturaleza funcional por varias partes. Si tomramos el atributo
nombre con un valor de: JUAN PEREZ CORREA, sin perder la propiedad del mismo,
se podrn crear otros dos atributos simples tales como: primer_apellido,
segundo_apellido. As se tendr: (nombre, JUAN), (primer_apellido, PEREZ),
(segundo_apellido, CORREA).
Un atributo compuesto se divide slo por razones de manejo a nivel del lenguaje de
consulta o programacin o por requerimientos del usuario, si no hay necesidad no se
debe dividir ya que en algunas ocasiones se vuelve complejo el manejo de esta
situacin, es decir el atributo compuesto se trabaja como un atributo simple. As se
puede concluir que un atributo compuesto es la suma (concatenacin) de los valores de
los atributos simples que lo conforman.
Univaluados (univalorados o monovaluados): Son atributos que en el transcurso del
tiempo slo toman un valor para una entidad en particular. Ejemplo: El atributo cdula,
solo toma un valor para una entidad persona en particular.
Multivaluados (multivalorados): Son atributos que en el transcurso del tiempo pueden
tener un conjunto de valores para una entidad en particular. Ejemplo: El atributo
Grado_Academico para el conjunto de entidades persona puede tomar diferentes valores
desde 0 o primaria o medio, entre otros. Tambin es caracterstico que este tipo de
atributo maneje rangos de valores. Ejemplo: el atributo sexo, puede tener un rango de
valores [F,M] y tomar uno de estos en algn instante en el tiempo para una entidad
especfica.
Nulos: Son atributos que en cualquier instante en el tiempo pueden tomar el valor nulo
para una entidad en particular.
Derivado: Son atributos cuyo valor depende de los valores de otros atributos o
entidades. Ejemplo: el atributo salario pude derivarse a partir del clculo de los
siguientes valores:
PARAMETROS(salario_base, 5000), NOVEDADES(nro_horas_trabajadas, 240), el
valor que tendra el atributo en un instante en el tiempo ser:
PERSONA(salario,1200000).
El modelo E-R se representa grficamente as: los tipos de entidades por medio de
rectngulos que contienen el nombre del tipo de entidad. Los nombres de los atributos
se encierran en valos y se conectan con su tipo de entidad a travs de lneas. Ejemplo:
ATRIBUTOS CLAVE: Por lo general todo tipo de entidad cuenta con un atributo cuyo
valor diferencia (identifica) una entidad individual de otra. El atributo o conjunto de
atributos que ejercen esta funcin se denominan atributos claves, donde a partir de estos
se ejerce la restriccin por clave o unicidad de atributos en los tipos de entidad.
Ejemplo: el atributo cedula en el tipo de entidad persona se utiliza como atributo clave
para diferenciar una entidad de otra. Un atributo clave puede ser un atributo compuesto.
Grficamente en el modelo E-R el atributo clave va subrayado dentro del vulo.
TIPOS DE ENTIDADES FUERTE Y DBILES: Las entidades fuertes o propietaria
se caracterizan porque tienen atributos claves propios. Ejemplo: la entidad persona tiene
como atributo clave la cedula, el cual no es entregado o heredado de otra entidad. Las
entidades dbiles no tienen atributos claves propios sino que dependen del que posee
una fuerte, pero si pueden tener atributos que identifiquen una clave parcial (fornea)
que la identifican como nica dentro del tipo de entidad dbil. Ejemplo: la entidad
ocupacion depende la existencia de una entidad persona, ya que sin esta no tendra
sentido. En el modelo E-R se esquematiza grficamente a travs de rectngulos dobles.
El atributo parcial se subraya con lnea punteada.
VNCULOS o INTERRELACIONES(relaciones): La asociacin entre uno o tipos de
entidades E1,E2,...,En define un vnculo R entre estas, donde R matemticamente se
puede definir como el conjunto de vnculos ri y cada uno de estos asocia n entidades (e1,
e2, e3 , ..., en) y cada ej de ri es miembro del tipo de entidad Ej (1<=j<=n). Expresndolo
de otra forma, es un subconjunto del producto cartesiano E1x E2x ... x En.
Ejemplo: Tenemos dos tipos de entidades Estudiantes y Curso, el vnculo o asociacin
entre esta es INSCRITO EN, de la siguiente forma:
Esta relacin se conoce como binaria ya que se realiza entre dos tipos de entidad.
Existen las relaciones n-arias (entre ms de 2 entidades), por ejemplo:
DISEO LGICO
Una vez establecido el modelo conceptual del problema o situacin, el diseo lgico de
los datos permite que estos se puedan representar usando de manera eficiente posibles
recursos para estructurar datos y modelar restricciones disponibles en el modelo
lgico. El objetivo es convertir el esquema conceptual de datos en un esquema lgico
que se ajuste al gestor de la base de datos que va a ser utilizado (el DBMS). Para
escenificar esta situacin se tomar el Modelo Relacional cuyo esquema relacional es
trabajado por muchos DBMS comerciales. Algunos de ellos son: ORACLE (Oracle
Inc.), INFORMIX (Informix Inc.), SQL/DS, DB2 (IBM), INGRES (ASK/Computer
Systems Inc.), UNIFY(Unify Inc.).
Modelo Relacional
Caractersticas para pasar de un MER a un MR
Normalizacin y Dependencia Funcional
Algebra Relacional
SQL
A travs de esta grfica se escenifican los componentes bsicos de un MR. Los aspectos
ms importantes que se formalizan en este son: la definicin de la estructura, el control
integridad y la manipulacin de los datos, . Para lograr esto maneja los siguientes
conceptos: relacin, dominio, tupla, cardinalidad, atributo, grado y clave (primaria y
fornea).
Relacin: Es el elemento bsico del modelo, est compuesta por dos partes:
Cabecera y Cuerpo. La cabecera esta formada por un conjunto fijo de atributos.
El cuerpo est formado por un conjunto de tuplas . Por esto podemos nombrar
una relacin con el nombre de TABLA, la cual est compuesta por filas y
columnas, donde cada fila (tupla) representa un conjunto de valores
relacionados entre s(hechos del mundo real), y las columnas (atributos) tienen
la funcin de ayudar a interpretar el significado de los valores que estn en cada
fila de la tabla. Como ejemplo, la grfica representa la relacin PERSONA.
Una forma lgica de diferenciar entre el trmino Relacin y el trmino Tabla es
la siguiente: una relacin es una especie abstracta de objeto; y una tabla es una
representacin concreta de tal objeto abstracto. Las tablas poseen ciertas
propiedades, todas ellas consecuencia inmediata de la relacin. Estas son:
- No existen tuplas repetidas: Esta propiedad es consecuencia del hecho de que
el cuerpo de la relacin es un conjunto matemtico( es decir, un conjunto de
tuplas) y en matemticas por definicin los conjuntos no incluyen elementos
repetidos.
- Las tuplas no estn ordenadas: Esta propiedad sirve para ilustrar la diferencia
entre una relacin y una tabla, porque las filas de una tabla tienen un orden
obvio de arriba hacia abajo, en tanto que las tuplas de una relacin carecen de tal
orden.
Dependencia Funcional
Una dependencia funcional, denotada por X -> Y, entre dos conjuntos de atributos X y Y
que son subconjuntos de R (R ={A1, A2,...,A3}) especifica una restriccin sobre las
posibles tuplas que podran formar un ejemplar de relacin r de R. La restriccin dice
que, para cualesquier dos tuplas t1 y t2 de r tales que t1[X] = t2[X], debemos tener
tambin t1[Y] = t2[Y]. Esto significa que los valores componentes de Y de una tupla de
r dependen de los valores del componente X, o estn determinados por ellos; o bien, que
los valores del componente X de una tupla determinan de manera nica (o
funcionalmente) los valores del componente Y. Tambin decimos que hay una
dependencia funcional de X a Y o que Y depende funcionalmente de X.
Sean a y b atributos de una misma tabla o relacin T. Se dice que b es funcionalmente
dependiente de a y se denota T.a -> T.b o bien simplemente a -> b si todo posible valor
de a tiene asociado un nico valor de b, o lo que es lo mismo, en todas las tuplas de T en
las que el atributo a toma el mismo valor v1, el atributo b toma tambin un mismo valor
v2. Claramente a -> b no implica b -> a. Pueden repetirse los valores del atributo b para
distintos valores de a. Un mismo
atributo puede determinar funcionalmente a varios atributos lo cual se denota a -> (b1,
b2, ...). Puede darse una dependencia funcional mutua: a -> b y b -> a o lo que es lo
mismo a <-> b. Nse que el concepto de dependencia funcional no depende de la
extensin concreta (contenido) que en un momento determinado tenga la tabla sino de
cualquier posible extensin que pudiera tener.
Los atributos a y b pueden ser simples o compuestos (formados por la agregacin de
varios atributos). Los atributos funcionalmente dependientes pueden o no formar parte
de la clave primaria de la tabla, de una clave altenativa o de una clave ajena de otra
tabla.
Reglas de normalizacin
El punto de partida del proceso de normalizacin es un conjunto de tablas con sus
atributos, el denominado esquema
relacional. Se pretende mejorar dicho esquema de datos. Se dice que una tabla estn en
una determinada forma normal si
satisface un cierto nmero de restricciones impuestas por la correspondiente regla de
normalizacin. La aplicacin de una
de estas reglas a un esquema relacional produce un nuevo esquema relacional en el que
no se ha introducido ningn nuevo
atributo.
numero_dep
nombre_emp
nombre_dep
nombre_proy
lugar_proy
Emp_proy
- nss -> nombre (el nss del empleado determina de forma nica el nombre de ese
empleado)
- numero_proy -> {nombre_proy,lugar_proy}
- {nss, numero_proy} -> horas
Algebra Relacional
Conjunto de operaciones para manipular las tuplas de las relaciones o tablas. El
resultado de cada operacin es una nueva relacin que podemos manipular
posteriormente.
Operaciones
- Seleccionar ()
- Proyectar ()
- Operaciones de Teora de Conjuntos: Unin (), Interseccin (), Diferencia (-),
Producto Cartesiano (X).
- Reunin ()
* Seleccionar ( )
Por medio de esta operacin se posibilita la seleccin de un subconjunto de tuplas de
una relacin que corresponden a una condicin (columna OPERADOR valor)determinada. El
grado (total de columnas de la Relacin), se conserva.
Formato de Uso:
(condicin)
(RELACION)
(condicin1)
(condicin1)
(condicin2)
(R) ) =
(condicin2)
(R) )
Ejemplos:
PERSONA
Cedula
Nombre
Primer_Apellid Segundo_Apellid
Direcci
Sexo
Telefono Salario
o
o
n
Mesa
Uribe
Cra 25
22-1
2567532 1,600,000
Betancur
Bermudez
Cra 45
11-13
3433444 1,300,000
Garces
75556743 Pedro
Pelaez
Cll.6ta
14-45
2686885 1,200,000
Guzmn
Cll. 45
23-1
2674563 1,350,000
71134534 Juan
23423445
Ana
Mara
Ochoa
Agudelo
La seleccin, permite extraer todas las filas (tuplas) que cumple una condicin
determinada. Esta condicin permite la utilizacin de los operadores de comparacin:
=,>,<,>=,adems de los conectores lgicos "y" - "o":
a.
cedula = 71134534
(PERSONA)
Resultado:
Cedula
Nombre
71134534 Juan
b.
sexo ='F'
Primer_Apellid Segundo_Apellid
Direcci
Sexo
Telefono Salario
o
o
n
Mesa
Uribe
Cra 25
22-1
2567532 1,600,000
(PERSONA)
Resultado:
Cedula
Nombre
Primer_Apellid Segundo_Apellid
Direcci
Sexo
Telefono Salario
o
o
n
23423445
Ana
Mara
Betancur
c.
Bermudez
Cra 45
11-13
Garces
3433444 1,300,000
(PERSONA)
Resultado:
Cedula
Nombre
Primer_Apellid Segundo_Apellid
Direcci
Sexo
Telefono Salario
o
o
n
23423445
Ana
Mara
Betancur
d. c.
Bermudez
Cra 45
11-13
Garces
3433444 1,300,000
(PERSONA)
Resultado:
Cedula
Nombre
Primer_Apellid Segundo_Apellid
Direcci
Sexo
Telefono Salario
o
o
n
Uribe
Cra 25
22-1
Garces
75556743 Pedro
Pelaez
Cll.6ta
14-45
2686885 1,200,000
Guzmn
Cll. 45
23-1
2674563 1,350,000
Agudelo
71134534 Juan
Mesa
Ochoa
2567532 1,600,000
* Proyectar ()
Esta operacin permite seleccionar algunas columnas de una relacin.
Formato de Uso:
<
lista de Atributos
> (RELACION)
Ejemplos:
Se construyen con base en la Relacin anterior: PERSONA.
a.
(PERSONA)
Resultado
Cedula
71134534 Juan
Mesa
Uribe
Ana
Mara
Betancur
Bermudez
12453535 Gloria
Betancur
Garces
75556743 Pedro
Ochoa
Pelaez
23423445
Guzmn
78900456 Carlos
Agudelo
b.
cedula, salario
Betancur
(PERSONA)
Resultado:
Cedula
Salario
71134534 1,600,000
23423445 1,300,000
12453535 1,700,000
75556743 1,200,000
43533322 1,350,000
78900456 1,500,000
La operacin SELECCIN combinada con la operacin PROYECCIN, podemos
tener:
c.
(PERSONA) )
Resultado:
Cedula
Nombre Salario
71134534 Juan
1,600,000
12453535 Gloria
1,700,000
75556743 Pedro
1,200,000
1,500,000
(PERSONA) )
Resultado:
REL_TEMP Cedula
Nombre Salario
71134534 Juan
1,600,000
12453535 Gloria
1,700,000
75556743 Pedro
1,200,000
1,500,000
Operaciones Adicionales 5
Operaciones Adicionales 6
Tutorial Sql (.pdf)
EJERCICIOS
711345
Juan Mesa
34
Uribe
234234 Ana
Betancur
45
Mara
Bermudez
124535
Gloria Betancur
35
Garces
755567
Pedro Ochoa
43
Pelaez
435333 Patrici
Angel
22
a
Guzmn
789004
Carlos Betancur
56
Agudelo
Cir. 5
12-5
734567
Mario Gmez
89
Angel
438902 Claud
Gonzalez
31
ia
Beltran
789007
Fabio Solano
00
Prez
Tr. 3
32-1
DEPENDIENTES
Cedula
Parentesco
78900456 Juanita
12-Abr-95
Hija
78900456 Oscar
15-Ene-89
Hijo
23423445 Hector
23-Dic-67
Cnyuge
71134534 Mara
05-Mar-60 Cnyuge
71134534 Gloria
27-Nov-97 Hija
75556734 Jorge
14-Mar-96 Hijo
DEPARTAMENTOS
Codigo_Dep Nombre_Dep
Cedula_Jefe
Gerencia
43890231
Teleinformatica 75556734
Desarrollo
23423445
PROYECTOS
Numero_Proy Nombre
Lugar
Codigo_Dep
129001
Registro y
Matrcula
Bloque
2
21
139001
Red Lan
Bloque
1
14
139002
129002
Notas
Campus 2
129003
Paso de
aplicativos
FOXPRO A
COBOL
Bloque
2
21
149001
Inventario de
HW y SW
Minas
149002
Licenciamiento
Campus 3
149003
Evaluacin de
equipos PC's
Bloque
3
18
1. OPERACIN SELECT
La sintaxis bsica de esta operacin es:
SELECT <lista de atributos>
FROM <lista de tablas>
WHERE <condiciones>
Ejemplos:
a. Select bsico. Se desea obtener la cdula y el nombre de todas las personas que
trabajan en la compaa.
SELECT cedula, nombre
FROM personas
cedula, nombre
(PERSONAS)
Resultado/
Cedula
Nombre
71134534
Juan
23423445
Ana Mara
12453535
Gloria
75556743
Pedro
43533322
Patricia
78900456
Carlos
cedula = 1245353
(PERSONAS) )
Resultado/
Nombre Primer_Apellido Segundo_Apellido Direccin
Gloria
Betancur
Garces
Telefono
Nombre
78900456
Carlos
Nombre_Dep
Sexo FechaN
Parentesco
78900456 Juanita
12-Abr-95 Hija
78900456 Oscar
15-Ene-89 Hijo
e. Utilizando alias o sinnimos de trabajo a las tablas del Select. Estos se utilizan por
facilidad en el manejo de la instruccin. La misma consulta anterior:
SELECT d.*
FROM personas p, dependientes d
WHERE primer_apellido = 'Betancur'
AND sexo = 'M'
AND d.cedula = p.cedula
Resultado/
Cedula
Nombre_Dep
Sexo FechaN
Parentesco
78900456 Juanita
12-Abr-95 Hija
78900456 Oscar
15-Ene-89 Hijo
1,200,000
1,800,000
g. Una de las clausulas ms significativas en el Select es el COUNT, la cual se utiliza
para contar la cantidad de registros que cumplen con una condicin especfica:
g.1 Mostrar el total de empleados en la compaa:
SELECT count(*)
FROM personas
Resultado/
9
g.2 Mostrar el total de proyectos que tiene asignada la dependencia 3
SELECT count(*)
FROM proyectos
WHERE codigo_dep = 3
Resultado/
3
g.3 Mostrar cuntos salarios diferentes o distintas se pagan en la compaa:
SELECT count(distinct salario)
FROM personas
Resultado/
6
h. Clusula WHERE compara sus campos comunmente con valores nicos, pero
tambien es posible comparar con un "conjunto" de valores. Esto es realizable a travs
del operador IN. Ejemplo, se desea saber qu empleados estn involucrados en los
proyectos 139001 o 139002.
h.1 Forma bsica:
SELECT personas.*
FROM personas, proyectos
WHERE (numero_proy = 139001 OR numero_proy =139002)
AND cod_dep = codigo_dep
h.2 Forma con IN:
SELECT personas.*
FROM personas, proyectos
WHERE numero_proy IN (139001,139002)
AND cod_dep = codigo_dep
Resultado/
PENDIENTE
i. Operacin Select con anidamientos. La clausula WHERE comunmente compara los
campos con valores exactos, pero tambin es probable utilizarla comparando sus
campos con otras sentencias Select. Esta forma tambin es llamada Consulta anidada:
i.1 Mostrar los diferentes proyectos en donde el ingeniero OCHOA participa:
SELECT distinct numero_proy
FROM proyectos
WHERE numero_proy IN (select numero_proy
from proyectos p, departamentos d, personas
where p.codigo_dep = d.codigo_dep
and primer_apellido = 'Ochoa')
i.2 Mostrar los empleados cuyo jefe es de apellidos BETANCUR BERMUDEZ:
SELECT personas.*
FROM personas
WHERE cedula_sup IN (select cedula
from personas
where primer_apellido = 'Betancur'
and segundo_apellido = 'Bermudez')
i.3 Mostrar el nombre de los empleados cuyo salario es mayor que el de todos los
empleados del departamento 3. Aqu se utiliza la utilizacin de la clusula ALL:
SELECT nombre, primer_apellido, segundo_apellido
FROM personas
WHERE salario > ALL (select salario
from personas
where cod_dep = 3)
j. En el select es posible validar la existencia de informacin nula a travs de la
clusula NULL. Ejemplo, Mostrar los empleados que no tengan asignado salario:
SELECT *
FROM personas
WHERE salario IS NULL
k. Otra clusula que es posible utilizar en el Select es EXIST, la cual ayuda a validar si
el resultado de una consulta anidada es vacio o no.
k.1 Seleccionar todos los empleados cuyo dependiente tenga la misma cedula, sexo y
nombre.
SELECT p.nombre, p.primer_apellido, p.segundo_apellido
FROM personas p
SELECT salario*1.18
FROM personas
WHERE salario < 1200000
p. Una clusula ms que podemos utilizar en la operacin Select es la que me permite
dale un orden a las tuplas, ORDER BY, segn el o los criterios indicados a travs de
columnas.
SELECT *
FROM personas
ORDER BY nombre, primer_apellido, segundo_apellido
1. Prepare una lista con los nmeros de viaje y los das de todos los viajes o trayectos de
viaje que salen del terminal codigo CA001 y llegan al terminal cdigo BO001.
Solucin 1:
SELECT num_viaje, num_trayecto,fecha
FROM viajes_realizados
WHERE cod_terminal_sale = 'CA001'
AND cod_terminal_llega = 'BO001';
Solucin 2:
SELECT distinct numero, dias
FROM viajes_realizados, viajes
WHERE cod_terminal_sale = 'CA001'
AND cod_terminal_llega = 'BO001'
AND numero = num_viaje
2. Obtenga una lista con los nmeros de viaje, cdigos de terminal de salida, horas de
salida programadas, cdigos de terminal de llegada, horas de llegada programadas y
das de todos los viajes o trayectos de viajes que salgan de algn terminal de la ciudad
de Santa Marta y lleguen a algn terminal de la ciudad de Buenaventura.
Solucin 1:
SELECT tv.*, dias
FROM trayecto_viaje tv, terminales_transporte tt, viajes
WHERE (ciudad = 'Santa Marta' AND cod_terminal_sale = tt.cod_terminal)
AND (ciudad = 'Buenaventura' AND cod_terminal_llega = tt.cod_terminal)
AND (numero = num_viaje);
Solucin 2:
SELECT tv.*, dias
FROM trayecto_viaje tv, viajes
WHERE cod_terminal_sale = (SELECT cod_terminal
FROM terminales_transporte
WHERE ciudad = 'Santa Marta')
AND cod_terminal_llega = (SELECT cod_terminal
FROM terminales_transporte
WHERE ciudad = 'Buenaventura')
AND numero = num_viaje;
3. Liste las diferentes tarifas que se aplicaron a los viajes que se realizaron entre los
terminales de Santa Marta y Medelln, en el ao 1999.
Solucin 1:
SELECT distinct cod_tarifa, monto
FROM viajes_realizados vr, tarifas ta, terminales_transporte
WHERE (ciudad = 'Santa Marta' AND cod_terminal_sale = cod_terminal)
AND (ciudad = 'Medelln' AND cod_terminal_llega = cod_terminal)
Indice
1. Descomposicin y Normalizacin
2. Dependencia
3. Normalizacin
4. Primera Forma Normal
5. Segunda Forma Normal
6. Tercera Forma Normal
7. Cuarta Forma Normal
1. Descomposicin y Normalizacin
Siempre que un analista de sistemas de base de datos arma una base de
datos, queda a su cargo descomponer dicha base en grupos y segmentos de
registros. Este proceso es la descomposicin; el mismo es necesario
independientemente de la arquitectura de la base de datos - relacional, red o
jerrquica-. Sin embargo, para la base de datos relacional, la accin
correspondiente puede dividirse y expresarse en trminos formales y se
denomina normalizacin a la misma.
La normalizacin convierte una relacin en varias sub-relaciones, cada una de
las cuales obedece a reglas. Estas reglas se describen en trminos de
dependencia. Una vez que hayamos examinado las distintas formas de
dependencia, encontraremos procedimientos a aplicar a las relaciones de
modo tal que las mismas puedan descomponerse de acuerdo a la dependencia
que prevalece. Esto no llevar indefectiblemente a formar varias subrelaciones
a partir de la nica relacin preexistente.
2. Dependencia
Significado :
Antes de entrar en el tpico principal de dependencia, vamos a rever algunos
conceptos acerca de los individuos y acerca de las tuplas que los describen en
la base de datos relacional (BDR). Restringiremos la discusin a la BDR, si
bien la misma se aplica igualmente a las otras arquitecturas.
Los individuos tienen muchos atributos que pueden ser de inters a diferentes
personas en diferentes momentos. Nuestro problema actual es con una sola
aplicacin o conjunto de aplicaciones: solemne son de inters algunos de los
atributos.
Los smbolos aplicables a la relacin han sido introducidos previamente.
R es una tupla general o vector que describe a un individuo;
Total uno-uno-sinnimo
Completa - subtupla
Transitiva - mltiple.
Estas dos formas de informacin sobre estado ilustran una dependencia total.
Debe notarse sin embargo que muchas tuplas pueden contener la misma
identificacin de Estado, dado que muchos de nuestros clientes pueden
provenir de California. En consecuencia resulta claro que la dependencia total
no significa unicidad.
Dependencia Completa
El concepto de dependencia completa se aplica solamente cuando:
Tenemos ms de dos variables, y
Una variable dependiente depende de dos o ms variables
independientes.
Consideramos una relacin que abarca las variables P, Q y R. Supongamos
que P es la variable dependiente. Si el valor de P est determinado por una
funcin de Q y R combinados, se trata de una dependencia completa. Esto es,
el valor de P no depende nicamente ni de Q ni de R.
Vamos a repetir esto simblicamente. El valor de P es completamente
dependiente de los valores de q y r.
p = p (q,r)
Ejemplo con orden de compra
Como un ejemplo de dependencia completa, consideremos el caso de una
orden de compra. Supongamos que esta orden de compra describe mediante
tres variables que son de inters para nosotros:
El nmero de orden de compra (PON) designa la orden completa;
El nmero de parte de pieza designa una de las
partes ordenadas por el pedido;
La cantidad de piezas es el nmero de unidades
de dicha pieza requerida para satisfacer el pedido.
Los pedidos describen en consecuencia una orden por medio de varias partes
diferentes, y para cada una distinta asociada. El sistema contable ve varios
pedidos diferentes. La misma parte puede aparecer en distintos pedidos y,
cuando ello sucede, puede estar asociadas distintas cantidades con la misma
parte.
Un tupla de la base de datos relacional contendr un PON un nmero de parte
y una cantidad. La cantidad es completamente dependiente del PON y del
nmero de parte. Resulta claro que el nmero de pedido no es suficiente para
determinar la cantidad todas las partes de un determinado pedido no tiene la
Ejemplo
Consideramos un ejemplo que asocia cursos con departamento y con escuela.
En consecuencia, canto ser dictado por el departamento de msica en la
escuela de Artes y Ciencias; hidrulica ser dictada por ingeniera civil en la
Escuela de Ingeniera; impuestos ser dictado por el departamento contable en
la Escuela de Administracin.
Llamemos
S al curso
T al departamento
V a la escuela
Por lo tanto
S ----> T ----> V
la descomposicin consiste en la asociacin de un curso con un departamento
en una relacin. Otras relacin identifica a cada departamento con una escuela.
Esta segunda relacin es necesariamente menor tanto en grado como en
cardinalidad y aqu reside el ahorro de espacio.
3. Normalizacion
Qu es normalizacin?
Normalizacin es un proceso que clasifica relaciones, objetos, formas de
relacin y dems elementos en grupos, en base a las caractersticas que cada
uno posee. Si se identifican ciertas reglas, se aplica un categora; si se definen
otras reglas, se aplicar otra categora.
Estamos interesados en particular en la clasificacin de las relaciones BDR. La
forma de efectuar esto es a travs de los tipos de dependencias que podemos
determinar dentro de la relacin. Cuando las reglas de clasificacin sean ms y
ms restrictivas, diremos que la relacin est en una forma normal ms
elevada. La relacin que est en la forma normal ms elevada posible es que
mejor se adapta a nuestras necesidades debido a que optimiza las condiciones
que son de importancia para nosotros:
La cantidad de espacio requerido para almacenar
los datos es la menor posible;
La facilidad para actualizar la relacin es la mayor
posible;
La explicacin de la base de datos es la ms sencilla posible.
saltsea texas
orden fecha
Dado que una tupla debe tener un nmero fijo de componentes, necesitamos
una tupla en primera forma normal para cada parte de cada pedido. Sin
embargo, la informacin que se encuentra en la parte superior del formulario, y
que se llena a mquina, es la misma para todas las partes ordenadas ms
abajo. Por lo tanto cada tupla consiste en una parte de datos que son variables
y datos del pedido que se duplican para cada parte ordenada.
Grafo de Dependencia
Una vez que los datos han sido puestos en primera forma normal, resulta
conveniente descomponer la relacin en un nmero de relaciones ms
pequeas, cada una en forma normal superior, de modo de optimizar el
almacenamiento y usar su funciones. Para esto resulta necesario reconocer las
dependencias existentes. Un grafo exhibe los distintos tipos de dependencias
que existen, y enfatizan que hemos investigado completamente cada
dependencia.
El grafo simple no est diseado para mostrar dependencias. Para hacer
utilizable a este grafo, se agregan colores pueden expresarse en blanco y
negro mediante distintos tipos de lneas. Discutiremos estos tipos de lneas en
trminos de la dependencia que cada uno representa. En las figuras que
siguen las formas grficas aparecen a la izquierda y se utilizan para constituir
un grafo completo. A la derecha se puede observar una forma simblica para
describir dependencias nicas.
Dependencia nica
En la figura vemos un arco que conecta dos vrtices A y B. A es la cola y B es
la cabeza de la "flecha". Esto significa que B depende de A. Es decir dado un
valor de A podemos predecir de A. Es decir, dado un valor de A podemos
predecir cul ser el valor de B.
Dependencia total
La dependencia total se define como una dependencia bilateral o simtrica. Es
decir, si C depende de D, en consecuencia D ser dependiente en forma similar
de C. Esto se expresa en la figura mediante una arista (sin una flecha) que une
C y D. Para enfatizar la dependencia total, se usa una lnea doble o una lnea
ms gruesa. Esto representa una medida de seguridad para verificar que el
usuario no dibuje un arco e inadvertidamente omita la flecha. Simblicamente
se utiliza una doble flecha.
Dependencia completa
La variable G depende en forma completa de otras dos variables E y F, lo cual
puede ilustrarse como se ve a la izquierda de la figura. Pero as no es
representada adecuadamente la dependencia completa, ya que el valor de G
no depende de E o F, independiente, sino que depende de ambos valores. Por
lo tanto en el centro de la figura A, vemos una forma mejor; la arista que une E
y F no intenta demostrar una dependencia entre E y F, por lo tanto se dibuja en
lneas de trazos; a partir del centro de esta lnea de trazos, se dibuja un arco
dirigido hacia G para indica que G depende de ambas variables E y F.
Dependencia transitiva
Supongamos que dos variables, K y L, dependen de J. Si puede verificarse que
L depende en forma primaria de K, existira una dependencia transitiva.
Mostramos a la izquierda de la figura B que L. depende de J o de K. Ms
apropiado s el grafo del centro de la figura B, donde podemos ver que L est
definida por K la cual, a su vez, est determinada por los valores de J.
Simblicamente indicamos una dependencia transitiva de L respecto de J
mediante una flecha de trazos desde J a L, como puede verse a la derecha de
la figura B.
Ejemplo
En la figura B se presenta un grafo de dependencia hipottico. En el mismo se
dibujan las relaciones de dependencia entre atributos para una aplicacin de
remuneracin. EMPNO y DEPTNO estn subrayadas en la figura para expresar
que ambas son partes de una clave compuesta para la relacin. Una lnea
gruesa conecta EMPNO a EMPNOM para indicar que si nombre de empleado y
existe una dependencia total.
Varios atributos dependen directamente del nmero de empleados:
TITL es el ttulo de la tarea del empleado
PAYLVL es un carcter que indica el nivel de
sueldo del empleado.
HORAS representa el nmero de horas que el
empleado ha trabajado la presente semana.
PAYRT est apuntado a PAYLVL indicando que el
rgimen de pago es transitivamente dependiente del
nivel de pago.
La lnea de trazos que une PAYRT y HORAS indica que ambas participan en
una dependencia completa por la cual el receptor es PAYAMT, el valor pagado
para esta semana.
A la derecha de la figura, encontramos los atributos que dependen del nmero
de departamento. Obsrvense la dependencia total entre nmero y nombre del
jefe del mismo (MGRO y MGRNM).
Hay solamente un atributo que es completamente dependiente de ambas
partes de la clave compuesta, es decir, el nmero de proyecto, PROJNO.
5. Segunda Forma Normal
Una relacin est en segunda forma normal (2FN) solamente si todos los
atributos son dependientes en forma completa de la clave.
Descripcion De La Segunda Forma Normal (2 Fn)
Su nombre ya nos indica el hecho de que la segunda forma normal es por lo
general el prximo paso de normalizacin y descomposicin. Para ser
accesible a la normalizacin, y poder ser puesta en segunda forma normal, la
relacin debe poseer las siguientes propiedades:
Debe estar en primera forma normal
Debe tener una clave compuesta.
La consecuencia inmediata de los requerimientos expresados ms arriba es
que cualquier relacin en primera forma normal que tiene una clave simple,
est automticamente en segunda forma normal. Comencemos con un ejemplo
en forma de tabla de una relacin consistente en 17 atributos, que se presenta
en la figura. La misma se encuentra en primera forma normal y tiene una clave
compuesta que consiste en dos atributos P y Q. Estos estn subrayados en la
figura para mostrar que sirven como clave. La tupla de relacin puede tambin
escribirse linealmente en forma simblicamente:
R = (A,B,C,D,E,F,G,H,I,L,M,N,O,P,Q)
El prximo paso es crear un grafo de dependencia, presentando aqu como
figura. Debe notarse que este grafo se crea examinado con conocimientos y
atributos para determinar como participan y relacionan entre ellos.
No resulta suficiente analizar la matrz de relacin, la cual puede hacernos
creer que existe una dependencia debido a que la muestra de la cual se ha
extrado dicha relacin es pequea. Si somos inducidos a error por los datos
existentes y construimos una dependencia donde esta no existe, se plantear
un problema. Cuando lleguen nuevos datos que contradigan la dependencia,
deber dejarse de lado el esquema completo.
Supongamos en consecuencia que el grafo que se puede observar en la figura
ha sido derivado en forma funcional y que expresa correctamente las
dependencias. Resulta claro a partir de este grafo que los atributos que parten
de P son dependientes solamente de este. De un modo similar los que parten
de Q dependen solamente de este ltimo. Solamente aquellos que parten de la
lnea de trazos que conecta a P y Q tienen dependencia completa de ambos.
Esta es la gua para la descomposicin.
Descomposicin
La figura contiene 3 sub-rboles, la base de nuestra descomposicin.
Definimos una subtupla general en base a cada sub-rbol y en consecuencia:
P' = (P,A,B,C,E,H,K)
Q' = (Q,F,G,J,N)
PQ = (P,Q,D,I,L,M,O)
Aqu la raz de los sub-rboles de la izquierda y la derecha. P y Q, se convierte
en la clave de sus respectivas subtuplas; ambos. P y Q forman la clave
compuesta para la subtupla PQ.
Proyeccin
El prximo paso es proyectar la relacin R sobre cada una de estas subtuplas
para formar tres nuevas relaciones, y en consecuencia.
P' = proyectar R(P')
Q' = proyectar R(Q')
PQ = proyectar R(PQ)
Las relaciones as formadas nos dan tres nuevas sub-relaciones. Una
subrelacin es la relacin que deriva de una relacin mayor. Las subrelaciones
ilustradas en la figura estn correlacionadas por medio de los componentes de
sus claves. La clave compuesta P y Q de la relacin original R. es tambin la
clave de la sub-relacin PQ. P y Q tienen a P y Q respectivamente como
claves. La lnea de trazos en la figura indica que Q est correlacionada con PQ
por medio de la componente Q y P est correlacionada con PQ por medio de P.
Para restablecer la relacin original R debemos juntar estas tres subrelaciones
en algn orden, indicado simblicamente como:
R = juntar P [juntar PQ, (Q)] (P) = juntar Q[juntar PQ P(P)] (Q).
Grafos
La nueva sub-relacin que se ve en la figura se presenta en forma de grafo en
la figura siguiente. Existe una considerable analoga entres estas figuras y la
figura anterior. Lo importante es la diferencia. En PQ existe una lnea de trazos
que conecta los componentes de la clave compuesta P y Q en el centro de la
figura. Los arcos parten del centro de esta lnea de trazos hacia todos los
componentes de P y Q, los cuales son dependientes en forma completa de
ambos, es decir de P y Q. Una lnea de puntos conecta P en la relacin PQ a P
de la relacin P. Esto representa la correspondencia entre ambas veces P. Una
lnea de puntos conecta de un modo similar Q en PQ a Q en Q para indicar una
correspondencia similar.
Efectos
El efecto de esta descomposicin puede no resultar inmediatamente claro.
Debemos insistir en que ninguna relacin correcta debe contener tuplas
duplicadas. La relacin original R contiene muchas subtuplas duplicadas P' y
Q'. Las mismas han sido eliminadas durante la descomposicin. Esto facilita en
forma extraordinaria la actualizacin y otras importantes operaciones que
afectan a estas relaciones, las cuales sern aclaradas en los ejemplos que
siguen.
Ejemplo de inventario
Vamos a utilizar ahora un ejemplo prctico para demostrar la normalizacin. En
la figura se observa una parte de la matrz de relacin PW.
Pueden verse los nombres de los atributos simblicos y sus significados, pero
no sus valores. Las columnas no aparecen en ningn orden en particular. Debe
observarse la clave compuesta que distingue cada tupla, que abarca el nmero
de pieza y el nmero de depsito PNO y WNO.
Arbol de Dependencia
El medio para descomponer la relacin es el rbol de dependencia que se ve
en la figura. Este rbol ha sido construido solamente teniendo en cuenta la
dependencia completa, y no muestra las dependencias total o transitiva, que se
describe ms adelante, si es que las mismas existen.
Como podamos esperar, aparecen tres sub-rboles. El sub-rbol de la
izquierda, con raz PNO, contiene los atributos que se aplican solamente a la
pieza o parte. El sub-rbol de la derecha con raz WNO describe cada depsito.
EDl sub-rbol del centro corresponde a las partes y al depsito, y describe la
cantidad de partes disponibles en el depsito, QOH, y el nmero de cajn o
estante, BIN (o algn otro parmetro de ubicacin), donde dichas partes
pueden ser halladas.
El prximo paso es definir tres tuplas generales para cada sub-rbol,
P = (PNO, DESC, PR, UNIT)
W = (WNO, WAD, FUE)
P/W = (PNO, WNO, BIN, QOH)
La descomposicin consiste en proyectar la relacin PW sobre cada una de
estas tuplas para obtener tres nuevas sub-relaciones:
P = proyectar PW(P)
W = proyectar PW(W)
P/W = proyectar PW(P/W)
La descomposicin en la figura muestra las tres relaciones como matrices; la
lnea de trazos indica como se vinculan las relaciones.
Efecto
Discutiremos ahora algunas de las ventajas obtenidas mediante la
descomposicin. Si estas relaciones se utilizan para el control de inventario.
nuestra preocupacin ser cuantas piezas de cada tipo estn disponibles en un
depsito en particular. Cuando se retiran piezas o se reciben nuevos envos la
cantidad disponible, QOH ser la variable de cambio. La actualizacin consiste
en poner al da sub-relacin P/W la cual ahora contiene solamente malos
componentes en lugar de los nuevos P/W.
Existe una tupla P en la sub-relacin de pieza o parte, P, para cada parte y una
tupla. W, en la sub relacin W, para cada depsito y estos ltimos
probablemente no sern muchos. Consideremos la facilidad de efectuar
cambios en un depsito en particular. Si un atributo de uno de los depsitos
vara entraremos en W para efectuar el cambio solamente en una tupla. En la
primera forma normal para PW tenamos que encontrar todas las tuplas en las
cuales el valor de WNO esta el particularmente deseado, y efectuar el mismo
cambio en cada una de ellas. Si dicho depsito almacenaba 100 partes, como
consecuencia deba variar 100 tuplas de PW. El procedimiento de actualizacin
se aplica tambin a las descripciones de partes. Si el precio de alguna parte o
pieza cambia, este cambio es independiente del depsito en el cual se
almacena dicha parte. Solamente se efecta un cambio en P a diferencia de los
muchos que hubieran sido requeridos para PW.
6. Tercera forma normal
Una relacin se encuentra en tercera forma normal (EFN) si no existen
transitividades entre sus atributos y si ya se encuentra en 2 FN.
Descripcin
Una relacin R a poner en tercera forma normal debe estar en la segunda
forma normal. Es muy comn que R sea una sub-relacin; la relacin original
estaba en primera forma normal (para ponerla en segunda forma normal fue
descompuesta en varias sub-relaciones). Estas son ahora candidatas a una
descomposicin adicional.
Recordamos que las propiedades de la segunda forma normal (2Fn) son:
Tenemos una matrz m x n con un valor determinado para cada
componente de cada tupla.
Cada valor es obtenido a partir de un dominio
propiamente definimos
Cada valor contiene una clave, ya sea simple o compuesta
Cada componente no clave es dependiente en forma completa
de su clave.
El resultado son nuevas sub-relaciones que han sido utilizadas para ahorra
espacio y permitir una ms fcil actualizacin.
Ejemplo de profesor y texto
Consideremos otro ejemplo. Los cursos dictados en una escuela corresponden
a un nmero de curso. Asociada a cada nmero de curso se encuentra la
descripcin del mismo. Para cada curso existe una seleccin de textos y una
seleccin de profesores. Puede darse cualquier combinacin de texto y
profesor.
El grafo de dependencia. El mismo nos muestra una dependencia total entre el
nmero de curso y la descripcin del curso. Existe una multidependencia entre
texto y nmero de curso, y tambin entre profesor y nmero de curso.
Para descomponer la sub-relacin en sus relaciones ms pequeas, se
efectan tres proyecciones. Las sub-relaciones resultantes.