Álgebra Relacional - Ipp.pt

Transcription

Bases de DadosBDDADÁlgebra RelacionalNelson Freire (ISEP–LEI-BDDAD 2016/17)1/28

Álgebra Relacional1. Introdução2. Expressões Algébricas3. Álgebra Relacional Implementada em SGBDSumário5. Expressões Algébricas Simples Compostas4. Operações Algébricas Remover Parte de Relação Seleção Projeção Sobre Conjuntos União Diferença Interseção Combinar Tuplos de 2 Relações Produto Cartesiano Junção (interna) Junção Condicional (ou Teta) Equi-Junção Junção Natural Outras Renomeação DivisãoNelson Freire (ISEP–LEI-BDDAD 2016/17)2/28

Álgebra RelacionalÁlgebra Relacional É Uma linguagem Criada Ano: 1969 Autor: Codd Objetivo Especificar operações de consulta sobre a BD através de expressões algébricas. Linguagem Procedimental Expressa o procedimento para obter o resultado de consulta. Interesse Perceber como o SGBD executa as consultas SQL feitas pelo utilizadorConsulta SQLTraduzidaExpressãoAlgébricaExecutada// consultas queriesResultado(Relação) Utilizador de SGBD Usa o SQL para consultar a BD Linguagem mais apropriada Tem o mesmo poder expressivo da Álgebra RelacionalNelson Freire (ISEP–LEI-BDDAD 2016/17)3/28

Expressões AlgébricasÁlgebra Relacional1/3 Especificam Operações de consulta sobre a BD Operações Formadas por: Operandos// Operando relação (conjunto de tuplos); Exemplos: R, T e W Operadores // Aplicados a relações; Ex: (união) e - (diferença) ResultadosRELAÇÃO São relações Tipos de Expressões Algébricas SimplesAtributo 1Atributo 2 Atributo NTuplo 1Tuplo 2 Com um operador ExemploTuplo N R T Compostas Com múltiplos operadores Exemplo (R T) - WNelson Freire (ISEP–LEI-BDDAD 2016/17)4/28

Expressões AlgébricasÁlgebra Relacional2/3 Operadores RelacionaisCategoriaRemover Parte de RelaçãoSobre conjuntosCombinar Tuplos de 2 RelaçõesOperaçãoOperadorNomeSímboloSeleção sigmaProjeçãoπpiUnião Relação1 Relação2Intersecção Relação1 Relação2Diferença Relação1 Relação2Produto Cartesiano Relação1 Relação2Junção Condicionalou Junção Teta CONDIÇÃORelação1 CONDIÇÃO Relação2Equi-Junção CONDIÇÃORelação1 CONDIÇÃO Relação2Junção NaturalOutrosSintaxeσcondição(Relação)// operador unárioπlista de expressões(Relação)// operador binário// condição de igualdade (explícita)Relação1 Relação2 /* condição de igualdade implícitaentre colunas comuns */Renomeação Divisão Relação1 Relação2Atribuição variável RelaçãoNelson Freire (ISEP–LEI-BDDAD 2016/17)Róρnome(Relação)5/28

Expressões AlgébricasÁlgebra Relacional3/3 História das Operações Algébricas Operações Primitivas (Originais) Tipos Seleção Projeção União Diferença Produto Cartesiano Definem a Álgebra Relacional Não podem ser definidas a partir de outras operações Restantes Operações Adicionadas posteriormente Para simplificar/otimizar expressões algébricas Operações Derivadas (das Primitivas) Interseção// definida a partir da diferença de 2 relações (R1 e R2):R1 R2 R1 (R1 R2) JunçãoR1-R2R1R2// resulta da composição dum Produto Cartesiano seguido de uma SeleçãoR1 R2 σcondição(R1 R2) DivisãoR1 R2 πC R1 πC( πC R1 R2 R1)Nelson Freire (ISEP–LEI-BDDAD 2016/17)// C Lista de Colunas6/28

