SlideShare uma empresa Scribd logo
Bancos de Dados
Multimidia
Ticianne Darin
Álgebra Relacional Básica
Álgebra Relacional
• Álgebra relacional é uma linguagem de consulta
  téorica
   – usuários não a usam diretamente. É muito
     complicada para ser usada diretamente.

• Porém, a álgebra relacional é usada
  internamente em todos os SGBDs
   – outras linguagens de consulta são traduzidas em
     álgebra relacional.
Operações da Álgebra Relacional
• Operações derivadas da teoria dos conjuntos
   – União
   – Interseção
   – Diferença
   – Produto Cartesiano
• Operações relacionais especiais
   – Seleção
   – Projeção
   – Junção (natural)
Operações da Álgebra Relacional

União:
     R U S: Obtém a união das tuplas em R e S.
     Ilegal se R e S têm números diferentes de atributos.
                          R                         S
 R                            A        B                A     B
                              a1      b1                a2   b2
                  S           a2      b2                a3   b3



                                               A        B
                                   R  S       a1       b1
                                               a2       b2
                                               a3       b3
Operações da Álgebra Relacional
Diferença
  R-S: obtém as tuplas em R que não estão em S.
  Ilegal se R e S têm números diferentes de atributos

  R                         R   A         B        S    A     B
                        S       a1       b1             a2   b2
                                a2       b2             a3   b3
                    S



                                     R - S    A         B
                                              a1       b1
Operações da Álgebra Relacional
Interseção
   R  S: Obtém a interseção das tuplas de R e S.
     Ilegal se R e S têm números diferentes de atributos.

 R                            R    A       B            S   A      B
                         S         a1     b1                a2    b2
                                   a2     b2                a3    b3




                                          R  S        A      B
                                                       a2    b2
Operações da Álgebra Relacional
Seleção:
 Seleciona todas as tuplas que satisfazem à condição de
  seleção de uma relação R.
   R
                                       R   A     B
                                           a1   b1
                                           a2   b2



                            R [A = ‘a1’]
                                           A     B
                                           a1   b1


 R [expressão de seleção]
Operações da Álgebra Relacional
Projeção:
  Produz uma nova relação com apenas alguns atributos
  de R, removendo tuplas duplicadas.
   R
                                    R   A      B
                                        a1    b1
                                        a2    b2




                            R [B]         B
                                         b1

                                         b2

    R [A1, ... , An]
Operações da Álgebra Relacional
Produto Cartesiano:
A relação resultante consiste de todas as possíveis
tuplas resultantes da combinação de duas tuplas, uma
de cada relação envolvida na operação.

 R   A      B        R x S    A     B     C      D
     a1    b1                 a1    b1    c2    d2
     a2    b2                 a1    b1    c3    d3
                              a2    b2    c2    d2
 S   C      D                 a2    b2    c3    d3
      c2   d2
      c3   d3
Operações da Álgebra Relacional
 Junção:
   A junção de R com S = (R x S) [ expressão de seleção]


 R                       R x S [ B = C]
      A     B
      a1   b1
                            A        B    C     D
      a2   b2
                            a1       b1   b1   d3
                            a2       b2   b2   d2
 S   C      D
      b2   d2
      b1   d3
Operações da Álgebra Relacional
 Junção Natural:
  Quando a condição de junção for a igualdade do valor de um atributo
 comum e o atributo comum aparecer só uma vez no resultado.


    R     A       B            R * S
          a1     b1
          a2     b2              A       B      D
                                 a1      b1     d3
                                 a2      b2     d2
    S    C        D
          b2     d2
          b1     d3
Consultas em SQL
Estrutura Básica de consultas SQL
• SQL é baseada em operações de conjuntos e de álgebra
  relacional com algumas modificações e extensões
• Uma consulta SQL básica tem a forma:

           Select A1, A2, ..., Na
           From r1, r2, ..., rm
           Where P

   – Ai’s representam atributos
   – Ri’s representam relações
   – P é um predicado.

• O resultado de uma consulta SQL é uma relação.
A cláusula SELECT
• A cláusula select corresponde à operação de
  projeção
• É utilizada para listar os atributos pretendidos no
  resultado da consulta.
• NOTA:
   – O SQL não permite o caracter ‘-’ nos nomes,
     portanto deverá utilizar, por exemplo, nome_cliente
     em vez de nome-cliente num sistema existente.
• NOTE:
   – As maiúsculas e minúsculas não são distinguidas
    em nomes da linguagem SQL.
A cláusula SELECT
• Exemplos
  – Listar os nomes de todos os clientes
  – Um asterisco na cláusula select denota
    “todos os atributos”

   Select nome           Select *
   From Cliente          From Cliente
A cláusula SELECT
• O SQL permite duplicações nas relações e nos
  resultados de consultas.
• Para forçar a eliminação de duplicações, inserir a
  palavra-chave distinct após select.
   – Apresentar os endereços de todos clientes, sem
     repetições
           Select distinct endereço
           From Cliente

• A palavra-chave all indica que os duplicados não
  devem ser removidos.
           Select all endereço
           From Cliente
A cláusula SELECT
• A cláusula select pode conter expressões aritméticas
  envolvendo as operações, +, –, *, e /, com
  argumentos constantes ou atributos
• Dependendo das implementações, encontram-se
  normalmente definidas uma biblioteca de funções.
• A consulta:
      Select procodigo, preço, taxa*100
      From Produto


• Devolve uma relação idêntica à relação Produto,
  exceto que o atributo taxa é multiplicado por 100.
A cláusula FROM
• A cláusula from corresponde à operação de
  produto cartesiano
• Indica as relações a consultar na avaliação da
  expressão.
   – Encontrar o produto cartesiano Cliente x Pedido

             Select *
             From Cliente, Pedido
A cláusula WHERE
• A cláusula where corresponde ao predicado de
  seleção
• É formada por um predicado envolvendo
  atributos de relações que aparecem na
  cláusula from.
  – Encontrar telefone dos clientes que se chamam
    ‘João da Silva’
        Select telefone
        From Cliente
        Where nome=‘João da Silva’
A cláusula WHERE
• Os resultados de comparações podem ser
  combinados por intermédio dos conectivos lógicos
  and, or, e not.

• Podem-se aplicar comparações ao resultado de
  expressões aritméticas.
   – Encontrar os códigos dos produtos do pedido número 203,
     cujas quantidades são superiores a dois itens

         Select produto
         From Itens
         Where pedido=203 and quantidade>2
A cláusula WHERE
• Operador de comparação between para
  especificar condições em que um valor
  deve estar contido num intervalo de
  valores (incluindo os seus extremos).


• Para negar a condição pode-se colocar
  o conectivo not antes de between.
A cláusula WHERE
• Apresentar os códigos dos produtos
  cujos preços estão entre R$5,00 e
  R$30,00
       Select procodigo
       From Produto
       Where preço between 5 and 30


• Para negar a condição pode-se colocar
  o conectivo not antes de between.
       Select procodigo
       From Produto
       Where taxa not between 0,2 and 0,35
Operações com cadeias de
Caracteres
• SQL inclui um mecanismo de concordância de padrões para
  comparações envolvendo cadeias de caracteres.

• Os padrões são descritos recorrendo a dois caracteres especiais:

    – percentagem(%): concorda com qualquer subcadeia.

    – sublinhado (_): concorda com qualquer carácter.

• A SQL suporta uma variedade de operações com cadeias de
  caracteres, tais como:

    – concatenação (utilizando “||”), conversão de maiúsculas para
      minúsculas (e vice versa), calcular o comprimento, extração de
      subcadeias, etc.
Operações com cadeias de Caracteres

• Listar todos os clientes cujo endereço inclua
  “Rua Nélio Rodrigues” .

     Select nome
     From Cliente
     Where endereço like ‘% Rua Nélio Rodrigues %’



• Encontrar uma cadeia de caracteres que de
  fato contenha o símbolo de porcentagem
   – Ex.: 10%

                 like ‘10%’
A operação de renomeação AS
• A linguagem SQL permite a renomeação
  de relações e atributos recorrendo à
  cláusula as :
           old_name as new_name
• Listar os nome e códigos dos pedidos
  de cada cliente, renomeando a coluna
  pedcodigo para codPedido
     Select c.nome, p.pedcodigo as codPedido
     From Cliente as c, Pedido as p
     Where c.ccodigo = p.pedcodigo
A operação de renomeação AS
• Caso se pretenda utilizar um nome com
  espaços, esse nome deverá ser
  colocado entre aspas.
   Select c.nome, p.pedcodigo as “codigo do Pedido”
   From Cliente as c, Pedido as p
   Where c.ccodigo = p.pedcodigo
A operação de ordenação ORDER
BY
• Listar em ordem alfabética os nomes de todos os clientes que
  possuem algum pedido

          Select distinct nome
          From Cliente as c, Pedido as p
          Where c.ccodigo = p.pedcodigo
          Order by nome;


• Pode-se especificar desc para ordenação descrescente ou
  asc para ordenação ascendente, para cada atributo; por
  omissão, assume-se ordem ascendente.
                 Order by nome desc;

• Pode-se ter mais do que uma chave de ordenação, separando-as
  com vírgulas
Funções de Agregação
• Estas funções aplicam-se a multiconjuntos
  de valores de uma coluna de uma relação,
  devolvendo um único valor como resultado
  – avg: valor médio
  – min: valor mínimo
  – max: valor máximo
  – sum: soma dos valores
  – count: número de valores
Funções de Agregação
• Determinar o preço médio dos produtos comprados no dia
  16/03/2008.
       Select AVG(preço)
       From Pedido as p, Itens as i, Produto as pr
       Where p.data=’16/03/2008’ and
             p.pedcodigo=i.produto and
             i.produto=pr.procodigo


• Calcular a quantidade de clientes
               Select COUNT(ccodigo)
               From Cliente


• Encontrar o número de clientes com nomes diferentes
              Select COUNT(distinct nome)
              From Cliente
Funções de agregação – GROUP BY
• Listar o número de pedidos por cliente.
    Select c.nome, COUNT(p.pedcodigo)
    From Cliente as c, Pedido as p
    Where c.ccodifgo=p.cliente
    Group By c.nome;

• Atenção:
   – Atributos na cláusula select fora de funções de
     agregação têm de aparecer na lista group by

   – Se aparecer mais do que um atributo em group
     by, então cada grupo é formado pelas tuplas com
     valores iguais em todos esses os atributos
Funções de agregação – Having
• Listar o número de pedidos por cliente, para clientes
  que tiverem mais de 5 pedidos
     Select c.nome, COUNT(p.pedcodigo) as numeroPedidos
     From Cliente as c, Pedido as p
     Where c.ccodifgo=p.cliente
     Group By c.nome
     Having numeroPedidos > 5


• Nota:
   – predicados na cláusula having são aplicados depois
     da formação dos grupos, enquanto que os predicados
     na cláusula where são aplicados antes da formação
     dos grupos.
Operações com Conjuntos
• As operações com conjuntos union, intersect, e
  except (minus no Oracle9i) operam sobre relações e
  correspondem aos operadores 
• Cada uma das operações anteriores elimina as duplicações
  automaticamente.
• Para reter duplicados deve-se utilizar as respectivas versões
  multiconjunto union all, intersect all e except all
• Suponha que uma tupla ocorre m vezes em R e n vezes
  em S, então ele ocorre:
    – m + n vezes em R union all S

    – min(m,n) vezes em R intersect all S

    – max(0, m – n) vezes em R except all S
Operações com Conjuntos - Union
• Listar todos os clientes que realizaram pedidos
  com mais de 5 itens ou contendo algum
  produto de preço>R$30,00
    (Select c.nome
     From Cliente as c, Pedido as p, Produto as pr
     Where c.ccodifgo=p.cliente and
          p.pedcodigo=i.pedido and
          i.quantidade>5)
    UNION

    (Select c.nome
     From Cliente as c, Pedido as p, Produto as pr
     Where c.ccodifgo=p.cliente and
          p.pedcodigo=i.pedido and
          i.produto=pr.procodigo and
          i.preço>30)
Operações com Conjuntos - Intersect
• Listar todos os clientes que realizaram pedidos
  com mais de 5 itens e contendo algum
  produto de preço>R$30,00
   (Select c.nome
    From Cliente as c, Pedido as p, Produto as pr
    Where c.ccodifgo=p.cliente and
         p.pedcodigo=i.pedido and
         i.quantidade>5)

   INTERSECT

   (Select c.nome
    From Cliente as c, Pedido as p, Produto as pr
    Where c.ccodifgo=p.cliente and
         p.pedcodigo=i.pedido and
         i.produto=pr.procodigo and
         i.preço>30)
Operações com Conjuntos - Except
• Listar todos os clientes que realizaram pedidos
  com mais de 5 itens mas não contendo algum
  produto de preço>R$30,00
   (Select c.nome
    From Cliente as c, Pedido as p, Produto as pr
    Where c.ccodifgo=p.cliente and
         p.pedcodigo=i.pedido and
         i.quantidade>5)

   EXCEPT

   (Select c.nome
    From Cliente as c, Pedido as p, Produto as pr
    Where c.ccodifgo=p.cliente and
         p.pedcodigo=i.pedido and
         i.produto=pr.procodigo and
         i.preço>30)
Exercício de Fixação
EMPREGADOS (E)
   enome     CPF     salário    CPF_Supervisor     dnumero



DEPARTAMENTOS (D)
                   dnome       dnúmero     CPF_gerente


TRABALHA (T)                        PROJETOS (P)

   CPF_Emp         pnumero          pnome pnúmero        dnúmero
Exercício de Fixação
• Atividades:
   – 1. Fazer o esquema relacional acima;
   – 2.Inserir o empregado André que trabalham no projeto
     chamado CID do departamento de computação;
   – 3.Inserir o empregado Suzana que trabalha no projeto
     chamado CID do departamento de computação;
   – 4. Inserir o empregado Lívia que é gerente dos
     empregados André e Suzana;
   – 5. Inserir o departamento de estatística e seus projetos:
     KDE, SUDO, MQRO, ACLT.
Ora, a fé é a certeza daquilo que
esperamos e a prova das coisas que
não vemos.
                    Hebreus 11:1




           Até a próxima aula!

Mais conteúdo relacionado

Mais procurados

Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
Rayol Neto
 
Aula 7 banco de dados
Aula 7   banco de dadosAula 7   banco de dados
Aula 7 banco de dados
Jorge Ávila Miranda
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Leinylson Fontinele
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
Vinícius de Paula
 
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento RelacionalBD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
Rodrigo Kiyoshi Saito
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)
Mario Sergio
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
thaisedd
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
Cloves da Rocha
 
Técnica de Levantamento de Requisitos: etnografia
Técnica de Levantamento de Requisitos: etnografiaTécnica de Levantamento de Requisitos: etnografia
Técnica de Levantamento de Requisitos: etnografia
Messias Batista
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Gustavo Zimmermann
 
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. RefBD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
Rodrigo Kiyoshi Saito
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dados
info_cimol
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Aula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoAula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de Projeto
Vinícius de Paula
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
Centro Paula Souza
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquicorosimaracorsino
 
Modelo E-R
Modelo E-RModelo E-R

Mais procurados (20)

Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 
Aula 7 banco de dados
Aula 7   banco de dadosAula 7   banco de dados
Aula 7 banco de dados
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Árvores balanceadas - AVL
Árvores balanceadas - AVLÁrvores balanceadas - AVL
Árvores balanceadas - AVL
 
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento RelacionalBD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Técnica de Levantamento de Requisitos: etnografia
Técnica de Levantamento de Requisitos: etnografiaTécnica de Levantamento de Requisitos: etnografia
Técnica de Levantamento de Requisitos: etnografia
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. RefBD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dados
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
 
Aula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoAula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de Projeto
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
Modelo E-R
Modelo E-RModelo E-R
Modelo E-R
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 

Destaque

Bdm aula 4 - modelagem de dados com modelo er
Bdm   aula 4 - modelagem de dados com modelo erBdm   aula 4 - modelagem de dados com modelo er
Bdm aula 4 - modelagem de dados com modelo erTicianne Darin
 
Bdm aula 3 - modelo relacional e restrições de integridade
Bdm   aula 3 - modelo relacional e restrições de integridadeBdm   aula 3 - modelo relacional e restrições de integridade
Bdm aula 3 - modelo relacional e restrições de integridadeTicianne Darin
 
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Bdm   aula 5 - construindo modelos er e mapeamento er-relacionalBdm   aula 5 - construindo modelos er e mapeamento er-relacional
Bdm aula 5 - construindo modelos er e mapeamento er-relacionalTicianne Darin
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
Rafael Albani
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
Ricardo Flores Zago, PMP, MSc
 
Bdm aula 6 - normalização - ticianne darin
Bdm   aula 6 - normalização - ticianne darinBdm   aula 6 - normalização - ticianne darin
Bdm aula 6 - normalização - ticianne darinTicianne Darin
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
samlobo
 
Aula De Projeto De Bd E Mer
Aula De Projeto De Bd E MerAula De Projeto De Bd E Mer
Aula De Projeto De Bd E Merlinux.certifield
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_erWalter Alves Pereira
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darinTicianne Darin
 
Bdm aula 7 - normalização parte2 - ticianne darin
Bdm   aula 7 - normalização parte2 - ticianne darinBdm   aula 7 - normalização parte2 - ticianne darin
Bdm aula 7 - normalização parte2 - ticianne darinTicianne Darin
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
Pablo Garcia
 
Modelo entidade relacionamento
Modelo entidade relacionamentoModelo entidade relacionamento
Modelo entidade relacionamentoCarlos Melo
 
Isc aula 5 - estrutura e organização da informação
Isc   aula 5 - estrutura e organização da informaçãoIsc   aula 5 - estrutura e organização da informação
Isc aula 5 - estrutura e organização da informaçãoFábio Andrade
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
vini_campos
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
Adriano Leite da Silva
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Rangel Javier
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Leinylson Fontinele
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Leinylson Fontinele
 

Destaque (20)

Bdm aula 4 - modelagem de dados com modelo er
Bdm   aula 4 - modelagem de dados com modelo erBdm   aula 4 - modelagem de dados com modelo er
Bdm aula 4 - modelagem de dados com modelo er
 
Bdm aula 3 - modelo relacional e restrições de integridade
Bdm   aula 3 - modelo relacional e restrições de integridadeBdm   aula 3 - modelo relacional e restrições de integridade
Bdm aula 3 - modelo relacional e restrições de integridade
 
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
Bdm   aula 5 - construindo modelos er e mapeamento er-relacionalBdm   aula 5 - construindo modelos er e mapeamento er-relacional
Bdm aula 5 - construindo modelos er e mapeamento er-relacional
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Bdm aula 6 - normalização - ticianne darin
Bdm   aula 6 - normalização - ticianne darinBdm   aula 6 - normalização - ticianne darin
Bdm aula 6 - normalização - ticianne darin
 
Aula calculo relacional
Aula calculo relacionalAula calculo relacional
Aula calculo relacional
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
Aula De Projeto De Bd E Mer
Aula De Projeto De Bd E MerAula De Projeto De Bd E Mer
Aula De Projeto De Bd E Mer
 
08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darin
 
Bdm aula 7 - normalização parte2 - ticianne darin
Bdm   aula 7 - normalização parte2 - ticianne darinBdm   aula 7 - normalização parte2 - ticianne darin
Bdm aula 7 - normalização parte2 - ticianne darin
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Modelo entidade relacionamento
Modelo entidade relacionamentoModelo entidade relacionamento
Modelo entidade relacionamento
 
Isc aula 5 - estrutura e organização da informação
Isc   aula 5 - estrutura e organização da informaçãoIsc   aula 5 - estrutura e organização da informação
Isc aula 5 - estrutura e organização da informação
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
 

Mais de Ticianne Darin

Ihc2016.2 aula. 13 Avaliação em IHC
Ihc2016.2 aula. 13  Avaliação em IHCIhc2016.2 aula. 13  Avaliação em IHC
Ihc2016.2 aula. 13 Avaliação em IHC
Ticianne Darin
 
Ihc2016.2 aula. 12 construindo versões interativas dos designs
Ihc2016.2 aula. 12   construindo versões interativas dos designsIhc2016.2 aula. 12   construindo versões interativas dos designs
Ihc2016.2 aula. 12 construindo versões interativas dos designs
Ticianne Darin
 
Ihc2016.2 aula. 11 projetando a interação
Ihc2016.2 aula. 11   projetando a interaçãoIhc2016.2 aula. 11   projetando a interação
Ihc2016.2 aula. 11 projetando a interação
Ticianne Darin
 
Hd 2016.1 aula.16 - panorama do design no brasil
Hd 2016.1 aula.16 - panorama do design no brasilHd 2016.1 aula.16 - panorama do design no brasil
Hd 2016.1 aula.16 - panorama do design no brasil
Ticianne Darin
 
Ihc2016.2 aula. 10 coleta e análise de dados
Ihc2016.2 aula. 10  coleta e análise de dadosIhc2016.2 aula. 10  coleta e análise de dados
Ihc2016.2 aula. 10 coleta e análise de dados
Ticianne Darin
 
Hd 2016.1 aula.15 - design pós-moderno
Hd 2016.1 aula.15 - design pós-modernoHd 2016.1 aula.15 - design pós-moderno
Hd 2016.1 aula.15 - design pós-moderno
Ticianne Darin
 
Ihc2016.2 aula 9 engenharia cognitiva e teoria da ação
Ihc2016.2 aula 9    engenharia cognitiva e teoria da açãoIhc2016.2 aula 9    engenharia cognitiva e teoria da ação
Ihc2016.2 aula 9 engenharia cognitiva e teoria da ação
Ticianne Darin
 
Ihc2016.2 aula 7 critérios de qualidade de uso
Ihc2016.2 aula 7   critérios de qualidade de usoIhc2016.2 aula 7   critérios de qualidade de uso
Ihc2016.2 aula 7 critérios de qualidade de uso
Ticianne Darin
 
Hd 2016.1 aula.14 - art deco e streamline
Hd 2016.1 aula.14 - art deco e streamlineHd 2016.1 aula.14 - art deco e streamline
Hd 2016.1 aula.14 - art deco e streamline
Ticianne Darin
 
Ihc2016.2 aula 6 interface e modelo de interação
Ihc2016.2 aula 6   interface e modelo de interaçãoIhc2016.2 aula 6   interface e modelo de interação
Ihc2016.2 aula 6 interface e modelo de interação
Ticianne Darin
 
Hd 2016.1 aula.13 - estilo internacional
Hd 2016.1 aula.13 - estilo internacionalHd 2016.1 aula.13 - estilo internacional
Hd 2016.1 aula.13 - estilo internacional
Ticianne Darin
 
Ihc2016.2 aula 5 contexto de uso e interação
Ihc2016.2 aula 5   contexto de uso e interaçãoIhc2016.2 aula 5   contexto de uso e interação
Ihc2016.2 aula 5 contexto de uso e interação
Ticianne Darin
 
Hd 2016.1 aula.12 - de stijl
Hd 2016.1 aula.12 - de stijlHd 2016.1 aula.12 - de stijl
Hd 2016.1 aula.12 - de stijl
Ticianne Darin
 
Ihc2016.2 aula 4 design conceitual
Ihc2016.2 aula 4   design conceitualIhc2016.2 aula 4   design conceitual
Ihc2016.2 aula 4 design conceitual
Ticianne Darin
 
Hd 2016.1 aula.11_bauhaus
Hd 2016.1 aula.11_bauhausHd 2016.1 aula.11_bauhaus
Hd 2016.1 aula.11_bauhaus
Ticianne Darin
 
Hd 2016.1 aula.10_construtivismo russo
Hd 2016.1 aula.10_construtivismo russoHd 2016.1 aula.10_construtivismo russo
Hd 2016.1 aula.10_construtivismo russo
Ticianne Darin
 
Hd 2016.1 aula 9_influências das vanguardas europeias - surrealismo
Hd 2016.1 aula 9_influências das vanguardas europeias - surrealismoHd 2016.1 aula 9_influências das vanguardas europeias - surrealismo
Hd 2016.1 aula 9_influências das vanguardas europeias - surrealismo
Ticianne Darin
 
Hd 2016.1 aula 8_influências das vanguardas europeias - dadaísmo
Hd 2016.1 aula 8_influências das vanguardas europeias - dadaísmoHd 2016.1 aula 8_influências das vanguardas europeias - dadaísmo
Hd 2016.1 aula 8_influências das vanguardas europeias - dadaísmo
Ticianne Darin
 
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismo
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismoHd 2016.1 aula 7_influências das vanguardas europeias - futurismo
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismo
Ticianne Darin
 
Ihc2016.2 aula 3 introdução ao design de interação
Ihc2016.2 aula 3   introdução ao design de interaçãoIhc2016.2 aula 3   introdução ao design de interação
Ihc2016.2 aula 3 introdução ao design de interação
Ticianne Darin
 

Mais de Ticianne Darin (20)

Ihc2016.2 aula. 13 Avaliação em IHC
Ihc2016.2 aula. 13  Avaliação em IHCIhc2016.2 aula. 13  Avaliação em IHC
Ihc2016.2 aula. 13 Avaliação em IHC
 
Ihc2016.2 aula. 12 construindo versões interativas dos designs
Ihc2016.2 aula. 12   construindo versões interativas dos designsIhc2016.2 aula. 12   construindo versões interativas dos designs
Ihc2016.2 aula. 12 construindo versões interativas dos designs
 
Ihc2016.2 aula. 11 projetando a interação
Ihc2016.2 aula. 11   projetando a interaçãoIhc2016.2 aula. 11   projetando a interação
Ihc2016.2 aula. 11 projetando a interação
 
Hd 2016.1 aula.16 - panorama do design no brasil
Hd 2016.1 aula.16 - panorama do design no brasilHd 2016.1 aula.16 - panorama do design no brasil
Hd 2016.1 aula.16 - panorama do design no brasil
 
Ihc2016.2 aula. 10 coleta e análise de dados
Ihc2016.2 aula. 10  coleta e análise de dadosIhc2016.2 aula. 10  coleta e análise de dados
Ihc2016.2 aula. 10 coleta e análise de dados
 
Hd 2016.1 aula.15 - design pós-moderno
Hd 2016.1 aula.15 - design pós-modernoHd 2016.1 aula.15 - design pós-moderno
Hd 2016.1 aula.15 - design pós-moderno
 
