Álgebra Relacional. Linguagens de consultas relacionais



Documentos relacionados
Modelo Relacional Álgebra Relacional

Bases de Dados BDDAD. Álgebra Relacional. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/33

Bases de Dados 2013/2014 Álgebra Relacional. Helena Galhardas 2013 IST. Bibliografia. Raghu Ramakrishnan, Database Management Systems, Cap.

Álgebra Relacional. Banco de Dados. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Profa. Dra. Cristina Dutra de Aguiar Ciferri

António Rocha Nuno Melo e Castro

Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções

Álgebra Relacional. Banco de Dados. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Operações Relacionais Binárias. Junção Divisão

Álgebra Relacional. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Modelagem de Dados. Prof. Paulo Cesar F. De Oliveira, BSc, PhD. Álgebra Relacional

Seleção, Projeção, Produto Cartesiano e Junção

Operações relacionais e Álgebra relacional

Álgebra Relacional. Programa. Modelos de Dados. LCs relacionais formais. Introdução

Aula 8 BD1 Álgebra Relacional. Profa. Elaine Faria UFU

SQL: Uma Linguagem de Consulta

SQL: Uma Linguagem de Consulta. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento)

Orientação a Objetos

Lista de Exercícios 5: Soluções Teoria dos Conjuntos

1. Álgebra Relacional e Operações Relacionais

Roteiro. Mapeamento dos Modelos ER e EER. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento

Matrizes e Sistemas Lineares. Professor: Juliano de Bem Francisco. Departamento de Matemática Universidade Federal de Santa Catarina.

Bibliografia. Bases de Dados 2013/2014 Linguagem SQL. Helena Galhardas. Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 10/23/ IST

Forma Normal de Boyce-Codd

Estruturas de Repetição

Roteiro da aula. MA091 Matemática básica. Conjuntos. Subconjunto. Aula 12 Conjuntos. Intervalos. Inequações. Francisco A. M. Gomes.

1 Teoria de conjuntos e lógica

Uma Proposta para Bancos de Dados Categoriais

1. À primeira coluna (P), atribui-se uma quantidade de valores V igual à metade do total de linhas

Matemática - Módulo 1

INE 5323 Banco de Dados I

ÁLGEBRA E CÁLCULO RELACIONAL

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -

Bases Matemáticas. Daniel Miranda de maio de sala Bloco B página: daniel.miranda

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Tipos de Banco de Dados - Apresentação

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

Capítulo VI Circuitos Aritméticos

Relações. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC MD Relações 1

Álgebra Relacional e SQL operações de interesse

Álgebra Linear AL. Luiza Amalia Pinto Cantão. Depto. de Engenharia Ambiental Universidade Estadual Paulista UNESP

Comandos de Desvio 1

Linguagem de Programação I

Modelo Entidade Relacionamento (MER)

Linguagens de Programação:

Processamento de Imagens e Fotografia Digital

Álge g bra b B ooleana n Bernardo Gonçalves

21- EXERCÍCIOS FUNÇÕES DO SEGUNDO GRAU

ROTEIRO. Operações da Álgebra Relacional Operadores Binários da Álgebra Relacional Produto Cartesiano

RACIOCÍNIO LÓGICO QUANTITATIVO

CURSO PRÉ-VESTIBULAR MATEMÁTICA AULA 2 TEORIA DOS CONJUNTOS

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 7

Características das Figuras Geométricas Espaciais

IEC Banco de Dados I Aula 06 Álgebra Relacional

Roteiro. Modelagem com Entidade-Relacionamento Estendido. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa.

SQL: Consultas, Programação, Gatilhos

O que é Microsoft Excel? Microsoft Excel. Inicialização do Excel. Ambiente de trabalho

CRIANDO MAPAS TEMÁTICOS COM SETORES CENSITÁRIOS DE SÃO PAULO

Aula 9 BD 1 SQL Parte 1. Profa. Elaine Faria UFU

Aula 1 Conjuntos Numéricos

Matemática Básica Intervalos

Projeto de Distribuição de Banco de Dados

GEOMETRIA ANALÍTICA II

Circuitos Aritméticos

Departamento de Matemática da Universidade de Coimbra Álgebra Linear e Geometria Analítica Engenharia Civil Ano lectivo 2005/2006 Folha 1.

ÁLGEBRA BOOLEANA- LÓGICA DIGITAL

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Teoria Básica e o Método Simplex. Prof. Ricardo Santos

SÍMBOLOS MATEMÁTICOS. adição Lê-se como "mais" Ex: 2+3 = 5, significa que se somarmos 2 e 3 o resultado é 5.

O Modelo Relacional. Criando relações em SQL

O SOROBAN COMO INSTRUMENTO PARA O DESENVOLVIMENTO DAS OPERAÇÕES MATEMÁTICAS

=...= 1,0 = 1,00 = 1,000...