Álgebra Relacional Implementada em SGBDÁlgebra Relacional Na Álgebra Relacional Clássica (ARC) Relações Consideradas como conjuntos Sem tuplos duplicados// Por definição: conjunto não tem elementos duplicados. SGBD Raramente têm implementações puras da ARC. Em algumas situações: Relações são consideradas multiconjuntos. Permitem tuplos duplicados. Interesse Melhoria do desempenho das operações sobre relações. Resultados tipo conjunto: Obrigam a comparações de cada tuplo para detetar repetidos. Têm 2 tipos de relações: Conjunto// sem tuplos repetidos Multiconjunto// podem ter tuplos repetidosNelson Freire (ISEP–LEI-BDDAD 2016/17)7/28

Operação SeleçãoÁlgebra RelacionalOperadorTipo de Operador Unário(1 )Retorna nova relação: Com todos os tuplos da relação R quesatisfazem a condição especificada. Condição Funciona como filtro da relação R. Aplicada a cada tuplo. Expressão booleana// tem valor lógico verdadeiro (true) ou falso (false). Operadores Relacionais: , , , , , Lógicos: , , (ou )// respetivamente: and, or e not. Operandos Nomes de atributos da relação R Valores constantes Exemplos IDADE 18 IDADE 15 IDADE 20 LOCALIDADE ‘Porto’ LOCALIDADE ‘Aveiro’ LOCALIDADE ‘Braga’Nelson Freire (ISEP–LEI-BDDAD 2016/17)// atributo IDADE// atributo LOCALIDADE8/28

Álgebra RelacionalOperação Seleção2/2 ExemploNelson Freire (ISEP–LEI-BDDAD 2016/17)9/28

Operação ProjeçãoÁlgebra RelacionalOperadorπ(pi)Tipo de OperadorUnário(1 operando)Sintaxe1/2SemânticaRetorna nova relação: Com o esquema da relação R reduzidoao conjunto de atributos especificadosπLista de expressões(R)na lista. Sem tuplos duplicados. Lista de Expressões Sintaxe Expressão 1, Expressão 2, , Expressão NOracle é diferente: Admite duplicados// separador vírgula. Expressão pode ser: Nome de atributo da relação R:πNOME (ALUNO) Simples// Exemplo: NOME Seguido de indicação para renomear // Exemplo: NOME renomeado NOME ALUNOπNOME ALUNO NOME (ALUNO) Expressão aritmética envolvendo alguns atributos de R. Exemplo: VALOR * 1.23 Exemplo: VALOR COM IVA VALOR * 1.23πVALOR 1.23 (PRODUTO)πVALOR COM IVA VALOR 1.23(PRODUTO) Expressão sobre texto envolvendo algumas atributos de R.Nelson Freire (ISEP–LEI-BDDAD 2016/17)10/28

Álgebra RelacionalOperação Projeção2/2 Exemplos Álgebra Relacional ClássicaSem tuplosduplicados OracleSAILORSπAGE(SAILORS) Com tuplos duplicadosNelson Freire (ISEP–LEI-BDDAD 2016/17)11/28

Operação UniãoÁlgebra RelacionalOperadorTipo de OperadorSintaxe1/2SemânticaRetorna nova relação:Binário(2 operandos) R1 R2 Com todos os tuplos de ambas asrelações R1 e R2. Sem tuplos duplicados Requisitos Relações R1 e R2 Têm de ser compatíveis: Número de atributos:igual.// nomes podem ser diferentes. Atributos correspondentes: mesmo domínio.Nelson Freire (ISEP–LEI-BDDAD 2016/17)12/28

Operação UniãoÁlgebra Relacional2/2 Exemplo 1 – Tuplos originários da mesma relação: Sem tuplosduplicados Exemplo 2 – Tuplos originários de relações distintas: Relação 1: ALUNO (ID, NOME, MORADA) Relação 2: PROFESSOR (ID, NOME, MORADA) Relação 3 (R3): nomes e moradas de alunos e professores.R3 (πNOME,MORADA(ALUNO)) (πNOME,MORADA(PROFESSOR))R1 πNOME,MORADA(ALUNO)R2 πNOME,MORADA(PROFESSOR)R3 R1 R2Nelson Freire (ISEP–LEI-BDDAD 2016/17)// solução equivalenteoperandoscompatíveis operadoratribuição13/28

