Cálculo relacional de tuplas (TRC) en DBMS – Part 1

Tuple Relational Calculus es un lenguaje de consulta no procedimental a diferencia del álgebra relacional. Tuple Calculus proporciona solo la descripción de la consulta, pero no proporciona los métodos para resolverla. Por lo tanto, explica qué hacer pero no cómo hacerlo. 
En Tuple Calculus, una consulta se expresa como 

{t| P(t)}

donde t = tuplas resultantes, 
P(t) = conocido como Predicado y estas son las condiciones que se utilizan para obtener t 

Por lo tanto, genera un conjunto de todas las tuplas t, tal que el Predicado P(t) es verdadero para t. 

P(t) puede tener varias condiciones combinadas lógicamente con OR (∨), AND (∧), NOT(¬). 
También utiliza cuantificadores: 
∃ t ∈ r (Q(t)) = ”existe” una tupla en t en relación r tal que el predicado Q(t) es verdadero. 
∀ t ∈ r (Q(t)) = Q(t) es verdadera “para todas” las tuplas en relación r. 

Ejemplo:  
Tabla-1: Cliente 

Nombre del cliente Calle Ciudad
Saurabh A7 Patialá
Mehak B6 Jalandhar
Sumiti D9 Ludhiana
Ría A5 Patialá

Tabla-2: Sucursal 

Nombre de la sucursal Ciudad sucursal
A B C Patialá
DEF Ludhiana
GHI Jalandhar

Tabla-3: Cuenta 

Número de cuenta Nombre de la sucursal Balance  
1111 A B C 50000  
1112 DEF 10000  
1113 GHI 9000  
1114 A B C 7000  

Tabla-4: Préstamo 

número de préstamo Nombre de la sucursal Monto
L33 A B C 10000
L35 DEF 15000
L49 GHI 9000
L98 DEF 65000

Tabla-5: Prestatario 

Nombre del cliente número de préstamo
Saurabh L33
Mehak L49
Ría L98

Tabla-6: Depositante 

Nombre del cliente Número de cuenta
Saurabh 1111
Mehak 1113
Sumiti 1114

Consultas-1: Encuentra el número de préstamo, sucursal, monto de préstamos de monto mayor o igual a 10000.  

{t| t ∈ loan  ∧ t[amount]>=10000}

Relación resultante: 

número de préstamo Nombre de la sucursal Monto
L33 A B C 10000
L35 DEF 15000
L98 DEF 65000

En la consulta anterior, t[cantidad] se conoce como variable de tupla. 

Consultas-2: Encuentra el número de préstamo para cada préstamo de una cantidad mayor o igual a 10000.  

{t| ∃ s ∈ loan(t[loan number] = s[loan number]  
                   ∧ s[amount]>=10000)}

Relación resultante: 

número de préstamo
L33
L35
L98

Consultas-3: Encuentra los nombres de todos los clientes que tienen un préstamo y una cuenta en el banco.  

{t | ∃ s ∈ borrower( t[customer-name] = s[customer-name])   
     ∧  ∃ u ∈ depositor( t[customer-name] = u[customer-name])}

Relación resultante: 

Nombre del cliente
Saurabh
Mehak

Consultas-4: Encuentre los nombres de todos los clientes que tienen un préstamo en la sucursal «ABC».  

{t | ∃ s ∈ borrower(t[customer-name] = s[customer-name]  
   ∧ ∃ u ∈  loan(u[branch-name] = “ABC” ∧ u[loan-number] = s[loan-number]))}

Relación resultante: 

Nombre del cliente
Saurabh

Publicación traducida automáticamente

Artículo escrito por India_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *