Relación (base de datos) - Relation (database)

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

En la teoría de bases de datos relacionales , una relación , como la definió originalmente EF Codd , es un conjunto de tuplas (d 1 , d 2 , ..., d n ), donde cada elemento d j es un miembro de D j , un dominio de datos . A pesar de la definición original de Codd, y contrariamente a la definición habitual en matemáticas, no hay orden en los elementos de las tuplas de una relación. En cambio, cada elemento se denomina valor de atributo . Un atributo es un nombre emparejado con un dominio (hoy en día más comúnmente conocido como 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 que tengan el mismo nombre. Por lo tanto, en algunas cuentas, 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, emparejados con los dominios de los que se toman los elementos de dominio de la tupla. Un conjunto de tuplas que corresponden todas al mismo encabezado se llama cuerpo . Por tanto, una relación es 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 usó el término "relación" en su sentido matemático de una relación finitaria , un conjunto de tuplas en algún conjunto de n conjuntos S 1S 2 , ...., S n . Por lo tanto, una relación n -aria se interpreta, bajo el supuesto de mundo cerrado , como la extensión de algún predicado n -ádico : todas y solo aquellas n- tuplas cuyos valores, sustituidos por las correspondientes variables libres en el predicado, producen proposiciones que se mantienen cierto, aparecen en la relación.

El término esquema de relación se refiere a un encabezado emparejado con un conjunto de restricciones definidas en términos de ese encabezado. Por tanto, una relación puede verse como una instanciación de un esquema de relación si tiene el encabezado de ese esquema y satisface las restricciones aplicables.

A veces, se considera que un esquema de relación incluye un nombre. Por 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 .

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

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

Ejemplos de

A continuación se muestra un ejemplo de una relación que tiene tres atributos con nombre: 'ID' del dominio de números enteros y 'Nombre' y 'Dirección' del dominio de cadenas :

ID (entero) Nombre (cadena) Dirección (cadena)
102 Yonezawa Akinori Naha, Okinawa
202 Nilay Patel Sendai, Miyagi
104 Murata Makoto Kumamoto, Kumamoto
152 Matsumoto Yukihiro Okinawa, Okinawa

Un predicado para esta relación, utilizando los nombres de los atributos para denotar variables libres, podría ser "El número de identificación del empleado se conoce como Nombre y vive en la dirección ". El examen de la relación nos dice que solo hay cuatro tuplas para las que el predicado es verdadero. Entonces, por ejemplo, el empleado 102 es conocido solo por ese nombre, Yonezawa Akinori, y no vive en ningún otro lugar excepto en Naha, Okinawa. Además, aparte de los cuatro empleados que se muestran, no hay ningún otro empleado que tenga un nombre y 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á por encima de la tupla de 'Matsumoto Yukihiro'", ni se puede decir "La tupla de ' Yonezawa Akinori 'es la primera tupla ". Un comentario similar se aplica a las filas de una tabla SQL.

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

Variables de relación

Una base de datos relacional consta de variables de relación con nombre (relvars) con el propósito de actualizar la base de datos en respuesta a cambios en el mundo real. Una actualización de un solo relvar hace que el cuerpo de la relación asignada a esa variable sea reemplazado por un conjunto diferente de tuplas. Los 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 se las conoce por la vista 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 la variable de relación base.

Una vista puede definirse mediante una expresión utilizando los operadores del álgebra relacional o el cálculo relacional . Tal expresión opera en una o más relaciones y cuando se evalúa produce otra relación. El resultado a veces se denomina relación "derivada" cuando los operandos son relaciones asignadas a variables de base de datos. Una vista se define dando un nombre a dicha expresión, de modo que el nombre pueda usarse posteriormente como nombre de variable. (Tenga en cuenta que la expresión debe mencionar al menos una variable de relación base).

Mediante el uso de un lenguaje de definición de datos (DDL), es capaz de definir variables de relación base. En SQL, la CREATE TABLEsintaxis se usa para definir tablas base. Lo siguiente es 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, la CREATE VIEWsintaxis se usa para definir una variable de relación derivada. Lo siguiente es un ejemplo.

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

Ver también

Referencias