Operação DiferençaÁlgebra RelacionalOperadorTipo de OperadorSintaxe1/2SemânticaRetorna nova relação:Binário(2 operandos) R1 R2 Com todos os tuplos exclusivos darelação R1. Sem tuplos duplicados. Requisitos Relações R1 e R2 Têm de ser compatíveis: Número de atributos:igual.// nomes podem ser diferentes. Atributos correspondentes: mesmo domínio.Nelson Freire (ISEP–LEI-BDDAD 2016/17)14/28

Operação DiferençaÁlgebra Relacional2/2 Exemplo 1 – Tuplos originários da mesma relação: Exemplo 2 – Tuplos originários de relações distintas: Relação 1: ALUNO ( ID ALUNO, ) Relação 2: DISCIPLINA ( ID DISCIPLINA, ) Relação 3: INSCRICAO ( ID ALUNO, ID DISCIPLINA, ) Relação 4 (R4): identificadores de alunos não inscritos a qualquer disciplina.OperandoscompatíveisR4 πID ALUNO(ALUNO) πID ALUNO(INSCRICAO) Relação 5 (R5): identificadores de alunos inscritos apenas na ID DISCIPLINA 4.ALUNOS DISC DIF 4 σID DISCIPLINA 4(INSCRICAO)R5 πID ALUNO(INSCRICAO) πID ALUNO(ALUNOS DISC DIF 4)Nelson Freire (ISEP–LEI-BDDAD 2016/17)15/28

Operação InterseçãoÁlgebra RelacionalOperadorTipo de OperadorSintaxe1/2SemânticaRetorna nova relação: Binário(2 operandos) R1 R2 Com todos os tuplos comuns às 2relações R1 e R2. Sem tuplos duplicados. Requisitos Relações R1 e R2 Têm de ser compatíveis: Número de atributos:igual. Atributos correspondentes:mesmo domínio.// nomes podem ser diferentes. Operação Derivada (das Primitivas) Interseção pode ser realizada a partir da operação da diferença (de conjuntos).R1 𝑅2 R1 (R1 R2)R1-R2R1Nelson Freire (ISEP–LEI-BDDAD 2016/17)R216/28

Operação InterseçãoÁlgebra Relacional2/2 Exemplo 1 – Tuplos originários da mesma relação: Sem tuplosduplicados Exemplo 2 – Tuplos originários de relações distintas: Relação 1: ALUNO (ID ALUNO, NOME, ) Relação 2: DISCIPLINA ( ID DISCIPLINA, ) Relação 3: INSCRICAO (ID ALUNO, ID DISCIPLINA, ) Relação 4 (R4): identificadores de alunos inscritos às disciplinas com ID 4 e ID 7.ALUNOS DISC 4 σID DISCIPLINA 4(INSCRICAO)ALUNOS DISC 7 σID DISCIPLINA 7(INSCRICAO)OperandoscompatíveisR4 πID ALUNO(ALUNOS DISC 4 ALUNOS DISC 7)Nelson Freire (ISEP–LEI-BDDAD 2016/17)17/28

Operação Produto CartesianoÁlgebra RelacionalOperador Tipo de OperadorBinário(2 operandos)SintaxeSemânticaR1 R2Retorna nova relação: Combina cada tuplo da relação R1 . com cada umdos tuplos da relação R2. Esquema composto pelos esquemas das 2relações R1 e R2. Cardinalidade (Cardinal. de R1) x (Cardinal. R2). ExemploX Interesse Combinar informação de 2 relações (diferentes ou iguais). Exemplo Determinar os tuplos de R1 não relacionados com tuplos de R2 Desempenho Custo elevado // acesso a todos os tuplos das duas relações.Nelson Freire (ISEP–LEI-BDDAD 2016/17)// Consultar a divisão18/28

