©Silberschatz, Korth and Sudarshan (Modificado)3.2.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.

Slides:



Advertisements
Apresentações semelhantes
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Advertisements

Álgebra Relacional Marcelo Mendes Manaus
Modelo Relacional.
SQL Structured Query Language (continuação)
Evolução dos SGBD’s (2ª Parte).
Prof.: Bruno Rafael de Oliveira Rodrigues
Linguagens relacionais
Manipulação algébrica
©Silberschatz, Korth and Sudarshan (modificado)1Database System Concepts result := {R}; done := false; calcular F+; while (not done) do if (há um esquema.
Ivan Saraiva Silva Aula 1 - Álgebra Booleana
Algebra relacional nomeada e não-nomeada
Subconsultas ou Consultas Aninhadas
Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
Modelo Relacional parte 1
Álgebra Relacional – Parte 2
Profa. Aline Vasconcelos
Prof. Alexander Roberto Valdameri
Unidade 5 – Exploração de uma base de dados em ambiente Windows
Folha de Cálculo Como Dar Nome a Uma ou mais Células?
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
SISTEMAS DE INFORMAÇÃO – UNIESP/2010
Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações
©Silberschatz, Korth and Sudarshan (modificado)5.1.1Database System Concepts Capítulo 5: Outras linguagens Query-by-Example (QBE) Datalog.
Capítulo 3: Modelo Relacional
1 Álgebra Relacional Aspectos de Manipulação (Linguagens Formais de Consulta) –Álgebra Relacional Características –Descrevem qualquer operação de consulta.
2.2.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos.
Capítulo 7: Design de Bases de Dados
Modelo de Dados Relacional
Cálculo relacional Lílian Simão Oliveira.
Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de.
Capítulo 3: SQL Korth • Silberschatz • Sundarshan.
Capítulo 2: Modelo relacional
Álgebra Relacional (Exemplos)
CÁLCULO RELACIONAL Lílian Simão Oliveira. Cálculo Relacional  é uma linguagem de consulta formal. Utilizando-se de uma expressão declarativa pode-se.
©Silberschatz, Korth and Sudarshan (Modificado)3.3.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
O Modelo Relacional. Introdução Este modelo é considerado o primeiro modelo de dados efetivamente usado em aplicações comerciais. Foi introduzido por.
Cálculo Relacional.
©Silberschatz, Korth and Sudarshan (modificado)7.3.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
©Silberschatz, Korth and Sudarshan (Modificado)1.1Database System Concepts Capítulo 1: Introdução Função dos Sistemas de Bases de Dados Visão dos dados.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
Linguagem SQL Prof. Juliano.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
©Silberschatz, Korth and Sudarshan (modificado)9.2.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
©Silberschatz, Korth and Sudarshan (modificado)6.1.1Database System Concepts Capítulo 6: Integridade e Segurança Restrições ao Domínio Integridade Referencial.
©Silberschatz, Korth and Sudarshan (modificado)10.2.1Database System Concepts Capítulo 10: XML XML para transferência de dados Estrutura hierárquica do.
©Silberschatz, Korth and Sudarshan (modificado)7.3.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
Sumário 1 SQL Embutida 2 Processamento de Consultas
©Silberschatz, Korth and Sudarshan (Modificado)3.4.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
©Silberschatz, Korth and Sudarshan (modificado)7.4.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
2.1.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos.
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação Usando Conjuntos.
©Silberschatz, Korth and Sudarshan (modificado)7.1.1Database System Concepts Capítulo 7: Design de Bases de Dados Objectivos com Design de Bases de Dados.
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
PostgreSQL Índices Nuno Campos N.º Nuno Campos - N.º Índice Introdução Tipos de Índices – B-Tree – R-Tree – Hash – GiST Classes de Operadores.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Modelo Relacional Marcelo Mendes Manaus – 2015.
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
©Silberschatz, Korth and Sudarshan (modificado)6.1.1Database System Concepts Capítulo 6: Integridade e Segurança Restrições ao Domínio Integridade Referencial.
UCSal – Bacharelado em Informática
Modelo de Entidade-relacionamento
Modelo relacional Fundamentos de Banco de Dados
Álgebra Relacional Prof.: José Antônio da Cunha CEFET-RN
Álgebra Relacional Vania Bogorny.
Transcrição da apresentação:

©Silberschatz, Korth and Sudarshan (Modificado)3.2.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução a tabelas de uma Esquema ER Álgebra Relacional Operações Estendidas da Álgebra Relacional Modificação da Base de Dados Vistas

©Silberschatz, Korth and Sudarshan (Modificado)3.2.2Database System Concepts Linguagem de Consulta/Interrogação Linguagem a que o utilizador recorre para obter informação a partir da base de dados. Categorias de linguagens  procedimentais  declarativas Linguagens “Puras”:  Álgebra Relacional  Cálculo Relacional de Tuplos  Cálculo Relacional de Domínios As linguagens puras formam a base teórica das linguagens de consulta utilizadas na prática.

©Silberschatz, Korth and Sudarshan (Modificado)3.2.3Database System Concepts Álgebra Relacional Linguagem declarativa Seis operadores básicos  selecção  projecção  união  diferença de conjuntos  produto cartesiano  renomeação Os operadores têm como argumentos relações de entrada e devolvem uma relação como resultado.

©Silberschatz, Korth and Sudarshan (Modificado)3.2.4Database System Concepts Operação de Selecção – Exemplo Relação r ABCD    A=B ^ D > 5 (r) ABCD  

©Silberschatz, Korth and Sudarshan (Modificado)3.2.5Database System Concepts Operação de Selecção Notação:  p (r) p é designado por predicado de selecção Definida como:  p ( r) = {t | t  r e p(t)} Em que p é uma fórmula do cálculo proposicional constituída por termos ligados por:  (e),  (ou),  (não) Cada termo é da forma: op ou em que op pode ser: =, , >, . <.  Exemplo de selecção:  branch-name=‘Perryridge’ (account)

©Silberschatz, Korth and Sudarshan (Modificado)3.2.6Database System Concepts Operação de Projecção – Exemplo Relação r: ABC  AC  = AC   A,C (r)

©Silberschatz, Korth and Sudarshan (Modificado)3.2.7Database System Concepts Operação de Projecção Notação:  A1, A2, …, Ak (r) em que A 1,..., A k são nomes de atributos e r é uma relação. O resultado é a relação com as k colunas obtidas eliminando as colunas que não estão listadas São removidas as linhas duplicadas no resultado, dado que as relações são conjuntos E.g. eliminar o atributo branch-name de account  account-number, balance (account)

©Silberschatz, Korth and Sudarshan (Modificado)3.2.8Database System Concepts Operação de União – Exemplo Relações r, s: r  s: AB  AB  2323 r s AB 

©Silberschatz, Korth and Sudarshan (Modificado)3.2.9Database System Concepts Operação de União Notação: r  s Definida como: r  s = {t | t  r ou t  s} Para r  s ser válida: 1. r, s devem ter a mesma aridade (igual número de atributos) 2. Os domínios dos atributos têm de ser compatíveis (e.g., os valores da 2ª coluna de r são do mesmo tipo dos valores da 2ª coluna de s) E.g. determinar quais os clientes que têm uma conta ou um empréstimo  customer-name (depositor)   customer-name (borrower)

©Silberschatz, Korth and Sudarshan (Modificado)3.2.10Database System Concepts Operação de Diferença de Conjuntos-Ex. Relações r, s: r – s : AB  AB  2323 r s AB  1111

©Silberschatz, Korth and Sudarshan (Modificado)3.2.11Database System Concepts Operação de Diferença de Conjuntos Notação: r – s Definida como: r – s = {t | t  r e t  s} As diferenças de conjuntos só podem ser efectuadas entre relações compatíveis.  r e s devem ter a mesma aridade  os domínios dos atributos de r e s devem ser compatíveis

©Silberschatz, Korth and Sudarshan (Modificado)3.2.12Database System Concepts Operação de Produto Cartesiano-Ex. Relations r, s: r x s: AB  1212 AB  CD  E aabbaabbaabbaabb CD  E aabbaabb r s

©Silberschatz, Korth and Sudarshan (Modificado)3.2.13Database System Concepts Operação de Produto Cartesiano Notação: r x s Definida como: r x s = {t q | t  r e q  s} Assume que os atributos de r(R) e s(S) são disjuntos. (Ou seja, R  S =  ). Se os atributos de r(R) e s(S) não são disjuntos, então têm que se utilizar renomeações.

©Silberschatz, Korth and Sudarshan (Modificado)3.2.14Database System Concepts Composição de Operações Pode-se construir expressões combinando 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

©Silberschatz, Korth and Sudarshan (Modificado)3.2.15Database System Concepts Operação de Renomeação Permite dar um nome, e portanto referir, aos resultados de expressões de álgebra relacional. Permite que uma relação seja referida por mais de um nome. Exemplo:  x (E) Devolve a expressão E com o nome X Se uma expressão de álgebra relacional E tem aridade n, então  x (A1, A2, …, An) (E) Devolve a expressão E com o nome X, e com os atributos renomeados para A 1, A2, …., An.

©Silberschatz, Korth and Sudarshan (Modificado)3.2.16Database System Concepts Definição Formal Uma expressão básica na álgebra relacional é:  Uma relação na base de dados  Uma relação constante Sejam E 1 e E 2 expressões de álgebra relacional; então todas as expressões abaixo são expressões de álgebra relacional:  E 1  E 2  E 1 - E 2  E 1 x E 2   p (E 1 ), P é um predicado nos atributos de E 1   s (E 1 ), S é uma lista com alguns dos atributos de E 1   x (E 1 ), x é um novo nome para o resultado de E 1

©Silberschatz, Korth and Sudarshan (Modificado)3.2.17Database System Concepts Exemplo Bancário branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-only) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number)

