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

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

Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Capítulo 2: Modelo relacional.

Apresentações semelhantes


Apresentação em tema: "Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Capítulo 2: Modelo relacional."— Transcrição da apresentação:

1 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Capítulo 2: Modelo relacional

2 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Capítulo 2: Modelo relacional

3 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Exemplo de uma relação

4 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Estrutura básica Formalmente, dados os conjuntos D 1, D 2, …. D n uma relação r é um subconjunto de D 1 x D 2 x … x D n Portanto, uma relação é um conjunto de n tuplas (a 1, a 2, …, a n ) onde cada a i  D i 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

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

6 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Esquema de relação n A 1, A 2, …, A n são atributos n R = (A 1, A 2, …, A n ) é um esquema de relação – Exemplo: – Esquema_cliente = (nome_cliente, rua_cliente, cidade_cliente) n r(R) é uma relação no esquema de relação R – Exemplo: – cliente (Esquema_cliente)

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

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

9 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Banco de dados n Um banco de dados consiste em múltiplas relações n 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 n Armazenar todas as informações como uma única relação como banco (número_conta, saldo, nome_cliente,..) resulta em l Repetição de informações (por exemplo, dois clientes possuem uma única conta) l A necessidade de valores nulos (por exemplo, representar um cliente sem uma conta) n Teoria da normalização (Capítulo 7) trata de como projetar esquemas relacionais

10 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan A relação cliente

11 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan A relação depositante

12 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan 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

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

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

15 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação seleção – Exemplo Relação r  A=B ^ D > 5 (r) ABCD   ABCD  

16 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação select n Notação:  p (r) n p é chamado o predicado de seleção n 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: – op ou – onde op pode ser: =, , >, . <.  n Exemplo de seleção:  nome_agência=“Perryridge” (conta)

17 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação projeção – Exemplo n Relação r:  A,C (r) ABC  AC  = AC 

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

19 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação união – Exemplo Relações r, s: r  s AB  AB  2323 r s AB 

20 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação união n Notação: r  s n Definida como: – r  s = {t | t  r or t  s} n 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: 2 a coluna de r lida com o mesmo tipo de valores que a 2 a coluna de s) n Exemplo: encontrar todos os clientes com uma conta ou um empréstimo  nome_cliente (depositante)   nome_cliente (tomador)

21 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação diferença de conjuntos – Exemplo n Relações r, s: n r – s AB  AB  2323 r s AB  1111

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

23 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação produto cartesiano – Exemplo Relações r, s r  s AB  CD  E aabbaabbaabbaabb AB  1212 CD  E aabbaabb r s

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

25 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan 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) AB  CD  E aabbaabbaabbaabb ABCDE   20 aabaab

26 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan 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.

27 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan 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)

28 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Consultas de exemplo Encontre todos os empréstimos de mais de US$ 1200 –  quantia > 1200 (empréstimo) n 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))

29 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan 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)

30 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan 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)

31 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan 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))

32 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Consultas de exemplo n Encontre o maior saldo de conta l 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. l A consulta é:  saldo (conta)   conta.saldo (  conta.saldo < d.saldo (conta  d (conta)))

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

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

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

36 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação interseção de conjuntos – Exemplo n Relação r, s: n r  s A B   2323 rs  2

37 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação junção natural n Notação: r [SIMBOLO] s n 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: l Considere cada par de tuplas t r de r e t s de s. l Se t r e t s 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 t r em r  t possui o mesmo valor de t s em s n Exemplo: R = (A, B, C, D) S = (E, B, D) l Esquema resultado = (A, B, C, D, E) l 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))

38 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação junção natural – Exemplo Relações r, s: r [ ] s AB  CD  aababaabab r AB  CD  aaaabaaaab E  B D aaabbaaabb E  s

39 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação divisão n Notação: r ÷ s n Adequado para consultas que incluem a frase “para todo”. n Sejam r e s relações nos esquemas R e S respectivamente, onde l R = (A 1, …, A m, B 1, …, B n ) l S = (B 1, …, B n ) O resultado de r  s é uma relação no esquema R – S = (A 1, …, A m ) 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

40 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação divisão – Exemplo Relações r, s: r ÷ s: A  r B 1212 AB  s

41 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Outro exemplo de divisão Relações r, s: r ÷ s: AB  aaaa C  AB  aaaaaaaaaaaaaaaa CD  aabababbaabababb E D abab E 1111 r s

42 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação divisão (cont.) n Propriedade l Seja q = r  s l Então, q é a maior relação que satisfaz q x s  r n 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ê l  R-S,S (r) simplesmente reordena atributos de r l  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.

43 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação atribuição n A operação atribuição (  ) fornece uma maneira conveniente de expressar consultas complexas l 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 l A atribuição precisa sempre ser feita para uma variável de relação temporária. n Exemplo: Escreva r  s como – temp1   R-S (r ) temp2   R-S ((temp1 x s ) –  R-S,S (r )) result = temp1 – temp2 l O resultado à esquerda do  é atribuído à variável de relação à esquerda do . l Pode usar variável em expressões subseqüentes.

