1. SISTEMAS COMPUTACIONALES ADMINISTRATIVOS
E.E. Base de Datos
El modelo relacional
Fuentes:
Base de datos y su aplicación con SQL
Cap. 3 El modelo relacional
Sergio Ezequiel Rozic
MP Ediciones Buenos Aires, Argentina 2004
Catedrático:
Dr. Carlos A. Torres Gastelú
Bloque:
5
H. Veracruz, Ver. Agosto 2009
2. EXPERIENCIA EDUCATIVA BASE DE DATOS
Una base de datos relacional consiste en un conjunto de
relaciones (simplifiquemos este concepto en la representación de
éstas en tablas), donde cada una de ellas varía o puede variar
con el transcurso del tiempo y se identifica de manera única por
medio de un nombre. Cada una de estas tablas es una
representación concreta del concepto abstracto de relación.
Dada una relación (por una cuestión de simplicidad asumiremos
que es una Tabla) se define como cardinalidad de la misma a la
cantidad de tuplas (filas) que la componen y se define como
grado a la cantidad de atributos (campos) que componen dichas
tuplas. Las tablas tienen una estructura bien definida como la que
se muestra en el siguiente ejemplo:
Here comes your footer Page 2
3. EXPERIENCIA EDUCATIVA BASE DE DATOS
LEGAJO NOMBRE APELLIDO DNI FECHA_INGRESO
156 Juan Pérez 18.345.726 3-Jan-1980
283 Ana Roldan 23.448.553 25-Jun-2000
478 Luis Arce 11.987.576 7-Apr-1994
Tabla 1. Una tabla de nombre PROFESOR
Here comes your footer Page 3
4. EXPERIENCIA EDUCATIVA BASE DE DATOS
•La tabla 1 muestra una tabla de nombre PROFESOR la cual
posee 3 filas o tuplas. Cada fila es una relación de un conjunto
de valores diferentes, en nuestro caso son 5 . A este conjunto
se le llama atributos o campos de la tabla. Debido a que cada
tabla está compuesta o formada por un conjunto de filas (tuplas)
queda definido un fuerte vínculo entre el concepto de tabla y el
concepto matemático de relación, del cual toma su nombre el
modelo relacional.
•En nuestro ejemplo, como ya dijimos antes, nuestra tabla
posee 5 identificadores de columnas o atributos diferentes,
(legajo, nombre, apellido, dni y fecha de ingreso). Para cada
atributo de nuestra relación representada en la tabla existe un
conjunco de valores definidos o mejor dicho permitidos o
esperables que este puede tomar. Dicho conjunto de valores se
define como el dominio de cada atributo.
Here comes your footer Page 4
5. EXPERIENCIA EDUCATIVA BASE DE DATOS
El concepto de dominio expresado en este capítulo no difiere
con el concepto de dominio explicado en el capítulo anterior
del modelo de entidad relación . Existen un par de conceptos
subyacentes o propios al modelo relacional que son el de
cardinalidad y el de grado. En nuestro caso del ejemplo
anterior nuestra tabla posee una cardinalidad 3 (tres) y un
grado 5 (cinco).
Here comes your footer Page 5
6. EXPERIENCIA EDUCATIVA BASE DE DATOS
Por definición y propia estructura de las relaciones, ya que se
desprenden del concepto matemático de conjuntos, estas
cumplen y satisfacen (en realidad deben cumplir y satisfacer,
lamentablemente por mal uso o ignorancia de la teoría en el
cotidiano esto no siempre sucede cuando se les implementa sobre
tablas) ciertas propiedades.
1.Las tuplas no poseen un orden definido.
2.Los atributos dentro de una tupla no poseen un orden definido.
3.No existen tuplas repetidas.
4.Todos los atributos que componen las tuplas son atómicos.
Veamos a qué nos referimos en cada caso:
Here comes your footer Page 6
7. EXPERIENCIA EDUCATIVA BASE DE DATOS
Como las tuplas son una representación puntual de una relación,
veremos si podemos aclarar esta idea pues da la sensación que
quedó un poco confusa. En nuestro caso, la tupla (legajo: 283,
Nombre: Ana, Apellido: Roldan, DNI: 23448558,
Fecha_de_lngreso: 25/06/2000) es una representación de la
relación genérica PROFESOR definida por los atributos (Legajo,
Nombre, Apellido, DNI, Fecha_de_Ingreso). y como la definición de
relación se basa en la teoría de conjuntos, tema que está fuera del
alcance de este libro, ya que podría ser un libro en sí mismo y se
supone que el lector posee dichos conocimientos, está
absolutamente claro que los conjuntos por definición no poseen un
orden y por defecto la relación hereda dicha propiedad. Con lo cual
sería incorrecto hablar de la tercera tupla de la relación o de la
tupla anterior o siguiente.
Here comes your footer Page 7
8. EXPERIENCIA EDUCATIVA BASE DE DATOS
Como los atributos de la relación o lo que se llama la cabecera de
estos, también se define como un conjunto, ellos tampoco
presentan un orden definido. Con lo cual tampoco es lógico
hablar del segundo atributo de la relación o el siguiente atributo o
el anterior atributo a un atributo dado. Nuevamente la
representación concreta de una relación en una tabla tampoco
respeta esta restricción.
Here comes your footer Page 8
9. EXPERIENCIA EDUCATIVA BASE DE DATOS
Por lo mismo que explicamos en los dos apartados
anteriores con respecto a que una relación se basa en la
teoría de conjuntos y que así como estos no poseen orden
tampoco existe en la teoría de conjuntos el concepto de
elementos repetidos, en los conjuntos todos sus elementos
existen una única vez dentro de él. Con lo cual queda claro
que no pueden existir dentro de la relación tuplas repetidas.
Here comes your footer Page 9
10. EXPERIENCIA EDUCATIVA BASE DE DATOS
Cada atributo debe ser un atributo simple y no debe ser un
atributo multivalorado (si no recuerda el significado de dichos
conceptos relea los capítulos anteriores). En realidad la
restricción no está definida sobre los valores de los atributos,
sino sobre sus dominios.
Here comes your footer Page 10
11. EXPERIENCIA EDUCATIVA BASE DE DATOS
El concepto de superclave es el de poseer uno o un conjunto de
atributos que permitan identificar a cada tupla de forma única sin
ninguna ambigüedad. Ahora bien, si dada una superclave los
subconjuntos que se pueden formar de ella no son superclave a
estas superclaves se las llama claves candidatas.
Por lo expresado en los párrafos anteriores queda claro que
pueden, en una relación, existir más de uno o varios atributos
que satisfagan esta condición en una relación.
Se definirá como clave primaria a aquella clave candidata que el
diseñador elija del conjunto de claves candidatas. Por
cuestiones que son ajenas a este capítulo, pero que se verán
más adelante en este libro se utilizan ciertos criterios para la
elección de la clave primaria.
Here comes your footer Page 11
12. EXPERIENCIA EDUCATIVA BASE DE DATOS
Por ejemplo puede tener en cuenta las siguientes pautas.
1.La clave primaria debe ser un atributo o conjunto de atributos
que se utilicen en el mundo real para identificar las tuplas.
2.Es importante que sean un atributo de tipo numérico entero
antes que un atributo de tipo cadena de caracteres.
3.Entre dos atributos del mismo tipo de claros, elegir el atributo
de menor longitud.
Veamos un ejemplo para clarificar los conceptos sobre claves
aquí explicados. Si se recuerda nuestra vieja relación (tabla)
PROFESOR, esta podría tener:
Here comes your footer Page 12
13. EXPERIENCIA EDUCATIVA BASE DE DATOS
1. Superclaves:
Legajo
DNI
Legajo- Nombre-Apellido
DNI-Nombre-Apellido
Legajo-DNI
Observe que Nombre-Apellido no servirían como superclaves de
PROFESOR, ya que podría suceder que dos profesores distintos tuvieran
el mismo nombre y apellido, por ejemplo Juan López, y fueran dos
profesores diferentes.
2. Claves Candidata:
Legajo
DNI
En este caso, Legajo-Nombre-Apellido, DNI-Nombre-Apellido y Legajo-DNI no
son claves candidatas, ya que existe por lo menos un subconjunto de
atributos de ellas que son superclaves y dijimos que para ser clave
candidata los subconjumos de ellas no debían ser superclaves.
Here comes your footer Page 13
14. EXPERIENCIA EDUCATIVA BASE DE DATOS
3. Clave Primaria:
Legajo
No elegimos DNI, ya que aplicamos el primer y el tercer
criterio. Es más probable que dentro de un instituto educativo
busquen a un profesor por su legajo que por su DNI y
además los números de legajo son más pequeños que los
números de DNI.
Here comes your footer Page 14
15. EXPERIENCIA EDUCATIVA BASE DE DATOS
El álgebra relacional es el lenguaje que se ocupa de las consultas
que se realizan sobre el modelo relacional. Dicho lenguaje es un
lenguaje procedimental (que soporta el manejo de procedimientos
y funciones o globalmente la división en módulos de menor
complejidad). Además soporta un conjunto de operaciones que
toman como entrada una o un par de relaciones y dan como
resultado otra relación. Dichas operaciones se dividen en dos
grandes grupos, los cuales se designan como operaciones
fundamentales y operaciones complementarias. Estas últimas
operaciones se pueden deducir de las primeras.
Here comes your footer Page 15
16. EXPERIENCIA EDUCATIVA BASE DE DATOS
A continuación, detallaremos el siguiente conjunto de operaciones
fundamentales:
•Seleccionar
• Proyectar
•Unir
• Diferencia de Conjuntos
• Producto Cartesiano
• Renombrar
Las operaciones que toman como entrada o se aplican sobre una única
relación se llaman operaciones Unarias. Las operaciones que se aplican
sobre dos (un par de) relaciones de denominan Binarias. Por ejemplo, la
operación de Seleccionar, Proyectar y Renombrar son operaciones
Unarias. Las operaciones de Unir, Diferencia de conjuntos y Producto
Cartesiano son operaciones Binarias.
Here comes your footer Page 16
17. EXPERIENCIA EDUCATIVA BASE DE DATOS
Dicha operación selecciona un conjunto de tuplas que satisfacen
predicado dado. Un predicado es una proposición (comparación)
o conjunto de proposiciones con un cierto valor de verdad. Por
ejemplo, se podría seleccionar “todos los profesores que poseen
más de 3 años de antigüedad”.
Para definir los predicados se pueden utilizar los operadores<, >,
<=, >=, <> o =.
Si alguno de los atributos que se utilizan en la comparación
tuviera el valor nulo el resultado de dicha comparación sería
Falso.
Here comes your footer Page 17
18. EXPERIENCIA EDUCATIVA BASE DE DATOS
Dicha operación permite devolver un conjunto de atributos
filtrando otros.
Por ejemplo, se podría proyectar "el nombre y apellido de
todos los profesores", pero no estaría viendo ni el numero
de legajo, ni el DNI, ni la fecha de ingreso.
Here comes your footer Page 18
19. EXPERIENCIA EDUCATIVA BASE DE DATOS
Dicha operación permite renombrar una relación para
utilizarla como si fuera una relación diferente. Por ejemplo, si
usted desea realizar un producto cartesiano (ya veremos
más adelante en este mismo capítulo qué es) de una
relación consigo misma debería renombrar una de las dos
para que las tomara como relaciones distintas. En caso de
que se deseara ver “todos los profesores que poseen el
mismo nombre", esto nos obligaría a renombrar la relación
profesores, por lo menos una vez para que asumiera que
son dos relaciones distintas.
Here comes your footer Page 19
20. EXPERIENCIA EDUCATIVA BASE DE DATOS
Dicha operación une dos relaciones diferentes. Remontémonos
al ejemplo de la Figura 3 del Capítulo 2 sobre el circuito
crediticio y supongamos que se desea saber "todos los clientes
que poseen un préstamo". La relación (observe que lo que
llamamos relación en el modelo relacional en el modelo entidad
relación puede ser una entidad o una relación, en este caso es
una entidad) cliente no posee información del préstamo, y a su
vez la relación (entidad en el modelo entidad relación) préstamo
no posee información del diente, pero ambas se unen por la
relación cliente-préstamo (que también es una relación en el
modelo entidad relación). Con lo cual podría obtener la nómina
de clientes que poseen un préstamo simplemente uniendo la
relación cliente con la relación cliente-préstamo cuando el
atributo número de cliente es el mismo en ambas.
Here comes your footer Page 20
21. EXPERIENCIA EDUCATIVA BASE DE DATOS
Dicha operación permite encontrar las tuplas que están
en una relación, pero no en otra. Por ejemplo, se podría
querer "todos los clientes que no poseen ningún
préstamo", con lo cual estaríamos tomando todos los
clientes que estuvieran en la relación cliente y no
existieran en la relación cliente-préstamo.
Here comes your footer Page 21
22. EXPERIENCIA EDUCATIVA BASE DE DATOS
La operación producto cartesiano es una operación binaria que
permite obtener la combinación de todas las tuplas de las dos
relaciones involucradas. Sigamos utilizando el modelo crediticio
del capítulo anterior y que yo quisiera obtener "Todos los clientes
de todas las sucursales del banco". '
Si en nuestra relación clientes si tuviera una cardinalidad 5 y en
la relación sucursales se tuviera una cardinalidad 4, la
cardinalidad del producto cartesiano sería de 20, ya que el
producto cartesiano realiza todas las combinaciones posibles
entre las tupIas de ambas relaciones. Como vimos en el
apartado anterior, aI realizar el producto cartesiano de una
relación consigo misma hay que renombrar a una de ellas, si no
sería imposible distinguir las tuplas obtenidas en el producto
cartesiano.
Here comes your footer Page 22
23. EXPERIENCIA EDUCATIVA BASE DE DATOS
Cabe destacar que siempre la cardinalidad del producto
cartesiano para dos relaciones diferentes donde las
cardinalidades de estas son n y m respectivamente, la
cardinalidad del producto cartesiano será n * m para el
producto cartesiano de una relación consigo misma. Si
esta tenía cardinalidad n, el producto cartesiano tendrá
una cardinalidad de n * n.
Here comes your footer Page 23
24. EXPERIENCIA EDUCATIVA BASE DE DATOS
Como dijimos anteriormente, dichas operaciones se pueden
deducir utilizando las operaciones fundamentales, pero
resulta menos engorroso utilizar las operaciones aquí
citadas que deducidas de las operaciones Fundamentales.
Dichas operaciones son:
lntersectar
Dividir
Asignar
Here comes your footer Page 24
25. EXPERIENCIA EDUCATIVA BASE DE DATOS
Las comentaremos de forma breve para que tenga una idea de
sus funcionalidades.
Intersectar: es obtener la intersección de dos o más relaciones
dicho de otra manera las tuplas que poseen en común.
Dividir: se utiliza cuando aparecen expresiones para todo dentro
de los predicados de las consultas, por ejemplo "Todos los
Profesores que dictan clases en todas las Escuelas ORT
Argentina".
Asignar: Cuando uno desea escribir una expresión por partes se
utiliza la operación de asignar a una variable temporal. Dicha
operación no muestra ninguna relación al usuario, simplemente
se utiliza pues simplifica la escritura.
Here comes your footer Page 25
26. EXPERIENCIA EDUCATIVA BASE DE DATOS
En este capitulo explicamos el modelo relacional, sus
propiedades y sus operaciones básicas dentro del algebra
relaciona.
Definimos conceptos fundamentales, como los de
relación, tupla, tributo, cardinalidad, grado y clave primaria
entre otros.
En este capitulo y en el anterior se encuentran
sintetixados gran parte de los conceptos teoricos
fundamentales que usted debe saber para diseñar bases
de datos de forma correcta.
Here comes your footer Page 26