Sie sind auf Seite 1von 10

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

lgebra relacional
Origem: Wikipdia, a enciclopdia livre.

ndice
1 Introduo 2 Operadores Primitivos 2.1 Operaes de Conjuntos 2.2 Projeo () 2.3 Seleo () 2.3.1 Seleo e cruzamento de produto 2.4 Renomear () 3 Junes e operaes com as junes 3.1 Juno natural () 3.2 Anti-juno 3.3 Outer Joins 3.3.1 Left Outer Join 3.3.2 Right Outer Join 3.3.3 Outer Join 4 Operaes para o domnio computacional 4.1 Operao de Agregao 5 Limitao da lgebra relacional 6 Uso das propriedades algbricas para optmizao de consultas 6.1 Seleo 6.1.1 Propriedades bsicas de seleo 6.1.2 Quebrando selees com condies complexas 6.1.3 Seleo e produto cartesiano 6.1.4 Seleo e operadores de conjuntos 6.1.5 Seleo e projeo 6.2 Projeo 6.2.1 Propriedades bsicas da projeo 6.2.2 Projeo e operadores de conjuntos 6.3 Renomear 6.3.1 Propriedades bsicas de renomear 6.3.2 Renomear e operaes de conjuntos 7 Implementaes 8 Referncias 9 Ligaes externas 10 Referncias

Introduo
A lgebra Relacional uma linguagem de consulta formal, porm procedimental, ou seja, o usurio d as instrues ao sistema para que o mesmo realize uma seqncia de operaes na base de dados para calcular o resultado desejado. Na terminologia formal de modelo relacional: Uma linha chamada de tupla O cabealho da coluna chamado de atributo Tabela chamada de relao O tipo de dados que descreve os tipos de valores que podem aparecer em cada coluna chamado de domnio A lgebra relacional uma forma de clculo sobre conjuntos ou relaes.

1 de 10

01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

H seis operaes fundamentais na lgebra relacional. Estas operaes so: seleo, projeo, renomear, produto cartesiano, unio e diferena entre conjuntos. Todas essas operaes produzem uma nova relao como seu resultado. Em adio s operaes fundamentais h outras de uso comum que so frequentemente utilizadas: interseo de conjuntos, juno natural, diviso e juno theta. Uma aplicao prtica da lgebra relacional na execuo de consultas a bancos de dados relacionais. Por essa razo, foram criadas novas operaes, denominadas estendidas, que so: Eliminao de duplicatas, ordenao, agrupamento e agregao e juno externa. As lgebras relacionais recebiam pouca ateno at a publicao do modelo relacional de dados de E.F Codd, em 1970. Codd props tal lgebra como uma base para linguagens de consulta em banco de dados. A lgebra relacional tem poder de expresso essencialmente equivalente ao do clculo relacional (tambm ao da Lgica de primeira ordem); esse resultado conhecido como teorema de Codd. Algum cuidado, porm, deve ser tomado para evitar divergncia que pode surgir entre as duas linguagens, j que a negao, aplicada a frmula do clculo, constri uma frmula que pode ser verdadeira em um grupo infinito de tuplas possveis, enquanto o operador de diferena da lgebra relacional retorna um resultado finito. Para sobrepor essas dificuldades, Codd restringiu os operados da lgebra relacional somente para relaes finitas, e tambm props uso restrito da negao (NOT) e disjuno (OR). Analogamente restries so encontradas em muitas outras linguagens de computao baseadas em lgica. Codd definiu o termo completeza relacional para referir uma linguagem que completa no que diz respeito a calculo de predicados de primeira ordem parte das restries por ele propostas. Na prtica as restries no tem efeito adverso na aplicabilidade da lgebra relacional para propsitos de banco de dados.

