Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre * * * Modelo Relacional Álgebra Relacional Danielle Filgueiras * * * * Modelo Relacional * * * * Modelo Relacional Baseia-se na teoria dos conjuntos Os elos são implícitos O usuário vê o banco de dados como um conjunto de tabelas Mat Nome Dep 100 Ana Ven 200 Edu Pro 300 Ari Adm 400 Eva |Mar Funcionários Nome da tabela Atributos Tuplas Valor de atributo Domínios * * * * Modelo Relacional (cont.) Esquema da relação (tabela): funcionários (mat, nom, dep) Relação - subconjunto do produto cartesiano dos domínios R D1 x D2 x ... X Dn 100 200 300 400 Ana Edu Eva Ari Adm Mar Pro Ven Nomes Matrículas Departamentos * * * * Modelo Relacional (cont.) Uma relação pode ser representada sob forma de tabela, onde cada coluna representa um atributo cada linha representa uma ocorrência de: uma entidade um relacionamento Linha (tupla) é um conjunto de atributos * * * * Modelo Relacional (cont.) Um relação pode ser representada sob forma de tabela onde: ... Domínio - conjunto de valores do atributo Cardinalidade de uma relação - número de atributos da tupla da relação Chave primária - um ou mais atributos que identificam uma única linha Ex: aluna (mat, nom, dt_nasc, sexo) * * * Álgebra Relacional * * * Álgebra Relacional (cont.) Linguagem procedimental Pequeno conjunto de operadores que nos permitem manipular relações de forma limitada, porém útil e fácil de implementar * * * Álgebra Relacional (cont.) Operadores clássicos de conjuntos (união, interseção e diferença) Para que o resultado do uso destes operadores com relações seja também uma relação, deve haver a restrição de que todos os operandos envolvidos numa expressão seja definidos sobre o mesmo conjunto de atributos (ou seja, tenham o mesmo esquema) * * * Álgebra Relacional (cont.) Operadores específicos da Álgebra Relacional Seleção: pega certas tuplas de uma relação Projeção: pega certas colunas Produto Cartesiano e Junções: compor relações de maneira proveitosa Renomear relações e seus atributos * * * Operadores Clássicos (cont.) R S é a relação formada com as tuplas que estão em R ou S ou ambas. R S é a relação formada com as tuplas que estão em ambas. R - S é a relação formada com as tuplas que estão em R e não estão em S. * * * Seleção - Exemplo * * * Seleção R1 = c(R2), onde C é uma condição envolvendo os atributos da relação R2 Bar Cerveja Preço Marius Bud 2,50 MenuMarius = Bar = `Marius`(Venda) Marius Miller 2,75 * * * Projeção - Exemplo Vendedor Código Quantidade João 21 80 Venda Silva 54 50 Robinson 54 50 Silva 21 100 código, quantidade (Venda) Código Quantidade 21 80 21 100 54 50 54 50 * * * Projeção R1 = L(R2), onde L é uma lista de atributos do esquema de R2 Cerveja Preço Bud 2,50 cerveja,preço(Venda) Miller 2,75 * * * Junção Natural Sejam as relações r1(Y) e r2(Z), tais que Y Z = X A junção natural de r1 com r2, R1 R2 é uma relação sobre Y X Z consistindo de todas as tuplas (em Y X Z) resultantes da concatenação de tuplas em r1 com tuplas em r2 que tiverem o mesmo valor para os atributos X R1 R2 = {t sobre Y X Z existe t1 r1, t2 r2 tais que t[XY] = t1[XY] e t2[XZ]} Composição vertical * * * Junção Natural As tuplas das relações r1 e r2 Quando participam da junção T1[X] = T2[X] Quando não participam da junção Tuplas perdidas Junção completa: não existem tuplas perdidas Se X for o conjunto vazio (r1 e r2 não têm atributos em comum) R1 R2 forma o produto cartesiano, R1 x R2 Todas t1 r1, t2 r2 irão participar da junção R1 x R2 contém uma tupla para cada par de tuplas t1 e t2 * * * Junção Sejam As relações r1(X) e r2(Y) A junção de r1 com r2, r1 c r2, é uma relação sobre XY consistindo de todas as combinações de tuplas t1 de r1 e t2 de r2 para as quais a condição C é verificada R1 c R2 = c (R1 x R2) Se a condição da junção for, colunas iguais com elementos iguais, ela ficará igual à junção natural. * * * Produto R = R1 x R2 Une cada tupla t1 de R1 com cada tupla t2 de R2 e põe a tupla t1t2 em R R = R1 c R2 É equivalente a R = c (R1 x R2) Junção * * * Exemplo * * * Junção Natural R = R1 c R2 É a junção de R1 e R2 com a condição de que todos os atributos com o mesmo nome tenham valores iguais. Então, uma coluna é suprimida para cada par de atributos iguais Exemplo: Suponha que o atributos Nome da relação bares foi mudado para Bar, para casar com o nome do bar na relação venda (basta tirar a coluna nome) INFOBAR = VENDA BAR * * * Renomeação Operador unário que muda o nome dos atributos da relação, sem modificar seu conteúdo Sejam Relação r definida nos atributos X Função f definida em X (atribuindo um novo nome para cada atributo) * * * Renomeação Resolve a rigidez dos operadores que se baseiam fortemente nos nomes de atributos Após uma renomeação adequada União, interseção e diferença podem ser aplicadas a qualquer par de relações do mesmo grau Junções naturais podem ser feitas baseadas em qualquer subconjuntos de atributos de duas relações União interseção e diferença devem ter o mesmo esquema, mas não tendo o mesmo número de atributos, basta renomear os atributos diferentes * * * Renomeação S = A1,A2,...An (R) Produz uma relação idêntica a R porém com nomes S e com os atributos respectivos renomeados para A1, A2, ...,An Bares R = Bar,Endereço (Bares) * * * Exemplo Esquema de Banco de Dados representando uma dinastia de realeza Reinados (Soberano, De, Até) Pessoas (Nome, Sexo, Nascimento, Morte) Paternidade (Pai, Filho) Maternidade (Mãe, Filho) * * * Junção Natural: Exemplo Vendedor Código Qtd Venda Código Autor Título Preço Vendedor Qtd 21 tolstoy guerra e paz 27 joão 50 54 greene o 3º homem 15 silva 50 54 greene o 3º homem 15 robinson 50 21 tolstoy guerra e paz 27 silva 100 Livro Venda * * * Nome Sexo Nascimento Morte James I M 1566 1625 Elizabeth F 1509 1662 Charles I M 1600 1649 CharlesII M 1630 1685 Mary F 1631 1659 James II M 1633 1701 Henry M 1640 1670 Mary II F 1662 1694 Anne F 1665 1714 James FEM 1686 1766 Pessoas Reinados Soberano De Até James I 1603 1625 Charles I 1625 1648 Charles II 1660 1685 James II 1685 1688 Mary II 1688 1694 Anne 1702 1714 Mãe Filho Mary Stuart James I Anne of Denmark Elizabeth Anne of Denmark Charles I Henry Marie Charles II Henry Marie Mary Henry Marie James II Henry Marie Henry Anne Hyde Mary II Anne Hyde Anne Mary of Modena James FE Maternidade Paternidade Pai Fiho Lord Darnley James I James I Elizabeth James I Charles I Charles I Charles II Charles I Mary Charles I James II Charles I Henry James II Mary II James II Anne James II James FE Banco de Dados da Dinastia Stuart * * * Exemplos União das relações paternidade e maternidade pais,filhos (Paternidade) pais,filhos (Maternidade) Quais são os pais de cada soberano ? Reinados pais,soberano (Paternidade) mãe,soberano (Maternidade) Quais os membros da família que estavam vivos quando um soberano assumiu o trono ? Reinados (Nascimento<De) (Morte >De) Pessoas * * * Exemplo Quais os filhos dos soberanos da família ? soberano,filho(Reinados ( soberano,filho(Paternidade) soberano,filho(Maternidade)) ) Quais as informações sobre os soberanos que foram destronados ou abdicaram ? nome,até,morte(morte>ate(nome,de,ate(Reinados) (Pessoas) )) * * * Combinando Operadores Álgebra são Argumentos básicos Maneiras de construir expressões Para a Álgebra Relacional Argumentos = variáveis cujos valores são relações + expressões construídas aplicando-se os operadores + parênteses Consulta(query) = expressão da álgebra relacional * * * Precedência de operadores A maneira normal para agrupar operadores é: Operadores unários(,,) têm a maior precedência Depois vêm os operadores multiplicativos ( , c, x) Por último vêm os operadores aditivos (,,-) Como não existe consenso, sempre colocamos parênteses envolvendo o argumento do operador unário, e é recomendável agrupar os operadores binários com parênteses envolvendo os seus argumentos. Exemplo: R S T é interpretado como R ( (S) T) * * * Exemplo: Árvore de Expressão Ache os bares que vendem Bud por menos de $3 na Av. Dom Luis Venda(Bar,Cerveja,Preço) Bares(Nome, Endereço) Bares Venda Endereço = ‘Av. Dom Luis’ Preço<$3 ^ Cerveja = ‘Bud’ Nome Bar Nome * * * Exemplo: Árvore de Expressão Ache os bares que vendem cervejas diferentes pelo mesmo preço Venda(Bar,Cerveja,Preço) Venda Venda Bar,cerveja,preço cerveja cerveja Bar * * * Notação Linear para expressões Invente novos nomes para as relações intermediárias. Atribua a elas valores resultados de expressões algébricas A renomeação dos atributos fica implícita no esquema da nova relação Exemplo: Ache os bares que vendem Bud por menos de $3 na Av. Dom Luis Venda(Bar,Cerveja,Preço) Bares(Nome, Endereço) * * * Resultado R1(Bar) := Nome(Endereço = ‘Av. Dom Luis’(Bares)) R2(Bar) := Bar(cerveja = ‘Bud’ ^ preço < 3(Venda)) R3(Bar) := R1 R2 * * * Exemplo Ache os bares que vendem cervejas diferentes pelo mesmo preço Venda (Bar,Cerveja,Preço) S1 := (Bar,Cerveja1,Preço) Venda S2 := S1 Bares S3(Bar) := Bar(cerveja cerveja(S2)) * * * * *
Compartilhar