A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Capítulo 2: Modelo relacional

Apresentações semelhantes


Apresentação em tema: "Capítulo 2: Modelo relacional"— Transcrição da apresentação:

1 Capítulo 2: Modelo relacional
© Korth • Silberschatz • Sundarshan

2 Capítulo 2: Modelo relacional
© Korth • Silberschatz • Sundarshan

3 Exemplo de uma relação © Korth • Silberschatz • Sundarshan

4 Estrutura básica Formalmente, dados os conjuntos D1, D2, …. Dn uma relação r é um subconjunto de D1 x D2 x … x Dn Portanto, uma relação é um conjunto de n tuplas (a1, a2, …, an) onde cada ai  Di Exemplo: Se nome_cliente = {Jones, Smith, Curry, Lindsay} rua_cliente = {Main, North, Park} cidade_cliente = {Harrison, Rye, Pittsfield} Então r = { (Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Lindsay, Park, Pittsfield) } é uma relação sobre nome_cliente x rua_cliente x cidade_cliente © Korth • Silberschatz • Sundarshan

5 Tipos de atributo Cada atributo de uma relação possui um nome
O conjunto de valores permitidos para cada atributo é chamado o domínio do atributo Os valores de atributo têm (normalmente) a exigência de serem atômicos; isto é, indivisíveis Nota: valores de atributo de valores múltiplos não são atômicos Nota: valores de atributo compostos não são atômicos O valor especial nulo é um membro de todo domínio O valor nulo causa complicações na definição de muitas operações Iremos ignorar o efeito dos valores nulos em nossa apresentação principal e consideraremos seu efeito mais adiante © Korth • Silberschatz • Sundarshan

6 Esquema de relação A1, A2, …, An são atributos
R = (A1, A2, …, An ) é um esquema de relação Exemplo: Esquema_cliente = (nome_cliente, rua_cliente, cidade_cliente) r(R) é uma relação no esquema de relação R cliente (Esquema_cliente) © Korth • Silberschatz • Sundarshan

7 Instância de relação atributos (ou colunas) tuplas (ou linhas)
Os valores atuais (instância de relação) de uma relação são especificados por uma tabela Um elemento t de r é uma tupla, representada por uma linha em uma tabela atributos (ou colunas) tuplas (ou linhas) © Korth • Silberschatz • Sundarshan

8 Relações são desordenadas
A ordem das tuplas é irrelevante (as tuplas podem estar em uma ordem arbitrária) Exemplo: relação conta com tuplas não ordenadas © Korth • Silberschatz • Sundarshan

9 Banco de dados Um banco de dados consiste em múltiplas relações
As informações sobre uma empresa são divididas em partes, com cada relação armazenando uma parte das informações conta : armazena informações sobre contas depositante : armazena informações sobre que cliente possui que conta cliente : armazena informações sobre clientes Armazenar todas as informações como uma única relação como banco (número_conta, saldo, nome_cliente, ..) resulta em Repetição de informações (por exemplo, dois clientes possuem uma única conta) A necessidade de valores nulos (por exemplo, representar um cliente sem uma conta) Teoria da normalização (Capítulo 7) trata de como projetar esquemas relacionais © Korth • Silberschatz • Sundarshan

10 A relação cliente © Korth • Silberschatz • Sundarshan

11 A relação depositante © Korth • Silberschatz • Sundarshan

12 Chaves Seja K  R K é uma superchave de R se os valores para K são suficientes para identificar uma tupla única de cada relação r(R) possível Com “r possível”, queremos dizer uma relação r que poderia existir na empresa que estamos modelando. Exemplo: {nome_cliente, rua_cliente} e {nome_cliente} são, ambas, superchaves de Cliente, se nenhum cliente puder ter o mesmo nome de outro cliente. K é uma chave candidata se K for mínimo Exemplo: {nome_cliente} é uma chave candidata para Cliente, já que ela é uma superchave (considerando que nenhum cliente pode ter o mesmo nome de outro cliente), e nenhum de seus subconjuntos é uma superchave. Chave primária © Korth • Silberschatz • Sundarshan

