Buscar..


Visión general

El álgebra relacional no es un lenguaje SQL completo, sino una forma de obtener una comprensión teórica del procesamiento relacional. Como tal, no debería hacer referencias a entidades físicas como tablas, registros y campos; debe hacer referencias a construcciones abstractas tales como relaciones, tuplas y atributos. Dicho esto, no usaré los términos académicos en este documento y me atendré a los términos legos más conocidos: tablas, registros y campos.

Un par de reglas de álgebra relacional antes de comenzar:

  • Los operadores utilizados en el álgebra relacional trabajan en tablas enteras en lugar de registros individuales.
  • El resultado de una expresión relacional siempre será una tabla (esto se denomina propiedad de cierre )

A lo largo de este documento me referiré a las siguientes dos tablas:

Tablas de Ejemplo

SELECCIONAR

El operador de selección devuelve un subconjunto de la tabla principal.
seleccione <tabla> donde <condición>

Por ejemplo, examine la expresión:

seleccione People donde DepartmentID = 2

Esto se puede escribir como:
introduzca la descripción de la imagen aquí

Esto resultará en una tabla cuyos registros comprenden todos los registros en la tabla de Personas donde el valor de ID de Departamento es igual a 2:
introduzca la descripción de la imagen aquí

Las condiciones también se pueden unir para restringir aún más la expresión:

seleccione People donde StartYear> 2005 y DepartmentID = 2

resultará en la siguiente tabla:
introduzca la descripción de la imagen aquí

PROYECTO

El operador del proyecto devolverá valores de campo distintos de una tabla.
proyecto <tabla> sobre <lista de campos>

Por ejemplo, examine la siguiente expresión:
proyecto People over StartYear

Esto se puede escribir como:
introduzca la descripción de la imagen aquí

Esto dará como resultado una tabla que comprende los valores distintos mantenidos dentro del campo Inicio de año de la tabla Personas .
introduzca la descripción de la imagen aquí

Los valores duplicados se eliminan de la tabla resultante debido a la propiedad de cierre que crea una tabla relacional: todos los registros en una tabla relacional deben ser distintos.

Si la lista de campos comprende más de un solo campo, la tabla resultante es una versión distinta de estos campos.
proyecto People over StartYear, DepartmentID devolverá:
introduzca la descripción de la imagen aquí
Se eliminó un registro debido a la duplicación de 2006 StartYear y 1 DepartmentID .

DAR

Las expresiones relacionales se pueden encadenar al nombrar las expresiones individuales usando la palabra clave dar o mediante la incorporación de una expresión dentro de otra.

<expresión de álgebra relacional> dando <nombre de alias>

Por ejemplo, considera las siguientes expresiones:
seleccione Personas donde DepartmentID = 2 dando A
proyecto A sobre PersonName dando B

Esto dará como resultado la tabla B a continuación, siendo la tabla A el resultado de la primera expresión.
introduzca la descripción de la imagen aquí

La primera expresión se evalúa y la tabla resultante recibe el alias A. Esta tabla se usa dentro de la segunda expresión para obtener la tabla final con un alias de B.

Otra forma de escribir esta expresión es reemplazar el nombre de alias de la tabla en la segunda expresión con el texto completo de la primera expresión entre paréntesis:
proyecto ( seleccione People donde DepartmentID = 2) sobre PersonName dando B

Esto se llama una expresión anidada .

Unirse natural

Una combinación natural une dos tablas usando un campo común compartido entre las tablas.

unirse a <tabla 1> y <tabla 2> donde <campo 1> = <campo 2>
suponiendo que <field 1> está en <table 1> y <field 2> está en <table 2>.

Por ejemplo, la siguiente expresión de unión se unirá a personas y departamentos según las columnas ID de departamento e ID en las tablas respectivas:
unirse a las personas y departamentos donde DepartmentID = ID

introduzca la descripción de la imagen aquí

Tenga en cuenta que solo se muestra DepartmentID de la tabla Personas y no ID de la tabla Departamento . Solo se debe mostrar uno de los campos que se comparan, que generalmente es el nombre del campo de la primera tabla en la operación de unión.

Aunque no se muestra en este ejemplo, es posible que unir tablas puede dar como resultado que dos campos tengan el mismo encabezado. Por ejemplo, si hubiera utilizado el encabezamiento de nombre para identificar los campos a PERSONNAME y Dept (es decir, para identificar el nombre de la persona y el nombre del departamento). Cuando surge esta situación, usamos el nombre de la tabla para calificar los nombres de los campos usando la notación de puntos: People.Name y Departments.Name

la combinación combinada con la selección y el proyecto se pueden usar juntas para obtener información:

únete a las personas y departamentos donde DepartmentID = ID da A
seleccione A donde StartYear = 2005 y Dept = 'Producción' dando B
proyecto B sobre PersonName dando C

o como una expresión combinada:

proyecto ( seleccione ( unirse a Personas y Departamentos donde DepartmentID = ID) donde StartYear = 2005 y Dept = 'Producción') sobre PersonName dando C

Esto dará lugar a esta tabla:
introduzca la descripción de la imagen aquí

ALIAS

DIVIDIR

UNIÓN

INTERSECCIÓN

DIFERENCIA

ACTUALIZACIÓN (: =)

VECES



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow