Articulo de referencia

Relación (base de datos)

Relación, tupla y atributo representados como tabla, fila y columna respectivamente En la teoría de bases de datos , una relación , tal como la definió originalmente EF Codd , [...

Relación, tupla y atributo representados como tabla, fila y columna respectivamente

En la teoría de bases de datos , una relación , tal como la definió originalmente EF Codd , [ 1 ] es un conjunto de tuplas (d1 , d2 , ..., dn ) , donde cada elemento dj es un miembro de Dj , un dominio de datos . A pesar de la definición original de Codd, y contrariamente a la definición habitual en matemáticas, no existe un orden para los elementos de las tuplas de una relación. [ 2 ] [ 3 ] En cambio, cada elemento se denomina valor de atributo . Un atributo es un nombre emparejado con un dominio (actualmente más comúnmente denominado tipo o tipo de datos ). Un valor de atributo es un nombre de atributo emparejado con un elemento del dominio de ese atributo, y una tupla es un conjunto de valores de atributo en el que no hay dos elementos distintos con el mismo nombre. Por lo tanto, en algunos casos, una tupla se describe como una función que asigna nombres a valores.

Un conjunto de atributos en el que no hay dos elementos distintos con el mismo nombre se denomina encabezado . De las definiciones anteriores se deduce que a cada tupla le corresponde un encabezado único, que es el conjunto de nombres de la tupla, emparejado con los dominios de los que se toman los dominios de los elementos de la tupla. Un conjunto de tuplas que corresponden al mismo encabezado se denomina cuerpo . Una relación es, por lo tanto, un encabezado emparejado con un cuerpo, siendo el encabezado de la relación también el encabezado de cada tupla en su cuerpo. El número de atributos que constituyen un encabezado se denomina grado , término que también se aplica a tuplas y relaciones. El término n -tupla se refiere a una tupla de grado n ( n ≥ 0).

EF Codd utilizó el término "relación" en su sentido matemático de una relación finita , un conjunto de tuplas en algún conjunto de n conjuntos S 1 , S 2 ,...., S n . [ 4 ] Así, una relación n -aria se interpreta, bajo la Suposición de Mundo Cerrado , como la extensión de algún predicado n -ádico : todas y solo aquellas n- tuplas cuyos valores, sustituidos por las variables libres correspondientes en el predicado, producen proposiciones que son verdaderas, aparecen en la relación.

Un encabezado junto con un conjunto de restricciones definidas en función de dicho encabezado se denomina esquema de relación . Por lo tanto, una relación puede considerarse una instanciación de un esquema de relación si posee el encabezado de ese esquema y satisface las restricciones aplicables.

A veces, un esquema de relación se considera que incluye un nombre. [ 5 ] [ 6 ] Por lo tanto , una definición de base de datos relacional ( esquema de base de datos , a veces denominado esquema relacional) puede considerarse como una colección de esquemas de relación con nombre . [ 7 ] [ 8 ]

En las implementaciones, el dominio de cada atributo es efectivamente un tipo de datos [ 9 ] y un esquema de relación con nombre es efectivamente una variable de relación ( relavar para abreviar).

En SQL , un lenguaje de bases de datos relacionales, las relaciones se representan mediante tablas , donde cada fila de una tabla representa una única tupla y donde los valores de cada atributo forman una columna.

Ejemplos

A continuación se muestra un ejemplo de una relación que tiene tres atributos con nombre: 'ID' del dominio de los enteros , y 'Name' y 'Address' del dominio de las cadenas :

Un predicado para esta relación, utilizando los nombres de los atributos para denotar variables libres, podría ser "El empleado con número de identificación se conoce como Nombre y vive en Dirección ". Al examinar la relación, observamos que solo existen cuatro tuplas para las cuales el predicado es verdadero. Por ejemplo, el empleado 102 se conoce únicamente por su nombre, Akin, y no vive en ningún otro lugar que no sea Naha, Okinawa. Además, aparte de los cuatro empleados mostrados, no existe ningún otro empleado que tenga tanto un nombre como una dirección.

Según la definición de cuerpo , las tuplas de un cuerpo no aparecen en ningún orden en particular; no se puede decir "La tupla de 'Murata Makoto' está encima de la tupla de 'Matsumoto Yukihiro'", ni tampoco "La tupla de es la primera tupla". Un comentario similar se aplica a las filas de una tabla SQL.

Según la definición de encabezado , los atributos de un elemento no aparecen en ningún orden en particular, ni tampoco, por lo tanto, los elementos de una tupla. Un comentario similar no se aplica a SQL, que sí define un orden para las columnas de una tabla.

Variables de relación

Una base de datos relacional consta de variables de relación con nombre (relvars) para actualizar la base de datos en respuesta a cambios en el mundo real. Una actualización de una sola relvar hace que el cuerpo de la relación asignada a esa variable sea reemplazado por un conjunto diferente de tuplas. Las relvars se clasifican en dos clases: variables de relación base y variables de relación derivadas , estas últimas también conocidas como relvars virtuales , pero generalmente denominadas vistas a corto plazo .

Una variable de relación base es una variable de relación que no se deriva de ninguna otra variable de relación. En SQL, el término tabla base equivale aproximadamente a variable de relación base.

Una vista se define mediante una expresión que utiliza los operadores del álgebra relacional o del cálculo relacional . Dicha expresión opera sobre una o más relaciones y, al evaluarse, produce otra relación. El resultado se denomina a veces relación "derivada" cuando los operandos son relaciones asignadas a variables de la base de datos. Una vista se define asignando un nombre a dicha expresión, de forma que este nombre pueda utilizarse posteriormente como nombre de variable. (Cabe destacar que la expresión debe mencionar al menos una variable de la relación base).

Mediante el uso de un lenguaje de definición de datos (DDL), se pueden definir variables de relación base. En SQL, CREATE TABLEse utiliza una sintaxis para definir tablas base. A continuación se muestra un ejemplo.

CREATE TABLE List_of_people ( ID INTEGER , Name CHAR ( 40 ), Address CHAR ( 200 ), PRIMARY KEY ( ID ) )

El lenguaje de definición de datos (DDL) también se utiliza para definir variables de relación derivadas. En SQL, CREATE VIEWse utiliza una sintaxis específica para definir una variable de relación derivada. A continuación, se muestra un ejemplo.

CREATE VIEW List_of_Okinawa_people AS ( SELECT ID , Name , Address FROM List_of_people WHERE Address LIKE '%, Okinawa' )

Véase también

Referencias

  1. EF Codd (octubre de 1972). «Mayor normalización del modelo relacional de bases de datos». Sistemas de bases de datos . Instituto Courant: Prentice-Hall. ISBN 013196741X. R es una relación en estos n dominios si es un conjunto de elementos de la forma (d 1 , d 2 , ..., d n ) donde d j ∈ D j para cada j=1,2,...,n.
  2. CJ Date (mayo de 2005). Database in Depth . O'Reilly. pág. 42. ISBN  0-596-10012-4... las tuplas no tienen un orden de izquierda a derecha en sus atributos...
  3. EF Codd (1990). El modelo relacional para la gestión de bases de datos, versión 2. Addison-Wesley. pág. 3. ISBN  0-201-14192-2Una de las razones para abandonar por completo los conceptos posicionales en las relaciones del modelo relacional es que no es nada inusual encontrar relaciones de bases de datos, cada una de las cuales tiene hasta 50, 100 o incluso 150 columnas.
  4. Codd, Edgar F (junio de 1970). "Un modelo relacional de datos para grandes bancos de datos compartidos" (PDF) . Communications of the ACM . 13 (6): 377–87 . doi : 10.1145/362384.362685 . El término relación se utiliza aquí en su sentido matemático aceptado.
  5. Jeffrey D. Ullman (1989). Principios de bases de datos y sistemas de bases de conocimiento . Jeffrey Ullman. págs. 410– . Recuperado el 28 de noviembre de 2012 . 
  6. Dennis Elliott Shasha; Philippe Bonnet (2003). Ajuste de bases de datos: principios, experimentos y técnicas de resolución de problemas . Morgan Kaufmann. pág. 124. ISBN  978-1-55860-753-8.
  7. Peter Rob; Carlos Coronel, Peter Rob (2009). Sistemas de bases de datos: diseño, implementación y gestión . Cengage Learning. págs. 190–. ISBN  978-1-4239-0201-0Consultado el 28 de noviembre de 2012 .
  8. TA Halpin; Antony J. Morgan (2008). Modelado de información y bases de datos relacionales . Morgan Kaufmann. págs. 772–. ISBN  978-0-12-373568-3Consultado el 28 de noviembre de 2012 .
  9. Michael F. Worboys (1995). SIG: Una perspectiva informática . Taylor & Francis. págs. 57–. ISBN  978-0-7484-0065-2Consultado el 22 de noviembre de 2012 .