Professional Documents
Culture Documents
P. Blauth Menezes
blauth@inf.ufrgs.br
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
4 Relaes
Exemplos do cotidiano
parentesco maior ou igual (como estatura de pessoas) igualdade (como de numeros reais) lista telefnica que associa a cada assinante o seu nmero (ou nmeros) de telefone faz fronteira com para um conjunto de pases filas de pessoas para os diversos caixas em um banco
Computao e Informtica
muitas construes so baseadas em relaes ou derivados (funes) algumas so introduzidas na disciplina existem importantes construes que so relaes Banco de Dados Relacional Rede de Petri
4.1 Introduo
So relaes binrias
relacionam dois elementos de cada vez
Def: Relao
Relao (pequena e binria) R de A em B RAB A: domnio, origem ou conjunto de partida de R B: contra-domnio, codomnio, destino ou conjunto de chegada de R
Se a, b R
a relaciona-se com b
Exp: Relao
A = { a }, B = { a, b } e C = { 0, 1, 2 } relao de A em B de A em C, de B em C, etc. A B = { a, a, a, b } relao com origem em A e destino B conjunto de partida A e conjunto de chegada B { a, a } relao de igualdade { 0, 1, 0, 2, 1, 2 } relao de menor de C em C { 0, a, 1, b } uma relao de C em B
Notao para a, b R
aRb
Exp: Relao
A = { a }, B = { a, b } e C = { 0, 1, 2 } Para : P(B) P(B), tem-se que { a } { a, b } Para : C C, tem-se que 0 2 Para =: A A, tem-se que a = a
10
11
Exp: Endorrelao
A um conjunto N, Z, < Q, = P(A), P(R),
12
Diagrama de Venn
elementos relacionados: ligados por setas
A a
B b
C 0 1 2
C 0 1 2
13
14
15
16
17
18
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
19
20
21
22
endorrelao cujo grafo possui dois ou mais arcos distintos com o mesmo nodo origem e destino?
23
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
24
Representao
n linhas m colunas m*n posies ou clulas cada posies contm valor lgico (verdadeiro ou falso) por simplicidade: 0 e 1 representam falso e verdadeiro se ai, bj R linha i e coluna j contm o valor verdadeiro caso contrrio, falso
25
26
{a} 0 1
27
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
28
29
lgebra de relaes
dualidade e composio juntamente com outras operaes unio interseco (exerccio) constituem uma lgebra de relaes lgebra grande coleo de todas as relaes no um conjunto exerccio
30
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes 4.4.1 Relao Dual 4.4.2 Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
31
4.4.1
Relao Dual
32
C 0 1 2
C 0 1 2
C 0 1 2
C 0 1 2
33
34
35
36
>
<
Rop
2
37
{a} 0
{ a,b } 1
38
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes 4.4.1 Relao Dual 4.4.2 Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
39
4.4.2
Composio de Relaes
Em Computao e Informtica
usual representar a composio por ";" ordem inversa R ; S: A C
40
S R A a b c d R B 1 2 3 4 5 S x y z C
41
42
Prova:
(T o S) o R = T o (S o R)
Suponha R: A B, S: B C e T: C D relaes Prova dividida em dois casos (duas continncias) Caso 1. (T o S) o R T o (S o R). Seja a, d (T o S) o R a, d (T o S) o R (b B)(a R b b (T o S) d) (b B)(c C)(a R b (b S c c T d)) (b B)(c C)((a R b b S c) c T d) (c C)(a (S o R) c c T d) a, d T o (S o R) definio composio definio composio associatividade lgica associatividade lgica definio composio
43
44
45
1 0 0 0 1 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 1 1
t11 = (r11 s11) (r12 s21) (r13 s31) (r14 s41) (r15 s51) = (1 1) (0 0) (0 0) (0 0) (0 0) = 1 0 0 0 0 = 1 t23 = (r21 s13) (r22 s23) (r23 s33) (r24 s43) (r25 s53) = (0 0) (0 0) (1 0) (1 0) (0 1) = 0 0 0 0 0 = 0
Matemtica Discreta para Cincia da Computao - P. Blauth Menezes
46
4 Relaes
4.1 4.2 4.3 4.4 4.5 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes 4.5.1 Funcional e Injetora 4.5.2 Total e Sobrejetora 4.5.3 Monomorfismo e Epimorfismo 4.5.4 Isomorfismo 4.6 Banco de Dados Relacional 4.7 Rede de Petri 4.8 Relaes nas Linguagens de Programao
Matemtica Discreta para Cincia da Computao - P. Blauth Menezes
47
48
Noo de dualidade
plenamente explorada no estudo de Teoria das Categorias Teoria das Categorias divide o trabalho pela metade nesta disciplina algumas noes categoriais so introduzidas
49
Isomomorfismo
estabelece uma noo semntica de igualdade portanto, o dual de si mesmo
50
4 Relaes
4.1 4.2 4.3 4.4 4.5 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes 4.5.1 Funcional e Injetora 4.5.2 Total e Sobrejetora 4.5.3 Monomorfismo e Epimorfismo 4.5.4 Isomorfismo 4.6 Banco de Dados Relacional 4.7 Rede de Petri 4.8 Relaes nas Linguagens de Programao
Matemtica Discreta para Cincia da Computao - P. Blauth Menezes
51
4.5.1
Funcional e Injetora
Qual o significado?
52
A B: A B <: C C
Qual o significado?
54
55
Dual Complementar
funcional e injetora conceitos duais no so complementares fcil encontrar exempos de relaes so simultaneamente funcional e injetora no so simultaneamente funcional e injetora
56
4 Relaes
4.1 4.2 4.3 4.4 4.5 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes 4.5.1 Funcional e Injetora 4.5.2 Total e Sobrejetora 4.5.3 Monomorfismo e Epimorfismo 4.5.4 Isomorfismo 4.6 Banco de Dados Relacional 4.7 Rede de Petri 4.8 Relaes nas Linguagens de Programao
Matemtica Discreta para Cincia da Computao - P. Blauth Menezes
57
4.5.2
Total e Sobrejetora
Qual o significado?
58
: A B { 0, a, 1, b }: C B <: C C
Qual o significado?
60
Dual Complementar
total e sobrejetora conceitos duais no so complementares fcil encontrar exempos de relaes so simultaneamente total e sobrejetora no so simultaneamente total e sobrejetora
62
4 Relaes
4.1 4.2 4.3 4.4 4.5 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes 4.5.1 Funcional e Injetora 4.5.2 Total e Sobrejetora 4.5.3 Monomorfismo e Epimorfismo 4.5.4 Isomorfismo 4.6 Banco de Dados Relacional 4.7 Rede de Petri 4.8 Relaes nas Linguagens de Programao
Matemtica Discreta para Cincia da Computao - P. Blauth Menezes
63
4.5.3
Monomorfismo e Epimorfismo
64
Exp: Monorrelao
A = { a }, B = { a, b } e C = { 0, 1, 2 } =: A B A B: A B B C: B C : A B { 0, a, 1, b }: C B <: C C x2: Z Z onde x2 = { x, y Z2 y = x2 }
65
66
67
Exp: Epirrelao
A = { a }, B = { a, b } e C = { 0, 1, 2 } =: A A { 0, a, 1, b }: C B =: A B : A B A B: A B <: C C x2: Z Z onde x2 = { x, y Z2 y = x2 }
68
4 Relaes
4.1 4.2 4.3 4.4 4.5 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes 4.5.1 Funcional e Injetora 4.5.2 Total e Sobrejetora 4.5.3 Monomorfismo e Epimorfismo 4.5.4 Isomorfismo 4.6 Banco de Dados Relacional 4.7 Rede de Petri 4.8 Relaes nas Linguagens de Programao
Matemtica Discreta para Cincia da Computao - P. Blauth Menezes
69
4.5.4
Isomorfismo
Intuitivamente
ir (via relao) e voltar (via sua inversa) sem alterar
70
71
72
73
74
Exp: No Isomorfismo
Sejam A = { 0, 1, 2 }, B = { a, b } e R: A B R = { 0, a, 1, b } R no isomorfismo. Prova por absurdo Suponha que R isomorfismo. Ento, R possui relao inversa S: B A S o R = idA e R o S = idB definio de relao identidade definio de composio absurdo! No existe 2, x em R
75
Exp: Isorrelao
A = { a }, B = { a, b }, C = { 0, 1, 2 } e X conjunto qualquer idB: B B idX: X X { 0, 1, 1, 2, 2, 0 }: C C : A B A B: A B <: C C x2: Z Z onde x2 = { x, y Z2 y = x2 }
76
77
78
conjuntos diferentes
79
80
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
81
Bancos de dados
comuns na grande maioria das aplicaes computacionais de algum porte de razoavel complexidade permite manipular os dados com maior eficncia e flexibilidade atende a diversos usurios garante a integridade (consistncia) dos dados
82
83
Oceania
sia
Semifinais / Final Copa 2002 Brasil Alemanha Brasil Turquia Coria Sul Alemanha
85
Modelo conceitual
modelo abstrato de dados descreve a estrutura de um banco de dados independentemente de implementao usado para o projeto de um banco de dados modelo freqentemente adotado diagrama entidade-relacionamento ou simplesmente diagrama E-R
86
Pas
Continente
Pas
Semifinais Final
87
(0,1)
(1,N)
(1,N) - cada a A est relacionado com, no mnimo 1 e, no mximo N elementos de B (0,1) - cada b B est relacionado com, no mnimo 0 e, no mximo 1 elemento de A
88
A A A A
R R R R
B B B B
89
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
90
Rede de Petri
provavelmente, o modelo do tipo concorrente mais usado em CC
91
Exp:
p2
p1
c1
c2
Canal
B Produtor
Y Consumidor
92
Exp:
nodos: lugares lugares podem conter marcas (tokens) exemplo: um recurso para ser consumido nos lugares A e Y arcos: so transies (quadrados) ou computaes atmicas pode possuir mais de um lugar como origem ou destino a cada lugar origem (destino) associado um valor quantos recursos sero consumidos (produzidos) quando da execuo da transio valor 1 usualmente omitido transio habilitada recursos necessrios esto disponveis nos lugares origem
Matemtica Discreta para Cincia da Computao - P. Blauth Menezes
93
Exp:
execuo de uma transio recursos de cada lugar origem so consumidos recursos de cada lugar destino so produzidos processamento: sucessiva aplicao de computaes atmicas mais de uma transio pode estar habilitada processamento concorrente (se no consomem mesmo recurso)
2 3
2 3
94
p2
p1
c1
c2
Canal
B Produtor
Y Consumidor
Observe que
com origem no lugar A, p1 consome uma marcao p1, com destino no lugar B, produz uma marcao p1, com destino no lugar Canal, produz duas marcaes
95
96
p2
p1
c1
c2
Canal
B Produtor
Y Consumidor
Todos os pares
A, p1, 1 p1, B, 1 p1, Canal, 2 B, p2, 1 p2, A, 1 Canal, c1, 3 Y, c1, 1 c1, X, 1 X, c2, 1 c2, y, 1
97
98
99
D tic tac
60
3600 B
Matemtica Discreta para Cincia da Computao - P. Blauth Menezes
D tic tac
60
3600 B E
101
D tic tac
60
3600 B E
Como seria?
hora: badalada de um cuco nmero da hora (1 ~ 12 horas) nmero de badaladas do cuco
D tic tac
60
3600 B E
103
4 Relaes
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Relao Endorrelao como Grafo Relao como Matriz Relao Dual e Composio de Relaes Tipos de Relaes Banco de Dados Relacional Rede de Petri Relaes nas Linguagens de Programao
104
105
106
107
Exerccio - Implementao
Fazer um pequeno sistema que permita definir relaes tratar construes correlatas como a investigao de seus tipos, clculo da composio de relaes, etc Construa um pequeno sistema em (qq LP) capaz de definir at 6 conjuntos com at 5 elementos cada definir at 5 relaes como matrizes sobre estes conjuntos verificar os tipos de uma relao calcular a relao dual calcular (e armazenar) a composio de duas relaes permitir todas as aes acima sobre a relao resultante
108
109
110