• Nenhum resultado encontrado

Sistemas Críticos. Operadores Relacionais. Alexandre Mota Centro de Informática - UFPE. Sistemas Críticos.

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Críticos. Operadores Relacionais. Alexandre Mota Centro de Informática - UFPE. Sistemas Críticos."

Copied!
33
0
0

Texto

(1)

Alexandre Mota acm@cin.ufpe.br

(2)

Categorias

Operadores de conjuntos: estrutura de tupla de uma relação é irrelevante. Tuplas poderiam ser vistas como átomos

(3)

Três constantes

none conjunto vazio (unária) univ conjunto universo (unária) iden identidade (binária)

(4)

Constantes

Example

Um modelo com dois conjuntos

Name= {(N0), (N1), (N2)}

Addr= {(D0), (D1)}

possui constantes com os seguintes valores none = {}

univ = {(N0), (N1), (N2), (D0), (D1)}

(5)

Operadores de conjuntos + união & interseção − diferença in continência (subconjunto) = igualdade

Podem ser aplicados a qualquer par de relações, desde que tenham a mesma aridade

(6)

Operadores de conjuntos Example Name= {(G0), (A0), (A1)} Alias = {(A0), (A1)} Group= {(G0)} RecentlyUsed = {(G0), (A1)} Alias +Group= {(G0), (A0), (A1)}

Alias &RecentlyUsed= {(A1)}

Name−RecentlyUsed = {(A0)}

RecentlyUsed in Alias resulta em falso

RecentlyUsed in Name resulta em verdadeiro

(7)

Operadores relacionais −> seta (produto) . ponto (junção) [] caixa (junção) ~ transposta ^ fecho transitivo

∗ fecho transitivo reflexivo <: restrição de domínio :> restrição de imagem ++ sobreposição

(8)

Operadores Relacionais - Seta Produto

Definition

O operadorseta produto ou produtop −>qde duas relaçõespe q

é a relação que toma toda combinação de uma tupla depe de q, concatenando-as.

Example

Name= {(N0), (N1)}

Addr= {(D0), (D1)}

Book= {(B0)}

possui constantes com os seguintes valores

Name−> Addr= {(N0,D0), (N0,D0), (N1,D0), (N1,D1)}

Book−>Name−> Addr= {(B0,N0,N0), (B0, N1,N1),} (B0, N2,N2),(B0,D0,D0), (B0,D1,D1)}

(9)

Definition

Para combinar duas tuplas

s1→ s2 → . . . → sm t1 → t2→ . . . → tn

verificamos os átomos sm e t1 casam. Se não, o resultado é vazio (não há junção). Se sim, resulta na tupla que começa com o átomo da primeira tupla e finaliza com os átomos da segunda, omitindo átomo de casamento.

(10)

Operadores Relacionais - Ponto Junção Example Junção de tuplas {(N0,A0)} . {(A0,D0)} = {(N0,D0)} {(N0,D0)} . {(N0,D0)} = {} {(N0,D0)} . {(D1)} = {} {(N0)} . {(N0,D0)} = {(D0)} {(N0,D0)} . {(D0)} = {(N0)} {(B0)} . {(B0,N0,D0)} = {(N0,D0)}

A junçãop.qdas relaçoes pe qé a relação obtida tomando

tomando toda combinação de tupla empe q, incluindo a junção, se existir. A relaçõespeqpodem ter qualquer aridade

(11)

No caso de relações binárias,p.qé a composição relacional padrão

Example

Dada a relaçãoto, que mapeia mensagens em nome, e a relação

address, que mapeia nomes em endereços,

to = {(M0,N0), (M0,N2), (M1,N2), (M2,N3)}

address = {(N0,D0), (N0,D1), (N1,D1), (N1,D2), (N2,D3), (N4,D3)}

a relaçãoto.address mapeia mensagens em endereços

(12)

Operadores Relacionais - Ponto Junção

Sepe qsão funções, p.qtambém é função.

Example

Dada as funções address, user e host

address = {(N0,D0), (N1,D0), (N2,D2)}

user = {(D0,U0), (D1,U1), (D2,U2)}

host = {(D0,H0), (D1,H1), (D2, H2)}