©Silberschatz, Korth and Sudarshan (Modificado)3.2.18Database System Concepts Consultas de Exemplo Determinar todos os empréstimos superiores a $1200  amount > 1200 (loan) Encontrar os números dos empréstimos de montante superior a $1200  loan-number (  amount > 1200 (loan))

©Silberschatz, Korth and Sudarshan (Modificado)3.2.19Database System Concepts Consultas de Exemplo Listar os nomes de todos os clientes que têm um empréstimo, uma conta, ou ambas as coisas  customer-name (borrower)   customer-name (depositor) Encontrar os clientes que têm um empréstimo e uma conta no banco.  customer-name (borrower)   customer-name (depositor)

©Silberschatz, Korth and Sudarshan (Modificado)3.2.20Database System Concepts Consultas de Exemplo Determinar todos os clientes que têm um empréstimo na agência de Perryridge.  customer-name (  branch-name=‘Perryridge ’ (  borrower.loan-number = loan.loan-number (borrower x loan))) Listar os nomes dos clientes que possuem um empréstimo na agência de Perryridge mas que não tem nenhuma conta no banco.  customer-name (  branch-name = ‘Perryridge’ (  borrower.loan-number = loan.loan-number ( borrower x loan ))) –  customer-name ( depositor )

©Silberschatz, Korth and Sudarshan (Modificado)3.2.21Database System Concepts Consultas de Exemplo Determinar todos os clientes que têm um empréstimo na agência de Perryridge.  Query 1  customer-name (  branch-name = ‘Perryridge’ (  borrower.loan-number = loan.loan-number (borrower x loan)))  Query 2  customer-name (  loan.loan-number = borrower.loan-number ( (  branch-name = ‘Perryridge’ (loan)) x borrower) )