Operação RenomeaçãoÁlgebra Relacional1/2 Interesse Renomear Relação Atributos de relação// colunas Para Evitar ambiguidades Tornar expressões mais legíveis// atributos de diferentes relações com o mesmo nome.// nomes de atributos e relações mais descritivos. OperadorSímboloρ(ró)Tipo de OperadorUnário(1 operando)SintaxeρnomeS[(A1, A2, ,An)] R/* atributos A correspondentesaos da relação R são opcionais */ Renomeação de Atributos Pode ser indicada na Projeção Exemplo Relação: INSCRICAO (ID ALUNO, ID D)Nelson Freire (ISEP–LEI-BDDAD 2016/17)SemânticaRetorna nova relação: Com o nomeS eatributos Aespecificados. Esquema igual a R. Tuplos iguais a R.πID DISCIPLINA ID D(INSCRICAO)19/28

Operação RenomeaçãoÁlgebra Relacional2/2 Exemplos Relação: INSCRICAO (ID ALUNO, ID D) Alteração apenas do nome de relação (INSCRICAO ALUNO INSCRITO):ρALUNO INSCRITO(INSCRICAO) Alteração apenas do nome de atributo (ID D ID DISCIPLINA):ρINSCRICAO(ID ALUNO, ID DISCIPLINA)(INSCRICAO) Relação temporária Resultante de operação intermédia Interesse da Renomeação Referenciar relação em operações posterioresρTempAlunosInscritosDisc7(σID DISCIPLINA 7(INSCRICAO))Nelson Freire (ISEP–LEI-BDDAD 2016/17)20/28

Operaçõesde JunçãoOperações de Junção1/5 Introdução Operações essenciais da álgebra relacional. Permitem relacionar tuplos de diversas relações . que satisfazem uma condição. Basicamente: É um produto cartesiano condicionado// mais útil que produto cartesiano Operações derivadas (das Primitivas). Equivalente ao produto cartersiano seguido de seleçãoσcondição(R1 R2)2º Há várias formas: Junção Interna Junção Condicional (ou Teta) Equi-Junção Junção Natural Junção Externa Esquerda Direita Completa Semi-Junção Anti-Junção Auto-JunçãoNelson Freire (ISEP–LEI-BDDAD 2016/17)1ºAbordadas em BDDAD21/28

Operações de JunçãoÁlgebra RelacionalCategoriaDesignaçãoSintaxe Tuplos nãorelacionados sãoeliminados doresultado.Junção-Condicionalou Junção-TetaJunção-EquiJunção NaturalJunção Externa Junta tuplos, de 2relações, que estãorelacionados eadiciona (não junta)tuplos nãorelacionados.OutrosFuncionamento Condição genérica sobre as colunas de R1 e R2.Junção Interna Junta tuplos, de 2relações, que estãorelacionados.2/5R1 CONDIÇÃO R2R1 CONDIÇÃO R2R1 R2 Contém colunas duplicadas (colunascorrespondentes das relações R1 e R2). Condição explícita contém apenas a igualdade. Não contém colunas duplicadas. Condição implícita é uma igualdade entretodas as colunas comuns a R1 e R2. Não contém colunas duplicadas.Junção Externa àEsquerdaR1 R2 Inclui os tuplos de R1 sem correspondência emR2.Junção Externa àDireitaR1 R2 Inclui os tuplos de R2 sem correspondência emR1.R1 R2 Inclui os tuplos de R1 e R2 semcorrespondência entre eles.Junção �ãoNelson Freire (ISEP–LEI-BDDAD 2016/17)22/28

Operaçõesde JunçãoOperação de Junção Condicional (Junção-Teta)OperadorTipo de OperadorSintaxe Binário(2 operandos)R1 CONDIÇÃO R23/5SemânticaRetorna nova relação: Com todos os tuplos do produtocartesiano das relações R1 e R2 e quesatisfazem a condição especificada. Esquema da relação composto pelosesquemas das 2 relações. Colunas correspondentes duplicadas. Condição Operadores Relacionais: Lógicos: , , , , , , , (ou )// respetivamente: and, or e not. Sintaxe R1.nome coluna operador R2.nome coluna ExemploNelson Freire (ISEP–LEI-BDDAD 2016/17)23/28