a expressãoaddress.user e address.host são funções que mapeiam um nome em um correspondente e um host, respectivamente,

address.user = {(N0,U0), (N1,U0), (N2,U2)}

(13)

Se sé um conjunto e r uma relação binária, s.r é a imagem do conjunto s sob a relação r

Se xé um escalar e r uma relação binária,x.r é o conjunto de átomos mapeados por x

Para uma função f e um escalar xno seu domínio, x.f é o escalar de f mapeado por x

(14)

Operadores Relacionais - Ponto Junção

Example

Dadas a relação addresse os conjuntos abaixo

address = {(G0,A0), (G0,A1), (A0,D0), (A1, D1)}

Alias = {(A0), (A1)}

Group= {(G0)}

Addr= {(D0), (D1), (D2)} temos as seguintes expressões

Alias.address = {(D0), (D1)}

Group.address = {(A0), (A1)}

address.Group= {}

(15)

Junções de relações de aridade maior são comuns, principalmente na formax.qe q.x, ondex é um escalar eq, uma multi-relação.

Example Dados b = {(B0)} addr = {(B0,N0,D0), (B0,N1,D1), (B1,N2,D2)} então b.addr= {(N0,D0), (N1, D1)}

(16)

Operadores Relacionais - Ponto Junção Example Dados t = {(T1)} addr = {(N0,D0,T0), (N0,D1,T1), (N1,D2,T0), (N1,D2,T1)} então addr.t = {(N0,D1), (N1, D2)}

(17)

Example Dados addr = {(B0,N0,D0,T0), (B0,N0,D1,T1), (B0, N1,D2,T0), (B0, N1,D2,T1), (B1, N2,D3,T0), (B1, N2,D4,T1)} t = {(T1)} b = {(B0)} então b.addr.t = {(N0,D1), (N1,D2)}

(18)

Operadores Relacionais - Caixa Junção

Definition

O operador [] é semanticamente idêntico à junção, mas toma argumentos em ordem diferente e possui precedência diferente. A expressão

e1[e2]

tem o mesmo significado que

e2.e1

Example

Dada a relaçãoaddress e um escalar n, a expressão address[n] é equivalente an.address

O operador . possui mais alta precedência que []. Assim, a.b.c[d] é uma abreviação parad.(a.b.c)

(19)

Example

Dada a relação ternáriaaddr, que associa catálogos, nome e endereços, a expressãob.addr[n] denota o conjunto de endereços associados com o nomenno catálogob. Equivalente an.(b.addr)

(20)

Operadores Relacionais - Transposta

Definition

A transposta~rde uma relação binária r toma a imagem

"espelhada", formando uma nova relação revertendo a ordem dos átomos em cada tupla.

Example

Dada a relaçãoaddress

address = {(N0,D0), (N1,D0), (N2,D2)} a transposta resulta em

(21)

Uma relação binária ésimétrica quando contém a tupla

a −>be também a tuplab −>a. Como restrição relacional temos ~ r in r

O fecho simétricode uma relação r é a menor relação que contém r e é simétrica. É igual a r + ~r

Example

Uma relação connects mapeando hosts para computadores vizinhos seria simétrica se suas conexões fossem bidirecionais

(22)

Operadores Relacionais - Transposta

Alguns fatos úteis

s.~r é igual a r.s

r.~r é a relação que associa dois átomos no domínio da relação r quando mapeiam para um elemento comum. Se r é uma função, r.~r é a relação de equivalência que iguala átomos com a mesma imagem

r.~r in iden estabele quer é injetiva. ~r.r in idendiz que r é funcional

Example

Semaeé a relação que mapeia uma criança em sua mãe, a

expressãomae.~maeé a relação que associa um irmão com outro e consigo mesmo.

(23)

Definition

Uma relação binária é transitiva se, quando contém as tuplas

a −>be b−>c, também contiver a −> c. Em termos relacionais temos: r.r in r

O fecho transitivo de uma relação r, denotado por^ré a menor relação que contém r e a transitividade da mesma

(24)

Operadores Relacionais - Fecho transitivo

Example

Uma relaçãoaddress representando um catálogo com vários níveis e seu fecho transitivo