Bacharelado em Ciência da Computação UFU Disciplina GBC053 Gerência de Banco de Dados Profa. Sandra de Amo

Determinantes. Matemática Prof. Mauricio José

O Modelo Relacional. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento)

ESCOLA SUPERIOR DE TECNOLOGIA DE VISEU

Simplificação de Expressões Booleanas e Circuitos Lógicos

ORIENTAÇÕES: 1) Considere as expressões algébricas dos quadros abaixo: Responda às perguntas:

Em linguagem matemática, essa proprieade pode ser escrita da seguinte maneira: x. 1 = x Onde x representa um número natural qualquer.

BC-0504 Natureza da Informação

Os eixo x e y dividem a circunferência em quatro partes congruentes chamadas quadrantes, numeradas de 1 a 4 conforme figura abaixo:

Sinais e Sistemas Unidade 2 Conceitos de Matemática de Variável Complexa

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

As operações de adição, subtração e multiplicação são feitas de maneira natural, considerando-se o número complexo como um binômio.

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

RACIOCÍNIO LÓGICO Simplificado

TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

FOLHA DE CÁLCULO VAMOS APRENDER

TIN0036 Bancos de Dados Distribuídos e Data Warehousing. PRIMEIRA LISTA DE EXERCÍCIOS Individual GABARITO

Planilha Eletrônica - Microsoft Excel -

Álgebra Relacional: Prod. Cartesiano. Álgebra Relacional: Projeção. Álgebra Relacional: Junção Natural. Álgebra Relacional: Junção. 1.

Análise de Regressão. Notas de Aula

Introdução ao determinante

Resolução de sistemas de equações lineares: Método de eliminação de Gauss

Matemática. A probabilidade pedida é p =

Resolução do exemplo 8.6a - pág 61 Apresente, analítica e geometricamente, a solução dos seguintes sistemas lineares.

Álgebra Relacional e SQL

O Modelo e a Álgebra Relacional

Arquitetura de Banco de Dados

Transcrição:

Álgebra Relacional 1 Linguagens de consultas relacionais Linguagens de consultas: Permitem manipulação e recuperação de dados de um BD. O modelo relacional suporta LCs simples e poderosas: Forte fundamentação teórica baseada em lógica. Permite otimizações. Ling. de consulta ling. de programação LCs não tem a intenção de suportar cálculos complexos. LCs suportam acesso fácil e eficiente a grandes conjuntos de dados. 2 1

LCs relacionais formais Duas LCs matemáticas formam a base para as LCs reais (p.ex., SQL), e p/ implementação: ❶ Álgebra relacional: Predominantemente operacional, útil para representar planos de execução. ❷ Cálculo Relacional : Permite usuários descreverm o que querem, ao invés de como querem. (nãooperacional, declarativa.) Entender álgebra e cálculo e uma chave para entender SQL e processamento de consultas. 3 Preliminares Uma consulta é aplicada para instâncias de relação, e o resultado de uma consulta é também uma instância de relação. Esquemas de consumo relações para uma consulta são fixadas (mas consultas rodarão independente de exemplos!) O esquema para o resultado de uma propensa consulta é também fixada! Determinada por definição de construção de linguagem de consulta. 4 2