Operação Equi-JunçãoÁlgebra Relacional4/5 Caso Particular Da Junção CondicionalOperadorTipo de OperadorSintaxe Binário(2 operandos)R1 CONDIÇÃO R2SemânticaRetorna nova relação com: Todos os tuplos do produto cartesiano dasrelações R1 e R2 e que satisfazem acondição especificada. Condição usa apenas o operador deigualdade Esquema da relação Composto pelos esquemas das 2relações sem colunas duplicadas. Elimina uma das colunascomparadas. ExemploNelson Freire (ISEP–LEI-BDDAD 2016/17)24/28

Operaçõesde JunçãoOperação Junção Natural Caso Particular Da Junção-Equi5/5OperadorTipo de OperadorSintaxe Binário(2 operandos)R1 R2 Condição Implícita. Comparadas Todas as colunas correspondentes das duas relações R1 e R2. Colunas com nomes iguais. Comparação apenas de igualdade. Resultado Não tem colunas duplicadas. Exemplo S1 R1 equivalente a S1 R. sid S. sid R1Nelson Freire (ISEP–LEI-BDDAD 2016/17)25/28

Operador DivisãoÁlgebra RelacionalOperadorTipo de Operador Binário(2 operandos)Sintaxe1/2SemânticaRetorna nova relação:R1 R2 Com todos os tuplos da relação R1 relacionadoscom todos os tuplos da relação R2. Interesse Especificar expressões do género: “Quais são os alunos inscritos em todas as disciplinas?” ExemploRelação INSCRICAOID ALUNOID DISCIPLINA1090PT1090IN1080Relação resultanteRelação DISCIPLINAID ALUNOID 60IN ID DISCIPLINADESIGNACAOPTPORTUGUÊSININGLÊS SQL Não fornece operador correspondente. Solução baseada em expressão algébrica equivalente.Nelson Freire (ISEP–LEI-BDDAD 2016/17)26/28

Álgebra RelacionalOperador Divisão Operador Derivado (dos Operadores Primitivos) Expressão equivalente R1 R2 πC R1 πC( πC R1 R2 R1)2/2Produto cartesiano: Todos os tuplos de R1 combinadoscom todos os tuplos de R2.Todos os tuplos de R1 não relacionadoscom tuplos de R2.Todos os tuplos de R1relacionados com todos os tuplosde R2. Exemplo “Quais são os alunos matriculados em todas as disciplinas?” Solução Algébrica 1INSCRICAO DISCIPLINA Solução Algébrica 2πID ALUNO INSCRICAO πID ALUNO( ΠID ALUNO INSCRICAO DISCIPLINA INSCRICAO) Solução Algébrica 3T1 πID ALUNO(INSCRICAO)// ID ALUNO de todos os alunos inscritosT2 T1 DISCIPLINA// Todos os ID ALUNO combinados com todas as disciplinasT3 πID ALUNO(T2 INSCRICAO)// Todos os ID ALUNO sem inscrição a todas as disciplinasT T1 T3// Todos os ID ALUNO com inscrição em todas as disciplinasNelson Freire (ISEP–LEI-BDDAD 2016/17)27/28

Álgebra RelacionalExpressão Algébrica Especifica Consulta da BD Tipos Simples Composta Simples Envolve um simples operador algébrico. ExemploπNOME(ALUNO) Composta Envolve múltiplos operadores algébricos. ExemploπID ALUNO INSCRICAO πID ALUNO( ΠID ALUNO INSCRICAO DISCIPLINA INSCRICAO)T1 πID ALUNO(INSCRICAO)T2 T1 DISCIPLINAT3 πID ALUNO(T2 INSCRICAO)T T1 T3Nelson Freire (ISEP–LEI-BDDAD 2016/17)28/28

Número de atributos: igual. // nomes podem ser diferentes. Atributos correspondentes: mesmo domínio. Operação Derivada (das Primitivas) Interseção pode ser realizada a partir da operação da diferença (de conjuntos). Álgebra Relacional Operador Tipo de Operador Sintaxe Semântica Binário (2 operandos) R1 R2 Retorna nova .