fbpx
Wikipedia

Cálculo relacional basado en tuplas

El cálculo relacional basado en tuplas es un cálculo introducido por Edgar Frank Codd como parte del cálculo relacional, el cual pertenece al modelo relacional para bases de datos. Fue la inspiración para la creación de los lenguajes de consulta QUEL y SQL, de los cuales este último, aunque menos fiel al original, es ahora el lenguaje de consulta más usado. El cálculo relacional basado en dominio, formulado por Michel Lacroix and Alain Pirotte, se aproxima más a la lógica de primer orden, sin embargo ambos son equivalentes en su poder expresivo.

Definición

Base de datos relacional

Debido a que es un lenguaje de consulta para bases de datos relacionales, primero se debe definir una base de datos relacional. El bloque de construcción relacional básico es el dominio o tipo de datos. Una tupla o registro es un multiconjunto de atributos, los cuales son pares ordenados de dominio y valor, o sólo una fila. Una relación es un conjunto de tuplas. Una tabla es una representación visual aceptada de una relación.

Se asume la existencia de un conjunto C de columnas, por ejemplo, "nombre", "autor" o "dirección"; y de cabeceras como subconjuntos finitos de C. Un esquema de bases de datos relacional es definido como una tupla S = (D, R, h), donde:

  • D es el dominio de los valores atómicos (un atributo es atómico si los elementos del dominio son simples e indivisibles).
  • R es un conjunto finito de nombres de relación.
  • h es una función que asocia una cabecera con cada nombre de relación en R y se define como: h: R → 2C

Dado un dominio D se define una tupla sobre D como una función parcial que mapea algunos nombres de columna a un valor atómico en D; por ejemplo, name: "Harry", age : 25.

t : CD

El conjunto de todas las tuplas sobre D se denota como TD. El subconjunto de C para el cual se define una tupla t se conoce como el dominio de t (que no debe confundirse con el dominio en el esquema) y es escrito como dom(t).

Entonces se puede definir una base de datos relacional dado un esquema S = (D, R, h) como una función:

db : R → 2TD

que mapea los nombres de relación en R a subconjuntos finitos de TD, tales que por cada nombre de relación r en R y tupla t en db(r) se cumple que:

dom(t) = h(r).

Es decir, que todas las tuplas de una relación deben contener los mismos nombres de columna que se definen para el esquema.

Átomos

Para la construcción de las fórmulas se asume un conjunto infinito V de variables de tupla. Las fórmulas se definen dado un esquema de bases de datos S = (D, R, h) y una función parcial tipo : V -> 2C que define una asignación de tipo que asigna cabeceras a algunas variables de tupla. Entonces se definen el conjunto de fórmulas atómicas A[S,tipo] con las siguientes reglas:

  1. Si v y w están en V, a en tipo(v) y b en tipo(w) entonces la fórmula "v.a = w.b" está en A[S,tipo].
  2. Si v está en V, a en tipo(v) y k denota un valor en D entonces la fórmula "v.a = k" está en A[S,tipo].
  3. Si v está en V, r en R y tipo(v) = h(r) entonces la fórmula "r(v)" está en A[S,tipo].

Ejemplos de átomos son:

  • (t.edad = s.edad) — la tupla t tiene un atributo de edad y s tiene un atributo de edad con el mismo valor
  • (t.nombre = "Codd") — la tupla t tiene un atributo de nombre y su valor es "Codd"
  • Libro(t) — la tupla t se encuentra en la relación Libro.

La semántica formal de aquellos átomos es definida dada una base de datos db sobre S y una variable de tupla val : V -> TD que mapea las variables de tupla a tuplas sobre el dominio en S:

  1. "v.a = w.b" es verdadero si y sólo si val(v)(a) = val(w)(b)
  2. "v.a = k" es verdadero si y sólo si val(v)(a) = k
  3. "r(v)" es verdadero si y sólo si val(v) is in db(r)

Fórmulas

