Sei sulla pagina 1di 20

Modelos Lgicos

Modelo Relacional Puro Modelo Objeto-Relacional

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

Modelo Relacional Puro


Conceitos lgebra Relacional Crtica do Modelo Relacional Exerccios

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

Conceitos
Tabela = relao = conjunto de tuplas Cabealhos de colunas = atributos Em um bom projeto, nome fab Linha = tupla fab deve conter WinterBrew Petes apenas cdigos. Voc BudLite A.B. aprender por qu. Bomia Ambev Cerveja Esquema de relao = nome(atributos) + outras informaes estruturais, p.e., chaves e outras restries. Exemplo: Cerveja(nome, fab) Instncia de relao o conjunto corrente de linhas de um esquema de relao Esquema de BD Relacional = conjunto de esquemas de relao BD Relacional = conjunto de instncias de relao
28/4/2010 Especializao em Engenharia de Software da UECE - Disciplina: BD 3

Esquema = nome_tabela (A1,A2,...,An)

A1 A2 A3 ... An

C a r d i n a l i d a d e

Atributos

a1 a2 a3
b1 b2 a3 a1 c3 b3 . . . x1 v2 d3 Grau

an
cn bn Tupla

Instncia
wn

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

Domnio de Relao

Cardinalidade da relao

Domnios
N(nome) E(end) T(el)

<=5x3x7

N1 E1 T1
N1 E1 T2

N1
N2 N3 N4 N5

E1
E2 E3

T1
T2 T3 T4 T5 T6 T7

N1 E1 T3
. .

N1 E1 T7

N1 E2 T1
N1 E3 T1

N2 E1 T1

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

Instncia de Relao
Nome Endereo Telefone

Joo Joo
Patrcia

R. Principal, 123 R. Principal, 128


R. Principal, 123

555-1234 555-1235
555-1235

Henrique Salete
Salete Patrcia

R. Principal, 456 R. Principal, 456


R. Principal, 456

555-2221 555-2221
555-2223

R. Secundria, 12 555-1235

Qual a chave da relao?


28/4/2010 Especializao em Engenharia de Software da UECE - Disciplina: BD 6

lgebra Relacional
Os operandos das operaes so tabelas

Operaes unrias ou binrias


Notao
SELEO THETA-JUNO

PROJEO
X PRODUTO CARTESIANO DIFERENA

= JUNO NATURAL
U UNION INTERSEO

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

Unio, Interseo, e Diferena. Como os operadores binrios da teoria dos conjuntos Seleo. Seleciona linhas de uma tabela (operao unria) Projeo. Seleciona instncias de colunas de uma tabela (operao unria) Produto e Juno: Associa duas (instncias de) tabelas -- no necessariamente diferentes -- de uma maneira bem definida (operao binria)
28/4/2010 Especializao em Engenharia de Software da UECE - Disciplina: BD 8

Cliente(codCliente, cliente) Fez_Emprstimo(codFilial, codCliente, data, valor) Filial(codFilial, filial)


Filial codFilial filial 4 Subrbio-4 1 Centro-2 Cliente codCliente cliente 100 Saul 130 Ana 110 Fred valor 600 1200 2000 1500

Por que o esquema do BD assim? Veremos a resposta, depois

Fez_Emprstimo codFilial codCliente data 4 110 20/12/09 4 110 19/09/08 1 130 20/12/09 4 100 12/03/10

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

Seleo:

condio (R)

A condio na forma de termos conectados por

termo = atributo <op. comparao> [atributo | valor}


op. comparao { <, =, >, , }

Exemplo: Selecionar, da tabela Filial, somente as linhas das filiais Centro-1 e Subrbio-4, se existirem. Corresponde a perguntar D-me todas as informaes de certas filiais do banco
filial = Centro-1 filial=Subrbio-4 (Filial)

4 Subrbio-4

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

10

Projeo:

i ,...,i (R) 1 m i1,...,im so colunas de R

Exemplo: Mostrar somente os valores da coluna filial da tabela Filial (Quais as filiais do banco?)

filial (Filial) Subrbio-4


Centro-2

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

11

Produto Cartesiano ( )

R
A B C D

S
E F G

A B C D E F G

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

12

Theta-Juno: R1 C R2 = condio(R1 Juno Natural: =(R1 R2)


R(A B C) S(C D E) T(A B R.C S.C D E) 13 5 211 1 3 5 1 22 24 6 122 1 3 5 3 34 35 7 334 1 3 5 4 43 46 8 443 2 4 6 3 34 2 4 6 4 43 3 5 7 4 43

R2)

R.C e S.C devem ser compatveis (mesmo domnio) R.C e S.C poderiam ter nomes diferentes Exerccio: Qual seria a condio de R
28/4/2010 Especializao em Engenharia de Software da UECE - Disciplina: BD

S?
13

Um Exemplo de Juno Natural


Quais os clientes (seus nomes) que fizeram emprstimos na filial de no. 4? Cliente.codCliente = Fez_Emprstimo.codCliente(Cliente x Fez_Emprstimo) Exerccio: Mostre o resultado desta operao de juno natural. Voc observar que precisa melhorar o resultado

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

14

Nosso primeiro programa


Um programa uma seqncia de operaes de lgebra relacional
A sada de uma operao a entrada da prxima

Quais os nomes dos clientes que fizeram emprstimos na filial de no. 4? R1:= Cliente.codCliente = Emprstimo.codCliente(Cliente x Emprstimo) R2:= codFilial = 4(R1) Resultado:= cliente (R2)
Exerccio: Faa o teste de mesa, e comente o resultado

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

15

Unio: (R

S)

Exige a compatibilidade de R e S: colunas respectivas com mesmos domnio e semntica Em geral, a operao Unio feita sobre tabelas intermedirias de programas
Interpretao visual: coloca S embaixo de R, salvo que no pode haver linhas repetidas (Por qu?) R = {R.linha1, , R.linhan} R S = {S.linha1, , S.linhap}

S = {R.linha1, , R.linhan, S.linha1, , S.linhap}

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

16

Diferena: (R

S)

Exige a compatibilidade de R e S
Em geral, a operao Diferena feita sobre tabelas intermedirias de programas

R = {R.linha1, , R.linhan}
R

S = {S.linha1, , S.linhap}

S = O conjunto das linhas de R que no so linhas de S

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

17

Interseo: (R

S)

Exige a compatibilidade de R e S
Em geral, a operao Interseo feita sobre tabelas intermedirias de programas

R = {R.linha1, , R.linhan}
R

S = {S.linha1, , S.linhap}

S = O conjunto das linhas comuns de R e S

28/4/2010

Especializao em Engenharia de Software da UECE - Disciplina: BD

18

Crtica do Modelo Relacional


Modelo muito simples
Simplicidade tambm uma desvantagem: o mundo real complexo
Necessidade de modelar o mundo real com um modelo conceitual
Esquema Conceitual

Transformador

Esquema Relacional + Regras de Integridade

Modelo da SQL, a linguagem padro de BD


28/4/2010 Especializao em Engenharia de Software da UECE - Disciplina: BD 19

Exerccios
O esquema relacional o do slide 9 1-) Mostre, para cada filial, os emprstimos realizados. Obs: por questo de legibilidade, cdigos no devem ser exibidos 2-) Quais os emprstimos (data e valor) de Ana, na filial Subrbio-4? 3-) Mostre os emprstimos de Ana, se eles forem maiores do que pelo menos um dos emprstimos de Joo
28/4/2010 Especializao em Engenharia de Software da UECE - Disciplina: BD 20

Potrebbero piacerti anche