Operadores Primitivos
Como em qualquer lgebra, alguns operadores so primitivos e os outros, que so descritos em termos dos primitivos, so definidos como derivados. til que a escolha dos operadores paralelos primitivos faa uso dos operadores lgicos primitivos. Embora seja sabido que na lgica do E, OU e NO a escolha um pouco arbitrria, Codd usou de escolha semelhantes para a sua lgebra. Os seis operadores primitivos de Codd na lgebra so o de seleo, projeo, produto cartesiano(tambm chamado de produto cruz ou juno cruz), unio, diferena e renomeao. (Na verdade, Codd omite o renomear, para proceder, mas a sua incluso foi mostrada pelos inventores da ISBL.) Estes seis operadores so fundamentais no sentido de que nenhum deles pode ser omitido sem perder poder expressivo. Muitos outros operadores foram definidos em termos destes seis. Entre os mais importantes so interseo, diviso e o natural join. Na verdade a ISBL fez a substituio do produto cartesiano pelo natural join, dado que o produto cartesiano um caso degenerado. Ao todo, os operadores da lgebra relacional tm potncia expressiva idntica de calculo de domnio relacional ou calculo de tuplas relacionais. No entanto, pelas razes apontadas na introduo acima, a lgebra relacional tem estritamente menos expressiva do que o poder da lgica de primeira ordem sem funo smbolos. lgebra relacional efectivamente corresponde a um subconjunto da lgica de primeira ordem que a clusula de horn sem recurso e negao

Operaes de Conjuntos Projeo ()


A projeo uma operao unria escrita como onde um conjunto de atributos. O

resultado de tal projeo definida como conjunto que obtido quando todas as enuplas em R so restritas ao conjunto .

Seleo ()
Uma seleo generalizada uma operao unria escrita como onde uma frmula proposicional que consiste de atoms como permitido na seleo normal e operadores lgicos (e), (ou) e (negao). Esta seleo

2 de 10

01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

seleciona todas as tuplas em R para cada Seleo e cruzamento de produto

Cruzamento de produto o de maior custo de operao para avaliar. Se a entrada de relao tem N e M linhas, o resultado ir conter NM linhas. Portanto isso muito importante para ter um menor tamanho de ambos os operadores antes de ser aplicado o operador de cruzamento de produto. Isso pode ser feito de forma eficaz, se o cruzamento de produto for seguido de um operador de seleo, ex. A(R

P). Considerando a definio de seleo, isto o caso mais provvel. Se o cruzamento de produto no for seguido de
um operador de seleo, podemos tentar descer at um nvel mais baixo a partir de nveis mais altos da rvore de expresses usando outra regra de seleo. No caso acima quebramos a condio A introduzindo a condio B, C e D usando regras de diviso sobre complexas condies de seleo, de modo que A = B

D e B somente contm atributos de R, C contm atributos somente de P e D contm partes de A que contm os atributos tanto de R como de P. Observe que B, C ou D podem ser
possvelmente vazios. Depois os seguintes detm:

Renomear ()
Renomear uma operao unria escrita como a / b(R) onde o resultado idntico ao R exceto que o campo b em todas as tuplas renomeado para um campo a. Isto simplesmente usado para mudar o nome do atributo de uma relao ou a relao em si.

Junes e operaes com as junes


Juno natural ( )
Juno natural uma operao binria que escrita como (R S) onde R e S so relaes.[1] O resultado da juno natural uma tabela com todas as combinaes das tuplas em R e S que seu atributos em comum so iguais. Por exemplo, considerando as tabelas Empregado e Departamento e sua juno natural:

Empregado Nome EmpId DeptNome Harry Sally 3415 2241 Finanas Vendas Finanas Vendas

Departamento DeptNome Gerente Finanas Vendas Produo George Harriet Charles

Empregado Departamento Nome EmpId DeptNome Gerente Harry Sally 3415 2241 Finanas Vendas Finanas Vendas George Harriet George Harriet

George 3401 Harriet 2202

George 3401 Harriet 2202

Isso tambm pode ser usado para definir as composio das relaes. Na teoria das categorias, a juno , precisamente, o produto fibrado. A juno natural , indiscutivelmente, uma das mais importante operaes visto que ela a contraparte relacional do E lgico. Observe com ateno que se as mesmas variveis forem utilizadas nos dois predicados que so conectados pelo

