BANCO DE DADOS aula 6 álgebra relacional -



Documentos relacionados
Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 2) Clodis Boscarioli

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Banco de Dados I 2007 Módulo III: Linguagens de Consulta. (Aula 9) Clodis Boscarioli

Prof.: Clayton Maciel Costa

Comandos de Manipulação

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

BDII SQL Junção Revisão 8

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas.

Faculdade Pitágoras 24/10/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

11/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Definida pelo American National Standard Institute (ANSI) em 1986

Banco de Dados I. Aula 9 - Prof. Bruno Moreno 20/09/2011

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

SQL DML. Frederico D. Bortoloti

Principais Conceitos. Modelo Relacional representa o banco de dados como uma coleção de relações Tupla Atributos Relação Domínio

Introdução às Bases de Dados

Projeto e Implementação

Modelagem de Dados. Aula 02 Arquitetura e Álgebra Relacional. Maxwell Anderson

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Banco de dados 1. Linguagem DML SQL Select Avançado. Professor: Victor Hugo L. Lopes

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R. Fabricio Breve

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan

Modelo Relacional - Manipulação

Banco de Dados. Álgebra Relacional. Prof. Enzo Seraphim

07/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

SQL Consultas Básicas

Introdução ao SQL. Aécio Costa

Memória de aula Semanas 15 e 16

Processamento e Otimização de Consultas

Capítulo 4 A Linguagem SQL. Murilo Silva de Camargo

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Prof. Daniela Barreiro Claro

Tarefa Orientada 13 Agrupamento e sumário de dados

1. Introdução 2. Conceitos 3. Gerenciador de Banco de Dados (SGBD) 3.1. Arquitetura ANSI/SPARC Regras básicas 3.3.

Disciplina: Unidade III: Prof.: Período:

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

Álgebra relacional. Fernando Lobo. Conjunto de operadores que permitem manipular relações: produtos cartesianos e joins.

Structured Query Language (SQL)

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD

NOME SEXO CPF NASCIMENTO SALARIO

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Treinamento sobre SQL

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Programação SQL. INTRODUÇÃO II parte

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Consultas SQL com mais de uma 01 tabela

Introdução a Banco de Dados

Consultas SQL Parte II

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

SQL UMA ABORDAGEM INTERESSANTE

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

António Rocha Nuno Melo e Castro

Projeto de Banco de Dados

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

AULA 6 - Operações Espaciais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

07/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Exercícios de Lógica Exercícios de Fixação 08

Tarefa Orientada 16 Vistas

Banco de Dados I. SQL SELECT Parte 1 - Básico. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

Capítulo 1. x > y ou x < y ou x = y

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

Comparação entre Tipos de Diagramas. DEA para um Banco. Modelo Relacional. Modelos Relacional

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli

Lição 1 - Criação de campos calculados em consultas

Persistência e Banco de Dados em Jogos Digitais

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 4 PROF. MARCELO LUIZ SILVA (R E D)

Álgebra relacional. Fernando Lobo. Base de Dados, aula 12

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Junções e Índices em Tabelas

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Conceitos Importantes:

Banco de Dados. Prof. Antonio

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Faculdade Lourenço Filho - ENADE

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Linguagem de Consulta Estruturada SQL- DML

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

SQL. Jacir de Oliveira, José Alencar Philereno. Faculdade de Informática de Taquara. Igrejinha - RS Brazil

Transcrição:

INSTITUTO DE EXATAS E TECNOLÓGICAS Curso de Ciência da Computação BANCO DE DADOS aula 6 álgebra relacional - professor: Juliano Varella de Carvalho

5.1. Álgebra Relacional relações de exemplo conta agencia numero_conta cidade_agencia 0001 1200 260050 0002 3000 455580 0003 4500 1250369 0004 4000 125588 0005 1500 depositante 0006 200 numero_conta 0007 3750 0001 0008 1800 0002 0003 cliente nome rua Getúlio Vargas Getúlio Vargas cidade Paulo 0004 0007 0006 0005 Olavo Bilac devedor Pessoa num_emprestimo Paulo Cecília Meireles Goulart Assis Brasil Porto alegre Helena Beatriz Floriano Peixoto emprestimo num_emprestimo total 40000 25400 5420