Los átomos pueden ser combinados en fórmulas, como es común en la lógica de primer orden, con los operadores lógicos ∧ (and o y), ∨ (or u o) y ¬ (not o no), y puede usarse el cuantificador existencial (∃) y el cuantificador universal (∀) para enlazar o unir las variables. Se define el conjunto de fórmulas F[S,tipo] por inducción con las siguientes reglas:

  1. Cada átomo en A[S,tipo] está también en F[S,tipo].
  2. Si f1 y f2 están en F[S,tipo] entonces la fórmula "f1f2" está también en F[S,tipo].
  3. Si f1 y f2 está en F[S,tipo] entonces la fórmula "f1f2" está también en F[S,tipo].
  4. Si f está en F[S,tipo] entonces la fórmula "¬ f" está también en F[S,tipo].
  5. Si v está en V, una cabecera H y una fórmula f en F[S,tipo[v->H]] entonces la fórmula "∃ v: H (f)" está también en F[S,tipo], donde tipo[v->H] denota la función que es igual a tipo excepto que esta mapea v a H.
  6. Si v está en V, una cabecera H y una fórmula f en F[S,tipo[v->H]] entonces la fórmula "∀ v: H (f)" está también en F[S,tipo].

Ejemplos de fórmulas son:

  • t.autor = "René Descartes" ∨ t.autor = "Óscar Gómez"
  • Libro(t) ∨ Revista(t)
  • t : {autor, título, materia} ( ¬ ( Libro(t) ∧ t.autor = "René Descartes" ∧ ¬ ( t.materia = "revolución científica")))

Asumimos que los cuantificadores se aplican sobre el universo de todas las tuplas sobre el dominio en el esquema. Esto lleva a la formulación de las siguientes semánticas para fórmulas dada una base de datos db sobreS y una variable de tupla val: V -> TD:

  1. "f1f2" es verdadero si y solo si "f1" es verdadero y "f2" es verdadero.
  2. "f1f2" es verdadero si y solo si "f1" es verdadero o "f2" es verdadero o ambos son verdaderos.
  3. f" es verdadero si y solo si "f" es falso.
  4. "∃ v : H ( f )" es verdadero si y solo si hay una tupla t sobre D tal que dom(t) = H y la fórmula "f" es verdadera para val[v->t].
  5. "∀ v : H ( f )" es verdadero si y solo si para todas las tuplas t sobre D tales que dom(t) = H la fórmula "f" es verdadera para val[v->t].

Consultas

Dado un esquema S = (D, R, h), se expresa una consulta como:

{ v : H | f(v) }

Donde v es una variable de tupla, H es una cabecera y f(v) una fórmula en F[S,tipo] donde tipo = { (v, H) } y con v como su única variable libre. El resultado de una consulta como estas para una base de datos db sobre S es el conjunto de todas las tuplas t sobre D con dom(t) = H tales que f es verdadero para db y val = { (v, t) }.