3 de 10

01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

E, ento essa varivel representa a mesma coisa e ambas as aparncias sempre devem ser substitudas pelo mesmo valor. Particularmente, juno natural permite a combinao de relaes que so associados por uma chave estrangeira. No exemplo a seguir, provavelmente existe uma chave estrangeira em Empregado.DeptNome para Departamento.DeptNome e ento a juno natural de Empregado e Departamento combina todos os empregados com seus departamentos. Note que isso funciona, porque a chave estrangeira detm os atributos de mesmo nome. Se esse no for o caso, como em uma chave estrangeira de Departamento.Gerente para Empregado.nmero-emp, deve-se, ento, renomear essas colunas antes de fazer a juno natural. Essa , as vezes, uma equijoin (veja -join). Mais formalmente, a semntica da juno natural definida como segue:

onde p um predicado que verdadeiro para uma relao binria r Se e somente se r uma relao funcional binria. Normalmente, necessrio que R e S tenham, pelo menos, um atributo em comum, mas se essa restrio omitida, ento a juno natural torna-se, exatamente, o produto cartesiano. A juno natural pode ser simulada com Codd's primitives, como segue. Supoem-se que b1,,bm so nomes de atributos comuns em R, S, a1,,an so os atributos de nome nico de R e c1,,ck so os atributos de nome nico de S. Alm disso, assume-se que os nomes dos atributos d1,,dm no so nem de R ou de S. Primeiramente, ns podemos mudar, agora, o nome do atributo em comum em S:

Ento toma-se o produto cartesiano e faz-se a seleo as tuplas que devem ser ligadas:

Finalmente, pegue a projeo para se livrar dos atributos renomeados:

Anti-juno
A antijuno, escrito como R S onde R e S so relaes, similar juno natural, mas o resultado de uma antijuno apenas aquelas tuplas em R para as quais NO existe uma tupla em S que possua os mesmos nomes de atributos. Por exemplo, considerando as tabelas Empregado e Departamento e sua antijuno:

Empregado Nome EmpId DeptNome Harry Sally 3415 2241 Finanas Vendas Finanas Produo

Departamento DeptNome Gerente Vendas Produo Harriet Charles

Empregado Departamento Nome EmpId DeptNome Harry 3415 Finanas Finanas George 3401

George 3401 Harriet 2202

A antijuno formalmente definida como segue: R ou R S={t:t R, no existe uma tupla s de S que satisfaz fun (t s) } S={t:t R s S : fun (t s) }

4 de 10

01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

onde fun(r) est definida como na juno natural. A antijuno tambm pode ser definida como o complemento da semi-juno, como segue: R S=R-R S

Sendo assim, a antijuno s vezes chamada de anti-semi-juno, e o operador de antijuno s vezes escrito como um smbolo da semi-juno com uma barra acima, ao invs de .

Outer Joins
Considerando que o resultado de um join (ou inner join) consiste em combinar tuplas correspondentes nos dois operandos, um outer join contm essas tuplas e mais algumas formadas pelo "enchimento" dos valores que no casam em um operador com cada atributo do outro operador. Os operadores definidos nessa seo assumem que existe um valor null(), que no definem, para ser utilizado para o "enchimento" de valores. No se deve assumir que o NULL definido para a linguagem SQL, nem que o uma marca em vez de um valor. Trs operadores outer join so definidos: left outer join, rigth outer join, e full outer join. (Algumas vezes a palavra outer omitida.) Left Outer Join O left outer join escrito comoR =X S onde R e S so relaes. O resultado do left join o conjunto de todas as combinaes das tuplas em R e S que seus atributos em comum so iguais , alm disso, tuplas em R que no tem correspondencia em S. Por exemplo considere as tabelas Empregado e Departamento e seu left outer join:

Empregado Nome EmpId DeptNome Harry Sally 3415 2241 Finanas Vendas Finanas Vendas Executivo

Departamento DeptNome Gerente Vendas Produo Harriet Charles

Empregado =X Departamento Nome EmpId DeptNome Gerente Harry Sally 3415 2241 Finanas Vendas Finanas Vendas Harriet Harriet

George 3401 Harriet 2202 Tim 1123

George 3401 Harriet 2202 Tim 1123

Executivo

Na relao resultante, tuplas em S que no tem valores com os mesmos nomes de atributos com tuplas em R recebem um valor null, . Dado que no existem tuplas em Departamento com DeptNome igual a Finanas ou Executivo, s aparecem na relao resultante onde tuplas em DeptNome tem Finanas ou Executivo. Sendo r1, r2, , rn atributos da relao R e {(, , )} os nicos atributos que so unique para a relao S (aqueles que no so atributos de R). Ento o left outer join pode ser excrito em termos do natural join(utilizando operadores bsicos) como segue:

Right Outer Join Se comporta da mesma maneira que o anterios, s que os buracos da tabela so comutados.

5 de 10

01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

O right outer join das relaes R e S escrito como R X= S. O resultado do right join o conjunto de todas as combinaes das tuplas em R e S que seus atributos em comum so iguais, alm disso, tuplas em S que no possuem correspondnca com tuplas em R. Por exemplo considere as tabelas Empregado e Departamento e seu right outer join:

Empregado Nome EmpId DeptNome Harry Sally 3415 2241 Finanas Vendas Finanas Vendas Executivo

Departamento DeptNome Gerente Vendas Produo Harriet Charles

Empregado X= Departamento Nome EmpId DeptNome Gerente Sally 2241 Vendas Vendas Produo Harriet Harriet Charles Harriet 2202

George 3401 Harriet 2202 Tim 1123

Na relao resultante, tuplas em R que no tem valores com os mesmos nomes de atributos com tuplas em S recebem um valor null, . Dado que no existem tuplas em Empregado com DeptNome igual a Produo, s aparecem na relao resultante onde tuplas em DeptNome tem tuplas com Produo. Sendo s1, s2, , sn atributos da relao S e {(, , )} os nicos atributos que so unique para a relao R (aqueles que no so atributos de S). Ento, como no left join, o right outer join pode ser excrito em termos do natural join(utilizando operadores bsicos) como segue:

Outer Join O outer join ou full outer join combina os efeitos dos resultados do left e do rigth outer joins. O full outer join escrito como R =X= S onde R e S so relaes. O resultado do full outer join o conjunto de todas as combinaes em R e S que so iguais em seus atributos com nomes iguais, alm de tuplas em S que no possuem casamento com tuplas em R e tuplas em R que no possuem casamento com tuplas em S em seus atributos com nomes iguais. Por exemplo, considere as tabelas Empregado e Departamento e o outer join:

Empregado Nome EmpId DeptNome Harry Sally 3415 2241 Finanas Vendas Finanas Vendas Executivo

Departamento DeptNome Gerente Vendas Produo Harriet Charles

Empregado =X= Departamento Nome EmpId DeptName Gerente Harry Sally 3415 2241 Finanas Vendas Finanas Vendas Produo Harriet Harriet Charles

George 3401 Harriet 2202 Tim 1123

George 3401 Harriet 2202 Tim 1123

Executivo

Na relao resultante, tuplas em R que no tm valores em comum nos nomes dos atributos com as tuplas em S

6 de 10

01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

recebem um valor null", . Tuplas em S que no tm valores em comum nos nomes dos atributos com as tuplas em S tambm recebem um valor null", . O full outer join pode ser simulado usando o left e o rigth outer joins (e, conseqentemente, o natural join e unio) como segue: R=X=S = (R=XS) (RX=S)

Operaes para o domnio computacional


Operao de Agregao
Existem cinco operaes de agregao que so includas na maioria dos bancos de dados. Esses operadores so Soma, Contagem, Mdia, Mximo e Minimo. Na lgebra relacional, escrito como Exp1,Exp2,Exp3Gfunc1,func2,func3 (Relao). Enquanto um deve especificar a funo a utilizar, as expresses, porm, so opcionais. Vamos assumir que temos uma tabela chamada Conta com trs colunas, a saber Nmero_conta, Nome_ramo e Equilbrio. Queremos encontrar o mximo de equilbrio de cada ramo. Isto realizado por Nome_ramo G Max (Equilbrio) (Conta). Para encontrar o maior saldo de todas as contas, independentemente do ramo, poderamos simplesmente escrever G Max (Equilbrio) (Conta).

Limitao da lgebra relacional


Embora a lgebra relacional parea suficientemente poderosa para a maioria dos efeitos prticos, existem alguns operadores simples e naturais nas relaes que no podem ser expressos pela lgebra relacional. O fecho transitivo de uma relao binria um deles. Dado um domnioD, a relao binria R um subconjunto deDxD. O encerramento transitivo R+de R o menor subconjunto deDxD contendo'R que satisfaz a seguinte condio: x y z ((x,y) R+ (y,z) R+ (x,z) R +)

Isto pode provar que no existe uma expresso de lgebra relacional E(R), tendo R como argumento varivel que produz R+. A prova baseada no fato de que, dada uma expresso relacional E cujo se alegou que E(R) = R+, onde R uma varivel, podemos sempre encontrar uma instncia r de R(e um domnio correspondente d), de modo que E( r) ' r+.

Uso das propriedades algbricas para optmizao de consultas


Banco de dados relacional pode ser representado como uma rvore, onde Os nodos internos so operadores, Folhas so as relaes, Subrvores so sub-expresses; Nosso principal objetivo transformar a expresso de rvores expresses equivalentes de rvores, onde a dimenso mdia das relaes geradas por sub-expresses na rvore so menores do que eram antes da otimizao. Nosso segundo objetivo tentar formar sub-expresses comuns dentro de uma nica consulta, ou se houver mais de uma consulta a ser avaliada, ao mesmo tempo, em todas essas consultas. A lgica subjacente a de que o segundo objetivo o suficiente para computar sub-expresses comuns uma vez, e os resultados podem ser utilizados em todas as consultas que contenham essa sub-expresso. Aqui, apresentamos um conjunto de regras, que podem ser utilizados em tais transformaes.

Seleo
Regras sobre operadores de seleo desempenham papel mais importante na otimizao da busca. Seleo um operador que de forma muito eficaz diminui o nmero de linhas no seu operando, por isso, se ns conseguirmos passar as selees em uma rvore de expresso para as folhas, as relaes internas (geradas por sub-expresses) provavelmente iro encolher.

7 de 10

01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

Propriedades bsicas de seleo Seleo Idempotncia (mltiplas aplicaes de seleo no tem o mesmo efeito adicional alm do primeiro), e comutativa (a ordem que as selees so aplicadas em no tem qualquer efeito sobre o eventual resultado). 1. 2. Quebrando selees com condies complexas Uma seleo cuja condio uma conjuno de condies mais simples equivalente a uma seqncia de selees com as mesmas condies individuais, e a seleo cuja a condio uma disjuno equivalente a uma unio de selees. Essas identidades podem ser usadas para mesclar selees de modo que menos selees precisem de ser avaliadas, ou para dividir-las de modo a que a componente selees possa ser movida ou otimizada separadamente. 1. 2. Seleo e produto cartesiano CProduto cartesiano o operador mais caro de avaliar. Se as relaes de entrada tm N e M linhas, o resultado ir conter NM linhas. Por isso, muito importante fazer o nosso melhor para diminuir o tamanho de ambos os operandos antes de aplicar o operador produto cartesiano Isto pode ser feito eficazmente, se o produto cartesiano seguido por um operador de seleo, por exemplo, (R P). Considerando a definio de join, isto o caso mais provvel. Se o produto cartesiano no seguido por um operador de seleo, podemos tentar empurrar para baixo uma seleo a partir de nveis mais altos da rvore de expresso usando a outra regra de seleo.

Seleo e operadores de conjuntos Seleo distributiva ao longo do setminus, da interseco e unio de operadores. As trs regras seguintes so utilizadas para definir as operaes na rvore de expresso. Note, que no setminus e na interseco operadores, possvel aplicar o operador seleo apenas em um dos operandos aps a transformao. Isso pode fazer sentido nos casos em que um dos operandos pequeno, e os custos gerais da avaliao do operador seleo superam os benefcios de se utilizar uma menor relao como um operando. 1. 2. 3. Seleo e projeo Seleo associativo com projeo se e somente se os campos referenciados na condio da seleo so um subconjunto dos campos na projeo. Fazer a seleo antes da projeo pode ser til se o operando um produto cartesiano ou join. Em outros casos, se a condio da seleo relativamente cara para computar, mover a seleo para fora da projeo pode reduzir o nmero de tuplas que devem ser testadas (desde que a projeo possa produzir menos tuplas devido eliminao de duplicatas).

Projeo
Propriedades bsicas da projeo
8 de 10 01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

Projeo idempotente, de forma que uma srie de (vlido) projees equivalente a projeo extern

Projeo e operadores de conjuntos Projeo distributiva ao longo da diferena, unio e interseco. 1. 2. 3.

Renomear
Propriedades bsicas de renomear Renomear sucessivamente uma varivel pode se desmanchar em um nico renome. Renomear operaes que no possuem variveis em comum pode ser arbitrariamente reordenada, uma com relao a outra, e podem ser aproveitadas para fazer sucessivas renomeaes adjacentes. 1. 2. Renomear e operaes de conjuntos Renomear distributivo sobre a diferena, unio e interseco. 1. 2. 3.

Implementaes
A primeira linguagem de consulta que foi baseada na da lgebra Codd foi ISBL, e este trabalho pioneiro tem sido aclamado por vrias autoridades como tendo mostrado o caminho para tornar a idia de Codd em uma linguagem til. Business System 12 foi uma indstria de vida curta que usava a fora do SGBD relacional que o exemplo seguiu do ISBL. Em 1998, Chris Data e Hugh Darwen props uma linguagem chamada Tutorial D destinado a ser utilizada no ensino de teoria de banco de dados relacional, e sua lnguagem de consulta tambm usa as ideias do ISBL. Rel uma implementao do Tutorial D. Mesmo a linguagem de consulta SQL vagamente baseado em uma lgebra relacional, embora os operandos em SQL (tabelas) no so exatamente as relaes e diversos teoremas teis sobre a lgebra relacional no detm no SQL homlogo (provavelmente em detrimento da optimisers e / ou utilizadores).

Referncias
1. Em Unicode, o smbolo gravata borboleta (U+22C8).

Ligaes externas
RAT, Software Rational Algebra Translator to SQL (http://www.slinfo.una.ac.cr/rat/rat.html) http://www.devmedia.com.br/articles/viewcomp.asp?comp=2663 http://www.inf.puc-rio.br/~melissa/informatica /materias/bd1/material/bd1-modulo2a_Algebra.pdf ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de Banco

9 de 10

01/08/2011 21:59

lgebra relacional Wikipdia, a enciclopdia livre

http://pt.wikipedia.org/wiki/lgebra_relacional

de Dados. So Paulo: Addison Wesley, 2005.

Referncias
Obtida de "http://pt.wikipedia.org/wiki/%C3%81lgebra_relacional" Categoria: lgebra Esta pgina foi modificada pela ltima vez (s) 14h11min de 30 de junho de 2011. Este texto disponibilizado nos termos da licena Atribuio - Partilha nos Mesmos Termos 3.0 No Adaptada (CC BY-SA 3.0); pode estar sujeito a condies adicionais. Consulte as condies de uso para mais detalhes.

10 de 10

01/08/2011 21:59

Das könnte Ihnen auch gefallen