5.2. Álgebra Relacional conceitos Linguagens de Consulta: linguagem por meio da qual os usuários obtêm informações do banco de dados. Podem ser: - procedurais: o usuário descreve uma seqüência de operações para obter o resultado desejado; Ex: pascal, pl-sql, transact-sql, etc. - não procedurais: o usuário descreve a informação desejada, sem instruir como esta será obtida. Ex: sql, QBE (Query by example), etc. Álgebra Relacional: linguagem de consulta que consiste em um conjunto de operações, tendo como entrada uma ou duas relações e produzindo como resultado uma nova relação. Operações mais importantes: - select; - set difference; - project; - cartesian product; - Union; - rename; - namely - set intersection; - natural join - division; - assignment; - Operações primárias: operam sobre uma única relação: select, project, rename. - Operações binárias: operam sobre duas relações: union, set difference, cartesian product.

5.3. Álgebra Relacional operações fundamentais Operação SELECT: seleciona as tuplas que satisfaçam um determinado predicado. A letra sigma representa a seleção, o predicado aparece subscrito a sigma, e a relação utilizada é colocada entre parênteses. Ex: σ = (conta) : seleciona as tuplas da relação conta cuja agência é igual a. numero_conta O resultado da seleção é 0001 0002 1200 3000 - podem ser usados comparações do tipo: =,,,>,,< e os conectivos: (e) (ou) Operação PROJECT: denotada pela letra grega pi (π), esta operação retorna a relação com somente os atributos selecionados, eliminando as linhas em duplicidade. Os atributos aparecem ao lado de pi, subscrito, e a relação aparece entre parênteses. Ex: πnome_agência,(agencia) cidade_agencia 260050 455580 1250369 125588 agencia 260050 455580 1250369 125588

5.3. Álgebra Relacional operações fundamentais - Juntando operações SELECT E PROJECT: pode-se unir operações desde que elas tratem de relações. π,(σ = (conta) ) conta numero_conta numero_conta 0001 1200 0001 1200 1200 0002 3000 0002 3000 3000 0003 4500 0004 4000 0005 1500 0006 200 0007 3750 Operação UNION: considere a seguinte consulta: selecionar todos os nomes de clientes que tenham um empréstimo, uma conta ou ambos. Deve-se utilizar as relações depositante e devedor. π(devedor) π(depositante) (devedor) (depositante) (estão nas 2 relações) Paulo Helena

5.3. Álgebra Relacional operações fundamentais - Uma operação UNION entre duas relações r e s só é possível se: i. as relações r e s têm o mesmo número de atributos; ii. os domínios dos i-ésimo atributo de r e o i-ésimo atributo de s devem ser os mesmos para todo i. Operação Diferença entre conjuntos: sendo r e s duas relações, r-s tem como resultado o conjunto de tuplas que estão na relação r, mas não encontram-se na relação s. - Ex: selecionar todos os clientes que tem conta mas não tem empréstimo. π(depositante) - π(devedor) Linhas eliminadas Clientes com contas Mas sem empréstimos Paulo

5.4. Álgebra Relacional operações adicionais Operação de Interseção de conjuntos: captura todas as tuplas que encontram-se em uma relação r, e que também encontram-se na relação s. - Ex: Selecionar os nomes de clientes que possuem uma conta e um empréstimo. π(devedor) π(depositante) depositante numero_conta 0001 0002 0003 nome_client e nome_client e Helena devedor num_emprestimo 0004 Paulo 0007 0006 0005 r s = r (r - s) r s r (r - s) r-s

5.3. Álgebra Relacional operações fundamentais Operação Produto Cartesiano: permite combinar informações de duas relações quaisquer. Representado por r x s. Ex: Qual o produto cartesiano entre as relações devedor e emprestimo. (devedor)x(emprestimo) = (, num_emprestimo,, num_emprestimo, total) Obs: Para evitar o problema da duplicidade de nomes de atributos insere-se o nome da relação antes do atributo: (, devedor.num_emprestimo,, emprestimo.num_emprestimo, total) - Quantas e quais tuplas aparecerão na relação (devedor x emprestimo)? Se a relação (devedor) possui n tuplas e a relação empréstimo tem m tuplas, então o produto cartesiano (devedor x empréstimo) tem n*m tuplas. devedor x emprestimo devedor.num_emprestimo emprestimo.num_emprestimo total 40000 25400 5420 40000 25400 5420 Helena 40000 Helena 25400 Helena 5420