13 Linguagens de consulta
Linguagem em que um usuário requisita informações do banco de dados. Categorias de linguagens Procedural Não procedural, ou declarativa Linguagens “puras”: Álgebra relacional Cálculo relacional de tupla Cálculo relacional de domínio Linguagens puras formam base das linguagens de consulta que as pessoas usam. © Korth • Silberschatz • Sundarshan

14 Álgebra relacional Linguagem procedural Seis operadores básicos
seleção:  projeção:  união:  diferença de conjuntos: – produto cartesiano: x renomeação:  Os operadores usam uma ou duas relações como entrada e produzem uma nova relação como resultado. © Korth • Silberschatz • Sundarshan

15 Operação seleção – Exemplo
Relação r A=B ^ D > 5 (r) A B C D 1 5 12 23 7 3 10 A B C D 1 23 7 10 © Korth • Silberschatz • Sundarshan

16 Operação select Notação:  p(r) p é chamado o predicado de seleção
Definida como: p(r) = {t | t  r and p(t)} Onde p é uma fórmula em cálculo proposicional consistindo em termos conectados por:  (and),  (or),  (not) Cada termo pode ser: <atributo> op <atributo> ou <constante> onde op pode ser: =, , >, . <.  Exemplo de seleção:  nome_agência=“Perryridge”(conta) © Korth • Silberschatz • Sundarshan

17 Operação projeção – Exemplo
B C 10 20 30 40 1 2 Relação r: A,C (r) A C 1 2 = © Korth • Silberschatz • Sundarshan

18 Operação projeção Notação:  A1, A2,..., Ak(r)
onde A1, A2 são nomes de atributo e r é um nome relacional. O resultado é definido como a relação de k colunas obtidas excluindo-se as colunas que não estão listadas Linhas duplicadas são removidas do resultado, de modo que as relações sjam conjuntos Exemplo: Para eliminar o atributo nome_agência de conta número_conta, saldo (conta) © Korth • Silberschatz • Sundarshan

19 Operação união – Exemplo
Relações r, s: r  s A B 1 2 3 r s A B 1 2 3 © Korth • Silberschatz • Sundarshan

20 Operação união Notação: r  s Definida como:
r  s = {t | t  r or t  s} Para que r  s seja válido: 1. r e s precisam ser da mesma aridade (o mesmo número de atributos) 2. Os domínios de atributo precisam ser compatíveis (exemplo: 2a coluna de r lida com o mesmo tipo de valores que a 2a coluna de s) Exemplo: encontrar todos os clientes com uma conta ou um empréstimo nome_cliente (depositante)  nome_cliente (tomador) © Korth • Silberschatz • Sundarshan

21 Operação diferença de conjuntos – Exemplo
Relações r, s: r – s A B 1 2 3 r s A B 1 © Korth • Silberschatz • Sundarshan

22 Operação diferença de conjuntos
Notação r – s Definida como: r – s = {t | t  r and t  s} As diferenças de conjunto precisam ser relações compatíveis. r e s precisam ter a mesma aridade os domínios de atributo de r e s precisam ser compatíveis © Korth • Silberschatz • Sundarshan

23 Operação produto cartesiano – Exemplo
Relações r, s r  s A B 1 2 C D 10 20 E a b r s A B 1 2 C D 10 20 E a b © Korth • Silberschatz • Sundarshan

24 Operação produto cartesiano
Notação r x s Definida como: r x s = {t q | t  r and q  s} Considere que os atributos de r(R) e s(S) sejam disjuntos. (Ou seja, R  S = ). Se os atributos de r(R) e s(S) não forem disjuntos, então, o restante precisa ser usado. © Korth • Silberschatz • Sundarshan

25 Composição das operações
Pode construir expressões usando várias operações Exemplo: A=C(r x s) r x s A=C(r x s) A B 1 2 C D   10 20 E a b A B C D E 1 2 10 20 a b © Korth • Silberschatz • Sundarshan