address = {(G0,A0), (G0,G1), (A0,D0), (G1, D0), (G1, A1), (A1, D1), (A2,D2)} ^address = {(G0,A0), (G0,G1), (A0,D0), (G1,D0) (G1, A1), (A1, D1), (A2,D2) (G0, D0), (G0, A1), (G1,D1) (G0, D1)}

(25)

Uma relação é reflexiva se contém a tuplaa −>a para cada átomoa

Como restrição relacional: iden in r

O fecho transitivo reflexivo, denotado por∗r, é a menor relação que contém r e é tanto transitiva quanto reflexiva

(26)

Operadores Relacionais - Restrições de domínio e imagem

Definition

Os operadores de restrição são usados para filtrar relações a um dado domínio ou imagem.

A expressão s <:r, formada a partir de um conjunto se de uma relação r, contém aquelas tuplas de r que começam com um elemento de s

De forma similar, r :>scontém as tuplas de r que finalizam com um elemento de s

(27)

Example address = {(G0,A0), (G0,G1), (A0,D0), (G1, D0), (G1, A1), (A1, D1), (A2,D2)} Alias = {(A0), (A1), (A2)} Group= {(G0), (G1)} Addr= {(D0), (D1), (D2)} address :>Addr= {(A0,D0), (G1,D0), (A1,D1), (A2,D2)} address :> Alias = {(G0,A0), (G1,A1)} Group<:address= {(G0,A0), (G0,G1), (G1, D0), (G1,A1)}

(28)

Operadores Relacionais - Restrições de domínio e imagem

range(s <:r) =s.r domain(r:>s) = r.s

(29)

Definition

A sobreposiçãop ++qde uma relação ppor uma relaçãoq

assemelha-se à união, exceto pelo fato de que as tuplas deqpodem substituir as tuplas dep, em vez de aumentar o conjunto

(30)

Operadores Relacionais - Sobreposição

Example

Um catálogo representado por duas relações

homeAddress= {(A0, D1), (A1,D2), (A2,D3)}

workAddress = {(A0,D0), (A1,D2)}

O endereço preferido é o do trabalho, se existir, senão o residencial

(31)

A sobreposição pode ser definida em termos de operadores mais simples

(32)

Operadores Relacionais - Sobreposição

Sobreposição é útil para modelar inserções em tipos de dados descritos por mapeamento. Também modela comando de atribuição de programas

Example

Inserção de uma chavek com valorvem um hashmap

m’ =m++k−>v

Example

O ambienteeé uma relação que mapeia variáveis em referências a objetos. O efeito da atribuição

x =y

com variáveis em ambos os lados é

(33)

Example

O comando

x.f =y

ondexe ysão variáveis e f é um atributo (campo) pode ser descrito por

f’ =f++ x.e−>y.e

onde f e f’ representam os valores do atributo f antes e depois da execução do comando

Referências

Documentos relacionados

Ao avaliar o cenário geral de todas as coligações para prefeito é possível considerar que existe um nível razoável de coerência entre os partidos políticos brasileiros, apesar

a cada instante do escalonamento têm prioridade mais alta. Parece haver um consenso de que nenhuma regra de prioridade domina as demais na qualidade das soluções obtidas

Defina o aporte nutricional do paciente e siga as recomendações da Comissão de Controle de Glicemia da Sociedade de Medicina Hospitalar dos EUA quanto ao uso de insulina em

No ´ ultimo cap´ıtulo, o Cap´ıtulo 4, apresentamos duas aplica¸c˜ oes dos produtos tensoriais entre espa¸cos de Banach: a primeira aplica¸c˜ ao relaciona o produto tensorial ao

Neste contexto, os impactos ocasionados pelo uso e manejo na estrutura física do solo, vêm sendo quantificado através de diferentes propriedades físicas do solo, tais como

• Vetorada ou não vetorada: Quando o microprocessador é interrompido, ele desvia para o endereço onde se encontra o serviço adequado para tratar a interrupção.. Se esse endereço

a incorporadora alerta os consumidores para o fato da incorporadora ter firmado contrato de investimento e adiantamento de pagamento de recursos para futura compra e venda com cláusula

Relatou sobre o registro do condomínio e explicou que só não foram transferidas para esse condomínio as partes comuns que ainda estão afetadas.. Ruas, áreas