5.3. Álgebra Relacional operações fundamentais - Agora, deve-se encontrar todos os nomes de clientes que tenham um empréstimo na agência, através da operação: Apenas fez empréstimo em. σnome_agência = (devedor x emprestimo) nome_client devedor.num_emprestimo emprestimo.núm_emprestimo e total 40000 40000 OPS!!! Helena 40000 Obs: Como a operação produto cartesiano associa todas as tuplas de empréstimos a todas as tuplas de devedor, então existem empréstimos que estão relacionados erroneamente a alguns clientes. Para contornar este problema, devemos exigir que o atributo devedor.num_emprestimo seja igual ao atributo emprestimo.num_emprestimo. - Assim temos: σdevedor.num_emprestimo = emprestimo.num_emprestimo (σnome_agência = (devedor x empréstimo)) nome_client e devedor.num_emprestimo emprestimo.num_emprestimo total 40000 π(σdevedor.num_emprestimo = emprestimo.num_emprestimo (σnome_agência = (devedor x empréstimo))) nome_client e

5.3. Álgebra Relacional operações fundamentais Operação Rename: representado pela letra grega rho (ρ), permite dar um nome a uma determinada expressão. rua_cliente Getúlio Vargas Getúlio Vargas cliente cidade_cliente Assim, a expressão em álgebra relacional E abaixo tem por resultado uma expressão sob o nome x. Paulo Olavo Bilac Pessoa Cecília Meireles Goulart ρx(e) Beatriz Assis Brasil Floriano Peixoto Porto alegre Ex: Desejamos o nome dos clientes que moram na mesma cidade de. rua_cliente Olavo Bilac cidade_cliente Primeiro, é necessário descobrir em qual cidade mora, fazendo uma seleção: cidade_cliente σ = (cliente), rua_cliente cidade_cliente cidade_cliente E depois uma projeção: Getúlio Vargas Getúlio Vargas Olavo Bilac πcidade_cliente(σ = (cliente)) Pessoa Paulo Cecília Meireles Para encontrar os outros clientes, é necessário fazer uma varredura na relação cliente, comparando o atributo cidade_cliente com o atributo da relação obtida após a projeção anterior, ficando assim: Beatriz Goulart Assis Brasil Floriano Peixoto Porto alegre π(σcliente.cidade_cliente = cid_francisco.cidade_cliente (cliente x ρcid_francisco(πcidade_cliente(σ = (cliente))))) Beatriz

5.4. Álgebra Relacional operações adicionais Operação de Junção Natural: a junção natural ou natural join é uma operação binária que permite combinar seleções e um produto cartesiano em uma só operação. - Ex: encontrar todos os nomes de clientes que tenham um empréstimo no banco, bem como o total emprestado. Utilizando apenas as operações fundamentais, poderia ser resolvido assim: π, emprestimo.num_emprestimo, total(σdevedor.num_emprestimo = emprestimo.num_emprestimo (devedor x emprestimo)) No entanto, é possível simplificar esta operação utilizando o símbolo da junção natural: A junção natural forma um produto cartesiano das duas relações, e já executa uma seleção, fazendo a equivalência dos atributos que aparecem em ambos os esquemas da relação, e por último, remove os atributos em duplicidade. π, num_emprestimo total(devedor empréstimo) nome_client e Helena num_emprestimo total 40000 25400 5420

5.4. Álgebra Relacional operações adicionais Formalizando: Sendo R e S dois esquemas de relação, ou seja, uma lista de atributos e r(r) e s(s) duas relações, a junção natural de r e s (r s ) é uma relação formalmente definida assim: r s = πr S(σr.A1=s.A1 r.a2=s.a2... r.an=s.an(r x s)) Em que R S = {A1,A2,...,An} Propriedades: - a junção natural é associativa, portanto: cliente conta depositante = (cliente conta) depositante = cliente (conta depositante) - se r(r) e s(s) são relações sem atributos comuns, então r s = r x s

5.4. Álgebra Relacional operações adicionais Operação de Divisão: a divisão de duas relações R S, onde os atributos de S estão contidos nos atributos de R, A(R) A(S), resulta na relação T, onde A(T) = { A(R) A(S) }, onde para cada tupla t que aparece no resultado, os valores de t devem aparecer em R, combinando com cada tupla de S. Esta operação é utilizada nas consultas em que se emprega a frase para todos ; S A1 a1 a2 a3 R S A2 b1 b4 R A1 a1 a2 a3 a4 a1 a3 a2 a3 a4 a1 a2 a3 A2 b1 b1 b1 b1 b2 b2 b3 b3 b3 b4 b4 b4