26 Operação renomeação Permite nomear e, portanto, referir-se aos resultados das expressões de álgebra relacional. Permite referir-se a uma relação por mais de um nome. Exemplo:  x (E) retorna a expressão E sob o nome X Se uma expressão de álgebra relacional E tiver aridade n, então x(A1, A2,..., An)(E) retorna o resultado da expressão E com o nome x, e com os atributos renomeados para A1, A2,..., An. © Korth • Silberschatz • Sundarshan

27 Exemplo de banking agência (nome_agência, cidade_agência, ativo)
cliente (nome_cliente, rua_cliente, cidade_cliente) conta (número_conta, nome_agência, saldo) empréstimo (número_empréstimo, nome_agência, quantia) depositante (nome_cliente, número_conta) tomador (nome_cliente, número_empréstimo) © Korth • Silberschatz • Sundarshan

28 Consultas de exemplo Encontre todos os empréstimos de mais de US$ 1200
quantia > 1200 (empréstimo) Encontre o número de empréstimo para cada empréstimo de uma quantia maior que US$ 1200 número_empréstimo (quantia > 1200 (empréstimo)) © Korth • Silberschatz • Sundarshan

29 Consultas de exemplo Encontre os nomes de todos os clientes que têm um empréstimo, uma conta, ou ambos, do banco nome_cliente (tomador)  nome_cliente (depositante) Encontre os nomes de todos os clientes que têm um empréstimo e uma conta no banco nome_cliente (tomador)  nome_cliente (depositante) © Korth • Silberschatz • Sundarshan

30 Consultas de exemplo Encontre os nomes de todos os clientes que têm um empréstimo na agência Perryridge. nome_cliente (nome_agência =“Perryridge” (tomador.número_empréstimo =empréstimo.número_empréstimo(tomador x empréstimo))) Encontre os nomes de todos os clientes que têm um empréstimo na agência Perryridge mas não têm uma conta em qualquer agência do banco. nome_cliente(nome_agência = “Perryridge” (tomador.número_empréstimo = empréstimo. número_empréstimo (tomador x empréstimo))) – nome_cliente (depositante) © Korth • Silberschatz • Sundarshan

31 Consultas de exemplo Encontre os nomes de todos os clientes que têm um empréstimo na agência Perryridge. Consulta 1 nome_cliente (nome_agência =“Perryridge” (tomador.número_empréstimo =empréstimo.número_empréstimo(tomador x empréstimo))) Consulta 2 nome_cliente(empréstimo.número_empréstimo = tomador.número_empréstimo ((nome_agência = “Perryridge” (empréstimo)) x tomador)) © Korth • Silberschatz • Sundarshan

32 Consultas de exemplo Encontre o maior saldo de conta Estratégia: Encontre os saldos que não são o maior Renomeie a relação conta como d de modo que possamos comparar cada saldo de conta com todos os outros Use diferença de conjuntos para encontrar os saldos de conta que não foram encontrados na primeira etapa. A consulta é: saldo (conta)  conta.saldo (conta.saldo < d.saldo (conta d (conta))) © Korth • Silberschatz • Sundarshan

33 Definição formal Uma expressão básica na álgebra relacional consiste em qualquer um dos seguintes: Uma relação no banco de dados Uma relação constante Seja E1 e E2 expressões de álgebra relacional; todas as expressões a seguir são de álgebra relacional: E1  E2 E1 – E2 E1 x E2 p (E1), P é um predicado nos atributos em E1 s(E1), S é uma lista consistindo em alguns dos atributos em E1  x (E1), x é o novo nome para o resultado de E1 © Korth • Silberschatz • Sundarshan

34 Outras operações Definimos operações adicionais que não acrescentam poder à álgebra relacional, mas que simplificam consultas comuns. Interseção de conjuntos Junção natural Divisão Atribuição © Korth • Silberschatz • Sundarshan

