El modelo relacional
Este modelo considera la Base de Datos (BD)
como una colección de relaciones. De manera simple, una relación representa una
tabla, en que cada fila representa una colección de valores que describen
una entidad del mundo real. Cada fila se denomina tupla.
Dominios, tuplas, atributos, relaciones
Def. Un dominio D
es un conjunto de valores atómicos. Atómico quiere decir que cada valor en el
dominio es indivisible. Es útil dar nombres a los dominios. Ejemplo:
Números-telefónicos-locales: el conjunto de número de teléfono de 7
dígitos.
RUTs: números de 8 dígitos más un caracter que puede ser del 0 al
9 o K
Nombres: el conjunto de nombres de personas Notas: valores entre 1.0
y 7.0
También se puede especificar un tipo de datos o formato para cada
dominio. Un schema de relación R, denotado R(A1,
A2, ..., An) está constituido por un nombre de relación R
y una lista de atributos A1, ..., An. Cada atributo
Ai es el nombre de un rol jugado por el dominio D en el schema de la
relación R.
D se llama el dominio de Ai y se denota
dom(Ai). Un schema relacional se usa para describir una relación. R
es el nombre de esta relación. El grado de una relación es el número n de
atributos del schema de la relación.
Ejemplos:
ESTUDIANTE(Nombre, Rut, Teléfono, Dirección, Edad, Carrera, Prom-nota)
tiene grado 7.
dom(Nombre) = Nombres
dom(Teléfono) =
Números-telefónicos-locales
etc.
Def. Una relación o
instancia de relación r del schema de relación R(A1,
A2, ..., An), denotado también como r(R) es un conjunto de
n-tuplas r = {t1, t2, ..., tm}. Cada n-tupla t
es una lista ordenada de n valores t = <v1, ...,
vn>, donde cada valor vi, i <= i <= n, es un
elemento de dom(Ai) o es un valor
nulo.
Ejemplo:
ESTUDIANTE |
Nombre |
Rut |
Teléfono |
Dirección |
Edad |
Carrera |
Prom-nota |
|
Benjamín González |
13.245.622-1 |
224-4211 |
Rosas 3241 |
19 |
Plan común |
4.8 |
|
Sergio Soto |
12.341.228-5 |
nulo |
Gay2142 |
20 |
Ing. Ind. |
5.1 |
|
... |
... |
... |
... |
... |
... |
... |
Cada tupla representa una entidad
de estudiante en particular. La definición de relación puede replantearse así:
Una relación r(R) es un subconjunto del producto cartesiano de los dominios que
definen r:
r(R) Í (dom(A1) x dom(A2) x
... x dom(An))
El número total de tuplas en el producto
cartesiano es:
|dom(A1)| * |dom(A2)| * ... *
|dom(An)|
Una instancia de relación refleja sólo las tuplas
válidas que representa un estado particular del mundo real. A medida que el
mundo real cambia, también lo hace la relación, transformándose en otro estado
de relación (el schema R es relativamente estático y no cambia excepto muy pocas
veces).
Notción
Un schema de relación R de grado n se denota R(A1,
A2, ..., An)
Una n-tupla t en una relación r(R)
se denota t = <v1, ..., v2>, donde vi
es el valor correspondiente del atributo Ai
t[Ai]
se refiere al valor vi en t para el atributo
Ai
t[Au, Aw, ..., Az] donde
Au, Aw, ..., Az es una lista de atributos de
R, se refiere a las subtuplas de valores <vu, vw,
..., vz> de t correspondientes a los atributos especificados en
la lista
Las letras Q, R, S denotan nombres de relación
Las
letras q, r, s denotan estados de relación
Las letras t, u, v denotan
tuplas
Los nombres de atributos se califican con el nombre de relación
a la cual pertenecen. Por ejemplo, ESTUDIANTE.Nombre o
ESTUDIANTE.Edad
Para la tupla t = <Benjamín González, 13.245.622-1,
224-4211, Rosas 3241, 19, Plan común, 4.8>, tenemos t[Nombre] =
<Benjamín González>, t[Rut, Prom-notas, Edad] = <13.245.622-1, 4.8,
19>
Restricciones
Las restricciones de dominios especifican que el valor de
cada atributo A debe ser un valor atómico del dominio dom(A).
Una
relación se define como un conjunto de tuplas. Por definición todos los
elementos de un conjunto son distintos. Luego todas las tuplas de una relación
deben ser distintas. Esto implica que dos tuplas no pueden tener la misma
combinación de valores para todos sus atributos. Pero puede haber otros
subconjuntos de atributos de un schema de relación R con la propiedad de que no
haya dos tuplas en una instancia de relación r de R que tengan la misma
combinación de valores para esos atributos. Supongamos que denotamos tal
subconjunto de atributos por SC. Entonces para cada dos tuplas distintas t1 y t2
en una instancia de relación r de R, tenemos la restricción:
Cualquier conjunto de atributos
SC es denominado super llave del schema de relación R. Cada relación
tiene al menos una super llave (el conjunto de todos sus atributos). Una
llave o clave K de un schema de relación R es una super llave de R
con la propiedad adicional de que al sacar cualquier atributo A de K deja un
conjunto de atributos K' que no es super llave de R (una clave es una super
llave minimal).
El valor de un atributo clave se usa para identificar
unívocamente una tupla en una relación. El hecho que un conjunto de atributos
constituya una clase es una propiedad del schema de la relación, y es invariante
en el tiempo.
En general, un schema de relación puede tener más de una
clave, y en ese caso, cada una de las llaves es una llave candidata. Una
de las llaves candidatas se designa como llave primaria de la relación. Usamos
la convención de que los atributos que forman la llave primaria de un schema de
relación se subrayan.