Está en la página 1de 60

A Relational Model of Data for Large

Shared Data Banks


E. F. CODD

Prof. Carlos Guevara V.


Dr. Edgar E Codd joined IBM in 1949 as a programming
mathematician for the Selective Sequence Electronic
Calculator. During the 1950s he participated in developing
several important IBM products. Beginning in 1968, Dr. Codd
turned his attention to the management of large commercial
databases and developed the relational model as a foundation.
Since the mid-1970s, Dr. Codd has been working persistently
to encourage vendors to develop relational DBMSs and to
educate users, DBMS vendors, and standards committees
regarding the services such a DBMS should supply and why
users need all these services.
In 1985, Dr. Codd established two lecturing and consulting
companies in San Jose. These companies specialize in all
aspects of relational database management, relational database (23 de agosto, 1923 – 18 de abril, 2003)
design, and evaluation of products that are claimed to be
relational.

2
Temario
I Modelo Relacional y Forma II Redundancia y consistencia
Normal ●
2.1 Operaciones en las Relaciones

1.1 Introducción – 2.1.1 Permutación

1.2 Dependencia de los datos – 2.1.2 Proyección

1.2.1. Dep. de Ordenamiento
– 2.1.3 Join

1.2.2. Dep. de índices
– 2.1.4 Composición

1.2.3. Dep. de ruta de acceso
– 2.1.5 Restricción

1.3. Una visión relacional de los datos

2.2 Redundancia

1.4. Forma normal
– 2.2.1 Redundancia fuerte

1.5. Algunos aspectos lingüísticos
– 2.2.2 Redundancia débil

1.6. Relaciones expresables, nombradas y
almacenadas ●
2.3 Consistencia

3
RESUMEN

Los usuarios no necesitan conocer cómo están
organizados los datos en la máquina (representación
interna)


Las aplicaciones no deberían verse afectadas por
cambios en la representación interna


Los cambios en la representación de los datos a veces
son necesarios
4
RESUMEN (cont.)

Modelos jerárquicos y de red

1ero se discuten los problemas de estos modelos, un
modelo basado en relaciones n-arias, una forma normal
y los conceptos de un lenguaje universal de datos

Después se discuten algunas operaciones sobre las
relaciones, aplicadas a los problemas de redundancia y
consistencia

5
Modelo Relacional y Forma Normal
1.1 Introducción


Aplicación de la teoría Relacional a los sistemas que
permiten acceso compartido a grandes volúmenes de datos

Independencia de los aplicaciones en los cambios a nivel
de tipos y representación de los datos

La teoría Relacional permite plantear las bases para
tratar la derivación, redundancia y consistencia de las
relaciones

6
1.2 Dependencia de los datos


Objetivo: independencia de los datos


Las principales dependencias que requieren ser eliminadas
son: de ordenamiento, de índices y de ruta de acceso

7
1.2.1. Dependencia de ordenamiento


Los datos pueden ser almacenados en una gran variedad de formas
y dependiendo del tipo de almacenamiento, pueden aplicarse
diferentes estrategias de ordenamiento, excluyentes unas de
otras


Existen problemas importantes que resolver para solucionar este
tipo de dependencia

8
1.2.2. Dependencia de índices


Normalmente se piensa en los índices como componentes sólo
orientados al desempeño


Desde un punto de vista sólo de la información, un índice es
una componente redundante de la representación de datos


Debe existir la habilidad de crear y eliminar índices de vez en
cuando, pero ¿pueden las aplicaciones permanecer indiferentes a
estos cambios?

9
1.2.3. Dependencia de la ruta de acceso


Existen(ían) modelos basados en estructura de árbol y de red,
pero las aplicaciones no operan correctamente si el modelo
cambia


No resulta práctico que las aplicaciones tengan que validar el
modelo de ruta de acceso, habría que imponer la regla de que
dado un modelo de ruta de acceso, éste no puede ser cambiado,
lo cual en la práctica no resulta eficiente


Por otra parte, la cantidad de modelos que pueden llegar a
existir puede ser muy elevada

10
1.3. Una visión relacional de los datos