35 Operação interseção de conjuntos
Notação: r  s Definida como: r  s = { t | t  r and t  s } Considere: r, s possuem a mesma aridade os atributos de r e s são compatíveis Nota: r  s = r – (r – s) © Korth • Silberschatz • Sundarshan

36 Operação interseção de conjuntos – Exemplo
Relação r, s: r  s A B 1 2 3 r s A B © Korth • Silberschatz • Sundarshan

37 Operação junção natural
Notação: r [SIMBOLO] s Sejam r e s relações nos esquemas R e S respectivamente. Então, r [SIMBOLO] s é uma relação no esquema R  S obtida desta forma: Considere cada par de tuplas tr de r e ts de s. Se tr e ts possuem o mesmo valor em cada um dos atributos em R  S, acrescente uma tupla t ao resultado, onde t possui o mesmo valor de tr em r t possui o mesmo valor de ts em s Exemplo: R = (A, B, C, D) S = (E, B, D) Esquema resultado = (A, B, C, D, E) r [SIMBOLO] s é definido como: r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s)) © Korth • Silberschatz • Sundarshan

38 Operação junção natural – Exemplo
Relações r, s: r [ ] s B 1 3 2 D a b E s A B 1 2 4 C D a b r A B 1 2 C D a b E © Korth • Silberschatz • Sundarshan

39 Operação divisão Notação: r ÷ s
Adequado para consultas que incluem a frase “para todo”. Sejam r e s relações nos esquemas R e S respectivamente, onde R = (A1, …, Am , B1, …, Bn ) S = (B1, …, Bn) O resultado de r  s é uma relação no esquema R – S = (A1, …, Am) r  s = { t | t   R-S (r)   u  s ( tu  r ) } Onde tu significa a concatenação das tuplas t e u para produzir uma única tupla © Korth • Silberschatz • Sundarshan

40 Operação divisão – Exemplo
Relações r, s: r ÷ s: B 1 2 A 3 4 6 s A r © Korth • Silberschatz • Sundarshan

41 Outro exemplo de divisão
Relações r, s: r ÷ s: A B a C D b E 1 3 r s A B a C © Korth • Silberschatz • Sundarshan

42 Operação divisão (cont.)
Propriedade Seja q = r  s Então, q é a maior relação que satisfaz q x s  r Definição em termos da operação de álgebra básica Seja r(R) e s(S) relações e seja S  R r  s = R-S (r ) – R-S ( ( R-S (r ) x s ) – R-S,S(r )) Para ver por quê R-S,S (r) simplesmente reordena atributos de r R-S (R-S (r ) x s ) – R-S,S(r) ) fornece as tuplas t em R-S (r ) tal que, para alguma tupla u  s, tu  r. © Korth • Silberschatz • Sundarshan

43 Operação atribuição A operação atribuição () fornece uma maneira conveniente de expressar consultas complexas Escreva consulta como um programa seqüencial consistindo em uma série de atribuições seguidas de uma expressão cujo valor é exibido como resultado da consulta A atribuição precisa sempre ser feita para uma variável de relação temporária. Exemplo: Escreva r  s como temp1  R-S (r ) temp2  R-S ((temp1 x s ) – R-S,S (r )) result = temp1 – temp2 O resultado à esquerda do  é atribuído à variável de relação à esquerda do . Pode usar variável em expressões subseqüentes. © Korth • Silberschatz • Sundarshan

44 Exemplo de consultas de banco
Encontre o nome de todos os clientes que têm um empréstimo e uma conta no banco. nome_cliente (tomador)  nome_cliente (depositante) Encontre o nome de todos os clientes que têm um empréstimo no banco e descubra a quantia do empréstimo. nome_cliente, número_empréstimo, quantia (tomador [ ] empréstimo) © Korth • Silberschatz • Sundarshan

45 Exemplo de consultas de banco
Encontre todos os clientes que posuem uma conta pelo menos das agências “Downtown” e Uptown”. Consulta 1: nome_cliente(nome_agência = “Downtown” (depositante conta))   nome_cliente (nome_agência = “Uptown” (depositante conta)) Consulta 2: nome_cliente, nome_agência(depositante conta)  temp(nome_agência) ({(“Downtown” ), (“Uptown” )}) Observe que a Consulta 2 usa uma relação constante. © Korth • Silberschatz • Sundarshan

