Algebra Relacional

24
Álgebra Relacional Conceitos Básicos A Operação Select A Operação Project Seqüencialidade das Operações Operações Matemáticas Produto Cartesiano Operação Junção Apêndice: Exemplo de Banco de Dados

description

SGBD

Transcript of Algebra Relacional

  • lgebra Relacional

    Conceitos Bsicos A Operao Select A Operao Project Seqencialidade das Operaes Operaes Matemticas Produto Cartesiano Operao Juno Apndice: Exemplo de Banco de Dados

  • 1. Conceitos Bsicos

    lgebra Relacional uma coleo de operaes utilizadas para manipular as relaes. Estas operaes so utilizadas para selecionar tuplas (linhas) de relaes individuais e para combinar tuplas relacionadas de relaes diferentes para especificar uma consulta em um determinado banco de dados. O resultado de cada operao uma nova operao, a qual tambm pode ser manipulada pela lgebra relacional. Todos os exemplos envolvendo lgebra relacional implicam na utilizao de um banco de dados.

  • 2. A Operao Select

    A operao select utilizada para selecionar um subconjunto de tuplas de uma relao (tabela), sendo que estas tuplas devem satisfazer uma condio de seleo. A forma geral de uma operao select :

    ( )

    A letra grega utilizada para representar a operao de seleo; uma expresso booleana aplicada sobre os atributos da relao e o nome da relao sobre a qual ser aplicada a operao select.

  • 2. A Operao Select

    Exemplos:

    consulta1 = salrio < 2.500,00 (EMPREGADO)

    Tabela consulta1

    Nome RG CIC Depto. RG Supervisor

    Salrio

    Ricardo 30303030 33333333 2 10101010 2.300,00

    Renato 50505050 55555555 3 20202020 1.300,00

    consulta2 = (relao = Filho) and (sexo = Feminino) (DEPENDENTES)

    Tabela consulta2

    RG Responsvel

    Nome Dependente

    Dt. Nascimento

    Relao Sexo

    30303030 Adreia 01/05/90 Filho Feminino

  • 2. A Operao Select

    As operaes relacionais que podem ser aplicadas na operao select so:

    , , , , =, alm dos operadores booleanos:

    and, or, not.

    A operao select unria, ou seja, s pode ser aplicada a uma nica relao. No possvel aplicar a operao sobre tuplas de relaes distintas.

  • 3. A Operao Project

    A operao project seleciona um conjunto determinado de colunas de uma relao. A forma geral de uma operao project :

    ()

    A letra grega representa a operao project, representa a lista de atributos que o usurio deseja selecionar e representa a relao sobre a qual a operao project ser aplicada.

  • 3. A Operao Project

    Exemplos:

    consulta3 = Nome, Dt. Nascimento (DEPENDENTES)

    Tabela consulta3

    Nome Dependente

    Dt. Nascimento

    Jorge 27/12/86

    Luiz 18/11/79

    Fernanda 14/02/69

    Angelo 10/02/95

    Adreia 01/05/90

  • 4. Seqencialidade das Operaes

    As operaes project e select podem ser utilizadas de forma combinada, permitindo que apenas determinadas colunas de determinadas tuplas possam ser selecionadas. A forma geral de uma operao sequencializada :

    ( ()

    ) Veja o seguinte exemplo:

    consulta4 = nome, depto., salario (salario < 2.500,00 (EMPREGADO)

    )

    Tabela consulta4

    Nome Depto. Salrio

    Ricardo 2 2.300,00

    Renato 3 1.300,00

  • 4. Seqencialidade das Operaes

    A consulta4 pode ser reescrita da seguinte forma:

    consulta5 = salario < 2.500,00(EMPREGADO)

    Tabela consulta5

    Nome RG CIC Depto.

    RG Supervisor

    Salrio

    Ricardo 30303030 33333333 2 10101010 2.300,00

    Renato 50505050 55555555 3 20202020 1.300,00

    consulta6 = nome, depto., salario (CONSULTA5)

    Tabela consulta6

    Nome Depto. Salrio

    Ricardo 2 2.300,00

    Renato 3 1.300,00

  • 5. Operaes Matemticas

    Levando em considerao que as relaes podem ser tratadas como conjuntos, podemos ento aplicar um conjunto de operaes matemticas sobre as mesmas. Estas operaes so:

    unio () , interseco () e diferena (). Este conjunto de operaes no unrio, ou seja, podem ser aplicadas sobre mais de uma tabela, porm, existe a necessidade das tabelas possuirem tuplas exatamente do mesmo tipo. Estas operaes podem ser definidas da seguinte forma:

    unio - o resultado desta operao representada por R S uma relao T que inclui todas as tuplas que se encontram em R e todas as tuplas que se encontram em S;

    interseco - o resultado desta operao representada por R S uma relao T que inclui as tuplas que se encontram em R e em S ao mesmo tempo;

    diferena - o resultado desta operao representada por R S uma relao T que inclui todas as tuplas que esto em R mas no esto em S.

  • 5. Operaes Matemticas

    Leve em considerao a seguinte consulta: Selecione todos os empregados que trabalham no departamento nmero 2 ou que supervisionam empregados que trabalham no departamento nmero 2. Vamos primeiro selecionar todos os funcionrios que trabalham no departamento nmero 2.

    consulta7 = depto = 2 (EMPREGADOS)

    Tabela consulta7

    Nome RG CIC Depto. RG Supervisor Salrio

    Fernando 20202020 22222222 2 10101010 2.500,00

    Ricardo 30303030 33333333 2 10101010 2.300,00

    Jorge 40404040 44444444 2 20202020 4.200,00

  • 5. Operaes Matemticas

    Vamos agora selecionar os supervisores dos empregados que trabalham no departamento nmero 2.

    consulta8 = rg_supervisor (CONSULTA7)

    Tabela consulta8

    RG Supervisor

    10101010

    20202020

    Vamos projetar apenas o rg dos empregados selecionados:

    consulta9 = rg(CONSULTA7)

    Tabela consulta9

    RG

    20202020

    30303030

    40404040

  • 5. Operaes Matemticas

    E por fim, vamos unir as duas tabelas, obtendo o resultado final.

    consulta10 = CONSULTA8 CONSULTA9

    Tabela consulta10

    RG

    20202020

    30303030

    40404040

    10101010

  • 5. Operaes Matemticas

    Leve em considerao a prxima consulta: Selecione todos os empregados que desenvolvem algum projeto e que trabalham no departamento nmero 2. Vamos primeiro selecionar todos os empregados que trabalham em um projeto.

    consulta11 = rg_empregado(EMPREGADO/PROJETO)

    Tabela consulta11

    RG_Empregado

    20202020

    30303030

    40404040

    50505050

  • 5. Operaes Matemticas

    Vamos agora selecionar todos os empregados que trabalham no departamento 2.

    consulta12 = rg (depto = 2 (EMPREGADOS)

    )

    Tabela consulta12

    RG

    20202020

    30303030

    40404040

    Obtemos ento todos os empregados que trabalham no departamento 2 e que desenvolvem algum projeto.

    consulta13 = CONSULTA11 CONSULTA12

    Tabela consulta13

    RG

    20202020

    30303030

    40404040

  • 5. Operaes Matemticas

    Leve em considerao a seguinte consulta: Selecione todos os usurios que no desenvolvem projetos.

    consulta14 = rg_empregado (EMPREGADO/PROJETO)

    Tabela consulta14

    RG Empregado

    20202020

    30303030

    40404040

    50505050

    consulta15 = rg (EMPREGADOS)

    Tabela consulta15

    RG

    10101010

    20202020

    30303030

    40404040

    50505050

  • 5. Operaes Matemticas

    consulta16 = CONSULTA15 CONSULTA14

    Tabela consulta16

    RG

    10101010

  • 6. Produto Cartesiano

    O produto cartesiano uma operao binria que combina todas as tuplas de duas tabelas. Diferente da operao unio, o produto cartesiano no exige que as tuplas das tabelas possuam exatamente o mesmo tipo. O produto cartesiano permite ento a consulta entre tabelas relacionadas utilizando uma condio de seleo apropriada. O resultado de um produto cartesiano uma nova tabela formada pela combinao das tuplas das tabelas sobre as quais aplicou-se a operao. O formato geral do produto cartesiano entre duas tabelas R e S :

    R S

  • 6. Produto Cartesiano

    Leve em considerao a seguinte consulta: Encontre todos os funcionrios que desenvolvem projetos em Campinas.

    consulta16 = (EMPREGADO PROJETO) RG Empregado Empregado.* Nmero

    Projeto Nome Localizao

    10101010 .... 5 Financeiro 1 So Paulo

    10101010 .... 10 Motor 3 Rio Claro

    10101010 .... 20 Prdio Central Campinas

    20202020 .... 5 Financeiro 1 So Paulo

    20202020 .... 10 Motor 3 Rio Claro

    20202020 .... 20 Prdio Central Campinas

    30303030 .... 5 Financeiro 1 So Paulo

    30303030 .... 10 Motor 3 Rio Claro

    30303030 .... 20 Prdio Central Campinas

    40404040 .... 5 Financeiro 1 So Paulo

    40404040 .... 10 Motor 3 Rio Claro

    40404040 .... 20 Prdio Central Campinas

    50505050 .... 5 Financeiro 1 So Paulo

    50505050 .... 10 Motor 3 Rio Claro

    50505050 .... 20 Prdio Central Campinas

  • 6. Produto Cartesiano

    Vamos agora selecionar as tuplas cuja localizao seja Campinas.

    consulta17 = rg_empregado, nmero projeto( (localizao = Campinas)(CONSULTA16)

    )

    Tabela consulta17

    RG Empregado Nmero Projeto

    10101010 20

    20202020 20

    30303030 20

    40404040 20

    50505050 20

    A operao produto cartesiano no muito utilizada por no oferecer um resultado otimizado.

  • 7. Operao Juno

    A operao juno atua de forma similar operao produto cartesiano, porm, a tabela resultante conter apenas as combinaes das tuplas que se relacionam de acordo com uma determinada condio de juno. A forma geral da operao juno entre duas tabelas R e S a seguinte:

    R S

  • 7. Operao Juno

    Leve em considerao a consulta a seguir: Encontre todos os funcionrios que desenvolvem projetos em Campinas. consulta18 = EMPREGADOS/PROJETOS nmero_projeto = nmero PROJETOS

    Tabela consulta18

    RG Empregado

    Nmero Projeto

    Nome Nmero Localizao

    20202020 5 Financeiro 1 5 So Paulo

    20202020 10 Motor 3 10 Rio Claro

    30303030 5 Financeiro 1 5 So Paulo

    40404040 20 Prdio Central 20 Campinas

    50505050 20 Prdio Central 20 Campinas

    consulta19 = localizao = Campinas (CONSULTA18)

    Tabela consulta18

    RG Empregado

    Nmero Projeto

    Nome Nmero Localizao

    40404040 20 Prdio Central 20 Campinas

    50505050 20 Prdio Central 20 Campinas

  • 8. Apndice: Exemplo de Banco de Dados

    Tabela EMPREGADO

    Nome RG CIC Depto. RG Supervisor Salrio

    Joo Luiz 10101010 11111111 1 NULO 3.000,00

    Fernando 20202020 22222222 2 10101010 2.500,00

    Ricardo 30303030 33333333 2 10101010 2.300,00

    Jorge 40404040 44444444 2 20202020 4.200,00

    Renato 50505050 55555555 3 20202020 1.300,00

    Tabela DEPARTAMENTO Tabela PROJETO

    Nome Nmero RG Gerente Nome Nmero Localizao

    Contabilidade 1 10101010 Financeiro 1 5 So Paulo

    Engenharia Civil 2 30303030 Motor 3 10 Rio Claro

    Engenharia Mecnica 3 20202020 Prdio Central 20 Campinas

    Tabela DEPENDENTES

    RG Responsvel Nome Dependente Dt. Nascimento Relao Sexo

    10101010 Jorge 27/12/86 Filho Masculino

    10101010 Luiz 18/11/79 Filho Masculino

    20202020 Fernanda 14/02/69 Conjuge Feminino

    20202020 Angelo 10/02/95 Filho Masculino

    30303030 Adreia 01/05/90 Filho Feminino

  • 8. Apndice: Exemplo de Banco de Dados

    Tabela DEPARTAMENTO_PROJETO Tabela EMPREGADO_PROJETO

    Nmero Depto. Nmero Projeto RG Empregado Nmero Projeto Horas

    2 5 20202020 5 10

    3 10 20202020 10 25

    2 20 30303030 5 35

    40404040 20 50

    50505050 20 35