El término relación es utilizado en un sentido matemático
● Dados los conjuntos S1, S2, ···, Sn, (no necesariamente
distintos), R es una relación en estos n conjuntos, si es
un conjunto de n-tuplas
● Sj es el j-ésimo dominio de R y se dice que es de grado n

R es un subconjunto del producto Cartesiano
S1 x S2 x ... x Sn

11
Un arreglo que represente una relación n-aria R, tiene
las siguientes propiedades:


Cada fila representa una n-tupla de R

El orden de las filas no tiene importancia

Todas las filas son distintas
● El orden de las columnas importa, corresponde al orden S1,
S2, ···, Sn del dominio definido para R

La importancia de cada columna se indica con el nombre
del dominio correspondiente

12

La totalidad de los datos en un “banco de datos” (base
de datos), puede ser vista como una colección de
relaciones que varían en el tiempo

Estas relaciones poseen una variedad de grados

A medida que el tiempo pasa, cada relación n-aria puede
estar sujeta a inserciones, eliminaciones y
modificaciones

13

Normalmente los usuarios no deberían tener que recordar
el ordenamiento de los dominios de una relación, lo que
se propone es que el usuario maneje nuevas relaciones
(equivalentes a permutaciones de dominios) con dominios
homólogos no ordenados


Para lograr esto, los dominios deben poder ser
identificados en forma única, sin necesidad de indicar su
orden


Se deben introducir algunos conceptos adicionales:
dominio activo, claves primaria y foránea, dominio
compuesto

14

Un dominio (o combinación de dominios), de una cierta
relación, tiene valores que identifican en forma única un
elemento (n-tupla). Tal dominio (o combinación) es
llamado llave primaria


Una llave primaria es única si es un dominio simple (no
una combinación) o una combinación tal que ninguno de los
dominios componentes es independiente para identificar en
forma única a cada elemento


Una relación puede tener más de una llave primaria, pero
se debe elegir una como tal

15

Se llamará a un dominio (o combinación de ellos) de una
relación R una llave foránea, si esta no es la llave
primaria de R, pero sí la llave primaria de otra relación
S


También es importante mencionar que algunos dominios
pueden tener relaciones como elementos. Hablaremos de
dominios simples y no-simples

16
1.4. Forma Normal


Una relación cuyos dominios son todos simples puede ser
representada por un arreglo homogéneo bi-dimensional


La posibilidad de eliminar los dominios no-simples es
importante y se puede hacer a través de un procedimiento
sencillo: normalización

17
18
1.5. Algunos aspectos lingüísticos


La adopción de un modelo de datos relacional como el
descrito, permite el desarrollo de un sublenguaje
universal de datos basado en el cálculo de predicados

19
1.6. Relaciones expresables, nombradas y almacenadas


Asociado a un “Banco de Datos” existen dos tipos de
relaciones: el conjunto nombrado y el conjunto expresado

El conjunto nombrado es la colección de todas aquellas
relaciones que la comunidad de usuarios puede identificar
por medio de un nombre (o identificador)

El conjunto expresable es la colección total de
relaciones que pueden ser designadas por expresiones en
el lenguaje de datos

El 1ero es subconjunto del segundo

20

Uno de los mayores problemas a los que se enfrenta el
diseñador de un sistema de datos que soporte un modelo
relacional es determinar la clase de representaciones de
almacenamiento a ser soportadas


Para cualquiera de estas clases, el sistema debe proveer
un forma para traducir los requerimientos de los usuarios
en las acciones correspondientes (eficientes)


Esto no es un reto menor pues es importante proveer de un
mecanismo eficiente a medida que la cantidad de usuarios
y requerimientos crecen

21
Redundancia y Consistencia
2.1 Operaciones en las Relaciones


Dado que las relaciones son conjuntos, son aplicables a
ellas todas las operaciones habituales de conjuntos

A pesar de esto, el resultado puede no ser una relación,
por ejemplo, la unión de una relación binaria y una
ternaria no es una relación

Una relación binaria en un conjunto A es una colección de pares ordenados de


elementos de A. Es un subconjunto del producto Cartesiano A2 = A × A.

22
2.1.1 Permutación


