Álgebra e cálculo relacional Andre Noel
Introdução
Introdução A SQL é baseada na álgebra e no cálculo relacional
Introdução A SQL é baseada na álgebra e no cálculo relacional O modelo de dados precisa incluir um conjunto de operações para manipular o banco de dados
Introdução A SQL é baseada na álgebra e no cálculo relacional O modelo de dados precisa incluir um conjunto de operações para manipular o banco de dados O conjunto básico de operações para o modelo relacional é a álgebra relacional
Expressões da álgebra relacional
Expressões da álgebra relacional Solicitações de recuperação básicas
Expressões da álgebra relacional Solicitações de recuperação básicas O resultado é uma nova relação
Expressões da álgebra relacional Solicitações de recuperação básicas O resultado é uma nova relação Uma sequência de operações da álgebra relacional forma uma expressão da álgebra relacional Cujo resultado também será uma relação
A importância da álgebra relacional
A importância da álgebra relacional Oferece um alicerce formal para as operações do modelo relacional
A importância da álgebra relacional Oferece um alicerce formal para as operações do modelo relacional É usada como base para a implementação e otimização das consultas nos módulos de otimização e processamento das consultas
A importância da álgebra relacional Oferece um alicerce formal para as operações do modelo relacional É usada como base para a implementação e otimização das consultas nos módulos de otimização e processamento das consultas
A importância da álgebra relacional Oferece um alicerce formal para as operações do modelo relacional É usada como base para a implementação e otimização das consultas nos módulos de otimização e processamento das consultas Alguns de seus conceitos são incorporados à linguagem SQL
Cálculo relacional
Cálculo relacional Álgebra relacional
Cálculo relacional Álgebra relacional Conjunto de operações
Cálculo relacional Álgebra relacional Cálculo relacional Conjunto de operações
Cálculo relacional Álgebra relacional Conjunto de operações Cálculo relacional Linguagem declarativa de alto nível
Operações da álgebra relacional Teoria de conjuntos: UNIÃO INTERSECÇÃO DIFERENÇA PRODUTO CARTESIANO
Operações da álgebra relacional Teoria de conjuntos: Bancos de dados UNIÃO SELEÇÃO INTERSECÇÃO PROJEÇÃO DIFERENÇA JUNÇÃO PRODUTO CARTESIANO
Operações da álgebra relacional Teoria de conjuntos: Bancos de dados UNIÃO SELEÇÃO INTERSECÇÃO PROJEÇÃO DIFERENÇA JUNÇÃO PRODUTO CARTESIANO Unárias Binária
Operações relacionais unárias
Operações relacionais unárias SELEÇÃO
Operações relacionais unárias SELEÇÃO Usada para escolher um subconjunto de tuplas que satisfaça uma condição de seleção
Operações relacionais unárias SELEÇÃO Usada para escolher um subconjunto de tuplas que satisfaça uma condição de seleção Ex: Selecionar a tupla funcionário cujo departamento é 4, ou aqueles que têm salário maior que 30.000
Operações relacionais unárias SELEÇÃO Usada para escolher um subconjunto de tuplas que satisfaça uma condição de seleção Ex: Selecionar a tupla funcionário cujo departamento é 4, ou aqueles que têm salário maior que 30.000 Dnr=4(FUNCIONARIO)
Operações relacionais unárias SELEÇÃO Usada para escolher um subconjunto de tuplas que satisfaça uma condição de seleção Ex: Selecionar a tupla funcionário cujo departamento é 4, ou aqueles que têm salário maior que 30.000 Dnr=4(FUNCIONARIO) Salario>30000(FUNCIONARIO)
Operações relacionais unárias SELEÇÃO Usada para escolher um subconjunto de tuplas que satisfaça uma condição de seleção Ex: Selecionar a tupla funcionário cujo departamento é 4, ou aqueles que têm salário maior que 30.000 Dnr=4(FUNCIONARIO) Salario>30000(FUNCIONARIO) {< Pietro >}
Operações relacionais unárias SELEÇÃO Usada para escolher um subconjunto de tuplas que satisfaça uma condição de seleção Ex: Selecionar a tupla funcionário cujo departamento é 4, ou aqueles que têm salário maior que 30.000 Dnr=4(FUNCIONARIO) Salario>30000(FUNCIONARIO) No geral: <condição>(r)
Operações relacionais unárias SELEÇÃO Usada para escolher um subconjunto de tuplas que satisfaça uma condição de seleção Ex: Selecionar a tupla funcionário cujo departamento é 4, ou aqueles que têm salário maior que 30.000 Dnr=4(FUNCIONARIO) Salario>30000(FUNCIONARIO) No geral: <condição>(r) Costuma ser uma expressão da álgebra relacional, que retorna uma relação.
Operações relacionais unárias SELEÇÃO Usada para escolher um subconjunto de tuplas que satisfaça uma condição de seleção Ex: Selecionar a tupla funcionário cujo departamento é 4, ou aqueles que têm salário maior que 30.000 Dnr=4(FUNCIONARIO) Salario>30000(FUNCIONARIO) No geral: <condição>(r) A condição é aplicada a capa tupla, individualmente
Operações relacionais unárias SELEÇÃO A operação de SELEÇÃO é comutativa <cond1>( <cond2>(r)) = <cond2>( <cond1>(r))
Operações relacionais unárias SELEÇÃO A operação de SELEÇÃO é comutativa <cond1>( <cond2>(r)) = <cond2>( <cond1>(r)) Podemos combinar uma sequência de seleções em uma condição conjuntiva <cond1>( <cond2>(...( <condn>(r))..)) = <cond1> <cond2>and...and<condn>(r) AND
Operações relacionais unárias PROJEÇÃO
Operações relacionais unárias PROJEÇÃO A operação de SELEÇÃO escolhe algumas linhas da relação enquanto descarta outras linhas A operação de PROJEÇÃO escolhe certas colunas e descarta outras Unome,Pnome,Salario(FUNCIONARIO) No geral <lista de atributos>(r)
Operações relacionais unárias
Operações relacionais unárias PROJEÇÃO O número de tuplas em uma operação de PROJEÇÃO é sempre menor ou igual ao número de tuplas em R.
Operações relacionais unárias PROJEÇÃO O número de tuplas em uma operação de PROJEÇÃO é sempre menor ou igual ao número de tuplas em R. <lista1>( <lista2>(r)) = <lista1>(r), se lista2 tiver os atributos que tem em lista1 (caso contrário dá erro)
Operações relacionais unárias PROJEÇÃO O número de tuplas em uma operação de PROJEÇÃO é sempre menor ou igual ao número de tuplas em R. <lista1>( <lista2>(r)) = <lista1>(r), se lista2 tiver os atributos que tem em lista1 (caso contrário dá erro) A comutatividade não é mantida em
Operações relacionais unárias Sequência de operações Unome,Pnome,Salario( Dnr=5(FUNCIONARIO))
Operações relacionais unárias Sequência de operações Unome,Pnome,Salario( Dnr=5(FUNCIONARIO))
Operações relacionais unárias Sequência de operações Unome,Pnome,Salario( Dnr=5(FUNCIONARIO)) Nomes intermediários FUNCS_DEPT5 Dnr=5(FUNCIONARIO) RESULTADO Unome,Pnome,Salario(FUNCS_DEPT5)
Operações relacionais unárias Sequência de operações Unome,Pnome,Salario( Dnr=5(FUNCIONARIO)) Nomes intermediários FUNCS_DEPT5 Dnr=5(FUNCIONARIO) RESULTADO Unome,Pnome,Salario(FUNCS_DEPT5) RENOMEAR S(B1, B2,, Bn)(R) ou S(R) ou (B1, B2,, Bn)(R)
Teoria de conjuntos
Teoria de conjuntos UNIÃO, INTERSECÇÃO E SUBTRAÇÃO FUNCS_DEPT5 Dnr=5(FUNCIONARIO) RESULTADO1 Cpf(FUNCS_DEPT5) RESULTADO2(Cpf) Cpf_supervisor(FUNCS_DEPT5) RESULTADO RESULTADO1 RESULTADO2
Teoria de conjuntos UNIÃO, INTERSECÇÃO E SUBTRAÇÃO FUNCS_DEPT5 Dnr=5(FUNCIONARIO) RESULTADO1 Cpf(FUNCS_DEPT5) RESULTADO2(Cpf) Cpf_supervisor(FUNCS_DEPT5) RESULTADO RESULTADO1 RESULTADO2
Teoria de conjuntos
Teoria de conjuntos PRODUTO CARTESIANO (Ou JUNÇÃO CRUZADA) FUNC_MULHERES Sexo= F (FUNCIONARIO) FUNC_NOMES PNome,Unome,Cpf(FUNC_MULHERES) FUNC_DEPENDENTES FUNC_NOMES DEPENDENTE DEPENDENTE_PARTIC Cpf=FCpf(FUNC_DEPENDENTES) RESULTADO PNome,Unome,Nome_dependente(DEPENDENTE_PARTIC)
Operações relacionais binárias JUNÇÃO
Operações relacionais binárias JUNÇÃO Operador
Operações relacionais binárias JUNÇÃO
Operações relacionais binárias
Operações relacionais binárias
Forma geral
Forma geral
Condição de junção
EQUIJUNÇÃO Uma junção que usa apenas o comparador =
JUNÇÃO NATURAL Junção com par de valores idênticos (mesmo nome)
JUNÇÃO NATURAL Junção com par de valores idênticos (mesmo nome)
JUNÇÃO NATURAL Junção com par de valores idênticos (mesmo nome)
DIVISÃO Operador
DIVISÃO Operador Útil pra um tipo especial de consulta. Ex: Recuperar os nomes dos funcionários que trabalham em todos os projetos em que João Silva trabalha
Ex: Recuperar os nomes dos funcionários que trabalham em todos os projetos em que João Silva trabalha
Ex: Recuperar os nomes dos funcionários que trabalham em todos os projetos em que João Silva trabalha
Ex: Recuperar os nomes dos funcionários que trabalham em todos os projetos em que João Silva trabalha
Operações de álgebra relacional
Árvore de consulta
Árvore de consulta
Árvore de consulta