5.4. Álgebra Relacional operações adicionais - Ex: encontrar todos os clientes que tenham conta em todas as agências localizadas em. conta agencia depositante numero_conta cidade_agencia numero_conta 0001 1200 260050 0001 0002 3000 455580 0002 0003 4500 1250369 0003 0004 4000 125588 0004 0005 1500 Paulo 0007 0006 200 0006 0007 3750 0005 0008 1800 0008 π(σcidade_agencia = (agencia)) nome_agência cidade_agência nome_agência 455580 125588 π, (depositante conta) Paulo π, (depositante conta) π(σcidade_agencia = (agencia))

5.4. Álgebra Relacional operações adicionais Operação de Atribuição (Assignment Operation): trabalha de maneira similar à atribuição das linguagens de programação. Representada por - Atribui-se a relação resultante de uma operação à direita de, a uma variável temporária, à esquerda, a qual poderá ser utilizada em relações subseqüentes. - Ex: operação de divisão anterior poderia ser descrita como: temp1 π(σcidade_agencia = (agencia)) temp2 π, (depositante conta) resultado temp2 temp1

5.5. Álgebra Relacional operações estendidas Projeção generalizada: estendem as projeções, permitindo que operações aritméticas sejam usadas nas projeções. πf1, F2,..., Fn(E) Onde E é uma expressão em álgebra relacional e cada Fi são expressões aritméticas envolvendo constantes e atributos no esquema de E. - Ex: Dada a relação crédito, descobrir quanto cada cliente ainda pode utilizar do seu crédito pessoal. π, limite_credito credito_usado(credito) credito limite_credito credito_usado limite_credito - credito_usado 4000 2200 1800 3200 100 3100 1200 1500-300 5800 5000 800 Flávia 3600 3600 Flávia 0

5.5. Álgebra Relacional operações estendidas Junção externa (outer join): extensão da operação de join para resolver informações omitidas. - Ex: Dadas as relações a seguir com os seguintes esquemas: empregado(nome_empregado, rua, cidade) trabalhador_integral(nome_empregado,, salario) empregado trabalhador_integral nome_empregado rua cidade nome_empregado salario Goulart 5000 Assis Brasil 4800 Getúlio Vargas Flávia 3200 Pessoa 6500 Descobrir a rua, cidade, agência e salário de todos os empregados. Alternativa natural é fazer uma seleção com uma junção natural: πnome_empregado, rua, cidade,, salario(empregado trabalhador_integral) nome_empregado rua cidade salario Goulart 5000 Assis Brasil 4800 Pessoa 6500 problema: os dados de rua e cidade do empregado foram perdidos, bem como os dados de agência e salário foram perdidos da empregada Flávia. solução: utilizar as operações de junções externas para evitar perda de informações, que podem ser:

5.5. Álgebra Relacional operações estendidas Junção externa a esquerda empregado nome_empregado trabalhador_integral rua cidade Goulart Assis Brasil Pessoa Getúlio Vargas Nulo salario 5000 4800 6500 Nulo A junção à esquerda pega todas as tuplas da relação à esquerda que não encontraram par entre as tuplas da relação à direita, preenchendo com nulo os valores não encontrados. Estas tuplas são adicionadas ao resultado da junção natural. Junção externa a direita empregado nome_empregado Flávia trabalhador_integral rua cidade Goulart Assis Brasil Pessoa Nulo Nulo salario 5000 4800 6500 3200 A junção à direita pega todas as tuplas da relação à direita que não encontraram par entre as tuplas da relação à esquerda, preenchendo com nulo os valores não encontrados. Estas tuplas são adicionadas ao resultado da junção natural. Junção externa total empregado trabalhador_integral nome_empregado rua cidade salario Goulart Assis Brasil Pessoa 5000 4800 6500 A junção externa total faz ambas operações acima. Getúlio Vargas Nulo Nulo Flávia Nulo Nulo 3200