46 Consultas de exemplo Encontre todos os clientes que têm uma conta em todas as agências localizadas na cidade de Brooklyn. nome_cliente, nome_agência(depositante [ ] conta)  nome_agência(cidade_agência = “Brooklyn”(agência)) © Korth • Silberschatz • Sundarshan

47 Operações de álgebra relacional estendidas
Projeção generalizada Funções agregadas Junção externa © Korth • Silberschatz • Sundarshan

48 Projeção generalizada
Estende a operação projeção permitindo que funções aritméticas sejam usadas na lista de projeção. F1, F2,..., Fn(E) E é qualquer expressão de álgebra relacional Cada F1, F2,..., Fn é uma expressão aritmética envolvendo constantes e atributos no esquema de E. Dada a relação info_crédito(nome_cliente, limite, saldo_crédito), descubra quanto mais cada pessoa pode gastar: nome_cliente, limite  saldo_crédito (info_crédito) © Korth • Silberschatz • Sundarshan

49 Funções e operações agregadas
As funções agregadas tomam uma coleção de valores e retornam um único valor como resultado. avg: valor médio min: valor mínimo max: valor máximo sum: soma dos valores count: número de valores Operação agregada na álgebra relacional G1, G2,..., GnGF1(A1), F2(A2),..., Fm(Am)(E) E é qualquer expressão de álgebra relacional G1, G2 …, Gn uma lista de atributos em que agrupar (pode ser vazia) Cada Fi é uma função agregada Cada Ai é um nome de atributo © Korth • Silberschatz • Sundarshan

50 Operação agregada – Exemplo
Relação r: gsum(c) (r) A B C 7 3 10 sum(c ) 27 © Korth • Silberschatz • Sundarshan

51 Operação agregada – Exemplo
Relação conta agrupada por nome_agência: nome_agência G sum(saldo) (conta) nome_agência número_conta soma Perryridge Brighton Redwood A-102 A-201 A-217 A-215 A-222 400 900 750 700 nome_agência sum(saldo) Perryridge Brighton Redwood 1300 1500 700 © Korth • Silberschatz • Sundarshan

52 Funções agregadas (cont.)
O resultado da agregação não possui um nome Pode usar a operação renomeação para fornecer-lhe um nome Para conveniência, permitimos a renomeação como parte da operação agregada nome_agência G sum(saldo) as saldo_soma (conta) © Korth • Silberschatz • Sundarshan

53 Junção externa Uma extensão da operação junção que evita a perda de informações. Calcula a junção e acrescenta ao resultado as tuplas de uma relação que não correspondem às tuplas na outra relação. Usa valores nulos: nulo significa que o valor é desconhecido ou inexistente Todas as comparações envolvendo valores nulos são (grosseiramente falando) falsas por definição. Estudaremos o significado exato das comparações com nulos mais adiante © Korth • Silberschatz • Sundarshan

54 Junção externa – Exemplo
Relação empréstimo Relação tomador © Korth • Silberschatz • Sundarshan

55 Junção externa – Exemplo
Junção interna empréstimo tomador Junção externa esquerda empréstimo tomador número_empréstimo quantia L-170 L-230 3000 4000 nome_funcionário Jones Smith nome_agência Downtown Redwood Jones Smith null número_empréstimo quantia L-170 L-230 L-260 3000 4000 1700 nome_funcionário nome_agência Downtown Redwood Perryridge © Korth • Silberschatz • Sundarshan

56 Junção externa – Exemplo
Junção externa direita empréstimo tomador Junção externa integral empréstimo tomador número_empréstimo quantia L-170 L-230 L-155 3000 4000 null nome_funcionário Jones Smith Hayes nome_agência Downtown Redwood número_empréstimo quantia L-170 L-230 L-260 L-155 3000 4000 1700 null nome_funcionário Jones Smith Hayes nome_agência Downtown Redwood Perryridge © Korth • Silberschatz • Sundarshan

