Bancos de Dados - Aula 11 - Linguagem de consulta – Álgebra Relacional - Parte II

23.28k views2512 WordsCopy TextShare
UNIVESP
Engenharia de Computação – Bancos de Dados Disciplina EID - 002 - Bancos de Dados Professora respo...
Video Transcript:
[Música] [Música] o la em suas áreas estou acompanhando vocês na disciplina de banco de dados do curso de engenharia da computação da universo na aula de hoje nós vamos continuar falando um pouquinho mais sobre álgebra relacional bom esse primeiro slide é apenas para recordar o esquema de banco de dados que nós não estamos usando como exemplo o desenvolvimento dos exemplos das aulas é interessante que vocês tenham esse esquema em mãos para acompanhar todos os as explicações que nós vamos ter aqui durante essa ao bom a primeira operação que nós vamos trabalhar hoje é a operação
de junção a operação de injunção ela tem a função de relacionar as duplas que estão em duas tabelas diferentes à sintáxi desta função é como especificado aqui eu tenho duas relações a relação r ea relação s e as duplas dessas duas relações serão organizadas em uma única uma única relação como resposta da alteração de função mas essa organização ela será aceita a partir da verificação da condição de junção nessa condição nós temos que especificar o que nós queremos que seja obedecido no momento de juntar duas duplas então essa operação é usada para combinar duplas de
duas relações que estão relacionados o resultado da operação é uma nova relação com os atributos tanto de r quanto df aqui nós temos um exemplo genérico de como funciona a operação de junção então nós temos a tabela é rico dois atributos o atributo ar e o atributo b e nós temos a tabela s com dois atributos o atributos e eo atributo de na condição de junção nós queremos que os valores do atributo a dr e do atributos e ds sejam iguais nas duplas nós estamos relacionando então com resultado da operação de injunção neste caso neste
evento nós vamos ter uma nova relação que é uma relação temporária que possui todos os atributos da relação r e da relação s e possui as duplas que podem ser combinadas de acordo com a condição de junção então perceba que quando nós vamos executar esta operação nós temos que tentar combinar todas as duplas de r com s desde a contar desde que a condição de junção seja satisfeita eu tento combinar a primeira turma de r com a primeira dupla df para tentar para é realizar essa combinação eu verifico se a condição de junção está satisfeita
o valor do tributo ar é igual ao valor do atributo ser sim é igual eu consegui satisfazer a condição de junção e portanto eu crio um ato pela combinando os valores da relação r para os atributos a/b com os valores da relação é s para o atributo c e d nenhuma outra combinação aqui satisfaz a condição de junção então nós vamos ter como resposta apenas uma dupla na relação resultado bom agora nós temos aqui uma consulta à serra é executada a ser especificada para ser executada naquele nosso esquema de banco de dados essa consulta está
aqui pra exemplificar a aplicabilidade da operação de junção então olha só nossa consulta é recupere o nome do gerente de cada departamento para recuperar o nome de algum funcionário eu preciso da tabela funcionário mas eu não quero qualquer funcionário eu quero funcionário que é gerente de departamento e quero isso pra todos os departamentos que eu tenho no meu sistema de banco de dados então eu vou precisar também em da tabela departamento como nós vimos na aula passada nós podemos renomear esses objetos que nós vamos usar para facilitar a escrita das nossas consultas então nós renunciamos
departamento como de e funcionário como s assim eu posso usar o nome de e o nome s nessa meta consulta em álgebra que estou executando que estou especificando e olha só nós temos aqui a alteração da junção sendo usada ou seja eu quero juntar tudo pela cd e de s em uma única relação e quero que essas duplas que entre nessa relação a resposta é satisfação essa condição de junção que um atributo gee dente que é um atributo de de ser igual o valor dele seja igual ao atributo idêntica é um atributo de s eu
faço essa junção ou seja eu escolho eu verifico as duplas que satisfazem essa condição de junção juntas essas duplas na única relação que será a relação de z e agora eu tenho nessa relação de z todas as informações de funcionários com a informação de departamentos em que esses funcionários são gerentes porque o atributo g e dentes se você se recuperarem lá os nossos esquemas do das tabelas do nosso banco de dados empresas vão verificar que gee dente foi colocado ali para especificar quem a gerente do departamento então eu tenho jeito dance que um código de
funcionário e ele é ele deve ser igual ao idêntico é o código do funcionário na tabela funcionar bom mas o que eu quero aqui pra terminar essa consulta é mostrar como resultado o nome do departamento e o nome do funcionário que gerencia ele nós então vamos pegar essa tabela que contém todas as informações e vamos projetar o nome do departamento em nome do funcionário percebeu que o atributo nome existe antes departamento quanto em funcionário então nós precisamos ter uma forma de diferenciar a los o nome do departamento vem com o de que significa a relação
do apartamento o nome do funcionário com efe que significa o nome do funcionário que significa a tabela funcionário aqui nós temos então o exemplo executado ou seja é nós temos aqui os nossos laços tabela distanciado de podermos executar esta é consulta e verificar se ela está correta nós temos aqui a tabela departamento ea tabela funcionário assunção é realizada a partir da condição gee dente igual acidente ela vai gerar essa tabela então percebam que em cada turma que eu consegui colocar nesta tabela nós temos o de gee dente que é o gerente identificador do gerente do
departamento com o valor que é igual ao valor é se evidente que o identificador do funcionário então aqui nós temos a tabela desde que uma tabela intermediária com o resultado da junção e finalmente nós temos ali na terceira e na quarta tabela a nossa projeção dos atributos que queremos é como resposta com fita bom coisas importantes que nós precisamos lembrar quando estamos trabalhando com junção do plano nas quais os atributos de junção possui um valor num ou nulo ou para as quais a condição de injunção é falsa não aparecem o resultado da operação john então
nós precisamos lembrar sempre que o a a condição da junção precisa ser satisfeita e se eu tiver um valor nulo não vai satisfazer a condição da junção e se nenhuma combinação de duplas satisfaz a condição do junção a resposta é uma relação intermediária porém vazia sem nenhuma tuta uma avaliação da operação de junção é a junção natural a operação de função natural requer que os dois atributos da condição de junção tenham o mesmo nome em ambas as relações então se eu uso a operação junção natural eu estou dizendo que atributos que possui o mesmo nome
nas duas tabelas que estão envolvidas na função natural deverão ter os mesmos valores para que as duplas correspondentes possam ser colocadas juntas na resposta e lembrando que nós podemos ter várias condições combinadas na condição de injunção então eu posso ter vários atributos em rs que tem o nome de iguais e eu vou ter que verificar os valores de todos eles para que a condição seja satisfeita ou não na relação resultante da junção natural apenas 11 meses atributos que possui nomes iguais ficaram na resposta de forma que nós não colocamos na resposta atributos redundantes e se
não há tributos mesmo nome nas relações nós temos que ousar uma operação de renomeação no atributo para que a gente coloque esses atributos que nós queremos que façam parte da condição de junção com nomes iguais ou nós teremos como resposta uma relação que combina todas as tabelas todas as duplas da tabela ou da relação é rico em todos os turnos da relação é isso significa que a junção natural degenera para um produto cartesiano que é uma operação que nós vimos na outra aula de álgebra relacional bom nós temos mais algumas variações de junção e uma
dessas variações envolve as funções externas que podem ser externas à esquerda direita ou total com essa especificação é para a escrita da expressão em álgebra relacional aqui nós temos um exemplo vai usar essa operação de junção externo então nossa consulta 9 diz o seguinte imprima uma lista com todos os nomes dos funcionários nessa lista em prima também o nome do departamento quando um funcionário foi gerente então nós queremos sim que a junção trabalho para igualar os atributos de gerência de departamento que faz aqui gei dente é identificador de funcionário que está aqui no funcionário nós
queremos que eles sejam igualadas para verificar se há um departamento cujo gerente é um determinado funcionário se for esse determinado funcionário aparecerá na resposta acompanhado das informações do departamento porém eu vou fazer uma junção externa à esquerda nesse caso porque em relação à tabela está do lado esquerdo do operador eu vou colocar também na resposta todas as duplas que não estão satisfazendo a condição da junção então nós teremos como resposta de uma operação de injunção externa os atributos as os atributos que eu quero imprimir que eu quero colocar na resposta do lado da relação da
esquerda os atributos do lado da relação da direita nesse caso estou falando apenas de dois atributos porque nós projetamos aqui apenas o nome do funcionário nome do departamento mas o nome do departamento aparece junto dos seus gerentes se o funcionário que é o caso do funcionário mostre não é diferente de nenhum departamento aparece aqui o valor nulo esta é a função das funções externas bom agora nossa próxima alteração a projeção generalizada essa projeção ela permite que nós colocamos nosso zemos funções que é são aplicadas pobre atributos da tabela r com isso nós podemos criar alguns
valores interessantes para responder algumas consultas vamos ver um exemplo não supõe que eu tenho essa relação é uma relação nova que a gente está colocando aqui como exemplo que a relação funk que tem um identificador o salário um atributo chamado de redução e o atributo anos de serviço a minha consulta pedras seguinte cnt um relatório onde exista o identificador do empregado seu salário líquido um valor de bônus calculado sobre o seu tempo de serviço eo valor de aumento calculado sobre o seu salário bom nós não temos esses atributos na nossa relação salário líquido o bônus
e o aumento mas nós temos atributos que nos permitem calcular esses outros que nós queremos na consulta então nós podemos criar uma consulta onde nós colocamos algumas operações algumas funções olha só na projeção eu vou projetar lado a tabela funcionário identificador do inter do funcionário e aqui eu tenho uma operação que é o salário dele - o valor de dedução tanto salário enquanto dedução existem na relação mas o que eu vou colocar na relação de resposta é o resultado desta operação a mesma coisa feita para anos de serviço com um valor para calcular um bônus
o aumento do salário bom aqui no fim após nomeados os atributos para que ficasse um pouquinho mais claro o que significa cada um deles na relação resultantes agora nós vamos viver um pouquinho sobre funções agregadas as funções agregadas elas aparecem junto com outro outra operação chamada agrupamento então nós temos aqui na sintax é um símbolo para representar que nós usaremos agrupamentos 1 há uma lista de atributos que nós vamos usar para fazer agrupamento em uma lista de funções agregadas que nós vamos aplicar para calcular alguns valores estas operações agregadas elas podem ser as operações que
estão citadas aqui máximo mínimo soma média e contagem tudo isso precisa estar relacionado aos atributos que existe na tabela r então vamos ao nosso exemplo recupere o número de cada departamento o número de funcionários que trabalham em cada departamento e o salário médio pago em cada departamento para resolver essa consulta basta que nós é o teremos em cima da tabela funcionário pois aqui eu tenho o o o identificador do funcionário o departamento no qual ele trabalha que tenho o salário de cada um dos empregados então eu consigo analisar para cada departamento que possui um funcionário
trabalhando qual é o salário médio e consigo contar quantos funcionários trabalham naquele departamento a sintaxe da nossa consulta então ela fica da seguinte forma fizemos uma recomendação de atributos para deixar a resposta mais clara e aqui está a operação que nós estamos vendo agora então nós vamos fazer um agrupamento por de número o que é de número de número está indicando qual departamento nós estamos agora é falando sobre então eu vou falar é sobre o departamento 11 separando todas as duplas que possuem o departamento 1 e sobre essas duplas calculando a função agregado então eu
vou pra todos todas as duplas por exemplo do departamento um contar o identificador de empregados como identificador é uma chave primária não repete se não repete fazendo a contagem de tutelas que eu tenho quando eu olho para o identificador eu consigo saber quantos funcionários estão associados ao departamento do salário então para esse conjunto de turbinas referência o departamento 1 eu vou fazer um cálculo de média sobre o atributo salário aqui nós temos um exemplo da execução desta desta consulta em álgebra relacional temos aqui um exemplo da tabela funcionário e aí vocês podem ver que aqui
eu tenho a informação que tem dois funcionários associados ao departamento 42 funcionários do departamento 1 e um funcionário do departamento 3 o agrupamento então vai me dizer que as duas duplas do departamento quatro devem ser operadas a partir das funções agregadas para contar quantos funcionários possui nesse departamento 2 e família média do salário pego atributo salário da turbina um que é do departamento 4 e da tua 4 que é do departamento 4 faça médio coloco na resposta faço isso também o departamento 1 e 30 tratamento 3 enquanto os departamentos aparecer aí nessa tabela é bom
existem algumas outras operações da álgebra relacional e outras outros tópicos que nós podemos estudar sobre a zebra relacional três deles eu faço destaque porque podem ser interessantes dentro do estudo que você desenvolveram durante a disciplina a operação de divisão a operação de fechamento recursivo ea equivalência entre consultas nós vamos trabalhar com esses conceitos nos exercícios relacionados a essa aula com isso nós terminamos ajuda relacional eu sugiro que vocês então agora acesso ea bibliografia estudo um pouco mais sobre o assunto para poder ter uma compreensão mais aprofundada sobre este esta linguagem de consulta antes de estudar
as próximas em guarulhos que nós veremos [Música] ah [Música] ah [Música]
Copyright © 2024. Made with ♥ in London by YTScribe.com