Ihc2016.2 aula 9 engenharia cognitiva e teoria da ação
Ihc2016.2 aula 9    engenharia cognitiva e teoria da açãoIhc2016.2 aula 9    engenharia cognitiva e teoria da ação
Ihc2016.2 aula 9 engenharia cognitiva e teoria da ação
 
Ihc2016.2 aula 7 critérios de qualidade de uso
Ihc2016.2 aula 7   critérios de qualidade de usoIhc2016.2 aula 7   critérios de qualidade de uso
Ihc2016.2 aula 7 critérios de qualidade de uso
 
Hd 2016.1 aula.14 - art deco e streamline
Hd 2016.1 aula.14 - art deco e streamlineHd 2016.1 aula.14 - art deco e streamline
Hd 2016.1 aula.14 - art deco e streamline
 
Ihc2016.2 aula 6 interface e modelo de interação
Ihc2016.2 aula 6   interface e modelo de interaçãoIhc2016.2 aula 6   interface e modelo de interação
Ihc2016.2 aula 6 interface e modelo de interação
 
Hd 2016.1 aula.13 - estilo internacional
Hd 2016.1 aula.13 - estilo internacionalHd 2016.1 aula.13 - estilo internacional
Hd 2016.1 aula.13 - estilo internacional
 
Ihc2016.2 aula 5 contexto de uso e interação
Ihc2016.2 aula 5   contexto de uso e interaçãoIhc2016.2 aula 5   contexto de uso e interação
Ihc2016.2 aula 5 contexto de uso e interação
 
Hd 2016.1 aula.12 - de stijl
Hd 2016.1 aula.12 - de stijlHd 2016.1 aula.12 - de stijl
Hd 2016.1 aula.12 - de stijl
 
Ihc2016.2 aula 4 design conceitual
Ihc2016.2 aula 4   design conceitualIhc2016.2 aula 4   design conceitual
Ihc2016.2 aula 4 design conceitual
 
Hd 2016.1 aula.11_bauhaus
Hd 2016.1 aula.11_bauhausHd 2016.1 aula.11_bauhaus
Hd 2016.1 aula.11_bauhaus
 
Hd 2016.1 aula.10_construtivismo russo
Hd 2016.1 aula.10_construtivismo russoHd 2016.1 aula.10_construtivismo russo
Hd 2016.1 aula.10_construtivismo russo
 
Hd 2016.1 aula 9_influências das vanguardas europeias - surrealismo
Hd 2016.1 aula 9_influências das vanguardas europeias - surrealismoHd 2016.1 aula 9_influências das vanguardas europeias - surrealismo
Hd 2016.1 aula 9_influências das vanguardas europeias - surrealismo
 
Hd 2016.1 aula 8_influências das vanguardas europeias - dadaísmo
Hd 2016.1 aula 8_influências das vanguardas europeias - dadaísmoHd 2016.1 aula 8_influências das vanguardas europeias - dadaísmo
Hd 2016.1 aula 8_influências das vanguardas europeias - dadaísmo
 
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismo
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismoHd 2016.1 aula 7_influências das vanguardas europeias - futurismo
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismo
 
Ihc2016.2 aula 3 introdução ao design de interação
Ihc2016.2 aula 3   introdução ao design de interaçãoIhc2016.2 aula 3   introdução ao design de interação
Ihc2016.2 aula 3 introdução ao design de interação
 