57 Valores nulos É possível que as tuplas tenham um valor nulo, indicado por nulo, para alguns dos seus atributos. nulo significa um valor desconhecido ou que um valor não existe. O resultado de qualquer expressão aritmética envolvendo nulo é nulo. As funções agregadas simplesmente ignoram valores nulos (como na SQL) Para eliminação e agrupamento de duplicatas, nulo é tratado como qualquer outro valor e dois nulos são considerados iguais (como na SQL) © Korth • Silberschatz • Sundarshan

58 Valores nulos As comparações com valores nulos retornam o valor de verdade especial desconhecido Se falso fosse usado no lugar de desconhecido, então, not (A < 5) seria equivalente a A >= 5 Lógica de três valores usando o valor de verdade desconhecido: OR: (desconhecido or verdadeiro) = verdadeiro, (desconhecido or falso) = desconhecido (desconhecido or desconhecido) = desconhecido AND: (verdadeiro and desconhecido) = desconhecido (falso and desconhecido) = falso (desconhecido and desconhecido) = desconhecido NOT: (not desconhecido) = desconhecido Na SQL “P is unknown” avalia para verdadeiro se o predicado P avaliar para desconhecido Resultado do predicado select é tratado como falso se ele avaliar para desconhecido © Korth • Silberschatz • Sundarshan

59 Modificação do banco de dados
O conteúdo do banco de dados pode ser modificado usando as seguintes operações: Exclusão Inserção Atualização Todas essas operações são expressas usando o operador de atribuição. © Korth • Silberschatz • Sundarshan

60 Exclusão Uma requisição de exclusão é expressa semelhantemente a uma consulta, exceto que, em vez de exibir tuplas ao usuário, as tuplas selecionadas são removidas do banco de dados. Pode excluir apenas tuplas inteiras; não pode excluir valores em atributos específicos. Na álgebra relacional, uma exclusão é expressa por: r  r – E onde r é uma relação e E é uma consulta de álgebra relacional. © Korth • Silberschatz • Sundarshan

61 conta  conta – nome_agência = “Perryridge” (conta)
Exemplos de exclusão Exclua todos os registros de conta na agência Perryridge. conta  conta – nome_agência = “Perryridge” (conta) Exclua todos os empréstimos com quantia na faixa de 0 a 50 empréstimo  empréstimo  quantia  0 e quantia  50 (empréstimo) Exclua todas as contas em agências localizadas no Brooklyn. r1  cidade_agência = “Brooklyn” (conta  agência) r2  nome_agência, número_conta, saldo (r1) r3  nome_cliente, número_conta, (r2  depositante) conta  conta - r2 depositante  depositante - r3 © Korth • Silberschatz • Sundarshan

62 Inserção Para inserir dados em uma relação:
especificamos uma tupla a ser inserida escrevemso uma consulta cujo resultado é um conjunto de tuplas a serem inseridas Na álgebra relacional, uma inserção é expressa por: r  r  E onde r é uma relação e E é uma expressão de álgebra relacional. A inserção de uma única tupla é expressa fazendo E ser uma relação constante contendo uma tupla. © Korth • Silberschatz • Sundarshan

63 Exemplos de inserção Insira informações no banco de dados especificando que Smith possui US$ 1200 na conta A-973 na agência Perryridge. conta  conta  {(A-973, “Perryridge”, 1200)} depositante  depositante  {(“Smith”, A-973)} Forneça, como um presente a todos os clientes de empréstimo da agência Perryridge, uma conta de poupança de US$200. Deixe o número de empréstimo servir como o número de conta para a conta de poupança. r1  (nome_agência = “Perryridge” (tomador empréstimo)) conta  conta   nome_agência, número_empréstimo, 200 (r1) depositante  depositante  nome_cliente, número_empréstimo (r1) © Korth • Silberschatz • Sundarshan