©Silberschatz, Korth and Sudarshan (Modificado)3.2.22Database System Concepts Consultas de Exemplo Determinar o saldo mais elevado entre todas as contas Renomear a relação account como d A consulta é:  balance (account) -  account.balance (  account.balance < d.balance (account x  d (account)))

©Silberschatz, Korth and Sudarshan (Modificado)3.2.23Database System Concepts Exemplo Clínica médicos(nEmpr,nomeM,especialidade) pacientes(nBI,nomeP,telefone,morada,idade) fármacos(codF,nomeF) consultas(nConsulta,data,nBI,nEmpr) receitas(codF,nConsulta,quantidade)

©Silberschatz, Korth and Sudarshan (Modificado)3.2.24Database System Concepts Consultas de Exemplo Quais os pacientes com mais de 50 anos de idade?  idade > 50 (pacientes) Quais os nomes dos pacientes com mais de 50 anos de idade?  nomeP (  idade > 50 (loan)) Quais os fármacos que já foram receitados em consultas da clínica?  nomeF ((  receitas.codF = fármacos.codF (receitas x fármacos))) Quais os fármacos que nunca foram receitados?  nomeF (fármacos) –  nomeF (  receitas.codF = fármacos.codF (receitas x fármacos)))

©Silberschatz, Korth and Sudarshan (Modificado)3.2.25Database System Concepts Consultas de exemplo Qual a idade do paciente mais velho?  Renomear a relação pacientes como d  A consulta é:  idade (pacientes) –  pacientes.idade (  pacientes.idade < d.idade (pacientes x  d (pacientes) ) ) E quais os (nomes dos) pacientes com essa idade?  Seja r a relação da pergunta anterior:  nomeP (  pacientes.idade = r.idade (pacientes x r))