Example Instances Relações Sailors e Reserves para nossos exemplos. Usaremos positional ou named field notation, assume que nomes de campos em resultados de consulta são `herdados de nomes de campos em relações gastos de consulta. S1 S2 R1 sid bid day 22 101 10/10/96 58 103 11/12/96 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 5 Algebra Relacional Operações Básicas: σ Selection ( ) Seleciona em sub-conjunto de fileiras da relação. Projection( π ) Deleta colunas indesejadas da relação. Cross-product ( ) Permite-nos combinar duas relações. Set-difference ( ) Tuplas em reln. 1, mas não em reln. 2. Union( ) Tuplas em reln. 1 e em reln. 2. Operações Adicionais: Intersecção, junção, divisão, renomear Desde que cada operação retorna uma relação, operações podem ser compostas! 6 3

Projeção Deleta atributos que não estão na lista de projeção. Esquema de resultado contem exatamente o campo na lista de projeção, com os mesmos nomes que eles tinham na (somente) relação gasto. Operador de projeção tem eliminar duplicadas! (Porque??) Note: sistemas reais tipicamente não fazem eliminação duplicada a menos que o usuário explicitamente peça isso.(porque não?) sname yuppy 9 lubber 8 guppy 5 rusty 10 rating π ( S2) sname, rating age 35.0 55.5 π age ( S2) 7 Seleção Seleciona fileiras que satisfazem condição seleção. Não duplica no resultado! (Porque?) Esquema de resultado idêntico para esquema de (somente) relação gasto. Relação de Resultado pode ser usado para outra operação de algebra relacional! 28 yuppy 9 35.0 58 rusty 10 35.0 σ S rating >8 2) π sname rating yuppy 9 rusty 10 σ ( ( S )) sname, rating rating >8 2 8 4

União, Intersecção, Diferença de Conjuntos Todas estas operações tomam duas relações de gastos, com os quais tem ser union-compatible: Mesmo número de campos. Campos `correspondentes tem o mesmo tipo. O que é o esquema de resultado? 22 dustin 7 45.0 S1 S2 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 44 guppy 5 35.0 28 yuppy 9 35.0 S1 S2 31 lubber 8 55.5 58 rusty 10 35.0 S1 S2 9 Produto Cartesiano Cada fileira de S1 é combinada com cada fileira de R1. Esquema resultante tem um campo por campo S1 e R1, com nomes campos`herdados se possível. Conflito: Ambos S1 e R1 tem um campo chamado sid. (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 Operador renomear: ρ ( C( 1 sid15, sid2), S1 R1) 10 5

Junções Condição Junção: R c S = σ c ( R S) (sid) sname rating age (sid) bid day 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 58 103 11/12/96 S 1 R S1sid R1sid 1. <. Result schema o mesmo que do produto cartesiano Poucas tuplas do que produto cartesiano, tem que estar disponíveis para computar mais eficientemente. Algumas vezes chamada um theta-join. 11 Joins Equijoin: Um caso especial de condição junção onde a condição c contem somente igualdades. bid day 22 dustin 7 45.0 101 10/10/96 58 rusty 10 35.0 103 11/12/96 S1 R1 sid Result schema parecido com produto cartesiano, mas somente uma copia de campos para o qual igualdade é especificada. Natural Join: Equijoin em todos campos iguais. 12 6

Division Não suportado como um operador primitivo, mas útil para expressar consultas como: Find sailors who have reserved all boats. Seja A com dois campos, x e y; e B com apenas y: A/B = { x x, y A y B} i.e., A/B contém todas as tuplas (sailors) tais que para cada tupla y (boat) em B, há uma tupla xy em A. Ou: Se o conjunto de valores y (boats) associados com um valor x (sailor) em A contem todos os valores y em B, o valor x está em A/B. Em geral x e y podem estar em qualquer listas de campos; y é a lista de campo em B, e x é a lista de campos de A. 13 Examples of Division A/B sno s2 s2 s3 s4 s4 A pno p1 p3 p4 p1 p4 pno B1 sno s2 s3 s4 pno p4 B2 sno s4 pno p1 p4 B3 sno A/B1 A/B2 A/B3 14 7

Expressando A/B Usando Operadores Básicos Divisão não é operador essencial; só uma útil taquigrafia. Também é o caso de joins, mas joins são tão comuns que muito sistemas o implementam. Idéia: Para A/B, calcule todos valores x que não são disqualificados por algum y em B. x é disqualificado se ao juntar um y de B, obtemos uma tupla xy que não está em A. Disqualified x values: A/B: π x (( π x ( A) B) A) π x ( A) all disqualified tuples 15 Encontre os nomes dos sailors que reservaram o barco # 103 Solução 1: π (( σ Re serves ) Sailors) sname bid =103 Solução 2: ρ ( Temp1, σ Re serves) bid =103 ρ ( Tem, Temp1 Sailors) π sname ( Tem) Solução 3: πsname( σ (Re serves Sailors)) bid =103 16 8

Encontre nomes dos sailors que reservaram um barco vermelho Informação sobre cor disponível somente em barcos; assim precisa de uma junção extra: π sname (( σ Boats) Re serves Sailors) color = ' red ' Uma solução mais eficiente: π sname ( π π σ sid (( Boats) Re s) Sailors) bid color = ' red ' Um otimizador de consulta pode fazer isso a partir da primeira solução! 17 Encontre nomes dos sailors que reservaram um barco vermelho ou verde Pode identificar todos os barcos vermelhos ou verdes, então achar sailors que tenham reservado um destes barcos: ρ ( Tempboats,( σ )) color = ' red ' color = ' green' Boats π sname ( Tempboats Re serves Sailors) Também pode-se definir Tempboats usando união (?) E se é substituido por nesta consulta? 18 9

Encontre os sailors que reservaram um barco vermelho e um barco verde Idéia anterior não funciona! Deve-se identificar os sailor que reservaram barcos vermelhos, aqueles que reservaram barcos verdes e encontrar a interseção destes: ρ ( Tempred, π (( σ Boats) Re serves)) sid color = ' red ' ρ ( Tempgreen, π (( σ Boats) Re serves)) sid color = ' green' π sname (( Tempred Tempgreen) Sailors) 19 Encontre sailors que reservaram todos os barcos Usando divisão, esquemas a serem divididos devem ser cuidadosamente escolhidos: ρ ( Tempsids,( π Re serves) / ( π )) sid, bid bid Boats π sname ( Tempsids Sailors) P/ encontrar sailors que reservaram os barcos Interlake :... / π ( σ ) bid bname= ' Interlake' Boats 20 10