En la teoría de bases de datos relacionales , una relación , como la definió originalmente EF Codd , [1] 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 . No obstante, la definición original de Codd, y contrariamente a la definición habitual en matemáticas, establece que no hay orden en los elementos de las tuplas de una relación. [2] [3] En cambio, cada elemento se denomina valor de atributo . Un atributoes 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 con 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 1 , S 2 , ...., S n . [4] Así, una relación n -ariana 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 las proposiciones que son verdaderas 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. [5] [6] 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 . [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 ( 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 TABLE
sintaxis se utiliza para definir tablas base. Lo siguiente es un ejemplo.
CREAR TABLA Lista_de_personas ( ID INTEGER , Nombre CHAR ( 40 ), Dirección CHAR ( 200 ), CLAVE PRINCIPAL ( ID ) )
El lenguaje de definición de datos (DDL) también se utiliza para definir variables de relación derivadas. En SQL, la CREATE VIEW
sintaxis se usa para definir una variable de relación derivada. Lo siguiente es un ejemplo.
CREAR VISTA List_of_Okinawa_people AS ( SELECCIONAR ID , Nombre , Dirección DE List_of_people DONDE Dirección LIKE '%, Okinawa' )
Ver también
Referencias
- ^ EF Codd (octubre de 1972). "Mayor normalización del modelo relacional de base de datos". Sistemas de base 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, ..., norte.
- ^ CJ Date (mayo de 2005). Base de datos en profundidad . O'Reilly. pag. 42. ISBN 0-596-10012-4.
... las tuplas no tienen un orden de izquierda a derecha para sus atributos ...
- ^ EF Codd (1990). El modelo relacional para la gestión de bases de datos, versión 2 . Addison-Wesley. pag. 3. ISBN 0-201-14192-2.
Una razón 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.
- ^ Codd, Edgar F (junio de 1970). "Un modelo relacional de datos para grandes bancos de datos compartidos" (PDF) . Comunicaciones de la ACM . 13 (6): 377–87. doi : 10.1145 / 362384.362685 .
El término relación se utiliza aquí en su sentido matemático aceptado.
- ^ Jeffrey D. Ullman (1989). Principios de los sistemas de bases de datos y conocimientos . Jeffrey Ullman. págs. 410– . Consultado el 28 de noviembre de 2012 .
- ^ Dennis Elliott Shasha; Philippe Bonnet (2003). Ajuste de la base de datos: principios, experimentos y técnicas de resolución de problemas . Morgan Kaufmann. pag. 124. ISBN 978-1-55860-753-8.
- ^ Peter Rob; Carlos Coronel, Peter Rob (2009). Sistemas de bases de datos: diseño, implementación y gestión . Aprendizaje Cengage. págs. 190–. ISBN 978-1-4239-0201-0. Consultado el 28 de noviembre de 2012 .
- ^ 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-3. Consultado el 28 de noviembre de 2012 .
- ^ Michael F. Worboys (1995). Gis: una perspectiva informática . Taylor y Francis. págs. 57–. ISBN 978-0-7484-0065-2. Consultado el 22 de noviembre de 2012 .
- Fecha, CJ (2004). Una introducción a los sistemas de bases de datos (8 ed.). Addison – Wesley . ISBN 978-0-321-19784-9.