5.5. Álgebra Relacional operações estendidas Funções agregadas: são aquelas que, quando aplicadas, tomam uma coleção de valores e retornam um valor simples como resultado. trabalhador_integral - função sum: descobrir a soma total dos salários de nome_empregado salario 5000 todos os empregados de tempo integral. 4800 sum salario (trabalhador_integral) sum salario 14505 Flávia 3200 6500 -função count: descobrir o número de agências existentes na tabela de tempo integral. count (trabalhador_integral) count 4 count-distinct (trabalhador_integral) count-distinct 3 - função avg: descobrir a média dos salários. avg salario (trabalhador_integral) avg salario 3626.25 - função min: descobrir o menor salário. min salario (trabalhador_integral) min salario 3200 - função max: descobrir o maior salário. max salario (trabalhador_integral) max salario 6500

5.5. Álgebra Relacional operações estendidas Em alguns casos, aplicam-se as funções agregadas não somente a um único conjunto de tuplas, mas a diversos grupos, onde cada grupo é um conjunto de tuplas. Isto é realizado através da operação chamada agrupamento. Ex: descobrir a soma total dos salários dos empregados de tempo integral, por agência. nome_empregado trabalhador_integral salario 5000 4800 solução: particionar a relação trabalhador_integral em Flávia 3200 6500 grupos, com base na agência as quais os empregados fazem parte e, por fim aplicar a função agregada a cada um destes grupos. Fernando Beatriz Bruno 4000 1000 3000 g sum salario (trabalhador_integral) g sum salario min salario (trabalhador_integral) sum salario sum salario min salario 8000 8000 3000 15300 15300 4000 4200 4200 1000 - Formalmente: G1, G2,..., Gn g F1A1, F2A2, FmAm (E), onde: E: é uma expressão qualquer em álgebra relacional; Cada Gi constitui um atributo que será agrupado; Cada Fi é uma função agregada; Cada Ai é o nome de um abtributo;

5.5. Álgebra Relacional modificações no BD exclusão: permite a exclusão de tuplas inteiras de uma relação. É expressa por: r r E, onde: r: é uma relação; E: é uma consulta em álgebra relacional Ex: excluir todos as contas do cliente. conta conta - σ = (conta) Ex: excluir todas as contas das agências localizadas em. r1 σ cidade_agencia = (conta agencia) r2 π, numero_conta, (r1) conta conta r2

5.5. Álgebra Relacional modificações no BD conta inserção: permite a inserção de um conjunto de tuplas em uma relação. É expressa por: r r E, onde r é uma relação e E: é uma consulta numero_conta 0001 0002 1200 3000 em álgebra relacional 0003 0004 4500 4000 Obs: i. os valores dos atributos das tuplas a inserir devem ser membros do domínio dos atributos; 0005 0006 0007 0008 1500 200 3750 1800 ii. As tuplas inseridas devem ter o mesmo grau da relação. depositante numero_conta Ex: inserir que o cliente Saulo tem 3800 na conta 010 da agência. conta conta {(, 010, 3800)} 0001 0002 0003 depositante depositante {( Saulo, 010)} Paulo 0004 0007 Ex: inserir uma nova caderneta de poupança de 100 reais para todos os clientes da agência, sendo o número do empréstimo o mesmo número usado para esta conta poupança. r1 σ cidade_agencia = (devedor emprestimo) devedor nome_client e 0006 0005 num_emprestimo r2 π, num_emprestimo (r1) Helena conta conta (r2 x {(100)}) depositante depositante π, num_emprestimo (r1) emprestimo num_emprestim o total 40000 25400 5420

5.5. Álgebra Relacional modificações no BD atualização: permite a mudança de uma tupla sem mudar todos os valores dela. Para isso usa-se o operador de projeção generalizada: r π F1, F2,..., Fn (r), em que cada Fi é o i-ésimo atributo de r se o i-ésimo atributo não for atualizado, ou, se o i-ésimo atributo for atualizado, então cada Fi é uma expressão envolvendo somente constantes e os atributos de r, que dá novos valores a esses atributos. Ex: A taxa de juros aumentou e o de todas as contas aumentou 5%. conta π, numero_conta, * 1.05 (conta) Ex: As contas com acima de 2500 recebem 10%, e os demais 5%. conta π, numero_conta, * 1.1 (σ > 2500 (conta)) π, numero_conta, * 1.05 (σ <= 2500 (conta))