9. Noções de álgebra e cálculo relacional REDES DE COMPUTADORES E LÓGICA PARA COMPUTAÇÃO - EDITAL Nº 90/2024 Prof. Me. Caio César de Freitas Dantas
Objetivos Compreender os conceitos básicos de álgebra relacional. Entender os princípios do cálculo relacional. Diferenciar álgebra relacional e cálculo relacional. Aplicar operações relacionais em consultas a bancos de dados. Relacionar esses conceitos com SQL. 2 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Introdução Introdução aos Bancos de Dados Relacionais Definição de banco de dados relacional. Estrutura: tabelas, atributos, tuplas e chaves. Importância da álgebra e cálculo relacional para consultas. 3 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Introdução Linguagens de consulta: 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 4 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Introdução Duas LCs matemáticas formam a base para as LCs “reais” (p.ex., SQL), e p/ implementação: 1. Álgebra relacional: Predominantemente operacional, útil para representar planos de execução 2. Cálculo Relacional : Permite usuários descreverm o que querem, ao invés de como querem (não operacional, declarativa) Entender álgebra e cálculo é uma chave para entender SQL e processamento de consultas. 5 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Definição Conjunto básico de operações que nos permitem manipular relações no modelo relacional. As operações da álgebra relacional produzem novas relações, ou seja, a aplicação de uma operação da álgebra relacional tem sempre como resultado uma nova relação. As relações obtidas por utilização das operações da álgebra relacional podem ser igualmente utilizadas em outras operações da álgebra. 6 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Definição Uma sequência de operações da álgebra relacional forma uma expressão cujo resultado é uma relação que representa o resultado de uma consulta à base de dados. A álgebra relacional é utilizada principalmente como formalismo para implementar e optimizar consultas no modelo relacional. A linguagem SQL incorpora alguns dos conceitos da álgebra relacional. 7 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Importância A álgebra relacional é muito importante por diversos motivos: Oferece um alicerce formal para as operações do modelo relacional. É usada como base para a implementação e otimização de consultas nos módulos de otimização e processamento de consulta, que são partes integrais dos sistemas de gerenciamento de banco de dados relacional ( SGBDRs ). Alguns de seus conceitos são incorporados na linguagem de consulta padrão SQL para SGBDRs . 8 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Operações Básicas Seleção () : Filtra as tuplas de uma relação. Projeção () : Seleciona colunas específicas. Renomeação (): usado para atribuir um novo nome União () : Combina duas relações distintas. Diferença () : Encontra diferenças entre duas relações. Produto Cartesiano () : Combina cada tupla de uma relação com todas da outra. 9 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Seleção Definição: filtra tuplas de uma relação com base em uma condição. Sintaxe: σ<condição>(R) Exemplo: σ<salário > 3000>(Funcionários) 10 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Seleção Definição: filtra tuplas de uma relação com base em uma condição. Sintaxe: σ<condição>(R) Exemplo: σ<salário > 3000>(Funcionários) EXEMPLO COM TABELAS 11 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Renomeação R( unome,pnome,salario ) ← π lname , pname , salary (EDEP5) Operação renomear, denotada por ρ: Renomeando a relação: ρS (R) Renomeando os atributos: ρunome,pnome , salario(R) Renomeando a relação e seus atributos: ρS ( unome,pnome , salario)(R) 16 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – União Definição: combina tuplas de duas relações, eliminando duplicatas. Requisito: relações devem ser compatíveis (mesmos atributos). Sintaxe: R ∪ S Exemplo: Funcionários ∪ Gerentes 17 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – União Definição: combina tuplas de duas relações, eliminando duplicatas. Requisito: relações devem ser compatíveis (mesmos atributos). Sintaxe: R ∪ S Exemplo: Funcionários ∪ Gerentes EXEMPLO COM TABELAS 18 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Diferença Definição: retorna tuplas presentes em uma relação, mas não em outra. Sintaxe: R − S Exemplo: Funcionários − Gerentes 19 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Diferença Definição: retorna tuplas presentes em uma relação, mas não em outra. Sintaxe: R − S Exemplo: Funcionários − Gerentes EXEMPLO COM TABELAS 20 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Produto Cartesiano Definição: combina todas as tuplas de duas relações. Sintaxe: R × S Exemplo: Funcionários × Departamentos 21 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Produto Cartesiano Definição: combina todas as tuplas de duas relações. Sintaxe: R × S Exemplo: Funcionários × Departamentos EXEMPLO COM TABELAS 22 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Operações Derivadas Interseção () : Retorna apenas elementos comuns a ambas as relações. Junção () : Combina tuplas com valores comuns. Divisão () : Encontra subconjuntos relacionados 23 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Interseção R Ç M retorna uma instância de relaçãocontendotodas as tuplas que ocorrememambasReM – As relações R e M devemser compatíveisàunião – O esquema do resultado é definidodeformaidênticaao esquema de R A opera¸c˜ao de intersec¸c˜ao ´e similar `a opera¸c˜ao de uni˜ao . Tamb´em tem como argumentos duas rela¸c˜oes compat´ıveis e o seu resultado ´e uma nova instˆancia contendo todas as tuplas que ocorrem em ambas as rela¸c˜oes . Por exemplo, a Fig. 7 mostra o resultado da intersec¸c˜ao das rela¸c˜oes S1 e S2. 24 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Junção Definição: combina tuplas de duas relações com base em uma condição. Tipos de junção: Junção natural Junção interna Junção externa Exemplo: Funcionários ⨝ Departamentos 25 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Junção Natural Definição: combina tuplas de duas relações com base em uma condição. Tipos de junção: Junção natural Junção interna Junção externa Exemplo: Funcionários ⨝ Departamentos 26 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Álgebra Relacional – Divisão Permite obter os valores de uma relação que estão combinados com todos os tuplos de outra relação. A operação de divisão é representada pela expressão R ÷ S em que ÷ é o operador de divisão e R e S são duas relações em que os atributos de S são um subconjunto dos atributos de R. O resultado da operação R(Z) ÷ S(X) é a relação T(Y), com Y = Z – X, que inclui todos os tuplos t para os quais existe um subconjunto R’ de R tal que πY(R’) = t e πX(R’) = S. A operação de divisão pode ser expressa utilizando os operadores π, × e –: R(Z) ÷ S(X) = πY(R) – πY((S × πY(R)) – R), com Y = Z – X. 27 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Cálculo Relacional – Definição Modelo formal que se baseia na lógica de predicados e que permite manipular relações no modelo relacional. O cálculo relacional tem o mesmo poder expressivo da álgebra relacional. Uma expressão do cálculo relacional é igualmente uma relação que representa o resultado de uma consulta à base de dados. As expressões do cálculo podem ser especificadas em termos de variáveis sobre os tuplos , cálculo relacional por tuplos (ou CRT), ou em termos de variáveis sobre o domínio dos atributos, cálculo relacional por domínios (ou CRD). O cálculo relacional é uma linguagem não-procedimental. Nas expressões do cálculo não se especifica o modo de obter o resultado mas sim o tipo de informação que se pretende obter. Isto difere da álgebra relacional onde é necessário especificar a sequência de operações a aplicar para obter o resultado. A linguagem SQL baseia-se em parte no cálculo relacional por tuplos . 30 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Cálculo Relacional – Definição Definição: linguagem declarativa para consultar bancos de dados. Tipos: Cálculo relacional de tuplas. Cálculo relacional de domínio. Diferença em relação à álgebra relacional (declarativo x procedural). 31 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Cálculo Relacional de Tuplas Definição: foca em tuplas de relações. Sintaxe: { t | P(t) } Exemplo: { t | t ∈ Funcionários ∧ t.salário > 3000 } 32 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Cálculo Relacional de Tuplas Definição: foca em tuplas de relações. Sintaxe: { t | P(t) } Exemplo: { t | t ∈ Funcionários ∧ t.salário > 3000 } MAIS EXEMPLOS 33 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Cálculo Relacional de Tuplas – Quantificadores Definição: foca em tuplas de relações. Sintaxe: { t | P(t) } Exemplo: { t | t ∈ Funcionários ∧ t.salário > 3000 } MAIS EXEMPLOS 34 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Cálculo Relacional de Tuplas – Expressões Seguras Quando utilizamos quantificadores ou negação numa fórmula do CRT é necessário verificar se a expressão resultante faz sentido. Uma expressão do CRT diz-se segura se é garantido que esta calcula um número finito de tuplos como resultado. Caso contrário é não-segura. Por exemplo, {e | NOT EMPREGADO(e)} é uma expressão não-segura pois calcula todos os tuplos que não são empregados! O domínio de uma expressão do CRT é o conjunto de todos os valores que ou aparecem como constantes na expressão ou existem em algum tuplo das relações referenciadas na expressão. Definição alternativa: uma expressão do CRT diz-se segura se todos os valores do seu resultado pertencem ao domínio da expressão. Caso contrário é não-segura. 35 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Comparativo entre Álgebra e Cálculo Relacional Álgebra relacional: Linguagem procedural. Define como obter o resultado. Cálculo relacional: Linguagem declarativa. Define o que se deseja obter. Equivalência expressiva: ambas são igualmente poderosas. 38 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Comparativo entre Álgebra e Cálculo Relacional Comparativo entre Álgebra e Cálculo Relacional 39 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Exemplos Práticos Consulta em álgebra relacional: π <nome> (σ<salário > 3000>(Funcionários)) Consulta em cálculo relacional de tuplas: { t | t ∈ Funcionários ∧ t.salário > 3000 } Equivalência em SQL: SELECT nome FROM Funcionários WHERE salário > 3000; 40 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Relação com SQL Álgebra relacional e cálculo relacional são a base teórica do SQL. Operações SQL correspondentes: SELECT → Projeção (π) e Seleção (σ) JOIN → Junção (⨝) UNION → União (∪) EXCEPT → Diferença (−) 41 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Aplicações Uso em sistemas de gerenciamento de banco de dados ( SGBDs ). Otimização de consultas. Projeto e análise de bancos de dados. 42 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Vantagens e Desvantagens Álgebra relacional: Vantagem: clareza e simplicidade. Desvantagem: pode ser verbosa para consultas complexas. Cálculo relacional: Vantagem: expressividade e facilidade de leitura. Desvantagem: pode ser menos intuitivo para iniciantes. 43 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão
Conclusão Recapitulação dos tópicos abordados: Álgebra relacional e suas operações. Cálculo relacional e suas variantes. Relação com SQL. Importância desses conceitos para o estudo de bancos de dados. Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão 44
Referências KUROSE, J. F.; ROSS, K. W. Redes de computadores e a Internet : uma abordagem top- down . 5ª ed. São Paulo: Pearson, 2010. 640p. TANENBAUM, A. S.; WETHERALL, D. Redes de computadores . 5ª ed. São Paulo: Pearson, 2011. 600p. COMER, D. E. Redes de computadores e Internet . 4ª ed. Porto Alegre: Bookman, 2007. 720p. FOROUZAN, B. A. Comunicação de dados e redes sem-fio . 4ª ed. Rio de Janeiro: McGraw-Hill, 2008. 1134p. 45 Introdução Definição Características Camadas Protocolos Aplicação Transporte Rede Enlace Conclusão