Tema 4
Modelo Relacional
El modelo relacional fue propuesto por Codd , en 1970,
SYSTEM R, un proyecto importante fue el semillero de los DBMS relacionales
En el centro del modelo se encuentra la relación que es una tabla, matriz u ordenamiento
de datos.
Estática
Objetos permitidos
Dominio
Un dominio D es un conjunto finito de valores homogéneos y atómicos v1,v2,...,vn
caracterizados por un nombre.
Son homogéneos porque todos son del mismo tipo
Son atómicos porque son indivisibles
También se puede denotar:
D= {vi / P(vi)}
donde: P representa el predicado que cumplen los valores vi
Se puede definir por intención mencionando la propiedad o extensión enumerando los
valores. Existen dominios compuestos tal como ocurre con fecha que se maneja como una
composición de día, mes y año.
Se especifica un tipo de datos y el formato (definición física).
Ej. Dominio de departamentos de Bolivia, por extensión
Dom(departamento)= {LA PAZ, ORURO,SANTA CRUZ, COCHABAMBA, BENI, TARIJA,
CHUQUISACA, POTOSI, PANDO}
Ej. Dominio edad de una persona, por intensión
Dom(edad)= [0-120]
Atributo
Modelo relacional
73
Un atributo es el papel que tiene un determinado dominio D en una relación. Una
columna en la tabla se refiere a un atributo. Un atributo es una característica de un
individuo.
Se dice que D es el dominio de A dom(A) cuando toma valores de ese dominio
Relación
Una relación R consiste de filas y columnas. Una relación es un conjunto de tuplas, cada
tupla define a un individuo.
Matemáticamente:
r(R) es un subconjunto del producto cartesiano que define los atributos.
r(R) dom(A1)Xdom(A2)X...Xdom(An)
Ej.
00
ORU
1 LPZ
2 STA
3
99
PDO
Producto Cartesiano:
t1=<00, , 1,ORU>
t2=<00, , 1 ,LPZ>
t3=<00, , 1 ,STA>
…
ti=<01, , 1,ORU>
tj=<02, , 2 ,LPZ>
tk=<14, , 2 ,ORU>
…..
tn=<99, , 3 ,PDO>
Modelo relacional
74
R:
t1=<01, , 1,ORU>
t2=<02, , 2 ,LPZ>
t3=<14, , 2 ,ORU>
t4=<27, , 1 ,PTS>
RELACION: R
COD FIG NUM DEP
01 1 ORU
02 2 LPZ
14 2 ORU
27 1 PTS
En la tabla R cada fila representa a una tupla:
t1=<01, , 1,ORU>
t2=<02, , 2 ,LPZ>
t3=<14, , 2 ,ORU>
t4=<27, , 1 ,PTS>
Cada fila se denota como una tupla. En realidad tupla es un prefijo que significa “grupo
de”. Tupla es un conjunto ordenado de valores, esos valores describen algunas
características de un individuo de interés.
Intención o esquema de relación
Es un conjunto de n pares atributo-dominio subyacente {(Ai:Di)} donde n es el GRADO de
la relación. Se denota por R(A1:D1,A2:D2,..An:Dn) de manera completa, algunas veces de
manera abreviada como R(A1,A2,,..An). Corresponde a la cabecera de la tabla o relación.
RELACION: R
COD FIG NUM DEP
R(cod:Codigos,fig:Figuras,num:Numeros,dep:Departamentos)
R(cod:CHAR(2),Fig:BLOB,num:INT,dep:CHAR(3)
R(cod,fig,num,dep)
Modelo relacional
75
Extensión o instancia de relación
Es un conjunto de m tuplas {t1,t2,...,tm} donde cada tupla es un conjunto de n pares
atributo-valor. El número de tuplas m representa la CARDINALIDAD.
R:
t1=<01, , 1,ORU>
t2=<02, , 2 ,LPZ>
t3=<14, , 2 ,ORU>
t4=<27, , 1 ,PTS>
Ej.
Intensión o esquema de relación:
ESTUDIANTE(CI:NUMCIS,NOM:NOMBRES,DIR:DIRECCIONES,ING:SE)
ó
ESTUDIANTE(CI,NOM,DIR,ING)
ó
ESTUDIANTE
CI NOM DIR ING
Extensión o instancia de relación cuya cardinalidad es 3:
ESTUDIANTE
CI NOM DIR ING
40 JUAN BOLIVAR II/95
30 ANA SUCRE I/95
20 JOSE PAGADOR I/94
Clave
Es un conjunto no vacío de atributos que identifican de manera única a una tupla.
Clave candidata
Modelo relacional
76
Se considera clave mínima porque no tiene como subconjunto a otra clave que no sea ella
misma. Dicho de otra manera todos los atributos son imprescindibles para ser una clave, si
se quita alguno dejará de ser clave.
Clave principal
Es aquella clave candidata que elige el diseñador y/o usuario de la base de datos. En la
definición por intención se subraya.
Clave alternativa o secundaria
Es aquella clave candidata que no ha sido elegida como primaria
4.1.2 Restricciones inherentes
De la definición matemática de relación se deduce:
No hay tuplas iguales
El orden de las tuplas no es significativo
El orden de los atributos(columnas) no es relevante
Cada atributo toma un solo valor del dominio
Regla de integridad de entidad: No hay valores nulos para atributos que son parte de
la clave
4.1.3 Restricciones de usuario
Sobre dominios
Se refiere al predicado definido sobre un conjunto de atributos, dominios o tuplas.
Integridad referencial:
Si una relación R2 (relación que referencia) tiene un descriptor que es la clave primaria de
la relación R1 (relación referenciada), todo valor de dicho descriptor debe concordar con
un valor de la clave primaria de R1 . El descriptor por lo tanto es una clave ajena (FOREING
KEY).
Esta es una restricción de comportamiento pues viene impuesto por el mundo real.
Ej.
R1=ESTUDIANTE(CI,NOM,DIR,ING)
R2=REGISTRA(CI,SIGLA,SEM,NOTA)
Modelo relacional
77
Referencia: REGISTRA.CI ESTUDIANTE.CI
Se dice que CI en REGISTRA es clave ajena o foránea.
En la notación el operador punto (.) indica CI es un atributo de REGISTRA.
Restricciones de dependencias
Las dependencias como las funcionales, multivaludas y de combinación se dan entre
atributos, estas se estudian en el capítulo de teoría de la normalización.
4.2 Esquema relacional
Se refiere al conjunto de esquemas de relación (tabla) más las restricciones de integridad.
Se puede representar por el par:
< { Ri } , { Vi }>
Donde { Ri } es el conjunto de esquemas de relación y { V i } conjunto de restricciones de
integridad.
Una base de datos relacional se puede definir como una instancia de un esquema
relacional.
DDL-SQL
El lenguaje de definición de datos es útil para especificar la estática de un modelo. Usando
DDL-SQL se puede especificar técnicamente un esquema relacional.
Ej.
create schema academico
create domain nombres char(30)
create table estudiante
( ci char(10),
nom nombres,
dir char(20),
ing char(5),
primary key ci )
create table registro
( ci char(10)
Modelo relacional
78
sigla char(7)
sem char(5)
nota real(8,2)
primary key (ci,sigla,sem),
foreign key ci references estudiante,
foreign key sigla references materia)
create table materia
( sigla char(7),
nom char(20),
creditos integer,
primary key sigla )
4.2.1 Formas de llegar al Modelo Relacional
Diseño Lógico Diseño Físico
Modelo Semántico(Conceptual) Modelo Relacional
Entidad/Relación
Orientado A Objetos
Reglas de transformación Entidad/Relación al Relacional
1) Regla de entidad fuerte
Todo tipo de entidad fuerte se transforma en una tabla donde la llave principal de
la entidad también es la clave principal de la tabla
b
a
E
E a b c
2) Regla general de relación
Toda relación se transforma en una tabla donde la tabla tiene los atributos que son
clave principal de los tipos de entidad que relaciona. Esta regla general se puede
particularizar de acuerdo a la relación en las siguientes reglas
Modelo relacional
79
x
a
y
b
R
E1 R E2 a x
3) Regla de relación con atributos descriptivos
Toda relación se transforma en una tabla donde la tabla tiene los atributos que son
clave principal de los tipos de entidad que relaciona más los atributos descriptivos
de la relación.
p
x
a
y
b
R
E1 R E2 p a x
4) Regla de Relación Binaria, con tipo de correspondencia 1:1
Toda relación binaria con tipo de correspondencia 1:1 no se transforma en una
tabla, sino que se modifica en una de las tablas resultantes de la regla 1 de los tipos
de entidad involucradas en la relación. Se aumenta la clave principal de una de
ellas en la otra, puede ser cualquiera.
i)
E1 E2
x
a
a b x y a
y
b
(_,1) (_,1) ii)
E1 R E2 E1 E2
a b x x y
Figura 4.8. Regla general de relación binaria, con cardinalidad máxima 1:1
5) Regla de Relación Binaria, con tipo de correspondencia máxima 1:N
Toda relación binaria con tipo de correspondencia 1:N no se transforma en una
tabla, sino que se modifica en una de las tablas resultantes de la regla 1 de los tipos
Modelo relacional
80
de entidad involucradas en la relación. Se aumenta la clave principal en la tabla
resultante que tiene cardinalidad máxima N del modelo entidad relación.
x
a
y
b
(_,1) (_,N) E1 E2
E1 R E2 a b x y a
6) Regla de Relación Reflexiva, con Tipo de Correspondencia 1:1 ó 1:N
Toda relación reflexiva con tipo de correspondencia 1:1 ó 1:N no se transforma en
una tabla, sino que se modifica en la tabla resultante de la regla 1 del tipo de
entidad involucrada en la relación. Se aumenta la clave principal nuevamente pero
para evitar conflicto de nombres se modifica el nombre de este atributo.
a
a
b
b
(_,1) (_,1)
E1 R E1 R
(_,1) (_,N)
E1
a b a1
7) Regla de supertipo/subtipo
El supertipo sigue la regla 1, el subtipo se transforma en una tabla que tiene como
atributos lo del suptipo junto con la clave del supertipo.
Modelo relacional
81
b
E
a b
E
E1
m
x
a m
E2
E1 E2 a x
8) Regla de Entidad Débil
La entidad débil junto con la relación en la que participa se transforma en una
tabla donde los atributos son de la entidad débil más el atributo clave principal de
la entidad fuerte del cual depende.
x
a
y
b
E2
E1 R E2
Cliente x y a
Modelo relacional
82
Ejercicio: Transformar el siguiente modelo Entidad/Relación al modelo Relacional
direccion
telefono
nombre
numero
fecha
total
nit
(0,N) (1,1)
Factura Tiene Cliente
(1,1) 1
Persona Empresa
representante
cantidad
monto
parte Detalle Contiene
(1,N) (0,N)
(1,1)
Producto
Precio_unitaraio
descripcion
codigo
clase
Modelo relacional
83
TRANSFORMACION DEL MODELO ORIENTADO A OBJETOS AL MODELO RELACIONAL
1-. Regla para un Clase
C
ID a
b
c
C
a b C
2-. Regla para una asociación
C1 A C2
ID a ID x
b y
c z
A
Modelo relacional
84
a x
3-. Regla para una clase-Asociación
C1 C2
ID a ID x
b y
c z
CA
p
q
CA
p q a x
4-. Regla asociación con multiplicidad 1 a 1
C1 A C2
ID a ID x
b y
c z
X
i) C1 C2
a b c x Y z a
ii) C1 C2
a b c x X y z
5-. Regla asociación con multiplicidad 1 a *
C1 A C2
ID a ID x
Modelo relacional
85
b y
c z
X
C1 C2
a B C x Y z a
6-. Regla de Agregación/Composición
Ctodo Cparte
ID a ID x
b y
c z
Ctodo Cparte
a b c x y z a
7-. Regla de Generalización(Subclase)
C
ID a
b
c
C1 C2
p x
q y
Ctodo C2
p q a x y a
Ejemplo. Obtener el modelo relacional del siguiente modelo orientado a objetos
Modelo relacional
86
Receptor
Destino
Firma
- numdir: int
Es para NotaDeEntrega
- zona: char
- aclaracion: char - num: int
- direccion: char - fecha: char
- observaciones: char Tiene
Cliente
Persona
- numclie: int
Contiene - dir: char - ci: char
Responsable - tel: char - nom: char
Producto Detalle
- codigo: char Corresponde
- monto: float
- nombre: char
- cantidad: float Conductor
- calidad: char
- numconductor: int
Conduce
Movilidad
- placa: char
- marca: char
Modelo relacional
87
DINAMICA
De manera general se considera las siguientes operaciones de acción:
Insertar
Modificar
Eliminar
El éxito del modelo relacional, a parte de su sencillez se debe fundamentalmente a la
dinámica que tiene. Pues resulta que se plantearon formalismos para representar estas
operaciones en la marco de lo que se denomina Lenguajes de Consulta.
4.3.1 LENGUAJES DE CONSULTA
La dinámica del modelo relacional esta definida formalmente por diferentes lenguajes:
LENGUAJE Puro Usable Procedimental Especificación
Algebra X X
relacional
Calculo X X
relacional
QBE X X
QUEL X X
SQL X X
Se dice que es un lenguaje puro por su formalismo matemático. Es usable (ó comercial)
pues generalmente está implementado o disponible en los DBMS. Se dice que es
procedimental pues se indica el qué y cómo se obtienen los datos, en cambio es de
especificación cuando solamente se indica el qué. A continuación se describen estos
lenguajes, SQL se deja para el siguiente capítulo.
4.3.2 Algebra relacional
Es un lenguaje puro y procedimental afín a la teoría de conjuntos. Es una colección de
operaciones que sirven para manipular relaciones enteras. Debe estar claro que en todos los
lenguajes se cumple la propiedad de cierre, en el sentido de que se trabaja con relaciones o
tablas y como resultado de aplicar alguna operación se obtiene una tabla o relación. Como
ocurre en la aritmética se opera con números y se obtiene números.
A modo de ejemplo usaremos el siguiente esquema relacional:
Estudiante(ci,nom,dir,tel,ing,nac)
Registro(ci,sigla,sem,nota)
Materia(sigla,nom,creditos)
Modelo relacional
88
Con las restricciones de integridad referencial:
Registra.ci Estudiante.ci
Registra.sigla Materia.sigla
Operaciones
Selección ()
En general su sintaxis es:
<condicion> (R)
La operación de selección sirve para seleccionar un subconjunto de las tuplas(filas) de una
relación que satisfacen un predicado (una condición). Se suele indicar que hace una
extracción horizontal.
Por ejemplo se tiene la siguiente relación R:
R a b c
1 2 3
4 3 2
3 2 2
b=2 ( R ) a b c b=c (R) a b C a>b (R) a b c
1 2 3 3 2 2 4 3 2
3 2 2 3 2 2
Ej. Seleccionar las materias que tienen más de 6 créditos.
creditos>6 (materia)
Ej. Obtener los estudiantes que han ingresado el semestre 2018/1
ing=’2018/1’ (estudiante)
Proyeccion ()
Su sintaxis:
<lista de atributos> (R)
La operación de proyección selecciona algunas columnas y elimina las tuplas repetidas. La
lista de atributos se describe separados por coma (,). Se dice que hace una extracción
vertical, como se muestra en la figura:
R a b C
1 2 3
4 3 2
3 2 2
Modelo relacional
89
b ( R ) b b,c (R) b c a,c (R) A c
2 2 3 1 3
3 3 2 4 2
2 2 3 2
Ej. Sacar el nombre y dirección de los estudiantes
nom,dir (estudiante)
Ej. Obtener los nombres y creditos de las materias
nom,creditos (materia)
Ej. Obtener los nombres de estudiantes que han ingresado el semestre 2018/1
nom (ing=’2018/1’ (estudiante))
En el metalenguaje se puede usar el operador de asignación()
La anterior consulta:
1. X ing=’2018/1’ (estudiante)
2. nom (x)
Producto cartesiano ( X )
Sintaxis:
RXS
El producto cartesiano combina todas las tuplas de las relaciones participantes, además las
tuplas resultantes tienen los atributos de estas relaciones. En general si R tiene n atributos y
S tiene m atributos las tuplas creadas son de n+m atributos.
R a b C S X y R x S a b c x y
1 2 3 1 2 1 2 3 1 2
4 3 2 1 5 1 2 3 1 5
3 2 2 3 4 1 2 3 3 3
4 3 2 1 2
4 3 2 1 5
4 3 2 3 3
3 2 2 1 2
3 2 2 1 5
3 2 2 3 3
Modelo relacional
90
Combinacion-JOIN ( )
La operación de combinación se denota por, sirve para combinar tuplas relacionadas de dos
relaciones en una sola tupla, es muy importante en las bases de datos. Se podría decir que
es una combinación con sentido a diferencia del producto cartesiano. Se podría definir esta
operación en base a la siguiente expresión:
R <condición> S = <condición> ( R X S )
R a b C S X y R x S a b c x y
1 2 3 1 2 1 2 3 1 2
4 3 2 1 5 1 2 3 1 5
3 2 2 3 4 1 2 3 3 3
4 3 2 1 2
4 3 2 1 5
4 3 2 3 3
3 2 2 1 2
3 2 2 1 5
3 2 2 3 3
R a=x S a b c x y
1 2 3 1 2
1 2 3 1 5
3 2 2 3 3
La condición de combinación goza de una característica, se compara el valor de un atributo
de R con el valor de otro atributo de S, obviamente debe cumplirse que ambos tengan el
mismo dominio. Cuando el operador relacional es igualdad y tiene que ver con integridad
referencial, se suele denominar COMBINACION NATURAL.
Ej Los estudiantes con sus materias registradas
estudiante estudiante.ci=registro.ci registro
Union ()
Es una operación de la teoría de conjuntos, necesita para realizarse que las relaciones sean
compatibles es decir tener la misma cantidad de atributos y a cada par de atributos
correspondientes deben tener el mismo dominio.
Se denota por:
Modelo relacional
91
RS
El resultado de esta operación es una relación que incluye tuplas que están en R o en S.
R a b S x y
1 2 1 2
4 3 1 5
3 2 3 2
R S a b
1 2
4 3
3 2
1 5
Interseccion ()
Necesita que los operandos sean compatibles.
Se denota por:
RS
El resultado de esta operación es una relación que incluye tuplas que están tanto en R como
en S.
R a b S x y
1 2 1 2
4 3 1 5
3 2 3 2
R S a b
1 2
3 2
Figura 4.20. Intersección.
Diferencia (-)
Requisito es que las relaciones sean compatibles
Se denota por:
R-S
El resultado de esta operación es una relación que incluye tuplas que están en R pero no en
S.
Modelo relacional
92
R a b S x y
1 2 1 2
4 3 1 5
3 2 3 2
R-S a b
4 3
Division ( : )
Se denota por:
R:S
Esta operación nos da los valores contenidos de R en S. Otra forma de ver esto es como un
operador derivado donde R-S indica que se tiene los atributos de R que no están en S.
R : S = R-S (R)- R-S (R-S(R) X S – R)
4.3.3 Cálculo relacional
Es un lenguaje de especificación, es decir en la consulta solamente se indica el Que de la
información que se requiere, está basado en la Lógica de Predicados de Primer Orden. Hay
dos formas el calculo relacional orientado a tuplas y el calculo relacional orientado a
dominios, se presenta el primero.
a) Cálculo relacional orientado a tuplas
Sintaxis:
{t / Q(t)}
Donde: t Variable tupla
Q Predicado o condición (Formula Bien Definida FBD)
Son átomos: r R
r[a] s[b]
r[a] cte
Donde es un operador relacional como: >,>=,<,<=,=,<>,!=
Reglas para una Formula Bien Definida:
1. Todo átomo es una FBD
2. Sea una FBD entonces es FBD
3. Sean y FBDs, entonces
a.
b.
c.
d.
Modelo relacional
93
Ej. Las materias que tienen más de seis créditos
{ t / t materia t[creditos]>6}
Usando la sentencia más elaborada:
{t / tQ(t)}
Ej. Obtener el nombre de las materias que tienen más de seis créditos
{t / s(s materia s[creditos]>6 t[nom]=s[nom] )}
Un sentencia Cálculo relacional que obtiene información en más de una tabla, usando el
equivalente a una operación de combinación.
Ej. Los nombres de los estudiantes que llevan INF2430 el semestre 2020/1
{t / s(s registro s[sigla]=’INF2430’ s[sem]=’2020/1’ ) r (r
Estudiante s[ci]=r[ci] t[nom]=r[nom]) }
La condición s[ci]=r[ci], es necesaria para denotar la operación de combinación.
b) Calculo relacional orientado a dominios
Sintaxis:
{<v1,v2,..,vn> / Q(v1,v2,..,vn )}
Donde: vi representan variabes de dominio.
Q predicando o condición (Formula Bien Definida)
Son átomos: <v1,v2,..,vn> R
v1 v2
v1 cte
Donde es un operador relacional como: >,>=,<,<=,=,<>,!=
Reglas para una Formula Bien Definida:
1. Todo átomo es una FBD
2. Sea una FBD entonces es FBD
3. Sean y FBDs, entonces
a.
b.
c.
d.
Modelo relacional
94
Ej. Las materias que tienen más de seis créditos
Variables de dominio: En la tabla materia s para SIGLA, n para NOM, c para CREDITOS
{ <s,n,c> / (<s,n,c> Materia c>6 )}
Ej. Los estudiantes que han ingresado el semestre 2018/1.
Variables de dominio: En la tabla estudiante c para CI, n para nombre, d para DIR, i para
ING, t para TEL, a para NAC.
{ <c,n,d,t,i,a> / (<c,n,d,t,i,a> Estudiante i=’2004/1’ )}
Usando la sentencia más elaborada:
{<v1,v2,..,vn> / v1,v2,..,vnQ(v1,v2,..,vn )}
Ej. Obtener el nombre de las materias que tienen más de seis créditos
{ <n> / s,c (<s,n,c> Materia c>6 )}
Un sentencia Cálculo relacional que obtiene información en más de una tabla, usando el
equivalente a una operación de combinación.
Ej. Los nombres de los estudiantes que llevan INF2430 el semestre 2020/1
Variables de dominio: En la tabla estudiante c para CI, n para nombre, d para DIR, i para
ING. En la tabla Registra c para CI, s para SIGLA, e para SEM, o para NOTA.
{ <n> / c,d,i (<c,n,d,i> Estudiante ) s,e,o (<c,s,e,o> Registro s=’INF2430’
e=’2020/1’ )}
Nótese que no está explícito la operación de combinación como en el cálculo relacional
orientado a tuplas, al denominar la misma variable de dominio con c para CI se asume este
aspecto.
4.3.4 QUEL
Su acrónimo significa lenguaje de consulta (QUEry Language), basado en el cálculo
relacional, se implemento con INGRES un manejador de base de datos muy importante.
Sintaxis
RANGE OF <variable> IS <tabla o relacion>
RETRIEVE <lista de atributos>
WHERE <Condición o Predicado>
Ej. Las materias con más de seis créditos
RANGE OF s IS materia
RETRIEVE (s.sigla,s.nom,s.creditos)
WHERE s.creditos>6
Modelo relacional
95
Ej. Los nombres de los estudiantes que llevan INF2430 el semestre 2020/1
RANGE OF s IS registro
RANGE OF r IS estudiante
RETRIEVE (r.nom)
WHERE s.ci=r.ci AND s.sigla=’INF2430’ AND s.sem=’2020/1’
4.3.5 QBE
El lenguaje de consulta QBE (Query By Example) es también de especificación, está más
orientado a la interfaz de usuario.
Para una consulta se asume que se tiene los esquemas de las relaciones de las cuales se
necesita información, están presentes de acuerdo al siguiente esquema:
Nombre de la tabla o Relación Atributos de la Tabla
Funciones y operaciones Zona de predicado o condición
Zona de mostrar datos
Funciones y operaciones
.P Mostrar
.I Insertar
.D Borrar
.U Actualizar
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
Ej. Las materias que tienen más de seis créditos
MATERIA Sigla Nom Creditos
.P >6
Ej. Los nombres de materias que tienen más de seis créditos
MATERIA Sigla Nom Creditos
.P >6
Ej. Los registros de INF2430 del semestre 2020/1
REGISTRO ci Sigla Sem Nota
.P INF2430 2020/1
Modelo relacional
96
Ej. Los registros de INF2430 con nota entre 60 y 70
REGISTRO ci Sigla Sem Nota
.P INF2430 >=60
.AND <=70
Ej. Los estudiantes que ha ingresado el año 2018
ESTUDIANTE ci Nom Dir Tel Ing Nac
.P 2018/1
2018/2
Ej. Los nombres de los estudiantes tienen registrado INF2430 el semestre 2020/1
ESTUDIANTE ci Nom Dir tel Ing Nac
_X .P
REGISTRO ci Sigla Sem Nota
_X INF2430 2020/1
El uso de variables temporales se denota con _ , por ejemplo _X