Una relación binaria se representa como un arreglo de dos
columnas, intercambiando las dos columnas se obtiene la
relación inversa

Si se aplica una permutación a las columnas de una
relación n-aria, se dice que el resultado es una
permutación de la relación original

En una relación de grado 4 existen 4!=24 permutaciones

23
2.1.2 Proyección


Supongamos que seleccionamos algunas columnas de la
relación y luego se eliminamos las filas duplicadas:
Proyección


Se usa el operador de selección Π para obtener una
permutación, una proyección o una combinación de ambas
operaciones

24
2.1.2 Proyección (cont.)

● Si L es una lista de índices L= i1, i2, ..., ik y R una


relación n-aria (n>=k), entonces ΠL(R) es la relación k-
aria cuya j-ésima columna es la columna ij de R
(j=1,2, ..., k), donde además se han eliminado las filas
duplicadas

25
2.1.3 Join


Supongamos que tenemos dos relaciones binarias con algún
dominio en común. ¿Bajo qué circunstancias podemos
combinar estas relaciones para formar una relación
ternaria que preserve la información de las originales?

Una relación binaria R es “joinable” con una relación
binaria S si existe una relación ternaria U tal que
Π12(U)=R y Π23(U)=S

U es un join de R con S

26
2.1.3 Join (cont.)

● Si R, S son relaciones binarias tal que Π2(R)=Π1(S)


entonces R es “joinable” con S

Un join que existe siempre es el join natural de R con S
definido por:

donde R(a,b) es Verdadero si (a,b) pertenece a R y lo


mismo para S(b,c)

27

En el dominio part (a partir del cual se hace el join) existe
un elemento que posee más de un valor tanto en R como en S:
punto de ambigüedad

28
29
2.1.3 Join (cont.)


En la siguiente figura ninguna de las relaciones R,
Π21(R), S, Π21(S) es una función


La ambigüedad en el join de R con S puede a veces ser
resuelta a través de otras relaciones

30
2.1.3 Join (cont.)


Supongamos que a partir de R y S se puede derivar la
relación T a partir de los dominios project y supplier
con las siguientes propiedades

OJO R(s,p)

31

Entonces se puede formar un join de tres-vías (three-way
join) de R, S, T que es una relación ternaria tal que

U
1 2 3

s p j

32

Al join anterior se le conoce como cyclic 3-join

Existe además el linear 3-join que corresponde a una relación
cuaternaria V

V
1 2 3 4

s p j s

33

El linear 3-join natural de tres relaciones binarias R,S,T está dado por


Definimos el operador que genera una relación de grado n-1 a partir
de una relación de grado n

Si R es una relación n-aria (n>=2) se define el operador tie


Podemos representar el cyclic 3-join natural de R,S,T por

34
(Composición de funciones)

La composición es una operación entre funciones que se establece de la


siguiente manera:

Dadas dos funciones f y g , se define como la composición de la función


f con la función g , a la función denotada f o g ( léase f composición g ),
cuya regla de correspondencia es

donde su dominio está representado por el conjunto

35
Así por ejemplo, sean las funciones

entonces, la regla de la función f g se obtiene mediante la siguiente


sustitución

36
2.1.4 Composición


Sean las relaciones R,S. T es una composición de R con S
si existe un join U de R con S tal que T=Π13(U)

Se puede hacer una composición de dos relaciones si y
sólo si se puede hacer un join entre ellas, pero la
existencia de más de un join de R con S no implica la
existencia de más de una composición de R con S

Se define la composición natural (a partir del join
natural) de R con S como

37
38

Cuando existen dos o más joins, la cantidad de composiciones puede
variar entre una y la cantidad total de joins

39

Connection trap – suponga que cada descripción de proveedor
(supplier) está enlazada a través de punteros a la descripción de cada
parte (part) que provee ese proveedor y que cada descripción de parte a
su vez está enlazada del mismo modo con las descripciones de los
proyectos que usan esa parte


Una conclusión errónea se obtiene al tratar de obtener la relación entre
los proveedores y los proyectos si se siguen estas rutas


El resultado sólo es correcto cuando la relación entre proveedores
(suppliers) y proyectos (projects) corresponde a la composición natural

40
(Connection-trap)

Existen principalmente dos tipos de connection-traps:

1. fan traps
2. chasm traps

Fan traps
Ocurre cuando existen vías de acceso ambigüas, generalmente en ciertos
casos de relaciones 1:m

Un site contiene muchos departamentos y emplea a muchas personas, pero


¿qué personas trabajan en un determinado departamento?

41
(Connection-trap)

Se resuelve de la siguiente forma:

42
¿qué miembros de staff usan el
vehículo
43
SH34?
44
(Connection-trap)

Chasm traps

Ocurre cuando se sugiere la existencia de una relación, pero no existe


el acceso entre ciertas ocurrencias de las entidades.

Ocurre cuando existe una relación con participación parcial, que forma
parte del acceso entre entidades que están relacionadas.

45
(Connection-trap)

Un “branch” es asignado a muchas personas que
supervisan la administración de muchas propiedades para
renta. No todas las personas supervisan propiedades y no
todas las propiedades son administradas por los miembros
de staff.

¿Qué propiedades están disponibles en un branch?

La participación parcial de Staff y Property en la
relación de supervisión significa que alguna propiedades
no pueden estar asociadas con una “branch office” a
través de un miembro de Staff

46

Se debe agregar una relación llamada “has”

47
¿en qué branch trabaja S0003?

48
49
50
2.1.5 Restricción


Un subconjunto de una relación es una relación

A través de la operación restricción de R por S la
relación S puede actuar sobre la relación R para generar
un subconjunto de R
● Sean L, M listas de índices de igual largo L=i1,i2, ..., ik
y M=j1,j2, ...,jk donde k<= grado de R y de S
● La restricción L,M de R por S (RL|M) es el máximo
subconjunto R' de R tal que

51
1 2
2 3

52
2.2 Redundancia


Se debe distinguir entre la redundancia del named set de
la del stored set

Sea una colección de operaciones sobre relaciones
donde cada operación tiene la propiedad de que se genera
una única relación

Una relación R es desde un
conjunto S de relaciones si existe una secuencia de
operaciones de tal que, para cualquier instante de
tiempo, permita generar R desde los miembros de S

53

Una colección de operaciones para el “named set” debe contener:
proyección, join natural, tie y restricción. La permutación es irrelevante
y la composición natural no necesita ser incluida, dado que se obtiene a
partir de un join natural y una proyección


Para el “stored set” una colección adecuada debería incluir la
permutación y operaciones adicionales relacionadas con relaciones de
subconjuntos y mezclas, ordenamiento y conección de elementos

54
2.2.1 Redundancia fuerte (Strong Redundancy)


Un conjunto de relaciones es fuertemente redundante
(strongly redundant), si contiene al menos una relación
que posea una proyección derivable desde otras
proyecciones de las relaciones en el conjunto

Ejemplo

donde serial# es la llave primaria y manager# una llave


foránea

55

Sea el dominio activo y supongamos que para todo
t

La redundancia es obvia, managername no es necesario

56

A veces las redundancias en los named set son conocidas y de beneficio
para el usuario

Las redundancias fuertes en los named set no deberían transformarse de
igual modo en los stored set: espacio extra y tiempo de procesamiento
extra

57
2.2.2 Redundancia débil (Weak Redundancy)


No es caracterizada por una ecuación

Una colección de relaciones tienen redundancia débil si
contienen una relación que tiene una proyección que no es
derivable desde los otros miembros, pero que siempre
corresponde a una proyección de algún join de otras
proyecciones

Generalmente están presentes en los modelos y no se
eliminan. Si aparecen están presentes tanto en el named
como en el stored set

58
2.3 Consistencia


Dada una colección C de relaciones variables en el
tiempo, un conjunto Z asociado de restricciones y un
valor instantáneo V para C, se llama al estado (C,Z,V)
consistente o inconsistente dependiendo de si V
satisface Z o no

La consistencia, definida de esta forma, es una propiedad
de un estado instantáneo del banco de datos

59
FIN
Bases de datos – UCENT - 2010

60

También podría gustarte