Você está na página 1de 20

Modelos Lógicos

• Modelo Relacional Puro • Modelo Objeto-Relacional

28/4/2010

Especialização em Engenharia de Software da UECE - Disciplina: BD

1

Modelo Relacional Puro
• • • • Conceitos Álgebra Relacional Crítica do Modelo Relacional Exercícios

28/4/2010

Especialização em Engenharia de Software da UECE - Disciplina: BD

2

Exemplo: Cerveja(nome. Você BudLite A. chaves e outras restrições. Boêmia Ambev …Cerveja… • Esquema de relação = nome(atributos) + outras informações estruturais. fab) • Instância de relação é o conjunto corrente de linhas de um esquema de relação • Esquema de BD Relacional = conjunto de esquemas de relação • BD Relacional = conjunto de instâncias de relação 28/4/2010 Especialização em Engenharia de Software da UECE .B. p. nome fab • Linha = tupla fab deve conter WinterBrew Pete’s apenas códigos.e. aprenderá por quê..Disciplina: BD 3 .Conceitos • Tabela = relação = conjunto de tuplas • Cabeçalhos de colunas = atributos Em um bom projeto.

.. An C a r d i n a l i d a d e Atributos a1 a2 a3 b1 b2 a3 a1 c3 b3 . .An) A1 A2 A3 ... x1 v2 d3 Grau an cn bn Tupla Instância wn 28/4/2010 Especialização em Engenharia de Software da UECE ...A2.Esquema = nome_tabela (A1..Disciplina: BD 4 .

. .Disciplina: BD 5 . N1 E1 T7 N1 E2 T1 N1 E3 T1 N2 E1 T1 28/4/2010 Especialização em Engenharia de Software da UECE .Domínio de Relação Cardinalidade da relação Domínios N(nome) E(end) T(el) N E T <=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 .

Principal.• Instância de Relação Nome Endereço Telefone João João Patrícia R. 456 R. 128 R. 123 R. Principal. 456 R. Principal. Secundária.Disciplina: BD 6 . 456 555-2221 555-2221 555-2223 R. 12 555-1235 Qual é a chave da relação? 28/4/2010 Especialização em Engenharia de Software da UECE . Principal. Principal. Principal. 123 555-1234 555-1235 555-1235 Henrique Salete Salete Patrícia R.

Disciplina: BD 7 .Álgebra Relacional • Os operandos das operações são tabelas • Operações unárias ou binárias • Notação SELEÇÃO THETA-JUNÇÃO π PROJEÇÃO X PRODUTO CARTESIANO – DIFERENÇA = JUNÇÃO NATURAL U UNION INTERSEÇÃO 28/4/2010 Especialização em Engenharia de Software da UECE .

Interseção.• União. e Diferença. Como os operadores binários da teoria dos conjuntos • Seleção.de uma maneira bem definida (operação binária) 28/4/2010 Especialização em Engenharia de Software da UECE .não necessariamente diferentes -. Seleciona linhas de uma tabela (operação unária) • Projeção. Seleciona instâncias de colunas de uma tabela (operação unária) • Produto e Junção: Associa duas (instâncias de) tabelas -.Disciplina: BD 8 .

valor) Filial(codFilial. cliente) Fez_Empréstimo(codFilial.Cliente(codCliente. depois Fez_Empréstimo 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 Especialização em Engenharia de Software da UECE . filial) Filial codFilial filial 4 Subúrbio-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. codCliente. data.Disciplina: BD 9 .

se existirem. >. da tabela Filial. somente as linhas das filiais Centro-1 e Subúrbio-4. Corresponde a perguntar Dê-me todas as informações de certas filiais do banco filial = ‘Centro-1’ filial=‘Subúrbio-4’ (Filial) 4 Subúrbio-4 28/4/2010 Especialização em Engenharia de Software da UECE . comparação> [atributo | valor} op. =.Disciplina: BD 10 . ≠. ≥} Exemplo: Selecionar. comparação { <.Seleção: condição (R) A condição é na forma de termos conectados por termo = atributo <op.

Disciplina: BD 11 .Projeção: π i .im são colunas de R Exemplo: Mostrar somente os valores da coluna filial da tabela Filial (Quais as filiais do banco?) πfilial (Filial) Subúrbio-4 Centro-2 28/4/2010 Especialização em Engenharia de Software da UECE ......i (R) 1 m i1....

Produto Cartesiano ( ) R A B C D S E F G R S A B C D E F G 28/4/2010 Especialização em Engenharia de Software da UECE .Disciplina: BD 12 .

C e 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 poderiam ter nomes diferentes Exercício: Qual seria a condição de R 28/4/2010 Especialização em Engenharia de Software da UECE .C S.Theta-Junção: R1 C R2 = condição(R1 Junção Natural: =(R1 R2) R(A B C) S(C D E) T(A B R.Disciplina: BD C S? 13 .C e S.C devem ser compatíveis (mesmo domínio) R.

Você observará que precisa melhorar o resultado 28/4/2010 Especialização em Engenharia de Software da UECE . 4? Cliente.• Um Exemplo de Junção Natural Quais os clientes (seus nomes) que fizeram empréstimos na filial de no.codCliente(Cliente x Fez_Empréstimo) Exercício: Mostre o resultado desta operação de junção natural.codCliente = Fez_Empréstimo.Disciplina: BD 14 .

• Nosso primeiro programa Um programa é uma seqüência de operações de álgebra relacional A saída de uma operação é a entrada da próxima Quais os nomes dos clientes que fizeram empréstimos na filial de no. e comente o resultado 28/4/2010 Especialização em Engenharia de Software da UECE .codCliente(Cliente x Empréstimo) R2:= codFilial = 4(R1) Resultado:= π cliente (R2) Exercício: Faça o teste de mesa.codCliente = Empréstimo.Disciplina: BD 15 . 4? R1:= Cliente.

R.linhap} 28/4/2010 Especialização em Engenharia de Software da UECE .linha1. S. ….linhan.linha1. …. S.linhan} R S = {S. a operação União é feita sobre tabelas intermediárias de programas Interpretação visual: coloca S ‘embaixo’ de R.União: (R S) Exige a compatibilidade de R e S: colunas respectivas com mesmos domínio e semântica Em geral.linhap} S = {R.linha1. S.Disciplina: BD 16 . …. R. salvo que não pode haver linhas repetidas (Por quê?) R = {R. ….linha1.

a operação Diferença é feita sobre tabelas intermediárias de programas R = {R.linha1.Diferença: (R S) Exige a compatibilidade de R e S Em geral. …. R.linhan} R S = {S.linha1.linhap} S = O conjunto das linhas de R que não são linhas de S 28/4/2010 Especialização em Engenharia de Software da UECE . S. ….Disciplina: BD 17 .

….linha1.Interseção: (R S) Exige a compatibilidade de R e S Em geral.linhap} S = O conjunto das linhas comuns de R e S 28/4/2010 Especialização em Engenharia de Software da UECE . ….linhan} R S = {S. R. a operação Interseção é feita sobre tabelas intermediárias de programas R = {R. S.Disciplina: BD 18 .linha1.

Crítica do Modelo Relacional • Modelo muito simples – Simplicidade é também 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 padrão de BD 28/4/2010 Especialização em Engenharia de Software da UECE .Disciplina: BD 19 .

para cada filial. Obs: por questão de legibilidade.Exercícios O esquema relacional é o do slide 9 1-) Mostre. códigos não devem ser exibidos 2-) Quais os empréstimos (data e valor) de Ana. na filial Subúrbio-4? 3-) Mostre os empréstimos de Ana. se eles forem maiores do que pelo menos um dos empréstimos de João 28/4/2010 Especialização em Engenharia de Software da UECE .Disciplina: BD 20 . os empréstimos realizados.