64 Atualização Um mecanismo para mudar um valor em uma tupla sem mudar todos os valores na tupla Use o operador de projeção generalizada para realizar essa tarefa r  F1, F2,..., Fn (r) Cada Fi é: o io atributo de r, se o io atributo não estiver atualizado, ou, se o atributo precisar ser atualizado, Fi é uma expressão, envolvendo apenas constantes e os atributos de r, que fornece o novo valor para o atributo © Korth • Silberschatz • Sundarshan

65 Exemplos de atualização
Faça pagamentos de juros acrescendo todos os saldos de 5 por cento. conta  número_conta, nome_agência, saldo * 1,05 (conta) Pague 6 por cento de juros a todas as contas com saldos acima de US$ e pague 5 por cento a todas as outras contas. conta  número_conta, nome_agência, saldo * 1,06 (saldo > (conta))  número_conta, nome_agência, saldo * 1,05 (saldo  (conta)) © Korth • Silberschatz • Sundarshan

66 Fim do Capítulo 2 © Korth • Silberschatz • Sundarshan

67 Figura 2.3. A relação agência
© Korth • Silberschatz • Sundarshan

68 Figura 2.6: A relação empréstimo
© Korth • Silberschatz • Sundarshan

69 Figura 2.7: A relação tomador
© Korth • Silberschatz • Sundarshan

70 Figura 2.8: Diagrama de esquema
© Korth • Silberschatz • Sundarshan

71 Figura 2.9: Resultado de nome_agência = “Perryridge” (empréstimo)
© Korth • Silberschatz • Sundarshan

72 Figura 2.10: Número e quantia do empréstimo
© Korth • Silberschatz • Sundarshan

73 Figura 2.11: Nomes de todos os clientes que têm um empréstimo ou uma conta
© Korth • Silberschatz • Sundarshan

74 Figura 2.12: Clientes com uma conta, mas sem empréstimos
© Korth • Silberschatz • Sundarshan

75 Figura 2.13: Resultado de tomador  empréstimo
© Korth • Silberschatz • Sundarshan

76 Figura 2.14 © Korth • Silberschatz • Sundarshan

77 Figura 2.15 © Korth • Silberschatz • Sundarshan

78 Figura 2.16 © Korth • Silberschatz • Sundarshan

79 Figura 2.17: Maior saldo do banco
© Korth • Silberschatz • Sundarshan

80 Figura 2.18: Clientes que moram na mesma cidade e na mesma rua de Smith
© Korth • Silberschatz • Sundarshan

81 Figura 2.19: Clientes com uma conta e um empréstimo no banco
© Korth • Silberschatz • Sundarshan

82 Figura 2.20 © Korth • Silberschatz • Sundarshan

83 Figura 2.21 © Korth • Silberschatz • Sundarshan

84 Figura 2.22 © Korth • Silberschatz • Sundarshan

85 Figura 2.23 © Korth • Silberschatz • Sundarshan

86 Figura 2.24: A relação info_crédito
© Korth • Silberschatz • Sundarshan

87 Figura 2.25 © Korth • Silberschatz • Sundarshan

88 Figura 2.26: A relação func_mp
© Korth • Silberschatz • Sundarshan

89 Figura 2.27 The pt_works relation after regrouping
© Korth • Silberschatz • Sundarshan

90 Figura 2.28 © Korth • Silberschatz • Sundarshan

91 Figura 2.29 © Korth • Silberschatz • Sundarshan

92 Figura 2.30 Relações funcionário e func_pi
© Korth • Silberschatz • Sundarshan

93 Figura 2.31 © Korth • Silberschatz • Sundarshan

94 Figura 2.32 © Korth • Silberschatz • Sundarshan

95 Figura 2.33 © Korth • Silberschatz • Sundarshan

96 Figura 2.34 © Korth • Silberschatz • Sundarshan


Carregar ppt "Capítulo 2: Modelo relacional"

Apresentações semelhantes


Anúncios Google