Ejemplos de consultas son:

  • { t : {nombre} | ∃ s : {nombre, salario} ( Empleado(s) ∧ s.salario = 500.000 ∧ t.nombre = s.nombre ) }
  • { t : {proveedor, artículo} | ∃ s : {s#, snombre} ( Proveedor(s) ∧ s.snombre = t.proveedor ∧ ∃ p : {p#, pnombre} ( Producto(p) ∧ p.pnombre = t.artículo ∧ ∃ a : {s#, p#} ( Suministros(a) ∧ s.s# = a.s# ∧ a.p# = p.p# ) }

Semántica y restricción sintáctica

Consultas independiente del dominio

Debido a que la semántica de los cuantificadores es tal que ellos cuantifican sobre todas las tuplas en el dominio del esquema, puede ser que una consulta retorne un resultado diferente para una base de datos específica si se presume otro esquema. Por ejemplo, considerando los dos esquemas S1 = ( D1, R, h ) y S2 = ( D2, R, h ) con dominios D1 = { 1 }, D2 = { 1, 2 }, nombres de relación R = { "r1" } y cabeceras h = { ("r1", {"a"}) }. Ambos esquemas tienen una instancia común:

db = { ( "r1", { ("a", 1) } ) }

Si consideramos la siguiente consulta:

{ t : {a} | t.a = t.a }

Entonces su resultado en db o es { (a : 1) } bajo S1 ó { (a : 1), (a : 2) } bajo S2. Es claro también que si tomamos el dominio como un conjunto infinito, entonces el resultado de la consulta será infinito. Para resolver esos problemas se consideran las consultas independiente del dominio, aquellas que retornan el mismo resultado para una base de datos bajo todos sus esquemas.

Consultas seguras

Con el fin de limitar las consultas de manera que expresen únicamente consultas independiente del dominio, una noción sintáctica de consulta segura es introducida. Para determinar si una consulta es segura is safe se derivan dos tipos de información de una consulta. La primera es si un par columna-variablet.a está acotado a la columna de una relación o una constante, y la segunda es si hay dos pares columna-variable que son directa o indirectamente equivalentes (denotado t.v == s.w).

Por derivar el acotamiento se introducen las siguientes reglas:

  1. en "v.a = w.b" ningún par columna-variable está acotado,
  2. en "v.a = k" el par columna-variable v.a está acotado,
  3. en "r(v)" todos los pares v.a están acotados por a en tipo(v),
  4. en "f1f2" todos los pares están acotados de manera que están acotados o en f1 o en f2,
  5. en "f1f2" todos los pares están acotados de manera que están acotados ambos en f1 y en f2,
  6. en "¬ f" ninguno de los pares está acotado,
  7. en "∃ v: H (f)" un par w.a está acotado si está acotado en f y w <> v,
  8. en "∀ v: H (f)" un par w.a está acotado si está acotado en f y w <> v.

Por derivar la equivalencia se introducen las siguientes reglas:

  1. en "v.a = w.b" se mantiene que v.a == w.b,
  2. en "v.a = k" ninguno de los pares son equivalentes,
  3. en "r(v)" ninguno de los pares son equivalentes,
  4. en "f1f2" se mantiene que v.a == w.b si se mantiene o en f1 o en f2,
  5. en "f1f2" se mantiene que v.a == w.b si se mantiene en f1 y en f2,
  6. en "¬ f" ninguno de los pares son equivalentes,
  7. en "∃ v : H ( f )" se mantiene que w.a == x.b si se mantiene en f y w<>v y x<>v,
  8. en "∀ v : H ( f )" se mantiene que w.a == x.b si se mantiene en f y w<>v y x<>v.

Entonces se dice que una consulta { v : H | f(v) } es segura si:

  • para cada nombre de columna a en H podemos derivar que v.a es equivalente a un par acotado en f,
  • para cada subexpresión de f de la forma "∀ w : G (g)" podemos derivar que para cada nombre de columna a en G podemos derivar que w.a es equivalente a un par acotado en g,
  • para cada subexpresión de f de la forma "∃ w : G (g)" podemos derivar que para cada nombre de columna a en G podemos derivar que w.a es equivalente a un par acotado en g.

Sistemas

  • DES – Una herramienta educativa con cálculo relacional de tuplas y otros lenguajes formales
  • WinRDBI - Una herramienta educativa con cálculo relacional de tuplas y otros lenguajes formales

Bibliografía

  • Edgar Frank Codd: A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, 13(6):377–387, 1970.

Véase también


  •   Datos: Q1000462

cálculo, relacional, basado, tuplas, cálculo, relacional, basado, tuplas, cálculo, introducido, edgar, frank, codd, como, parte, cálculo, relacional, cual, pertenece, modelo, relacional, para, bases, datos, inspiración, para, creación, lenguajes, consulta, que. El calculo relacional basado en tuplas es un calculo introducido por Edgar Frank Codd como parte del calculo relacional el cual pertenece al modelo relacional para bases de datos Fue la inspiracion para la creacion de los lenguajes de consulta QUEL y SQL de los cuales este ultimo aunque menos fiel al original es ahora el lenguaje de consulta mas usado El calculo relacional basado en dominio formulado por Michel Lacroix and Alain Pirotte se aproxima mas a la logica de primer orden sin embargo ambos son equivalentes en su poder expresivo Indice 1 Definicion 1 1 Base de datos relacional 1 2 Atomos 1 3 Formulas 1 4 Consultas 2 Semantica y restriccion sintactica 2 1 Consultas independiente del dominio 2 2 Consultas seguras 3 Sistemas 4 Bibliografia 5 Vease tambienDefinicion EditarBase de datos relacional Editar Debido a que es un lenguaje de consulta para bases de datos relacionales primero se debe definir una base de datos relacional El bloque de construccion relacional basico es el dominio o tipo de datos Una tupla o registro es un multiconjunto de atributos los cuales son pares ordenados de dominio y valor o solo una fila Una relacion es un conjunto de tuplas Una tabla es una representacion visual aceptada de una relacion Se asume la existencia de un conjunto C de columnas por ejemplo nombre autor o direccion y de cabeceras como subconjuntos finitos de C Un esquema de bases de datos relacional es definido como una tupla S D R h donde D es el dominio de los valores atomicos un atributo es atomico si los elementos del dominio son simples e indivisibles R es un conjunto finito de nombres de relacion h es una funcion que asocia una cabecera con cada nombre de relacion en R y se define como h R 2CDado un dominio D se define una tupla sobre D como una funcion parcial que mapea algunos nombres de columna a un valor atomico en D por ejemplo name Harry age 25 t C DEl conjunto de todas las tuplas sobre D se denota como TD El subconjunto de C para el cual se define una tupla t se conoce como el dominio de t que no debe confundirse con el dominio en el esquema y es escrito como dom t Entonces se puede definir una base de datos relacional dado un esquema S D R h como una funcion db R 2TDque mapea los nombres de relacion en R a subconjuntos finitos de TD tales que por cada nombre de relacion r en R y tupla t en db r se cumple que dom t h r Es decir que todas las tuplas de una relacion deben contener los mismos nombres de columna que se definen para el esquema Atomos Editar Para la construccion de las formulas se asume un conjunto infinito V de variables de tupla Las formulas se definen dado un esquema de bases de datos S D R h y una funcion parcial tipo V gt 2C que define una asignacion de tipo que asigna cabeceras a algunas variables de tupla Entonces se definen el conjunto de formulas atomicas A S tipo con las siguientes reglas Si v y w estan en V a en tipo v y b en tipo w entonces la formula v a w b esta en A S tipo Si v esta en V a en tipo v y k denota un valor en D entonces la formula v a k esta en A S tipo Si v esta en V r en R y tipo v h r entonces la formula r v esta en A S tipo Ejemplos de atomos son t edad s edad la tupla t tiene un atributo de edad y s tiene un atributo de edad con el mismo valor t nombre Codd la tupla t tiene un atributo de nombre y su valor es Codd Libro t la tupla t se encuentra en la relacion Libro La semantica formal de aquellos atomos es definida dada una base de datos db sobre S y una variable de tupla val V gt TD que mapea las variables de tupla a tuplas sobre el dominio en S v a w b es verdadero si y solo si val v a val w b v a k es verdadero si y solo si val v a k r v es verdadero si y solo si val v is in db r Formulas Editar Los atomos pueden ser combinados en formulas como es comun en la logica de primer orden con los operadores logicos and o y or u o y not o no y puede usarse el cuantificador existencial y el cuantificador universal para enlazar o unir las variables Se define el conjunto de formulas F S tipo por induccion con las siguientes reglas Cada atomo en A S tipo esta tambien en F S tipo Si f1 y f2 estan en F S tipo entonces la formula f1 f2 esta tambien en F S tipo Si f1 y f2 esta en F S tipo entonces la formula f1 f2 esta tambien en F S tipo Si f esta en F S tipo entonces la formula f esta tambien en F S tipo Si v esta en V una cabecera H y una formula f en F S tipo v gt H entonces la formula v H f esta tambien en F S tipo donde tipo v gt H denota la funcion que es igual a tipo excepto que esta mapea v a H Si v esta en V una cabecera H y una formula f en F S tipo v gt H entonces la formula v H f esta tambien en F S tipo Ejemplos de formulas son t autor Rene Descartes t autor oscar Gomez Libro t Revista t t autor titulo materia Libro t t autor Rene Descartes t materia revolucion cientifica Asumimos que los cuantificadores se aplican sobre el universo de todas las tuplas sobre el dominio en el esquema Esto lleva a la formulacion de las siguientes semanticas para formulas dada una base de datos db sobreS y una variable de tupla val V gt TD f1 f2 es verdadero si y solo si f1 es verdadero y f2 es verdadero f1 f2 es verdadero si y solo si f1 es verdadero o f2 es verdadero o ambos son verdaderos f es verdadero si y solo si f es falso v H f es verdadero si y solo si hay una tupla t sobre D tal que dom t H y la formula f es verdadera para val v gt t v H f es verdadero si y solo si para todas las tuplas t sobre D tales que dom t H la formula f es verdadera para val v gt t Consultas Editar Dado un esquema S D R h se expresa una consulta como v H f v Donde v es una variable de tupla H es una cabecera y f v una formula en F S tipo donde tipo v H y con v como su unica variable libre El resultado de una consulta como estas para una base de datos db sobre S es el conjunto de todas las tuplas t sobre D con dom t H tales que f es verdadero para db y val v t Ejemplos de consultas son t nombre s nombre salario Empleado s s salario 500 000 t nombre s nombre t proveedor articulo s s snombre Proveedor s s snombre t proveedor p p pnombre Producto p p pnombre t articulo a s p Suministros a s s a s a p p p Semantica y restriccion sintactica EditarConsultas independiente del dominio Editar Debido a que la semantica de los cuantificadores es tal que ellos cuantifican sobre todas las tuplas en el dominio del esquema puede ser que una consulta retorne un resultado diferente para una base de datos especifica si se presume otro esquema Por ejemplo considerando los dos esquemas S1 D1 R h y S2 D2 R h con dominios D1 1 D2 1 2 nombres de relacion R r1 y cabeceras h r1 a Ambos esquemas tienen una instancia comun db r1 a 1 Si consideramos la siguiente consulta t a t a t a Entonces su resultado en db o es a 1 bajo S1 o a 1 a 2 bajo S2 Es claro tambien que si tomamos el dominio como un conjunto infinito entonces el resultado de la consulta sera infinito Para resolver esos problemas se consideran las consultas independiente del dominio aquellas que retornan el mismo resultado para una base de datos bajo todos sus esquemas Consultas seguras Editar Con el fin de limitar las consultas de manera que expresen unicamente consultas independiente del dominio una nocion sintactica de consulta segura es introducida Para determinar si una consulta es segura is safe se derivan dos tipos de informacion de una consulta La primera es si un par columna variablet a esta acotado a la columna de una relacion o una constante y la segunda es si hay dos pares columna variable que son directa o indirectamente equivalentes denotado t v s w Por derivar el acotamiento se introducen las siguientes reglas en v a w b ningun par columna variable esta acotado en v a k el par columna variable v a esta acotado en r v todos los pares v a estan acotados por a en tipo v en f1 f2 todos los pares estan acotados de manera que estan acotados o en f1 o en f2 en f1 f2 todos los pares estan acotados de manera que estan acotados ambos en f1 y en f2 en f ninguno de los pares esta acotado en v H f un par w a esta acotado si esta acotado en f y w lt gt v en v H f un par w a esta acotado si esta acotado en f y w lt gt v Por derivar la equivalencia se introducen las siguientes reglas en v a w b se mantiene que v a w b en v a k ninguno de los pares son equivalentes en r v ninguno de los pares son equivalentes en f1 f2 se mantiene que v a w b si se mantiene o en f1 o en f2 en f1 f2 se mantiene que v a w b si se mantiene en f1 y en f2 en f ninguno de los pares son equivalentes en v H f se mantiene que w a x b si se mantiene en f y w lt gt v y x lt gt v en v H f se mantiene que w a x b si se mantiene en f y w lt gt v y x lt gt v Entonces se dice que una consulta v H f v es segura si para cada nombre de columna a en H podemos derivar que v a es equivalente a un par acotado en f para cada subexpresion de f de la forma w G g podemos derivar que para cada nombre de columna a en G podemos derivar que w a es equivalente a un par acotado en g para cada subexpresion de f de la forma w G g podemos derivar que para cada nombre de columna a en G podemos derivar que w a es equivalente a un par acotado en g Sistemas EditarDES Una herramienta educativa con calculo relacional de tuplas y otros lenguajes formales WinRDBI Una herramienta educativa con calculo relacional de tuplas y otros lenguajes formalesBibliografia EditarEdgar Frank Codd A Relational Model of Data for Large Shared Data Banks Communications of the ACM 13 6 377 387 1970 Vease tambien EditarAlgebra relacional Calculo relacional Calculo relacional basado en dominio Modelo relacional Modelo entidad relacion SQL Datos Q1000462Obtenido de https es wikipedia org w index php title Calculo relacional basado en tuplas amp oldid 118088283, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos