Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * MATEMÁTICA DISCRETA – AULA 9 PROFESSORA HELGA BODSTEIN, D.Sc. Aula 9 Operações Relacionais * * Conteúdo Operação relacional de produto cartesiano Operação relacional de união Operação relacional de diferença Operação relacional de junção * * Aula 9 – Operações Relacionais Conceitos Um sistema de bases de dados relacionais contém um ou mais objetos chamados tabelas (Relações). Os dados ou informações são armazenados nessas tabelas. * * Aula 9 - Operações Relacionais Entidades e Atributos Toda a informação de um banco de dados relacional é armazenada em Tabelas, que na linguagem do modelo relacional, também são chamadas de Entidades. Por exemplo, pode existir uma Tabela "Clientes", onde seriam armazenadas informações sobre os diversos clientes. * * Aula 9 - Operações Relacionais Entidades e Atributos Sobre cada um dos clientes podem ser armazenadas diversas informações tais como: Nome, RG, CPF, Rua, Bairro, Telefone, CEP, Data de Nascimento etc Essas diversas características de cada Cliente são os "Atributos" da entidade Cliente, também chamados de campos da tabela Cliente. * * Aula 9 - Operações Relacionais Entidades e Atributos "O Conjunto de todos os Atributos de um cliente e os valores dos atributos é o que forma o Registro do Cliente". Com isso temos uma Tabela que é constituída por um conjunto de Registros (uma linha completa com informações sobre o cliente) e cada Registro formado por um conjunto de atributos (Nome, Endereço, etc). * * Aula 9 - Operações Relacionais Entidades e Atributos Resumindo: Entidade ou Tabela: Um conjunto de registros. Campos ou Atributos: Características individuais da tabela. * * Aula 9 - Operações Relacionais Chave Primária "Ao Definirmos um campo como sendo uma Chave Primária, estamos informando que os valores neste campo precisam ser únicos". Por exemplo, se definimos um campo "Número da Identidade", da tabela Clientes, como sendo um campo do tipo Chave Primária, não podem ser cadastrados dois clientes com o mesmo valor no campo "Número da Identidade” * * Aula 9 - Operações Relacionais Chave Primária Definição: identifica de maneira única cada Registro de uma Tabela, isto é, de posse do valor da Chave Primária somente localizaremos um registro com aquele valor no campo Chave Primária. Chave Estrangeira Atributo, ou conjunto de atributos, de uma relação que é chave primária numa outra relação. * * Aula 9 - Operações Relacionais Operações – Continuação Produto Cartesiano Produz uma relação com todas as colunas das relações envolvidas e a combinação de todas as linhas de uma relação com todas as linhas da outra relação. * * Aula 9 - Operações Relacionais Produto Cartesiano Exemplo: Produto cartesiano entre peça e fornecedor * * Aula 9 - Operações Relacionais Produto Cartesiano Exemplo: Produto cartesiano entre peça e fornecedor Peça X Fornecedor * * Aula 9 - Operações Relacionais Produto Cartesiano A tabela resultante de um Produto Cartesiano terá como resultado: Número de colunas – soma do número de colunas das tabelas de origem. - Peça – 4 colunas - Fornecedor – 3 colunas Peça x Fornecedor – 7 colunas * * Aula 9 - Operações Relacionais Produto Cartesiano Peça x Fornecedor – 7 colunas * * Aula 9 - Operações Relacionais Produto Cartesiano A tabela resultante de um Produto Cartesiano terá como resultado: Número de tuplas – produto do número de tuplas das tabelas de origem. - Peça – 3 tuplas - Fornecedor – 2 tuplas Peça x Fornecedor – 6 tuplas * * Aula 9 - Operações Relacionais Produto Cartesiano Peça x Fornecedor – 6 tuplas * * Aula 9 - Operações Relacionais Produto Cartesiano Utilidade Prática: Permite estabelecer a ligação e a navegação entre as relações. * * Aula 9 - Operações Relacionais Produto Cartesiano Exemplo: Obter os nomes das peças e dos fornecedores localizados na mesma cidade. * * Aula 9 - Operações Relacionais Produto Cartesiano 1º. Passo – Obtenção de uma tabela temporária resultado do produto cartesiano: Produto Cartesiano: Temp1 Peça Fornecedor * * Aula 9 - Operações Relacionais Produto Cartesiano 2º. Passo – Seleção das tuplas onde: peça.cidade = fornecedor.cidade: Temp2 peça.cidade = fornecedor.cidade (Temp1) * * Aula 9 - Operações Relacionais Produto Cartesiano 2º. Passo – Seleção das tuplas onde: peça.cidade=fornecedor.cidade: Temp2 peça.cidade = fornecedor.cidade (Temp1) * * Aula 9 - Operações Relacionais Produto Cartesiano 3º. Passo – Projeção das colunas nome da peça e nome do fornecedor: Resultado peça.nome, fornecedor.nome(Temp2 ) * * Aula 9 - Operações Relacionais Produto Cartesiano 3º. Passo – Projeção das colunas nome da peça e nome do fornecedor: Resultado peça.nome, fornecedor.nome(Temp2 ) * * Aula 9 - Operações Relacionais União de Relações Geração de uma nova relação através da reunião das tuplas de duas relações. Símbolo: Para a União, as relações têm que ser compatíveis de união (mesmo número de colunas, mesmo domínio). * * Aula 9 - Operações Relacionais União de Relações Exemplo * * Aula 9 - Operações Relacionais União de Relações Ex: Obter os códigos das peças azuis ou que são fornecidas pelo fornecedor S2. * * Aula 9 - Operações Relacionais Ex: Obter os códigos das peças azuis ou que são fornecidas pelo fornecedor S2. 1º - Códigos das peças azuis: Peças azuis: peça = azul (PEÇA) * * Aula 9 - Operações Relacionais Ex: Obter os códigos das peças azuis ou que são fornecidas pelo fornecedor S2. 1º - Códigos das peças azuis Códigos das Peças azuis: código (peça = azul (PEÇA)) Temp1← código (peça = azul (PEÇA)) * * Aula 9 - Operações Relacionais Ex: Obter os códigos das peças azuis ou que são fornecidas pelo fornecedor S2. 2º - Códigos da peças fornecidas pelo fornecedor S2 Fornecedor S2: COD_FORN = S2 (FORNECIMENTO) * * Aula 9 - Operações Relacionais Ex: Obter os códigos das peças azuis ou que são fornecidas pelo fornecedor S2. 2º - Códigos da peças fornecidas pelo fornecedor S2 Códigos das peças do Fornecedor S2: COD_PECA (COD_FORN = S2 (FORNECIMENTO)) Temp2 ← COD_PEÇA (COD_FORN = S2 (FORNECIMENTO)) * * Aula 9 - Operações Relacionais * * Aula 9 - Operações Relacionais Diferença de Relações Geração de uma nova relação contendo as tuplas que estão em uma relação mas não estão na outra. Para a diferença, as relações também têm que ser compatíveis de união, ou seja, mesmo número de colunas, mesmo domínio. * * Aula 9 - Operações Relacionais Diferença de Relações Exemplo: * * Aula 9 - Operações Relacionais Diferença de Relações Exemplo: Obter as cidades onde existam peças mas não existam fornecedores. * * Aula 9 - Operações Relacionais Exemplo: Obter as cidades onde existam peças mas não existam fornecedores. 1º - cidades onde existam peças: cidade(Peça) * * Aula 9 - Operações Relacionais Exemplo: Obter as cidades onde existam peças mas não existam fornecedores. 2º - cidades onde existam fornecedores: cidade(Fornecedor) * * Aula 9 - Operações Relacionais Cidades onde existam peças mas não existam fornecedores. cidade(Peça) - cidade(Fornecedor) - = * * Aula 9 - Operações Relacionais Interseção de Relações Geração de uma nova relação contendo apenas as tuplas que pertençam às duas relações simultaneamente. Para a Interseção, as relações também têm que ser compatíveis de união. * * Aula 9 - Operações Relacionais Interseção de Relações Exemplo * * Aula 9 - Operações Relacionais Interseção de Relações Exemplo: Obter as cidades onde existam peças e fornecedores. cidade(Peca) cidade(Fornecedor) = * * Aula 9 - Operações Relacionais Junção de Relações Implementa a composição dos operadores de produto cartesiano e de seleção. Símbolo: Abreviação para σp ( R X S) * * Aula 9 - Operações Relacionais Junção de Relações Exemplo: * * Aula 9 - Operações Relacionais Junção de Relações Exemplo: Obter os nomes de todas as peças que tenham sido fornecidas por algum fornecedor. * * Aula 9 - Operações Relacionais - Precisaremos trabalhar com as entidades PEÇA e FORNECIMENTO, pois precisamos dos dados de código de fornecedor, código de peça e nome da peça. * * Aula 9 - Operações Relacionais * * Aula 9 - Operações Relacionais * * Aula 9 - Operações Relacionais Usamos, então, a JUNÇÃO, que seleciona apenas as tuplas de interesse de um produto cartesiano. 1º Passo – Selecionar as tuplas de interesse no produto cartesiano: Somente interessam as tuplas onde os códigos das peças são iguais: peça.codigo = fornecimento.cod_peça (Peça Fornecimento)) * * Aula 9 - Operações Relacionais * * Aula 9 - Operações Relacionais * * Aula 9 - Operações Relacionais E destas queremos apenas seus nomes: peça.nome (peça.codigo = fornecimento.cod_peça(PeçaFornecimento)) * * Aula 9 - Operações Relacionais Podemos simplificar usando a junção para substituir as etapas de seleção de um produto cartesiano: Assim temos: peça.codigo = fornecimento.cod_peça (Peça Fornecimento)) = (PEÇA FORNECIMENTO) CODIGO = COD_PEÇA * * Aula 9 - Operações Relacionais * * Aula 9 - Operações Relacionais Então: peça.nome peça.codigo = fornecimento.cod_peça(PeçaFornecimento)) = peça.nome (PEÇA FORNECIMENTO) CODIGO = COD_PEÇA RESULTADO: *
Compartilhar