2.4 Propiedades de una relación. 3
3. OPERACIONES. ÁLGEBRA RELACIONAL. 7
3.1 Operaciones fundamentales. 7
3.2 Operaciones adicionales no fundamentales. 7
4.1 Cálculo orientado a tuplas. 8
4.2 Cálculo orientado a dominios. 8
1. INTRODUCCIÓN
· Un modelo de datos es una colección de conceptos, normas y acuerdos que permitirán representar los hechos que queremos plasmar y la posterior manipulación de los datos descritos.
· Todo modelo, sea el que sea, se construye teniendo que diferenciar en él 2 partes:
-Estática: Parte no modificable en el tiempo e implica a las estructuras de datos.
-Dinámica: Parte susceptible de modificación tras la aplicación de operaciones sobre dichas estructuras de datos.
· El modelo relacional fue introducido por Codd en los 70. Es el más utilizado.
· Los objetivos del modelo son:
1. ESTRUCTURA
La base de datos consta de:
1. Una estructura: Se denomina “relación”
2. Una manipulación: Formada por los operadores que manipulan la estructura.
3. Una semántica: Restricciones que definen el modelo junto con unas reglas que garanticen la integridad de los datos.
1.1 Relaciones
El modelo relacional está basado en la teoría de las matemáticas (en el concepto de “relación”).
Proporciona fiabilidad y seguridad (se le puede aplicar todas las normas que dicho concepto lleva consigo)
1.2 Tipos de claves
Superclave | Formada por uno o más atributos que identifica de forma única una entidad de otra. |
Clave candidata | Atributos pertenecientes a la relación que pueden diferenciar de forma inequívoca cada tupla. |
Clave primaria | Clave candidata por la que ha optado el diseñador para diferenciar las tuplas o entidades. |
Clave ajena | Atributos de una relación que son clave primaria de otra relación. No es obligatoria. |
Clave alterna | Claves candidatas que no ha optado el diseñador como primarias. |
Claves traslapadas | Cuando las claves candidatas tienen algún atributo en común. |
Las claves tienen que cumplir unas reglas de integridad:
1. Integridad de identidad: No pueden existir valores nulos en una clave candidata, y por lo tanto, en la clave primaria.
2. Integridad de referencia: El valor del atributo al que se referencia, tiene que estar contenido forzosamente en el conjunto de valores de la clave primaria r1. Puede tomar valor nulo. Esta regla debe cumplirse estrictamente en las claves ajenas.
2.3 Restricciones
Una restricción es aquello no admitido. Puede ser de 2 tipos:
– Restricciones inherentes: Restricciones que son originadas por el propio modelo, por ejemplo, el valor de los atributos tiene que ser único.
– Restricciones del usuario o semánticas: Dadas por el usuario para determinar el objeto, idea o hecho que queremos representar.
2.4 Propiedades de una relación
2.4.1 Dependencia. Teoría de la normalización
Esta teoría se fundamenta en las formas normales, que parten del concepto de dependencia. Pueden ser:
– Dependencia funcional
B es funcionalmente dependiente de A.
Una dependencia funcional es una conexión entre uno o más atributos. Por ejemplo, si se conoce el valor de DNI tiene una conexión con Apellido o Nombre.
Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera:
FechaDeNacimiento {\displaystyle \rightarrow }à Edad
De la normalización (lógica) a la implementación (física o real) puede ser sugerible tener estas dependencias funcionales para lograr la eficiencia en las tablas.
– Multivaluadas:
– Dependencia de JOIN: Los atributos de una relación se forman a partir de las proyecciones de su relación.
2.4.2 Propiedades de las dependencias funcionales
A) Axiomas Armstrong
– Dependencia funcional reflexiva
Si “y” está incluido en “x” entonces x {\displaystyle \rightarrow }à y
A partir de cualquier atributo o conjunto de atributos siempre puede deducirse él mismo. Si la dirección o el nombre de una persona están incluidos en el DNI, entonces con el DNI podemos determinar la dirección o su nombre.
– Dependencia funcional aumentativa
xày entonces xzà yz
DNI à nombre
DNI,dirección {\displaystyle \rightarrow }à nombre,dirección
Si con el DNI se determina el nombre de una persona, entonces con el DNI más la dirección también se determina el nombre y su dirección.
– Dependencia funcional transitiva
Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente de X y Z de Y, pero X no depende funcionalmente de Y, se dice entonces que Z depende transitivamente de X. Simbólicamente sería:
xàyàz entonces xàz
FechaDeNacimiento à Edad
Edad à Conducir
FechaDeNacimiento à Edad à Conducir
Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamente podemos saber a través de FechaDeNacimiento a Conducir (En muchos países, una persona necesita ser mayor de cierta edad para poder conducir un automóvil, por eso se utiliza este ejemplo).
“C será un dato simple (dato no primario), B, será un otro dato simple (dato no primario), A, es la llave primaria (PK). Decimos que C dependerá de B y B dependerá funcionalmente de A.”
B) Propiedades
– Unión
xày Y xà< entonces xàyz
– {\displaystyle x\rightarrow y}{\displaystyle x\rightarrow z} {\displaystyle x\rightarrow yz}Pseudo-Transitiva
xxày Y wyàz entonces wxàz
– {\displaystyle x\rightarrow y} {\displaystyle wx\rightarrow z}Descomposición
xxày Y z está incluido en y entonces xàz
2.4.3 Propiedades de dependencia multivaluadas
Repetición | R.a1àR.a2 implica que R.a1à à R.a2 |
Complementación | Si R.a1à R.a2 se dice que R.a1à à R-R-a2-R-a1 |
Aumento multivaluado | R.a1ààR.a2 si R.a3 C RR.a4, también R.a1ààR(a1,a4)ààR.(a2a3) |
Transitiva multivaluada | R.a1ààR.a2à y R.a2àR.a3 ààR.a3 también R.a1 àà R.(a2a3) |
Condensación | R.a1ààRa.2 y R.a4 à R.a3 siempre que R.a3 C R.a2 y a4 C R.a2 y R.a4 ꓵ R.a2= conjunto vacío, se cumple que R.a1àr.a3 |
2.4.3 Reglas de normalización
· 1ra forma normal (1FN)
· 2da forma normal (2FN)
· 3ra forma normal (3FN)
3. OPERACIONES. ÁLGEBRA RELACIONAL
Esta sección presenta la manera de hacer consultas a una base de datos empleando algunos conceptos matemáticos aplicados a un esquema relacional. Los lenguajes que se analizan más adelante se derivan precisamente del algebra relacional.
El álgebra relacional consiste de algunas simples, pero poderosas maneras de construir nuevas relaciones a partir de otras. Si pensamos que las relaciones iniciales son los datos almacenados entonces las nuevas relaciones se pueden ver como respuestas a algunas consultas deseadas.
3.1 Operaciones fundamentales
Conjunto de operaciones que toman como argumentos relaciones y retornan una nueva relación. Las operaciones fundamentales del Algebra relacional son:
Selección σ
Proyección π
Unión ∪
Diferencia −
Producto cartesiano ×
Renombramiento ρ
3.2 Operaciones adicionales no fundamentales
– intersección de conjunto:
– Unión Join o Producto Theta:
– División:
– Asignación:
Operación auxiliar que se utiliza para almacenar resultados en una nueva relación o para resultados intermedios cuando se desea dividir una operación compleja en una secuencia de operaciones más simples.
NR := Op(R) ¾ Permite copiar una relación en otra nueva (siendo el operador Op la identidad):
NR := R ¾ O renombrar los atributos de la relación original: NR(A1,A2, …, An) := R
4. CÁLCULO RELACIONAL
4.1 Cálculo orientado a tuplas
· Es un lenguaje de consulta no procedimental
· Describe la información deseada sin dar un procedimiento específico para obtenerla.
· Una consulta en el CRT se expresa como:
{t / P(t)} – es decir, el conjunto de todas las tuplas t, tal que el predicado P, es verdadero para t.
4.2 Cálculo orientado a dominios
· Usa variables de dominio que toman valores del dominio de un atributo.
· Una expresión en el CRD es de la forma
{< x1,x2 , … , n > | P(x1, x2 , … , xn)}
– donde
x1 , x2 , . . . , xn representan variables de dominio P es una fórmula compuesta por átomos