Vous êtes sur la page 1sur 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
(23 de agosto, 1923 – 18 de abril, 2003)
specialize in all aspects of relational database
management, relational database design, and
evaluation of products that are claimed to be relational.

2
Temario
I Modelo Relacional y Forma II Redundancia y
Normal consistencia
● 1.1 Introducción ● 2.1 Operaciones en las Relaciones
● 1.2 Dependencia de los datos – 2.1.1 Permutación
● 1.2.1. Dep. de Ordenamiento – 2.1.2 Proyección
● 1.2.2. Dep. de índices
– 2.1.3 Join
● 1.2.3. Dep. de ruta de acceso
– 2.1.4 Composición
● 1.3. Una visión relacional de los datos
– 2.1.5 Restricción
● 1.4. Forma normal
● 2.2 Redundancia
● 1.5. Algunos aspectos lingüísticos
– 2.2.1 Redundancia fuerte
● 1.6. Relaciones expresables, nombradas y
almacenadas – 2.2.2 Redundancia débil
● 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