- I - TESIS CARACTERIZACIÓN MATEMÁTICA DE LAS ¡{ASES DE DATOS RELACIÓNALES A ¡'W'riR DE LOS AXIOMAS DE ARMSTROMG: UNA APROXIMACIÓN DESDE EL i .INTO DE VISTA ANALÍTICO. Por MARÍA COVADONGA FERNANDEZ BAIZAN Ingeniero Superior de Telecomunicación Presentada en la FACULTAD DE INFORMÁTICA de la UNIVERSIDAD POTECNICA DE MADRID Para la obtención del ORADO DE DOCTOR EN INF T- l Madrid, Septiembre de 1.981
151
Embed
- I - TESIS CARACTERIZACIÓN MATEMÁTICA DE LAS ¡{ASES DE ...oa.upm.es/989/1/MARIA_COVADONGA_FERNANDEZ_BAIZAN.pdf · el profesor norteamericano, E.F. Codd. En cualquier caso, si
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
- I -
T E S I S
CARACTERIZACIÓN MATEMÁTICA DE LAS ¡{ASES DE DATOS RELACIÓNALES
A ¡'W'riR DE LOS AXIOMAS DE ARMSTROMG: UNA APROXIMACIÓN DESDE
EL i .INTO DE VISTA ANALÍTICO.
Por
MARÍA COVADONGA FERNANDEZ BAIZAN
Ingeniero Superior de Telecomunicación
Presentada en la
FACULTAD DE INFORMÁTICA
de la
UNIVERSIDAD POTECNICA DE MADRID
Para la obtención del
ORADO DE DOCTOR EN INF
T- l
Madrid, Septiembre de 1.981
- II -
T E S I S D O C T O R A L
CARACTERIZACIÓN MATEMÁTICA DE LAS BASES DE DATOS RELACIÓNALES
A PARTIR DE LOS AXIOMAS DE ARMSTRONG: UNA APROXIMACIÓN DESDE
EL PUNTO DE VISTA ANALÍTICO.
Por: D- María Covadonga Fernández Baizán
Director de Tesis: D. Rafael PORTAENCASA BAEZA
LB_LLy_!LA_L_9-LLLLl-C_A_L9_R.
Presidente :
Vocales :
Madrid, de Septiembre de 1.981
- III -
PLANTEAMIENTO Y RESUMEN DE LA TESIS
El contenido de este trabajo se inscribe dentro del campo de
las Bases de Datos, más concretamente, de las Bases de Datos Relacióna
les, para las que los resultados obtenidos son de inmediata aplicación.
El so.ftwarede gestión de una Base de Datos Relaciona!, debe
ría incluir un modo de conocer el grado de normalización de una relación,
ya que, del manejo de relaciones no normalizadas, pueden derivarse cier
tas inconsistencias (son las denominadas anomalías de inserción, borrado
y actualización). Nuestro objetivo es proporcionar un fundamento matemá
tico para tales técnicas.
El método utilizado, parte de las dependencias funcionales -
definidas en el esquema inicial, calculando todas las claves. Esta dete£
minación, unida a un estudio en detalle de las propiedades matemáticas -
de las Formas Normales, y a la caracterización de los atributos principa_
les y no principales; permite la elaboración de dos sencillos Algoritmos,
que,aplicados a una relación, producen como resultado su nivel de norma
lización.
- IV -
ABSTRACT
The matter dealt with in this paper belongs to the Data Bases
field or, more specifically, to Relational Data Bases; results obtained
are therefore suitable for being appied directly.
A relational Data Bases management software should include so_
me way knowing the standardizaron degree of a relation because the use
of non-standarized relations may entail inconsistencies (called ente-
ring, erasing and bringing up to date anomalies). Our purpose in to -
fing a mathematica! basis for such techniques.
The method employed starts from functional dependencies shown
in the initial diagram, all the code groups being calculated. This dete£
niination together with a detailed examination of the mathematical proper_
ties of standard forms and with the identification of the chief and less
important inherent characteristics, allows to work out two simple Algo--
rithms that when applied to a relation show its standardization level.
- V -
AGRADECIMIENTOS
Deseo expresar en primer lugar mi gratitud al Profesor D. Ra_
fael Portaencasa Baeza, director de la Tesis, por la valiosa ayuda, con
sejo y orientación que en todo momento me ha prestado a los largo de su
realización.
El desarrollo de este trabajo no habría sido posible sin las
facilidades que para ello se me han brindado en la Facultad de Informátj_
ca de Madrid, a cuyo Decano, D. Antonio Insua Negrao, deseo expresar por
ello mi agradecimiento.
Me ha sido asimismo de gran utilidad la colaboración manteni_
da con la Profesora D- Adoración de Miguel, por su gran experiencia pro
fesional en el campo de las Bases de Datos.
Debo mencionar también a todas las personas e instituciones
cuya labor de investigación constituye el punto de partida de este traba_
jo. Agradezco en particular la ayuda prestada en este sentido por I.B.M.,
S.A.E.
La recopilación de la bibliografía "consultada ha sido fácil
con la eficiente ayuda del Centro de Documentación y Biblioteca de la Fa_
cuitad de Informática de Madrid, a cuyo Departamento de Publicaciones de_
seo también dar las gracias por su ayuda.
Vaya por fin la expresión de mi profunda gratitud a mis p a
dres, cuyo aliento y confianza en mí, han constituido un importante estj_
mulo en la realización de este trabajo.
- VI -
L I S T A DE S Í M B O L O S
V
i
<
u
V
A
I /
Cuantificador universal
Cuantificador existencial
No existencia de
» A continuación de cualquiera de los anteriores, expresa
una condición y se lee "tal que"
CZ. Inclusión
C Inclusión o igualdad
G Pertenencia
Menor o igual
Menor
Mayor o igual
Mayor
Unión de conjuntos
O Intesección de conjuntos
Or
And
Cardinal de un conjunto
Í N D I C E
Páqina
CAPITULO 0. INTRODUCCIÓN 1
CAPITULO I. GENERALIDADES ACERCA DE LAS BASES DE
DATOS RELACIÓNALES.
1. El modelo relacional 6
2. Algebra relacional 7
3. Restricciones y esquemas de relación 12
4. Dependencia funcional 12
4.1. Dependencia funcional completa 13
4.2. Dependencia funcional transitiva 13
5. Implicación lógica de dependencias 14
5.1. Cálculo del cierre de un descriptor
con respecto a un conjunto dado de
dependencias 15
6. Claves 17
7. Descomposición de relaciones conservando
las dependencias : Normalización 17
7.1. Primera Forma Normal 18
7.2. Segunda Forma Normal 19
7.3. Tercera Forma Normal 19
CAPITULO II. DETERMINACIÓN DE LAS CLAVES DE UNA
RELACIÓN
1. Introducción 22
2. Matriz de implicación. Sistematización
del Cálculo del cierre de un conjunto de
dependencias funcionales 23
3. Fundamentos Matemáticos 25
4. Algoritmo para determinar las claves de
una relación 33
5. Ejemplo de determinación de las claves
de una relación 36
6. Función "cierre" APL para determinar el
cierre de una matriz de implicación 39
CAPITULO III. PARTICIÓN FUNCIONAL: UN FUNDAMENTO
MATEMÁTICO PARA REDUCIR EL ESPACIO DE
MEMORIA NECESARIO EN EL PROCESO DE BUS
QUEDA DE LAS CLAVES DE UNA RELACIÓN
1. Introducción 43
2. Partición Funcional 43
3. Determinación de una partición funcional 46
4. Propiedades de una partición funcional 54
5. Caracterización de los atributos princi
pales y no principales 59
6. Reducción de las dependencias funcionales
del esquema inicial 63
7. Supresión de dependencias en forma refle
xiva 66
CAPITULO IV. CARACTERIZACIÓN MATEMÁTICA DE LA SE
GUNDA Y TERCERA FORMA NORMALES
1. Introducción 70
2. Caracterización matemática de la Segunda
Forma Normal
3. Algoritmo para establecer si un cierto es
quema de relación está ó no en Segunda For
ma Normal 80
4. Caracterización matemática de la Tercera
Forma Normal 83
5. Algoritmo para establecer si un cierto
esquema de relación está ó no en Tercera
Forma Normal 88
CAPITULO V. SÍNTESIS DE ESQUEMAS EN TERCERA FORMA
NORMAL.
1. Introducción 90
2. Conceptos previos 91
2.1. Recubrimiento mínimo 91
2.2. Conexión múltiple entre atributos 94
3. Semántica de las dependencias funcionales 95
4. Procedimiento de síntesis 95
4.1. Descripción del Algoritmo 95
4.2. Conexiones múltiples entre atributos 97
5. Esquemas en Tercera Forma Normal 97
6. Minimización del número de relaciones sin
tetizadas 105
7. Resumen 107
CAPITULO VI. CONSIDERACIONES PARA UN ESTUDIO POSTE
RIOR: EVOLUCIÓN ACTUAL DE LA TEORÍA DE
NORMALIZACIÓN.
1. Introducción 109
2. La unión sin pérdida : Un criterio para
la descomposición de esquemas de relación 110
3. Forma Normal de Boyce-Codd (BCNP) 115
3.1. Definición 115
3.2. "Descomposición LJ" en Forma Normal
de Boyce-Codd 116
4. Dependencias muí ti valuadas 125
5. Definición de la Cuarta Forma Normal 128
6. Consideraciones en la integración de los
tres tipos de restricciones estudiados:
dependencias funcionales, dependencias mul-
tivaluadas y dependencias respecto de la
unión 131
7. Conclusión: Posibles puntos de partida
para posteriores trabajos sobre el tema 132
CAPITULO VII. CONCLUSIONES. 134
BIBLIOGRAFÍA. 136
C A P I T U L O O
JJ^RODUCCION
El estudio y potenciación de los Sistemas de Bases de Da
tos Relaciónales ha experimentado un interés creciente, fundamen
talmente en esta última década, por la diversidad de sus posibles
aplicaciones e implicaciones en todo desarrollo informático fu
turo, dados los importantes avances de la tecnologia electrónica
y de las Comunicaciones que han permitido diseñar y fabricar má
quinas cada vez más potentes y económicas.
Así pues, las técnicas de Bases de Datos Relaciónales que
fueron concebidas inicialmente con fines docentes y de investigación
(tales como el sistema EDBMS desarrollado por el Profesor Tschiritzis
déla Universidad de Toronto) se empiezan a utilizar progresivamente
en instalaciones informáticas reales (podemos citar como ejemplos
de tales Sistemas el Query-By-Example y el IMPS , desarrollados por
un Centro de Investigación de EE.UU.).
Todos los Sistemas de Bases de Datos Relaciónales tienen como
característica fundamental el que los datos se presentan al usuario
organizados en tablas, y no en forma de jerarquías o en red, como
los modelos IMS ó CODASYL. El formato de almacenamiento interno
de los datos no es relevante para la percepción relacional. Esto
no quiere decir que las técnicas de acceso y almacenamiemto inter
nos no sean importantes, puesto que determinan si el rendimiento
- 1 -
del sistema es aceptable. Ahora bien, las consideraciones de
rendimiento no son parte de la definición del modelo relacional
en si mismo. Los sistemas anteriormente mencionados no son en
este sentido puramente relaciónales, sino que proporcionan el
modo de gestionar relacionalmente los datos organizados en tablas
en el área de trabajo de usuario.
Prototipos en desarrollo de Sistemas estrictamemte relació
nales son el Sistema R y el IS/1- PRT V.
En los modelos jerárquico y en red, los caminos de acceso
tienen que ser previamente definidos en el subesquema o percepción
del usuario. Por lo tanto, cualquier nueva necesidad de acceso
que no pueda derivarse directamente de ese camino, requiere una
lógica de programación adicional.
En el modelo relacional la búsqueda se realiza por valores
de campo (elementos de la tabla) y ya que no hay lugares privi
legiados en cuanto a facilidad de acceso, existen potencialmente
muchos posibles caminos lógicos y no es necesario definir ninguno
previamente.
Los actuales lenguajes relaciónales de manipulación de datos
suelen ser generalmente muy sencillos, lo que les hace muy atrac
tivos para el usuario final no informático.
Pueden ser de tipo procedural, basados en el Algebra Rela
cional, como el SQL (el lenguaje del Sistema R), ó no procedura-
- 2 -
les, basados en el Cálculo Relacional, como el ALPHA, que diseñó
el profesor norteamericano, E.F. Codd. En cualquier caso, si se
trabaja con tablas muy grandes, y aparte de los problemas de alma
cenamiento que ello pueda suponer, pueden producirse problemas
en las operaciones usuales de inserción, borrado o actualización.
La búsqueda de estructuras queobviasen estos problemas, redu
jeran la necesidad de reestructuraciones en la Base ;al añadir nue
vos tipos de datos y alargasen la vida de los programas de aplica
ción, llevó a E.F. Codd a la definición de las Tres Formas Norma
les, definición basada en dos importantes conceptos: Dependencia
funcional y clave.
En el trabajo que hemos desarrollado al hablar de Base de
Datos ncs estamos refiriendo, tal como hemos especificado al prin
cipio, al nivel lógico. Este nivel lógico es el modelo de una
realidad determinada, modelo realizado en base a unos cuantos ele
mentos (atributos), sujetos a unas ciertas limitaciones (especifi
caciones del usuario). Estas restricciones pueden ser tan comple
jas como lo sea la realidad a modelar, siendo preciso en cualquier
caso poder establecer una definición y caracterización matemática
precisa de estas restricciones, para poder establecer la validez
de la sutitución del modelo inicial por otros más adecuados (en el
sentido, por ejemplo de que contenga matrices de menor tamaño y
planteen por ello menos problemas de espacio en memoria . con el
consiguiente ahorro económico que ello implica ).
Para poder elaborar una teoria matemática sólida en esta
línea, es preciso contar con un conjunto completo de reglas de
- 3 -
inferencia para el tipo de restricciones dado. Sólo en dos
casos muy concretos existen conjuntos completos de reglas de
inferencia (recordemos que un conjunto de reglas de inferencia
sea completo quiere decir que cualquier restricción que pueda
tener lugar en el modelo en estudio, puede derivarse de las enun
ciadas inicialmente por aplicación de dichas reglas ): Cuando
las restricciones son dependencias funcionales o bien dependen
cias funcionales y multivaluadas.
De estos dos casos, sólo en el primero es fácil calcular la
totalidad de las dependencias implicadas por las inicialmente
enunciadas, aun cuando su número sea muy grande. Además, las de
pendencias funcionales son suficientes para modelar con precisión
un importante número de casos reales.
En el Capítulo V figuran las técnicas de Bernstein para
síntesis de relación en Tercera Forma Normal a partir de un modelo
inicial, técnicas que se apoyan en criterios de diseño incluyendo
un número mínimo de relaciones, y que completan este estudio.
En nuestro trabajo, pretendemos inicialmente elaborar un
Algoritmo que permita determinar todas las claves de una relación,
lo que es fundamental en la definición de las Formas Normales.
Basándonos exclusivamente en el conjunto completo de re
glas de inferencia para las dependencias funcionales (Axiomas
de Armstrong), establecemos los criterios que definen si una
cierta relación está o nó normalizada, y su correspondiente ni-
- 4 -
vel de normalización, en caso afirmativo.
Consideramos que este trabajo puede ser de indudable inte
rés en el desarrollo futuro de los sistemas de Bases de Datos Re
laciónales.
En el Capitulo VI figuran diversas consideraciones para un
estudio posterior, de acuerdo con la evolución actual de la teo
ría de Normalización.
- 5 -
C A P I T U L O I
GENERALIDADES ACERCA DE LAS BASES DE DATOS RELACIÓNALES
1. EL MODELO RELACIONAL
En el modelo relaciona!, los datos se organizan en tablas
llamadas relaciones. Una relación tiene un número fijo de co
lumnas (a cada ima de las cuales se la designa por un nombre de
atributo) y un número variable de filas (tupias) ., Cada tupia
de una relación describe una entidad mediante una asignación de
valores a los atributos que dan nombre a las columnas de la re
lación.
Una Base de Datos relaciona! consiste en un conjunto de re
laciones de formato fijo, pero cuyo contenido es variable en el
tiempo.
Las relaciones y Bases de Datos relaciónales se describen
mediante esquemas. Un esquema de relación consiste en un nombre
de relación, un conjunto de atributos y un conjunto de restric
ciones. Una ocurrencia del esquema es una relación definida sobre
el conjunto de atributos del mismo y que satisface todas sus res
tricciones. Un esquema de Base de Datos relaciona! es un conjun
to de esquemas de relación (uno por cada relación de la Base), y
una ocurrencia de la Base es un conjunto adecuado de ocurrencias
de estos esquemas de relación.
- 6 -
2. ALGEBRA RELACIONA!.
Los operandos del álgebra relaciona! son relaciones cons
tantes, o bien variables que representan relaciones de grado
(número de columnas )fijo.
Los atributos son símbolos tomados de un conjunto finito U
("universo " del modelo conceptual). Usaremos A, B, C para
denotar atributos simples y S, T, X.... para designar conjuntos
de los mismos (en lo que sigue denominaremos indistintamente
"descriptor" a un atributo simple o a un conjunto de atributos).
Con cada atributo se asocia un conjunto de valores que pueden
serle asignados, conjunto que denominamos "dominio". Dado un
descriptor T e U, un valor de T es una correspondencia t que
asigna a cada elemento de T un valor de su dominio. El valor
que t asigna al atributo A se representa por t [A].
Una relación sobre T es un conjunto de valores de T. Si re
presentamos poiL^Jna relación^J/^lT) quiere decir que la rela--
ció¿y¿£e define sobre el conjunto de atributos T.
Con las convenciones de notación expuestas, pasamos a des
cribir brevemente las principales operaciones de Algebra Relacio
nal:
la) Unión : la unión de dos relaciones^vvT tís%> denotada,
P°CS¿s\VtS/¿? ?> e s e^ conjunto de tupias que pertenecen
a -/0%> a > y ? ° a a m D a s - Aplicamos el operador de unión
tan sólo a aquellas relaciones que tengan el mismo gra
do y el mismo nombre de a t r ibuto en columnas íiomóloqas.
2°) Di ferencia: Cumpl ienájryjr! (y^ las condiciones ante
riormente expuestas, la diferenci&yfi^^yfo es el con
junto de tupias que pertenecen^ayfc pero no t_a^„.
3o) Intersección: de r\ueyoy¿, ^y/^ cumpliendo las condi-
ciones exigidas para la unión, la interseco i6rr//fn
es el conjunto de tupias comunes ^
4o) Proyección : La proyección d e ^ y y (T) sobre el descrip
tor X ^ l¿/¿[^) , se define así :
{t W ,&}
5o) Selección : Conjunto de tupias deyT(T) en las que el
valor que adquiere el descriptor X cumple una cierta
condición prefijada.
6o) Producto cartesiano : Sí . M l M son relaciones de
grado K, y K9, respectivamente, el producto cartesia
no se define como el conjunto de todas las (K, x K?)
tupias cuyas primeras K., componentes son una tupia <^/A
y cuyas últimas K„ componentes son una tupia &$y¡h
se representa por El producto cartesiano d e ^ f , tL/í?
i *
7o) Div is ión : Seárf^X TyÁ relaciones de grado K, y Kr
respectivamente, siendo K. > K? y -2 f 0. Definimos
"iente<_y/i '~tj/t? c o m o e l conjunto de (K -K„) el COCÍ
tupias "t" tales que, para toda tupia "u" >_ *-/?. ?, la
tupia "tu"
Ilustremos esta definición con un ejemplo:
A
1
1
2
5
5
1
B
2
2
3
4
4
2
C
3
5
5
3
5
4
D
4
6
6
4
6
5
M C
3
5
_D
4
6
2
4
8o) Asociación : La 9 - Asociación ü_
de las columnas j y K, denotada p
r, respecto
fer 1 l^y¿2 es el
j 6 K
conjunto de tupias del producto cartesiapte^T;.. x<^L?
tales que el j-ésimo elemento dé~^/£ está en relación
0 (cualquier operador ar i tmét ico de comparación) con
el K-ésimc elemento
9o) Unión natural : Sean las re lac ione j r ^ f ( T i ) , i = l , 2 . . n 1
...n y sea T= U T. . La unión natural de esas n re
n
i=l
laciones, denotada por *^yi~- ^ es una relación de-i = l
finida sobre T de la forma siguiente:
- { t / vi , t 1 ¿ ^ : t [,^t.jMr.
Para entender cómo se construye la unión natrual, considérese
una secuencia t , , t 0 . . . . , t ; donde t - . t ^ / T • Estos valores 1 2 n r~^ Li
pueden combinarse para constituir un valor de T, ttéí^x,
si y sólo si son compatibles dos a dos , esto es:
Vi ¿ l.VJÍ n , t. [T. H Tj] = t . [T. D Tj]
Obsérvese que si los T. son disjuntos dos a dos, la asociación
natural es el producto cartesiano.
Ilustremos esta definición con un sencillo ejemplo:
1 A B C <^¿2 B C D
a b e b c d
d b c b c e
b b f a d b
c a d
i = l A
a
a
d
d i
B
b
b
b
b
C
c
c
c
c
D
d
e
d
e
10 -
Mencionemos a continuación alguna de las propiedades de
la unión natural. Se trata de una operación conmutativa y aso
ciativa. Además se tiene que :K^r$_y? - ~
Si para algún i j, T. Pl T. i 0, pero
i CTi n T j i O ^ íTi n T.]= 0, la unión natu-
ral es el conjunto vacio. De modo más general : si proyectamos
¿jxLi sobre algún T., obtenemos un subconjunto dé i = l J
Será un subconjunto propio cuando para algún elemento dé^r , no
haya ningún elemento compatible con las otras relaciones, en cu
yo caso estos elementos se pierden en la unión.
Un conjunto <J/¿- (T.) } de relaciones se dice que es com
patible respecto de la unión, si es el conjunto de proyecciones de
una relación sencilla. En este caso se verifica:
i=i L J J v ' j
Obsérvese sin embargo que si proyectamoj^/Ten subrelacio
nes, la unión natural de las proyecciones, no tiene por qué ser
necesariamente igual a^J^f. Por ejemplo : Sea la relacionara),
T = / A , B, C I , que proyectamos sobre T = / A, B i y T? =|B, C£ .
Delobel y Casey [22], demostraron que si C depende funciona]^
mente de B (el concepto de dependencia funcional se ilustrará
más adelante en este mismo capítulo), entonce{s^rjt"] ¿SC¿\
- 11 -
3. RESTRICCIONES Y ESQUEMAS DE RELACIÓN
Una restricción es, en esencia, un predicado sobre una
relación. A veces estaremos interesados en restricciones que
afectan tan sólo a una parte del universo descrito por un esque
ma de relación.
\.
Definiremos pues formalmente una res t r i cc ión como un par
(S, p ) , donde p es un predicado y S es un conjunto de atrj_
butos. La r e s t r i c c i ó n / se define para una r e l a c i q r f x í u ) ,
s i S g T y p se define par5aj^r[S] > siendo entonces / v á l i d a
e r j j ^ s i p es c i e r t o , e¿yf\f¡ • Al conjunto S se le denomina
contexto de la res t r i cc ión / .
Un esquema de relación es un Vz¿/¿- *• ~^\y>'-> siendo T
un conjunto de at r ibutos y j¿u r i conjunto de res t r icc iones. Con
cada esquema de re l ac i ón^Tx , asociamos un conjunto de re lac io
nes, REL(^Y' ( const i tu ido por todas las relaciones definidas
i T que ver i f i can las restr icc iones de_¿/| SJr;
, decimos qu¿^r (T) es una ocurrencia d%_^/¿,
sobre T que ver i f i can las restr icc iones de_¿/| ^ r ^ r U ) ' R E ^ ^ ¿
4. DEPENDENCIA FUNCIONAL
Una clase particularmente importante de restr icc iones la
constituyen las denominadas dependencias funcionales.
Sea la re lac iq r f^T lT) y los descriptores X e Y, ta les que
X U Y £ T. Decimos que Y depende funcionalmente de X, lo
- 12 -
cual se expresa como X —*• Y ("X" implica "Y"), cuando para
cada dos f i las d¿^7, t ¡ y t 2 ; t [x ]= t „ ["xjimpl ica t [Y] =
t2 [ y].
En otras palabras: El descriptor Y depende funcionalmente
de X en la relación^y(l) cuando en dicha relación a cada valor
de X se le asocia un valor determinado de Y (y sólo uno). Por el
contrario, si Y no depende de X, representaremos este hecho por
X -^ Y. Por fin, la mutua dependencia entre X e Y se simbolizan
así : x •*—>Y (en este caso también se suele decir que ambos des_
criptores son equivalentes).
4.1. Dependencia funcional completa:
Y tiene dependencia funcional completa respecto de
X, X=^Y, si tienen lugar las siguientes condiciones:
a) X -> Y
b) Y no depende de ningún subconjunto propio de X.
4.2. Dependencia funcional transitiva:
El descriptor Y depende transitivamente del descrip
tor X, X — > Y, si tienen lugar las siguientes condiciones:
a) X n Y = 0
b) Existe un descriptor Z tal que :
- 13 -
z n x = 0
z r> Y = 0
x - » z
z -/-> x
Z -> Y
Si además se verifica que Y-/->Z, de la dependencia transi
tiva se dice que es estricta.
Veremos enseguida cómo todos estos tipos de dependencias
funcionales son el fundamente del importante concepto de norma
lización.
IMPLICACIÓN LÓGICA DE DEPENDENCIAS
Sea^j/T^T^/^ un esquema de relación, donde^j^" (conjun
to de restricciones ) es un conjunto de dependencias funcionales.
Decimos que J¿, implica lógicamente la dependencia X —» Y, si
ésta tiene lugar v Jyp REÍ jf
El conjunto de todas las dependencias funcionales implica
das lógicamente porS/^se representa por C/y-v y se denomina
"cierre de^-f^". S i O ^ C / ^ , de ('y se dice que es un conjunto
completo de dependencias.
Los axiomas de Armstrong [2] , que se enuncian a conti
nuación constituyen un conjunto completo de reglas de inferencia
que permiten calcular el cierre de cualquier conjunto de depen-
- 14 -
dencias funcionales.
Al
A2
A3
A4:
A5:
Refle;xividad : S -> S
Transitividad: Si S—>V y V-rX, entonces S-^X
Aumentación: Si S-^V, entonces S ' —•-, V para todo
S' 2 S
Proyectividad: Si S ->V, entonces S -~r V' para todo
V'cV (V 1 0 )
Aditividad : Si S-*V y X-^Y, entonces SUX-^VUY
se Dado el conjunto de dependencias^/^ el descriptor X,
define el cierre de X con respecto a ^~r, X' , como el conjunto
daatributos A tales que X—>A puede deducirse a partir de(
por aplicación de los axiomas de Arrnstrong.
Exponemos a continuación un sencillo algoritmo descrito por
ULLMANN f3lj para calcular el cierre de un descriptor.
5.1. Calculo del Cierre de un Descriptor con respecto a un
Conjunto dado de Dependencias.
Se calcula una secuencia de conjuntos de atributos, X^° ,X ''
.... X de la forma siguiente :
- X(0) = X
- X^ ' es X^ ' más el conjunto de atributos A, tales que
hay alguna dependencia Y —•> Z en^r , en la que A e Z e
ye J('j'. Ya que X = X (°t .... c X ^ C .... c T , y T es
un conjunto finito, tiene que alcanzarse eventualmente un j tal
15
que: X ^ = X ' J + 1 ) . Se sigue entonces que X ^ = X^J + 1^ =
X .... Por lo que puede detenerse en este momento el
proceso.
Se demuestra fácilmente por inducción que efectivamente
(i) +
XVJ/ = X para este valor de j, (la demostración puede encontrarse en [31] )
Ejemplo : Sea el conjunto l_ de dependencias:
A B -> C D —> E G
C —-» A B E —> C
BC ^ D C G —* BD
A C D - ^ B CE —* A G
Aplicando el algoritmo de cálculo de X , tendremos X^0^
BD. Para calcular X , busquemos las dependencias que tengan
como primer mienbro B, D ó BD. Hay sólo una : D — > EG, así
que añadimos E y G a x'0', obteniendo : X^1' = BDEG.
(2) Para calcular X , buscamos aquellas dependencias cuyo
primer miembro sea subconjunto de X . Estas son: D->EG ,
BE — > C. Por tanto : X ^ = BCDEG
(3) Para calcular X buscamos las dependencias funcionales
(2) cuyo primer miembro sea subconjunto de Xv , y encontramos:
D —• EG, BE —••> C, C -* A, BC — > D, CG --->• BD, CE * AG.
(3) Asi pues: Xv = ABCDEG, que coincide con el conjunto de todos
16
los atributos. Se tiene por tanto en este caso que (BD)
ABCDEG.
6. CLAVES
Denominaremos clave de una relaciqrí^Y(T) a un subconjunto
no vacio de T, K, tel que T tiene de dependencia funcional coinple
ta respecto de K : K zr> T.
En una relació¿f^77(T) se denominan atributos principales a
aquellos que son miembros de alguna clave d¿y¿[T). A los demás
atributos se les denomina no principales.
Entre todas las claves dejy¿\T), elegiremos una como clave
primaria.
Ningún atributo de la clave primaria puede tener un valor
indefinido.
7. DESCOMPOSICIÓN DE RELACIONES CONSERVANDO LAS DEPENDENCIAS:
NORMALIZACIÓN
Descomponer una relaciQj^^fT), es reemplazarla por un con-
junto de proyecciones. De un modo muy general, esta descomposi
ción se realizará con el criterio de conservar la información
contenida en la tabla original.
Un criterio para realizar esta descomposición es que el con
junto de dependencias funcionales verificadas p o r ^ ¿ , sea im-
- 17 -
plicado por la proyección de_^/sobre las relaciones de la des
composición. Formalmente, la proyección de'/sobre un conjunto
O? de atributos Z><=J/^fZJ , es el conjunto de dependencias X —* Y
d e y ^ ' tales que XUY € Z. S¿^/Tse ha proyectado en las sub
dencias si la unión de todas las dependencias de^/ fT-1 >
i=l, 2 n; implica lógicamente todas las dependencias d e /
El proceso de normalización consiste en esencia en una sis
temática de realización de sucesivas proyecciones a partir del
esquema original, con conservación de las dependencias funciona
les. Codd [141 enumeró hasta seis objetivos que se realizan
al normalizar las relaciones, de los que destacamos los siguien
tes:
- Se reduce la necesidad de reestructuraciones en la Base
al introducir nuevos tipos de datos, con lo que se alarga
la vida de los programas de aplicación.
- Se reduce la incidencia de anomalias de inserción, borrado
y actualización (ver Date [21] y Ullmann [31] ).
7.1. Primera Forma Normal:
^yy(T) está en Primera Forma Normal (FNF) si todas sus en
tradas son simples (no hay grupos repetitivos, o sea: Está cons
tituida por elementos atómicos).
- 18 -
7.2. Segunda Forma Normal
ST :
Una relaciórr/7}T) está en Segunda Forma Normal (SNF),
- Está en Primera Forma Normal y
- Cada atributo no principal tiene dependencia funcional
completa respecto de cada una de las claves.
7.3. Tercera Forma Normal
Una relaciQrV^r(T) está en Tercera Forma Normal (TNF) si:
- Está en Segunda Forma Normal y
- Ningún atributo no principal ókyfy(l) depende transiti
vamente de ninguna clave de^/T(T)
Ejemplo:
Consideremos el conjunto de dependencias:
A
AB
AB.
C .
E .
C
D
E
D
D
T
El descriptor AB es evidentemente la clave de cualquier
relación definida sobre A, B, C, D, E; que cumpla el conjunto de
restricciones especificado.
Sea pues una relació,n^r(A, B, C, D, E) que verifica el
19
esquema anterior. Si queremos normalizarla, procedemos a pro
yectarla en subreíaciones que se ajusten a las definiciones de
las formas normales.
Si, como supondremos, los atributos son simples, la rela
ción ya se encuentra en Primera Forma Normal.
Segunda Forma Normal:
Ó¿ Sustituimos la relación_^?, por el conjunto de proyecciones
Síi ^ , C, D) = J^CA, C, D] ¿ffi 2 (A, B, E, D) ^cJ/rfA, B, E, DJ J f 3 ( A , B, D) - J f [ A , B, D]
Y el diagrama de dependencias funcionales es ahora :
Ó2r A > C — > D & : AB E ~» D
->D
Tercera Forma Normal
JfáU (A, C) ¿ ^ [A,C] ¿/Yn (A,B,E) {%, [A,B,E"
c_Í719 (C, D) C^?T? f C , D j ¿ ^ 2 (E, D) ¿/f2 [E, D] Ly M
(A, B, D)
Con las dependencias funcionales:
(11) A -^ C
(12) C —+ D
(21) AB
.'22) E
E
(3) AB
D
20
Cuya unión es precisamente el conjunto inicial de dependencias
dado.
En lo que sigue, consideraremos como criterio de normaliza
ción la proyección en subrelaciones conservando las dependencias
funcionales descritas para el esquema inicial. Ya hemos visto
que las claves juegan un papel fundamental en la definición de
las fechas normales, así como en el proceso de normalización pro
piamente dicho.
El siguiente Capitulo está dedicado a la búsqueda de las
claves de una relación.
Partiendo de los Axiomas de Armstrong, hemos deducido un con
junto de Lemas y Teoremas en los que se basa un Algoritmo que
permite determinar todas las claves candidatas.
- 21 -
C A P I T U L O II
DETERMINACIÓN DE LAS CLAVES DE UNA RELACIÓN
1. INTRODUCCIÓN
En el Capítulo primero hemos puesto de manifiesto cómo
las Claves juegan un papel decisivo en el proceso de normaliza
ción.
Dado el esquema de relación o/^CT,^/^ , una clave del
mismo es un descriptor K, tal que:
- K £ T
- (K-^TjeJ^
- No existe ningún subconjunto propio de K, K', tal que:
K'-*. T
La propiedad de transitividad de las dependencias funciona
les condujo a Delobel y Casey F 22 ] a establecer el isomorfisnio
entre la estructura inferencia! de las dependencias funcionales
y la estructura inferencial de las funciones Booleanas de conmu
tación. Este isomorfisnio les permitió desarrollar un algoritmo
para encontrar todas las claves de una relación, algoritmo basado
en la correspondencia entre dependencias funcionales y una fun
ción Booleana y en la determinación de implicantes principales.
22
Aquí presentamos un procedimiento alternativo, basado ex
clusivamente en los Axiomas enunciados por Annstrong para las de
pendencias funcionales que, tal como hemos señalado con anterio
ridad, constituyen un conjunto completo de reglas de inferencia
para este tipo de restricciones.
2. MATRIZ DE IMPLICACIÓN. SISTEMATIZACIÓN DEL CALCULO DEL
CIERRE DE UN CONJUNTO DE DEPENDENCIAS FUNCIONALES.
El dato de partida en el proceso de la búsqueda de Claves
(y posterior normalización) es el Conjunto de dependencias fun
cionales | S . —> X . t i = 1,2 m especificadas por el usuario
o por el Administrador de la Base, que tienen lugar en^y^T).
Sin pérdida de generalidad podemos suponer que S. , S. ,
vi f j y que S. O X. = 0 vi (ya que si S -> X también,
por proyectividad, se verifica S —> X— (S n X)).
Designaremos la matriz de implicación por la misma letra
» Sr> con que hemos denominado al conjunto de dependencias fun
cionales del esquema.
La matriz de implicación de una relaciqrf/^u) definida
sobre T = I A., A„ - - - A | es una matriz m x n cuyas filas
se identifican por los primeros miembros de las m dependencias
funcionales: S., S„.... S y sus columnas por los n atributos:
A. ,A„ A , de modo que : 1 2 n '
1 si A, 6 (S. U X.)
1 J i i
0 en caso contrario.
- 23 -
El problema de encontrar el cierreC/^ de la matriz de
implicación se reduce al de encontrar el cierre de los descrip
tores de fila con respecto al conjunto ^r de dependencias fun
cionales dado. Ya hemos visto cómo se calcula el cierre de un
descriptor, ahora expondremos sobre un ejemplo una sistematiza
ción del proceso que permite hallar facilmemte el cierre/'
del conjunto de dependencias dado.
Consideremos la relación <J/<Í(T) definida sobre
T = j A,B,C,D,E,F,G j con el conjunto de restricciones dado
por:
ABC — *
A B —>
C D - ^
EG — ^
DEG
C F
E F
A C
La matriz de implicación es :
^
A B C
A B
C D
E G
A
1
1
0
1
B
1
1
0
0
C
1
1
1
1
D
1
0
1
0
E
1
0
1
1
F
0
1
1
0
G
1
0
0
1
Para encontrar la correspondiente matriz de cierre,
seguiremos los pasos siguientes :
+
2 - Para cada dos filas distintas S. y S. ds / , si i J j ra
para todo A. € S. se verifica S. A. = 1, copiamos K J i k
todos los unos de la fila S. en los lunares homólonos J
de la fila S i - 24 -
En nuestro ejemplo la aplicación del anterior algoritmo
produce el resultado siguiente:
jar
A B C D E F G
ABC 1 1 1 1 1 1 1
A B 1 1 1 1 1 1 1
C D 0 0 1 1 1 1 0
E G 1 0 1 0 1 0 1
En lo que sigue, salvo que se indique lo contrario, traba
jaremos con el cierreC/? y no con el conjunto de dependencias
inicialmente definido. Las nuevas dependencias funcionales son
ahora S. —* Y., i = 1, 2 m, donde Y. o X.,
S. O Y. = 0 , ta l como puede deducirse fácilmente del proceso
del cálculo cle>
El conjunto de atributos que corresponden a entrada 0 en
la fila S. lo denotaremos por Y'..
Es obvio además queJ S., Y., Y'.| constituye una partición
de T si Y' . f 0. i
Al final de este Capítulo, se incluye una función APL que
realiza el algoritmo de cálculo de la matriz de cierre.
FUNDAMENTOS MATEMÁTICOS
Exponemos a continuación un conjunto de Lemas y Teoremas
- 25 -
que, partiendo exclusivamente de las propiedades axiomáticas
de las dependencias funcionales tal como fueron enunciadas
por Armstrong, constituyen el fundamento teórico para el algo
ritmo de determinación de las claves de la relación.
Lema 3.1
ene lugar la dependencia funcional £f « S.U Y' . - * T vi (i= 1, 2 .... m)
Prueba :
S. U Y. U Y' . r T 1 1 1
S.(j Y' . —*• Y . (aumentación) (1)
S.<JY'.->S.U Y', (reflexividad) (2)
Luego, por aditividad entre (1) y (2)
S. U Y' . -> T i i
Lema 3.2
EnO^7 , s i S. C S. [J Y. , y además Y ' . = 0 , entonces
también Y*. = 0
Prueba:
S J -» VJ (1)
S. _* S. (reflexividad) (2) «J \J
Por aditividad entre (1) y (2)
Sj -> T (3) (ya que Y'j = 0)
26
además
S. —* S. (reflexividad) (4)
S. __ Y. (5)
Por aditividad entre (4) y (5), resulta :
S. — * S.U Y. (6)
Ahora bien: S. C. S. (j Y. por hipótesis, luego de (6) se
deduce por.proyectividad que
Si entre (7) y (3) aplicamos la propiedad de transitividad, se
tendrá que:
S. - > T , luego Y' . = 0
Lema 3.3
r^T . si i S . C %.\) Y., e Y'.?* 0, entonces
Y^.fl Y'j f 0
Prueba:
Cualquier entrada de valor 1 de la fila S. es una entrada
de valor 1 en la fila S. (recuérdese el proceso de cálculo de
la matriz de cierre^r ). Por tanto, cualquier entrada de va
lor 0 de S. es una entrada 0 en S. , de modo que,
Y1 . O Y' ., por lo cual: Y'. O Y'. f J — i 3 i
Lema 3.4
Er^^\ si S. £ S.U Y. ; siendo Y' . i 0, para cualquier
27
¿~. c Y' . t a l que S. ta l que S. u &. —> T, se ve r i f i ca J ~™~ «J U J u
Prueba:
Razonemos por reducción al absurdo. Si a . D Y'. = 0,
y ya que S., Y. , Y'. tconstituye una partición de T, necí
seriamente a • c S. U Y. .
Por otra parte S. d S.c/ Y., de. modo que
¿2?. t S. c S. U Y.. Se tendrá entonces que:
S . -> Sn. U Y. _ > S. v ^ j _> T, o sea :
S. -> T (transitividad), lo cual es imposible por contener la
fila correspondiente a S. elementos nulos. Así, pues, debe ser
*i n v. f 9
Lema 3.5
EjvC , s i S. <t S. O Y. siendo Y ' , f 0, se t iene que
Sjnr, 1 1
Prueba:
Ya que\S., Y., Y'.J constituyen una participación de T,
si S. O Y'. = 0 se tendrá que S.c S. u Y., contra la hipó-
tesis. Luego debe ser S.OY1. f 0 3 J i
Lema 3.6
&¿y\ , si S.c S. \j Y., se tiene que S. y S. U S.. impli
- 28
can el mismo subconjunto de T
Prueba:
S. — > S. (1) (reflexividad)
S. ^ Y. (2)
De (1) y (2)>por aditividad:
S. __» S. U Y. (3)
S. —> S. (4) (reflexividad) vJ J
De (3) y (4) por ad i t i v i dad :
S .U S. - * (S. \J Y.) U S., o sea, ya que S . e S . u Y. ' \J \J «J
S. U S. _ » S. U Y. (5)
Luego, S. y S. U S. implican ambos el mismo descriptor,
S. U Y., de T. i i
Teorema 3.1.
^/ r> S 1 S-; ^ s - ^ Y. , existe un descr iptor ¿ z c S i
ta l que S.\j¿z y S. U S. implican ambos el mismo descrip
tor (subconjunto de T) .
Prueba:
En el caso de que S.—> T, basta con considerar ¿sr= 0,
siendo obvio que S.U S. -^ T.
Si por el contrario S. -/-> T, en virtud del Lema 3.5 sabe
mos que S. f) Y1 . f 0. Sea ¿t = S. O Y' ., se tendrá entonces
que a£S. .
29 -
Puesto que) S., Y., Y'.j- es una partición de T, se tendrá
que, o bien S. c Y.', o bien S. f) (S.Ü Y.) f C/. J — i j i i
mo-En el primer caso, S,c Y'., ¿ = S . f) Y ' . = S ., de J ' J ' J
do que S.y^ = S. o S., por lo cual ambos implican el mismo
subconjunto de T. Si por el contrario S. <jt Y'., se tendrá que
S. O (S. U Y.) T< 0. Ya que ^ S., Y., Y' . constituye una J
partición de T, se tiene:
Sj = (Sj.n s.) u (Sj o Y.) \j (s. n Y V =
= [S-C\ (S^Y.JJU^ C (Si U Y.)U«, que
nos permite escribir: S. c (S. \j a ) Y.
Ahora bien, S. -> Y., así que también {S.\ja- )->Y.; por lo
que, usando el Lema 3.5, ya que S. c. (S.j ¿z ) O Y. , con
(S- \J & ) -» Y., podemos afirmar que el descriptor que depende
funcionalmente de $.\)a es el mismo que el que depende de
(S.ua ) \j s. = S. S., (ya que a c s.)
Teorema 3.2
Cualquier clave que pueda derivarse de S. o S., puede
serlo también a partir de S. ó S. independientemente
Prueba:
Del Lema 3.6 y el Teorema 3.1., se deduce la existencia
de un descriptor a L- S. tal que S.(J¿z y S. U S. implican
- 30 -
el mismo subconjunto de T. En el caso de que %.\ja -^ T,
también S. V S. —^ T, pero, ya que que ¿5? c S. se tendrá que
(S. u a ) o (S. v> S.) por lo cual (y excepto en el caso
particular en que - S.), S. U S. no podrá ser una clave si
S . U¿zlo es,
Si S.Vtz ++ T ( por tanto S.\J S. -/- T), sabemos (Lema
3.1.) que existirá un subconjunto b mínimo tal que : (S.K)a )u
(Jb->T y ( S . u S.) 1/ b -> T. Pero tal como hemos razonado
antes, ya que « c S . , (S. US.) u b no podrá ser una clave si
(S.U¿z) O b lo es, excepto en el caso : (S. U ñ )ub = (S . \J S.v^
Ü b.
Lo que hasta aquí hemos deducido, nos permite asegurar que
para encontrar las claves de una relaciónj^; (T) basta con consi
derar el conjunte/-/^ = \S. —> Y. 1,1'= 1, .... m procediendo
a la aplicación reiterada de la propiedad transitiva para encon
trar el mínimo a tal que S. \j¿¿ — > T.
Teorema 3.3.
Si S es un subconjunto de T tal que S — > T, siendo
Y'. f 0, se tiene que S. u (Y1 . f) S ) —y T.
Prueba:
Los Lemas 3.3., 3.4 y 3.5 nos permiten afirmar que si
T, Y'. n S f 0 siempre que Y'. f 0.
- 31 -
Realicemos la partición de S en S, c S. u Y. y
S a Y'
Una tal partición es siempre posible ya que \ S., Y., Y'. ír
constituye una partición de T y S = SOY'- / ? •
Se tienen las siguientes dependencias funcionales:
S. __> Y. (1)
S. _ * S. (reflexividad) (2]
De (1) y (2), aplicando la propiedad de aditividad resulta:
S. _ > S. U Y. (3)
Ya que S, C S.U Y., por proyectividad de (3) se dedu
ce:
Sn. - > S2 (4)
Por otro lado, S ?0 Y'. = S?, así que, por reflexividad:
S2 O Y'. -* S2 (5)
Y ya que S O Y ' . _3 Spn Y'., aplicando a (5) la propiedad
de aumentación, se tiene:
snv.-> s2 (6)
Por aditividad entre (4) y (6) resulta:
S. V (Y'.D S) - * S (7)
Y ya que por hipótesis S*T, resulta finalmente por tran-
sitividad:
- 32 -
Si \J (Y'. O S )
4. ALGORITMO PARA DETERMINAR LAS CLAVES DE UNA RELACIÓN
La formalización matemática que hemos desarrollado, con
duce al siguiente algoritmo de búsqueda de las Claves de una
relación (en el que por JA Idesignamos la cardinalidad o número
de elementos del Conjunto A ):
I - Calcula^; , matriz mxn de cierre de la matriz de
impli cae ion.
II - Mj = 0
M2 = 0
III - Introducir en M. S. U Y1., i= 1,2.... m
IV - Si con I Y1. I c 1 I Y' . I ¿ 1 se tiene que :
S.^Y'. c S . ^ Y 1 . ( M j ) , borrar S.V V.
de M r
V - Si para todas las restantes entradas de M, se tie
ne que i Y' . | _£- 1, el algoritmo concluye: M con
tiene todas las Claves.
En caso contrario :
1) v i : |Y'.|^ 2, hallar «ij = Y1. O (S-0 Y'J)
V j ' 'i ( !Y'jl >s o).
2) y , borrar cualquier &\ j' : i j ' P ^ i j (j f j')
3) Introducir en M? S. U ^ i j , i = 1, 2 m
- 33 -
Luego suprimir en M« cualquier entrada que sea super-
conjunto de otra ya existente en M?.
4) V i e n M r | Y' . \>y 2 y \J . en ^ : S. t Sy
hal lar ¿*iKj = Y ' . O ( S ^ j K )
5 ) v . borrar ^ i K ' j ' : « i k ' j ' 2 ^ i k j ( (K ' , j ' ) f (K, j ))
6) Introducir en M„ todos los Conjuntos S. 0 ^ikj,
a condición de que no sean superconjuntos de otros ya
existentes en M„.
Si así se crea alguna nueva entrada en M„, volver al
punto V.4. En caso contrario , ir a VI
VI -Copiar en M„ los conjuntos S.\J Y1 . de M, con | Y' . ¡ /. 1.
VII -Borrar de M? las entradas que sean superconjunto de otras
ya existentes en NL.
Los conjuntos restantes en M„ son todas las claves, y el
algoritmo concluye.
Por construcción, las entradas de NL satisfacen:
S. \J Y'. _> T y, en virtud del Teorema 3.3. todas
las entradas de M? satisfacen S. Ü aij -> T. Nos que
da solo comprobar que el algoritmo es completo en el sen
tido de que encuentra todas las claves.
34
Teorema 4.1.
Sí Si S. \J ¿z- es una clave de^/¿(T) (siendo | a. \ ¿, 1)
entonces y. i i : ai=Y'.n (S. U b.), |b.| o
Prueba:
Siendo Z. \)a. una Clave, se tiene que S . ^ ^ . — ^ T.
Ahora bien, ya que S./> T, debe existir una subconjunto
Z.c S. \j Y • K) a • tal que Z._*. Y' ., y que podemos escribir
como :
2i = (z. n y,) »/ [z.n (s,y| Y,.)] -
-a. y [z. O (Sj u V.)]
(siempre es posible la existencia de una tal Z., en particular:
Z. = S.v a^ , Z. -» T - > Y'.)
Asi pues, si Z.. _^ Y'., hay que demostrar la existencia
de un j f i tal que
Z. - S j v b j
En el caso en que S. —=> Y1., hacemos Z. = S. (y esto
y .: S. —$. Y'.)- Luego, elegimos el mínimo a. '• a- = Y'f)
H S. y S. U ^. ___• T.
Si por el contrario, S. -/-> Y'., por aplicación de los
axiomas de aditividad y aumentación,
V S, \J b, U b' . = T, donde b' . c S. U Y.; por lo que b' . fl Y' .= 0 J J J J I I J I
35
(ya que \ S., Y., Y'A sabemos constituye una partición de T).
Sea Z. = S. {) b.. En este caso se tendrá: i J v J
Y' 1 O (S,U bjUb'j) - Y'.n (Sju bj) = Y ' . ^ Z r
Este proceso se realiza para cada S. \j bj : Sj U bj —* Y'i
Esto es precisamente lo que el algoritmo realiza: Encontrar itera
tivamente los descriptores ^i : Si U ^ i — > T, eligiendo
luego los mínimos de entre estos a \
Cuando el Algoritmo concluye, cada entrada de M2 es una
clave; y no se ha omitido ninguna (el Algoritmo es completo ).
5. EJEMPLO DE DETERMINACIÓN DE LAS CLAVES DE UNA RELACIÓN.
Consideremos de nuevo el esquema porpuesto como ejemplo
cuando tratamos del cálculo de la matrizC^ de cierre de una
matriz de implicación definida por un Conjunto de dependencias
funcionales dado:
T = jA, B, C, D, E, F, G \
J¿; : ABC —«y DEG
AB — > CF
CD — > EF
EG — > AC
36
A B C D E F G
j £ + : ABC 1 1 1 1 1 1 1
AB 1 1 1 1 1 1 1
CD 0 0 1 1 1 1 0
EG 1 0 1 0 1 0 1
M2 = 0
Mj : ABC ( S ^
AB (S 2 )
Y
CD U (ABG) (S 3 y Y ' 3 )
EG U (BDF) (S 4 U Y ' 4 )
í =0 , Y¿ =0, ABC AB
BORRAR ABC EN Mj
1)
^32 = Y,3 ° (S2 U Y V = ABG n (AB) = AB
^ 3 4 = Y'3 S4 U Y V = ABG ñ ^EG " BDF):: BG
^ 4 2 = Y'4 O (S2 UY'2) = BDF n (AB) =B
^43 = Y' 4n (s3 O
Y'3) = B D ™ (CDUABG) = BD
2) BORRAR a43 (a43 a42)
37 -
3) M2
S3 U a21 = C D Ü A B = ABCD
Sn U ¿z„. = CD UBG - BCDG o 34
S4 U «41 = E G Ü B = BEG
4) anA = Y ' 3 0 (S4 U ^ 4 2 ) = ABG A (EGt/B ) = BG
¿z4a3 = Y ' 4 A (S3 U ^ 3 i ) = BDFA (CDÜAB) = BD
^443 = Y ' 4 A (S3 U ^ 3 4 ) = BDF A (CDÜBG) - BD
5) BORRAR a 4 4 3 (a 4 4 3=a 4 2 3 )
6) S3 U a^. = CDUBG = CDBG (ya existente en M2)
S* U ¿S"„„ = EGUBD = EGBD (Superconjunto de BEG 4- 423
ya existente en M?)
No se ha creado ninguna nueva entrada en M?
VI - M2 : ABCD
BCDG
EEG
AB
VII- Borrar en M? los superconjuntos'
BCDG
BEG
AB
Las claves de^^T T» x > , son:
38
A3
BEG
BCDG
6. FUNCIÓN "CIERRE" APL PARA DETERMINAR EL CIERRE DE UNA
MATRIZ DE IMPLICACIÓN
El Algoritmo que hemos desarrollado es de una gran sen
cillez de cálculo, incluso (tal como hemos hecho en nuestro
ejemplo) para computación manual.
El único paso que puede resultar laborioso es el primero,
en el que se calcula el cierre de la matriz de implicación.
La función "CIERRE" APL facilita el cálculo de la matriz
de cierre.
Por "implicante" designamos al primer miembro de una depen^
dencia funcional. La matriz de implicantes tiene sus filas idejn
tificadas por cada uno de los implicantes del conjunto de depen
dencias inicialmente dado, y sus columnas por los atributos sobre
los que se define la relación. Sus elementos vienen dados por:
1 Si A. fc S.
í 0 en caso contrario *
A continuación se muestra el Algoritmo de cálculo en APL,
realizando de nuevo como ejemplo el cierre del conjunto de depen
- 39 -
dencias :
ABC
AB •
CD
EG
—+ — ^
>
— *
DEG
CF
EF
AC
40
VCIERRE I I . .1 'MATRIZ DE IMPLICAÍM'DN' I".! 3 PH'J 1:3:1 'MATRIZ DE I M P L I C A N T E ; ; ; '
I;M;;I I.H:I I"'r¡:.l P1 <••( V«-,'>P)pO i.ó;i i . i : i.<o l"7J L 2 : J < ( ) I.Ü3 •••< < ] > I + :I. ) > V i : i 3 ) / L ' l 1.93 L3 : -K<J<- . . JM)>Vr : 13 >/!...:! c i ü 3 • > < ~ A / < P I : J ; 3 A L I : : J ; 3 ) ~ L I : J ; : D / L 3
I: I I 3 P Í c i ; 3<-Pi c i ; 3 V P C J ; 3 I I123 ->L3 I I133 L4-: -> < A / A / P = P 1 ) /END C143 P<~P1 11153 Plt-VpO L'163 -»L1 I I173 END: 'LA MATRIZ DE CCERRÉ ES ' i : i83 PV
- 41 -
CIERRE MATRIZ DE IMPLICACIÓN 11:
1 7p1 I 1 .1 1 0 1. j 1 .1. 0 0 I. 0 0 0 I I I I ii I >• ! O ! .i ! MATRIZ l.i£ IMPLICANTES D •'
'+ 7p.l I 1 0 0 0 0 :i I. 0 O O O l) O 0 .1. 1 O O O O !; 0 O I í! I LA MATRIZ HE CIERRE ES J. 1. I 1 .1 I 1 1 1 :l 1 1 i 1 O ü 1 1 1 1 O 1 0 1 0 1 0 1
- 42 -
C A P I T U L O III
PARTICIÓN FUNCIONAL: UN FUNDAMENTO MATEMÁTICO PARA REDUCIR
EL ESPACIO DE MEMORIA NECESARIO EN EL PROCESO DE BÚSQUEDA DE
LAS CLAVES DE UNA RELACIÓN.
1. INTRODUCCIÓN
La partición funcional proporciona el modo de encontrar las
claves de una relación^/¿{T), definida sobre T y sujeta a un
conjunto de restricciones a partir de sus proyecciones en
subrelaciones definidas sobre subconjuntos de T. Esto implica el
que los cierres se tomen en submatrices de la matriz de implica-
cion)cJ¿>, de modo que se disminuye el espacio de memoria necesa
rio.
El concepto de partición funcional y su cálculo algebraico,
que exponemos a continuación en los puntos 2 al 4, han sido toma
dos del libro de Youssef Fadous [35] , adaptando la notación al
resto de nuestro trabajo e incluyendo dos funciones APL que faci
litan el cálculo de una partición funcional.
2. PARTICIÓN FUNCIONAL
En el Capítulo II, hemos presentado al Algoritmo que en
cuentra las claves de una relación a partir del conjunto de res
tricciones definidas por el Administrador de la Base o por el
43
usuario.
Ahora bien, si el número de estas restricciones es muy
grande, el número de pasos de computación es enorme, por lo que
trataremos de determinar si es posible encontrar las claves de
a partir de subconjuntos del conjunto original de dependen
cias funcionales y, em caso afirmativo, encontrar tales subcon
juntos.
Sea pues el conjunto inicial de dependencias funcionales:
££ \ S T h \ -* V i = 1.2 - - - m f , en el
que supondremos : T = y (S.i/X.) (esta suposición la uti-
i = l 1 1
Tizaremos a lo largo de todo el Capítulo salvo que se especifi
que lo contrario, y no es en absoluto restrictiva, ya que cual
quier conjunto de dependencias puede, sin más que aplicar alguno
de los Axiomas de Armstrong, completarse si fuera necesario de
modo que tenga lugar la igualdad T = y (S, U X.). i = l i i
Definición 2-1
Dos dependencias funcionales^^/' y fí pertenecientes a
¿¿i^ denominan adyacentes.^y^J^f , si (S. U X.) 1 (S. U X.)
f 0 . En caso contrario, ^*. y (Qfc son no adyacentes:
están conectadas, <-# <S£ , si tiene lugar una al menos de
las siguientes condiciones:
< ^ ¿ ^
Teorema 2-1
cía en
La relación de conexión, , es una relación de equivaler
Prueba:
De la definición de relación de conexión es evidente dedu
cir las propiedades de reflexividad, simetría y transitividad.
Luego se trata de una relación de equivalencia, que determinará
en | t[^'• \ una partición en clases de equivalencia, denota
das po r&/ .~ . Cada clase puede representarse por uno cualquiera
de sus elementos.
Definición 2- 3
Si enj^rse tiene que j / ' ^y / ' .
conexión induce la partición identidad.
y . f i, la relación de
- 45 -
Definición 2 - 4
¡i enS/se tiene que*-^ ^ T \ V ' i l a r e l ación
de conexión induce la partición universal
Lema 2 - 1
T.
Una partición en y~\ S*- r > induce otra partición en
Prueba:
^T"„ ¿3 Si~// y ~v£ están en diferentes clases de equivalencia
se sigue, o bien que ^fi.-*¿Q6. o que iM^ ¿ ¿ # •
Luego, si C. es el conjunto de atributos de¿^. es obvio que
C. O C. = 0 V , f j, y UC, = T. Luego ( C. \ es una
partición de T.
DETERMINACIÓN DE UNA PARTICIÓN FUNCIONAL
Dado el Conjunto^^=JJ/T [de dependencias funcionales,
los pasos necesarios para obtener la partición inducida por la
relación de conexión entre sus elementos, son los siguientes:
I - Formar la matriz de implicación/
II - Formar la matriz de incidencia,/•> que se de
fine como sigue:
46 -
bélica tomada de la notación APL cuyo significado es el si
j;J expresión sim-
guiente: Realizar la operación AND lógica entre los elementos
homólogos de las filas i-ésima y j-ésima de Cf^ . Luego, rea
lizar la operación OR lógica entre todos los elementos del
Vector binario resultante.
III Hallar el cierre d ¿f'^T IV - Los "unos" de cada diferente fila de ( 7^ , defi
nen una clase de equivalencia bajo r^ (Teniendo en
cuenta que las filas y columnas cüe/^' y, por tanto,
de su cierreVyr , son ahora las dependencias fun
cionales <^T»Oo» * &
<OJ m)
Ejemplo :
* & < & . Sea el esquema de relación
T = \A,B,C,D,E,F,G,H,I,J,K,L,M i
> con
y el conjunto de dependencias funcionales ,
H -» KL ,J^ BD ->FG, 'Oí \ AE
AB-* C,
La correspondiente matriz de implicación es
- 47 -
**ZL>~ 07^" 3
J^4
A B C D E F G H I J K
1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 1 0
0 1 0 1 0 1 1 0 0 0 0
1 0 1 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1
De la que se deduce la matriz de incidencia ;
۟T
& - . %
^
i
o
1
1
o
o
1
o
o
1
1
o
1
o
o
^ A a a OÍ a ^y\ <~/i c / 3 « - / í ^ y s
i
o
i
o
o
i
o o
o
i
Cuyo cierre es:
<a¿~ i
i
o
1
1
o
2 ^3 <_A <^5
0
1
0
0
1
1
0
1
1
o
1
o
1
1
o
o
1
o
1
Las clases de equivalencia inducidas por la relación de conexión,
son pues :
- 48 -
^i | t yi '^3 ' J> 4 f
Damos a continuación dos funciones APL que realizan el
cálculo de una partición funcional.
La función INCD P calcula la matriz de incidencia de
una matriz de implicación dada cuyo contenido se ha asignado a la
variable P. La matriz de incidencia queda almacenada en otra
variable, P PRIMA, lo que permite su uso en cálculos posteriores.
CIERRE1 X es una modificación de la función CIERRE que he
mos utilizado en el Capitulo II. A diferencia de aquella, ésta
es una función monádica (se aplica a un argumento) que actúa
sobre una variable definida en el área de trabajo de usuario con
anterioridad a su ejecución (la función no solicita entrada de
datos al usuario al ejecutarse ). Téngase en cuenta asimismo
que ahora la matriz de implicantes es la matriz unidad m x tn
(si la matriz de implicación era m x n), y que dicha matriz de
implicantes debe haberse definido antes de llamar a la función.
Las clases de equivalencia están definidas por los "unos"
de las filas de la matriz
CIERRE! (INCD P)
Como un segundo ejemplo, hemos tomado el utilizado a lo
- 49 -
largo del Capitulo anterior, es decir, el esquema de relación:
¿/l*>x¿£> siendo:
T = |A, B, C, D, E, F, G \
& ABC — ^ > DEG
AB — „ CF
CD —==* EF
EG —*? AC
Obteniendo en este caso como resultado la partición uni
versal (por simple inspección de las dependencias funcionales
dadas ya se ve que todas están conectadas entre si).
- 50 -
VPPRIMA«-INCL1I' ÍA1 M < - ( 2 p ( l t p P ) ) p O Í21 I«-Q C33 L 2 : J < 0 C«+3 -»<<]>I + l>>ltpP>/END C53 Ll :->( (J<-J+l)>ltpP)/L2 \:¿:i M C I ; J 3 < - V / P C I ; 3 A P C J ; 3
m ->u. I:O:J END:PPRIMA<-MV
- 51 -
I
7CP«-CIERRE1 X C U PK-(V<-pX)pO C2J L l : K-0 C3."J L2 :J«-0 C'+II •+< < : i > . l > l ) > V C U ) / L > + C51 L3 : -* < < J f -J +1 > > Vi: 1 3 ) /L .2 €.61 - > ( ^ A / ( X C I ; I A L C J ; 3 ) = L C J ; : ] ) / L 3 C73 P l C I U < - P l C I U v X L " J ; 3 C8I! ->L3 C93 L M : - > < A / A / X = P 1 ) / E N D
C Í O : X<--PI n.u Pi<-vpo C12II ->L1 C13 3 END:CP«-XV
- 52 -
1 I 1. 1 ! 0 1 .1 :l. .1. 0 O 1 O 0 0 1 1 1 1 0 1 0 1 0 1 0 1
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
I N C D P 1 1 1 1 1 1 1 1 1 1 1 1 1 :i 1 1
1 I 1
.1. J.
1 1
,í
1 .1.
1 1 1 .1 :i i
::: :i 1.
i i
ERREl ( I N C DI ' )
- 53 -
4. PROPIEDADES DE UNA PARTICIÓN FUNCIONAL
Sea | J , T? .... T \ la partición inducida en T por una
partición en \y^\- La relación ^/¿(T) definida sobre T pue
de proyectarse en subrelaciones.
(T.) - «J-/£T. , definidas sobre T., i= 1, 2 — n.
Sea ÍS..—> K..I el conjunto de dependencias funcionales
S. —fr X. que tienen lugar en <_S¿ • .
El Lema y Teorema siguiente demuestran que las claves de
se pueden obtener a partir de las de_yX , i= 1, 2,.... n.
Lema 4 - 1
Seáis..—> X..\ el conjunto de dependencias funcionales de
, (T.). Si S. — > X. es una dependencia funcional de
7J), S. C. T, X. . = X. Q T., entonces existe K.. £ S. i — íj i J i J — i
tal que K.. c, T. Y K. . -* X..
Prueba:
La aplicación de las propiedades de reflexividad, proyectivi-
dad, transitividad y aditividad a las dependencias funcionales de
<~^, produce como resultado dependencias funcionales cuyos atri
butos pertenecen a T.. Sin embargo, la aplicación de la propiedad
de aumentación con atributos no pertenecientes a T. produce como ü
- 54 -
resultado dependencias funcionales S. • > X. que tienen
lugar enJy£(T), con S. Q T X.. = X. <== T.. Por tanto, tiene
que existir un descriptor K..C.T. tal que K..—b-X..
Teorema 4 - 1
Si T = I T., T? ...., T es la partición inducida en T
por una partición funcional en , [ / } , y si K S , T, la condición
necesaria y suficiente para que K sea una clave de T es que se
cumpla:
K = UK., donde K. # 0 y K. c T. es una clave de i i J i — i
• i
Prueba
- Condición necesaria
Sea K una clave dej^lT). Ya que \ T , T,,, , T \
es una partición de T, se tendrá :
K = (K O Tj) U (K O T2) U.... U (K O T ). Sea
K. = K O T. . Hay que demostrar que i . K. i 0 Y K. es i _ 1 ^ ^ M i i i
clave de^j^^. . Supongamos que 3 . : K. f 0 , en ese caso:
K = K.U K0 U ... U K. .UK.^. U U K , Y K — • T -• T., 1 2 i-l í+l n i
resultado que contradice el Lema 4 - 1 al no tener K ningún sub-
conjunto perteneciente a T. . De aquí que deba ser K.= 0 y' .,
por lo que : K = K'¿ K„ U ...U K.U UK , K -* T -* T. .
1 2 i n i Por el Lema 4 - 1 debe e x i s t i r M. c. K ta l que M . - - T . Y M.—>J..
i •— ^ i i i i 5^ -
Pero K. C. K es el único subconjunto de K que pertenece a T.,
luego M.£ K. Y M. — > T . . Por lo tanto M = Mn U...U M 3 i i i i 1 n
es tal que que M & K Y M —*-T, pero esto contradice la hipóte
sis de partida según la cual K es clave áo^y¿{~\). Debe ser por
tanto M. = K., por lo que K. es clave de, ^
- Condición suficiente
Si K. c.T. es clave doJ?'/ \/ ., entonces K = UK. es tal
que K —> T (aditividad). Nos queda ahora demostrar que no existe
ningún subconjunto propio de K que a su vez implique T. En efec
to: Supongamos M c K y M —> T. Se tendrá pues que M=UM..,
donde Mi c. Ki, M.. f 0. De nuevo, siguiendo el mismo razona
miento anterior, Mi —•Ti, lo cual contradice el hecho de que
de M Ki sea clave dej/ T. , excepto si Mi = Ki. Luego K = UKi es clave
Corolario 4 - 1
Si la relación de conexión induce en {, T. } la partición
identidad, K = US. es la única clave áety?(T).
Prueba
Se siguedel Teorema 4 - 1 ya que cada c/í : Si —> Xi
constituye una clase de equivalencia en sí misma. Sea Ti =(SiUXi)
y proyectémosla/en subrelaciono¿X¿i (Ti). Se tiene que Si es
'¿5 la única clave de<_
56
Corolario 4 - 2
Si no hay dependencias funcionales definidas en el esquema
< T, ,J2T> , esto es: <^¿ = 0, entonces T es la única cla
ve áe<_y¿ (1).
Corolario 4 - 3
Sea t_V¿-una relación definida sobre el conjunto de atribu
tos T, y supongamos que las dependencias funcionales se definen
en T CZ T.
Sea Jsi-, (T-) = L-^-TT,"] la proyección de t.>v (T) sobre
T.. Si K, es una clave de .yj,, entonces K = K U (T-T,) es 1 l ó¿ ^ 1 1 una clave de<^/¿(T).
Prueba :
Seajg? (T - Tj) = ^ f r - T j la proyección de ¿%
sobre T-T1. Está claro que, al no haber dependencias funcionales
definidas parajp^ , en virtud del Corolario 4-2, T- T es
la única clave „. Ya que "L y T - T. son disjuntos, se ten
drá que T = T U (T-T..) y, en virtud del Teorema 4-1, K = K U
(T-TJ es una clave de/y7{T).
Ejemplo
Consideremos de nuevo el esquema de relación sobre el que
- 57 -
realizamos en primer lugar una partición funcional.
T = { A,B,C,D,E,F,G,H,I,J,K,L,Mj
j¿f: AB > C
H __—• KL
BD > FG
AE •> C
KM > L
Vimos que la partición funcional comprendía dos clases de
equivalencia. Añadiremos ahora que dicha partición induce otra
en el conjunto T de atributos, a saber : T = \ T , T 0^ , con
^7' T = J A,B,C,D,E,F,G } y T2= j H,K,L,M ¡ . ProyectemosJ/Tsobre
T y sobre T„. Las dependencias funcionales son ahora, pa-
BD > FG
AE > C
y para, S%¡T¿ =J^f (T2) : H -—> KL
KM > L
ABDE Fácilmente se obtiene que la única clave de ¿s¿ •, es K