Bdm aula 8 - algebra relacional básica e consultas sql - ticianne darin

  • 3. Álgebra Relacional • Álgebra relacional é uma linguagem de consulta téorica – usuários não a usam diretamente. É muito complicada para ser usada diretamente. • Porém, a álgebra relacional é usada internamente em todos os SGBDs – outras linguagens de consulta são traduzidas em álgebra relacional.
  • 4. Operações da Álgebra Relacional • Operações derivadas da teoria dos conjuntos – União – Interseção – Diferença – Produto Cartesiano • Operações relacionais especiais – Seleção – Projeção – Junção (natural)
  • 5. Operações da Álgebra Relacional União: R U S: Obtém a união das tuplas em R e S. Ilegal se R e S têm números diferentes de atributos. R S R A B A B a1 b1 a2 b2 S a2 b2 a3 b3 A B R  S a1 b1 a2 b2 a3 b3
  • 6. Operações da Álgebra Relacional Diferença R-S: obtém as tuplas em R que não estão em S. Ilegal se R e S têm números diferentes de atributos R R A B S A B S a1 b1 a2 b2 a2 b2 a3 b3 S R - S A B a1 b1
  • 7. Operações da Álgebra Relacional Interseção R  S: Obtém a interseção das tuplas de R e S. Ilegal se R e S têm números diferentes de atributos. R R A B S A B S a1 b1 a2 b2 a2 b2 a3 b3 R  S A B a2 b2
  • 8. Operações da Álgebra Relacional Seleção: Seleciona todas as tuplas que satisfazem à condição de seleção de uma relação R. R R A B a1 b1 a2 b2 R [A = ‘a1’] A B a1 b1 R [expressão de seleção]
  • 9. Operações da Álgebra Relacional Projeção: Produz uma nova relação com apenas alguns atributos de R, removendo tuplas duplicadas. R R A B a1 b1 a2 b2 R [B] B b1 b2 R [A1, ... , An]
  • 10. Operações da Álgebra Relacional Produto Cartesiano: A relação resultante consiste de todas as possíveis tuplas resultantes da combinação de duas tuplas, uma de cada relação envolvida na operação. R A B R x S A B C D a1 b1 a1 b1 c2 d2 a2 b2 a1 b1 c3 d3 a2 b2 c2 d2 S C D a2 b2 c3 d3 c2 d2 c3 d3
  • 11. Operações da Álgebra Relacional Junção: A junção de R com S = (R x S) [ expressão de seleção] R R x S [ B = C] A B a1 b1 A B C D a2 b2 a1 b1 b1 d3 a2 b2 b2 d2 S C D b2 d2 b1 d3
  • 12. Operações da Álgebra Relacional Junção Natural: Quando a condição de junção for a igualdade do valor de um atributo comum e o atributo comum aparecer só uma vez no resultado. R A B R * S a1 b1 a2 b2 A B D a1 b1 d3 a2 b2 d2 S C D b2 d2 b1 d3
  • 14. Estrutura Básica de consultas SQL • SQL é baseada em operações de conjuntos e de álgebra relacional com algumas modificações e extensões • Uma consulta SQL básica tem a forma: Select A1, A2, ..., Na From r1, r2, ..., rm Where P – Ai’s representam atributos – Ri’s representam relações – P é um predicado. • O resultado de uma consulta SQL é uma relação.
  • 15. A cláusula SELECT • A cláusula select corresponde à operação de projeção • É utilizada para listar os atributos pretendidos no resultado da consulta. • NOTA: – O SQL não permite o caracter ‘-’ nos nomes, portanto deverá utilizar, por exemplo, nome_cliente em vez de nome-cliente num sistema existente. • NOTE: – As maiúsculas e minúsculas não são distinguidas em nomes da linguagem SQL.
  • 16. A cláusula SELECT • Exemplos – Listar os nomes de todos os clientes – Um asterisco na cláusula select denota “todos os atributos” Select nome Select * From Cliente From Cliente
  • 17. A cláusula SELECT • O SQL permite duplicações nas relações e nos resultados de consultas. • Para forçar a eliminação de duplicações, inserir a palavra-chave distinct após select. – Apresentar os endereços de todos clientes, sem repetições Select distinct endereço From Cliente • A palavra-chave all indica que os duplicados não devem ser removidos. Select all endereço From Cliente
  • 18. A cláusula SELECT • A cláusula select pode conter expressões aritméticas envolvendo as operações, +, –, *, e /, com argumentos constantes ou atributos • Dependendo das implementações, encontram-se normalmente definidas uma biblioteca de funções. • A consulta: Select procodigo, preço, taxa*100 From Produto • Devolve uma relação idêntica à relação Produto, exceto que o atributo taxa é multiplicado por 100.
  • 19. A cláusula FROM • A cláusula from corresponde à operação de produto cartesiano • Indica as relações a consultar na avaliação da expressão. – Encontrar o produto cartesiano Cliente x Pedido Select * From Cliente, Pedido
  • 20. A cláusula WHERE • A cláusula where corresponde ao predicado de seleção • É formada por um predicado envolvendo atributos de relações que aparecem na cláusula from. – Encontrar telefone dos clientes que se chamam ‘João da Silva’ Select telefone From Cliente Where nome=‘João da Silva’
  • 21. A cláusula WHERE • Os resultados de comparações podem ser combinados por intermédio dos conectivos lógicos and, or, e not. • Podem-se aplicar comparações ao resultado de expressões aritméticas. – Encontrar os códigos dos produtos do pedido número 203, cujas quantidades são superiores a dois itens Select produto From Itens Where pedido=203 and quantidade>2
  • 22. A cláusula WHERE • Operador de comparação between para especificar condições em que um valor deve estar contido num intervalo de valores (incluindo os seus extremos). • Para negar a condição pode-se colocar o conectivo not antes de between.
  • 23. A cláusula WHERE • Apresentar os códigos dos produtos cujos preços estão entre R$5,00 e R$30,00 Select procodigo From Produto Where preço between 5 and 30 • Para negar a condição pode-se colocar o conectivo not antes de between. Select procodigo From Produto Where taxa not between 0,2 and 0,35
  • 24. Operações com cadeias de Caracteres • SQL inclui um mecanismo de concordância de padrões para comparações envolvendo cadeias de caracteres. • Os padrões são descritos recorrendo a dois caracteres especiais: – percentagem(%): concorda com qualquer subcadeia. – sublinhado (_): concorda com qualquer carácter. • A SQL suporta uma variedade de operações com cadeias de caracteres, tais como: – concatenação (utilizando “||”), conversão de maiúsculas para minúsculas (e vice versa), calcular o comprimento, extração de subcadeias, etc.
  • 25. Operações com cadeias de Caracteres • Listar todos os clientes cujo endereço inclua “Rua Nélio Rodrigues” . Select nome From Cliente Where endereço like ‘% Rua Nélio Rodrigues %’ • Encontrar uma cadeia de caracteres que de fato contenha o símbolo de porcentagem – Ex.: 10% like ‘10%’
  • 26. A operação de renomeação AS • A linguagem SQL permite a renomeação de relações e atributos recorrendo à cláusula as : old_name as new_name • Listar os nome e códigos dos pedidos de cada cliente, renomeando a coluna pedcodigo para codPedido Select c.nome, p.pedcodigo as codPedido From Cliente as c, Pedido as p Where c.ccodigo = p.pedcodigo
  • 27. A operação de renomeação AS • Caso se pretenda utilizar um nome com espaços, esse nome deverá ser colocado entre aspas. Select c.nome, p.pedcodigo as “codigo do Pedido” From Cliente as c, Pedido as p Where c.ccodigo = p.pedcodigo
  • 28. A operação de ordenação ORDER BY • Listar em ordem alfabética os nomes de todos os clientes que possuem algum pedido Select distinct nome From Cliente as c, Pedido as p Where c.ccodigo = p.pedcodigo Order by nome; • Pode-se especificar desc para ordenação descrescente ou asc para ordenação ascendente, para cada atributo; por omissão, assume-se ordem ascendente. Order by nome desc; • Pode-se ter mais do que uma chave de ordenação, separando-as com vírgulas
  • 29. Funções de Agregação • Estas funções aplicam-se a multiconjuntos de valores de uma coluna de uma relação, devolvendo um único valor como resultado – avg: valor médio – min: valor mínimo – max: valor máximo – sum: soma dos valores – count: número de valores
  • 30. Funções de Agregação • Determinar o preço médio dos produtos comprados no dia 16/03/2008. Select AVG(preço) From Pedido as p, Itens as i, Produto as pr Where p.data=’16/03/2008’ and p.pedcodigo=i.produto and i.produto=pr.procodigo • Calcular a quantidade de clientes Select COUNT(ccodigo) From Cliente • Encontrar o número de clientes com nomes diferentes Select COUNT(distinct nome) From Cliente
  • 31. Funções de agregação – GROUP BY • Listar o número de pedidos por cliente. Select c.nome, COUNT(p.pedcodigo) From Cliente as c, Pedido as p Where c.ccodifgo=p.cliente Group By c.nome; • Atenção: – Atributos na cláusula select fora de funções de agregação têm de aparecer na lista group by – Se aparecer mais do que um atributo em group by, então cada grupo é formado pelas tuplas com valores iguais em todos esses os atributos
  • 32. Funções de agregação – Having • Listar o número de pedidos por cliente, para clientes que tiverem mais de 5 pedidos Select c.nome, COUNT(p.pedcodigo) as numeroPedidos From Cliente as c, Pedido as p Where c.ccodifgo=p.cliente Group By c.nome Having numeroPedidos > 5 • Nota: – predicados na cláusula having são aplicados depois da formação dos grupos, enquanto que os predicados na cláusula where são aplicados antes da formação dos grupos.
  • 33. Operações com Conjuntos • As operações com conjuntos union, intersect, e except (minus no Oracle9i) operam sobre relações e correspondem aos operadores  • Cada uma das operações anteriores elimina as duplicações automaticamente. • Para reter duplicados deve-se utilizar as respectivas versões multiconjunto union all, intersect all e except all • Suponha que uma tupla ocorre m vezes em R e n vezes em S, então ele ocorre: – m + n vezes em R union all S – min(m,n) vezes em R intersect all S – max(0, m – n) vezes em R except all S
  • 34. Operações com Conjuntos - Union • Listar todos os clientes que realizaram pedidos com mais de 5 itens ou contendo algum produto de preço>R$30,00 (Select c.nome From Cliente as c, Pedido as p, Produto as pr Where c.ccodifgo=p.cliente and p.pedcodigo=i.pedido and i.quantidade>5) UNION (Select c.nome From Cliente as c, Pedido as p, Produto as pr Where c.ccodifgo=p.cliente and p.pedcodigo=i.pedido and i.produto=pr.procodigo and i.preço>30)
  • 35. Operações com Conjuntos - Intersect • Listar todos os clientes que realizaram pedidos com mais de 5 itens e contendo algum produto de preço>R$30,00 (Select c.nome From Cliente as c, Pedido as p, Produto as pr Where c.ccodifgo=p.cliente and p.pedcodigo=i.pedido and i.quantidade>5) INTERSECT (Select c.nome From Cliente as c, Pedido as p, Produto as pr Where c.ccodifgo=p.cliente and p.pedcodigo=i.pedido and i.produto=pr.procodigo and i.preço>30)
  • 36. Operações com Conjuntos - Except • Listar todos os clientes que realizaram pedidos com mais de 5 itens mas não contendo algum produto de preço>R$30,00 (Select c.nome From Cliente as c, Pedido as p, Produto as pr Where c.ccodifgo=p.cliente and p.pedcodigo=i.pedido and i.quantidade>5) EXCEPT (Select c.nome From Cliente as c, Pedido as p, Produto as pr Where c.ccodifgo=p.cliente and p.pedcodigo=i.pedido and i.produto=pr.procodigo and i.preço>30)
  • 37. Exercício de Fixação EMPREGADOS (E) enome CPF salário CPF_Supervisor dnumero DEPARTAMENTOS (D) dnome dnúmero CPF_gerente TRABALHA (T) PROJETOS (P) CPF_Emp pnumero pnome pnúmero dnúmero
  • 38. Exercício de Fixação • Atividades: – 1. Fazer o esquema relacional acima; – 2.Inserir o empregado André que trabalham no projeto chamado CID do departamento de computação; – 3.Inserir o empregado Suzana que trabalha no projeto chamado CID do departamento de computação; – 4. Inserir o empregado Lívia que é gerente dos empregados André e Suzana; – 5. Inserir o departamento de estatística e seus projetos: KDE, SUDO, MQRO, ACLT.
  • 39. Ora, a fé é a certeza daquilo que esperamos e a prova das coisas que não vemos. Hebreus 11:1 Até a próxima aula!