44 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Exemplo de consultas de banco n Encontre o nome de todos os clientes que têm um empréstimo e uma conta no banco.  nome_cliente (tomador)   nome_cliente (depositante) n 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)

45 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Exemplo de consultas de banco n Encontre todos os clientes que posuem uma conta pelo menos das agências “Downtown” e Uptown”. l Consulta 1:  nome_cliente (  nome_agência = “Downtown ” (depositante conta))   nome_cliente (  nome_agência = “Uptown ” (depositante conta)) l 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.

46 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Consultas de exemplo n 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))

47 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operações de álgebra relacional estendidas n Projeção generalizada n Funções agregadas n Junção externa

48 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Projeção generalizada n Estende a operação projeção permitindo que funções aritméticas sejam usadas na lista de projeção.  F1, F2,..., Fn (E) n E é qualquer expressão de álgebra relacional n Cada F 1, F 2,..., F n é uma expressão aritmética envolvendo constantes e atributos no esquema de E. n 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)

49 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Funções e operações agregadas n 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 n Operação agregada na álgebra relacional – G1, G2,..., Gn G F1(A1), F2(A2),..., Fm(Am) (E) – E é qualquer expressão de álgebra relacional l G 1, G 2 …, G n uma lista de atributos em que agrupar (pode ser vazia) l Cada F i é uma função agregada l Cada A i é um nome de atributo

50 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação agregada – Exemplo Relação r: gsum(c) (r) AB   C sum(c ) 27

51 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Operação agregada – Exemplo n Relação conta agrupada por nome_agência: nome_agência G sum(saldo) (conta) nome_agêncianúmero_contasoma Perryridge Brighton Redwood A-102 A-201 A-217 A-215 A nome_agênciasum(saldo) Perryridge Brighton Redwood

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

53 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Junção externa n Uma extensão da operação junção que evita a perda de informações. n Calcula a junção e acrescenta ao resultado as tuplas de uma relação que não correspondem às tuplas na outra relação. n Usa valores nulos: l nulo significa que o valor é desconhecido ou inexistente l 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

54 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Junção externa – Exemplo n Relação empréstimo n Relação tomador

55 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Junção externa – Exemplo Junção interna empréstimo tomador Junção externa esquerda empréstimo tomador número_empréstimoquantia L-170 L nome_funcionário Jones Smith nome_agência Downtown Redwood Jones Smith null número_empréstimoquantia L-170 L-230 L nome_funcionárionome_agência Downtown Redwood Perryridge

56 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Junção externa – Exemplo Junção externa direita empréstimo tomador Junção externa integral empréstimo tomador número_empréstimoquantia L-170 L-230 L null nome_funcionário Jones Smith Hayes nome_agência Downtown Redwood null número_empréstimoquantia L-170 L-230 L-260 L null nome_funcionário Jones Smith null Hayes nome_agência Downtown Redwood Perryridge null

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

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

59 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Modificação do banco de dados n O conteúdo do banco de dados pode ser modificado usando as seguintes operações: l Exclusão l Inserção l Atualização n Todas essas operações são expressas usando o operador de atribuição.

60 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Exclusão n 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. n Pode excluir apenas tuplas inteiras; não pode excluir valores em atributos específicos. n Na álgebra relacional, uma exclusão é expressa por: – r  r – E – onde r é uma relação e E é uma consulta de álgebra relacional.

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

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

63 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Exemplos de inserção n 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)} n 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. r 1  (  nome_agência = “Perryridge” (tomador empréstimo)) conta  conta   nome_agência, número_empréstimo, 200 (r 1 ) depositante  depositante   nome_cliente, número_empréstimo (r 1 )

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

65 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Exemplos de atualização n Faça pagamentos de juros acrescendo todos os saldos de 5 por cento. conta   número_conta, nome_agência, saldo * 1,05 (conta) n 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))

66 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Fim do Capítulo 2

67 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.3. A relação agência

68 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.6: A relação empréstimo

69 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.7: A relação tomador

70 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.8: Diagrama de esquema

71 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.9: Resultado de  nome_agência = “Perryridge” (empréstimo)

72 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.10: Número e quantia do empréstimo

73 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.11: Nomes de todos os clientes que têm um empréstimo ou uma conta

74 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.12: Clientes com uma conta, mas sem empréstimos

75 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.13: Resultado de tomador  empréstimo

76 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.14

77 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.15

78 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.16

79 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.17: Maior saldo do banco

80 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.18: Clientes que moram na mesma cidade e na mesma rua de Smith

81 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.19: Clientes com uma conta e um empréstimo no banco

82 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.20

83 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.21

84 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.22

85 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.23

86 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.24: A relação info_crédito

87 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.25

88 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.26: A relação func_mp

89 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.27 The pt_works relation after regrouping

90 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.28

91 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.29

92 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.30 Relações funcionário e func_pi

93 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.31

94 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.32

95 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.33

96 Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Figura 2.34


Carregar ppt "Sistema de Banco de Dados, 5/E © Korth Silberschatz Sundarshan Capítulo 2: Modelo relacional."

Apresentações semelhantes


Anúncios Google