DBMS - Joins

Entendemos os benefícios de tomar um produto cartesiano de duas relações, o que nos dá todas as tuplas possíveis que são emparelhadas. Mas pode não ser viável para nós, em certos casos, tomar um produto cartesiano no qual encontramos relações enormes com milhares de tuplas tendo um número considerável de atributos.

Joiné uma combinação de um produto cartesiano seguido de um processo de seleção. Uma operação de junção emparelha duas tuplas de relações diferentes, se e somente se uma determinada condição de junção for satisfeita.

Descreveremos brevemente vários tipos de junção nas seções a seguir.

Theta (θ) Join

A junção Theta combina tuplas de relações diferentes, desde que satisfaçam a condição theta. A condição de junção é denotada pelo símboloθ.

Notação

R1 ⋈θ R2

R1 e R2 são relações com atributos (A1, A2, .., An) e (B1, B2, .., Bn) de forma que os atributos não têm nada em comum, ou seja, R1 ∩ R2 = Φ.

A junção Theta pode usar todos os tipos de operadores de comparação.

Aluna
SID Nome Std
101 Alex 10
102 Maria 11
assuntos
Classe Sujeito
10 Matemática
10 Inglês
11 Música
11 Esportes

Student_Detail -

STUDENT Student.Std = Subject.Class SUBJECT

Student_detail
SID Nome Std Classe Sujeito
101 Alex 10 10 Matemática
101 Alex 10 10 Inglês
102 Maria 11 11 Música
102 Maria 11 11 Esportes

Equijoin

Quando o Theta join usa apenas equalityoperador de comparação, é denominado equijoin. O exemplo acima corresponde a equijoin.

União Natural ( )

A junção natural não usa nenhum operador de comparação. Ele não concatena a maneira como um produto cartesiano o faz. Podemos realizar uma junção natural apenas se houver pelo menos um atributo comum entre duas relações. Além disso, os atributos devem ter o mesmo nome e domínio.

A junção natural atua sobre os atributos correspondentes em que os valores dos atributos em ambas as relações são iguais.

Cursos
CID Curso Departamento
CS01 Base de dados CS
ME01 Mecânica MIM
EE01 Eletrônicos EE
HoD
Departamento Cabeça
CS Alex
MIM Maia
EE Mira
Cursos ⋈ HoD
Departamento CID Curso Cabeça
CS CS01 Base de dados Alex
MIM ME01 Mecânica Maia
EE EE01 Eletrônicos Mira

Junções Externas

Theta Join, Equijoin e Natural Join são chamados de junções internas. Uma junção interna inclui apenas as tuplas com atributos correspondentes e o restante é descartado na relação resultante. Portanto, precisamos usar junções externas para incluir todas as tuplas das relações de participação na relação resultante. Existem três tipos de junções externas - junção externa esquerda, junção externa direita e junção externa completa.

União Externa Esquerda (R S)

Todas as tuplas da relação Esquerda, R, são incluídas na relação resultante. Se houver tuplas em R sem nenhuma tupla correspondente na relação direita S, então os S-atributos da relação resultante são tornados NULL.

Esquerda
UMA B
100 Base de dados
101 Mecânica
102 Eletrônicos
Direito
UMA B
100 Alex
102 Maia
104 Mira
Cursos HoD
UMA B C D
100 Base de dados 100 Alex
101 Mecânica --- ---
102 Eletrônicos 102 Maia

União Externa Direita: (R S)

Todas as tuplas da relação Right, S, são incluídas na relação resultante. Se houver tuplas em S sem nenhuma tupla correspondente em R, então os atributos R da relação resultante são tornados NULL.

Cursos HoD
UMA B C D
100 Base de dados 100 Alex
102 Eletrônicos 102 Maia
--- --- 104 Mira

União externa completa: (R S)

Todas as tuplas de ambas as relações participantes são incluídas na relação resultante. Se não houver tuplas correspondentes para ambas as relações, seus respectivos atributos não correspondentes serão tornados NULL.

Cursos HoD
UMA B C D
100 Base de dados 100 Alex
101 Mecânica --- ---
102 Eletrônicos 102 Maia
--- --- 104 Mira