Professional Documents
Culture Documents
Mayra Lanza
M
ODELO RELACIONAL
En 1970, Edgar Frank Codd propone un modelo de datos basado en la teoría de las
relaciones donde los datos se estructuran lógicamente en forma de relaciones
(representadas en forma de tablas), siendo el objetivo fundamental del modelo mantener la
independencia de la estructura lógica respecto al modo de almacenamiento y a otras
características de tipo físico.
OBJETIVOS
• Independencia física. La forma de almacenar los datos, no debe influir en su manipulación
lógica
• Independencia lógica. Las aplicaciones que utilizan la base de datos no deben ser
modificadas por que se modifiquen elementos de la base de datos.
• Flexibilidad. La base de datos ofrece fácilmente distintas vistas en función de los usuarios y
aplicaciones.
• Uniformidad. Las estructuras lógicas siempre tienen una única forma conceptual (las tablas)
• Sencillez.
RELACIÓN
R(Ai..An): Subconjunto del producto cartesiano D1´..´Dn (esto es, una tabla). En una relación hay
que distinguir dos aspectos diferentes:
Esquema de la relación: Los atributos A1..An
Trabajadores (id_trabajador, nombre, tarifa_hr, tipo_de_oficio, id_supv)
Instancia de la relación: El conjunto de tuplas {(x1,x2,..,xn)} Í D1´D2´..´Dn que la componen
en cada momento.
Una base de datos relacional consiste en un conjunto de tablas, a cada una de las cuales se le
asigna un nombre exclusivo. Cada fila de la tabla representa una relación entre un conjunto de
valores.
Dado que cada tabla es un conjunto de dichas relaciones hay una fuerte correspondencia entre el
concepto de tabla y el concepto matemático de relación, del que toma su nombre el modelo de
datos relacional.
ELEMENTOS
Tabla (relación): se refiere al tipo de modelamiento de datos, donde se guardan los datos
recolectados por un programa. Se representan gráficamente como una estructura
rectangular formada por filas (tuplas) y columnas (campo/Atributo)
Atributo (Campo): Corresponde al nombre de la columna. Cada columna almacena
información sobre una propiedad determinada de la tabla.
Tupla (fila o registro): Corresponde a cada fila que compone la tabla. Allí se componen los
datos y los registros. Eventualmente pueden ser nulos en su almacenamiento.
Dominio: conjunto permitido de valores para un atributo. permiten especificar los posibles
valores válidos para un atributo. Cada dominio incorpora su nombre y una definición del
mismo
CLAVES
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
RESTRICCIONES
Se trata de unas condiciones de obligado cumplimiento por los datos de la base de datos. Las hay
de varios tipos Inherentes y Semánticas.
INHERENTES: Son aquellas que no son determinadas por los usuarios, sino que son definidas por el
hecho de que la base de datos sea relacional.
Por ejemplo:
• No puede haber dos tuplas iguales
• El orden de las tuplas no importa
• El orden de los atributos no importa
• Cada atributo sólo puede tomar un valor en el dominio en el que está inscrito
SEMANTICAS: El modelo relacional permite a los usuarios incorporar restricciones personales a los
datos. Las principales son:
Clave primaria. Hace que los atributos marcados como clave primaria no puedan repetir
valores.
Unicidad. Impide que los valores de los atributos marcados de esa forma, puedan repetirse.
Obligatoriedad. Prohíbe que el atributo marcado de esta forma no tenga ningún valor
Integridad referencial. Prohíbe colocar valores en una clave externa que no estén reflejados
en la tabla donde ese atributo es clave primaria.
Regla de validación. Condición que debe de cumplir un dato concreto para que sea
actualizado.
OTROS
NULL o valores Nulos: representa un valor de una tributo que es en ese momento desconocido o no
aplicable a esa Tupla.
Integridad de entidad: una clave primaria de una tabla no puede contener un atributo que pueda
ser nulo.
Integridad referencial: si existe una clave foránea en una tabla, su valor debe coincidir con un valor
de clave candidata de alguna Tupla en su tabla de origen (home relation) o el valor de la clave
foránea debe ser completamente nula.
Restricciones empresariales: reglas adicionales especificadas por los usuarios o los administradores
de la BDD.
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
GRAFO RELACIONAL
Es una representación gráfica de esquema relacional y las
claves ajenas que asocian a las diferentes relaciones (tablas).
Consiste en un conjunto de nodos multiparticionados, donde
cada nodo representa un esquema de relación, para cada
tabla como mínimo, ha de aparecer su nombre y atributos
indicando su clave primaria, subrayando los atributos que la
componen con trazo continuo y sus claves ajenas con un
trazo discontinuo.
Se dibuja además, un conjunto de arcos que conectan los atributos que constituyen la clave ajena
con la tabla referenciada, permitiendo así que el usuario entienda los campos clave que
comparten dominios comunes; en definitiva, los arcos representan la referenciabilidad de los
atributos (clave ajena) de una relación respecto a la clave primaria de otra.
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
NORMALIZACIÓN
El proceso de normalización de una base de datos consiste en aplicar una serie de reglas a las
relaciones (tablas). En el proceso de normalización, propuesto por Edgar Frank Codd (1972), se
somete un esquema de relación- obtenidas tras el paso del modelo E-R (entidad-relación) al
modelo relacional- a una serie de pruebas para "certificar" si pertenece o no a una cierta forma
normal. En un principio, Codd propuso tres formas normales (conjunto de restricciones que deben
cumplir las relaciones): primera, segunda y tercera formas normales. Con posterioridad (1974), Boyce
y Codd propusieron una 3 FORMA NORMAL BASADA EN CLAVES PRIMARIAS definición más estricta
de 3FN, a la que se conoce como forma normal de Boyce-Codd (FNBC). Todas estas formas
normales se basan en las dependencias funcionales entre los atributos de una relación. Más
adelante se propusieron una cuarta forma normal (4FN) y una quinta (5FN), con fundamento en los
conceptos de dependencias multivaluadas y dependencias de reunión, respectivamente.
La normalización de los datos puede considerarse como un proceso mediante el cual los esquemas
de relación insatisfactorios se descomponen repartiendo sus atributos entre esquemas de relación
más pequeños que poseen propiedades deseables (o sea, en una FN superior).
Tipos de dependencias:
o Dependencias funcionales. Se usa para la 1FN, 2FN, 3FN y FNBC.
o Dependencias multivaluadas (4FN)
o Dependencias de Join o de combinación (5FN)
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
Las formas normales, consideradas aparte de otros factores, no garantizan un buen diseño
de base de datos. En general, el proceso de normalización por descomposición debe
confirmar también la existencia de propiedades adicionales que los esquemas relaciónales,
en conjunto, deben poseer. Dos de estas propiedades son:
Una dependencia funcional son conexiones entre uno o más atributos. Son propiedades
inherentes al contenido semántico de los datos, por lo tanto, se han de cumplir para
cualquier extensión de un esquema de relación. Se define dependencia funcional como:
Dada una relación R, el atributo Y de R depende funcionalmente del atributo X de R –en símbolos,
R.X → R.Y y se lee “R .X determina funcionalmente a R.Y”- si y sólo si, como mucho, un solo valor Y en
R está asociado a cada valor X en R (en cualquier momento dado). Los atributos X e Y pueden ser
compuestos.
dirección no ocurre que sólo haya un empleado con esa dirección, puede que más de un
empleado viva en la misma casa
Dado un cierto valor de X, el conjunto de valores de Y determinado por este valor de X está
determinado completamente por X solo, y no depende de los valores de los atributos restantes Z del
esquema de relación R. Así pues, siempre que existan dos tuplas con distintos valores de Y pero el
mismo valor de X, estos valores de Y deberán repetirse con cada valor distinto de Z que ocurra con
ese mismo valor de X.
FORMAS NORMALES
4.5.1 Definición de la 1FN: Una relación R está en 1FN si sus atributos sólo pueden tomar
valores Atómicos (simples, indivisibles).
4.5.2 Definición de la 2FN: Se dice que una relación esta en 2FN si:
Esta en 1FN
Cada Atributo no principal tiene dependencia total respecto de la clave.
*Si posee clave primaria simple, automáticamente se encuentra en 2FN .
4.5.3 Definición de la 3FN: se dice que una relación esta en 3FN si:
Esta en 2FN
Ningún atributo no principal depende transitivamente de la clave.
Para pasar a 3FN se divide la tabla en dos:
Una tabla contiene la clave y los atributos no primarios que no son transitivamente
dependientes de ella.
La otra esta formada por el Atributo que depende transitivamente de la clave junto con el
atributo no primario con el que mantiene dependencia transitiva.
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
Ejemplo:
Normalizando, se divide en dos tablas en la primera se colocan la clave (Cust_ID) y los atributos no claves que
dependen directamente de ella (Cust_ID (Name, Salesperson) y en la segunda, estará formada por el atributo que
depende transitivamente de la clave (salesperson) con el atributo no clave que depende directamente de esta
(región):
R1(Cust_ID, Name, Salesperson); R2 (salesperson, Region)
LENGUAJES DE CONSULTA
Un lenguaje de consulta es un lenguaje en el que un usuario solicita información de la base de
datos. Estos lenguajes suelen ser de un nivel superior que el de los lenguajes de programación
habituales. Los lenguajes de consulta pueden clasificarse como:
Lenguajes procedimentales el usuario instruye al sistema para que lleve a cabo una serie de
operaciones en la base de datos para calcular el resultado deseado. Ejemplo: el álgebra relacional
Lenguajes no procedimentales el usuario describe la información deseada sin dar un procedimiento
concreto para obtener esa información. Ejemplo: Cálculo relacional de tuplas y el de dominios
ÁLGEBRA RELACIONAL. Consiste en un conjunto de operadores que toman relaciones como sus
operandos y regresan una relación como su resultado. Recibe este nombre precisamente por su
carácter algebraico: incluye un conjunto de operadores (ocho, concretamente). Las operaciones
fundamentales del álgebra relacional son selección, proyección, unión, diferencia de conjuntos,
producto cartesiano y renombramiento. A continuación se describirán, uno por uno, los ocho
operadores propuestos por Codd:
• SELECCIÓN (): Esta operación selecciona tuplas que satisfacen un predicado dado. Se utiliza la
letra griega sigma minúscula (σ) para denotar la selección. El predicado aparece como subíndice de σ.
La relación del argumento se da entre paréntesis a continuación de σ. Devuelve un subconjunto de
una relación. Es un filtro.
Se expresa: predicado (R) Las Tuplas (filas) seleccionadas son las que satisfacen cierto predicado lógico
(condición).
Nota: En general, se permiten las comparaciones que utilizan =, ≠, <, ≤, > o ≥ en el predicado de
selección. Además, se pueden combinar varios predicados en uno mayor utilizando las conectivas y (∧) y
o (∨).
Ejemplo:
PRESTAMO Para seleccionar las tuplas de la relación préstamo en que la
número- nombre-sucursal importe
préstamo
sucursal es «Barcelona» hay que escribir: σnombre-sucursal =
P-11 Las Garzas 900
Lechería 1.500
(
«Barcelona» PRESTAMO )
P-14
• PROYECCIÓN: La proyección se denota por la letra griega mayúscula pi ().En este caso se
obtienen las columnas deseadas. Se crea una lista de los atributos que se
número- importe
tabla PRESTAMO, la consulta para crear una lista de todos los números de préstamo y del P-15 1.500
P-15 1.300
importe de los mismos puede escribirse como: número-préstamo, importe (PRESTAMO). P-17 500
Unión ( ): Como en una relación no existen tuplas duplicadas (por ser un conjunto, por estar
definida por un producto cartesiano), sería más exacto describir la unión de dos relaciones A y B
como otra relación C que contiene las tuplas de A que no están en B, las tuplas de B que no están
en A, y las tuplas que están en A y B a la vez.
Se denota: πA(R) donde A representa el conjunto de atributos sobre los que la relación r se
proyectara
Para poder usar este operador se debe tomar en cuenta las siguientes restricciones:
1. Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo número de
atributos(columna).
2. Los dominios de los atributos i-ésimos de r y de s deben ser iguales para todo i. En otras palabras, los
dominios han de ser los mismos para atributos de la misma posición.
Ejemplo: Dadas las siguientes relaciones, Considérese una consulta para averiguar el nombre de todos los
clientes del banco que tienen una cuenta, un préstamo o ambas cosas. Obsérvese que la relación
cliente no contiene esa información, dado que los clientes no necesitan tener ni cuenta ni préstamo en
el banco. Por tanto, se requiere consultar directamente las tablas: prestatario e impositor.
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
CLIENTE
Estos datos se pueden averiguar mediante la operación binaria unión, denotada, como en López
la teoría de conjuntos, por ∪. Por tanto, la expresión buscada es: Santos
nombre-cliente (prestatario)∪nombre-cliente (impositor) Sotoca
La relación o tabla resultante es Abril
González
Badorrey
DIFERENCIA (-): La operación diferencia de conjuntos, denotada por –, permite buscar las tuplas
que estén en una relación pero no en la otra. La expresión r – s da como resultado una relación que
contiene las tuplas que están en r pero no en s. Para poder realizar la diferencia se deben cumplir
las mismas restricciones que para la unión.
Se Denota: r − s
Ejemplo: dada las tablas impositor y prestatario, Se desea buscar todos los clientes del banco que tienen
abierta una cuenta pero no tienen concedido ningún préstamo escribiendo
nombre-cliente (impositor) – nombre-cliente (prestatario)
nombre-
cliente
Abril
La relación o tabla resultante es
González
Badorrey
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
PRODUCTO CARTESIANO: La operación producto cartesiano, denotada por un aspa (X), permite
combinar información de cualesquiera dos relaciones. El producto cartesiano de las relaciones r1 y
r2 como r1 × r2.
Es la combinación de todas y cada una de las tuplas de la primera relación con todas y cada una
de las de la segunda.
Es asociativo y conmutativo, si no tenemos en cuenta el nombre y el orden de los atributos. Los
nombres de atributo son, en este orden, todos los de R y todos los de S.
Prestatario x Impositor
nombre- número- nombre-cliente número-
cliente préstamo cuenta
RENOMBRAMIENTO denotado por la letra griega rho minúscula (ρ), permite realizar esta
tarea. Dada una expresión E del álgebra relacional, la expresión ρx (E) devuelve el
resultado de la expresión E con el nombre x. Su finalidad es (en términos generales)
renombrar los atributos dentro de una relación especificada. De manera más precisa, el
operador RENAME toma una relación dada y regresa otra que es idéntica a la primera, con
excepción de que por lo menos uno de los atributos tiene un nombre diferente.
En primer lugar hay que crear un mecanismo para distinguir entre los dos atributos saldo. Se utilizará la
operación renombramiento para cambiar el nombre de una referencia a la relación cuenta; así, se
puede hacer referencia dos veces a la relación sin ambigüedad alguna.
La relación temporal que se compone de los saldos que no son el máximo puede escribirse ahora como
Πcuenta.saldo (σcuenta.saldo < d.saldo (cuenta ρd (cuenta)))
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
ección
1. Transforme los siguientes diagrama E-R a Modelo Relacional
A)
B)
2. Sea R=({A,B,C,D,D,E} cuyas relaciones son: {A C, BC, CD, DE C, CEA})
a. Determine las claves del esquema
b. ¿existen dependencias parciales? ¿cuales?
c. ¿existen dependencias transitivas? ¿cuales?
d. ¿esta en 2FN? ¿Por qué?
e. ¿esta en 3FN? ¿Por qué?
f. Normalice de ser necesario.
Unidad III. Modelo Relacional Base de Datos Prof. Mayra Lanza
4.